LINUX.ORG.RU

Хоткеи на локскрине

 ,


0

1

Вкратце, ситуация такая. Прилетел мне из Китая пульт управления ПК с IRDA-приёмником. Некоторые из его кнопок эмулируют нажатия хоткеев, например, Ctrl+Alt+A/B/C/D. Радостно гыкая, написал скриптик, который по Ctrl+Alt+A блокирует сессию, проигрывает звук «бип-бип», как при блокировке машины и мигает яркостью. Круто, конечно, но теперь хочется еще и разблокировку (например, через xdotool (да-да, дегенерат, пароль в открытом виде хранить, знаю)), но вот незадача — на локскрине Cinnamon'a не работают его хоткеи. Что, в принципе, логично. Есть какое-нибудь решение проблемы?



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

Ответ на: комментарий от muted

Таки в нём тоже не работают хоткеи.

Epsio
() автор топика

Но это же локскрин, разве на нём должны вообще (концептуально, конечно) работать хоткеи?

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

Нет, не должны. Но ведь как-то же можно поставить глобальные хоткеи, которые будут работать в обход DE?

Epsio
() автор топика

Не надо ни хоткеи, ни пароли.

Попробуй так

loginctl lock-session $XDG_SESSION_ID

loginctl unlock-session $XDG_SESSION_ID
surefire ★★★
()
Ответ на: комментарий от surefire

А как я вторую-то заюзаю без хоткея? В том то и дело, что кнопки на пульте просто симулируют нажатия клавиш и переназначить я могу только 4 хоткея.

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

Значит надо напрямую слушать это устройство, скриптом или какой готовой утилитой.
Направление примерно такое:

sudo libinput-debug-events --device /dev/input/by-id/<irda-приёмник>

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

в этом и смысл вешаешь свой граббер в обход иксов и ждешь нужную кнопку с пульта, когда пришло событие, что кнопка нажата вызываешь loginctl unlock-session <ID>

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

Окей. Пробую. Сообщу, когда ничего не получится)

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

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

xinput list
xinput disable <id-irda>
surefire ★★★
()
Ответ на: комментарий от Epsio

Вообще попробуй пока на практике, на любой event без разбора повесить unlock. Если получиться, тогда останется правильно отловить нужную кнопку.

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

ОНО ЗАРАБОТАЛО! ОНО, МАТЬ ЕГО ЗАРАБОТАЛО! http://pastebin.com/RMYm2Vtd

Спасибо тебе большое, натолкнул на правильный путь. Фух. Всё. Спать. Я доволен. Хотя... Теперь же надо демона для systemd написать...

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

ОНО ЗАРАБОТАЛО! ОНО, МАТЬ ЕГО ЗАРАБОТАЛО!

После «МАТЬ ЕГО» нужно запятую. :) А по топику - ты хотел, чтобы комп именно блочился или чтобы просто экран гас? Если второе, то наверняка есть способ погасить экран без лока (типа xset dpms force off) и пробудить его посылом нажатия любой клавиши.

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

Точно, запятую пропустил. Спать просто очень хочется :)

Именно блокировался.

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

Вполне возможно, там половина кода из гугла, а половина моя.

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