Existe um atalho de teclado padrão ou convencional para colar a seleção primária?
Gostaria de selecionar um texto e ir para outro aplicativo para colar sem descartar o conteúdo da área de transferência. Prefiro manter meus dedos no teclado do que ir para o mouse, encontrar o ponteiro, posicioná-lo onde quiser e clicar com o botão do meio.
Se não há nada convencional, ou se é específico de aplicativo e não é suportado por muitos, existe uma solução alternativa para fazer isso funcionar globalmente? (Ou pelo menos em mais aplicativos.)
keyboard
shortcut-keys
clipboard
Stefano Palazzo
fonte
fonte
Respostas:
O envio de teclas virtuais não funciona para mim (consulte os comentários ), mas essa resposta me inspirou a procurar soluções semelhantes. O envio de um evento "texto"
xvkbd
ignora o estado atual do seu teclado físico:xvkbd -text
usa algumas seqüências de barra invertida, então, em vez de dançar com escape,-file
funciona.xvkbd
também gera algum texto de aviso sobre modificadores, mas parece irrelevante para esse uso (mas eu não queria vê-lo~/.xsession-errors
).Liguei isso a um atalho usando Sistema> Preferências> Atalhos do teclado .
Observe que você precisa ter os pacotes xsel e xvkbd instalados:
fonte
sh -c 'xsel | xvkbd -file - 2>/dev/null'
trabalhos, -xsendevent precisavam sair para fazê-lo funcionar.xsel
).xvkbd
.xsel
funciona bem com "éòü" na seleção principal, masxvkbd
falha como o script acima. (E também falha comxvkbd -text "éòü"
, embora aqui ele imprime nada.)Você pode obter isso com o uso combinado dos programas xdotool ( clique para instalar ) e xsel ( clique para instalar ).
xdotool
pode simular digitação em uma janela;xsel
gera o conteúdo da seleção PRIMARY (por padrão); o seguinte shell liner fará o truque:Para vincular isso a qualquer tecla usando o item de menu Sistema-> Preferências-> Atalhos do teclado , é necessário envolvê-lo em uma chamada de shell:
Digitar
xdotool
não funcionará com alguns programas; veja as notas na documentação do xdotool .fonte
Eu estava procurando uma resposta para essa mesma pergunta e encontrei a resposta que diz que Shift+ Insertestá trabalhando para colar a seleção principal. Eu trabalho para mim Mais simples.
fonte
A chamada
xdotool click --clearmodifiers 2
simula clicar no botão do meio do mouse. Isso funciona muito melhor do que usar o xsel (pelo menos para mim). Embora você tenha que posicionar o mouse antes de digitar ...fonte
Outra sugestão do xdotool, trabalhando no Debian Jessie 8.7 (janeiro de 2017):
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 oxdotool type
xvkbd.O único problema é que
--clearmodifiers
"pressionará" qualquer modificador (Ctrl / Alt / Shift / Meta) usado depois de 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 que elas terminem, seus modificadores serão "pressionados" novamente e ficarão presos até você pressionar e soltar a tecla real mais uma vez.Então, com isso, você precisa ser um pouco "lento" (50ms?) Para liberar seus modificadores, se estiver usando algum.
Você pode testar isso configurando o atalho do teclado, usando-o em um editor de texto e pressionando uma tecla (como
a
uma seta ou uma seta). A letra deve aparecer em minúsculas. Se algo mais acontecer, você é rápido demais e um modificador está bloqueado (pe 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ê for rápido demais, use a sugestão de ilkerk:
Então você deve liberá-los em menos de 300ms e aguardar meio segundo para que o texto apareça.
Além disso, usar
xdotool type
significa que você insere o texto como se estivesse digitando, na posição do cursor do texto, e não o ponteiro do mouse. Você pode alterá-lo paraclick
se preferir o comportamento usual do clique do meio.(fez este post para que os novatos não precisem mais juntar as peças dos quebra-cabeças nos comentários)
fonte
Como tive problemas com as soluções que simulam colar a
PRIMARY
seleção, adicionei um atalho que copia aPRIMARY
seleção paraCLIPBOARD
. Depois de usar o meu atalho I colar oCLIPBOARD
da maneira usual, comCtrl+V
,Ctrl+Shift+V
ouShift+Insert
, dependendo da aplicação.O comando para copiar a
PRIMARY
seleção para oCLIPBOARD
éao qual vinculo
Ctrl+Insert
(escolha arbitrária) nas configurações de atalho do Gnome emSystem Settings -> Devices -> Keyboard
Resumo de problemas com outras soluções: Eu tentei os
xsel | xvkbd ...
exsel | xdotool ...
soluções, mas descobriu que não funcionou muito bem, porque eles simulam digitando oPRIMARY
personagem selecção pelo caráter, o que não é o mesmo que colar com botão do meio. Os problemas incluem: há um longo atraso enquanto uma grande seleção é inserida, um caractere de cada vez; se você quiser desfazer o "colar", precisará desfazê-lo caractere por caractere, o que é lento; se você estiver usando "chaves mortas", tudo ficará confuso, por exemplo, "colar""e
produzë
; oxvkdb
não manipula caracteres unicode corretamente.Aviso: Esta solução substitui o
CLIPBOARD
conteúdo existente , mas o OP solicitou soluções que preservem oCLIPBOARD
conteúdo existente .fonte
Eu tive o mesmo problema e a pesquisa na Internet não me ajudou muito. O problema de simular o clique 2 é irritante, conforme mencionado no OP.
O problema com o proposto acima
xdotool
e o xsel é que quandoxdotool
começa a "digitar" você ainda está pressionando outra tecla. Isso nem sempre resulta em qualquer saída. Por exemplo, se você ligá-lo à tecla "inserir", elexdotool
envia as teclas enquanto seu dedo pressiona a tecla "inserir", o que não causa nada.Abaixo está uma solução alternativa, para vinculá-lo a uma tecla pressionada:
não é perfeito, mas está funcionando. agora você tem 0,3 segundos para concluir sua seleção de pressionamento de tecla (e tecla para cima).
fonte