Будьте осторожны с типом сервиса, который вы пытаетесь запустить. Вы правильно определили, что 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, «отсоединяются», так что &это строго не требуется. Однако, это не повредит, и, возможно , сделать запуск быстрее , так как Баш отрывает еще до начала процесса. С другой стороны, в некоторых ситуациях это может повредить, то есть когда необходимо знать, когда служба полностью инициализирована.
С другой стороны, общесистемные службы следует запускать как системные службы, создавая /etc/systemd/system/<name>.serviceфайл модуля. Они запускаются рано и не имеют доступа к дисплею X11 (и часто запускаются раньше, чем менеджер дисплеев).