Soy muy nuevo en esto, así que espero no ofender. Estoy intentando crear iconos de Desktop.desktop para mi HTPC (PC de cine en casa). Cada ícono, una vez presionado, debería abrir la URL y maximizar la pantalla. Mi código a continuación lo hace, pero xdotool no se maximiza. Sin embargo, cuando ejecuto mi xdotool en una terminal, ¡funciona! ¿Supongo que el código necesita algún tipo de retraso entre la apertura de la URL y la maximización?
[Desktop Entry]
Name=YouTube
Type=Link
URL=https://www.youtube.com/
Comment Terminal=false
Icon=/home/babak/Myicons/YouTube.png
Exec=xdotool search "google chrome" windowactivate --sync key F11
Gracias de antemano.
Respuesta1
Un archivo .desktop abrirá una URL o ejecutará un comando, pero no ambas cosas al mismo tiempo. Para que abra la URL y haga algo con las ventanas creadas, combine ambas acciones en la exec =
línea.
Hay dos formas de combinar dos acciones en una Exec =
línea.
- Pase múltiples comandos a su shell usando una construcción como
sh -c "command 1; command 2". This is a way to pass two commands through a single command: an
la línea Exec=` maneja solo un comando. - Cree un script bash que contenga los comandos necesarios y llame a ese script bash en su
Exec=
línea.
Por lo tanto, elimine la línea URL=
y cámbiela Exec=
a
sh -c 'google-chrome https://www.youtube.com/ && xdotool search "google chrome" windowactivate --sync key F11'
Puedes reemplazar sh
por bash
. En lugar de &&
usted, también podría usar ;
, pero el primero se asegurará de que el xdotool
comando solo se ejecute si el primer comando se ejecuta correctamente.
Si hay un problema de sincronización, intente insertar una pausa, por ejemplo
...&& sleep 0.3 && xdotool
esperaría 0,3 segundos antes de ejecutarse xdotool
. xdotool
También tiene un comando de suspensión incorporado, por lo que && xdotool sleep 0.3 search
también debería funcionar.