Perché Maiusc + Inserisci incolla da CLIPBOARD in alcune applicazioni e PRIMARY in altre?


29

Come faccio a incollare dalla selezione PRIMARY (es. Testo selezionato dal mouse) con una scorciatoia da tastiera? Shift+Insertincoerentemente incolla da PRIMARY o CLIPBOARD, a seconda dell'applicazione.

Sfondo:

Ctrl+Ccopia il testo selezionato in CLIPBOARD mentre la selezione del mouse copia in PRIMARY. Incolla da CLIPBOARD con Ctrl+Ve incolla da PRIMARY con mouse-middle-click.

In un emulatore di terminale (gnome-terminal), incollare da CLIPBOARD con Ctrl+Shift+V. (Incolla da PRIMARY con mouse-middle-clickalambicco.)

Voglio incollare da PRIMARY con una scorciatoia da tastiera. In gnome-terminal, questo è Shift+Insert, ma in gedit e Firefox, le Shift+Insertpaste di CLIPBOARD. Voglio una scorciatoia che incolla costantemente da CLIPBOARD e una scorciatoia diversa che incolla costantemente da PRIMARY.

Sto eseguendo Ubuntu 14.04 con xmonad e Firefox 34.0

Risposte:


30

Tutte le app che hai citato sono gtk+app, quindi è abbastanza facile rispondere Perché ... Perché in tutte le gtk+ app ( tranne una ), Shift+ Insertpaste da CLIPBOARD - cioè equivale a Ctrl+ V. Il collegamento è hardcoded in gtkentry.c(riga 2022) e gtktextview.c(riga 1506):

gtk_binding_entry_add_signal (binding_set, GDK_KEY_Insert, GDK_SHIFT_MASK,
                "paste-clipboard", 0);

È inoltre documentato nel Manuale di riferimento GTK + 3 in GtkEntry:

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.

Per quanto ne so, questo è stato fatto per coerenza con altri DE (vedere KDEi Qtcollegamenti chiave in QTextEdit Class) e il sistema operativo Windows 1 .
L' unica eccezione è gnome-terminal. Dopo lunghi dibattiti, gli sviluppatori hanno deciso (per coerenza con altri terminali) che, in gnome-terminal, Shift+ Insertdovrebbe incollare da PRIMARY e Ctrl+ Shift+ Vdovrebbe incollare da CLIPBOARD (anche se hai le opzioni per personalizzare alcune scorciatoie).


Per quanto riguarda Come si fa a incollare la selezione con una scorciatoia da tastiera ... non c'è modo semplice.

Il modo più semplice è assegnare un collegamento a uno script in esecuzione xdotool click 2(simula il clic con il pulsante centrale del mouse). Mentre funziona (e dovrebbe funzionare con tutti o la maggior parte di DE e toolkit), funziona solo se il cursore del mouse si trova effettivamente sopra la casella di immissione del testo, altrimenti non riesce.

Un altro modo relativamente semplice è tramite Gnome Accessibility, se è disponibile sul tuo sistema. Richiede anche la presenza di un tastierino numerico. Vai a Universal Access>> Pointing & Clickinge abilita Mouse Keys. Assicurati che NumLocksia spento. È quindi possibile utilizzare i tasti del tastierino numerico per spostare il cursore e fare clic. Per simulare un clic del pulsante centrale del mouse, premere (e rilasciare) *(asterisco) quindi premere 5(ecco una breve guida ). Questa soluzione sembra funzionare sempre in un gtk+ambiente. L'aspetto negativo è che richiede Gnome Accessibilitye un tastierino numerico. Inoltre, non è possibile personalizzare il collegamento.

È stata proposta una soluzione interessante su gnome-bugzilla (bug 643391) . (Aggiornamento 2018: il problema è stato spostato qui .) Richiede l'applicazione di patch ad alcuni file di origine e l'impostazione delle opzioni di configurazione in ~/.config/gtk-3.0/gtk.css(o ~/.gtkrc-2.0per gtk+2 app). Non l'ho provato personalmente ma il feedback è positivo.

Idealmente, dovresti applicare una patch ai file sorgente e definire un "paste-selection"segnale, quindi associare Shift+ Inserta "paste-selection"invece di "paste-clipboard". Il codice di Andy (allegato nella segnalazione di bug collegata sopra) potrebbe servire da guida su come farlo. Anche allora, interesserebbe solo le gtk+app (non sono un KDE/Qtragazzo, quindi non ho idea di come modificare il Qtcomportamento delle app).


1: (per non parlare del CUA di IBM)


2
Grazie per questa spiegazione. È un peccato che non esista una soluzione migliore, mi manca molto una scorciatoia da tastiera coerente per PRIMARY. La soluzione alternativa all'emulazione del mouse non aiuta molto poiché il punto del collegamento è quello di evitare di dover gestire il mouse.
didi_X8

1

Mi dispiace: non posso scrivere commenti a causa della reputazione, quindi scrivo come risposta. Non è una soluzione diretta, ma mi aiuta ...

È possibile utilizzare una combinazione di informazioni:

  1. Modifica il tema GTK e consenti l'associazione dei tasti come desideri .

  2. Esempio di creazione di tasti gtk 3.0 in css del tema .

  3. Esempio di sovrascrittura di combinazioni di tasti gtk e sblocco .

  4. Esempio di modifica del keybinding per gnome-terminal

  5. Avvio automatico di autocutsel con opzioni predefinite per la sincronizzazione di CLIPBOARD su CUTBUFFER (opzionale). Questo link è solo per informazioni sul problema.

  6. Usa Clipman per accedere a più buffer (PRIMARY e CLIPBOARD), senza selezioni di sincronizzazione automatica (la sincronizzazione automatica bidirezionale rende errata).

Quindi seleziono solo il tema gtk e modifico il tema CSS in base ai tasti necessari per i segnali copia-appunti (Ctrl + Inserisci) e incolla-appunti (Maiusc + Inserisci).


1
Questo potrebbe essere l'inizio di una buona risposta, se si prendono i contenuti di quei collegamenti e si combinano le informazioni. Allo stato attuale, è solo una raccolta di collegamenti e questo mette a rischio di essere eliminato. Ti preghiamo di inserire le informazioni in modo che siano direttamente nella risposta, e sono sicuro che otterrai voti (dandoti così una reputazione sufficiente per commentare). Grazie!
Toby Speight,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.