Запустите скрипт, который отображает X-окно от правила udev

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-сессиями . Т.е. при каждом входе в систему вы должны выдавать одну и ту же команду.

0
08.01.2015, 01:07
3 ответа

Скорее всего, команда выполняется, но не знает, где отображать вывод. Я предполагаю, что вы вошли в 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"'
2
28.01.2020, 02:36

Для всех, кто это читал, единственный способ заставить свой скрипт в Kali Linux 2016 работать, был такой:

#!/bin/bash
set -x
xhost local:root
export DISPLAY=:0.0
su root -c 'zenity --notification --text="I am a notification!"'
0
28.01.2020, 02:36

Недавно я нашел элегантный способ отображать 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 .

0
28.01.2020, 02:36

Теги

Похожие вопросы