Hallo Kollegen!
Ich möchte meine Lösung für das Problem freigeben, die in der Kopfzeile angegeben ist. Der Artikel wurde von einem Kollegen
namens brnovk inspiriert, der nicht zu faul war und eine (für mich) teilweise Lösung des Problems vorschlug. Ich habe meine "Krücke" gemacht, die mir geholfen hat. Ich teile mit dir.
Problembeschreibung
Ich habe mit Ubuntu 18.04 gearbeitet und kürzlich festgestellt, dass beim Umschalten von Layouts durch Alt + Shift in Anwendungen wie Visual Studio Code, Skype, Slack und anderen, die mit Electron erstellt wurden, das folgende Problem auftritt: Der Fokus im Eingabefeld geht auf oberer Bereich des Fensters (Menü). Aus anderen Gründen bin ich zu Fedora + KDE gewechselt und habe festgestellt, dass das Problem nicht behoben ist. Auf der Suche nach einer Lösung habe ich einen wundervollen Artikel zum
Selbermachen über Skype gefunden . Vielen Dank an Genosse
Brnovk für die ausführliche
Erläuterung des Problems und für seine Art, es zu lösen. Die im Artikel angegebene Methode deckte die Frage jedoch nur mit einer Anwendung ab, nämlich Skype. Es war für mich immer noch wichtig, mich mit Visual Studio Code zu befassen, da das Schreiben von Nachrichten mit einem Sprungmenü ärgerlich ist, aber nicht so sehr, wenn Sie sich entwickeln. Außerdem schlug ein Kollege eine Lösung vor, bei der das Anwendungsmenü vollständig ausgeblendet wird, aber ich möchte das Menü in VS Code nicht wirklich verlieren.
Ich versuchte zu verstehen, was los war
Also beschloss ich, mir Zeit zu nehmen und herauszufinden, was los war. Jetzt werde ich kurz beschreiben, in welche Richtung ich gegangen bin. Vielleicht hilft jemand, der sich in dieser Angelegenheit besser auskennt, die Schwierigkeiten zu klären, auf die ich gestoßen bin.
Ich öffnete Visual Studio Code und klickte auf verschiedene Kombinationen Alt + <% something%>, um die Reaktion der Anwendung zu beobachten. In fast allen Fällen funktionierten alle Kombinationen außer Alt + Shift ohne Fokusverlust. Es schien, dass jemand die gedrückte Umschalttaste isst, die nach dem Halten und Halten von Alt folgte, und die Anwendung denkt, dass ich Alt gedrückt habe, dann drückte sie nichts, ließ Alt los und warf freudig meinen Fokus in sein Menü, was ihm logisch erschien.
Ich habe die Einstellungen für das Umschalten des Tastaturlayouts geöffnet (nun, Sie kennen diese lange Liste mit Kontrollkästchen und allen Arten von Einstellungen für Tasten) und das Umschalten des Tastaturlayouts mit der Alt-Taste eingestellt, ohne dass Sie zusätzlich drücken müssen.

Danach funktionierte Alt + Tab nicht mehr, um die Fenster zu wechseln. Nur Tab hat funktioniert, das heißt, jemand hat wieder meinen Alt "gegessen". Wem dieses "jemand" keine Fragen mehr hatte, ich habe aber keine Ahnung, was man mit ihm machen kann.
Aber da das Problem zumindest irgendwie gelöst werden musste, kam mir die Lösung in den Sinn:
- Deaktivieren Sie in den Einstellungen den Hotkey, um das Tastaturlayout zu ändern (entfernen Sie alle Kontrollkästchen im Abschnitt Zu anderem Layout wechseln).
- Erstellen Sie Ihren eigenen Hotkey, um mein Layout zu ändern
Lösungsbeschreibung
Installieren Sie zunächst ein Programm, mit dem Sie den Xbindkeys-Tasten Befehle zuweisen können. Leider war es mir mit den Standardwerkzeugen nicht möglich, einen Hotkey für eine Kombination des Typs Alt + Umschalt über eine schöne Oberfläche zu erstellen. Kann für Alt + S, Alt + 1, Alt + Umschalt + Y usw. durchgeführt werden. usw., aber dies ist nicht für unsere Aufgabe geeignet.
sudo dnf install xbindkeysrc
Es gibt mehr darüber auf
ArchWikiErstellen Sie als Nächstes eine Beispieleinstellungsdatei für das Programm. Das Beispiel ist recht kurz und enthält nur ein paar Befehle, die Sie benötigen, um herauszufinden, wie Sie damit arbeiten können:
xbindkeys -d > ~/.xbindkeysrc
Wie Sie dem Beispiel in der Datei entnehmen können, müssen wir den Hotkey, den wir verwenden möchten, und den Befehl angeben, der ausgeführt werden soll. Es sieht einfach aus.
Als Tastenkürzel können Sie eine lesbare Schreibweise oder Tastenkürzel verwenden. Es hat bei mir nur mit Codes funktioniert, aber niemand verbietet dir, ein bisschen zu experimentieren.
Um die Codes zu erhalten, müssen Sie den Befehl verwenden:
xbindkeys -k
Ein kleines "X" -Fenster öffnet sich. Sie müssen nur die Tasten mit dem Fokus in diesem Fenster drücken! Nur in diesem Fall sehen Sie so etwas im Terminal:
[podkmax@localhost ~]$ xbindkeys -k Press combination of keys or/and click under the window. You can use one of the two lines after "NoCommand" in $HOME/.xbindkeysrc to bind a key. "(Scheme function)" m:0x4 + c:39 Control + s
In meinem Fall sieht das Tastenkürzel Alt + Shift so aus:
m:0x8 + c:50
Jetzt müssen Sie sicherstellen, dass beim Klicken auf diese Kombination das Layout genau umgeschaltet wird. Ich habe nur einen Arbeitsbefehl gefunden, um das Layout festzulegen:
setxkbmap ru setxkbmap us
Wie Sie dem Beispiel entnehmen können, weiß sie nur, wie man das eine oder andere Layout einschaltet. Mir fiel also nichts ein, außer ein Skript zu schreiben.
vim ~/layout.sh
Wenn sich die Dateien .xbindkeysrc und layout.sh im selben Verzeichnis befinden, sieht die endgültige Form der Datei .xbindkeysrc folgendermaßen aus:
Danach übernehmen Sie die Änderungen:
xbindkeys -p
Und du kannst nachsehen. Vergessen Sie nicht, die Optionen zum Wechseln des Layouts in den Standardeinstellungen zu deaktivieren.
Zusammenfassung
Kolleginnen und Kollegen, ich hoffe, dass dieser Artikel jemandem helfen kann, das lästige Problem schnell loszuwerden. Persönlich habe ich den ganzen Tag frei gehabt, um das Problem irgendwie zu lösen und mich während der Arbeitszeit nicht mehr davon ablenken zu lassen. Ich habe diesen Artikel geschrieben, um jemandem Zeit und Nerven zu sparen. Viele von Ihnen verwenden eine alternative Methode zum Wechseln des Layouts und wissen nicht, woran es liegt. Ich persönlich schalte gerne Alt + Shift. Und ich möchte, dass es so funktioniert. Wenn Sie meine Meinung teilen und auf dieses Problem gestoßen sind, sollte Ihnen dieser Artikel helfen.