如何配置深度桌面环境(DDE)以使用大写锁定更改键盘布局?

如何配置深度桌面环境(DDE)以使用大写锁定更改键盘布局?

我的系统是 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']

相关内容