Mein System ist Manjaro Linux. Aber ich glaube, das ist nicht wichtig.
Im Einstellungsfenster kann ich CapsLock
das Tastaturlayout nicht ändern.
Bitte helfen Sie.
Antwort1
Installieren Sie es ibus
in 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.conf
fü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']