Modeless / Stateless Layout Language Switching wieder mit Caps Lock (18.04 LTS Bionic Beaver)

12

Dies wurde unzählige Male gefragt, deshalb werde ich versuchen, mich kurz zu fassen.

Ich habe zwei Eingabelayouts , Ukrainisch und Englisch, und möchte:

  • zum Caps Lockschnellen Umschalten verwenden;
  • nicht haben Verzögerungen auferlegt, ich schnell typer bin;
  • keine Modusfehler haben :
    • (beliebig viele) CapsLockSätze Englisch,
    • (beliebig viele) ShiftCapsLockSätze ukrainisch;
  • Das aktuelle Layout finden Sie im Standard-Widget.

Ich habe bereits drei (!) GUIs ausprobiert, um dies zu konfigurieren, die Gnome-Einstellungen, die gnome-tweak-tool, die  dconf-editor/ gsettings. Nichts funktioniert. Tweaksstürzt zufällig ab.

Genug Hausaufgaben gemacht

Ich habe das selbst vor 4 Jahren nach 14.04 LTS gefragt . Seitdem erschien dieses UI-Popup und alles brach zusammen. Ich kann jetzt problemlos Stateful CapsLock Toggle konfigurieren , aber selbst dann geht es mit dieser irritierenden Verzögerung einher. Grundsätzlich unbrauchbar, wenn ich die Sprache 4-5 mal pro Satz wechseln muss.

Dieser Thread schlägt die caps:noneXKB-Option als Fehlerumgehung vor. Ich habe das versucht, sowohl mit gsettingsCLI als dconf-editorauch in Kombination mit der grp:shift_caps_switchXKB-Option. Kein Würfel. Wie es scheint, übertrifft etwas diese XKB-Kernfunktionen.

Dieser Thread Angebote caps:menuXKB Option als ein Hack der Lage sein , zu binden , CapsLockin Gnome Settings→ Geräte → Tastatur. Es funktioniert irgendwie, aber A) es gibt zyklisches / zustandsbehaftetes Schalten; B) Ich muss bei jedem Wechsel eine angemessene Zeitüberschreitung abwarten.

Dieser Thread fragt genau, was ich brauche, ist aber unbeantwortet und noch schlimmer: Als Duplikat von zwei anderen Fragen (???) geschlossen, von denen keine gleich ist und keine mir eine funktionierende Lösung bieten. Was ist los mit euch?

Es gibt noch eine genaue Übereinstimmung - leider auch unbeantwortet!


Gesucht: saubere Lösung

ulidtko
quelle
1
Was ist mit dem Ruf anstelle von $ für ein Kopfgeld, sagen wir +50 Punkte Ruf?
Karel
@karel Ich sehe nichts Falsches daran, aber "frische" Fragen sind nicht für Rep Bounty bei Stackexchange berechtigt. Eine Prämie kann für eine Frage zwei Tage nach dem Stellen der Frage gestartet werden . Bitte nicht abstimmen.
Ulidtko
Ich habe nicht abgelehnt. Ich habe nur einen Kommentar abgegeben.
Karel
In Ordnung. Trotzdem habe ich speziell auf AskUbuntu Reputationsprämien angeboten und verdient . Diese Frage wird auch eine bekommen, wenn es Zeit ist.
Ulidtko
1
@ulidtko Ich werde versuchen, einen Höhepunkt bei zu nehmen gnome-tweaks-tool. Ich werde nicht versprechen, ob ich etwas ausgraben kann und einige Zeit brauchen werde, da ich in letzter Zeit beschäftigt bin, aber ich werde eine Antwort posten, wenn ich etwas ausgrabe, das damit zu tun hat gnome-tweak-tool. Fühlen Sie sich frei, mir hier einen Kommentar zu hinterlassen oder mich auf andere Weise zu
kontaktieren

Antworten:

5

In Ubuntu 18.04 gibt es standardmäßig eine Option zur Auswahl Caps_Lockund Shift+ Caps_Lock, um das gesuchte Verhalten zu erreichen gnome-tweaks. Aber das funktioniert nicht und konnte den Grund dafür nicht verstehen.

Geben Sie hier die Bildbeschreibung ein

Ich könnte es schaffen, dieses Verhalten durch die folgende Problemumgehung zu erreichen.

Unter diesem Link finden Sie ein 20Sec-Video. https://imgur.com/QNdrVqa

Überprüfen Sie zunächst die folgenden Befehle im Terminal, ob sie die Eingabesprache ändern.

gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval "imports.ui.status.keyboard.getInputSourceManager().inputSources[1].activate()"

und

gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval "imports.ui.status.keyboard.getInputSourceManager().inputSources[0].activate()"

Nun, sie arbeiten.

Geben Sie hier die Bildbeschreibung ein

Wir müssen diese Befehle an Tastendrücke von Caps_Lockund Shift+ bindenCaps_Lock

kann dies erreichen, xbindkeyswenn xbindkeys noch nicht installiert ist. Installieren Sie es vonsudo apt install xbindkeys

  1. Erstellen Sie eine Datei .xbindkeysrcim Ordner $ HOME
    touch ~/.xbindkeysrc
  2. Um den Schlüsselcode / die ID zu erfahren, wie auch immer sie heißen
    , xbindkeys --keydrücken Sie die Caps_LockTaste, tun Sie dies auch für die ShiftTaste und kopieren Sie die Schlüsselcodes / IDs wie unten gezeigt

Geben Sie hier die Bildbeschreibung ein

  1. Dieser Schritt ist optional. Deaktivieren Sie die Feststelltaste. Siehe unten gif. Wenn die Feststelltaste nicht deaktiviert ist, wird sie beim mehrmaligen Drücken der Taste umgeschaltet, während Sie versuchen, die Sprache zu ändern. Ich habe es deaktiviert. aber es basiert auf Ihrem Interesse.

Geben Sie hier die Bildbeschreibung ein

  1. Öffnen Sie die Datei .xbindkeysrc
    gedit ~/.xbindkeysrcund bearbeiten Sie sie wie unten beschrieben, basierend auf den Ergebnissen der obigen Schritte

Ändern Sie die Werte im folgenden Inhalt entsprechend den Ergebnissen, die Sie in Schritt 2 oben erhalten haben. Inhalt:

"gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval "imports.ui.status.keyboard.getInputSourceManager().inputSources[0].activate()""
m:0x10 + c:66

"gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval "imports.ui.status.keyboard.getInputSourceManager().inputSources[1].activate()""
Shift+Mod2 + Shift_L+m:0x10 + c:66
  1. Speichern Sie die Datei, schließen Sie und starten Sie neu.
PRATAP
quelle
2
OMG es hat funktioniert! Ich musste mich nicht einmal abmelden, auch ohne Neustart ( xbindkeys --poll-rc). Ich habe auch die grp:shift_caps_switchXKB-Option aktiviert gelassen. Dadurch wurde geändert, wie meine Schlüsselcodes gedruckt werden ( m:0x0 + c:66 ISO_First_Group& m:0x1 + c:66 Shift + ISO_First_Group). keine probleme davon. Sogar die Tastatur-LED leuchtet! Erstaunlicher Job, du hättest dieses Kopfgeld unbedingt bekommen sollen. (Gnome-Tweaks-Autoren, wer auch immer sie sind, bekommen ein mürrisches Stirnrunzeln von mir und anderen.)
Ulidtko
5

Es gibt einen Fehlerbericht, den Sie abonnieren können:

Der Fehlerbericht lautet:

Das Tastaturfeld bietet Optionen für die Eingangsumschaltung, die Verwendung von Großbuchstaben als Sprachumschaltung ist jedoch nicht möglich.

Schritte zum Reproduzieren:

  1. Gnome-Control-Center-Tastatur
  2. Scrollen Sie nach unten zum Abschnitt "Eingabe"
  3. Klicken Sie auf Zur nächsten Eingangsquelle wechseln
  4. Drücken Sie Caps

Erwartetes Ergebnis: Feststelltaste wird als Umschalttaste akzeptiert Tatsächliche Ergebnisse: Feststelltaste wird im Auswahlfenster ignoriert.

PS Gleiches gilt für die Kombination aus "Zur vorherigen Eingangsquelle wechseln" und der Umschalttaste.

Fehlerumgehungen

Der Fehler befindet sich derzeit auf der "Wunschliste". Diese Problemumgehungen werden vorgeschlagen:

Problemumgehung 1

Es wurde eine Problemumgehung für diesen Fehler gefunden:

  1. Installiere den dconf-editor (sudo apt-get installiere den dconf-editor)
  2. Gehen Sie zu / org / gnome / desktop / wm / keybindings /
  3. Wählen Sie die Schlüsselschalter-Eingabequelle aus, deaktivieren Sie "Standardwert verwenden" und setzen Sie "Benutzerdefinierter Wert" auf ['Caps_Lock'].
  4. (Optional) Sie können den Wert für "Switch-Input-Source-Backward" auch in "[Caps_Lock"] ändern (deaktivieren Sie erneut "Standardwert verwenden").

Problemumgehung 2

Eine andere Möglichkeit, dies zu tun: 1. Installieren Sie GNOME Tweaks (Gnome-Tweak-Tool). 2. Öffnen Sie die Tweaks-App. 3. Wechseln Sie zum Tastatur- und Mausbedienfeld. 4. Klicken Sie auf Zusätzliche Layoutoptionen. 5. Verwenden Sie den Abschnitt "Wechseln zu einem anderen Layout"

Abonnieren Sie den Fehlerbericht

Ich würde empfehlen, den Fehlerbericht zu abonnieren und Ihre eigenen Erfahrungen hinzuzufügen. Je mehr Leute den Fehlerbericht abonnieren, desto schneller kommt die Lösung (normalerweise).

WinEunuuchs2Unix
quelle
Problemumgehung 1 entspricht nicht meinen Anforderungen, sondern ermöglicht zyklisches Umschalten, was ich nicht möchte. Problemumgehung 2 (Gnome-Tweaks) wurde versucht und zu Tode geschlagen. Ich kann es zum Absturz bringen, aber ich kann es nicht zum Laufen bringen. Vielen Dank für (noch einen) Link.
Ulidtko
Ich habe Ihre Frage positiv bewertet, um hoffentlich mehr Aufmerksamkeit zu erregen. Das Posten all Ihrer Versuche und Fehler im Fehlerbericht kann hilfreich sein.
WinEunuuchs2Unix