Будьте осторожны с типом сервиса, который вы пытаетесь запустить. Вы правильно определили, что 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 (и часто запускаются раньше, чем менеджер дисплеев).