xmodmap
и xev
Вы можете использовать xmodmap
для сброса или изменения отображения клавиатуры:
xmodmap -pke | grep space
keycode 65 = space NoSymbol space
Вы можете использовать xev
для наблюдения за событиями с клавиатурой
xev
Вы можете попробовать изменить отображение клавиатуры:
xmodmap -e 'keycode 65 = space space space space'
Это может сработать, но предупредите! Играя с xmodmap
, вы можете оказаться в плохой ситуации!
Попробуйте это сразу после входа в систему и приготовьтесь к принудительному завершению сеанса.
(и/или прочитать точную инструкцию).
Использование xmodmap не сохранит вашу конфигурацию между X-сессиями . Т.е. при каждом входе в систему вы должны выдавать одну и ту же команду.
Скорее всего, команда выполняется, но не знает, где отображать вывод. Я предполагаю, что вы вошли в X с пользователем, отличным от root, и это правило, скорее всего, будет работать как root. Попробуйте следующую команду:
su - your_X_user_here -c 'export DISPLAY=:0;zenity --info'
для запуска любого сценария Bash Следуйте команде:
su - your_X_user_here -c 'export DISPLAY=:0; bash -c "/path/to/script.sh"'
Для всех, кто это читал, единственный способ заставить свой скрипт в Kali Linux 2016 работать, был такой:
#!/bin/bash
set -x
xhost local:root
export DISPLAY=:0.0
su root -c 'zenity --notification --text="I am a notification!"'
Недавно я нашел элегантный способ отображать GUI или X задачу из правил udev, не беспокоясь о DISPLAY. Принцип будет таким же для сценариев Shell, использующих экспорт
.
IMPORT{program}="/usr/bin/xpub", \
RUN+="/bin/su $env{XUSER} -c '/usr/bin/notify-send Hello'"
$ env {ENV}
: если текущий tty-пользователь запускает X, в противном случае удалите его для root .