it-swarm-id.com

Menempelkan pilihan X (bukan konten clipboard) dengan keyboard

Saya ingin dapat menempelkan pemilihan X menggunakan keyboard. Saat ini saya harus menggunakan tombol tengah mouse untuk melakukan ini.

Saya mengetahui bahwa memalsukan tombol tengah mouse cukup mudah dilakukan, tetapi solusi seperti itu juga akan membutuhkan penggerak penunjuk tetikus ke lokasi tanda sisipan teks.

Apakah ada cara yang lebih baik untuk melakukan ini?

86
intuited

Pada beberapa pengaturan linux default, Shift+Insert akan melakukan X-selection-paste. Seperti yang Anda catat, ini jelas berbeda dari X-clipboard-paste perintah, pengikatan yang sering bervariasi menurut aplikasi. Jika itu tidak berhasil di sini adalah beberapa kunci lain untuk dicoba:

  • Ctrl+V

  • Ctrl+Shift+V

  • Ctrl+Shift+Insert

Tidak pergi? Lingkungan Desktop atau Window Manager Anda mungkin tidak dikonfigurasikan, dan ini rumit karena —bahkan di bawah bendera satu DE atau WM— setiap toolkit (mis. GTK, Qt, dll.) Mungkin memiliki binding standar yang berbeda. Beberapa program (mis. gvim) bahkan memiliki register salinan internal mereka sendiri yang tidak perlu disinkronkan dengan lingkungan grafis tempat mereka menjalankannya. Sebagai tambahan, bahkan ketika suatu program menggunakan sistem papan klip-X, X memiliki banyak sistem untuk dipilih. Dua yang paling mendasar adalah buffer seleksi — yang selalu memiliki apa pun yang dipilih adalah hal yang terakhir (kecuali bila tidak) - dan buffer salinan — yang biasanya perlu disalin secara spesifik. Untuk melakukan penyalinan eksplisit ke sistem yang terakhir, Anda dapat mencoba salah satu dari ini untuk ukuran:

  • Ctrl+C

  • Shift+Ctrl+C

  • Ctrl+Insert


Jika tidak ada yang hanya bekerja secara ajaib untuk Anda, ada dua cara yang bisa Anda lakukan.

  1. Ada aplikasi untuk itu! ™ Gunakan salah satu dari berbagai program pengelola papan klip untuk menangani ini untuk Anda. Tampaknya yang paling populer adalah Parcellite dan Glippy , tetapi Anda dapat memeriksa alternatif lain di sini . Lihat juga ini pertanyaan tentang pengelola papan klip tingkat lanjut

  2. Retas sendiri.

Jadi katakanlah Anda ingin meretasnya.

Pendek menulis kode Anda sendiri dan mengetuk ke dalam api X, alat hacker untuk pekerjaan itu adalah beberapa utilitas baris perintah kecil yang memberi Anda jendela ke pikiran X. Hanya jendela kecil yang memikirkan Anda, seluruh tampilan terlalu menakutkan .

Alat pertama adalah xsel. Pemborong kecil ini akan memuntahkan apa pun yang ada di buffer pilihan X pada waktu tertentu.

Sekarang Anda perlu memasukkannya ke dalam program Anda. Ada dua opsi untuk ini. Salah satunya adalah xdotool yang memungkinkan Anda untuk meniru pengiriman acara ke sistem input Xorg. Anda dapat menggunakannya dengan metode type seperti xdotool type foo_bar untuk meniru mengetik 'foo_bar' di kursor. Gabungan, Anda mendapatkan sesuatu seperti ini:

$ xdotool type $(xsel)

Yang lainnya adalah xvkbd yang mengirimkan acara keyboard dari subsistem yang lebih rendah. Anda dapat memasukkan keystrokes ke dalam STDIN. Dikombinasikan dengan xsel, Anda mendapatkan sesuatu seperti ini:

$ xsel | xvkbd -xsendevent -file -

Bagus. Sekarang untuk keybinding itu untuk menjalankan hal ini. Jika Anda menjalankan Gnome-2, Anda dapat menambahkan pintasan khusus di Sistem -> Preferensi -> Pintasan keyboard . Jika Anda menggunakan DE atau WM yang berbeda excersize ini diserahkan kepada pembaca.

Catatan terakhir adalah bahwa ketika mengikat perintah ke pintasan keyboard seringkali hanya perlu memiliki satu perintah, bukan dua perintah yang terhubung dengan pipa seperti yang kita gunakan di atas. Anda bisa melakukannya dengan menjalankan perintah piped Anda sebagai argumen string perintah ke Shell baru seperti ini:

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

Tampaknya Shift+Insert mungkin tidak berfungsi dengan baik pada beberapa instalasi GTK 3, setidaknya pada FreeBSD. Masalahnya digambarkan sebagai:

Shift-Insert tidak menempel seleksi utama. Sebagai gantinya, itu terikat untuk menempel clipboard (yang Control-V sudah digunakan). Oleh karena itu, tidak ada cara khusus keyboard untuk menyisipkan pemilihan utama. Seseorang harus menyeret mouse ke sana dan klik tengah. Ini membuat interaksi antara terminal dan GTK tidak nyaman.

Laporan bug dan tambalan baru-baru ini (pada saat penulisan ini) tersedia:

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

10
Michael Danilov
xdotool click 2

Ini mensimulasikan klik tombol mouse secara langsung, dan tidak perlu menggunakan xsel/xdotool type ....

7
blueyed

Saya menggunakan Ubuntu 12 dan mengalami masalah menempelkan teks dari xterm di gedit (dan aplikasi lainnya). Juga, saya menggunakan laptop tanpa tombol tengah mouse seperti banyak orang (sebenarnya tidak ada belas kasihan clipboard untuk pengguna linux tanpa tombol tengah, dan tidak ada: klik kanan + left_click tidak berfungsi sebagai pengganti).

Sementara saya pikir metode "xsel | xvkbd -xsendevent -file -" cukup keren. Saya menemukan solusi paling sederhana adalah dengan menjalankan "gnome-terminal" yang sudah diinstal sebelumnya daripada "xterminal". "gnome-terminal" mendukung perintah klik kanan salin ke clip-board. Saya kemudian bisa "Edit Menu-> Tempel" ke gedit atau menggunakan shift-insert. "gnome-terminal" telah diinstal sebelumnya dengan Ubuntu 12. Instalasi debian/gnome lainnya harus dapat menginstalnya melalui:

Sudo apt-get install gnome-terminal

Di Ubuntu, tambahkan ke peluncur kiri dengan mengklik tombol "Dash Home" di bagian atas bilah peluncur. Di kotak pencarian yang dihasilkan, ketik terminal. Anda dapat menyeret ikon "Terminal" ke bilah peluncur.

2
Ryan Woodard