redshift não é um serviço do sistema; ele funciona dentro da sua sessão de login, pois ele precisa acessar o servidor X11. Então, basicamente, ele deve ser iniciado automaticamente da mesma forma que a maioria dos programas gráficos são:
Método 1
Adicione um arquivo redshift.desktop ao diretório de início automático do XDG, ~/.config/autostart/ :
[Desktop Entry]
Type=Application
Name=Redshift
Exec=/usr/bin/redshift
Isso funciona com ambientes de área de trabalho que seguem a especificação XDG Autostart; isso inclui o GNOME, o KDE, o Xfce e muitos outros. Em alguns, é editável por meio de interfaces gráficas (por exemplo, gnome-session-properties no GNOME).
Método 2
Adicione a seguinte linha ...
redshift &
... para o seu ~/.xprofile . Isso funciona com a maioria dos gerenciadores de exibição (gdm, kdm, lightdm, lxdm, sddm - não é magro, no entanto).
Se você usar a ferramenta startx , ~/.xprofile não será usado por padrão, portanto, será necessário atualizar seu script ~/.xinitrc - adicione a mesma linha em algum lugar antes de iniciar o gerenciador de sessões .
Método 3
Se você usar um gerenciador de exibição como o GDM, talvez queira executar o programa antes de efetuar login, para que também se aplique à tela de login. Como isso varia entre gerenciadores de exibição, mas no GDM isso pode ser feito editando /etc/gdm/Init/Default . (Disclaimer: Eu não tentei e isso pode ser o arquivo errado.)
Coisas que não funcionam
-
Um script de inicialização do sistema não funcionará, pois ele é executado independentemente das sessões gráficas - ele não terá o% correto
$DISPLAYnem o% correto$XAUTHORITYdefinido; se você codificar esses, pode acabar tentando se conectar à exibição errada (por exemplo, você codificaDISPLAY=":0", mas sua sessão começa em:1); e se você tentar ver todas as telas, o script ainda é muito provável de ser iniciado antes que qualquer qualquer display X11 tenha sido iniciado. -
Um
@rebootcronjob será executado como o usuário certo (em vez de precisarsu/sudo), mas caso contrário, ele terá todos os mesmos problemas que os scripts init do sistema.