Gnome Shell: запускать сценарий оболочки после запуска сессии?

9

Я давний пользователь KDE, никогда не видел GNOME, так как может быть Mandrake Linux 10 чем-то. Вчера я взглянул на GNOME Shell на Youtube и подумал, что это стоит посмотреть.

Это на самом деле стоит, но я не могу понять один момент.

У меня есть сценарий оболочки, который использовался на моем ноутбуке KDE целую вечность:

synclient |grep -E 'TapT|RightB|EdgeScr'|awk '{print $1}'|while read item; do synclient $item=0; done
synclient VertScrollDelta=-111
synclient HorizScrollDelta=1
synclient RightEdge=999999999
synclient TopEdge=0
synclient CircularScrolling=0
synclient BottomEdge=999999999
synclient RightButtonAreaLeft=9999999
synclient ClickFinger3=2
synclient HorizScrollDelta=0
synclient HorizTwoFingerScroll=0 

Это отключает щелчок правой кнопкой мыши, все нажатия, инвертирует направления прокрутки, отключает горизонтальную прокрутку и прочее. Меню тачпада ни в KDE ни в gnome не допускает такого рода настройки. (TBH, только Mac из всех операционных систем имеет графический интерфейс для настройки сенсорной панели в точности так :)).

Я не могу понять, как мне запустить это после запуска сеанса оболочки gnome? Я уже попробовал это без результатов:

[1] % cat /home/neko/.config/autostart/script.desktop 
[Desktop Entry]
Name="Auto stuff"
GenericName="Auto startup stuff"
Comment="Synclient mostly"
Exec=/home/neko/bin/auto_stuff.sh
Terminal=false
Type=Application
X-Gnome-Autostart=true

Любые другие предложения, пожалуйста? Спасибо.

Михаил Крутов
источник
1
Это .desktopисполняемый файл?
Муру
Я понятия не имел, что файлы .desktop должны иметь права на выполнение. :)
Михаил Крутов
3
Локальные (пользовательские) лаунчеры, да, они должны быть +x. Откройте ~/.config/autostartв Nautilus и дважды щелкните по вашему script.desktop, вам будет предложено «пометить как надежный» (что эквивалентно chmod +x).
don_crissti

Ответы:

7

Вы можете использовать программу gnome-session-properties. Просто запустите его из командной строки (gnome-терминал):

$ gnome-session-properties

Это откроет графический интерфейс, где вы можете настроить (то есть добавить, редактировать, удалить, включить и отключить) автозагрузку программ.

Легко и приятно. Наслаждаться.

Обновление: Как отмечено don_crissti (спасибо) в комментариях ниже, функциональность программ запуска gnome-session-properties перенесена gnome-tweak-toolс Gnome 3.12 (кстати, это отличный инструмент, но немного более грязный, так как концентрирует слишком много функций). Итак, для версий 3.12 и выше, это новое место для поиска.

OBS: Кстати, используя этот метод, вам не нужно создавать .desktopфайл, вы можете просто указать командную строку /home/neko/bin/auto_stuff.shсозданного вами сценария (или любой другой сценарий или команду, которую вы хотите).

Marcelo
источник
Стоит отметить, что gnome-session-propertiesдвоичный файл больше не присутствует в последних выпусках Gnome 3 (удалено с 3.12IIRC). Его функциональность была включена в gnome-tweak-tool.
don_crissti
Интересно ... Я использую Fedora 20 (с Gnome 3.10), которая все еще есть. Грустно, что команда Gnome постоянно калечит (или формирует) программное обеспечение по вкусу пользователей. По крайней мере, они сохранили функциональность в gnome-tweak-tool, так что вот это новое место, где можно посмотреть ...
Marcelo
gnome-tweak-tools не позволяет вам добавлять скрипты в определенном месте. Вам нужно прыгать через обручи с файлами рабочего стола.
RichieHH
Однако gnome-session-properties все еще работает, по крайней мере, в Ubuntu GNOME 17.04; просто запустите его из оболочки.
Тим Ричардсон,
3
Привет @Marcelo for me, (Ubuntu 17.04) Я не смог найти ни одного элемента пользовательского интерфейса в gnome-tweak-tool, который позволял бы мне вводить сценарии командной строки или даже просматривать их. Возможно, Gnome в Ubuntu немного отстает, хотя в основном это 3.24. Это может быть причиной того, что свойства gnome-session все еще доступны. Я новичок в gnome, перехожу с xfce. Из того, что я вижу, gnome-tweak-tool не имеет ничего общего с функциональностью gnome-session-properties, когда дело доходит до сценариев запуска, и странно, насколько сложно это кажется.
Тим Ричардсон
2

В .desktopфайлах дело показательно . Следующий шаблон работает под Fedora 27 с оболочкой GNOME (т.е. Exec=значение выполняется во время запуска сеанса):

[Desktop Entry]
Encoding=UTF-8
Exec=/path/to/myscript arg1
Name=myscript
Comment=script some stuff
Terminal=false
OnlyShowIn=GNOME
Type=Application
StartupNotify=false
X-GNOME-Autostart-enabled=true

(хранится как $HOME/.config/autostart/myscript.desktop)

Основное отличие: вы использовали ключ X-Gnome-Autostart=в своем примере.

Дважды проверьте , если ваш скрипт /path/to/myscriptисполняемым, то есть , если он имеет е х ecutable разрешение бит (ы) набор.

Возможно, OnlyShowIn=это не имеет значения для функции автозапуска, но я не тестировал ее без нее. Вы можете перечислить несколько сред рабочего стола, как это: OnlyShowIn=GNOME;LXDE;Unity;Обратитесь к XDG_CURRENT_DESKTOPпеременной среды, чтобы проверить правильные значения.

Если вы хотите проверить, печатает ли ваш скрипт какие-либо сообщения об ошибках, которые вы можете проверить journalctl --user, например журнал сеанса.

maxschlepzig
источник
Это сработало для меня, но я должен был использовать, chmod +x myscript.desktop /path/to/myscript.shкак предложено в комментарии. В противном случае journalctl --user выдаст ошибку Could not parse desktop file myscript.desktop or it references a not found TryExec binary.
Серхио
@sergio, конечно, /path/to/myscript.shисполняемый файл должен быть исполняемым. Но myscript.desktopвовсе не нужно иметь исполняемые разрешения.
maxschlepzig