LINUX.ORG.RU

Определенные пользователем раскладки с маскированием дефолтных, есть такое?

 


0

1

Доброго времени суток, джентльмены.

Появилась задача: по смене пользователя на «не админа» в прикладном ПО (пользователь никак не связан с системным), лочить клавиши Alt, Crtl, etc. При этом в этом прикладном ПО должна работать кнопка смены языка, дергающая setxkbmap.

На данный момент решается это все примерно так: при смене пользователя дергается xmodmap. Понятно что после смены языка Alt, Crtl включаются обратно. Кнопку смены языка я поменять не могу, а вот хуки повесить на смену пользователя очень даже могу.

Решение данной проблемы есть, но оно какое-то уж очень костыльное:

Переписать файлики в /usr/share/X11/xkb/symbols/ и менять их по смене пользователя.

Поэтому вопроса 2:

1) можно ли не лезть в /usr/share/X11/xkb/symbols/ , а положить мои файлики с ru и us где-то в хомяке, замаскировав ими дефолтные?

2) есть какое-то более элегантное решение данного вопроса?

UPD: дистр - SLES 11

★★★★★

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

2) есть какое-то более элегантное решение данного вопроса?

Специальной утилитой перехватывать все нажатия клавиш и фильтровать их?

PeKar
()

Скопировать нужные раскладки под другим именем, кастрировать их, по входу пользователя грузить кастратов — не вариант?

PS. Судя по kbd, речь только про консоль, так?

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

Судя по kbd

пардон, накосячил, X11 в путь впихнуть надо, Сейчас исправлю. Вообще только GUI.

Скопировать нужные раскладки под другим именем, кастрировать их, по входу пользователя грузить кастратов — не вариант?

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

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

1) Какой-то вин-вэй. Но черт бы с ним.

2) Утилита должна знать о том, какой пользователь залогинен в сторонней приложухе, а вот это уже целая история.

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

Потому что встроенная в эту чертову скаду кнопка смены раскладки дергает setxkbmap с us и ru. Другого не умеет.

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

Оставьте копии полноценными, а us и ru кастрируйте. Не понимаю, что помешает, кроме обновления xkb.
Почему не пропатчить скаду? Два байта поменять...

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

Почему не пропатчить скаду? Два байта поменять...

В суровом мире АСУТП я получу за такое по рукам, как только что-то пойдет не так и не сойдутся контрольные суммы при разборе полетов. Тут печальная история по поводу «кто последний - тот и папа».

Оставьте копии полноценными, а us и ru кастрируйте.

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

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

Потому что встроенная в эту чертову скаду кнопка смены раскладки дергает setxkbmap с us и ru. Другого не умеет.

ААААА!!! *бегает кругами*

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

Потому что встроенная в эту чертову скаду кнопка смены раскладки дергает setxkbmap с us и ru.

Она прям бинарник setxkbmap вызывает? Через PATH, надеюсь, а не по абсолютному пути? Добавть в PATH пользователя еще один каталог спереди и положи туда скрипт с таким же именем, который будет активировать не стандартные раскладки, а твои собственные.

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

Через PATH, надеюсь, а не по абсолютному пути

О, а это замечательная идея, но потестить надо, не по абсолютному пути ли там дергается.

thx! Отрепорчу, как выясню

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

спасибо за идею еще раз, действительно подменить setxkbmap получилось

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