Estou tentando executar, em xdotool type word
seguida, xdotool key Return
em Preferências de aplicativos de inicialização.
Mas se eu usar &&
ou ;
, o xdotool avalia como continuação de entrada.
command-line
xdotool
janot
fonte
fonte
xdotool type $'word\r'
, onde o$''
escape\r
para algo como return (\n
não funciona aqui).Respostas:
Longa história:
use um script.
E coloque o caminho do script no
Exec
campo.Longa história:
De acordo com a página de
xdotool
manual :O encadeamento de comandos via
;
ou&
não é possível, pois essa é a sintaxe do shell e os Aplicativos de Inicialização não suportam a sintaxe do shell. No entanto, se tudo o que você deseja fazer é pressionar Enterdepois de digitar algo, existe uma maneira indireta de fazer isso.Quando diz "nova linha" ASCII ", isso não significa nada
\n
. E a substituição de comandos (xdotool type "$(printf '\n')"
digamos) consome novas linhas. Após estaxdotools
postagem no fórum , tentei o seguinte:E funcionou. Mas só funciona se houver algum caractere após o
\n
, e isso obviamente deixa um espaço à direita, o que não seria o que você deseja. Eu modifiquei isso para:E isso funciona e não deixa espaço à direita. No entanto, isso pode causar problemas para aqueles que usam o modo Vi em seu shell.
Graças aos comentários do @ steeldriver, eu descobri que isso se devia a mim mesmo no terminal em que eu estava executando os comandos. Apenas uma pequena lacuna entre minha pressão Entere o
xdotool
comando foi suficiente para que uma única nova linha fosse registrada corretamente. Portanto:Então, estendendo a linha citando-a:
ou usar a interpretação do shell como sugeriu @steeldriver parece a opção certa.
No entanto, um script contendo:
no
Exec
campo funcionou bem. Na verdade, eu sempre recomendo usar um script para comandos complexos em um arquivo da área de trabalho.Você pode ter um script
/usr/bin/xdotool
no shebang, mas a página de manual diz que "oscript
modo não está totalmente aprimorado e pode ficar abaixo das suas expectativas", então continuei com os scripts do bash.Eu poderia estar vendo coisas, mas nas minhas primeiras tentativas, tive que colocar um (pequeno). Esse foi um artefato de experimentá-lo no terminal que estava executando os comandos em vez de outra janela.sleep
entre os comandostype
ekey
fonte
xdotool type 'word
seguida pela tecla 'Enter' e depois pelo fechamento'
(como o$'word\n'
bash expande\n
para uma nova linha literal antes de passar o argumento paraxdotool
).'
ou dois\n
segundos com o$
truque).sleep
(veja a nota em texto pequeno). Eu não estava mudando as janelas e apenas tentando na mesma janela, mas com asleep 1
, ambos os métodos funcionaram com a mesma janela e após a troca. Eu acho que meu próprio pressionamento de tecla Enter interferiu de alguma forma na nova linha do xdotool. No entanto, para os requisitos mais complexos de um arquivo da área de trabalho, eu ainda recomendaria o script.Parece-me que o aplicativo não está analisando vários comandos, mas tratando-o como um único comando. Como tal, torne-o um único comando envolvendo uma chamada de shell ...
Agora você também pode fazer outras coisas de concha ...
Observe que o comando "date" usado nessa última inclui uma nova linha! e "xdotool" irá produzi-lo.
NOTA: se você estiver fazendo isso como uma macro de teclado, também adicionarei mais algumas opções ao "xdotool" para melhorar esse trabalho ...
fonte