
Como colar a partir da seleção PRIMÁRIA (por exemplo, texto selecionado com o mouse) com um atalho de teclado? Shift+Insert
cola inconsistentemente de PRIMARY ou CLIPBOARD, dependendo do aplicativo.
Fundo:
Ctrl+C
copia o texto selecionado para CLIPBOARD enquanto a seleção do mouse copia para PRIMARY. Cole do CLIPBOARD com Ctrl+V
e cole do PRIMARY com mouse-middle-click
.
Em um emulador de terminal (gnome-terminal), cole do CLIPBOARD com Ctrl+Shift+V
. (Colar de PRIMARY com mouse-middle-click
still.)
Quero colar do PRIMARY com um atalho de teclado. No gnome-terminal, é Shift+Insert
, mas no gedit e no Firefox, Shift+Insert
cola do CLIPBOARD. Quero um atalho que cole consistentemente do CLIPBOARD e um atalho diferente que cole consistentemente do PRIMARY.
Estou executando o Ubuntu 14.04 com xmonad e Firefox 34.0
Responder1
Todos os aplicativos que você mencionou são gtk+
aplicativos, então é muito fácil responderPor que... Porque emtodos gtk+
aplicativos (excepto um), Shift+ Insertcola do CLIPBOARD - ou seja, é equivalente a Ctrl+ V. O atalho está codificado emgtkentry.c
(linha 2022) egtktextview.c
(linha 1819):
gtk_binding_entry_add_signal (binding_set, GDK_KEY_Insert, GDK_SHIFT_MASK,
"paste-clipboard", 0);
Também está documentado noManual de Referência GTK + 3sobGtkEntry
:
The “paste-clipboard” signal
void
user_function (GtkEntry *entry,
gpointer user_data)
The ::paste-clipboard signal is a keybinding signal which gets emitted
to paste the contents of the clipboard into the text view.
The default bindings for this signal are Ctrl-v and Shift-Insert.
Pelo que eu sei, isso foi feito para consistência com outros DEs (veja KDE
as Qt
combinações de teclas emQTextEdit Class
) e sistema operacional Windows 1 .
Oúnica exceçãoé gnome-terminal
. Após longos debates, os desenvolvedores decidiram (para consistência com outros terminais) que, em gnome-terminal
, Shift+ Insertdeveria colar de PRIMARY e Ctrl+ Shift+ Vdeveria colar de CLIPBOARD (embora você tenha a opção de personalizar alguns atalhos).
Quanto aComovocê cola a seleção com um atalho de teclado ... não há uma maneira direta.
A maneira mais fácil é atribuir um atalho a um script executado xdotool click 2
(simula um clique com o botão do meio do mouse). Embora isso funcione (e deve funcionar com todos ou a maioria dos DEs e kits de ferramentas), só funciona se o cursor do mouse estiver realmente sobre a caixa de entrada de texto, caso contrário, falhará.
Outra maneira relativamente fácil é através do Gnome Accessibility, se estiver disponível em seu sistema. Também requer a presença de um teclado numérico. Vá para Universal Access
>> Pointing & Clicking
e habilite Mouse Keys
. Certifique-se NumLock
de que esteja desligado. Você pode então usar as teclas do teclado numérico para mover o cursor e clicar. Para simular um clique do botão do meio do mouse, pressione (e solte) *(asterisco) e depois pressione 5(aqui está um breveguia). Esta solução parece sempre funcionar em um gtk+
ambiente. A desvantagem é que requer Gnome Accessibility
um teclado numérico. Além disso, você não pode personalizar o atalho.
Uma solução interessante foi proposta emgnome-bugzilla (bug 643391). (Atualização 2018: o problema foi movidoaqui.) Requer corrigir alguns arquivos de origem e definir opções de configuração em ~/.config/gtk-3.0/gtk.css
(ou ~/.gtkrc-2.0
para gtk+
2 aplicativos). Não experimentei pessoalmente, mas o feedback é positivo.
Idealmente, você corrigiria os arquivos de origem e definiria um "paste-selection"
sinal e, em seguida, vincularia Shift+ Inserta "paste-selection"
em vez de "paste-clipboard"
. O código de Andy (anexado no relatório de bug acima) pode servir como um guia sobre como fazer isso. Mesmo assim, isso afetaria apenas gtk+
os aplicativos (não sou um KDE/Qt
cara, então não tenho ideia de como alterar Qt
o comportamento dos aplicativos).
1: (sem mencionar o CUA da IBM)
Responder2
Sinto muito: não posso escrever comentários por causa da reputação, então escrevo como resposta. Não é uma solução direta, mas me ajuda ...
Você pode usar uma combinação de informações:
Edite o tema gtk e permita a ligação de teclas como desejar.
Exemplo de criação de atalhos de teclado gtk 3.0 em css do tema.
Exemplo de substituição de atalhos de teclado gtk e desvinculação.
Exemplo de modificação de atalho de teclado para gnome-terminal
Início automático do autocutsel com opções padrão para sincronizar CLIPBOARD com CUTBUFFER(isso é opcional). Este link é apenas para informações sobre o problema.
Use o clipman para acessar vários buffers(PRIMARY e CLIPBOARD), sem seleções de sincronização automática (a sincronização automática bidirecional causa erros).
Então, apenas seleciono o tema gtk e modifico o CSS do tema para os atalhos de teclado necessários para os sinais copiar-área de transferência (Ctrl+Insert) e colar-área de transferência (Shift+Insert).