Sou muito novo nisso, então espero não ofender. Estou tentando criar ícones Desktop.desktop para meu HTPC (Home Theater PC). Cada ícone, uma vez pressionado, deve abrir a URL e maximizar a tela. Meu código abaixo faz isso, mas o xdotool não maximiza. Porém, quando executo meu xdotool em um terminal, funciona! Presumo que o código precise de algum tipo de atraso entre a abertura do URL e a maximização.
[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
Desde já, obrigado.
Responder1
Um arquivo .desktop abrirá uma URL ou executará um comando, mas não ambos ao mesmo tempo. Para que ele abra a URL e faça algo com as janelas criadas, combine as duas ações na exec =
linha.
Existem duas maneiras de combinar duas ações em uma Exec =
linha.
- Passe vários comandos para o seu shell usando uma construção como a
sh -c "command 1; command 2". This is a way to pass two commands through a single command: an
linha Exec=` que lida com apenas um único comando. - Crie um script bash contendo os comandos necessários e chame esse script bash em sua
Exec=
linha.
Assim, exclua a linha URL=
e altere a Exec=
linha para
sh -c 'google-chrome https://www.youtube.com/ && xdotool search "google chrome" windowactivate --sync key F11'
Você pode substituir sh
por bash
. Em vez de &&
você também pode usar ;
, mas o primeiro garantirá que o xdotool
comando só seja executado se o primeiro comando for executado com sucesso.
Se houver um problema de tempo, tente inserir uma pausa, por exemplo
...&& sleep 0.3 && xdotool
esperaria 0,3 segundos antes de executar xdotool
. xdotool
também tem um comando sleep integrado, então && xdotool sleep 0.3 search
também deve funcionar.