Gnome Shell: Executando script de shell após o início da sessão?


9

Sou usuário do KDE há muito tempo, nunca vi o GNOME, pois pode ser o Mandrake Linux 10. Ontem, dei uma olhada no GNOME Shell no Youtube e achei que valeria a pena dar uma olhada.

Na verdade, vale a pena, mas não consigo descobrir um momento.

Eu tenho um script de shell que costumava rodar nas instalações do meu laptop KDE há anos:

synclient |grep -E 'TapT|RightB|EdgeScr'|awk '{print $1}'|while read item; do synclient $item=0; done
synclient VertScrollDelta=-111
synclient HorizScrollDelta=1
synclient RightEdge=999999999
synclient TopEdge=0
synclient CircularScrolling=0
synclient BottomEdge=999999999
synclient RightButtonAreaLeft=9999999
synclient ClickFinger3=2
synclient HorizScrollDelta=0
synclient HorizTwoFingerScroll=0 

Isso desativa o botão direito do mouse, todos os toques, inverte as direções da rolagem, desativa a rolagem horizontal e outras coisas. O menu do touchpad, nem no KDE, nem no gnome, não permite esse tipo de configuração. (TBH, apenas Mac de todos os sistemas operacionais tem a interface para configurar o touchpad exatamente assim :)).

Não consigo descobrir, como faço para executar isso após o início da sessão do shell do gnome? Eu já tentei isso sem resultados:

[1] % cat /home/neko/.config/autostart/script.desktop 
[Desktop Entry]
Name="Auto stuff"
GenericName="Auto startup stuff"
Comment="Synclient mostly"
Exec=/home/neko/bin/auto_stuff.sh
Terminal=false
Type=Application
X-Gnome-Autostart=true

Alguma outra sugestão, por favor? Obrigado.


1
Esse .desktoparquivo é executável?
muru

Eu não tinha idéia de que os arquivos .desktop deveriam ter permissões executáveis. :)
Mikhail Krutov

3
Os lançadores locais (usuários), sim, eles precisam ser +x. Abra o ~/.config/autostartNautilus e clique duas vezes no seu script.desktop, você será solicitado a "marcar como confiável" (o que equivale a chmod +x).
8114 don_crissti

Respostas:


7

Você pode usar o programa gnome-session-properties. Basta executá-lo no prompt do shell (gnome-terminal):

$ gnome-session-properties

Isso abrirá uma GUI na qual você pode configurar (por exemplo, adicionar, editar, remover, ativar e desativar) programas de inicialização.

Legal e fácil. Aproveitar.

Atualização: Como observado por don_crissti (obrigado) nos comentários abaixo, a funcionalidade dos programas de inicialização das propriedades do gnome-session-migrou para o gnome-tweak-toolGnome 3.12 (que é uma ótima ferramenta, mas um pouco mais confusa, pois concentra muitas funções). Portanto, para as versões 3.12 e superior, este é o novo lugar para procurar.

OBS: E, usando esse método, você não precisa criar um .desktoparquivo, basta especificar a linha de comando do /home/neko/bin/auto_stuff.shscript que você criou (ou qualquer outro script ou comando que desejar).


Vale notar que o gnome-session-propertiesbinário não está mais presente nas versões recentes do Gnome 3 (removidas a partir do 3.12IIRC). Sua funcionalidade foi incluída no gnome-tweak-tool.
31514 Don_crissti

Interessante ... Estou usando o Fedora 20 (com Gnome 3.10), que ainda o possui. Infelizmente, a equipe do Gnome paralisa (ou molda) o software continuamente contra o gosto dos usuários. Pelo menos eles mantiveram a funcionalidade no gnome-Tweak-ferramenta, então aqui é o novo lugar para olhar ...
Marcelo

O gnome-tweak-tools não permite adicionar scripts em um local específico. Você precisa pular os bastidores com os arquivos da área de trabalho.
RichieHH

No entanto, o gnome-session-properties ainda está funcionando pelo menos no ubuntu gnome 17.04; basta iniciá-lo a partir de uma concha.
Tim Richardson

3
Oi @Marcelo para mim, (Ubuntu 17.04) Não encontrei nenhum elemento de interface do usuário no gnome-tweak-tool que me permita inserir scripts de linha de comando ou até mesmo navegá-los. Talvez o Gnome no Ubuntu esteja um pouco atrasado, embora seja principalmente 3,24. Pode ser por isso que o gnome-session-properties ainda está disponível. Eu sou novo no gnome, migrando do xfce. Pelo que posso ver, o gnome-tweak-tool não tem nada parecido com a funcionalidade das propriedades do gnome-session-quando se trata de scripts de inicialização e é estranho o quão difícil isso parece ser.
Tim Richardson

2

Nos .desktoparquivos, o caso é significativo . O modelo a seguir funciona no Fedora 27 com shell GNOME (ou seja, o Exec=valor é executado durante o início da sessão):

[Desktop Entry]
Encoding=UTF-8
Exec=/path/to/myscript arg1
Name=myscript
Comment=script some stuff
Terminal=false
OnlyShowIn=GNOME
Type=Application
StartupNotify=false
X-GNOME-Autostart-enabled=true

(para ser armazenado como $HOME/.config/autostart/myscript.desktop)

A principal diferença: você usou a chave X-Gnome-Autostart=no seu exemplo.

Verifique se o seu script /path/to/myscripté executável, ou seja, se ele tem o e x ecutable permissão bit (s) set.

O OnlyShowIn=talvez não seja significativa para a funcionalidade de arranque automático, mas eu não testei isso sem ele. Você pode listar vários ambientes da área de trabalho como este: OnlyShowIn=GNOME;LXDE;Unity;Consulte a XDG_CURRENT_DESKTOPvariável de ambiente para verificar os valores corretos.

Se você deseja verificar se o seu script imprime alguma mensagem de erro, é possível verificar journalctl --user, ou seja, o diário da sessão.


Isso funcionou para mim, mas eu tive que usar chmod +x myscript.desktop /path/to/myscript.shcomo sugerido em um comentário. Caso contrário, journalctl --user daria o erro Could not parse desktop file myscript.desktop or it references a not found TryExec binary.
sergio

@ergio, claro, o que /path/to/myscript.shvocê deseja executar deve ser executável. Mas myscript.desktopse não precisa ter permissões executáveis.
maxschlepzig
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.