Meu sistema é Manjaro Linux. Mas acho que isso não importa.
No painel de configurações não consigo fazer CapsLock
um alterador de layout de teclado.
Por favor ajude.
Responder1
Instale ibus
em seu sistema.
Execute-o em algum script de inicialização:
ibus-daemon -drx
Agora, pequeno hack. Quando você vincula Caps_Lock para alterar o layout, o caso também será alterado. Para evitar esse comportamento, é necessária a opção map Caps. Uma solução:
setxkbmap -option 'lv3:caps_switch_latch'
Vá para as preferências do ibus para alterar os layouts e atalhos necessários. Quando você pressionou Caps ele foi definido como ISO_Level3_Shift
. Tudo pronto!
OBSERVAÇÃO:
Editar /etc/X11/xorg.conf.d/00-keyboard.conf
para opção xkb persistente
Section "InputClass"
Identifier "system-keyboard"
MatchIsKeyboard "on"
Option "XkbOptions" "lv3:caps_switch_latch"
EndSection
Atualização:
Depois de algum tempo, encontrei duas outras maneiras, baseadas no ouvinte independente de teclas de atalho. A primeira abordagem usa xbindkeys e xdotool, tem um atraso.
; layout
(xbindkey '(release "c:66") "xdotool key Super_L+space")
Segundo via D-Bus em vez de xdotool, descreveu-oaqui
#!/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
Responder2
Abra dconf-editor
, navegue até a tecla switch-layout para deepin (deveria ser /com/deepin/dde/keybinding/system/switch-layout
) e defina-a como['Caps_Lock']