HOWTO: блокировка клавиш в Chrome

Как он работает в WTware без терминального сервера
Ответить
aka
Разработчик
Разработчик
Сообщения: 11897
Зарегистрирован: Ср окт 01, 2003 12:06 am
Откуда: Роcсия, Тольятти
Контактная информация:

HOWTO: блокировка клавиш в Chrome

Сообщение aka »

1. Создаем текстовый файл. Название: runme. Без расширения. Только так, это название файла важно. В файл пишем:

Код: Выделить всё

#!/bin/sh

export DISPLAY=:0.0

xmodmap -e "keycode 37 ="       # L-ctrl
xmodmap -e "keycode 105 ="      # R-ctrl

xmodmap -e "keycode 64 ="       # L-alt
xmodmap -e "keycode 108 ="      # R-alt

xmodmap -e "keycode 9 =x x x"        # Esc

xmodmap -e "keycode 67 =x x x"       # F1
xmodmap -e "keycode 73 =x x x"       # F7
xmodmap -e "keycode 95 =x x x"       # F11
xmodmap -e "keycode 96 =F18 F18 F18" # F12
2. Кладем файл runme в zip архив. Так надо. Получается например файл myfile.zip, здесь название зипа не важно. Внутри зипа один текстовый файл runme.

3. Файл myfile.zip записываем в каталог Everyone на TFTP.

4. В конфиг терминала пишем:

Код: Выделить всё

extra = myfile.zip
Такая настройка отключит в локальном Хроме клавиши Ctrl, F11 и F12, чтобы в режиме киоска пользователю было сложнее испортить браузер. Google подскажет, какие ещё клавиши целесообразно запрещать в Хроме.

Как это устроено. Строки:

Код: Выделить всё

xmodmap -e "keycode 37 ="       #L-ctrl
xmodmap -e "keycode 105 ="      #R-ctrl
Отключаюют клавишу Ctrl и все Ctrl-шоткаты.

С функциональными клавишами сложнее. Хром не позволяет просто отключить F1..F12. Если написать:

Код: Выделить всё

xmodmap -e "keycode 95 ="
То клавиша F11 продолжит работать. Приходится выкручиваться. Первый вариант:

Код: Выделить всё

xmodmap -e "keycode 95 =x x x"       #F11
Печатает букву x вместо F11. Второй вариант:

Код: Выделить всё

xmodmap -e "keycode 96 =F18 F18 F18" #F12
Нажимает клавишу F18 вместо F12. Сейчас F18 ничего не делает, и этот вариант выглядит предпочтительнее.

Магия 80 уровня. Полный список кодов клавиш можно получить, если зайти на терминал телнетом и запустить команду:

Код: Выделить всё

DISPLAY=:0.0 xmodmap -pke
Получится вот такой список:
xmodmap_all.txt
(10.35 КБ) 215 скачиваний
tobestik
Сообщения: 19
Зарегистрирован: Ср май 23, 2018 8:17 am

Re: HOWTO: блокировка клавиш в Chrome

Сообщение tobestik »

Добрый день! Ура!
Но что то не получилось. :(
Содержимое runme - скопировано из первого поста.
Что я делаю не так? Файл лога прикрепляю как вложение.
Как я понимаю проблема где то тут:

Код: Выделить всё

[            gm] [   20.175979] [HTTP] Download config file /wtware/Everyone/myfile.zip from 10.43.2.87.
[            gm] [   20.178576] +--- Executing "/bin/unzip -n -d / /tmp/extra-myfile.zip"
[            gm] [   20.179255] +- Errorlevel: 0, output:
| Archive:  /tmp/extra-myfile.zip
|   inflating: runme
[          pfac] [   20.179397] Run /bin/sh /runme.
[            gm] [   20.179410] +------------------------
[          pfac] [   20.179421] Ok, PID 1105.
[            gm] [   20.179426] Run '/bin/sh /runme', log '/tmp/extra.out', env '', pid ''.
[         EXTRA] [   20.179774] /runme: line 2: 
: not found
[         EXTRA] [   20.179785] /runme: line 4: 
: not found
[            gm] [   20.180075] Swap device: /dev/sdb2.
[         EXTRA] [   20.180591] xmodmap:  unable to open display ':0.0
'
[            gm] [   20.181036]                       swap.cpp (   27): -- ERROR -- INTERNAL ERROR. Please, contact WTware tech support.
[            gm] [   20.181060]                    gm-main.cpp (  676): -- ERROR -- INTERNAL ERROR. Please, contact WTware tech support.
[            gm] [   20.181074] Unpack /bootmedia/packages/alsa.
[         EXTRA] [   20.181450] xmodmap:  unable to open display ':0.0
'
[         EXTRA] [   20.181565] /runme: line 7: 
: not found
[         EXTRA] [   20.182247] xmodmap:  unable to open display ':0.0
'
[         EXTRA] [   20.183003] xmodmap:  unable to open display ':0.0
'
[          pfac] [   20.183206] Process pid 1105 terminated, status 00000100.
[EXTRA] close kotopipe (n = 0, errno 0).
Вложения
logfile_24-05-2018_xmodmap.txt
(97.12 КБ) 1317 скачиваний
aka
Разработчик
Разработчик
Сообщения: 11897
Зарегистрирован: Ср окт 01, 2003 12:06 am
Откуда: Роcсия, Тольятти
Контактная информация:

Re: HOWTO: блокировка клавиш в Chrome

Сообщение aka »

zip покажи.
tobestik
Сообщения: 19
Зарегистрирован: Ср май 23, 2018 8:17 am

Re: HOWTO: блокировка клавиш в Chrome

Сообщение tobestik »

Показываю.
Вложения
myfile.zip
(218 байт) 693 скачивания
aka
Разработчик
Разработчик
Сообщения: 11897
Зарегистрирован: Ср окт 01, 2003 12:06 am
Откуда: Роcсия, Тольятти
Контактная информация:

Re: HOWTO: блокировка клавиш в Chrome

Сообщение aka »

Поперхнулось об виндовые переносы строк. Попробуй это с тем же зипом: http://wtware.com/testing/201805261957.zip
tobestik
Сообщения: 19
Зарегистрирован: Ср май 23, 2018 8:17 am

Re: HOWTO: блокировка клавиш в Chrome

Сообщение tobestik »

Работает, спасибо!
tobestik
Сообщения: 19
Зарегистрирован: Ср май 23, 2018 8:17 am

Re: HOWTO: блокировка клавиш в Chrome

Сообщение tobestik »

В случае использования RaspBerry(3) - как быть? Как я понимаю файл нужно скачать с сервера, и по HTTP, а такая загрузка с распбери невозможна. Можно реализовать блокировку без использования загрузки по сети? Чтобы и конфиг и архив был локально
Спасибо.
aka
Разработчик
Разработчик
Сообщения: 11897
Зарегистрирован: Ср окт 01, 2003 12:06 am
Откуда: Роcсия, Тольятти
Контактная информация:

Re: HOWTO: блокировка клавиш в Chrome

Сообщение aka »

Файл лежит там же, где и конфиг.

Если конфиг на локальной SD - зайди браузером и в веб-интерфейсе залей файл в каталог /configs. Или достань SD и руками запиши, тоже в каталог /configs

Если конфиги качаются по TFTP/HTTP, то файл на сервер должен лежать в каталоге Everyone.
bambr
Сообщения: 26
Зарегистрирован: Ср фев 26, 2014 11:07 am

Re: HOWTO: блокировка клавиш в Chrome

Сообщение bambr »

Спасибо, полезно.
А как получить коды для других сочетаний?
Например нужно закрыть сочетания с Alt
Открыть домашнюю страницу в текущей вкладке Alt + Home
Открыть предыдущую страницу из истории просмотров в текущей вкладке Alt + Стрелка влево
Открыть следующую страницу из истории просмотров в текущей вкладке Alt + Стрелка вправо

И прочие
Открыть диспетчер задач Chrome Shift + Esc
Выбрать первый элемент на панели инструментов Chrome Shift + Alt + T
Выбрать крайний правый элемент на панели инструментов Chrome F10
Открыть Справочный центр Google Chrome в новой вкладке F1
Включить режим активного курсора F7
aka
Разработчик
Разработчик
Сообщения: 11897
Зарегистрирован: Ср окт 01, 2003 12:06 am
Откуда: Роcсия, Тольятти
Контактная информация:

Re: HOWTO: блокировка клавиш в Chrome

Сообщение aka »

Дописал шапку. Отломать оба Alt:

Код: Выделить всё

xmodmap -e "keycode 64 ="        # L-alt
xmodmap -e "keycode 108 ="       # R-alt
Печатать букву x по клавише Esc:

Код: Выделить всё

xmodmap -e "keycode 9 =x x x"          # Esc
bambr
Сообщения: 26
Зарегистрирован: Ср фев 26, 2014 11:07 am

Re: HOWTO: блокировка клавиш в Chrome

Сообщение bambr »

Все бы хорошо, а вот как обмануть судьбу и разрешить сочетание "Alt + Стрелка влево" - Открыть предыдущую страницу из истории просмотров в текущей вкладке. А остальные так и оставить заблокированными?
Backspace в хроме не работает :(. Есть отдельное расширение, которое прямо на страницу добавляет кнопки вперед-назад, но выглядит оно не очень :(. А так получается допустим из результатов поиска перешли на страницу, а в результаты поиска уже не вернуться :(. Очень неудобно. В принципе с ALT нет особо опасных сочетаний, может быть попробовать его включить, а потом посмотреть будут ли злоупотреблять.
akaplenko
Сообщения: 187
Зарегистрирован: Пн мар 13, 2017 5:30 pm

Re: HOWTO: блокировка клавиш в Chrome

Сообщение akaplenko »

Alt - F4 закроет хром. Но это не точно :)
bambr
Сообщения: 26
Зарегистрирован: Ср фев 26, 2014 11:07 am

Re: HOWTO: блокировка клавиш в Chrome

Сообщение bambr »

После Alt F4 в режиме киоска он перезапускается. Это не страшно.
Ответить

Вернуться в «Google Chrome»