Próbuję uruchomić xdotool type word
następnie xdotool key Return
z startowe Aplikacje Preferencje.
Ale jeśli użyję &&
lub ;
, xdotool oceni to jako kontynuację wprowadzania.
command-line
xdotool
Janot
źródło
źródło
xdotool type $'word\r'
, gdzie$''
ucieka\r
do czegoś takiego jak return (\n
tutaj nie działa).Odpowiedzi:
Krótka historia:
użyj skryptu.
I umieść ścieżkę skryptu w
Exec
polu.Długa historia:
Według strony
xdotool
podręcznika :Łańcuch poleceń za pomocą
;
lub&
nie jest możliwy, ponieważ jest to składnia powłoki, a aplikacje startowe nie obsługują składni powłoki. Jeśli jednak wszystko, co chcesz zrobić, to nacisnąć Enterpo wpisaniu czegoś, istnieje runda.Kiedy mówi „nowa linia” ASCII, nie znaczy to gołe
\n
. I podstawianie poleceń (xdotool type "$(printf '\n')"
powiedzmy) zjada końcowe znaki nowej linii. Po tymxdotools
wpisie na forum spróbowałem:I zadziałało. Ale to działa tylko wtedy, gdy po znaku jest jakaś postać
\n
, a to oczywiście pozostawia spację, która nie byłaby tym, czego chcesz. Zmodyfikowałem to, aby:I to działa i nie pozostawia końcowej przestrzeni. Może to jednak powodować problemy dla tych, którzy używają trybu Vi w swojej powłoce.
Dzięki komentarzom @ steeldriver zorientowałem się, że to dlatego, że wypróbowałem to na terminalu, na którym wykonywałem polecenia. Wystarczyła niewielka przerwa między naciśnięciem Entera
xdotool
poleceniem, aby poprawnie zarejestrować pojedynczą linię. A zatem:Więc albo przedłuż linię, cytując ją:
lub użycie interpretacji powłoki, jak sugeruje @steeldriver, wygląda jak właściwa opcja.
Jednak skrypt zawierający:
w
Exec
polu działało dobrze. Rzeczywiście, zawsze zalecam używanie skryptu do złożonych poleceń w pliku na pulpicie.Możesz mieć skrypt
/usr/bin/xdotool
w shebang, ale strona mówi, że „script
tryb nie jest w pełni rozwinięty i może spaść poniżej twoich oczekiwań”, więc trzymałem się skryptów.Mogłem widzieć rzeczy, ale podczas moich pierwszych prób musiałem umieścić (małe). To był artefakt wypróbowania go na terminalu, który wykonywał polecenia zamiast w innym oknie.sleep
między poleceniamitype
akey
źródło
xdotool type 'word
następnie „enter” klucz, a następnie zamknięcia'
, podobnie jak$'word\n'
(w którym bash rozszerza\n
przed przekazaniem argument do dosłownego nowej liniixdotool
).'
jednego lub dwóch\n
za pomocą$
lewy).sleep
(patrz uwaga w małym tekście). Nie zmieniałem okien i po prostu wypróbowywałem je w tym samym oknie, ale zsleep 1
, obie metody działały zarówno z tym samym oknem, jak i po przełączeniu. Wydaje mi się, że moje własne naciśnięcie klawisza Enter w jakiś sposób zakłóciło nową linię xdotool. Jednak w przypadku bardziej złożonych wymagań dotyczących pliku pulpitu nadal polecam skrypt.Wydaje mi się, że aplikacja nie analizuje wielu poleceń, ale traktuje to jako jedno polecenie. W związku z tym uczyń go pojedynczym poleceniem, zawijając w nim wywołanie powłoki ...
Teraz możesz także wykonywać inne czynności związane z powłoką ...
Zauważ, że polecenie „data” użyte w tym ostatnim wierszu zawiera nowy wiersz! i „xdotool” wyświetli to.
UWAGA: jeśli robisz to jako makro klawiatury, dodałbym jeszcze kilka opcji do „xdotool”, aby usprawnić to działanie ...
źródło