1

Я провел небольшое исследование, пытаясь выяснить это, только чтобы найти различные варианты, которые кажутся очень запутанными и сложными только для запуска одного сервиса, и это все, что мне нужно сделать.

По сути, я пытаюсь запустить xbindkeys всякий раз, когда запускается среда рабочего стола (или всякий раз, когда пользователь входит в систему).

Какие простые варианты сделать это?

3 ответа3

2

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

1

Со своей стороны я использую Cinnamon в качестве рабочего стола. Поэтому я просто добавил /usr/bin/xbindkeys в Панель настроек Cinnamon → Запуск приложений.
Таким образом, xbindkeys запускается при запуске среды моего рабочего стола.
Если вы не используете Cinnamon, я уверен, что вы сможете применить то же самое в своей рабочей среде.

1

xbindkeys - это не служба, которая вместо этого требует использования systemctl.

Тем не менее, xbindkeys имеет, как только о чем - нибудь в арке, очень хорошей вики - страницы, здесь, которая гласит, среди прочего:

Закончив настройку ключей, отредактируйте ~/.xinitrc и поместите

 xbindkeys

перед строкой, которая запускает ваш оконный менеджер или DE.

Вы должны действительно начать читать Wiki, он действительно хорошо написан, настолько, что я читаю его, даже когда мне нужно добавить / изменить конфигурации для других моих систем, кроме Arch Linux.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .