xdotool
Este é o comando xdotool que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas várias estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS
PROGRAMA:
NOME
xdotool - ferramenta de automação de linha de comando X11
SINOPSE
xdotool cmd args ...
Notação: Alguns usos da documentação [janela] para denotar um argumento de janela opcional. Esse
case significa que o argumento, se não estiver presente, será "% 1" por padrão. Veja "PILHA DE JANELA" para
o que "% 1" significa.
DESCRIÇÃO
xdotool permite que você simule programaticamente (ou manualmente) a entrada do teclado e a atividade do mouse,
mover e redimensionar janelas, etc. Ele faz isso usando a extensão XTEST do X11 e outro Xlib
funções.
Há algum suporte para dicas do Extended Window Manager (também conhecido como EWMH ou NetWM). Veja o
Seção "DICAS PARA O GERENCIADOR DE JANELA ESTENDIDA" para obter mais informações.
TECLADO COMANDOS
chave [opções] batida de tecla [batida de tecla ...]
opções:
--janela janela
Envia pressionamentos de tecla para um id de janela específico. Você pode usar referências de "WINDOW STACK"
como "% 1" e "% @" aqui. Se houver uma pilha de janelas, "% 1" é o padrão,
caso contrário, a janela atual é usada.
Veja também: "NOTAS DE SENDEVENT" e "PILHA DE JANELA"
--clearmodifiers
Limpe os modificadores antes de enviar pressionamentos de tecla. Veja CLEARMODIFICADORES abaixo.
--atraso milissegundos
Atraso entre as teclas. O padrão é 12 ms.
Digite um determinado pressionamento de tecla. Os exemplos são "alt + r", "Control_L + J", "ctrl + alt + n",
"BackSpace".
Geralmente, qualquer string X Keysym válida funcionará. Várias chaves são separadas por '+'.
Existem aliases para "alt", "ctrl", "shift", "super" e "meta" que mapeiam para Foo_L,
como Alt_L e Control_L, etc.
Nos casos em que o teclado não tem realmente a tecla que você deseja digitar, xdotool
irá encontrar automaticamente um código de acesso não utilizado e usá-lo para digitar a chave.
Com relação ao "COMMAND CHAINING", este comando consome o restante do
argumentos ou até que um novo comando xdotool seja visto, porque nenhum comando xdotool é
pressionamentos de tecla válidos.
Exemplo: enviar o pressionamento de tecla "F2"
tecla xdotool F2
Exemplo: Envie 'a' com um acento sobre ele (não em teclados em inglês, mas ainda funciona
com xdotool)
chave xdotool Aacute
Exemplo: envie ctrl + l e, em seguida, BackSpace como pressionamentos de tecla separados:
Tecla xdotool ctrl + l BackSpace
Exemplo: enviar ctrl + c para todas as janelas que correspondam ao título 'gdb' (consulte "ENCADEAMENTO DE COMANDO")
xdotool search --name tecla gdb ctrl + c
keydown [opções] batida de tecla
Igual ao anterior, exceto que apenas eventos keydown (press) são enviados.
teclar batida de tecla
Igual ao anterior, exceto que apenas eventos de ativação (liberação) são enviados.
tipo [opções] alguma coisa para tipo
opções:
--janela janela
Envia pressionamentos de tecla para um id de janela específico. Veja "NOTAS DE ENVIO" abaixo. O padrão,
se nenhuma janela for fornecida, depende da pilha de janelas. Se a pilha de janelas estiver vazia
a janela atual é digitada usando XTEST. Caso contrário, o padrão é "% 1" (veja
"PILHA DE JANELA").
--atraso milissegundos
Atraso entre as teclas. O padrão é 12 ms.
--clearmodifiers
Limpe os modificadores antes de enviar pressionamentos de tecla. Veja CLEARMODIFICADORES abaixo.
Digite como se você tivesse digitado. Suporta novas linhas e guias (nova linha ASCII e guia). Cada
o pressionamento de tecla é separado por um atraso dado pelo --atraso opção.
Com relação ao "COMMAND CHAINING", este comando consome o restante do
argumentos e os digita. Ou seja, nenhum comando pode ser encadeado após 'tipo'.
Exemplo: para digitar 'Olá, mundo!' você faria:
xdotool digite 'Olá, mundo!'
MOUSE COMANDOS
movimento do mouse [opções] x y OR 'restaurar'
Mova o mouse para as coordenadas X e Y específicas na tela.
Você pode mover o mouse para o local anterior se especificar 'restaurar' em vez de um
Coordenadas X e Y. A restauração só funciona se você tiver mudado anteriormente neste mesmo
invocação de comando. Além disso, ele não funciona com a opção --window.
Por exemplo, para clicar no canto superior esquerdo da tela e mover o mouse para o
posição original antes de movê-la, use isto:
xdotool mousemove 0 0 clique 1 restauração do mousemove
--janela JANELA
Especifique uma janela para a qual mover em relação. As coordenadas 0,0 estão no canto superior esquerdo do
janela que você escolher.
As referências "WINDOW STACK" são válidas aqui, como% 1 e% @. Porém, usando% @
provavelmente não faz sentido.
--tela TELA
Mova o mouse para a tela especificada para a qual mover. Isso só é útil se você tiver
várias telas e NÃO ESTÃO usando o Xinerama.
O padrão é a tela atual. Se você especificar --window, o sinalizador --screen é
ignorado.
--polar
Use coordenadas polares. Isso torna 'x' um ângulo (em graus, 0-360, etc) e 'y'
a distancia.
A rotação começa em 'cima' (0 graus) e gira no sentido horário: 90 = direita, 180 = baixo,
270 = esquerda.
O padrão de origem é o centro da tela atual. Se você especificar um
--window, a origem é o centro dessa janela.
--clearmodifiers
Veja CLEARMODIFIERS
--sincronizar
Depois de enviar a solicitação de movimento do mouse, espere até que o mouse seja realmente movido. Se
nenhum movimento é necessário, não vamos esperar. Isso é útil para scripts que dependem
sobre as ações que estão sendo concluídas antes de prosseguir.
Nota: Esperamos até que o mouse se mova, não necessariamente que ele realmente
chega ao seu destino pretendido. Alguns aplicativos bloqueiam o cursor do mouse para
certas regiões da tela, então esperar por qualquer movimento é melhor no
caso geral do que esperar por um alvo específico.
mousemove_relative [opções] x y
Mova o mouse x, y pixels em relação à posição atual do cursor do mouse.
--polar
Use coordenadas polares. Isso torna 'x' um ângulo (em graus, 0-360, etc) e 'y'
a distancia.
A rotação começa em 'cima' (0 graus) e gira no sentido horário: 90 = direita, 180 = baixo,
270 = esquerda.
--sincronizar
Depois de enviar a solicitação de movimento do mouse, espere até que o mouse seja realmente movido. Se
nenhum movimento é necessário, não vamos esperar. Isso é útil para scripts que dependem
sobre as ações que estão sendo concluídas antes de prosseguir.
Observe que esperamos até que o mouse se mova, não necessariamente que ele realmente
chega ao seu destino pretendido. Alguns aplicativos bloqueiam o cursor do mouse para
certas regiões da tela, então esperar por qualquer movimento é melhor no
caso geral do que esperar por um alvo específico.
--clearmodifiers
Veja CLEARMODIFIERS
clique [opções] botão
Envie um clique, ou seja, um movimento do mouse seguido do mouseup para o botão fornecido com um
pequeno atraso entre os dois (atualmente 12ms).
Os botões geralmente mapeiam desta forma: o botão esquerdo do mouse é 1, o meio é 2, o direito é 3, a roda para cima é
4, a roda para baixo é 5.
--clearmodifiers
Limpe os modificadores antes de clicar. Veja CLEARMODIFICADORES abaixo.
--repetir REPETIR
Especifique quantas vezes clicar. O padrão é 1. Para um clique duplo, use '--repeat
2'
--atraso MILISSEGUNDOS
Especifique quanto tempo, em milissegundos, para atrasar entre os cliques. Esta opção não é
usado se o --repetir sinalizador é definido como 1 (padrão).
--janela JANELA
Especifique uma janela para a qual enviar um clique. Consulte "NOTAS DE ENVIO" abaixo para advertências. Usos
a posição atual do mouse ao gerar o evento.
O padrão, se nenhuma janela for fornecida, depende da pilha de janelas. Se a janela
pilha está vazia, a janela atual é digitada usando XTEST. Caso contrário, o padrão
é "% 1" (consulte "PILHA DE JANELA").
mouse para baixo [opções] botão
Igual a clique, exceto que apenas um mouse para baixo é enviado.
mouse para cima [opções] botão
Igual a clique, exceto que apenas um mouse para cima é enviado.
obter localização do mouse [--Concha]
Exibe o x, y, tela e id da janela do cursor do mouse. Os números da tela serão
diferente de zero se você tiver vários monitores e não estiver usando o Xinerama.
- concha
Isso torna os dados do shell de saída getmouselocation que você pode avaliar. Exemplo:
% xdotool getmouselocation --shell
X = 880
Y = 443
TELA = 0
WINDOW = 16777250
% eval $ (xdotool getmouselocation --shell)
% echo $ X, $ Y
714,324
behavior_screen_edge [opções] onde comando ...
Vincule uma ação a eventos quando o mouse atinge a borda ou canto da tela.
Opções são:
--atraso MILISSEGUNDOS
Atraso em milissegundos antes de executar o comando. Isso permite que você exija um
determinada borda ou canto deve ser mantido por um curto período antes de seu comando ser executado.
Se você deixar a borda ou o canto antes que o atraso expire, o tempo será zerado.
--quiescer MILISSEGUNDOS
Atraso em milissegundos antes que o próximo comando seja executado. Isso ajuda a prevenir
executar acidentalmente seu comando vezes extras; especialmente útil se você tiver um
muito curto --delay (como o padrão de 0).
Linha do tempo do evento
* O mouse atinge uma borda ou canto.
* Se o atraso for diferente de zero, o mouse deve permanecer nesta borda ou canto até que o tempo de atraso expire.
* Se ainda estiver na borda / canto, acione.
* Se quiesce for diferente de zero, então há um período de resfriamento onde o próximo
o gatilho não pode ocorrer
Os valores 'onde' válidos são:
esquerda
superior esquerdo
topo
canto superior direito
certo
inferior esquerdo
fundo
canto inferior direito
Exemplos:
# Ative google-chrome ao mover o mouse para o canto inferior esquerdo:
xdotool behave_screen_edge inferior esquerdo \
pesquisar --class google-chrome windowativar
# Vá para a próxima área de trabalho (direita). Conhecido por trabalhar no GNOME (metacity e compiz)
xdotool behave_screen_edge --delay 500 tecla inferior direita XF86Forward
# Ative o firefox e faça uma pesquisa na web em uma nova guia para o texto em sua área de transferência
xdotool behave_screen_edge --delay 1000 superior esquerdo \
search --classname Navegador \
janelaativar - tecla de sincronização - atrasar 250 ctrl + t ctrl + k ctrl + v Retornar
JANELA COMANDOS
search [opções] de cinto de segurança
Procure janelas com títulos, nomes ou classes com um padrão de expressão regular.
A saída é uma lista delimitada por linha de identificadores de janela X. Se você estiver usando "COMMAND
CHAINING ", o comando de pesquisa só gravará ids de janela em stdout se for o último
(ou apenas) comando na cadeia; caso contrário, fica em silêncio.
O resultado é salvo na pilha de janelas para futuros comandos encadeados. Veja "JANELA
STACK "e" COMMAND CHAINING "para obter detalhes.
As opções padrão são "--name --class --classname" (a menos que você especifique uma ou
mais de --name --class ou --classname).
As opções disponíveis são:
--classe
Corresponde à classe da janela.
--nome da classe
Corresponde ao nome de classe da janela.
--profundidade máxima N
Definir recursão / profundidade de pesquisa de filho. O padrão é -1, o que significa infinito. 0 significa não
profundidade, apenas as janelas raiz serão pesquisadas. Se você deseja apenas janelas de nível superior, defina
maxdepth of 1 (ou 2, dependendo de como o gerenciador de janelas faz as decorações).
--nome
Corresponde ao nome da janela. Esta é a mesma string que é exibida no
barra de título da janela.
- apenas visível
Mostra apenas as janelas visíveis nos resultados. Isso significa aqueles com estado de mapa
É Visível.
--pid PID
Corresponde às janelas que pertencem a um ID de processo específico. Isso pode não funcionar para alguns X
aplicativos que não definem esses metadados em suas janelas.
--tela N
Selecione janelas apenas em uma tela específica. O padrão é pesquisar todas as telas. Somente
significativo se você tiver vários monitores e não estiver usando o Xinerama.
--Área de Trabalho N
Corresponde apenas a janelas em uma determinada área de trabalho. 'N' é um número. O padrão é pesquisar
todos os desktops.
--limite N
Pare de pesquisar depois de encontrar N janelas correspondentes. Especificar um limite ajudará
acelere sua pesquisa se você quiser apenas alguns resultados.
O padrão é sem limite de pesquisa (que é equivalente a '--limit 0')
--título
DESCONTINUADA. Veja --name.
--tudo
Exigir que todas as condições sejam atendidas. Por exemplo:
xdotool search --all --pid 1424 --name "Hello World"
Irá corresponder apenas a janelas que tenham "Hello World" como nome e sejam propriedade de
pid 1424.
--algum
Corresponde às janelas que correspondem a qualquer condição (logicamente, 'ou'). Está ativado por padrão.
Por exemplo:
xdotool search --any --pid 1424 --name "Hello World"
Isso irá corresponder a qualquer janela pertencente a pid 1424 ou windows com o nome "Hello World"
--sincronizar
Bloqueie até que haja resultados. Isso é útil quando você está lançando um
o aplicativo deseja aguardar até que a janela do aplicativo esteja visível. Para
exemplo:
google-chrome &
xdotool search --sync --onlyvisible --class "google-chrome"
selecionar janela
Obtenha o id da janela (para um cliente) clicando nele. Útil para ter scripts de consulta
vocês, humanos, por qual janela agirem. Por exemplo, matando uma janela clicando nela:
xdotool selectwindow windowkill
comportar-se janela açao comando ...
Vincule uma ação a um evento em uma janela. Isso permite que você execute comandos xdotool adicionais
sempre que ocorre um evento correspondente.
O comando executado como resultado do comportamento é executado com% 1 sendo a janela que foi
agiu sobre. Os exemplos seguem após a lista de eventos.
Os seguintes são eventos válidos:
mouse enter
Dispara quando o mouse entra em uma janela. Isso é semelhante a eventos de 'passar o mouse' em
javascript, se isso ajudar.
sair do mouse
Dispara quando o mouse sai de uma janela. Este é o oposto de 'inserir o mouse'
clique do mouse
Dispara quando o mouse é clicado. Especificamente, quando o botão do mouse é liberado.
nas
Dispara quando a janela obtém o foco de entrada.
borrão
Dispara quando a janela perde o foco.
Exemplos:
# Imprime a localização do cursor sempre que o mouse entra em um campo visível
# janela:
xdotool search --onlyvisible. comporte-se% @ mouse - digite getmouselocation
# Imprime o título da janela e pid sempre que um xterm obtém o foco
xdotool search --class xterm behave% @ focus getwindowname getwindowpid
# Emular o foco segue o mouse
xdotool search. comporte-se% @ mouse - insira o foco na janela
obterjanelapid [janela]
Envie o PID que possui uma determinada janela. Isso requer esforço da propriedade do aplicativo
uma janela e pode não funcionar para todas as janelas. Isso usa a propriedade _NET_WM_PID do
janela. Consulte "DICAS PARA O GERENCIADOR DE JANELA ESTENDIDA" a seguir para obter mais informações.
Se nenhuma janela for fornecida, o padrão é '% 1'. Se nenhuma janela estiver na pilha, então este
é um erro. Consulte "PILHA DE JANELA" para obter mais detalhes.
Exemplo: Encontre o PID para todos os xterms:
xdotool search --class xterm getwindowpid% @
obter nome da janela [janela]
Produza o nome de uma determinada janela, também conhecido como título. Este é o texto exibido
na barra de título da janela pelo seu gerenciador de janelas.
Se nenhuma janela for fornecida, o padrão é '% 1'. Se nenhuma janela estiver na pilha, então este
é um erro. Consulte "PILHA DE JANELA" para obter mais detalhes.
geometria [opções] [janela]
Produza a geometria (localização e posição) de uma janela. Os valores incluem: x, y,
largura, altura e número da tela.
- concha
Valores de saída adequados para 'eval' em um shell.
obter foco da janela [-f]
Imprime o id da janela da janela atualmente em foco. Salva o resultado na janela
pilha. Consulte "PILHA DE JANELA" para obter mais detalhes.
Se a janela atual não tiver propriedade WM_CLASS, presumimos que não é um nível superior normal
janela e atravesse os pais até encontrarmos uma janela com um conjunto WM_CLASS e
retornar esse id de janela.
Se você realmente deseja que a janela esteja em foco e não se importe se ela tiver um
Configuração WM_CLASS, então use 'getwindowfocus -f'
tamanho da janela [opções] [janela] largura altura
Defina o tamanho da janela de determinada janela. Se nenhuma janela for fornecida,% 1 é o padrão.
Consulte "WINDOW STACK" e "COMMAND CHAINING" para obter mais detalhes.
As porcentagens são válidas para largura e altura. Eles são relativos à geometria do
tela a janela está ligada. Por exemplo, para deixar uma janela com a largura total da tela,
mas meia altura:
xdotool windowsize I 100% 50%
As porcentagens são válidas com --usehints e ainda significam largura de pixel em relação ao
tamanho da tela.
As opções disponíveis são:
--dicas de uso
Use dicas de tamanho de janela (quando disponíveis) para definir a largura e a altura. Isso é útil
em terminais para definir o tamanho com base na linha / coluna de texto em vez de pixels.
--sincronizar
Depois de enviar a solicitação de tamanho da janela, espere até que ela seja realmente redimensionada.
Se nenhuma mudança for necessária, não esperaremos. Isso é útil para scripts que
dependem de ações sendo concluídas antes de prosseguir.
Nota: Porque muitos gerenciadores de janela podem ignorar ou alterar o redimensionamento original
pedido, vamos esperar até que o tamanho mude de seu tamanho original, não é necessário
para o tamanho solicitado.
Exemplo: para definir um terminal com 80 x 24 caracteres, você usaria:
xdotool windowssize --usehints alguma_janela 80 24
movimento de janela [opções] [janela] x y
Mova a janela para a posição fornecida. Se nenhuma janela for fornecida,% 1 é o padrão. Ver
"WINDOW STACK" e "COMMAND CHAINING" para obter mais detalhes.
Se a coordenada x fornecida for literalmente 'x', então a posição x atual da janela irá
ser inalterado. O mesmo se aplica a 'y'.
Exemplos:
xdotool getactivewindow windowmove 100 100 # Move para 100,100
xdotool getactivewindow windowmove x 100 # Move para x, 100
xdotool getactivewindow windowmove 100 y # Move para 100, y
xdotool getactivewindow windowmove 100 y # Move para 100, y
--sincronizar
Depois de enviar a solicitação de movimentação da janela, espere até que a janela seja realmente movida. Se
nenhum movimento é necessário, não vamos esperar. Isso é útil para scripts que dependem
sobre as ações que estão sendo concluídas antes de prosseguir.
--relativo
Faça um movimento em relação à posição atual da janela.
foco de janela [opções] [janela]
Focalize uma janela. Se nenhuma janela for fornecida,% 1 é o padrão. Veja "PILHA DE JANELA" e
"COMMAND CHAINING" para mais detalhes.
Usa XSetInputFocus, que pode ser ignorado por alguns gerenciadores de janela ou programas.
--sincronizar
Depois de enviar a solicitação de foco da janela, espere até que a janela esteja realmente focada.
Isso é útil para scripts que dependem de ações sendo concluídas antes de mover
em.
mapa de janela [opções] [janela]
Mapeie uma janela. Na terminologia X11, mapear uma janela significa torná-la visível no
tela. Se nenhuma janela for fornecida,% 1 é o padrão. Veja "PILHA DE JANELA" e "COMANDO
CHAINING "para mais detalhes.
--sincronizar
Depois de solicitar o mapa da janela, espere até que a janela esteja realmente mapeada
(visível). Isso é útil para scripts que dependem de ações sendo concluídas
antes de seguir em frente.
janela minimiza [opções] [janela]
Minimize uma janela. Na terminologia do X11, isso é chamado de 'iconificar'. Se nenhuma janela for
dado,% 1 é o padrão. Consulte "WINDOW STACK" e "COMMAND CHAINING" para obter mais detalhes.
--sincronizar
Após solicitar a minimização da janela, espere até que ela seja realmente minimizada.
Isso é útil para scripts que dependem de ações sendo concluídas antes de mover
em.
janela [window_id =% 1]
Levante a janela até o topo da pilha. Isso pode não funcionar em todos os gerenciadores de janela. Se
nenhuma janela é fornecida,% 1 é o padrão. Veja "PILHA DE JANELA" e "ENCADEAMENTO DE COMANDO" para
mais detalhes.
vitrine [janela_fonte] janela_destino
Reparent uma janela. Isso move o fonte_janela ser uma janela infantil de
janela_destino. Se nenhuma fonte for fornecida,% 1 é o padrão. Janela "WINDOW STACK"
referências (como% 1) são válidas para ambos fonte_janela e janela_destino See
"WINDOW STACK" e "COMMAND CHAINING" para obter mais detalhes.
janela fechada [janela]
Feche uma janela. Esta ação irá destruir a janela, mas não tentará matar o
cliente controlando-o. Se nenhuma janela for fornecida,% 1 é o padrão. Veja "PILHA DE JANELA"
e "COMMAND CHAINING" para mais detalhes.
matança de janela [janela]
Mate uma janela. Esta ação irá destruir a janela e matar o cliente que a controla.
Se nenhuma janela for fornecida,% 1 é o padrão. Veja WINDOW STACK e "COMMAND CHAINING" para
mais detalhes.
janela unmap [opções] [window_id =% 1]
Remova o mapeamento de uma janela, fazendo com que ela não apareça mais na tela. Se nenhuma janela for fornecida,% 1
é o padrão. Consulte "WINDOW STACK" e "COMMAND CHAINING" para obter mais detalhes.
--sincronizar
Depois de solicitar o desmapeamento da janela, espere até que a janela esteja realmente desmapeada
(escondido). Isso é útil para scripts que dependem de ações sendo concluídas antes
se movendo.
set_window [opções] [windowid =% 1]
Defina as propriedades de uma janela. Se nenhuma janela for fornecida,% 1 é o padrão. Veja "JANELA
STACK "e" COMMAND CHAINING "para mais detalhes.
opções:
--nome novo nome
Definir janela WM_NAME (o título da janela, geralmente)
--icon-nome novo nome de ícone
Definir janela WM_ICON_NAME (o título da janela quando minimizada, geralmente)
--Função Novo papel
Definir janela WM_WINDOW_ROLE
--nome da classe novaclasse
Definir o nome da classe da janela (não deve ser confundido com a classe da janela)
--classe nova classe
Definir a classe da janela (não deve ser confundida com o nome da classe da janela)
--overridredirect valor
Defina o valor override_redirect da janela. Este valor é uma dica para o gerenciador de janelas
para saber se deve ou não ser gerenciado. Se o valor de redirecionamento for 0, então o
O gerenciador de janelas desenhará bordas e tratará esta janela normalmente. Se o valor for
1, o gerenciador de janelas irá ignorar esta janela.
Se você alterar este valor, seu gerenciador de janelas pode não notar a mudança até que o
janela é mapeada novamente, então você pode querer emitir 'windowunmap' e 'windowmap' para
faça o gerenciador de janelas tomar nota.
DESKTOP E JANELA COMANDOS
Esses comandos seguem o padrão EWMH. Consulte a seção "DICAS PARA O GERENCIADOR DE JANELA ESTENDIDA"
para entender melhor.
janela ativa [opções] [janela]
Ative a janela. Este comando é diferente de windowfocus: se a janela estiver ligada
outra área de trabalho, vamos mudar para essa área de trabalho. Ele também usa um método diferente para
trazendo a janela para cima. Eu recomendo tentar este comando antes de usar o windowfocus, pois
funcionará em mais gerenciadores de janela.
Se nenhuma janela for fornecida,% 1 é o padrão. Veja "PILHA DE JANELA" e "ENCADEAMENTO DE COMANDO"
para mais detalhes.
--sincronizar
Após enviar a ativação da janela, aguarde até que ela seja realmente ativada.
Isso é útil para scripts que dependem de ações sendo concluídas antes de mover
em.
obter janela ativa
Exibe a janela ativa atual. Este comando é frequentemente mais confiável do que
getwindowfocus. O resultado é salvo na pilha de janelas. Veja "PILHA DE JANELA" para mais
Detalhes.
set_num_desktops número
Altera o número de desktops ou espaços de trabalho.
get_num_desktops
Produza o número atual de desktops.
get_desktop_viewport [--Concha]
Relata a posição da janela de visualização atual. Se --shell for fornecido, a saída é amigável para
escudo eval.
Portas de visualização às vezes são usadas em vez de 'áreas de trabalho virtuais' em alguns gerenciadores de janela. UMA
a janela de visualização é simplesmente uma visualização em uma área de trabalho muito grande.
set_desktop_viewport x y
Mova a janela de exibição para a posição fornecida. Nem todos os pedidos serão obedecidos - alguns
os gerenciadores de janelas só obedecem a solicitações que se alinham aos limites do espaço de trabalho, como o
tamanho da tela.
Por exemplo, se sua tela é 1280 x 800, você pode mover para o segundo espaço de trabalho fazendo:
xdotool set_desktop_viewport 1280 0
set_desktop [opções] número_do_desktop
Altera a visualização atual para a área de trabalho especificada.
--relativo
Use movimentos relativos em vez de absolutos. Isso permite que você se mova em relação ao
área de trabalho atual.
get_desktop
Envie a área de trabalho atual à vista.
set_desktop_for_window [janela] número_do_desktop
Mova uma janela para uma área de trabalho diferente. Se nenhuma janela for fornecida,% 1 é o padrão. Ver
"WINDOW STACK" e "COMMAND CHAINING" para obter mais detalhes.
get_desktop_for_window [janela]
Envie a área de trabalho que contém a janela fornecida. Mova uma janela para outro
Área de Trabalho. Se nenhuma janela for fornecida,% 1 é o padrão. Veja WINDOW STACK e "COMMAND
CHAINING "para mais detalhes.
DIVERSOS COMANDOS
exec [opções] comando [...]
Execute um programa. Isso geralmente é útil quando combinado com behave_screen_edge para fazer
coisas como bloquear sua tela.
opções:
--sincronizar
Bloqueie até que o processo filho saia. O status de saída do processo filho é então aprovado
para o processo pai (xdotool) que o copia.
Exemplos:
# Bloqueie a tela quando o mouse se posicionar no canto superior direito
xdotool behave_screen_edge --delay 1000 superior direito \
exec gnome-screensaver-command --lock
# Substitua 'xscreensaver-command -lock' se você usar esse programa.
# O seguinte não moverá o mouse porque usamos '--sync' e
# / bin / false saídas diferentes de zero:
xdotool exec --sync / bin / false movimento do mouse 0 0
# Isso é bem-sucedido, pois não usamos --sync no comando exec.
xdotoolexec / bin / false movimento do mouse 0 0
dormir segundo
Durma por um período específico. Frações de segundos (como 1.3 ou 0.4) são válidas aqui.
CRITÉRIOS
xdotool pode ler uma lista de comandos via stdin ou um arquivo se você quiser. Um script irá falhar
quando qualquer comando falha.
Sinceramente, o modo 'script' não está totalmente desenvolvido e pode ficar abaixo de suas expectativas. Se
se você tiver sugestões, envie a lista por e-mail ou registre um bug (consulte CONTATO).
Os scripts podem usar argumentos posicionais (representados por $ 1, $ 2, ...) e ambiente
variáveis (como $ HOME ou $ WINDOWID). Os argumentos de citação devem funcionar conforme o esperado.
Os scripts são processados para expansão de parâmetro e variável de ambiente e, em seguida, executados como se
você invocou o xdotool com o script inteiro em uma linha (usando COMMAND CHAINING).
· Leia os comandos de um arquivo:
nome do arquivo xdotool
· Leia os comandos de stdin:
xdotool -
· Leia comandos de um arquivo redirecionado
xdotool - <meuarquivo
Você também pode escrever scripts que executam apenas xdotool. Exemplo:
#! / usr / local / bin / xdotool
search --onlyvisible --classname $ 1
tamanho da janela% @ $ 2 $ 3
windowraise% @
janela movida% 1 0 0
janela movida% 2 $ 2 0
janela mover% 3 0 $ 3
janela mover% 4 $ 2 $ 3
Este script pegará todas as janelas correspondidas pela consulta classname dada por arg1 ($ 1) e
dimensiona / move-os em uma grade 2x2 com janelas dimensionadas pelo segundo e terceiro parâmetros.
Aqui está um exemplo de uso:
% ./myscript xterm 600 400
Executá-lo desta forma irá exigir 4 xterms visíveis, aumentá-los e movê-los para um bloco 2x2
grade com cada janela de 600x400 pixels de tamanho.
CLEARMODIFICADORES
Qualquer comando tomando o --clearmodifiers sinalizador tentará limpar qualquer entrada ativa
modificadores durante o comando e restaurá-los posteriormente.
Por exemplo, se você fosse executar este comando:
xdotool chave a
O resultado seria 'a' ou 'A' dependendo se você estava segurando a tecla shift ou não
no seu teclado. Freqüentemente, é indesejável ter qualquer modificador ativo, então você pode dizer
xdotool para limpar quaisquer modificadores ativos.
A ordem das operações se você segurar a tecla shift enquanto executa 'xdotool key --clearmodifiers a'
é esta:
1. Consulta para todos os modificadores ativos (encontra o deslocamento, neste caso)
2. Tente limpar o shift enviando 'tecla para cima' para a tecla shift
3. Executa a 'xdotool key a' normal
4. Restaure a tecla shift enviando 'tecla para baixo' para shift
A --clearmodifiers a bandeira pode atualmente limpar o seguinte:
· Qualquer tecla em seu mapa de teclado ativo que tenha um modificador associado a ela. (Ver
xmodmap(1) saída 'xmodmap -pm' de 's)
· Botões do mouse (1, 2, 3, 4 e 5)
· Caps Lock
ENVIAR NOTAS
Se você está tentando enviar uma entrada de chave para uma janela específica, e não parece ser
funcionando, então é provável que seu aplicativo esteja ignorando os eventos que o xdotool está gerando.
Isso é bastante comum.
O envio de pressionamentos de tecla para uma janela específica usa uma API diferente do que simplesmente digitar para o
janela ativa. Se você especificar 'xdotool type --window 12345 hello', o xdotool irá gerar
eventos-chave e enviá-los diretamente para a janela 12345. No entanto, os servidores X11 definirão um
sinalizador especial em todos os eventos gerados desta forma (ver XEvent.xany.send_event no X11
manual). Muitos programas observam esse sinalizador e rejeitam esses eventos.
É importante observar que, para eventos de tecla e mouse, só usamos XSendEvent quando um
janela específica é direcionada. Caso contrário, usamos XTEST.
Alguns programas podem ser configurados para aceitar eventos, mesmo que sejam gerados pelo xdotool.
Procure a documentação de seu aplicativo para obter ajuda.
Notas específicas do aplicativo (do teste do autor): * O Firefox 3 parece ignorar todos
entrada quando não tem foco. * xterm pode ser configurado durante a execução com
ctrl + clique com o botão esquerdo, 'Permitir SendEvents' * gnome-terminal parece aceitar a entrada gerada por
padrão.
JANELA PILHA
Certos comandos (search, getactivewindow, getwindowfocus) encontrarão janelas para você.
Esses resultados geralmente são impressos em stdout, mas também são salvos na memória para uso futuro
usar durante a vida útil do processo xdotool. Veja "COMMAND CHAINING" para mais
informações.
O único suporte de modificações para a pilha de janelas é substituí-la. Ou seja, dois de dois
pesquisas sequenciais, apenas os resultados do último serão a pilha de janelas.
COMANDO CORRENTE
xdotool oferece suporte à execução de vários comandos em uma única chamada. Geralmente, você vai começar
com um comando de pesquisa (consulte "PILHA DE JANELA") e, em seguida, execute um conjunto de ações nesses
resultados.
Para consultar a pilha de janelas, você pode usar a notação especial "% N" onde N é um número ou o
símbolo '@'. Se% N for fornecido, a enésima janela será selecionada na pilha de janelas.
Geralmente, você deseja apenas a primeira janela ou todas as janelas. Observe que a ordem de
janelas na pilha de janelas correspondem à ordem de empilhamento das janelas, ou seja, a parte inferior
janela será relatada primeiro (veja XQueryTreeName(3)). Assim, a ordem das janelas no
a pilha de janelas pode não ser consistente nas chamadas.
A notação descrita acima é usada como o argumento de "janela" para qualquer comando fornecido.
Por exemplo, para redimensionar todos os xterms para 80x24:
xdotool search --class xterm - windowsize --usehints% @ 80 24
Redimensionar move a janela atual:
xdotool getactivewindow windowmove 0 0
Em todos os casos, o argumento da janela padrão, se omitido, será "% 1" como padrão. Isto é
obviamente, um erro se você omitir o argumento da janela e a pilha da janela estiver vazia. Se você
tente usar a pilha de janelas e ela estiver vazia, também é um erro.
Para ativar a primeira janela do firefox encontrada:
xdotool search --class firefox windowactivate
Isso causaria um erro:
xdotool windowativar
xdotool windowactivate% 1
xdotool windowactivate% @
Quando o xdotool sai, a pilha da janela atual é perdida.
Além disso, os comandos que modificam o "WINDOW STACK" não imprimirão os resultados se eles
não são o último comando. Por exemplo:
# Saída da janela ativa:
% xdotool getactivewindow
20971533
# Produz o pid da janela ativa, mas não o id da janela ativa:
% xdotool getactivewindow getwindowpid
4686
ESTENDIDO JANELA MANAGER HINTS
As seguintes peças do padrão EWMH são suportadas:
_NET_SUPORTADO
Pergunta ao gerenciador de janelas o que é suportado
_NET_CURRENT_DESKTOP
Consulte e defina a área de trabalho atual. O suporte para isso permite estes comandos:
"set_desktop", "get_desktop".
_NET_WM_DESKTOP
Consulte e defina em que área de trabalho a janela está morando. O suporte para isso permite que
comandos: "set_desktop_for_window", "get_desktop_for_window".
_NET_ACTIVE_WINDOW
Lhe permite consultar e definir a janela ativa, pedindo ao gerenciador de janelas para trazê-la
frente. O suporte para isso habilita estes comandos: "windowactivate", "getactivewindow".
_NET_WM_PID
Este recurso depende do aplicativo, não do gerenciador de janelas. Consultar o PID
possuir uma determinada janela. O suporte para isso permite estes comandos: "getwindowpid".
SUPORTADOS CARATERÍSTICAS
xdotool (e libxdo) tentará funcionar em todas as circunstâncias. No entanto, pode haver
alguns casos em que a funcionalidade não é fornecida por seu servidor X ou por seu gerenciador de janelas.
Nestes casos, o xdotool tentará detectar e dizer se uma ação requer um recurso
atualmente não suportado por seu sistema.
Para recursos específicos do gerenciador de janelas, consulte "DICAS PARA O GERENCIADOR DE JANELA ESTENDIDA".
XTEST
Se o seu servidor X não suporta XTEST, então alguns recursos de digitação e movimento do mouse
pode não funcionar. Especificamente, as ações de digitação e mouse que atuam na "janela atual"
(janela 0 na libxdo) provavelmente não funcionará.
Na maioria dos casos, o XTEST é um recurso que você pode habilitar em seu servidor X se não estiver habilitado
por padrão.
Você pode ver a lista de extensões X suportadas digitando 'xdpyinfo' e procurando o
texto 'número de extensões: ...'
Use xdotool online usando serviços onworks.net