LINUX.ORG.RU

xmodmap и клавиатура

 ,


0

2

Добрый день. Делаю киоск на Debian8 64. При старте автораном запускается графическая оболочка которая не должна быть закрыта пользователем, реагирует она только на ALF+F4. Отключаю (точнее переназначиваю) F4 скриптом также при старте машины. xmodmap -e «keycode 70 = Delete» Все работает, но если клавиатуру отключить физически и подключить заново, F4 начинает работать пока не запустить скрипт. Тоже происходит если подключить еще одну клавиатуру. Вопрос: можно ли как-то прописать жестко этот xmodmap?

никак, потому что это xmodmap и он, кстати уже давно deprecated, в т.ч. и из-за подобной фигни.

так что тут только xkbcomp/setxkbmap колдунство, в самом простом случае что-то вроде:

xkbcomp $DISPLAY - | sed 's/F4,/NoSymbol,/g' | xkbcomp - $DISPLAY

запихнуть в автостарт

lazyklimm ★★★★★ ()

но я бы в данном случае всё-таки посмотрел в сторону настроек оболочки

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

и он, кстати уже давно deprecated

А альтернативы-то ему какие-нибудь есть? А то как обычно: рабочее мы deprecate, а альтернативы не дадим.

warl0ck ★★ ()

При реконнекте реинитится клава, все настройки сбрасываются на дефолтные. В частности, выставленная в setxkbmap раскладка слетает на us, все костыли в xkbcomp слетают, и т.д. Аналогичное при суспенде и рассуспенде будет, по той же причине. Все эти вещи должны конфигуриться в конфиге иксов (внутри /etc/X11/xorg.conf.d/), чтобы не слетали, но у меня нет готового решения именно для ремапа клавиш.

d_a ★★★★★ ()
Последнее исправление: d_a (всего исправлений: 1 )
Ответ на: комментарий от warl0ck

xkb (в данном контексте - утилиты xkbcomp и setxkbmap) существуют сто лет как, какие тебе ещё альтернативы нужны, болезный?

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

Все эти вещи должны конфигуриться в конфиге иксов

вовсе не обязательно, конфиг иксов в конечном итоге использует тот же самый xkb

lazyklimm ★★★★★ ()
Последнее исправление: lazyklimm (всего исправлений: 1 )
Ответ на: комментарий от warl0ck

и да, сфигале оно рабочее, если у ТС проблемы ? :)

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

вовсе не обязательно

Что "необязательно"? Эффект от setxkbmap etc временный. При первом же чихе (выдёргивание usb) всё сбросится на значения из конфига.

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

Ты бы базарчик фильтровал, дружок. Я задал вопрос без претензий. Тот же xkbcomp обладает весьма монстроузным синтаксисом, setxkbmap вообще немножко для другого.

А проблемы у ТС'a по той причине, что пытается забивать гвозди молотком. Нужно действие можно повесить вызовом на событие udev.

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

хм, да, а ты, оказывается прав, а мне казалось, что у меня подобные проблемы ушли

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

Ты бы базарчик фильтровал, дружок.

какой уровень претензий, такой и базарчик (кстати, слово «базарчик» в данном смысле лично для меня сразу снижает прислушиваемость к говорящему)

Тот же xkbcomp обладает весьма монстроузным синтаксисом

но он работает и обеспечивает гораздо большую гибкость, говорить о том, что «альтернативы не дадим» - случай так называемого вранья

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

По-моему, ты из тех, кто любит создать конфликт на ровном месте. Здоровье-то еще позволяет, или так, только в интернете?

говорить о том, что «альтернативы не дадим» - случай так называемого вранья

Это называется «поинтересоваться», умник.

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

Здоровье-то еще позволяет, или так, только в интернете?

а сам скакова сраёна?

Это называется «поинтересоваться», умник.

поинтересоваться, но уже с наездами, да

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

аналогично, но, видишь, как выяснилось, при переподключении оно один фиг не сохраняет состояние, так что тебе не подойдёт

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

А если скрипт запустить по кругу, например каждые 2 секуды чтобы запускался? Или отслеживать подключение новых устройств и запускать?

paragenius ()
Ответ на: комментарий от paragenius

каждые две секунды смысла нет, в правило udev можно прописать, например.

lazyklimm ★★★★★ ()

При старте автораном запускается графическая оболочка которая не должна быть закрыта пользователем, реагирует она только на ALF+F4.

Это не она реагирует, а WM/DE. Запускай оболочку без WM, или настаивай WM. Кстати какой?

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

Xfce4 и openbox. В приложении есть всего несколько кнопок которые работают (все остальные не реагируют на нажатия) в том числе alt+f4 срабатывает как закрытие. В openbox в rc.xml менял закрытие окон с alt+f4 на ctrl+f4 - работает, запускаю приложение все равно закрывает на alf+f4.

paragenius ()
Ответ на: комментарий от paragenius

запускаю приложение все равно закрывает на alf+f4.

значит в его настройках полазить надо, мб это меняется

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

К сожалению настроек у него нет, а разработчики больше не доступны.

paragenius ()
Ответ на: комментарий от paragenius

все равно закрывает на alf+f4

А другие приложения при этом закрываются?

А как запускать в иксах без WM?

man xinit

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

Нет, другие не закрываются. А если после загрузки прибить udev? До следующей перезагрузки. Чтобы если клаву вынуть и вставить она вообще не работала? В системе будет мышь, клавиатура и флешка с которой лайв и загружается.

paragenius ()
Ответ на: комментарий от paragenius

Получилось. pkill udevd добавил к автозапуску после всех. Ничего не определяется вновь подключенное.

paragenius ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.