我的系統是 Manjaro Linux。但我認為這並沒有什麼關係。
在設定面板中,我無法CapsLock
作為鍵盤佈局變更器。
請幫忙。
答案1
安裝ibus
到您的系統中。
在一些啟動腳本中運行它:
ibus-daemon -drx
現在小黑客。當你綁定 Caps_Lock 來改變佈局時,大小寫也會改變。為了防止它的行為,需要映射 Caps 選項。一個解決方案:
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
更新:
後來我發現了另外兩種方法,基於獨立的熱鍵監聽器。第一種方法使用 xbindkeys 和 xdotool,它有一個滯後。
; layout
(xbindkey '(release "c:66") "xdotool key Super_L+space")
第二個透過D-Bus代替xdotool,描述一下這裡
#!/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
,導航到深度作業系統的開關佈局鍵(應該是/com/deepin/dde/keybinding/system/switch-layout
)並將其設定為['Caps_Lock']