Atalho de teclado para colar a seleção principal

34

Existe um atalho de teclado padrão ou convencional para colar a seleção principal?

Gostaria de selecionar algum texto e ir para outro aplicativo para colar sem remover o conteúdo da minha área de transferência. Eu prefiro manter meus dedos no teclado do que mover para o mouse, encontrar o ponteiro, posicioná-lo onde eu quero e clique do meio.

Se não houver nada convencional, ou se for específico para aplicativos e não for suportado por muitos, há uma solução alternativa para que isso funcione globalmente? (Ou pelo menos em mais aplicações.)

    
por Stefano Palazzo 16.10.2010 / 20:39

6 respostas

27

O envio de pressionamentos de teclas virtuais não funciona para mim (consulte comentários ), mas essa resposta inspirou-me a procurar semelhantes soluções. Enviar um evento "text" com xvkbd ignora o estado atual do seu teclado físico:

sh -c 'xsel | xvkbd -xsendevent -file - 2>/dev/null'

xvkbd -text usa algumas sequências de barra invertida, portanto, em vez de dançar com escape, -file funciona. xvkbd também gera algum texto de aviso sobre modificadores, mas parece ser irrelevante para esse uso (mas eu não queria vê-lo em ~/.xsession-errors ).

Eu limitei isso a um atalho usando o System > Preferências > Atalhos de teclado .

Note que você precisa ter os pacotes xsel e xvkbd instalados:

sudo apt-get install xsel xvkbd
    
por Roger Pate 16.10.2010 / 23:30
5

Você pode obter isso com o uso combinado dos programas xdotool ( clique para instalar ) e xsel ( clique para instalar ).

xdotool pode simular a digitação em uma janela; xsel produz o conteúdo da seleção PRINCIPAL (por padrão); o seguinte shell um forro fará o truque:

 xdotool type 'xsel'

Para vincular isso a qualquer chave usando o Sistema- > Preferências- > Teclado atalhos item de menu é necessário envolvê-lo em uma invocação de shell:

 sh -c 'xdotool type --clearmodifiers -- "'xsel'"'

Digitar xdotool não funcionará com alguns programas; veja as notas em a documentação do xdotool .

    
por Riccardo Murri 16.10.2010 / 21:01
4

Eu estava procurando uma resposta para essa mesma pergunta, e achei esta resposta que diz que Shift + Insert está trabalhando para colar a seleção principal. Eu trabalho para mim Mais simples.

    
por Anne 05.10.2016 / 16:47
2

Chamar xdotool click --clearmodifiers 2 simula o clique do botão do meio do mouse. Isso funciona muito melhor do que usar xsel (pelo menos para mim). Embora você tenha que posicionar o mouse antes de digitar ...

    
por Robert Jakob 13.12.2013 / 18:18
1

Outra sugestão xdotool, trabalhando no Debian Jessie 8.7 (jan 2017):

xdotool click --delay 0 --clearmodifiers 2
  • O xdotool manipula cadeias de bytes múltiplos (p. ex. UTF-8), ao contrário de xvkbd.
  • xdotool click simula um clique real, para que você não precise clicar em si mesmo para colar na posição do mouse, como faria se usasse xdotool type ou xvkbd.

O único problema é que --clearmodifiers irá "pressionar" de volta qualquer modificador (Ctrl / Alt / Shift / Meta) que você usar após simular o clique. Mesmo com --delay 0 (em vez de 12ms), o comando demora um pouco para ser executado. Se você soltar as teclas antes de terminar, seus modificadores serão "pressionados" novamente e ficarão presos até que você pressione e solte a tecla real mais uma vez.

Então, com isso você tem que ser um pouco "lento" (50ms?) para liberar seus modificadores, se você estiver usando algum.

Você pode testar isso configurando o atalho de teclado, usando-o em um editor de texto e pressionando uma tecla (como a ou uma seta). A carta deve aparecer em minúsculas. Se alguma outra coisa acontecer, você é muito rápido e um modificador está preso (por exemplo, Shift se estiver em maiúsculas, Ctrl se você selecionou todo o texto, Alt se você abriu um menu). Pressione e solte seus modificadores novamente para redefini-los.

Se você é muito rápido, pode usar a sugestão do ilkerk:

sh -c 'sleep 0.3 && xdotool type --clearmodifiers --delay 0  "'xsel'"'

Depois, você deve liberá-los em menos de 300 ms e aguardar meio segundo para que o texto apareça.

Além disso, usar xdotool type significa inserir o texto como se você estivesse digitando, na posição do cursor de texto e não no ponteiro do mouse. Você pode alterá-lo para click se preferir o comportamento usual de clique do meio.

(fez este post para que os recém-chegados não tenham que dividir as peças do quebra-cabeça nos comentários novamente)

    
por Chema 08.03.2017 / 21:43
0

Eu tive o mesmo problema e a pesquisa na internet não me ajudou muito. O problema que simula o click 2 é chato como OP mencionou.

O problema com os xdotool e xsel propostos acima é quando xdotool inicia a "digitação", você ainda está pressionando outra tecla. Isso nem sempre resulta em qualquer saída. Por exemplo, se você ligá-lo à tecla "insert", então xdotool está enviando chaves enquanto seu dedo pressiona a tecla "insert" que não causa nada.

Abaixo está uma solução alternativa para vinculá-lo a um pressionamento de tecla:

sh -c 'sleep 0.3 && xdotool type --clearmodifiers --delay 0  "'xsel'"'

não é perfeito, mas funciona. agora você tem 0,3 segundos para terminar sua seleção de teclas (e para cima).

    
por ilkerk 11.02.2016 / 18:04