2Sep

Cara Mengikat HotKeys Global ke Program WINE di Linux

click fraud protection

Pernahkah Anda menginstal program Windows di Linux di bawah WINE, hanya untuk menemukan bahwa ia tidak mengikat sistem tombol panas yang luas lagi? HTG memiliki pekerjaan yang pernah Anda cari.

Image oleh djeucalyptus

Overview

Setiap orang yang bahkan memikirkan gagasan beralih ke Linux, mungkin sudah sangat cepat menemukan masalah bahwa ada aplikasi Windows yang satu ini yang Anda PERLU berfungsi. Kami telah menunjukkan kepada Anda bahwa Anda dapat melakukannya dengan menggunakan WINE.

Bagi penulis ini, aplikasinya adalah aplikasi Text-To-Speech yang memanfaatkan mesin Microsoft SAPI4.Menginstal program di bawah WINE sangat mudah, namun setelah selesai saya dengan cepat menemukan bahwa tombol panas yang digunakan untuk memicu berbagai tindakan program( mulai membaca, berhenti membaca, dll ') tidak berfungsi dan ini adalah hal yang diketahui.masalah dengan WINE

Saya senang untuk mengatakan bahwa setelah ribuan tahun mencari, akhirnya saya menemukan solusinya 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.

instagram viewer

xdotool

Program xdotool dapat melakukan banyak tugas yang berhubungan dengan jendela dari CLI, dengan mengatakan bahwa, satu-satunya yang akan kita manfaatkan adalah "pencarian" dan "kunci".Fungsi "pencarian" tidak seperti itu, mencari jendela / s ID sesuai dengan parameter yang Anda tetapkan untuknya. Fungsi "kunci" memungkinkan Anda mensimulasikan kunci-stroke ke jendela identitas.

Instalasi &konfigurasi

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

Jika Anda memilih menggunakan Balabolka juga, Anda perlu mengaktifkan kemampuan hotkeys-nya.
Catatan: Anda mungkin ingin menginstal TTSReader atau 2nd speech center bahkan dalam mode demo, sehingga suara SAPI akan diinstal.

Buka program dan masuk ke pengaturan( Shift + F6) di bawah "Options" - & gt;"Pengaturan".

Buka tab hotkeys dan centang kotak centang untuk "Use global hotkeys".

Klik OK.

Biarkan berjalan di latar belakang sehingga bisa melakukan tugasnya saat kita menghubungkan penekanan tombol ke sana.

Instal xdotool dengan mengeluarkan:

sudo apt-get install xdotool

Global binding

Program xdotool sendiri tidak membantu kita mengikat secara global ke hotkeys, tapi kita bisa menggunakan sistem hotkey OS yang sudah ada. Apa yang akan kita lakukan adalah membuat script sederhana yang menggunakan xdotool untuk mengirim penekanan tombol yang kita inginkan ke program Balabolka dan memanggilnya dari sistem hotkey OS.

Buat script 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 disebut" stop_read.sh "dengan konten berikut:

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

Catatan: Saya tahu ini adalah satu liner yang tidak memerlukan skrip, namun program" Keyboard Shortcuts "Mint / Ubuntu, tidak bekerja sama dengan hanya memintanya secara langsung. Jika Anda tahu cara melakukannya, mohon bagikan komentar di bawah ini.

Mengerem perintah ini ke komponennya, yang kita lihat adalah:

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

Buat skrip dieksekusi.

Linux Mint Keyboard pintas

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

Setelah dibuka Klik "Add" untuk membuat shortcut kustom baru:

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

Sekarang, pada kolom "Shortcuts", klik pada kata "Disabled" untuk mendapatkan opsi untuk mengatur combo key baru.
Catatan: Anda mungkin, jika Anda mau, gunakan yang lain lalu default programnya. Dalam arti menciptakan "remap" untuk mengikat kunci, tergantung pada program yang Anda gunakan, jika tidak berada di luar kendali Anda.

Memukul combo yang telah Anda pilih dan mendengar keajaibannya.

Keyboard Ubuntu

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

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

Klik tanda plus untuk menambahkan shortcut. Beri nama dan di bawah "Command" berikan path lengkap ke salah satu script yang telah kita buat di atas. Ulangi proses untuk naskah kedua.
Sekarang klik pada kata "Disabled" untuk mendapatkan opsi untuk mengatur combo key baru.

Catatan: Mengulangi catatan dari bagian Mint, Anda mungkin, jika Anda mau, gunakan yang lain lalu default programnya. Dalam arti menciptakan "remap" untuk mengikat kunci, tergantung pada program yang Anda gunakan, jika tidak berada di luar kendali Anda.

Catatan Penulis

Setiap kali saya serius mempertimbangkan untuk pindah ke Linux, masalah ini adalah yang pertama dalam daftar masalah saya. Bukan berarti Linux tidak bermasalah, tapi ini adalah rintangan yang sebenarnya bagi saya. Saya sudah berkali-kali mencoba, bertanya kepada teman / orang di lapangan dan bahkan berhasil menjadi hadiah. .. Saya senang kisah ini berakhir dan jiwaku akhirnya bisa beristirahat.
Ini adalah harapan saya bahwa saya telah membantu seseorang di luar sana untuk tidak mengalami cobaan yang sama.

Doc Brown: Butuh waktu hampir tiga puluh tahun dan seluruh keluarga saya untuk mewujudkan visi hari itu. Ya Tuhan, apakah sudah lama?