J'essaie de courir xdotool type word
ensuite à xdotool key Return
partir des préférences des applications de démarrage.
Mais si j'utilise &&
ou ;
, xdotool l'évalue comme la continuation de l'entrée.
command-line
xdotool
janot
la source
la source
xdotool type $'word\r'
, où le$''
échappe\r
à quelque chose comme return (\n
ne fonctionne pas ici).Réponses:
Longue histoire:
utilisez un script.
Et mettez le chemin du script sur le
Exec
terrain.Longue histoire:
Selon la
xdotool
page de manuel :Le chaînage de commandes via
;
ou&
n'est pas possible, car il s'agit de la syntaxe du shell et les applications de démarrage ne prennent pas en charge la syntaxe du shell. Cependant, si tout ce que vous souhaitez faire est d'appuyer sur Enteraprès avoir tapé quelque chose, il existe un moyen détourné de le faire.Quand il est écrit "newline" ASCII ", cela ne signifie pas une mise à nu
\n
. Et la substitution de commande (xdotool type "$(printf '\n')"
disons) mange des sauts de ligne de fin. Suite à cexdotools
post sur le forum , j'ai essayé ceci:Et ça a marché. Mais cela ne fonctionne que s'il y a du caractère après le
\n
, et cela laisse évidemment un espace de fin, ce qui ne serait pas ce que vous voulez. J'ai modifié cela pour:Et cela fonctionne et ne laisse aucun espace de fuite. Cependant, cela pourrait causer des problèmes à ceux qui utilisent le mode Vi dans leur shell.
Grâce aux commentaires de @ steeldriver, j'ai compris que c'était dû à mon essai sur le terminal même sur lequel j'exécutais les commandes. Juste un petit écart entre ma pression Enteret la
xdotool
commande était suffisant pour qu'une seule nouvelle ligne soit enregistrée correctement. Donc:Donc, soit en prolongeant la ligne en la citant:
ou en utilisant l'interprétation du shell comme suggéré par @steeldriver ressemble à la bonne option.
Cependant, un script contenant:
sur le
Exec
terrain a bien fonctionné. En effet, je recommande toujours d'utiliser un script pour des commandes complexes dans un fichier de bureau.Vous pouvez avoir un script
/usr/bin/xdotool
dans le shebang, mais la page de manuel indique que "lescript
mode n'est pas complètement étoffé et peut tomber en dessous de vos attentes", donc je me suis contenté de bash les scripts.J'aurais peut-être vu des choses, mais dans mes premiers essais, j'ai dû mettre un (petit). C'était un artefact de l'essayer sur le terminal qui exécutait les commandes au lieu d'une autre fenêtre.sleep
entre les commandestype
etkey
la source
xdotool type 'word
suivi de la touche 'Entrée' puis de la fermeture'
, comme le fait$'word\n'
(dans lequel bash étend le\n
à un saut de ligne littéral avant de passer l'argument àxdotool
).'
ou les deux\n
avec l'$
astuce).sleep
(voir la note en petit texte). Je ne changeais pas les fenêtres et je les essayais simplement sur la même fenêtre, mais avec asleep 1
, les deux méthodes fonctionnaient avec la même fenêtre et après le changement. Je suppose que ma propre touche Entrée a interféré d'une manière ou d'une autre avec la nouvelle ligne xdotool. Cependant, pour l'exigence plus complexe d'un fichier de bureau, je recommanderais toujours le script.Il me semble que l'application n'analyse pas plusieurs commandes, mais la traite comme une seule commande. En tant que tel, faites-en une seule commande en l'enveloppant d'un appel shell ...
Maintenant, vous pouvez également faire d'autres choses shell ...
Notez que la commande "date" utilisée dans ce dernier inclut une nouvelle ligne! et "xdotool" le sortira.
REMARQUE: si vous faites cela en tant que macro clavier, j'ajouterais également quelques options supplémentaires à "xdotool" pour améliorer le fonctionnement ...
la source