Connect with us

Wie man

So binden Sie globale HotKeys an ein WINE-Programm unter Linux

So binden Sie globale HotKeys an ein WINE-Programm unter Linux

Haben Sie schon einmal ein Windows-Programm unter Linux unter WINE installiert, nur um festzustellen, dass es keine systemweiten Hotkeys mehr bindet? HTG hat die Arbeit, nach der Sie gesucht haben.

Überblick

Jeder, der auch nur daran gedacht hat, auf Linux umzusteigen, ist wahrscheinlich sehr schnell auf das Problem gestoßen, dass es diese eine Windows-App gibt, die man zum Funktionieren MUSS. 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 nach Abschluss habe ich schnell festgestellt, dass die Hotkeys zum Auslösen der verschiedenen Aktionen des Programms (Lesen starten, Lesen stoppen usw.) nicht funktionierten und dass dies bekannt ist Problem mit WEIN.

Ich freue mich, sagen zu können, dass ich nach epochener Suche endlich die Lösung in Form eines GNU-Dienstprogramms gefunden habe, das die X.org-Schnittstelle mit nativen Funktionen manipulieren kann. Obwohl nicht der einzige seiner Art, xdotool ist diejenige, die am einfachsten zum Laufen gebracht wurde und bereits in den Ubuntu/Mint-Repositorys enthalten war.

xdotool

Das xdotool-Programm kann viele fensterbezogene Aufgaben von der CLI, wobei die einzigen beiden, die wir verwenden werden, «Suche» und «Schlüssel» sind. Die „Suche“-Funktion macht genau das, sucht nach einer/einer Fenster-ID gemäß den Parametern, die Sie dafür eingestellt haben. Mit der Funktion „Taste“ können Sie einen Tastendruck auf eine Fenster-ID simulieren.

Installation & Konfiguration

Es wird davon ausgegangen, dass Sie WINE und das darunter benötigte Programm bereits installiert haben. In diesem Beispiel verwenden wir Balabolka als „Windows“-Anwendung, da es sich um eine gute Freeware-Nachbildung des Originalprogramms handelt, für das ich diese Lösung benötigt habe (2. Sprachzentrum).

Wenn Sie sich auch für Balabolka entschieden haben, müssen Sie dessen Hotkey-Fähigkeit aktivieren.

Öffnen Sie das Programm und gehen Sie zu den Einstellungen (Umschalt+F6) unter „Optionen“ -> „Einstellungen“.

Gehen Sie zur Registerkarte Hotkeys und aktivieren Sie das Kontrollkästchen für «Globale Hotkeys verwenden».

OK klicken.

Lassen Sie es im Hintergrund laufen, damit es seine Arbeit erledigen kann, wenn wir die Tastenanschläge daran anschließen.

Installieren Sie xdotool, indem Sie Folgendes ausgeben:

sudo apt-get install xdotool

Globale Bindung

Das xdotool-Programm allein hilft uns nicht, global an Hotkeys zu binden, aber wir können das bereits vorhandene OS-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 namens „start_read.sh“ mit folgendem Inhalt:

xdotool key --window $( xdotool search --limit 1 --all --pid $( pgrep balabolka ) --name Balabolka ) "ctrl+alt+F9"

Erstellen Sie diesmal ein weiteres Skript namens „stop_read.sh“ mit folgendem Inhalt:

xdotool key --window $( xdotool search --limit 1 --all --pid $( pgrep balabolka ) --name Balabolka ) "ctrl+alt+F7"

Wenn wir diesen Befehl auf seine Komponenten aufteilen, sehen wir:

  • Der Teil „–pid $( pgrep balabolka )“ führt ein „pgrep“ für das Programm aus, das wir verwenden möchten, um seine Prozess-ID zu ermitteln. Dadurch wird das xdotool-Feld von „search“ auf genau diese PID eingeschränkt.
  • Der Teil „xdotool search –limit 1 –all … –name Balabolka“ grenzt das Suchfeld von xdotool noch weiter ein und begrenzt die zurückgegebenen Antworten auf 1. Wie in unserem Fall spielt es keine Rolle, welche der zurückgegebenen Fenster-IDs der Programm, die Begrenzung des Ergebnisses fungiert als Formatierer für den Befehl „key“. Möglicherweise müssen Sie diesen Teil mehr massieren, wenn dies für das von Ihnen verwendete Programm von Bedeutung ist.
  • Der Teil „xdotool key –window %WINDOW_ID% „ctrl+alt+F7″“ sendet den gewünschten Tastendruck an die WindowID, die von den vorherigen Teilen erhalten wurde.

Machen Sie die Skripte ausführbar.

Linux Mint-Tastatur Verknüpfungen

Unter Linux Mint werden die globalen Hotkeys im Programm „Keyboard Shortcuts“ eingestellt.

Klicken Sie nach dem Öffnen auf „Hinzufügen“, um eine neue benutzerdefinierte Verknüpfung zu erstellen:

Geben Sie ihm einen Namen und geben Sie unter „Befehl“ den vollständigen Pfad zu einem der oben erstellten Skripte ein. Wiederholen Sie den Vorgang für das zweite Skript.

Klicken Sie nun in der Spalte «Verknüpfungen» auf das Wort «Deaktiviert», um die Option zum Festlegen einer neuen Tastenkombination zu erhalten.
Hinweis: Sie können, wenn Sie möchten, etwas anderes als die Standardeinstellungen des Programms verwenden. In gewisser Weise erstellen Sie eine „Neuzuordnung“ von Tastenkombinationen, die je nach verwendetem Programm ansonsten außerhalb Ihrer Kontrolle liegen würden.

Treffen Sie die ausgewählte Combo und hören Sie die Magie.

Ubuntu-Tastatur

Unter Ubuntu heißt das Programm, das die globalen Hotkeys setzt, einfach „Keyboard“.

Wechseln Sie zur Registerkarte „Verknüpfungen“ und wählen Sie „Benutzerdefinierte Verknüpfungen“.

Klicken Sie auf das Pluszeichen, um eine Verknüpfung hinzuzufügen. Geben Sie ihm einen Namen und geben Sie unter „Befehl“ den vollständigen Pfad zu einem der oben erstellten Skripte ein. Wiederholen Sie den Vorgang für das zweite Skript.
Klicken Sie nun auf das Wort «Deaktiviert», um die Option zum Festlegen einer neuen Tastenkombination zu erhalten.

Hinweis: Wenn Sie die Notiz aus dem Mint-Bereich wiederholen, können Sie, wenn Sie möchten, etwas anderes als die Standardeinstellung des Programms verwenden. In gewisser Weise erstellen Sie eine „Neuzuordnung“ von Tastenkombinationen, die je nach verwendetem Programm ansonsten außerhalb Ihrer Kontrolle liegen würden.

Anmerkungen des Autors

Jedes Mal, wenn ich ernsthaft darüber nachdachte, auf Linux umzusteigen, war dieses Problem das erste auf meiner Liste von Problemen. Es ist nicht das Linux hat keine Probleme, aber das war für mich die eigentliche Hürde. Ich habe es immer wieder versucht, Freunde/Leute im Feld gefragt und sogar ein Kopfgeld daraus gemacht… Ich bin froh, dass diese Saga vorbei ist und dass mein die Seele kann endlich ruhen.
Ich hoffe, dass ich jemandem da draußen geholfen habe, nicht die gleiche Tortur durchmachen zu müssen.

Doc Brown: Ich habe fast dreißig Jahre und mein gesamtes Familienvermögen gebraucht, um die Vision von damals zu verwirklichen. Mein Gott, ist das schon so lange her?

Continue Reading
Click to comment

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Tendencia