Gnome Shell: ¿Ejecuta script de shell después de que comienza la sesión?

9

Soy un usuario de KDE desde hace mucho tiempo, nunca he visto GNOME, ya que puede ser algo de Mandrake Linux 10. Ayer eché un vistazo a GNOME Shell en Youtube y pensé que podría valer la pena.

En realidad vale la pena, pero no puedo entender ni un momento.

Tengo un script de shell que solía ejecutarse en las instalaciones de mi computadora portátil KDE durante años:

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 

Esto desactiva el clic derecho, todos los toques, invierte las direcciones de desplazamiento, desactiva el desplazamiento horizontal y demás. El menú del panel táctil ni en KDE ni en gnome no permiten este tipo de configuración. (TBH, solo Mac de todos los sistemas operativos tiene la interfaz gráfica de usuario para configurar el panel táctil exactamente así :)).

No puedo entender, ¿cómo ejecuto esto después de que comience la sesión de shell de gnome? Ya he intentado esto sin 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

¿Alguna otra sugerencia, por favor? Gracias.

Mikhail Krutov
fuente
1
¿Es ese .desktoparchivo ejecutable?
muru
No tenía idea de que los archivos .desktop deberían tener permisos ejecutables. :)
Mikhail Krutov
3
Los lanzadores locales (usuarios), sí, tienen que serlo +x. Abra ~/.config/autostarten Nautilus y haga doble clic en su script.desktop, se le pedirá que "marque como confiable" (que es equivalente a chmod +x).
don_crissti

Respuestas:

7

Puede usar el programa gnome-session-properties. Simplemente ejecútelo desde su indicador de shell (gnome-terminal):

$ gnome-session-properties

Esto abrirá una GUI donde puede configurar (es decir, agregar, editar, eliminar, habilitar y deshabilitar) programas de inicio.

Bonito y fácil. Disfrutar.

Actualización: Como lo señaló don_crissti (gracias) en los comentarios a continuación, la funcionalidad de los programas de inicio de gnome-session-properties ha migrado a gnome-tweak-toolGnome 3.12 (que por cierto es una gran herramienta, pero un poco más desordenada ya que concentra demasiadas funciones). Entonces, para las versiones 3.12 y superiores, este es el nuevo lugar para buscar.

OBS: Y por cierto, con este método, no necesita crear un .desktoparchivo, simplemente puede especificar la línea de comando del /home/neko/bin/auto_stuff.shscript que creó (o cualquier otro script o comando que desee).

Marcelo
fuente
Vale la pena señalar que el gnome-session-propertiesbinario ya no está presente en las últimas versiones de Gnome 3 (eliminado a partir de 3.12IIRC). Su funcionalidad fue incluida en gnome-tweak-tool.
don_crissti
Interesante ... Estoy usando Fedora 20 (con Gnome 3.10), que todavía lo tiene. Es triste que el equipo de Gnome paralice (o forme) continuamente el software contra el gusto de los usuarios. Al menos mantuvieron la funcionalidad en gnome-tweak-tool, así que este es el nuevo lugar para buscar ...
Marcelo
gnome-tweak-tools no le permite agregar scripts en una ubicación específica. Necesita saltar a través de aros con archivos de escritorio.
RichieHH
Sin embargo, gnome-session-properties todavía funciona al menos en ubuntu gnome 17.04; solo comience desde un shell.
Tim Richardson
3
Hola @ Marcelo para mí, (Ubuntu 17.04) No pude encontrar ningún elemento de la interfaz de usuario en gnome-tweak-tool que me permita ingresar los scripts de línea de comandos o incluso buscarlos. Tal vez Gnome en Ubuntu está un poco atrasado, aunque en su mayoría es 3.24. Esta podría ser la razón por la que gnome-session-properties todavía está disponible. Soy nuevo en gnome, migrando desde xfce. Por lo que puedo ver, gnome-tweak-tool no tiene nada como la funcionalidad de gnome-session-properties cuando se trata de scripts de inicio y es extraño lo difícil que parece ser.
Tim Richardson
2

En los .desktoparchivos el caso es significativo . La siguiente plantilla funciona bajo Fedora 27 con GNOME shell (es decir, el Exec=valor se ejecuta durante el inicio de la sesión):

[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 almacenado como $HOME/.config/autostart/myscript.desktop)

La principal diferencia: usaste la clave X-Gnome-Autostart=en tu ejemplo.

Verifique dos veces si su script /path/to/myscriptes ejecutable, es decir, si tiene establecidos los bits de permiso e x ecutable.

El OnlyShowIn=no es quizá significativo para la funcionalidad de inicio automático, pero yo no lo he probado sin ella. Puede enumerar múltiples entornos de escritorio como este: OnlyShowIn=GNOME;LXDE;Unity;consulte la XDG_CURRENT_DESKTOPvariable de entorno para verificar los valores correctos.

Si desea verificar si su script imprime algún mensaje de error, puede verificarlo journalctl --user, es decir, el diario de sesión.

maxschlepzig
fuente
Esto funcionó para mí, pero tuve que usar chmod +x myscript.desktop /path/to/myscript.shcomo se sugirió en un comentario. De lo contrario, journalctl --user daría el error Could not parse desktop file myscript.desktop or it references a not found TryExec binary.
sergio
@sergio, claro, lo /path/to/myscript.shque quieres ejecutar tiene que ser ejecutable. Pero myscript.desktopno , no necesita tener permisos de ejecución.
maxschlepzig