Shift + Insert neden bazı uygulamalarda CLIPBOARD'dan ve diğerlerinde PRIMARY'den yapıştırılıyor?


29

PRIMARY seçiminden (örneğin, fare seçili metni) klavye kısayoluyla nasıl yapıştırabilirim? Shift+InsertUygulamaya bağlı olarak, PRIMARY veya CLIPBOARD'dan tutarsızca yapıştırılır.

Arka fon:

Ctrl+Cseçili metni CLIPBOARD'a kopyalarken, fare seçimi PRIMARY'ye kopyalanır. CLIPBOARD ile Ctrl+Vyapıştırın ve ile PRIMARY ile yapıştırın mouse-middle-click.

Bir terminal emülatöründe (gnome-terminal), CLIPBOARD'dan ile yapıştırın Ctrl+Shift+V. (PRIMARY'den mouse-middle-clickhareketsiz olarak yapıştırın .)

PRIMARY'den bir klavye kısayolu ile yapıştırmak istiyorum. GNOME-terminalinde, bu Shift+Insert, ancak gedit ve Firefox'ta Shift+InsertCLIPBOARD'dan yapılan yapıştırmalar. Sürekli CLIPBOARD'dan yapıştırılan bir kısayol ve PRIMARY'den tutarlı bir şekilde yapıştırılan farklı bir kısayol istiyorum.

Ubuntu 14.04'ü xmonad ve Firefox 34.0 ile çalıştırıyorum

Yanıtlar:


30

Bahsettiğiniz tüm gtk+uygulamalar uygulamalar, bu yüzden cevaplamaları oldukça kolay Neden ... Çünkü tüm gtk+ uygulamalarda ( biri hariç ), CLIPBOARD'dan Shift+ Insertyapıştırmalar - yani Ctrl+ ile eşdeğerdir V. Kısayol gtkentry.c(satır 2022) ve gtktextview.c(satır 1506) olarak kodlanmıştır :

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

Aynı zamanda belgelenmiştir GTK + 3 Referans Kılavuzu under 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.

Bildiğim kadarıyla bu bildiği gibi diğer DE adlı ile tutarlılık için yapılan (bkz edildi KDE'ın Qtanahtar bağlamaları QTextEdit Class) ve Windows işletim sistemi 1 . Bunun tek istisnası ise . Uzun tartışmalardan sonra, geliştiriciler (diğer terminallerle tutarlılık için) , + 'nın PRIMARY' den yapıştırması ve + + 'nın CLIPBOARD' dan yapıştırması gerektiğine karar vermiştir ( bazı kısayolları özelleştirme seçenekleriniz olsa da).
gnome-terminalgnome-terminalShiftInsertCtrlShiftV


Gelince nasıl bir klavye kısayolu ile seçim yapıştırırım ... hayır basit bir yolu var.

En kolay yol, çalışan bir betiğe kısayol atamaktır xdotool click 2(farenin orta düğmesini tıklatarak benzetim yapar). Bu işe yarıyorsa (ve çoğu DE'nin ve araç kitlerinin tümü veya çalışması için çalışmalıdır), ancak fare imleci aslında metin giriş kutusunun üzerindeyse çalışır, aksi halde başarısız olur.

Bir başka nispeten kolay yol da eğer sisteminizde mevcutsa, Gnome Erişilebilirliği'dir. Ayrıca numpad varlığını gerektirir. Universal Access>> seçeneğine gidin Pointing & Clickingve etkinleştirin Mouse Keys. NumLockKapalı olduğundan emin ol . Ardından imleci hareket ettirmek ve tıklamak için sayı tuşlarını kullanabilirsiniz. Bir orta fare düğmesini tıklamak için basın, (ve serbest bırak) *(yıldız) tuşuna ve ardından 5(kısa bir rehber ) tuşuna basın . Bu çözüm her zaman bir gtk+ortamda çalışıyor gibi görünüyor . Dezavantajı gerektirir Gnome Accessibilityve bir numpad. Ayrıca, kısayolu özelleştiremezsiniz.

Gnome-bugzilla'da ilginç bir çözüm önerildi (hata 643391) . (Güncelleme 2018: sorun şimdi taşındı burada .) Bazı kaynak dosyaları yama ve yapılandırma seçeneklerini ayarlama gerektirir ~/.config/gtk-3.0/gtk.css(veya ~/.gtkrc-2.0için gtk+2 apps). Ben şahsen denemedim ama geri bildirim olumlu.

İdeal olarak, kaynak dosyaları yayar ve bir "paste-selection"sinyal tanımlarsınız, sonra yerine Shift+ ' Insertya "paste-selection"bağlarsınız "paste-clipboard". Andy'nin kodu (yukarıda verilen hata raporuna ekli) bunun nasıl yapılacağına dair bir rehber niteliğinde olabilir. O zaman bile, yalnızca gtk+uygulamaları etkileyecektir (Ben bir KDE/Qterkek değilim bu yüzden Qtuygulama davranışını nasıl değiştireceğimi bilmiyorum ).


1: (IBM’in CUA’sından bahsetmiyorum)


2
Bu açıklama için teşekkürler. Yazık ki daha iyi bir çözüm yok, PRIMARY için tutarlı bir klavye kısayolunu çok özlüyorum. Fare öykünme geçici çözümü, kısayolun amacı fareyle uğraşmaktan kaçınmaktan başka bir şey değildir.
didi_X8

1

Üzgünüm: İtibar nedeniyle yorum yazamıyorum, bu yüzden cevap olarak yazıyorum. Doğrudan bir çözüm değil, ama bana yardım ediyor ...

Bilgi kombinasyonunu kullanabilirsiniz:

  1. Gtk temasını düzenleyin ve istediğiniz şekilde anahtar bağlanmasına izin verin .

  2. Tema css içinde gtk 3.0 keybinding oluşturma örneği .

  3. Geçersiz kılma gtk tuş bağlamalarını ve bağlantıyı açma örneği .

  4. Gnome-terminali için modifiye anahtarlama örneği

  5. CLIPBOARD - CUTBUFFER senkronizasyonu için varsayılan seçeneklerle otomatik seçimin otomatik başlatılması (bu isteğe bağlıdır). Bu link sadece problem hakkında bilgi vermek içindir.

  6. Otomatik senkronizasyon seçimleri olmadan (iki yönlü otomatik senkronizasyon yanlış yapar) çoklu arabelleklere (PRIMARY ve CLIPBOARD) erişmek için clipman kullanın .

Bu yüzden sadece gtk temasını seçiyorum ve CSS temasını kopyala panoya (Ctrl + Insert) ve paste-clipboard (Shift + Insert) sinyalleri için gereken tuş bağlarına göre değiştiriyorum.


1
Bu bağlantıların içeriğini alıp bilgiyi birleştirirseniz, bu iyi bir cevabın başlangıcı olabilir. Olduğu gibi, sadece bir bağlantılar topluluğudur ve bu silinme riskine girer. Lütfen bilgileri eksiksiz doldurunuz, böylece doğrudan cevabınıza gelir ve eminim ki size en üst düzeyde oy alacaksınız (böylece yorum yapmak için yeterli saygınlık vererek). Teşekkürler!
Toby Speight
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.