LINUX.ORG.RU

Независимая раскладка для каждого окна

 ,


0

1

Без kbdd можно это посредством самого xorg реализовать? Kbdd после выхода из standby ставит ru layout на каждое новое окно

cat /lib/systemd/system-sleep/kbdd.sleep
#!/usr/bin/env bash
# set -x

TARGET="kbdd"
PATH=/sbin:/usr/sbin:/bin:/usr/bin
SLEEP=20

case $1 in
  post)
      sleep "${SLEEP}"
      while true;do
            if [[ -z $(pgrep ${TARGET}) ]]; then
                break
            else
                kill -9 $(pgrep "${TARGET}")
            fi
      done
    ;;
esac

и в

cat ~/.dwm/scripts/startup/client/20_kbdd.sh
#!/usr/bin/env bash
# set -x


if [[ -f /etc/PROFILE ]]; then
    source /etc/PROFILE
fi


TARGET="kbdd"
PRELOAD=""
ARGS=""
SLEEP=10

sleep "${SLEEP}"
while true
do
    # if command available
    if [[ -x "$(command -v ${TARGET})" || -n ${TARGET} ]];then
        # sleep ${SLEEP}

       # if not runned
       if [[ -z $(pidof -x ${TARGET}) ]];then
          sudo -u $USER bash -c "${PRELOAD} ${TARGET} ${ARGS} >/dev/null 2>&1"
       fi
    fi
    sleep 15
done

Если вручную еще раз прибить kbdd, то последний скрипт его запустит и всё будет ок. Может этот функционал есть в самом xorg?

И почему он ставит ru, если в

cat /etc/X11/xorg.conf.d/00-keyboard.conf
Section "InputClass"
        Identifier "keyboard-all"
        MatchIsKeyboard "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
        Option "XkbLayout" "us,ru"
        #Option "XkbVariant" ""
        # Option "XkbOptions" "grp:lctrl_lshift_toggle,caps:ctrl_modifier,ctrl:nocaps,terminate:ctrl_alt_bksp"
        Option "XkbOptions" "grp:shifts_toggle,caps:ctrl_modifier,ctrl:nocaps,terminate:ctrl_alt_bksp"
EndSection

Напряжно: один раз проснулся всё ок, второй раз проснулся - не ок(ru)

★★★

Последнее исправление: serg002 (всего исправлений: 2)

Не знаю что такое kbdd, но средствами xorg это точно нельзя.

А зачем нужно /lib/systemd/system-sleep/kbdd.sleep ? Попробуй этот файл нейтрализовать, может всё станет норм.

А ещё есть прога xxkb которая умеет и которой точно эти kill -9 при standby не нужны.

firkax ★★★★★
()
Ответ на: комментарий от firkax
XXkb.mainwindow.enable: yes
XXkb.mainwindow.appicon: no
XXkb.mainwindow.type: tray
XXkb.mainwindow.in_tray: true
XXkb.mainwindow.border.width: 0
XXkb.mainwindow.border.color: white
XXkb.mainwindow.geometry: 20x16+0+0
XXkb.mainwindow.label.enable: yes
XXkb.mainwindow.label.text.1: en
XXkb.mainwindow.label.text.2: ru
XXkb.mainwindow.label.background: #000000
XXkb.mainwindow.label.foreground: gray
XXkb.mainwindow.label.font: -misc-*-r-*-13-*

XXkb.controls.focusout: no
XXkb.controls.two_state: no
XXkb.controls.add_when_start: yes
XXkb.controls.add_when_create: yes
XXkb.controls.add_when_change: no

XXkb.group.alt: 2
XXkb.group.base: 1

XXkb.button.enable: no
XXkb.button.border.width: 0
XXkb.button.border.color: #777777
XXkb.button.geometry: 15x12+50+0
XXkb.button.label.enable: true
XXkb.button.label.font: -misc-*-r-*-13-*
XXkb.button.label.background: #222222
XXkb.button.label.foreground: gray
XXkb.button.label.text.1: us
XXkb.button.label.text.2: mk

XXkb.bell.enable: no

Не хочет запоминать layout. Что-то не так?

serg002 ★★★
() автор топика
Ответ на: комментарий от serg002

Если речь о gentoo, есть такое https://gpo.zugaina.org/x11-misc/gxkb.

Но не настаиваю, я всего лишь поделился своим опытом (gxkb).
Когда переходил на mpv, это было очень давно, :) возникла необходимость именно в запоминании раскладки для окон. Писал подробно здесь, Xorg, как форсированно переключить клавиатуру на «US» раскладку перед запуском игры? (комментарий).

krasnh ★★★★
()
Последнее исправление: krasnh (всего исправлений: 1)