So binden Sie globale HotKeys an ein WINE-Programm unter Linux
Haben Sie schon einmal ein Windows-Programm unter WINE in Linux installiert, nur um festzustellen, dass es keine systemweiten Tastenkombinationen mehr bindet? HTG hat die Arbeit, nach der Sie gesucht haben.
Bild von djeucalyptus
Überblick
Jeder, der sogar an die Idee eines Wechsels zu Linux gedacht hat, ist wahrscheinlich sehr schnell auf das Problem gestoßen, dass es diese Windows-App gibt, die Sie benötigen. Wir haben Ihnen bereits gezeigt, dass Sie dies mit WINE erreichen können.
Für diesen Autor war die Anwendung eine Text-To-Speech-Anwendung, die die Microsoft SAPI4-Engine verwendet. Die Installation des Programms unter WINE war ein Kinderspiel, aber ich habe schnell festgestellt, dass die Hotkeys, mit denen die verschiedenen Aktionen des Programms (Lesen starten, Lesen stoppen usw.) ausgelöst wurden, nicht funktionieren und dass dies bekannt ist Problem mit Wein.
Ich bin froh zu sagen, dass ich nach Äonen der Suche endlich die Lösung in Form eines GNU-Dienstprogramms gefunden habe, das die X.org-Benutzeroberfläche mithilfe von nativen Funktionen manipulieren kann. Xdotool ist zwar nicht das einzige seiner Art, aber am einfachsten zu arbeiten und bereits in den Ubuntu / Mint-Repositories zu finden.
xdotool
Das xdotool-Programm kann viele fensterbezogene Aufgaben von der CLI aus erledigen. Die einzigen beiden, die wir verwenden werden, sind "search" und "key". Die Funktion "Suchen" sucht genau nach einer Fenster-ID gemäß den von Ihnen festgelegten Parametern. Mit der Funktion "Schlüssel" können Sie einen Schlüsselstrich für eine Fenster-ID simulieren.
Installation & Konfiguration
Es wird davon ausgegangen, dass Sie WINE und das Programm, das Sie darunter benötigen, bereits installiert haben. In diesem Beispiel werden wir Balabolka als "Windows" -Anwendung verwenden, da es sich um eine gute Freeware-Replik des ursprünglichen Programms handelt, für das ich diese Lösung benötigte (2. Sprachenzentrum)..
Wenn Sie sich auch für Balabolka entschieden haben, müssen Sie die Hotkeys-Funktion aktivieren.
Hinweis: Möglicherweise möchten Sie TTSReader oder 2nd Speech Center auch im Demo-Modus installieren, damit die SAPI-Stimmen installiert werden.
Öffnen Sie das Programm und gehen Sie zu den Einstellungen (Umschalt + F6) unter "Optionen" -> "Einstellungen"..
Wechseln Sie zur Registerkarte Hotkeys und aktivieren Sie das Kontrollkästchen "Globale Hotkeys verwenden"..
OK klicken.
Lassen Sie es im Hintergrund laufen, damit es seine Arbeit erledigen kann, wenn wir die Tastenanschläge einhaken.
Installieren Sie xdotool, indem Sie Folgendes ausgeben:
sudo apt-get install xdotool
Globale Bindung
Das xdotool-Programm allein hilft uns zwar nicht, global an Hotkeys zu binden, aber wir können das bereits vorhandene Betriebssystem-Hotkey-System verwenden. Was wir tun werden, ist ein einfaches Skript zu erstellen, das xdotool verwendet, um die gewünschten Tastenanschläge an das Balabolka-Programm zu senden und es über das Hotkey-System des Betriebssystems aufzurufen.
Erstellen Sie ein Skript mit dem Namen "start_read.sh" mit folgendem Inhalt:
xdotool key --window $ (xdotool search --limit 1 --all --pid $ (pgrep balabolka) - name Balabolka) "Strg + Alt + F9"
Erstellen Sie dieses Mal ein weiteres Skript mit dem Namen "stop_read.sh" mit folgendem Inhalt:
xdotool key --window $ (xdotool search --limit 1 --all --pid $ (pgrep balabolka) - name Balabolka) "Strg + Alt + F7"
Hinweis: Ich weiß, dass dies ein Einzeiler ist, für den kein Skript erforderlich ist, aber das Mint / Ubuntu-Programm „Tastaturkürzel“ hat nicht nur mit dem direkten Aufruf zusammengearbeitet. Wenn Sie wissen, wie es geht, teilen Sie es bitte in den Kommentaren unten.
Wenn wir diesen Befehl auf seine Komponenten bremsen, sehen wir:
- Der Teil "-pid $ (pgrep balabolka)" führt ein "pgrep" für das Programm aus, mit dem die Prozess-ID ermittelt werden soll. Dadurch wird das xdotool-Feld von "search" auf diese PID beschränkt.
- Mit dem Teil "xdotool search -limit 1 -all ... -name Balabolka" wird das Suchfeld von xdotool noch weiter eingegrenzt und die zurückgegebenen Antworten auf 1 begrenzt. Wie in unserem Fall ist es egal, welche der Fenster-IDs von der Programm, das das Ergebnis einschränkt, dient als Formatierer für den Befehl "Schlüssel". Möglicherweise müssen Sie diesen Teil noch mehr massieren, wenn es für das von Ihnen verwendete Programm von Bedeutung ist.
- Der Teil "xdotool key -window% WINDOW_ID%" ctrl + alt + F7 "" sendet den gewünschten Tastenanschlag an die windowID, die von den vorherigen Teilen abgerufen wurde.
Machen Sie die Skripts ausführbar.
Linux Mint-Tastatur Verknüpfungen
Unter Linux Mint werden die globalen Hotkeys im Programm „Tastaturkürzel“ festgelegt.
Einmal geöffnet Klicken Sie auf "Hinzufügen", um eine neue benutzerdefinierte Verknüpfung zu erstellen:
Vergeben Sie einen Namen und geben Sie unter "Befehl" den vollständigen Pfad zu einem der Skripts an, die wir oben erstellt haben. Wiederholen Sie den Vorgang für das zweite Skript.
Klicken Sie nun in der Spalte "Tastenkombinationen" auf das Wort "Deaktiviert", um eine neue Tastenkombination festzulegen.
Hinweis: Wenn Sie möchten, können Sie auch etwas anderes als die Standardeinstellung des Programms verwenden. In gewissem Sinne erstellen Sie eine "Neuzuordnung" für Tastenkombinationen, die je nach verwendetem Programm ansonsten außerhalb Ihrer Kontrolle liegen würden.
Schlagen Sie die von Ihnen gewählte Combo und hören Sie die Magie.
Ubuntu-Tastatur
Unter Ubuntu heißt das Programm, das die globalen Tastenkombinationen festlegt, nur "Tastatur"..
Wechseln Sie auf die Registerkarte "Verknüpfungen" und wählen Sie "Benutzerdefinierte Verknüpfungen"..
Klicken Sie auf das Pluszeichen, um eine Verknüpfung hinzuzufügen. Vergeben Sie einen Namen und geben Sie unter "Befehl" den vollständigen Pfad zu einem der Skripts an, die wir oben erstellt haben. Wiederholen Sie den Vorgang für das zweite Skript.
Klicken Sie nun auf das Wort "Deaktiviert", um die Option zum Einstellen einer neuen Tastenkombination zu erhalten.
Hinweis: Wenn Sie die Notiz aus dem Mint-Bereich wiederholen, können Sie, wenn Sie möchten, eine andere als die Standardeinstellung des Programms verwenden. In gewissem Sinne erstellen Sie eine "Neuzuordnung" für Tastenkombinationen, die je nach verwendetem Programm ansonsten außerhalb Ihrer Kontrolle liegen würden.
Anmerkungen des Autors
Jedes Mal, wenn ich ernsthaft darüber nachgedacht habe, auf Linux umzusteigen, war dieses Problem das erste Problem auf meiner Liste. Es ist nicht so, dass Linux keine Probleme hat, aber dies war für mich die eigentliche Hürde. Ich habe es immer wieder versucht, Freunde / Leute auf dem Feld gefragt und es sogar zu einer Kopfprämie gemacht… Ich bin froh, dass diese Saga vorbei ist und dass meine Seele sich endlich ausruhen kann.
Ich hoffe, dass ich jemandem dort draußen geholfen habe, nicht die gleiche Prüfung durchzustehen.
Doc Brown: Ich habe fast dreißig Jahre gebraucht und meine ganze Familie hatte Glück, um die Vision dieses Tages zu verwirklichen. Mein Gott, war es so lange her?