私のシステムは Manjaro Linux です。しかし、これは問題ないと思います。
設定パネルでCapsLock
キーボード レイアウト チェンジャーを作成できません。
助けてください。
答え1
ibus
システムにインストールします。
起動スクリプトで実行します:
ibus-daemon -drx
ここでちょっとしたハックです。レイアウトを変更するために Caps_Lock をバインドすると、大文字と小文字も変更されます。この動作を防ぐには、Caps オプションをマップする必要があります。1 つの解決策:
setxkbmap -option 'lv3:caps_switch_latch'
必要なレイアウトとショートカットを変更するには、ibus の設定に移動します。Caps キーを押すと、次のように定義されますISO_Level3_Shift
。これで完了です。
注記:
/etc/X11/xorg.conf.d/00-keyboard.conf
永続的な xkb オプションの編集
Section "InputClass"
Identifier "system-keyboard"
MatchIsKeyboard "on"
Option "XkbOptions" "lv3:caps_switch_latch"
EndSection
追記:
しばらくして、独立したホットキー リスナーに基づく 2 つの方法を見つけました。最初のアプローチでは xbindkeys と xdotool を使用しますが、遅延があります。
; layout
(xbindkey '(release "c:66") "xdotool key Super_L+space")
2番目はxdotoolの代わりにD-Bus経由で説明しましたここ
#!/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
答え2
を開きdconf-editor
、deepinのスイッチレイアウトキー(/com/deepin/dde/keybinding/system/switch-layout
)に移動して、 に設定します。['Caps_Lock']