Будьте осторожны с типом сервиса, который вы пытаетесь запустить. Вы правильно определили, что xbindkeys
должен запускаться вместе со средой рабочего стола, так как ему необходим доступ к вашему дисплею X11, которого не было бы у служб "запуска при загрузке". Многие люди забывают это.
В большинстве сред рабочего стола создайте ~/.config/autostart/xbindkeys.desktop
соответствии со спецификацией XDG Autostart:
[Desktop Entry]
Type=Application
Exec=xbindkeys
Обычно это можно сделать с помощью cinnamon-session-properties
или аналогичных.
Другой метод - поместить команду в сценарий ~/.xprofile
, который запускается большинством диспетчеров отображения (GDM, KDM, LXDM, LightDM):
xbindkeys &
Если вы используете только startx
, поместите эту же строку в ~/.xinitrc
вместо той части, которая запускает среду рабочего стола. То же относится и к диспетчерам отображения, которые вызывают startx
, например, SLiM.
Некоторые службы, в том числе xbindkeys, "отсоединяются", так что &
строго не требуется. Тем не менее, это не повредит, и, возможно, может ускорить запуск, так как bash отсоединяется еще до запуска процесса. С другой стороны, в некоторых ситуациях это может повредить, то есть когда необходимо знать, когда служба полностью инициализирована.
С другой стороны, общесистемные службы следует запускать как системные службы, создав файл модуля /etc/systemd/system/<name>.service
. Они запускаются рано и не имеют доступа к дисплею X11 (и часто запускаются раньше, чем менеджер дисплеев).