Как настроить Deepin Desktop Environment (DDE) для изменения раскладки клавиатуры с caps lock?

«$ @» - изобретение оболочки Борна (1979). Это означает расширение до списка позиционных параметров, как если бы вы набрали "$ 1" "$ 2" "$ 3" ... .

Когда Дэвид Корн добавил поддержку массивов в начале 80-х, он распространил эту концепцию на массивы с синтаксисом "$ {array [@]}" . zsh также поддерживает сокращенную форму "$ array [@]" .

«$ @» относится к позиционным параметрам (начиная с $ 1 ), это немного похоже на массив, но за исключением zsh или yash , не совсем так. Например, $ @ начинается с индекса 1, а другие массивы в ksh или bash начинаются с 0. $ {@ [@]} не будет работать в ksh или bash .

Единственные оболочки, в которых работает "$ {@ [@]}" , - это zsh и yash . zsh - единственный, где работает "$ @ [@]" . Нет смысла использовать его вместо стандартного «$ @» . Что может быть более полезным, так это сказать: "$ @ [1,3]" , чтобы получить первые 3 позиционных параметра.

Если вы хотите использовать синтаксис типа массива, в zsh вы можете использовать "$ argv [@]" ( $ argv - это массив, который ссылается на позиционные параметры, как в csh / tcsh / fish ).

2
17.04.2017, 21:49
2 ответа

Откройте dconf-editor, перейдите к клавише раскладки переключателя -для углубления (, она должна быть/com/deepin/dde/keybinding/system/switch-layout)и установите ее на['Caps_Lock']

-1
27.01.2020, 23:10

Установите ibusв свою систему.

Запустите его в каком-нибудь сценарии запуска: ibus-daemon -drx

А теперь немного поделки. Когда вы привязываете Caps _Lock к изменению раскладки, регистр тоже будет меняться. Чтобы предотвратить такое поведение, нужна опция Map 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 -Шина вместо 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
0
27.01.2020, 23:10

Теги

Похожие вопросы