ds-voix / xswitcher

X switcher: fully customizable low-level keyboard helper for X.Org-based linux desktop
GNU Affero General Public License v3.0
69 stars 6 forks source link

Проблемы с KVM. #11

Closed georgehazan closed 11 months ago

georgehazan commented 1 year ago

Есть линуксовая тачка, на которой в сессии крутится xswitcher. Машина присоединена к KVM, который шарит клаву, мышь и монитор между 4 компами. Каждый раз, когда машинка с xswitcher перестает быть текущей, xswitcher падает

$ killall xswitcher && ~/Utils/xswitcher Config error: unable to open config file: open /etc/xswitcher/xswitcher.conf: no such file or directory

Closing device " USB OPTICAL MOUSE" due to an error: """ read /dev/input/event2: no such device """ Closing device "Microsoft Wired Keyboard 600" due to an error: """ read /dev/input/event3: no such device """ Closing device "Microsoft Wired Keyboard 600 Consumer Control" due to an error: """ read /dev/input/event4: no such device """ Closing device "Microsoft Wired Keyboard 600 System Control" due to an error: """ read /dev/input/event5: no such device """

Как бы сделать так, чтобы при принятии фокуса xswitcher либо перечитывал бы список устройств, либо просто перезапускался бы?

ds-voix commented 1 year ago

Насколько вижу, xswitcher не падает а просто теряет отключенные устройства. Думаю что тут напрашивается повесить inotify() на " /dev/input/".

Займусь после окончания апгрейда своих локалхостов до последней openSUSE. Там ещё одну проблему подвезли, ломающую respawn в процессе старта KDE.

georgehazan commented 11 months ago

@ds-voix нету новостей?

ds-voix commented 11 months ago

Попробуйте последний коммит. xswitcher теперь перезапускается через 1с после подключения нового устройства ввода.

georgehazan commented 11 months ago

@ds-voix пашет, но теперь почему-то только от рута

$ ~/Utils/xswitcher &

Старый вариант преспокойно пинается от имени юзера

ds-voix commented 11 months ago

Он и раньше работал так же. В инструкции написано про выставление suid-бита (разрешения 1755 в восьмеричной записи).

sudo chown root:root /usr/local/bin/xswitcher
sudo chmod +xs /usr/local/bin/xswitcher

Альтернативно в linux аналогичный эффект можно получить через setcaps. Но мне лень т.к. сложнее и без видимого выигрыша в безопасности (для данного применения). :asterisk: На досуге можно подумать над заменой suid на sgid. Но это — "дистрозависимо".

georgehazan commented 11 months ago

В инструкции написано про выставление suid-бита

Файл что ли стерся при копировании?.. интересно В любом случае работает, третий раз кряду уже. Спасибо :-)