Hogyan kössük össze a globális hotke-eket egy WINE programhoz Linux alatt
Volt már telepítve egy Windows programot a Linux alatt a WINE alatt, csak azért, hogy felfedezhesse, hogy ez már nem köti össze a rendszerszintű forró kulcsokat? A HTG-nek van a munkája, amit keresett.
Kép djeucalyptus
Áttekintés
Valaki, aki még gondolta a Linuxra való áttérés eszméjét, valószínűleg nagyon gyorsan találkozott azzal a problémával, hogy van egy olyan Windows alkalmazás, amelyre szüksége van. Már megmutattuk, hogy ezt a WINE segítségével végezheti el.
Ehhez az íróhoz az alkalmazás egy Text-To-Speech alkalmazás volt, amely a Microsoft SAPI4 motort használja. A WINE programban a program telepítése szellő volt, de a befejezés után gyorsan megállapítottam, hogy a program különböző műveleteinek elindításához használt gyorsbillentyűk (elolvasás, olvasás leállítása, stb.) Nem működtek, és ez egy ismert probléma a WINE-vel.
Örülök, hogy elmondom, hogy a keresést követő évek után végül megtaláltam a megoldást egy GNU segédprogram formájában, amely natív függvényekkel manipulálhatja az X.org felületet. Míg nem az egyetlen ilyen jellegű, az xdotool az, amelyik a legegyszerűbb volt, hogy dolgozzon, és már az Ubuntu / Mint tárolóban volt..
xdotool
Az xdotool program számos ablakhoz kapcsolódó feladatot tud végrehajtani a CLI-től, és ez az egyetlen, amit csak a „keresés” és a „kulcs” fog használni. A „keresési” funkció csak ezt teszi, keres egy ablak / azonosítót az általuk beállított paraméterek szerint. A „kulcs” funkció lehetővé teszi, hogy szimuláljon egy kulcs ID-t.
Telepítés és konfiguráció
Feltételezzük, hogy már telepítetted a WINE-t és az ehhez szükséges programot. Ebben a példában a Balabolka-t „Windows” alkalmazásként fogjuk használni, mert ez egy jó ingyenes replikája az eredeti programnak, amire szükségem volt erre a megoldásra (2. beszédközpont).
Ha úgy döntött, hogy Balabolka-t is használ, aktiválnia kell a gyorsbillentyűket.
Megjegyzés: Előfordulhat, hogy a TTSReader vagy a 2. beszédközpont is telepíthető demo módban is, így a SAPI hangok telepítve lesznek.
Nyissa meg a programot, és menjen a beállításokhoz (Shift + F6) a „Beállítások” -> „Beállítások” alatt.
Lépjen a gyorsbillentyűk lapra, és jelölje be a "Gyorsbillentyűk használata" jelölőnégyzetet.
Kattintson az OK gombra.
Hagyja, hogy a háttérben futjon, hogy elvégezhesse a munkáját, amikor a gombnyomásokat ráhúzzuk.
Az xdotool telepítése a következővel:
sudo apt-get install xdotool
Globális kötés
Az xdotool program önmagában nem segít világszerte a gyorsbillentyűkhöz kötni, de a már létező operációs rendszer gyorsbillentyű rendszerét is használhatjuk. Mit fogunk tenni egy olyan egyszerű szkript létrehozása, amely az xdotool-t használja a balabolka programhoz szükséges billentyűleütések elküldéséhez, és az operációs rendszer gyorsbillentyű rendszeréből hívja..
Hozzon létre egy „start_read.sh” nevű parancsfájlt a következő tartalommal:
xdotool gomb - $ $ (xdotool keresés - limit 1 --all -pid $ (pgrep balabolka) - név Balabolka) "ctrl + alt + F9"
Hozzon létre egy másik szkriptet, melynek neve „stop_read.sh” a következő tartalommal:
xdotool gomb - $ $ (xdotool keresés - limit 1 --all -pid $ (pgrep balabolka) - név Balabolka) "ctrl + alt + F7"
Megjegyzés: Tudom, hogy ez egy olyan bélés, amely nem igényel parancsfájlt, de a pénzverde / Ubuntu „Billentyűparancsok” program nem működött együtt azzal, hogy közvetlenül hívta fel. Ha tudja, hogyan kell csinálni, kérjük, ossza meg az alábbi megjegyzéseket.
Ezt a parancsot az összetevőkre fékezzük, amit látunk:
- A "-pid $ (pgrep balabolka)" rész egy "pgrep" -et hajt végre a programban, amelyet a folyamat azonosítójának megállapításához használunk. Ez szűkíti az „xdotool” -ot a „keresés” -re, és csak a PID-re.
- Az „xdotool search -limit 1 -all… -name Balabolka” rész még jobban szűkíti az xdotool keresési kérelmét, és korlátozza a visszajuttatott válaszokat az 1-re. program, az eredmény korlátozása a „kulcs” parancs formázója. Előfordulhat, hogy ezt a részt még inkább masszírozni kell, ha számít a használt programra.
- Az "xdotool key -window% WINDOW_ID%" ctrl + alt + F7 "" rész elküldi a kívánt billentyűzetet az ablaknak, amelyet az előző részek kaptak.
Végezze el a parancsfájlok futtatását.
Linux menta billentyűzet hivatkozások
A Linux Mint alatt a globális gyorsbillentyűk a „Billentyűparancsok” programban vannak beállítva.
Megnyitás után Kattintson az „Add” gombra, hogy új egyéni parancsikont hozzon létre:
Adjon meg egy nevet, és a „Parancs” alatt adja meg az összes létrehozott parancsfájl teljes elérési útját. Ismételje meg a folyamatot a második szkripthez.
Most, a "Gyorsbillentyűk" oszlopban kattintson a "Letiltva" szóra, hogy megadhassa az új kulcskombináció beállításának lehetőségét.
Megjegyzés: Ha kívánja, használhat valamit más, mint a program alapértelmezett. Bizonyos értelemben létrehoz egy „remap” -t a kulcskötésekhez, amelyek az Ön által használt programtól függően egyébként nem lennének az Ön irányításában.
Hit a kombinált, amit választott, és hallja a varázslatot.
Ubuntu billentyűzet
Az Ubuntu alatt a globális gyorsbillentyűket meghatározó program neve „Keyboard”.
Váltás a „Gyorsbillentyűk” fülre, és válassza az „Egyéni parancsikonok” lehetőséget.
Kattintson a pluszjelre, hogy hozzáadjon egy parancsikont. Adjon meg egy nevet, és a „Parancs” alatt adja meg az összes létrehozott parancsfájl teljes elérési útját. Ismételje meg a folyamatot a második szkripthez.
Most kattintson a „Letiltva” szóra, hogy megadhassa az új kulcskombináció beállítását.
Megjegyzés: Ha meg szeretné ismételni a pénzverés részen lévő jegyzetben, akkor a program alapértelmezett beállításait használhatja. Bizonyos értelemben létrehoz egy „remap” -t a kulcskötésekhez, amelyek az Ön által használt programtól függően egyébként nem lennének az Ön irányításában.
Szerzői megjegyzések
Minden alkalommal, amikor komolyan gondoltam, hogy Linuxra költöztem, ez a probléma volt az első a listán. Nem az, hogy a Linuxnak nincs problémája, de ez az igazi akadály volt számomra. Megpróbáltam újra és újra, megkérdeztem barátaidat / embereket a területen, és még bounty-ra is tettem… Boldog vagyok, hogy ez a saga véget ért, és hogy a lelkem végre pihen.
Remélem, hogy segítettem valaki odakint, hogy ne kelljen átmennie ugyanazon a próbán.
Doc Brown: Majdnem harminc évig tartottam, és az egész családi szerencsém, hogy megvalósítsam az adott nap jövőjét. Istenem, olyan hosszú volt?