Wie konfiguriere ich Deepin Desktop Environment (DDE), um das Tastaturlayout mit der Feststelltaste zu ändern?

Wie konfiguriere ich Deepin Desktop Environment (DDE), um das Tastaturlayout mit der Feststelltaste zu ändern?

Mein System ist Manjaro Linux. Aber ich glaube, das ist nicht wichtig.
Im Einstellungsfenster kann ich CapsLockdas Tastaturlayout nicht ändern.
Bitte helfen Sie.

Antwort1

Installieren Sie es ibusin Ihrem System.

Führen Sie es in einem Startskript aus: ibus-daemon -drx

Jetzt ein kleiner Trick. Wenn Sie die Feststelltaste binden, um das Layout zu ändern, wird auch die Groß-/Kleinschreibung geändert. Um dieses Verhalten zu verhindern, müssen Sie die Option „Caps“ zuordnen. Eine Lösung: setxkbmap -option 'lv3:caps_switch_latch'

Gehen Sie zu den ibus-Einstellungen, um die erforderlichen Layouts und Tastenkombinationen zu ändern. Wenn Sie die Feststelltaste drücken, wird dies als definiert ISO_Level3_Shift. Alles ist erledigt!

NOTIZ:

Bearbeiten /etc/X11/xorg.conf.d/00-keyboard.conffür dauerhafte XKB-Option

Section "InputClass"
         Identifier "system-keyboard"
         MatchIsKeyboard "on"
         Option "XkbOptions"    "lv3:caps_switch_latch"
EndSection

Aktualisierung:

Mit der Zeit habe ich zwei andere Möglichkeiten gefunden, die auf einem unabhängigen Hotkey-Listener basieren. Beim ersten Ansatz werden xbindkeys und xdotool verwendet, es kommt jedoch zu einer Verzögerung.

; layout
(xbindkey '(release "c:66") "xdotool key Super_L+space")

Zweitens über D-Bus statt xdotool, beschrieben esHier

#!/bin/sh

LANG=$(dbus-send \
    --type=method_call \
    --print-reply=literal \
        --dest=com.deepin.daemon.InputDevices \
    /com/deepin/daemon/InputDevice/Keyboard \
    org.freedesktop.DBus.Properties.Get \
    string:"com.deepin.daemon.InputDevice.Keyboard" \
    string:"CurrentLayout" | awk '{print $2}')

if [[ $LANG = 'us;' ]]; then
    dbus-send \
        --type=method_call \
        --dest=com.deepin.daemon.InputDevices \
        /com/deepin/daemon/InputDevice/Keyboard \
        org.freedesktop.DBus.Properties.Set \
        string:"com.deepin.daemon.InputDevice.Keyboard" \
        string:"CurrentLayout" \
        variant:string:"ru;"
else
    dbus-send \
        --type=method_call \
        --dest=com.deepin.daemon.InputDevices \
        /com/deepin/daemon/InputDevice/Keyboard \
        org.freedesktop.DBus.Properties.Set \
        string:"com.deepin.daemon.InputDevice.Keyboard" \
        string:"CurrentLayout" \
        variant:string:"us;"
fi

Antwort2

Öffnen Sie dconf-editor, navigieren Sie zur Switch-Layout-Taste für Deepin (es sollte sein /com/deepin/dde/keybinding/system/switch-layout) und stellen Sie sie auf['Caps_Lock']

verwandte Informationen