If-Koubou

Cara Mengikat HotKey Global ke Program ANGGUR di Linux

Cara Mengikat HotKey Global ke Program ANGGUR di Linux (Bagaimana caranya)

Pernahkah Anda menginstal program Windows di Linux di bawah WINE, hanya untuk menemukan bahwa itu tidak mengikat sistem hot-keys lebar lagi? HTG memiliki pekerjaan di sekitar yang Anda cari.

Gambar oleh djeucalyptus

Ikhtisar

Setiap orang yang bahkan pernah memikirkan ide beralih ke Linux, mungkin sangat cepat menemukan masalah bahwa ada satu aplikasi Windows yang Anda BUTUHKAN untuk berfungsi. Kami sudah menunjukkan kepada Anda bahwa Anda dapat mencapai ini menggunakan WINE.

Untuk penulis ini, aplikasi adalah aplikasi Text-To-Speech yang menggunakan mesin Microsoft SAPI4. Memasang program di bawah WINE sangat mudah, namun setelah selesai saya segera menemukan bahwa hot-keys yang digunakan untuk memicu berbagai tindakan program (mulai membaca, berhenti membaca, dll ') tidak berfungsi dan bahwa ini adalah diketahui masalah dengan WINE.

Saya senang untuk mengatakan bahwa setelah ribuan tahun mencari, saya akhirnya menemukan solusi dalam bentuk utilitas GNU yang dapat memanipulasi antarmuka X.org menggunakan fungsi asli. Meskipun bukan satu-satunya dari jenisnya, xdotool adalah yang paling mudah untuk bekerja dan sudah ada di repositori Ubuntu / Mint.

xdotool

Program xdotool dapat melakukan banyak tugas terkait jendela dari CLI, dengan yang mengatakan, hanya dua yang akan kita manfaatkan adalah "pencarian" dan "kunci". Fungsi "pencarian" hanya melakukan itu, mencari ID jendela / s sesuai dengan parameter yang Anda tetapkan untuknya. Fungsi "kunci" memungkinkan Anda untuk mensimulasikan key-stroke ke ID jendela.

Pemasangan & konfigurasi

Diasumsikan bahwa Anda sudah menginstal WINE dan program yang Anda butuhkan di bawahnya. Dalam contoh ini kita akan menggunakan Balabolka sebagai aplikasi "Windows" karena ini adalah replika freeware yang bagus dari program asli yang saya butuhkan solusi ini untuk (pusat pidato kedua).

Jika Anda memilih untuk menggunakan Balabolka juga, Anda perlu mengaktifkan kemampuan hotkey-nya.
Catatan: Anda mungkin ingin menginstal TTSReader atau pusat pidato kedua bahkan dalam mode demo, sehingga suara SAPI akan diinstal.

Buka program dan masuk ke pengaturan (Shift + F6) di bawah "Opsi" -> "Pengaturan".

Buka tab hotkeys dan centang kotak centang untuk "Gunakan global hotkey".

Klik OK.

Biarkan berjalan di latar belakang sehingga dapat melakukan tugasnya ketika kita mengaitkan keystroke ke sana.

Instal xdotool dengan menerbitkan:

sudo apt-get install xdotool

Pengikatan global

Program xdotool sendiri tidak membantu kita mengikat secara global ke hotkey, tetapi kita dapat menggunakan sistem hotkey OS yang sudah ada. Apa yang akan kita lakukan adalah membuat skrip sederhana yang memanfaatkan xdotool untuk mengirim keystrokes yang kita inginkan ke program Balabolka dan memanggilnya dari sistem hotkey OS.

Buat skrip yang disebut "start_read.sh" dengan konten berikut:

xdotool key --window $ (pencarian xdotool --limit 1 --all --pid $ (pgrep balabolka) --name Balabolka) "ctrl + alt + F9"

Buat skrip lain kali ini yang disebut "stop_read.sh" dengan konten berikut:

xdotool key --window $ (pencarian xdotool --limit 1 --all --pid $ (pgrep balabolka) --name Balabolka) "ctrl + alt + F7"

Catatan: Saya tahu ini adalah satu liner yang tidak memerlukan skrip, tetapi program “Pintasan Keyboard” Mint / Ubuntu, tidak bekerja sama dengan hanya memohonnya secara langsung. Jika Anda tahu cara melakukannya, silakan bagikan di komentar di bawah.

Mengeremkan perintah ini ke komponennya, yang kita lihat adalah:

  • Bagian "-pid $ (pgrep balabolka)", menjalankan "pgrep" pada program yang ingin kami gunakan untuk memastikan ID prosesnya. Ini akan mempersempit xdotool yang diajukan "pencarian" ke PID itu saja.
  • Bagian "xdotool search -limit 1 -all… -name Balabolka", mempersempit hasil pencarian xdotool bahkan lebih dan membatasi jawaban yang dikembalikan ke 1. Seperti dalam kasus kami, tidak masalah yang mana ID jendela yang dikembalikan dari program, membatasi hasilnya bertindak sebagai formatter untuk "kunci" perintah. Anda mungkin menemukan bahwa Anda perlu memijat bagian ini lebih banyak jika itu penting untuk program yang Anda gunakan.
  • Tombol "xdotool key -window% WINDOW_ID%" ctrl + alt + F7 "", mengirimkan ketukan yang diinginkan ke windowID yang diperoleh oleh bagian sebelumnya.

Buat skrip dieksekusi.

Linux Mint Keyboardpintas

Di Linux Mint, hotkey global diatur dalam program "Pintasan Keyboard".

Setelah dibuka, klik "Tambah" untuk membuat pintasan khusus baru:

Beri nama dan di bawah "Command" berikan path lengkap ke salah satu skrip yang telah kami buat di atas. Ulangi proses untuk skrip kedua.

Sekarang, di Kolom "Pintasan", klik kata "Nonaktif" untuk mendapatkan opsi untuk menyetel kombo kunci baru.
Catatan: Anda dapat, jika Anda mau, menggunakan sesuatu yang lain dari standar program. Dalam arti menciptakan "remap" untuk binding kunci itu, tergantung pada program yang Anda gunakan, jika tidak akan berada di luar kendali Anda.

Hit combo yang Anda pilih dan dengar keajaibannya.

Keyboard Ubuntu

Di bawah Ubuntu, program yang mengatur hotkey global hanya disebut "Keyboard".

Beralih ke tab "Pintasan" dan pilih "Pintasan Kustom".

Klik tanda tambah untuk menambahkan pintasan. Beri nama dan di bawah "Command" berikan path lengkap ke salah satu skrip yang telah kami buat di atas. Ulangi proses untuk skrip kedua.
Sekarang klik pada kata "Nonaktif" untuk mendapatkan opsi untuk mengatur kombo kunci baru.

Catatan: Mengulangi pada catatan dari bagian Mint, Anda dapat, jika Anda ingin, menggunakan sesuatu yang lain dari default program. Dalam arti menciptakan "remap" untuk binding kunci itu, tergantung pada program yang Anda gunakan, jika tidak akan berada di luar kendali Anda.

Catatan Penulis

Setiap kali saya serius mempertimbangkan pindah ke Linux, masalah ini adalah yang pertama dalam daftar masalah saya. Bukannya Linux tidak memiliki masalah, tetapi ini adalah rintangan nyata, bagi saya. Saya sudah mencoba berkali-kali, meminta teman / orang di lapangan dan bahkan membuatnya menjadi karunia ... Saya senang hikayat ini berakhir dan jiwa saya akhirnya bisa beristirahat.
Ini adalah harapan saya bahwa saya telah membantu seseorang di luar sana untuk tidak harus melalui cobaan yang sama.

Doc Brown: Butuh waktu hampir tiga puluh tahun bagi saya dan seluruh keluarga saya meramal visi hari itu. Ya Tuhan, sudahkah selama itu?