Linux Mint: Автозапуск sh-скрипта в терминале оболочки Cinnamon.



    Столкнулся с проблемой. Готовое решение не смог найти, и я думаю, что я такой не один. Решил поделиться с сообществом, чем не повод завести блог.

    Имеем Linux Mint 21.1 Cinnamon. Возникла необходимость  автоматического запуска скрипта при старте графической оболочки. Казалось бы что тут такого, в системе есть спец приложение "Автозагрузка", выбирай желаемую прогу и вперёд. Но нет, оно так не работает. В инете встречаются обращения пользователей с данной проблемой, но готового рецепта нет. В результате долгих мытарств автозапуск не происходит, либо происходит но в фоне, без показа окна на рабочем столе. При этом скрипт рабочий, если вручную щёлкнуть мышкой на файл sh, то он запускается в окне терминала. Проблема видимо именно в оболочке Cinnamon, так как я поставил PopOs, там всё запустилось без бубнов. Но так как я виндузятник со стажем, а Mint Cinnamon похож на винду, в угоду привычки к интерфейсу стал копать эту проблему.

    На форумах предлагают делать запуск через Cron, rclocal и т.д, но эти способы либо запускают скрипт вне графической оболочки, либо система вообще не грузится. В логе загрузки ошибка на xdg-terminal - file not found. Попытка установить/ обновить xdg-open, xdg-utils в итоге не принесла результатов. Был найден скрипт xdg-terminal, но с ним тоже всё печально.

Было найдено следующее решение:

Качаем отсюда xdg-terminal-exec: 

https://github.com/Vladimir-csp/xdg-terminal-exec/blob/master/xdg-terminal-exec

Я создал новый файл и скопировал содержимое скрипта на странице.

Переименовываем его xdg-terminal, ставим права на выполнение и копируем в /usr/bin/

Далее запускаем в терминале $ xdg-terminal, он попросит установить xterm

Выполняем $ sudo apt install xterm

Создаём в приложении "Автозапуск" пункт со своим скриптом.

Заходим в /home/$USER/.config/autostart

Открываем на редактирование наш файл автозапуска с расширением *.desktop ( Это нечто похожее на ярлык винды папке "Автозагрузка", хе-хе).

Дописываем строчку Terminal=true

При входе пользователя в Cinnamon скрипт должен запуститься в терминале xterm.

Если хочется сделать запуск в стандартном для Cinnamon gnome-terminal, то нужно отредактировать в файле *.desktop следующую строчку exec='*my.sh' например так:

Exec=gnome-terminal --geometry 120x50 -- '/home/$USER/_Runtime/my.sh'

параметр --geometry не обязателен, это размер окна по желанию.

Комментарии и советы приветствуются!









Комментарии