Laman » bagaimana untuk » Bagaimana Mengikat HotKeys Global ke Program WINE di Linux

    Bagaimana Mengikat HotKeys Global ke Program WINE di Linux

    Pernahkah anda memasang program Windows di Linux di bawah WINE, hanya untuk mengetahui bahawa ia tidak mengikat lagi sistem kekunci panas? HTG mempunyai kerja yang anda cari.

    Imej oleh djeucalyptus

    Gambaran keseluruhan

    Setiap orang yang berfikir tentang beralih kepada Linux, mungkin dengan cepat menghadapi masalah bahawa terdapat satu aplikasi Windows yang anda PERLU berfungsi. Kami telah menunjukkan kepada anda bahawa anda boleh mencapai ini menggunakan WINE.

    Untuk penulis ini, aplikasi itu adalah aplikasi Teks-Untuk-Ucapan yang menggunakan enjin Microsoft SAPI4. Memasang program di bawah WINE adalah angin, namun setelah selesai saya mendapati dengan cepat bahawa kunci panas yang digunakan untuk memicu pelbagai tindakan program (mula membaca, menghentikan bacaan, dll) tidak berfungsi dan ini diketahui masalah dengan WINE.

    Saya gembira untuk mengatakan bahawa setelah mencari, saya akhirnya menemukan penyelesaian dalam bentuk utiliti GNU yang dapat memanipulasi antara muka X.org menggunakan fungsi asli. Walaupun bukan satu-satunya jenisnya, xdotool adalah yang paling mudah untuk berfungsi dan sudah ada dalam repositori Ubuntu / Mint.

    xdotool

    Program xdotool boleh melakukan banyak tugas yang berkaitan dengan tingkap dari CLI, dengan kata itu, hanya dua yang kita gunakan adalah "carian" dan "kunci". Fungsi "carian" tidak hanya itu, mencari ID tetingkap / s mengikut parameter yang anda tetapkan untuknya. Fungsi "utama" membolehkan anda mensimulasikan strok kunci kepada ID tingkap.

    Pemasangan & konfigurasi

    Diandaikan bahawa anda telah memasang WINE dan program yang anda perlukan di bawahnya. Dalam contoh ini kita akan menggunakan Balabolka sebagai aplikasi "Windows" kerana ia merupakan replika perisian percuma yang baik dari program asal yang saya perlukan penyelesaian ini untuk (pusat ucapan ke-2).

    Jika anda memilih untuk menggunakan Balabolka juga, anda perlu mengaktifkan keupayaannya yang hotkeys.
    Nota: Anda mungkin mahu memasang sama ada TTSReader atau pusat ucapan ke-2 walaupun dalam mod demo, supaya suara SAPI akan dipasang. 

    Buka program dan pergi ke tetapan (Shift + F6) di bawah "Pilihan" -> "Tetapan".

    Pergi ke tab hotkeys dan semak kotak semak untuk "Gunakan hotkey global".

    Klik OK.

    Biarkan ia berjalan di latar belakang supaya ia boleh melakukan tugasnya apabila kita menyambung ketukan kekunci kepadanya.

    Pasang xdotool dengan mengeluarkan:

    sudo apt-get install xdotool

    Mengikat global

    Program xdotool sendiri tidak membantu kita mengikat global ke hotkeys, tetapi kita boleh menggunakan sistem hotkey OS yang sudah ada. Apa yang akan kami lakukan ialah membuat skrip mudah yang menggunakan xdotool untuk menghantar ketukan kekunci yang kami mahu untuk program Balabolka dan memanggilnya dari sistem hotkey OS.

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

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

    Buat skrip lain kali ini dipanggil "stop_read.sh" dengan kandungan berikut:

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

    Nota: Saya tahu ini adalah satu pelayar yang tidak memerlukan skrip, tetapi program "Pintasan Papan Kekunci" Mint / Ubuntu tidak bekerjasama dengan hanya menggunakannya secara langsung. Jika anda tahu bagaimana untuk melakukannya, sila berkongsi di komen di bawah.

    Mengemudi arahan ini kepada komponennya, apa yang kita lihat ialah:

    • "Bahagian" (pgrep balabolka) ", melaksanakan" pgrep "pada program yang ingin kami gunakan untuk memastikan ID prosesnya. Ini akan menyempitkan xdotool yang difailkan dari "carian" hanya kepada PID itu.
    • The "xdotool search -limit 1 -all ... -name Balabolka" part, narrows the filed of search of xdotool even more and limits the returned answers to 1. Seperti dalam kasus kami, tidak masalah mana dari ID jendela yang dikembalikan dari program, mengehadkan hasilnya bertindak sebagai formatter untuk arahan "utama". Anda mungkin mendapati anda perlu mengurut bahagian ini lebih banyak jika ia penting untuk program yang anda gunakan.
    • Bahagian "xdotool key -window% WINDOW_ID%" ctrl + alt + F7 "", hantar stikstroke yang dikehendaki ke windowID yang diperolehi oleh bahagian sebelumnya.

    Buat skrip yang dapat dilaksanakan.

    Keyboard Linux Mint jalan pintas

    Di bawah Linux Mint, kelebihan hotkey global ditetapkan dalam program "Pintasan Papan Kekunci".

    Setelah dibuka Klik pada "Tambah" untuk membuat pintasan tersuai baru:

    Beri nama dan di bawah "Perintah" memberi jalan penuh ke salah satu skrip yang kami buat di atas. Ulangi proses untuk skrip kedua.

    Sekarang, pada "Kekunci" Lajur, klik pada perkataan "Disabled" untuk mendapatkan pilihan untuk menetapkan combo utama yang baru.
    Nota: Anda boleh, jika anda mahu, menggunakan sesuatu yang lain kemudian lalai program. Dalam erti kata yang mewujudkan "remap" kepada pengikatan kunci yang, bergantung kepada program yang anda gunakan, sebaliknya akan keluar dari kawalan anda.

    Tekan combo yang anda pilih dan dengar sihir.

    Ubuntu Keyboard

    Di bawah Ubuntu, program yang menetapkan kekunci hotkey global hanya dipanggil "Papan Kekunci".

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

    Klik tanda tambah untuk menambah pintasan. Beri nama dan di bawah "Perintah" memberi jalan penuh ke salah satu skrip yang kami buat di atas. Ulangi proses untuk skrip kedua.
    Sekarang klik pada perkataan "Disabled" untuk mendapatkan pilihan untuk menetapkan kombo utama yang baru.

    Nota: Mengulangi catatan dari bahagian Mint, anda boleh, jika anda mahu, gunakan sesuatu yang lain kemudian lalai program. Dalam erti kata yang mewujudkan "remap" kepada pengikatan kunci yang, bergantung kepada program yang anda gunakan, sebaliknya akan keluar dari kawalan anda.

    Nota Pengarang

    Setiap kali saya serius mempertimbangkan untuk berpindah ke Linux, masalah ini adalah yang pertama dalam senarai masalah saya. Bukannya Linux tidak mempunyai masalah, tetapi ini adalah halangan sebenar bagi saya. Saya telah mencuba masa dan masa lagi, meminta rakan-rakan / orang di lapangan dan bahkan membuatnya menjadi limpah ... Saya gembira saga ini berakhir dan bahawa jiwaku akhirnya dapat berehat.
    Adalah menjadi harapan saya bahawa saya telah membantu seseorang di luar sana untuk tidak mengalami kesukaran yang sama.


    Doc Brown: Ia membawa saya hampir tiga puluh tahun dan seluruh kekayaan keluarga saya untuk merealisasikan visi pada hari itu. Tuhanku, sudah lama?