Úvodná » ako » Ako spájať Global HotKeys s programom WINE pod Linuxom

    Ako spájať Global HotKeys s programom WINE pod Linuxom

    Už ste niekedy nainštalovali program Windows v systéme Linux pod WINE, len aby zistili, že už neviaže systémové klávesové skratky? HTG má prácu okolo vás, ktorú ste hľadali.

    Obrázok podľa djeukalyptus

    Prehľad

    Každý, kto dokonca premýšľal o myšlienke prechodu na Linux, pravdepodobne veľmi rýchlo narazil na problém, že existuje táto aplikácia systému Windows, ktorú potrebujete mať. Už sme vám ukázali, že to môžete dosiahnuť použitím WINE.

    Pre tohto spisovateľa bola aplikácia aplikácia Text-To-Speech, ktorá využíva motor Microsoft SAPI4. Inštalácia programu pod WINE bola vítom, ale po dokončení som rýchlo zistil, že hot-kľúče používané na spúšťanie rôznych akcií programu (čítanie, zastavenie čítania atď.) Nefungovali a je to známe problém s WINE.

    Som rád, že po skončení hľadania som konečne našiel riešenie vo forme GNU nástroja, ktorý môže manipulovať s rozhraním X.org pomocou natívnych funkcií. Aj keď nie je jediný svojho druhu, xdotool je ten, ktorý bol najjednoduchší na prácu a bol už v úložiskách Ubuntu / Mint.

    xdotool

    Program xdotool môže robiť z CLI mnoho úloh súvisiacich s oknami, pričom len dva z nich budeme využívať ako "hľadanie" a "kľúč". Funkcia "vyhľadávanie" len robí vyhľadávanie ID okna podľa nastavených parametrov. Funkcia "key" umožňuje simulovať tlkot kľúča na ID okna.

    Inštalácia a konfigurácia

    Predpokladá sa, že ste už nainštalovali program WINE a program, ktorý od neho potrebujete. V tomto príklade budeme používať Balabolku ako aplikáciu "Windows", pretože je to dobrá freeware replika pôvodného programu, ktorý som potreboval pre toto riešenie (2. rečové centrum).

    Ak ste sa rozhodli použiť aj Balabolku, musíte aktivovať jeho funkciu klávesových skratiek.
    Poznámka: Možno budete chcieť nainštalovať buď TTSReader, alebo druhé centrum reči aj v demo režime, aby sa nainštalovali hlasy SAPI. 

    Otvorte program a prejdite na nastavenia (Shift + F6) pod "Možnosti" -> "Nastavenia".

    Prejdite na kartu klávesových skratiek a začiarknite políčko "Používanie globálnych klávesových skratiek".

    Kliknite na tlačidlo OK.

    Nechajte ho bežať na pozadí, aby mohla robiť svoju úlohu, keď sme na ňu zaviedli stlačenia klávesov.

    Nainštalujte xdotool vydaním:

    sudo apt-get nainštalovať xdotool

    Globálne viazanie

    Samotný program xdotool nám nepomáha globálne viazať sa na klávesové skratky, ale môžeme použiť už existujúci systém rýchlych klávesových skratiek. Čo urobíme, je vytvoriť jednoduchý skript, ktorý využíva xdotool na odoslanie stlačenia klávesov, ktoré chceme, do programu Balabolka a zavoláme ho zo systému rýchlych systémov OS.

    Vytvorte skript s názvom "start_read.sh" s nasledujúcim obsahom:

    xdotool kľúč - okno $ (xdotool search - limit 1 - všetko - $ $ (pgrep balabolka) - meno Balabolka) "ctrl + alt + F9"

    Vytvorte ďalší skript tentokrát nazvaný "stop_read.sh" s nasledujúcim obsahom:

    xdotool kľúč - okno $ (xdotool search - limit 1 - všetko - $ $ (pgrep balabolka) - meno Balabolka) "ctrl + alt + F7"

    Poznámka: Viem, že je to jedna linka, ktorá nevyžaduje skript, ale program Mint / Ubuntu "Keyboard Shortcuts" program nespolupracoval s jednoduchým vyvolaním priamo. Ak viete, ako to urobiť, zdieľajte prosím nižšie uvedené komentáre.

    Tento príkaz brzdíte na jeho komponenty, čo vidíme:

    • Časť "-pid $ (pgrep balabolka)" vykoná program "pgrep", ktorý chceme použiť na zistenie jeho ID procesu. To zúži xdotool podaná "hľadanie" len na tento PID.
    • Výraz "xdotool search -limit 1 -all ... -name Balabolka" zužuje oblasť vyhľadávania xdotool ešte viac a obmedzuje vrátené odpovede na hodnotu 1. Rovnako ako v našom prípade nezáleží na tom, ktoré z ID okien sa vrátili program, ktorý obmedzuje výsledok pôsobí ako formátovač príkazu "key". Možno zistíte, že túto časť potrebujete masírovať viac, ak je to dôležité pre program, ktorý používate.
    • V časti "xdotool key -window% WINDOW_ID%" ctrl + alt + F7 "" pošle požadované stlačenie klávesu na okno, ktoré bolo získané predchádzajúcimi časťami.

    Vytvorte spustiteľný skript.

    Klávesnica Linux Mint skratky

    V systéme Linux Mint sú globálne klávesové skratky nastavené v programe "Klávesové skratky".

    Po otvorení Kliknite na "Pridať" a vytvorte novú vlastnú skratku:

    Zadajte jej meno a pod príkazom "Command" zadajte úplnú cestu k jednému zo skriptov, ktoré sme vytvorili vyššie. Opakujte proces druhého skriptu.

    Teraz v stĺpci "Skratky" kliknite na slovo "Zakázané", čím získate možnosť nastaviť nový klávesový príkaz.
    Poznámka: Ak chcete, môžete použiť niečo iné ako predvolené. V určitom zmysle vytvoriť "remap" na kľúčové väzby, ktoré by v závislosti od programu, ktorý používate, inak by boli mimo vašej kontroly.

    Stlačte kombináciu, ktorú ste vybrali, a počuť kúzlo.

    Klávesnica Ubuntu

    Podľa programu Ubuntu program, ktorý nastavuje globálne klávesové skratky, sa nazýva iba "klávesnica".

    Prepnite na kartu "Skratky" a zvoľte "Vlastné skratky".

    Kliknutím na znamienko plus pridajte skratku. Zadajte jej meno a pod príkazom "Command" zadajte úplnú cestu k jednému zo skriptov, ktoré sme vytvorili vyššie. Opakujte proces druhého skriptu.
    Teraz kliknite na slovo "Zakázané", čím získate možnosť nastaviť nové kombinované tlačidlo.

    Poznámka: Opakovaním poznámky zo sekcie mincovne môžete, ak chcete, použiť niečo iné ako predvolené. V určitom zmysle vytvoriť "remap" na kľúčové väzby, ktoré by v závislosti od programu, ktorý používate, inak by boli mimo vašej kontroly.

    Poznámky autora

    Zakaždým, keď som vážne uvažoval o presune do Linuxu, bol tento problém prvý na mojom zozname problémov. Nie, že Linux nemá problémy, ale pre mňa to bola skutočná prekážka. Snažil som sa znova a znova, spýtal som sa priateľov / ľudí v teréne a dokonca som to urobil ako odmenu ... Som šťastná, že táto sága je u konca a že moja duša môže nakoniec odpočívať.
    Dúfam, že som pomohol niekomu vonku, aby nemusel prechádzať tým istým utrpením.


    Doc Brown: Trvalo mi takmer tridsať rokov a celé moje rodinné šťastie, aby som si uvedomil víziu toho dňa. Bože, bolo to tak dlho?