Você tem alguns problemas em sua configuração: um definitivamente fará com que não funcione, o outro mais provável:
1. O mais importante:
No arquivo .desktop
, você usa:
Exec=~/.config/autostart/unity_dash_update.sh
mas ~
não funciona em um arquivo .desktop
, você precisa usar o caminho absoluto, a menos que seu script esteja em $PATH
(e executável), então simplesmente execute-o nome.
2. Provavelmente, você precisa definir uma pausa antes de o comando ser executado
Agora, ele é executado muito cedo e pode falhar ou perder o alvo. Este é frequentemente o caso com:
- comandos relacionados ao touchpad, mouse e teclado (configurações).
-
Comandos
xrandr
, especialmente quando um segundo monitor está conectado
- Indicadores
e mais alguns ... Comandos relacionados à unidade estão na lista por definição, já que é relacionado à área de trabalho por natureza.
Concluindo: altere sua linha Exec=
para:
Exec=/bin/bash -c "sleep 15 && /absolute/path/to/unity_dash_update.sh
EDITAR
Notas Importantes
-
Na sua pergunta, você menciona que "a pesquisa do Unity Dash é muito mais lenta" . No entanto, o comando xdotool
não chama Unity Search , mas a entrada de comando. Para chamar Unity Search , basta pressionar (virtualmente) Super . Então faça o script:
xdotool key Super && sleep 3 && xdotool key Super
Ou melhor, não use um script , , e adicione isso a aplicativos de inicialização, incluindo a quebra que você precisa antes de executar:
/bin/bash -c "sleep 15 && xdotool key Super && sleep 3 && xdotool key Super"
Claro que você pode experimentar o sleep 15
time.
-
Seu arquivo .desktop
é bastante estendido, enquanto para um trabalho básico como executar um script na inicialização:
[Desktop Entry]
Name=name
Exec=command
Type=Application
é suficiente.
Se você usa menos, menos pode dar errado:)
Veja também aqui .
-
Se você insistir em usar um script separado, não o armazene em ~/.config/autostart
. Esse diretório é especificamente destinado a inicializadores de inicialização (log in).