Я пытаюсь найти способ автоматизировать запуск сценария оболочки после входа в систему Xubuntu.
Я проверил множество других вопросов и ответов и до сих пор не нашел способа сделать это.
Вот сценарий, который я пытаюсь запустить:
#!/bin/sh
SH_PATH="`dirname \"$0\"`"
xkbcomp ${SH_PATH}/keyboardmap $DISPLAY
Это сценарий, основанный на Linux CapsLock Fixer , который изменяет ключ Caps Lock так, чтобы он вел себя так же, как на платформе Windows, так что его можно использовать для быстрого набора заглавных букв.
Я пробовал создать запись в Сеанс и запуск -> Автозапуск приложения
Вот что я пробовал:
/home/yooks/Scripts/fix_capslock.sh
sh /home/yooks/Scripts/fix_capslock.sh
sh -c "sh /home/yooks/Scripts/fix_capslock.sh"
sh -c "/home/yooks/Scripts/fix_capslock.sh"
Скрипт отлично работает, когда я запускаю его с терминала по любому пути.
Как проще всего запустить этот сценарий всякий раз, когда я вхожу в Xubuntu?
В зависимости от того, какой DM (Диспетчер отображения) вы используете, будет определяться значение параметра $ DISPLAY. Поскольку ваш сценарий фактически работает без оболочки во время входа в систему, $ DISPLAY не установлен. Чтобы исправить это, вы можете добавить следующие строки под строкой #! / Bin / sh
в свой сценарий:
#Get Display Manger
DM=$(/usr/bin/basename $(/bin/cat /etc/X11/default-display-manager))
#Set Display based on DM and login type
case $DM in
lightdm)
export DISPLAY=:0;;
gdm3)
grep -E "# AutomaticLogin|AutomaticLoginEnable = false" /etc/$DM/*.conf >/dev/null && export DISPLAY=:1 || export DISPLAY=:0;;
*);;
esac
В ходе тестирования я обнаружил, что когда я вхожу в свою систему с помощью LightDM, дисплей всегда было : 0
независимо от того, автоматический вход в систему или нет. Но с GDM3, если у вас есть автоматическая установка входа, это было : 0
, но если у вас нет автоматического входа, это было : 1
. Я запускаю скрипт, который запускает Firefox автоматически в определенное время, и добавляя его для установки $ DISPLAY, Firefox запускается из скрипта без его запуска в терминале в то время.
Надеюсь, это поможет!