Aceasta este comanda xdotool care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS
PROGRAM:
NUME
xdotool - instrument de automatizare X11 din linia de comandă
REZUMAT
xdotool cmd argumente...
Notare: Unele utilizări ale documentației [fereastră] pentru a denota un argument opțional de fereastră. Acest
caz înseamnă că argumentul, dacă nu este prezent, va fi implicit „%1”. Consultați „WINDOWS STACK” pentru
ce înseamnă „%1”.
DESCRIERE
xdotool vă permite să simulați în mod programatic (sau manual) intrarea de la tastatură și activitatea mouse-ului,
mută și redimensionează ferestrele etc. Face acest lucru folosind extensia XTEST a lui X11 și alte Xlib
funcții.
Există un anumit suport pentru Extended Window Manager Hints (alias EWMH sau NetWM). Vezi
Secțiunea „SUGESTII EXTINDE A MANAGEMENTULUI DE FEREASTRĂ” pentru mai multe informații.
KEYBOARD COMANDE
cheie [Opțiuni] apăsare de tastă [apăsare de tastă ...]
Opțiuni:
--fereastră fereastră
Trimiteți apăsările de taste către un anumit ID de fereastră. Puteți folosi referințele „WINDOW STACK”.
cum ar fi „%1” și „%@” aici. Dacă există o stivă de ferestre, atunci „%1” este implicit,
în caz contrar, se utilizează fereastra curentă.
Vezi și: „SENDEVENT NOTES” și „WINDOW STACK”
--clearmodificatori
Ștergeți modificatorii înainte de a trimite apăsările de taste. Vedeți CLEARMODIFIERS de mai jos.
--întârziere milisecunde
Întârziere între apăsări de taste. Implicit este 12 ms.
Tastați o anumită apăsare a tastei. Exemple fiind „alt+r”, „Control_L+J”, „ctrl+alt+n”,
„BackSpace”.
În general, orice șir X Keysym valid va funcționa. Mai multe taste sunt separate prin „+”.
Alias-uri există pentru „alt”, „ctrl”, „shift”, „super” și „meta”, care toate se mapează la Foo_L,
cum ar fi Alt_L și Control_L etc.
În cazurile în care tastatura dvs. nu are de fapt cheia pe care doriți să o introduceți, xdotool
va găsi automat un cod de cheie nefolosit și îl va folosi pentru a tasta cheia.
În ceea ce privește „COMMAND CHAINING”, această comandă consumă restul
argumente sau până când este văzută o nouă comandă xdotool, deoarece nu există comenzi xdotool
apăsări de taste valide.
Exemplu: trimiteți apăsarea tastei „F2”
tasta xdotool F2
Exemplu: trimiteți „a” cu un accent deasupra (nu pe tastaturile englezești, dar încă funcționează
cu xdotool)
tasta xdotool Aacute
Exemplu: Trimiteți ctrl+l și apoi BackSpace ca apăsări separate de taste:
tasta xdotool ctrl+l BackSpace
Exemplu: trimiteți ctrl+c la toate ferestrele care se potrivesc cu titlul „gdb” (consultați „ÎNCĂȚAREA COMANDEI”)
căutare xdotool --name gdb key ctrl+c
Tasta în jos [Opțiuni] apăsare de tastă
La fel ca mai sus, cu excepția faptului că sunt trimise numai evenimentele de apăsare a tastei.
tastare apăsare de tastă
La fel ca mai sus, cu excepția faptului că sunt trimise numai evenimentele keyup (eliberare).
tip [Opțiuni] ceva la tip
Opțiuni:
--fereastră windowid
Trimiteți apăsările de taste către un anumit ID de fereastră. Consultați „NOTE SENDEVENT” de mai jos. Implicit,
dacă nu este dată nicio fereastră, depinde de stiva de ferestre. Dacă stiva de ferestre este goală
fereastra curentă este introdusă folosind XTEST. În caz contrar, valoarea implicită este „%1” (vezi
„STACK DE FEREASTRĂ”).
--întârziere milisecunde
Întârziere între apăsări de taste. Implicit este 12 ms.
--clearmodificatori
Ștergeți modificatorii înainte de a trimite apăsările de taste. Vedeți CLEARMODIFIERS de mai jos.
Tastați de parcă l-ați fi tastat. Suportă linii noi și file (linie nouă și filă ASCII). Fiecare
apăsarea tastei este separată de o întârziere dată de --întârziere opțiune.
În ceea ce privește „COMMAND CHAINING”, această comandă consumă restul
argumente și le tipează. Adică, nicio comandă nu poate fi înlănțuită după „type”.
Exemplu: pentru a tasta „Bună lume!” ai face:
xdotool tip „Bună lume!”
ȘOARECE COMANDE
mousemove [Opțiuni] x y OR 'restabili'
Mutați mouse-ul la coordonatele X și Y specifice de pe ecran.
Puteți muta mouse-ul în locația anterioară dacă specificați „restaurare” în loc de un
coordonatele X și Y. Restaurarea funcționează numai dacă v-ați mutat anterior în același
invocarea comenzii. În plus, nu funcționează cu opțiunea --window.
De exemplu, pentru a face clic în colțul din stânga sus al ecranului și pentru a muta mouse-ul la
poziția inițială înainte de a o muta, utilizați aceasta:
xdotool mousemove 0 0 clic 1 mousemove restaurare
--fereastră FEREASTRA
Specificați o fereastră la care să vă mutați. Coordonatele 0,0 sunt în partea stângă sus a
fereastra pe care o alegeți.
Referințele „WINDOW STACK” sunt valide aici, cum ar fi %1 și %@. Cu toate acestea, folosind %@
probabil nu are sens.
--ecran ECRAN
Mutați mouse-ul la ecranul specificat pentru a vă deplasa. Acest lucru este util doar dacă aveți
mai multe ecrane și NU folosesc Xinerama.
Implicit este ecranul curent. Dacă specificați --window, indicatorul --screen este
ignorat.
--polar
Folosiți coordonatele polare. Acest lucru face ca „x” un unghi (în grade, 0-360, etc) și „y”
distanta.
Rotația începe la „sus” (0 grade) și se rotește în sensul acelor de ceasornic: 90 = dreapta, 180 = jos,
270 = stânga.
Originea este implicită în centrul ecranului curent. Dacă specificați a
--window, atunci originea este centrul acelei ferestre.
--clearmodificatori
Vezi CLEARMODIFICATORI
--sincronizare
După ce ați trimis cererea de mutare a mouse-ului, așteptați până când mouse-ul este de fapt mutat. Dacă
nu este necesară nicio mișcare, nu vom aștepta. Acest lucru este util pentru scripturile care depind
cu privire la acțiunile finalizate înainte de a trece mai departe.
Notă: așteptăm până când mouse-ul se mișcă deloc, nu neapărat că de fapt
ajunge la destinația dorită. Unele aplicații blochează cursorul mouse-ului
anumite regiuni ale ecranului, așa că așteptarea oricărei mișcări este mai bună în
caz general decât așteptarea unei ținte specifice.
mousemove_relative [Opțiuni] x y
Mutați mouse-ul x,y pixeli în raport cu poziția curentă a cursorului mouse-ului.
--polar
Folosiți coordonatele polare. Acest lucru face ca „x” un unghi (în grade, 0-360, etc) și „y”
distanta.
Rotația începe la „sus” (0 grade) și se rotește în sensul acelor de ceasornic: 90 = dreapta, 180 = jos,
270 = stânga.
--sincronizare
După ce ați trimis cererea de mutare a mouse-ului, așteptați până când mouse-ul este de fapt mutat. Dacă
nu este necesară nicio mișcare, nu vom aștepta. Acest lucru este util pentru scripturile care depind
cu privire la acțiunile finalizate înainte de a trece mai departe.
Rețineți că așteptăm până când mouse-ul se mișcă deloc, nu neapărat că de fapt
ajunge la destinația dorită. Unele aplicații blochează cursorul mouse-ului
anumite regiuni ale ecranului, așa că așteptarea oricărei mișcări este mai bună în
caz general decât așteptarea unei ținte specifice.
--clearmodificatori
Vezi CLEARMODIFICATORI
clic [Opțiuni] buton
Trimiteți un clic, adică un mouse jos urmat de mouse up pentru butonul dat cu a
scurtă întârziere între cele două (în prezent 12 ms).
Butoanele, în general, se cartografiază astfel: mouse-ul stânga este 1, mijlocul este 2, dreapta este 3, roata sus este
4, roata în jos este 5.
--clearmodificatori
Ștergeți modificatorii înainte de a da clic. Vezi CLEARMODIFICATORI de mai jos.
--repeta REPETA
Specificați de câte ori să faceți clic. Implicit este 1. Pentru un dublu clic, utilizați „--repeat
2'
--întârziere MILISECONDE
Specificați cât timp, în milisecunde, să întârzieți între clicuri. Această opțiune nu este
folosit dacă --repeta flag este setat la 1 (implicit).
--fereastră FEREASTRA
Specificați o fereastră la care să trimiteți un clic. Consultați „NOTE SENDEVENT” de mai jos pentru avertismente. Utilizări
poziția curentă a mouse-ului la generarea evenimentului.
Valoarea implicită, dacă nu este dată nicio fereastră, depinde de stiva de ferestre. Dacă fereastra
stiva este goală în care este introdusă fereastra curentă folosind XTEST. În caz contrar, implicit
este „%1” (vezi „STACK DE FEREASTRĂ”).
jos mouse-ul [Opțiuni] buton
La fel ca clic, cu excepția faptului că este trimis doar un mouse jos.
mouse-ul [Opțiuni] buton
La fel ca clic, cu excepția faptului că este trimis doar un mouse în sus.
getmouselocation [--coajă]
Afișează x, y, ecran și id-ul ferestrei cursorului mouse-ului. Numerele ecranului vor fi
diferit de zero dacă aveți mai multe monitoare și nu utilizați Xinerama.
--coajă
Acest lucru face ca getmouselocation să iasă date shell pe care le puteți evalua. Exemplu:
% xdotool getmouselocation --shell
X = 880
Y=443
ECRAN=0
WINDOW=16777250
% eval $(xdotool getmouselocation --shell)
% ecou $X,$Y
714,324
behave_screen_edge [Opțiuni] Unde comandă ...
Asociați o acțiune la evenimente când mouse-ul lovește marginea sau colțul ecranului.
Opțiunile sunt:
--întârziere MILISECONDE
Întârziere în milisecunde înainte de a rula comanda. Acest lucru vă permite să solicitați un
marginea sau colțul dat să fie reținut pentru o perioadă scurtă de timp înainte ca comanda dumneavoastră să fie executată.
Dacă părăsiți marginea sau colțul înainte ca întârzierea să expire, timpul se va reseta.
--liniște MILISECONDE
Întârziere în milisecunde înainte ca următoarea comandă să fie rulată. Acest lucru ajută la prevenire
rulați accidental comanda dvs. de ori în plus; util mai ales dacă ai un
foarte scurt --întârziere (precum valoarea implicită de 0).
Cronologia evenimentului
* Mouse-ul lovește o margine sau un colț.
* Dacă întârzierea este diferită de zero, mouse-ul trebuie să rămână în această margine sau colț până când expiră timpul de întârziere.
* Dacă este încă în margine/colț, declanșați.
* Dacă repausul este diferit de zero, atunci există o perioadă de răcire în care urmează următoarea
declanșarea nu poate apărea
Valorile valide „unde” sunt:
stânga
stânga sus
top
sus în dreapta
dreapta
stânga jos
de jos
dreapta-jos
Exemple:
# Activați google-chrome când mutați mouse-ul în colțul din stânga jos:
xdotool behave_screen_edge jos-stânga \
căutare --class google-chrome windowactivate
# Accesați următorul spațiu de lucru (dreapta). Se știe că funcționează în GNOME (metacity și compiz)
xdotool behave_screen_edge --delay 500 tasta din dreapta jos XF86Forward
# Activați firefox și faceți o căutare pe web într-o filă nouă pentru text în clipboard
xdotool behave_screen_edge --delay 1000 sus-stânga \
căutare --classname Navigator \
windowactivate --sync key --delay 250 ctrl+t ctrl+k ctrl+v Return
FEREASTRA COMANDE
căutare [Opțiuni] model
Căutați ferestre cu titluri, nume sau clase cu un model de expresie regulată.
Ieșirea este o listă delimitată de linii de identificatori de ferestre X. Dacă utilizați „COMMAND
CHAINING”, comanda de căutare va scrie ID-urile ferestrei în stdout numai dacă este ultima
(sau numai) comandă în lanț; altfel, tace.
Rezultatul este salvat în stiva de ferestre pentru viitoare comenzi înlănțuite. Vezi „FEREASTRA
STACK" și "COMMAND CHAINING" pentru detalii.
Opțiunile implicite sunt „--name --class --classname” (dacă nu specificați una sau
mai mult din --name --class sau --classname).
Opțiunile disponibile sunt:
--clasă
Meci împotriva clasei ferestre.
--numele clasei
Potriviți cu numele clasei ferestrei.
--adancime maxima N
Setați recursiunea/profunzimea de căutare a copiilor. Implicit este -1, adică infinit. 0 înseamnă nu
adâncime, doar ferestrele rădăcină vor fi căutate. Dacă doriți doar ferestre de nivel superior, setați
adâncimea maximă de 1 (sau 2, în funcție de modul în care managerul de ferestre face decorațiuni).
--Nume
Potriviți cu numele ferestrei. Acesta este același șir care este afișat în
bara de titlu a ferestrei.
--numai vizibil
Afișați numai ferestre vizibile în rezultate. Aceasta înseamnă cele cu stare de hartă
Este Vizualizabil.
--pid PID
Potriviți ferestrele care aparțin unui anumit ID de proces. Acest lucru poate să nu funcționeze pentru unii X
aplicații care nu setează aceste metadate în ferestrele sale.
--ecran N
Selectați ferestrele numai pe un anumit ecran. Implicit este căutarea pe toate ecranele. Numai
semnificativ dacă aveți mai multe afișaje și nu utilizați Xinerama.
--desktop N
Potriviți doar Windows pe un anumit desktop. „N” este un număr. Implicit este căutarea
toate desktopurile.
--limită N
Opriți căutarea după ce găsiți N ferestre care se potrivesc. Specificarea unei limite va ajuta
accelerați căutarea dacă doriți doar câteva rezultate.
Valoarea implicită este fără limită de căutare (care este echivalent cu „--limit 0”)
--titlu
DEPRECAT. Vezi --name.
--toate
Solicitați îndeplinirea tuturor condițiilor. De exemplu:
căutare xdotool --all --pid 1424 --name „Hello World”
Aceasta se va potrivi numai cu ferestrele care au „Hello World” ca nume și sunt deținute de
pid 1424.
--orice
Potriviți ferestrele care se potrivesc cu orice condiție (logic, „sau”). Aceasta este activată în mod implicit.
De exemplu:
căutare xdotool --any --pid 1424 --name „Hello World”
Aceasta se va potrivi cu orice ferestre deținute de pid 1424 sau ferestre cu numele „Hello World”
--sincronizare
Blocați până când sunt rezultate. Acest lucru este util atunci când lansați un
aplicația vrea să aștepte până când fereastra aplicației este vizibilă. Pentru
exemplu:
google-chrome &
căutare xdotool --sync --onlyvisible --clasa „google-chrome”
selectați fereastra
Obțineți ID-ul ferestrei (pentru un client) făcând clic pe el. Util pentru interogare de scripturi
voi oameni pentru ce fereastră să acționați. De exemplu, uciderea unei ferestre făcând clic pe ea:
xdotool selectwindow windowkill
se comporta fereastră acțiune comandă ...
Legați o acțiune la un eveniment dintr-o fereastră. Acest lucru vă permite să rulați comenzi suplimentare xdotool
ori de câte ori are loc un eveniment potrivit.
Comanda rulată ca rezultat al comportamentului este rulată cu %1 fiind fereastra care a fost
a acţionat asupra. Urmează exemple după lista de evenimente.
Următoarele sunt evenimente valide:
mouse-intra
Se declanșează când mouse-ul intră într-o fereastră. Acest lucru este asemănător cu evenimentele „pasare peste” în
javascript, dacă asta ajută.
mouse-leave
Se declanșează când mouse-ul părăsește o fereastră. Acesta este opusul „mouse-enter”
clic cu mouse-ul
Se declanșează când se face clic pe mouse. Mai exact, atunci când butonul mouse-ului este eliberat.
concentra
Se declanșează când fereastra primește focalizarea de intrare.
estompare
Se declanșează când fereastra își pierde focalizarea.
Exemple:
# Tipăriți locația cursorului ori de câte ori mouse-ul intră într-o vizibilitate curentă
# fereastră:
căutare xdotool --onlyvisible . se comportă %@ mouse-enter getmouselocation
# Tipăriți titlul ferestrei și pid-ul ori de câte ori un xterm se concentrează
căutare xdotool --class xterm behave %@ focus getwindowname getwindowpid
# Emulați focus-follows-mouse
căutare xdotool. se comportă %@ mouse-enter windowfocus
getwindowpid [fereastră]
Ieșiți PID-ul deținând o fereastră dată. Acest lucru necesită efort din partea proprietarului aplicației
o fereastră și este posibil să nu funcționeze pentru toate ferestrele. Aceasta folosește proprietatea _NET_WM_PID a
fereastră. Pentru mai multe informații, consultați „SUGESTII DE MANAGEMENT EXTINS DE FEREASTRĂ” de mai jos.
Dacă nu este dată nicio fereastră, valoarea implicită este „%1”. Dacă nu există ferestre pe stivă, atunci aceasta
este o eroare. Consultați „WINDOWS STACK” pentru mai multe detalii.
Exemplu: Găsiți PID-ul pentru toți xterms:
căutare xdotool --class xterm getwindowpid %@
getwindownname [fereastră]
Ieșiți numele unei ferestre date, cunoscut și sub numele de titlu. Acesta este textul afișat
în bara de titlu a ferestrei de către managerul de ferestre.
Dacă nu este dată nicio fereastră, valoarea implicită este „%1”. Dacă nu există ferestre pe stivă, atunci aceasta
este o eroare. Consultați „WINDOWS STACK” pentru mai multe detalii.
getwindowgeometry [Opțiuni] [fereastră]
Trimiteți geometria (locația și poziția) unei ferestre. Valorile includ: x, y,
lățimea, înălțimea și numărul ecranului.
--coajă
Valori de ieșire potrivite pentru „eval” într-un shell.
getwindowfocus [-f]
Tipărește ID-ul ferestrei focalizate în prezent. Salvează rezultatul în fereastră
grămadă. Consultați „WINDOWS STACK” pentru mai multe detalii.
Dacă fereastra curentă nu are nicio proprietate WM_CLASS, presupunem că nu este un nivel superior normal
fereastră și parcurgeți sus părinții până găsim o fereastră cu un set WM_CLASS și
returnați acel id de fereastră.
Dacă chiar vrei ca fereastra să aibă în prezent focalizare și nu-ți pasă dacă are o
Setare WM_CLASS, apoi utilizați „getwindowfocus -f”
dimensiunea ferestrei [opțiuni] [fereastră] lățime înălțime
Setați dimensiunea ferestrei ferestrei date. Dacă nu este dată nicio fereastră, %1 este implicit.
Consultați „WINDOW STACK” și „COMMAND CHAINING” pentru mai multe detalii.
Procentele sunt valabile pentru lățime și înălțime. Ele sunt relativ la geometria
ecran fereastra este aprinsă. De exemplu, pentru a face o fereastră cu lățimea completă a ecranului,
dar jumătate de înălțime:
xdotool windowsize I 100% 50%
Procentele sunt valide cu --usehints și înseamnă totuși lățimea pixelilor față de
marimea ecranului.
Opțiunile disponibile sunt:
--sfaturi de utilizare
Utilizați indicii de dimensionare a ferestrelor (dacă sunt disponibile) pentru a seta lățimea și înălțimea. Acest lucru este util
pe terminale pentru setarea dimensiunii bazate pe rând/coloana de text, mai degrabă decât pe pixeli.
--sincronizare
După trimiterea cererii de dimensiune a ferestrei, așteptați până când fereastra este efectiv redimensionată.
Dacă nu este necesară nicio schimbare, nu vom aștepta. Acest lucru este util pentru scripturile care
depinde de acțiunile finalizate înainte de a trece mai departe.
Notă: Deoarece mulți manageri de ferestre pot ignora sau modifica redimensionarea originală
cerere, vom aștepta până când dimensiunea se schimbă față de dimensiunea inițială, nu este necesar
la dimensiunea cerută.
Exemplu: Pentru a seta un terminal să aibă 80x24 de caractere, veți folosi:
xdotool windowsize --usehints some_windowid 80 24
mișcarea ferestrei [Opțiuni] [fereastră] x y
Mutați fereastra în poziția dată. Dacă nu este dată nicio fereastră, %1 este implicit. Vedea
„WINDOW STACK” și „COMMAND CHAINING” pentru mai multe detalii.
Dacă coordonata x dată este literal „x”, atunci poziția x curentă a ferestrei va fi
fi neschimbat. Același lucru este valabil și pentru „y”.
Exemple:
xdotool getactivewindow windowmove 100 100 # Se mută la 100,100
xdotool getactivewindow windowmove x 100 # Se mută la x,100
xdotool getactivewindow windowmove 100 y # Se mută la 100,y
xdotool getactivewindow windowmove 100 y # Se mută la 100,y
--sincronizare
După ce ați trimis cererea de mutare a ferestrei, așteptați până când fereastra este de fapt mutată. Dacă
nu este necesară nicio mișcare, nu vom aștepta. Acest lucru este util pentru scripturile care depind
cu privire la acțiunile finalizate înainte de a trece mai departe.
--relativ
Faceți mișcare în raport cu poziția curentă a ferestrei.
focalizare pe fereastră [Opțiuni] [fereastră]
Focalizează o fereastră. Dacă nu este dată nicio fereastră, %1 este implicit. A se vedea „WINDOWS STACK” și
„COMMAND CHAINING” pentru mai multe detalii.
Utilizează XSetInputFocus, care poate fi ignorat de unii manageri de ferestre sau programe.
--sincronizare
După ce ați trimis cererea de focalizare a ferestrei, așteptați până când fereastra este de fapt focalizată.
Acest lucru este util pentru scripturile care depind de acțiunile finalizate înainte de mutare
pe.
harta ferestrelor [Opțiuni] [fereastră]
Harta o fereastră. În terminologia X11, maparea unei ferestre înseamnă să o faceți vizibilă pe
ecran. Dacă nu este dată nicio fereastră, %1 este implicit. Consultați „WINDOW STACK” și „COMMAND
CHAINING" pentru mai multe detalii.
--sincronizare
După ce ați solicitat harta ferestrei, așteptați până când fereastra este mapată efectiv
(vizibil). Acest lucru este util pentru scripturile care depind de acțiunile finalizate
înainte de a merge mai departe.
minimizați fereastra [Opțiuni] [fereastră]
Minimizați o fereastră. În terminologia X11, aceasta se numește „iconify”. Dacă nu există fereastră
dat, %1 este implicit. Consultați „WINDOW STACK” și „COMMAND CHAINING” pentru mai multe detalii.
--sincronizare
După ce ați solicitat minimizarea ferestrei, așteptați până când fereastra este de fapt minimizată.
Acest lucru este util pentru scripturile care depind de acțiunile finalizate înainte de mutare
pe.
ridicarea ferestrei [window_id=%1]
Ridicați fereastra în partea de sus a stivei. Este posibil ca acest lucru să nu funcționeze pe toate managerii de ferestre. Dacă
nu este dată nicio fereastră, %1 este implicit. Consultați „WINDOW STACK” și „COMMAND CHAINING” pentru
mai multe detalii.
windowreparent [fereastră_sursă] fereastră_destinație
Repare o fereastră. Acest lucru mută fereastră_sursă a fi un copil fereastra de
fereastră_destinație. Dacă nu este dată nicio sursă, %1 este implicit. Fereastra „WINDOW STACK”.
referințele (cum ar fi %1) sunt valabile pentru ambele fereastră_sursă și fereastră_destinație Vedea
„WINDOW STACK” și „COMMAND CHAINING” pentru mai multe detalii.
închide fereastra [fereastră]
Închideți o fereastră. Această acțiune va distruge fereastra, dar nu va încerca să o omoare
clientul care îl controlează. Dacă nu este dată nicio fereastră, %1 este implicit. A se vedea „WINDOWS STACK”
și „COMMAND CHAINING” pentru mai multe detalii.
windowkill [fereastră]
Ucide o fereastră. Această acțiune va distruge fereastra și va ucide clientul care o controlează.
Dacă nu este dată nicio fereastră, %1 este implicit. Consultați STACK DE FEREASTRĂ și „ÎNCĂTARE DE COMANDĂ” pentru
mai multe detalii.
windowunmap [Opțiuni] [window_id=%1]
Anulați harta unei ferestre, făcând-o să nu mai apară pe ecran. Dacă nu este dată nicio fereastră, %1
este implicit. Consultați „WINDOW STACK” și „COMMAND CHAINING” pentru mai multe detalii.
--sincronizare
După ce ați solicitat dezarparea ferestrei, așteptați până când fereastra este de fapt anulată
(ascuns). Acest lucru este util pentru scripturile care depind de acțiunile finalizate înainte
Trecând peste.
set_window [Opțiuni] [windowid=%1]
Setați proprietăți despre o fereastră. Dacă nu este dată nicio fereastră, %1 este implicit. Vezi „FEREASTRA
STACK” și „COMMAND CHAINING” pentru mai multe detalii.
Opțiuni:
--Nume nume nou
Setați fereastra WM_NAME (de obicei, titlul ferestrei)
--nume-icoană newiconname
Setați fereastra WM_ICON_NAME (titlul ferestrei atunci când este minimizat, de obicei)
--rol nou rol
Setați fereastra WM_WINDOW_ROLE
--numele clasei newclassname
Setați numele clasei ferestrei (a nu fi confundat cu clasa ferestrei)
--clasă noua clasa
Setați clasa ferestrei (a nu se confunda cu numele clasei ferestrei)
--overrideredirect valoare
Setați valoarea override_redirect a ferestrei. Această valoare este un indiciu pentru managerul de ferestre
pentru dacă ar trebui sau nu gestionat. Dacă valoarea de redirecționare este 0, atunci
Managerul de ferestre va desena chenarele și va trata această fereastră în mod normal. Dacă valoarea este
1, managerul de ferestre va ignora această fereastră.
Dacă modificați această valoare, este posibil ca managerul de ferestre să nu observe modificarea până la
fereastra este mapată din nou, așa că poate doriți să emiteți „windowunmap” și „windowmap” pentru
face managerul de ferestre să ia notă.
DESKTOP AND FEREASTRA COMANDE
Aceste comenzi urmează standardul EWMH. Consultați secțiunea „SUGESTII DE MANAGEMENT EXTINS DE FEREASTRĂ”
pentru mai multe informatii.
windowactivate [Opțiuni] [fereastră]
Activați fereastra. Această comandă este diferită de windowfocus: dacă fereastra este activată
alt desktop, vom trece la acel desktop. De asemenea, folosește o metodă diferită pentru
ridicând fereastra. Vă recomand să încercați această comandă înainte de a utiliza windowfocus, ca
va funcționa pe mai multe manageri de ferestre.
Dacă nu este dată nicio fereastră, %1 este implicit. Consultați „WINDOW STACK” și „COMMAND CHAINING”
pentru mai multe detalii.
--sincronizare
După trimiterea activării ferestrei, așteptați până când fereastra este activată efectiv.
Acest lucru este util pentru scripturile care depind de acțiunile finalizate înainte de mutare
pe.
getactivewindow
Ieșiți fereastra activă curentă. Această comandă este adesea mai fiabilă decât
getwindowfocus. Rezultatul este salvat în stiva de ferestre. Consultați „WINDOW STACK” pentru mai multe
Detalii.
set_num_desktop-uri număr
Modifică numărul de desktop-uri sau spații de lucru.
get_num_desktop-uri
Ieșiți numărul curent de desktop-uri.
get_desktop_viewport [--coajă]
Raportați poziția actuală a ferestrei de vizualizare. Dacă este dat --shell, rezultatul este prietenos cu
shell eval.
Vizualizările sunt uneori folosite în loc de „desktop-uri virtuale” pe unele manageri de ferestre. A
viewport este pur și simplu o vedere pe o zonă foarte mare de desktop.
set_desktop_viewport x y
Mutați fereastra în poziția dată. Nu toate cererile vor fi respectate - unele
windowmangers respectă numai solicitările care se aliniază la limitele spațiului de lucru, cum ar fi
marimea ecranului.
De exemplu, dacă ecranul dvs. are 1280x800, puteți trece la al doilea spațiu de lucru făcând:
xdotool set_desktop_viewport 1280 0
set_desktop [Opțiuni] desktop_number
Schimbați vizualizarea curentă la desktopul specificat.
--relativ
Folosiți mișcări relative în loc de absolute. Acest lucru vă permite să vă deplasați în raport cu
desktopul curent.
get_desktop
Ieșiți desktopul curent în vedere.
set_desktop_for_window [fereastră] desktop_number
Mutați o fereastră pe un alt desktop. Dacă nu este dată nicio fereastră, %1 este implicit. Vedea
„WINDOW STACK” și „COMMAND CHAINING” pentru mai multe detalii.
get_desktop_for_window [fereastră]
Ieșiți desktopul care conține în prezent fereastra dată. Mutați o fereastră în alta
desktop. Dacă nu este dată nicio fereastră, %1 este implicit. Consultați STACK DE FEREASTRĂ și „COMANDĂ
CHAINING" pentru mai multe detalii.
DIVERSE COMANDE
Exec [Opțiuni] comandă [...]
Executați un program. Acest lucru este adesea util atunci când este combinat cu behave_screen_edge to do
lucruri precum blocarea ecranului.
Opțiuni:
--sincronizare
Blocați până când procesul copil iese. Starea de ieșire a procesului copil este apoi trecută
la procesul părinte (xdotool) care îl copiază.
Exemple:
# Blocați ecranul când mouse-ul se află în colțul din dreapta sus
xdotool behave_screen_edge --delay 1000 sus-dreapta \
exec gnome-screensaver-command --lock
# Înlocuiți „xscreensaver-command -lock” dacă utilizați acel program.
# Următoarele nu vor muta mouse-ul deoarece folosim „--sync” și
# /bin/false iese diferit de zero:
xdotool exec --sync /bin/false miscare mouse-ul 0 0
# Acest lucru reușește, totuși, deoarece nu folosim --sync la comanda exec.
xdotool exec /bin/false miscare mouse-ul 0 0
probleme de somn secunde
Dormiți pentru o perioadă specificată. Fracțiile de secunde (cum ar fi 1.3 sau 0.4) sunt valide aici.
SCRIPTURI
xdotool poate citi o listă de comenzi prin stdin sau un fișier, dacă doriți. Un script va eșua
când orice comandă eșuează.
Adevărat, modul „script” nu este complet dezvoltat și poate fi sub așteptările tale. Dacă
aveți sugestii, vă rugăm să trimiteți lista prin e-mail sau să trimiteți o eroare (vezi CONTACT).
Scripturile pot folosi argumente poziționale (reprezentate prin $1, $2, ...) și mediu
variabile (cum ar fi $HOME sau $WINDOWID). Argumentele citate ar trebui să funcționeze conform așteptărilor.
Scripturile sunt procesate pentru extinderea parametrilor și a variabilelor de mediu și apoi rulează ca și cum
ați invocat xdotool cu întregul script pe o singură linie (folosind COMMAND CHAINING).
· Citiți comenzi dintr-un fișier:
nume de fișier xdotool
· Citiți comenzi din stdin:
xdotool -
· Citiți comenzi dintr-un fișier redirecționat
xdotool - <fișierul meu
De asemenea, puteți scrie scripturi care execută doar xdotool. Exemplu:
#!/usr/local/bin/xdotool
căutare --onlyvisible --classname $1
dimensiunea ferestrei %@ $2 $3
windowraise %@
windowmutare %1 0 0
windowmove %2 $2 0
windowmove %3 0 $3
windowmove %4 $2 $3
Acest script va prelua toate ferestrele potrivite de interogarea numelui de clasă dată de arg1 ($1) și
le dimensionează/le mută într-o grilă 2x2 cu ferestre dimensionate de al 2-lea și al 3-lea parametri.
Iată un exemplu de utilizare:
% ./myscript xterm 600 400
Dacă o rulați astfel, va fi nevoie de 4 xterm vizibili, le va ridica și le va muta într-o piesă de 2x2
grilă cu fiecare fereastră de 600x400 pixeli.
CLEARMODIFICATORI
Orice comandă care ia --clearmodificatori flag va încerca să șterge orice intrare activă
modificatori în timpul comenzii și restaurați-i ulterior.
De exemplu, dacă ar fi să rulați această comandă:
tasta xdotool a
Rezultatul ar fi „a” sau „A”, în funcție de dacă ați apăsat sau nu tasta Shift
pe tastatura ta. Adesea este de nedorit să aveți modificatori activi, așa că vă puteți da seama
xdotool pentru a șterge orice modificatori activi.
Ordinea operațiilor dacă țineți apăsat Shift în timp ce rulați „xdotool key --clearmodifiers a”
este acesta:
1. Interogare pentru toți modificatorii activi (găsește schimbarea, în acest caz)
2. Încercați să ștergeți shift trimițând „key up” pentru tasta shift
3. Rulează normal „xdotool key a”
4. Restabiliți tasta Shift trimițând „key down” pentru schimbare
--clearmodificatori În prezent, steag poate șterge următoarele:
· orice tastă din harta ta activă care are asociat un modificator. (Vedea
xmodmapIeșirea lui (1) „xmodmap -pm”)
· butoanele mouse-ului (1, 2, 3, 4 și 5)
· majuscule
SENDEVENT NOTE
Dacă încercați să trimiteți introducerea tastei într-o anumită fereastră și nu pare să fie
funcționează, atunci este posibil ca aplicația dvs. să ignore evenimentele pe care le generează xdotool.
Acest lucru este destul de comun.
Trimiterea tastelor la o anumită fereastră folosește un alt API decât simpla tastare în
fereastra activă. Dacă specificați „xdotool type --window 12345 hello”, xdotool va genera
evenimente cheie și trimiteți-le direct la fereastra 12345. Cu toate acestea, serverele X11 vor seta a
steag special pentru toate evenimentele generate în acest mod (vezi XEvent.xany.send_event în X11
manual). Multe programe respectă acest steag și resping aceste evenimente.
Este important de reținut că pentru evenimentele cheie și mouse, folosim XSendEvent numai când a
este vizată o anumită fereastră. În caz contrar, folosim XTEST.
Unele programe pot fi configurate să accepte evenimente chiar dacă sunt generate de xdotool.
Căutați documentația cererii dvs. de ajutor.
Note specifice aplicației (din testarea autorului): * Firefox 3 pare să ignore totul
intrare când nu are focalizare. * xterm poate fi configurat în timp ce rulează cu
ctrl+clic stânga, „Permite trimitere evenimente” * gnome-terminal pare să accepte intrarea generată de
Mod implicit.
FEREASTRA STIVA
Anumite comenzi (căutare, getactivewindow, getwindowfocus) vor găsi ferestre pentru dvs.
Aceste rezultate sunt în general tipărite în stdout, dar sunt și salvate în memorie pentru viitor
utilizați pe durata de viață a procesului xdotool. Consultați „ÎNCĂȚAREA COMANDEI” pentru mai multe
informaţii.
Singurele modificări suportate pentru stiva de ferestre sunt înlocuirea acestuia. Adică două din două
căutări secvențiale, numai ultimele rezultate vor fi stiva de ferestre.
COMMAND LANTULUI
xdotool acceptă rularea mai multor comenzi la o singură invocare. În general, vei începe
cu o comandă de căutare (vezi „WINDOW STACK”) și apoi efectuați un set de acțiuni asupra acestora
rezultate.
Pentru a interoga stiva de ferestre, puteți utiliza notația specială „%N” unde N este un număr sau
simbolul „@”. Dacă este dat %N, a N-a fereastră va fi selectată din stiva de ferestre.
În general, veți dori doar prima fereastră sau toate ferestrele. Rețineți că ordinea de
ferestrele din stiva de ferestre corespund ordinii de stivuire a ferestrelor, adică cea mai de jos
fereastra va fi raportată mai întâi (vezi XQueryTree(3)). Astfel ordinea ferestrelor în
stiva de ferestre poate să nu fie consecventă între invocări.
Notația descrisă mai sus este folosită ca argument „fereastră” pentru orice comandă dată.
De exemplu, pentru a redimensiona toate xterms la 80x24:
căutare xdotool --class xterm -- windowsize --usehints %@ 80 24
Redimensionare mută fereastra curentă:
xdotool getactivewindow windowmove 0 0
În toate cazurile, argumentul implicit al ferestrei, dacă este omis, va fi implicit „%1”. Este
evident, o eroare dacă omiteți argumentul ferestrei și stiva de ferestre este goală. daca tu
încercați să utilizați stiva de ferestre și este goală, este și o eroare.
Pentru a activa prima fereastră Firefox găsită:
căutare xdotool --class firefox windowactivate
Acestea ar eroa:
windowactivate xdotool
windowactivate xdotool %1
windowactivate xdotool %@
Când xdotool iese, stiva de ferestre curentă se pierde.
În plus, comenzile care modifică „WINDOW STACK” nu vor imprima rezultatele dacă acestea
nu sunt ultima comandă. De exemplu:
# Afișează fereastra activă:
% xdotool getactivewindow
20971533
# Afișează codul pid-ului ferestrei active, dar nu și ID-ul ferestrei active:
% xdotool getactivewindow getwindowpid
4686
EXTENDED FEREASTRA MANAGER SUGESTII
Sunt acceptate următoarele piese ale standardului EWMH:
_NET_SUPPORTED
Întreabă managerul de ferestre ce este acceptat
_NET_CURRENT_DESKTOP
Interogați și setați desktopul curent. Suportul pentru aceasta permite aceste comenzi:
„set_desktop”, „get_desktop”.
_NET_WM_DESKTOP
Interogați și setați pe ce desktop locuiește o fereastră. Suportul pentru aceasta le activează
comenzi: „set_desktop_for_window”, „get_desktop_for_window”.
_NET_ACTIVE_WINDOW
Vă permite să interogați și să setați fereastra activă solicitând managerului de ferestre să o aducă
redirecţiona. Suportul pentru aceasta permite aceste comenzi: „windowactivate”, „getactivewindow”.
_NET_WM_PID
Această caracteristică depinde de aplicație, nu de managerul de ferestre. Interogați PID-ul
deținând o fereastră dată. Suportul pentru aceasta permite aceste comenzi: „getwindowpid”.
SPRIJINIT CARACTERISTICI
xdotool (și libxdo) va încerca să funcționeze în toate circumstanțele. Cu toate acestea, poate exista
unele cazuri în care funcționalitatea nu este furnizată de serverul dvs. X sau de managerul de ferestre.
În aceste cazuri, xdotool va încerca să detecteze și să vă spună dacă o acțiune necesită o funcție
nu este acceptat în prezent de sistemul dvs.
Pentru caracteristicile specifice managerului de ferestre, consultați „SUGESTII EXTINDE A MANAGERULUI DE FEREASTRĂ”.
XTEST
Dacă serverul dvs. X nu acceptă XTEST, atunci unele funcții de tastare și mișcare a mouse-ului
poate să nu funcționeze. Mai exact, tastarea și acțiunile mouse-ului care acționează asupra „fereastra curentă”
(fereastra 0 în libxdo) este puțin probabil să funcționeze.
În cele mai multe cazuri, XTEST este o caracteristică pe care o puteți activa pe serverul dvs. X dacă nu este activată
în mod implicit.
Puteți vedea lista de extensii X acceptate tastând „xdpyinfo” și cautând
textul „număr de extensii:...”
Utilizați xdotool online folosind serviciile onworks.net