Cria um atalho personalizado que digita o conteúdo da área de transferência

5

Eu quero simular a entrada do teclado para que eu possa "colar" o conteúdo da minha área de transferência em aplicativos que não permitem isso (por exemplo, KVM remoto). No momento, estou tentando usar xdotool e xclip :

xdotool type "$(xclip -o)"

Este comando funciona se eu permanecer em uma janela de terminal e digitar o comando sozinho. Ele digita meu conteúdo da área de transferência quando eu executo o comando. Meu objetivo é vincular esse comando a uma tecla de atalho, para que funcione em qualquer aplicativo.

Se eu usar essa tecla de atalho, ocorrerá um comportamento inesperado em qualquer janela que tenha foco. por exemplo. meu tamanho de janela de terminal encolhe (é um tanto divertido, na verdade). Resultados semelhantes ocorrem se eu salvá-lo como um script e chamar o script ou se eu encapsular o comando com sh -c . Como posso fazer uso prático do poderoso comando xdotool type ?

    
por isuldor 05.11.2012 / 13:12

4 respostas

4

Você tem dois problemas com este comando. A primeira é que você precisa ter certeza de que as meta-chaves na ligação não serão pressionadas quando tentar executar o comando. Segundo, por padrão xclip seleciona XA_Primary buffer em vez de XA_CLIPBOARD . Então você deve passar clipboard como o parâmetro de seleção para o xclip. Altere seu comando de atalho para o seguinte:

sh -c 'sleep 0.5; xdotool type "$(xclip -o -selection clipboard)"'
    
por Alex L. 17.11.2012 / 01:49
2

O xdotool cria pressionamentos de teclas, e não libera a tecla Ctrl para você ... A solução mais simples é adicionar um atraso, por exemplo, sleep 0.5 para esperar por meio segundo, e Certifique-se de liberar Ctrl rápido o suficiente.

    
por Pierre Carrier 13.11.2012 / 02:47
1

sh -c 'xdotool tipo --clearmodifiers - "$ (xclip -o -selection clipboard)"'

"- clearmodifiers" se livra de CTRL / ALT / Shift etc, o que significa que o sono não é necessário

"-" significa o final das opções do xdotool para que, se o teste colado começar com - xdotool, não tente interpretá-lo como uma opção

    
por Eschaton 28.07.2016 / 11:53
0

Na verdade, existem dois buffers acessíveis com Ctrl+V (o copiar e colar da área de transferência) e Shift+Insert (a marca do mouse e a pasta do meio do clique).

Se você tem as sessões apropriadamente conectadas ao compartilhamento da área de transferência, então um dos dois deve funcionar automaticamente, não?

    
por Nick Andrik 15.11.2012 / 13:31