Caps Lockでキーボードレイアウトを変更するようにDeep Desktop Environment(DDE)を設定するには?

Caps Lockでキーボードレイアウトを変更するようにDeep Desktop Environment(DDE)を設定するには?

私のシステムは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番目は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-editordeepinのスイッチレイアウトキー(例:そうする必要があります/com/deepin/dde/keybinding/system/switch-layout)に移動して、次のように設定します。['Caps_Lock']

関連情報