Domovská » jak » Jak spojit Global HotKeys s programem WINE pod Linuxem

    Jak spojit Global HotKeys s programem WINE pod Linuxem

    Nainstalovali jste někdy program Windows v systému Linux pod WINE, jen aby zjistili, že už neváže systémové klávesové zkratky? HTG má práci, kterou jste hledali.

    Obrázek djeucalyptus

    Přehled

    Každý, kdo dokonce přemýšlel o myšlence přechodu na Linux, pravděpodobně velmi rychle narazil na problém, že existuje jedna aplikace Windows, kterou potřebujete k fungování. Již jsme vám ukázali, že to můžete dosáhnout pomocí WINE.

    Pro tento spisovatel byla aplikace aplikace Text-To-Speech, která využívá Microsoft SAPI4 engine. Instalace programu pod WINE byla vítr, ale po dokončení jsem rychle zjistil, že horké klíče používané k spuštění různých akcí programu (start čtení, stop čtení atd.) Nefungovaly a to je známé problém s WINE.

    Jsem ráda, že po dlouhých letech vyhledávání jsem nakonec našel řešení ve formě nástroje GNU, který může manipulovat s rozhraním X.org pomocí nativních funkcí. Zatímco není jediný svého druhu, xdotool je ten, který byl nejjednodušší k práci a byl již v úložištích Ubuntu / Mint.

    xdotool

    Program xdotool může z CLI dělat mnoho úloh souvisejících s oknem, s tím, že jediné dva, které budeme využívat, jsou "hledání" a "klíč". Funkce "hledání" pouze vyhledá ID okna podle identifikovaných parametrů. Funkce "key" umožňuje simulovat stisknutí klávesy na ID okna.

    Instalace a konfigurace

    Předpokládá se, že jste již nainstalovali program WINE a program, který od něj potřebujete. V tomto příkladu budeme používat Balabolku jako "Windows" aplikaci, protože to je dobrá freeware replika původního programu, který jsem potřeboval toto řešení pro (2. řečové centrum).

    Pokud jste se rozhodli použít Balabolku také, musíte aktivovat jeho klávesové zkratky.
    Poznámka: Možná budete chtít nainstalovat TTSReader nebo 2. řečové centrum i v demo režimu tak, aby byly nainstalovány hlasy SAPI. 

    Otevřete program a přejděte do nastavení (Shift + F6) v části "Možnosti" -> "Nastavení".

    Přejděte na záložku Klávesové zkratky a zaškrtněte políčko "Použít globální klávesové zkratky".

    Klepněte na tlačítko OK.

    Nechte to běhat na pozadí, aby mohla dělat svou práci, když jsme zavěsili stisknutí kláves.

    Nainstalujte xdotool vydáním:

    sudo apt-get nainstalovat xdotool

    Globální závaznost

    Samotný program xdotool nám nepomáhá globálně svázat s klávesovými zkratkami, ale můžeme použít již existující systém klávesových zkratek OS. Co budeme dělat, je vytvořit jednoduchý skript, který používá xdotool pro zaslání stisknutí kláves, které chceme, do programu Balabolka a zavoláme mu ze systému klávesových zkratek OS.

    Vytvořte skript s názvem "start_read.sh" s následujícím obsahem:

    xdotool klíč - okno $ (xdotool search - limit 1 - vše - $ $ (pgrep balabolka) - jméno Balabolka) "ctrl + alt + F9"

    Vytvořte další skript tentokrát nazvaný "stop_read.sh" s následujícím obsahem:

    xdotool klíč - okno $ (xdotool search - limit 1 - vše - $ $ (pgrep balabolka) - jméno Balabolka) "ctrl + alt + F7"

    Poznámka: Vím, že je to jedna linka, která nevyžaduje skript, ale program Mint / Ubuntu "Klávesové zkratky" neprospěl s tím, že ji přímo vyvolá. Pokud víte, jak to udělat, sdílejte prosím následující komentáře.

    Tento příkaz k jeho komponentám brzdíme, co vidíme, je:

    • Část "-pid $ (pgrep balabolka)" spouští program "pgrep", který chceme použít, aby zjistil jeho ID procesu. To zúží xdotool filed "hledání" pouze na toto PID.
    • Součást "xdotool search -limit 1 -all ... -name Balabolka" zúžívá ještě další možnosti hledání xdotoolu a omezuje vrácené odpovědi na hodnotu 1. Stejně jako v našem případě nezáleží na tom, které z ID oken se vrátilo program, omezující výsledek působí jako formátovač příkazu "key". Možná zjistíte, že tuto část potřebujete masírovat, pokud to záleží na programu, který používáte.
    • Část "xdotool key -window% WINDOW_ID%" ctrl + alt + F7 "" odešle požadované stisknutí klávesy do okna, které bylo získáno předchozími částmi.

    Udělat skripty spustitelný.

    Klávesnice Linux Mint zkratky

    V Linux Mint jsou globální klávesové zkratky nastaveny v programu "Klávesové zkratky".

    Po otevření klikněte na "Přidat" pro vytvoření nové vlastní zástupce:

    Dejte jej jméno a pod příkazem "Command" dejte plnou cestu k jednomu ze skriptů, které jsme vytvořili výše. Opakujte proces druhého skriptu.

    Nyní na sloupci "Klávesové zkratky" klikněte na slovo "Zakázáno", abyste získali možnost nastavení nového combo kláves.
    Poznámka: Pokud si přejete, můžete použít něco jiného než výchozí. V jistém smyslu vytvoření "přemapování" klíčových vazeb, které by v závislosti na použitém programu jinak byly mimo vaši kontrolu.

    Stiskněte kombinaci, kterou jste vybrali, a uslyšíte kouzlo.

    Klávesnice Ubuntu

    V programu Ubuntu program, který nastavuje globální klávesové zkratky, se nazývá "klávesnice".

    Přepněte na kartu "Klávesové zkratky" a vyberte "Vlastní zkratky".

    Klepnutím na znaménko plus přidáte zkratku. Dejte jej jméno a pod příkazem "Command" dejte plnou cestu k jednomu ze skriptů, které jsme vytvořili výše. Opakujte proces druhého skriptu.
    Nyní klikněte na slovo "Zakázáno", abyste získali možnost nastavit nový kombinovaný klíč.

    Poznámka: Při opakování poznámky v sekci Mincovna můžete, pokud si přejete, použít něco jiného než výchozí. V jistém smyslu vytvoření "přemapování" klíčových vazeb, které by v závislosti na použitém programu jinak byly mimo vaši kontrolu.

    Poznámky autora

    Pokaždé, když jsem vážně uvažoval o stěhování do systému Linux, byl tento problém první na mém seznamu problémů. Je to, že Linux nemá problémy, ale to byla skutečná překážka pro mě. Zkoušel jsem znovu a znovu, zeptal jsem se přátele / lidi na poli a dokonce jsem to udělal jako odměnu ... Jsem šťastná, že tato sága skončila a že moje duše může konečně odpočívat.
    Doufám, že jsem někoho pomohl tam, aby nemusel projít stejným testem.


    Doc Brown: Trvalo mi to skoro třicet let a celé rodinné štěstí, abych si uvědomil vize toho dne. Můj Bože, bylo to tak dlouho?