it-swarm-tr.com

X seçimini (pano içeriği değil) klavye ile yapıştırma

Klavyeyi kullanarak X seçimini yapıştırabilmek istiyorum. Şu anda bunu yapmak için orta fare düğmesini kullanmalıyım.

Bir orta fare düğmesine basmanın taklit edilmesinin oldukça kolay olduğunu düşünüyorum, ancak böyle bir çözüm de fare işaretçisini metin işaretinin konumuna taşımayı gerektirecektir.

Bunu yapmanın daha iyi bir yolu var mı?

86
intuited

Bazı varsayılan linux kurulumlarında, Shift+Insert bir X-selection-paste gerçekleştirir. Daha önce de belirttiğiniz gibi, bu X-clipboard-paste Komutundan belirgin bir şekilde farklıdır, bağlayıcı genellikle uygulamaya göre değişir. Bu işe yaramazsa, denemek için birkaç anahtar daha vardır:

  • Ctrl+V

  • Ctrl+Shift+V

  • Ctrl+Shift+Insert

Gitme? Masaüstü Ortamınız veya Pencere Yöneticiniz muhtemelen yapılandırılmamıştır ve karmaşıktır - çünkü bir DE veya WM başlığının altında bile - her araç setinin (örn. GTK, Qt, Vb) farklı varsayılan bağlamaları olabilir. Bazı programların (örn. gvim), içinde çalıştıkları grafik ortamıyla senkronize edilmesi gerekmeyen kendi dahili kopya kayıtları bile vardır. Üstelik, bir program X-pano sistemini kullansa bile, X seçim için birden fazla sistem. En temel ikisi, her zaman özel olarak kopyalanması gereken seçili son şey ne olursa olsun (yoksa yürütme) seçim arabelleği ve kopya arabelleğidir. İkinci sisteme açık bir kopya yapmak için bunlardan herhangi birini boyut için deneyebilirsiniz:

  • Ctrl+C

  • Shift+Ctrl+C

  • Ctrl+Insert


Bunların hiçbiri sizin için sihirli bir şekilde çalışmıyorsa, gidebileceğiniz iki yol vardır.

  1. Bunun için bir uygulama var ! ™ Bunu sizin için halletmek için çeşitli pano yöneticisi programlarından birini kullanın. En popüler Parcellite ve Glippy gibi görünüyor, ancak kontrol edebilirsiniz burada diğer alternatifler . Ayrıca bkz. gelişmiş pano yöneticileri hakkında sor

  2. Kendin kes.

Yani hacklemek istediğinizi varsayalım.

Kendi kodunuzu yazıp X api'ye dokunarak, iş için hacker araçları size X'in zihnine bir pencere veren birkaç komut satırı yardımcı programıdır. Sadece küçük bir pencere size dikkat eder, tüm görünüm çok korkutucu .

İlk araç xsel. Bu küçük işveren, X'in seçim arabelleğinde herhangi bir zamanda tükürecektir.

Şimdi bunu programınıza dahil etmeniz gerekiyor. Bunun için iki seçenek var. Bunlardan biri, Xorg giriş sistemine gönderme olaylarını taklit etmenizi sağlayan xdotool. İmleçte 'foo_bar' yazmayı taklit etmek için xdotool type foo_bar Gibi type yöntemini kullanabilirsiniz. Kombine, böyle bir şey elde edersiniz:

$ xdotool type $(xsel)

Diğeri, daha düşük bir alt sistemden klavye olayları gönderen xvkbd. STDIN'de tuş vuruşlarını buna bağlayabilirsiniz. xsel ile birlikte, şöyle bir şey elde edersiniz:

$ xsel | xvkbd -xsendevent -file -

Harika. Şimdi o tuşların bu işi yapması için. Gnome-2'yi çalıştırırsanız, Sistem -> Tercihler -> Klavye kısayolları içine özel bir kısayol ekleyebilirsiniz. Farklı bir DE veya WM kullanırsanız, bu excersize okuyucuya bırakılır.

Son not, komutları klavye kısayollarına bağlarken, genellikle yukarıda kullandığımız gibi bir boruya bağlı iki komutun değil, yalnızca bir komutun olması gerektiğidir. Piped komutunuzu aşağıdaki gibi yeni bir Kabuğa argumetn komut dizesi olarak çağırarak bunu yapabilirsiniz:

sh -c 'xsel | xvkbd -xsendevent -file -'
sh -c 'xdotool type "$(xsel)"'
95
Caleb

Görünüşe göre Shift+Insert GTK 3'ün bazı kurulumlarında, en azından FreeBSD'de düzgün çalışmayabilir. Sorun şu şekilde tanımlanır:

Shift-Insert birincil seçimi yapıştırmıyor. Bunun yerine, panonun yapıştırılması gerekir (bunun için Control-V zaten kullanılır). Bu nedenle, birincil seçimi eklemenin yalnızca klavye yolu yoktur. Bir fare oraya sürükleyin ve orta tıklayın. Bu terminaller ve GTK arasındaki etkileşimi rahatsız eder.

Yakın zamanda (bu yazı itibariyle) bir hata raporu ve düzeltme eki mevcuttur:

http://www.freebsd.org/cgi/query-pr.cgi?pr=188264

10
Michael Danilov
xdotool click 2

Bu, fare düğmesine tıklamayı doğrudan simüle eder ve xsel/xdotool type ....

7
blueyed

Ubuntu 12 kullanıyorum ve gedit (ve başka herhangi bir uygulama) xterm'den metin yapıştırarak bir sorun yaşıyordu. Ayrıca, birçok kişi gibi orta fare düğmesi olmayan bir dizüstü bilgisayar kullanıyorum (gerçekten orta düğmeler olmayan linux kullanıcıları için pano merhameti yok ve no: sağ tıklama + left_click yerine geçmiyor).

Bence "xsel | xvkbd -xsendevent -file -" yöntemi oldukça havalı. Ben en basit çözüm "xterminal" yerine önceden kurulmuş "gnome-terminal" çalıştırmak olduğunu bulundu. "gnome-terminal" klibi panosuna sağ tıklama kopyasını destekler. Daha sonra "Edit Menu-> Paste" i gedit içine alabilir veya shift-insert kullanabilirim. "gnome-terminal", Ubuntu 12 ile önceden kurulmuş olarak geldi. Diğer debian/gnome kurulumları şu şekilde kurabilmelidir:

Sudo apt-get install gnome-terminal

Ubuntu'da, başlatıcı çubuğunun üst kısmındaki "Dash Home" düğmesini tıklayarak sol başlatıcıya ekleyin. Sonuçta elde edilen arama kutusuna terminal yazın. "Terminal" simgesini başlatıcı çubuğuna sürükleyebilirsiniz.

2
Ryan Woodard