В Linux Mint 14 запуск скрипта из автозагрузки приложений не работает, но из терминала работает

В Linux Mint 14 запуск скрипта из автозагрузки приложений не работает, но из терминала работает

Я создал скрипт для настройки планшета Intuos в начале сеанса:

#!/bin/sh

xsetwacom set "Wacom Intuos4 4x6 pad" AbsWheelUp "key ctrl minus";
xsetwacom set "Wacom Intuos4 4x6 pad" AbsWheelDown "key ctrl plus";
xsetwacom set "Wacom Intuos4 4x6 pad" Button 1 "key ctrl 0"; #touchring button

xsetwacom set "Wacom Intuos4 4x6 stylus" Button 2 3;
xsetwacom set "Wacom Intuos4 4x6 stylus" Button 3 2;
xsetwacom set "Wacom Intuos4 4x6 stylus" TabletPCButton on;

который я сохранил как ~/bin/.wacomsetup.shзапущенный chmod a+x ~/bin/.wacomsetup.sh. Проверка свойств показывает, что его можно запускать как программу, но моя учетная запись пользователя может только читать/писать в файл.

Я подтвердил, что он работает, когда я запускаю его из терминала с помощью sh ~/bin/.wacomsetup.sh, но когда я ввожу путь в качестве записи команды в новой записи в «Автозагрузка приложений» (это относится только к Cinnamon?), он не запускает скрипт после входа в систему/перезапуска (мне приходится запускать его вручную).

Изменить программу запуска:
Имя: Setup Wacom Intuos
Команда: sh ~/bin/.wacomsetup.sh
Комментарий:ksdfk

Нужно ли мне применить к скрипту какие-либо другие разрешения, чтобы разрешить его запуск при запуске таким образом?

Спасибо
(я был бы признателен, если бы кто-нибудь мог переименовать этот вопрос более уместно, если существуют более подходящие теги.)

решение1

Несколько вещей, которые стоит попробовать:

  1. Замените «~» в пути в разделе «Автозагрузка приложений» на абсолютный путь к вашей домашней папке (например /home/whateveryourusernameis, )

  2. Удалите shиз пути, так как он не нужен; пока скрипт является исполняемым (с установленным битом «x» в DACL), #!/bin/shв начале скрипта будет определять, что это скрипт оболочки, и автоматически запустит интерпретатор оболочки для выполнения команд.

  3. Попробуйте переместить скрипт в /usr/bin, сделав егомирчитаемый и исполняемый, и устанавливаем Command:в Startup Applications значение просто wacomsetup.sh. Хотя я сомневаюсь, что этот шаг необходим, поскольку Startup Applications запускаются под вашей учетной записью после входа в систему, а Xorg должен быть уже запущен...

  4. Просто чтобы убедиться, что проблема не в скриптеработаетно команды не выполняются по какой-то причине: в верхней части скрипта под строкой #!/bin/shпопробуйте добавить: echo scripted > ~/scripted(измените часть "scripted", если у вас уже есть файл с таким именем для другого использования). Затем убедитесь, что этот файл не существует, затем выйдите из системы/войдите в систему и посмотрите, записывает ли он этот файл. Если нет, скрипт даже не запущен. Если вы видите этот файл, то скрипт запущен, но вызовы xsetwacomне выполняются.

решение2

Я не уверен, что вы имеете в виду под "Startup Applications". Я предполагаю, что это GUI-фронтэнд. Где вы его нашли?

В любом случае, вы пробовали добавить новый файл .desktop в ~/.config/autostart? Он должен быть примерно таким:

[Desktop Entry]
Name=wacomsetup
Type=Application
Exec=/home/your_user/bin/.wacomsetup.sh
X-GNOME-Autostart-enabled=true
Comment=Blah blah
Hidden=false

Сохраните его, например, как , wacomsetup.desktopзатем выйдите из системы и войдите снова.

Связанный контент