Birincil seçimi yapıştırmak için klavye kısayolu


40

Birincil seçimi yapıştırmak için standart veya geleneksel bir klavye kısayolu var mı?

Pano içeriğime zarar vermeden bir metin seçmek ve yapıştırmak için başka bir uygulamaya gitmek istiyorum . Parmaklarımı klavyede tutmayı, fareye gitmeyi, işaretçiyi bulmayı, istediğim yere yerleştirmeyi ve orta tıklamayı tercih ederim.

Geleneksel bir şey yoksa veya uygulamaya özgü ve birçok kişi tarafından desteklenmiyorsa, bunun küresel olarak çalışmasını sağlamak için bir geçici çözüm var mı? (Ya da en azından daha fazla uygulamada.)


2
Muhtemel herhangi bir dağıtım: unix.stackexchange.com/questions/11889/…
Ciro Santilli,

FWIW, birincil seçimi klavyeden (örneğin, fare düğmelerini kullanmadan) shift-insert kullanarak yapıştırabilir ve pano seçimini ctrl-insert / ctrl-shift-insert kullanarak kopyala / yapıştır yapabilirsiniz
Jonathan Hartley

Benim için
@JonathanHartley

Yanıtlar:


32

Sanal tuşlara basmak benim için işe yaramıyor ( yorumları görün ), ancak bu cevap benzer çözümler aramam için ilham verdi. Bir "text" olayı ile birlikte gönderme xvkbd, fiziksel klavyenizdeki geçerli durumu yoksayar:

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

xvkbd -textBirkaç ters eğik çizgi dizisi kullanır, bu yüzden kaçan -fileeserlerle dans etmek yerine . xvkbdayrıca, değiştiriciler hakkında bazı uyarı metni de çıkarır, ancak bu kullanımla alakasız görünüyor (ama onu görmek istemedim ~/.xsession-errors).

Bunu Sistem> Tercihler> Klavye Kısayolları'nı kullanarak bir kısayola bağladım .

Xsel ve xvkbd paketlerinin kurulu olması gerektiğini unutmayın:

sudo apt-get install xsel xvkbd

3
Kutsal muzlar! İşe yarıyor! Bu harika. Ubuntu bunu varsayılan olarak ayarlamalıdır.
Eric Johnson

8
Benim için sh -c 'xsel | xvkbd -file - 2>/dev/null'çalışıyor, -xsendevent çalışması için çıkmak zorunda kaldı.
sup

Bu arada bir kez daha, bu komutu tek bir tuş kısayoluna atamak zorunda kaldım (Neyse ki ThinkVantage düğmesine Thinkpad'imde hiçbir şey yapmadı - ctrl + alt + v garip davrandı ve içinde olanın bir kısmını yapıştırdı xsel).
sup

2
Bu iki sorun dışında çok iyi çalışıyor. (1) Kaybetme odağını gizlemek için ayarladığım bir açılır terminal (Guake) kullanıyorum. Bu betiğin çalıştırılması odağı geçici olarak terminalden kaldırır ve gizlenmesini sağlar. (2) UTF-8 karakterleri çift baytlık karakterlerle iyi baş etmiyor. Örneğin, eğer "éòü" seçersem, senaryoyu kullanarak "à © òü" yazdırır.
Sparhawk,

2
İkinci böceğin içinde olduğu anlaşılıyor xvkbd. xselbirincil seçimde "éòü" ile çalışır, ancak xvkbdyukarıdaki komut dosyası olarak başarısız olur. (Ayrıca xvkbd -text "éòü"hiçbir şey
basmasa

7

Bunu, xdotool ( yüklemek için tıklayın ) ve xsel ( yüklemek için tıklayın ) programlarının birlikte kullanılmasıyla elde edebilirsiniz .

xdotoolbir pencereye yazmaya benzetebilir; xselPRIMARY seçiminin içeriğini çıktılar (varsayılan olarak); Aşağıdaki kabuk bir astar hile yapacak:

 xdotool type `xsel`

Bunu, Sistem-> Tercihler-> Klavye kısayolları menü öğesini kullanarak herhangi bir tuşa bağlamak için, bir kabuk çağırmada sarılması gerekir:

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

Yazmak xdotoolbazı programlarla çalışmaz; xdotool belgesindeki notlara bakın .


Etkin metin kutusu ve imleç konumu tam olarak bu konumda değilse ve kesinlikle olmazsa bu işe yaramaz. Aslında, eğer bu pencere yöneticisi sınırını sayarsa, bu benim için tamamen farklı olan "pencere başlığına orta tıkla" işlemini yapacaktır.

@Roger Teşekkürler, metni düzeltti. Bunu yapmanın daha iyi bir yolu olup olmadığını merak ediyorum: Kendim bir süredir "yapıştırma" tuşunu arıyordum ...
Riccardo Murri 16:10

Bu çabayı takdir ediyorum, ama bu hala işe yaramayacak. Fare konumu hakkında endişelenmek isteseydim, ilk başta fareyi kullanırdım. :)

@Roger: İkinci turda doğru yaptım: xdotool + xsel yapar. (En azından benim için çalışıyor.)
Riccardo Murri

2
İhtiyaçlar - temizleyiciler seçeneği, aksi takdirde klavye kısayolunu serbest bırakmakla xdotool yürütme arasında bir yarış durumu vardır. 10.04'ün depolarındaki xdotool bu seçenek için güncellenmedi, kendim indirmek ve kurmak zorunda kaldım . Ancak, --clearmodifiers değiştiricileri garip bir şekilde etkiliyor gibi görünüyor ve sonunda xdotool'un klavye kısayolum için çalışmasını nasıl sağladığını görmüyorum (aslında metin yazmak için harika olsa da).


2

Arama, xdotool click --clearmodifiers 2orta fare düğmesine tıklayarak taklit eder. Bu xsel kullanmaktan çok daha iyi çalışır (en azından benim için). Yazmadan önce farenizi konumlandırmanız gerekse bile ...


2

Debian Jessie 8.7'de çalışan bir başka xdotool önerisi (Oca 2017):

xdotool click --delay 0 --clearmodifiers 2
  • xdotool, xvkbd'den farklı olarak çok baytlı dizeleri (pe UTF-8) kullanır.
  • xdotool clickgerçek bir tıklamayı simüle eder, bu nedenle, kullandıysanız xdotool typeveya xvkbd'de olduğu gibi fare konumuna yapıştırmak için kendinizi tıklatmanız gerekmez.

Tek sorun, --clearmodifierstıklamayı simüle ettikten sonra kullandığınız herhangi bir değiştiriciyi (Ctrl / Alt / Shift / Meta) "bastırması". --delay 0(12ms yerine) bile komutun çalışması biraz zaman alabilir. Tuşları sona ermeden önce serbest bırakırsanız, değiştiricileriniz tekrar "basılır" ve gerçek tuşa bir kez daha basıp bırakana kadar orada kalırlar.

Bu nedenle, eğer kullanıyorsanız, değiştiricinizi serbest bırakmak için biraz "yavaş" (50ms?) Olmalısınız.

Bunu klavye kısayolunuzu ayarlayıp, bir metin düzenleyicide kullanarak ve sonra bir tuşa (gibi aveya bir ok) basarak test edebilirsiniz . Harf küçük harf olarak görünmelidir. Başka bir şey olursa, çok hızlısınız ve bir değiştirici takılı kalmış (harf büyükse Shift, tüm metni seçtiyseniz Ctrl, bir menü açarsanız Alt). Sıfırlamak için değiştiricilere tekrar basın ve bırakın.

Çok hızlıysanız ilkerk'in önerisini kullanabilirsiniz:

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

Sonra bunları 300ms'den daha az bir sürede serbest bırakmanız ve metnin görünmesi için yarım saniye beklemeniz gerekir.

Ayrıca, xdotool typemetni kullanarak metin imlecinin bulunduğu yere fare imlecini değil, yazdığınız yere yazdığınız anlamına gelir. clickNormal orta tıklama davranışını tercih ediyorsanız, onu değiştirebilirsiniz .

(Bu gönderiyi yeni yapanlar yorumlarda bulunan bulmacanın parçalarını tekrar parçalamak zorunda kalmayacaklardı)


şimdi benim için Arch Linux'ta çalışıyor
MountainX

1

Ben çözümlerle sorunları vardı yapıştırarak taklitPRIMARY yüzden bunun yerine bir kısayol eklendi, seçimi bu kopyalarPRIMARY için seçimCLIPBOARD . Kısayolumu kullandıktan sonra , uygulamaya bağlı olarak , CLIPBOARDher zamanki gibi , veya ile yapıştırın .Ctrl+VCtrl+Shift+VShift+Insert

Komut kopyalamak PRIMARYiçin seçim CLIPBOARDolduğunu

sh -c 'xsel --output --primary | xsel --input --cliboard'

hangi Ctrl+InsertGnome kısayol ayarlarında (keyfi bir seçim)System Settings -> Devices -> Keyboard

Diğer çözümlerle sorunların Özeti: Denedim xsel | xvkbd ...ve xsel | xdotool ...çözümleri, ancak benzetmek çünkü onlar çok iyi çalışmadı bulundu yazarakPRIMARY aynı değildir karakteri ile seçim karakteri, yapıştırarak orta tıklama ile. Sorunlar şunlardır: Büyük bir seçim bir seferde bir karakter girerken uzun bir gecikme var; Eğer "yapıştırmayı" geri almak istiyorsanız, karakter karakterine göre yavaşlatmalısınız; Eğer "ölü anahtarlar" kullanıyorsanız her şey karışır, örneğin "yapıştırma" "eüretir ë; xvkdbDoğru Unicode karakterleri işlemez.

Uyarı: Bu çözüm, mevcut CLIPBOARDiçeriğin üzerine yazar ancak OP mevcut CLIPBOARDiçerikleri koruyan çözümler istedi .


Bu, orijinal pano içeriğini kaydedip daha sonra tekrar ayarladı mı? Yoksa orijinal pano içeriğini çöpe atıyor ve bu nedenle " pano içeriğimi ezmeden yapıştırmak " sorusunun bir parçası mı başarısız oluyor ?
Xen2050

@ Xen2050 evet, bu CLIPBOARD'ı çöpe atıyor. Cevaba bir not ekleyeceğim.
ntc2

0

Aynı sorunu yaşadım ve internet araması bana pek yardımcı olmadı. Tıklama 2'yi simüle eden sorun OP belirtildiği gibi can sıkıcıdır.

Yukarıda önerilen xdotoolve xsel ile ilgili sorun, xdotool"yazmaya" başladığınızda, hala başka bir tuşa basıyor olmanızdır. Bu her zaman herhangi bir çıktı ile sonuçlanmaz. Örneğin, "insert" tuşuna bağlarsanız xdotool, parmağınız hiçbir şeye neden olmayan "insert" tuşuna basarken tuşları yolluyordur.

Aşağıda, bir tuş basışına bağlamak için bir geçici çözüm bulunur:

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

mükemmel değil, çalışıyor. Şimdi tuşa basma seçiminizi bitirmek için 0,3 saniyeniz var (ve yukarı tuşa basarak).

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.