Запустить скрипт при запуске X11
У меня была проблема с Caps, и у меня есть скрипт, чтобы это исправить. К сожалению, этот скрипт работает до перезагрузки:
# Fix caps
xkbcomp -xkb "$DISPLAY" - | sed 's#key <CAPS>.*#key <CAPS> {\
repeat=no,\
type[group1]="ALPHABETIC",\
symbols[group1]=[ Caps_Lock, Caps_Lock],\
actions[group1]=[ LockMods(modifiers=Lock),\
Private(type=3,data[0]=1,data[1]=3,data[2]=3)]\
};\
#' | xkbcomp -w 0 - "$DISPLAY"
exit 0
Я бы просто добавил его в автозагрузку приложений, но я бы хотел запустить его при запуске LightDM или даже при запуске X11. Есть ли способ запустить этот скрипт при запуске X11? Я использую Xubuntu 16.04.2.
Благодарю.
1 ответ
Попробуйте следующее:
Поместите ваш скрипт в системный каталог, такой как /usr/local/bin, с соответствующим заголовком
#!/bin/sh # Fix caps /usr/bin/xkbcomp -xkb "$DISPLAY" - | /bin/sed 's#key <CAPS>.*#key <CAPS> {\ repeat=no,\ type[group1]="ALPHABETIC",\ symbols[group1]=[ Caps_Lock, Caps_Lock],\ actions[group1]=[ LockMods(modifiers=Lock),\ Private(type=3,data[0]=1,data[1]=3,data[2]=3)]\ };\ #' | xkbcomp -w 0 - "$DISPLAY" exit 0
Сделайте его исполняемым, например
sudo chmod +x /usr/local/bin/fix-caps.sh
Создайте пользовательский файл конфигурации в
/etc/lightdm/lightdm.conf.d
, Используйте имя, такое как99-local-settings.conf
, (The99
Префикс означает, что он будет запущен после стандартных сценариев установки, представленных в/usr/share/lightdm/lightdm.conf.d
.)Добавьте местоположение вашего скрипта как
display-setup-script
в[SeatDefaults]
раздел:[SeatDefaults] display-setup-script = /usr/local/bin/fix-caps.sh
display-setup-script
должен быть запущен после запуска X-сервера, но перед запуском любого приветствующего - см. LightDM: Добавление системных хуков.