2Sep
Har du nogensinde installeret et Windows-program i Linux under WINE, for kun at opdage, at det ikke binder systembrede genvejstaster længere? HTG har det arbejde, du har ledt efter.
Billede af djeucalyptus
Oversigt
Enhver, der selv har tænkt på ideen om at skifte til Linux, har sandsynligvis meget hurtigt støder på problemet, at der er denne ene Windows-app, som du behøver at fungere. Vi har allerede vist dig at du kan opnå dette ved hjælp af WINE.
For denne forfatter var applikationen en tekst-til-tale-applikation, der bruger Microsoft SAPI4-motoren. Installering af programmet under WINE var en brise, men efter færdiggørelsen har jeg hurtigt fundet ud af, at de genvejstaster, der bruges til at udløse de forskellige handlinger i programmet( start læsning, stop læsning osv.) Ikke fungerede, og at dette er kendtproblem med vin.
Jeg er glad for at sige, at efter eons search, har jeg endelig fundet løsningen i form af et GNU-værktøj, der kan manipulere X.org-grænsefladen ved hjælp af indfødte funktioner. Selvom det ikke er den eneste af sin art, er xdotool den, der var den nemmeste at få arbejde og var allerede i Ubuntu / Mint-repositorierne.
xdotool
Xdotool-programmet kan gøre mange vinduesrelaterede opgaver fra CLI, med det sagt, at de eneste to vi skal bruge er "søgning" og "nøgle".Funktionen "søgning" gør netop det, søger efter et vindues / s-ID i henhold til de parametre, du har indstillet til det. Funktionen "nøgle" giver dig mulighed for at simulere en nøgleslag til et vindues-id.
Installation &konfiguration
Det antages, at du allerede har installeret WINE og det program du har brug for under det. I dette eksempel bruger vi Balabolka som "Windows" -applikationen, fordi det er en god freeware replika af det originale program, jeg havde brug for denne løsning til( 2. talcenter).
Hvis du har valgt at bruge Balabolka, skal du aktivere dets genvejstaster.
Bemærk: Du kan muligvis installere enten TTSReader eller 2. talesenter selv i demo-tilstand, så SAPI-stemmerne bliver installeret.
Åbn programmet og gå til indstillinger( Shift + F6) under "Options" - & gt;”Indstillinger”.
Gå til hotkeys fanen og markér afkrydsningsfeltet for "Brug globale hotkeys".
Klik på OK.
Lad det køre i baggrunden, så det kan gøre sit job, når vi hakker tastetrykket til det.
Installer xdotool ved at udstede:
sudo apt-get install xdotool
Global binding
xdotool-programmet i sig selv hjælper os ikke med at binde globalt til genvejstaster, men vi kan bruge det allerede eksisterende operativsystem til hurtigtaster. Hvad vi vil gøre er at oprette et simpelt script, der bruger xdotool til at sende tastetryk, vi ønsker at Balabolka programmet og kalde det fra OS'ens hotkey-system.
Opret et script kaldet "start_read.sh" med følgende indhold:
xdotool key --window $( xdotool søgning --limit 1 --all --pid $( pgrep balabolka) - navn Balabolka) "ctrl + alt +F9 "
Opret et andet script denne gang kaldet" stop_read.sh "med følgende indhold:
xdotool key --window $( xdotool search --limit 1 --all --pid $( pgrep balabolka) - navn Balabolka)"ctrl + alt + F7 "
Bemærk: Jeg ved, at dette er en liner, der ikke kræver et script, men Mint / Ubuntu" Keyboard Shortcuts "-programmet, samarbejdede ikke med bare at kalde det direkte. Hvis du ved hvordan du gør det, kan du dele i kommentarerne nedenfor.
Bremser denne kommando til sine komponenter, hvad vi ser er:
- Den "-pid $( pgrep balabolka)" del udfører en "pgrep" på det program, vi vil bruge til at fastslå dets proces ID.Dette vil indsnævre xdotool arkiveret af "søgning" til netop den PID.
- Den "xdotool search -limit 1 -all. .. -name Balabolka" del, indsnævrer søgningen af xdotool endnu mere og begrænser de returnerede svar til 1. Som i vores tilfælde er det ligegyldigt, hvilken af vindues-ID'erne returneres afProgrammet, der begrænser resultatet, virker som en formatter for kommandoen "key".Du må måske finde, at du skal massage denne del mere, hvis det gør noget for det program, du bruger.
- "xdotool key -window% WINDOW_ID%" ctrl + alt + F7 "" del, sender den ønskede tastetryk til vinduetID, som blev opnået af de foregående dele.
Gør scripts eksekverbare.
Linux Mint-tastatur genveje
Under Linux Mint er de globale genvejstaster indstillet i "Tastaturgenveje" -programmet.
Når den er åbnet Klik på "Tilføj" for at oprette en ny brugerdefineret genvej:
Giv det et navn, og under "Command" gives hele stien til et af de scripts, vi har lavet ovenfor. Gentag processen for det andet script.
Klik på "Genvej" -kolonnen på "Disabled" -kolonnen for at få mulighed for at indstille en ny nøglekombination.
Bemærk: Du kan, hvis du ønsker, bruge noget andet end programmets standard. På en måde skabe en "remap" til nøglebindinger, der ellers afhænger af det program du bruger, ellers ville være uden for din kontrol.
Tryk på den combo du har valgt og hør det magiske.
Ubuntu-tastatur
Under Ubuntu kaldes det program, der angiver de globale genvejstaster, bare "Keyboard".
Skift til fanen "Genveje" og vælg "Brugerdefinerede genveje".
Klik på plustegnet for at tilføje en genvej. Giv det et navn, og under "Command" gives den fulde sti til et af de scripts, vi har lavet ovenfor. Gentag processen for det andet script.
Klik nu på "Disabled" ordet for at få mulighed for at indstille en ny nøglekombination.
Bemærk: Gentag på noten fra Mint sektionen kan du, hvis du ønsker det, bruge noget andet end programmets standard. På en måde skabe en "remap" til nøglebindinger, der ellers afhænger af det program du bruger, ellers ville være uden for din kontrol.
Forfatterens noter
Hver gang jeg seriøst overvejet at flytte til Linux, var dette problem det første på min liste over problemer. Det er ikke, at Linux ikke har problemer, men det var den virkelige forhindring for mig. Jeg har prøvet tid og tid igen, spurgte venner / folk i marken og endda gjort det til en summende. .. Jeg er glad denne saga er forbi, og at min sjæl endelig kan hvile.
Det er mit håb, at jeg har hjulpet nogen derude for ikke at skulle gennemgå samme prøvelse.
Doc Brown: Det har taget mig næsten tredive år og hele min familieformue at realisere visionen om den dag. Min Gud, har det været så længe?