install a systemd user unit

add a systemd --user unit/service file, so that one can run waybar as a
--user systemd service. when the service is enabled, Waybar will start
when the wayland-session.target is started.

this feature is automatically enabled if systemd is found, but can be disabled
with -Dsystemd=disabled
This commit is contained in:
Дамјан Георгиевски 2019-09-07 19:57:35 +02:00
parent 228078d538
commit a0a3c01e79
3 changed files with 20 additions and 0 deletions

View File

@ -62,6 +62,13 @@ libnlgen = dependency('libnl-genl-3.0', required: get_option('libnl'))
libpulse = dependency('libpulse', required: get_option('pulseaudio'))
libudev = dependency('libudev', required: get_option('libudev'))
libmpdclient = dependency('libmpdclient', required: get_option('mpd'))
systemd = dependency('systemd', required: get_option('systemd'))
if systemd.found()
user_units_dir = systemd.get_pkgconfig_variable('systemduserunitdir')
install_data('./resources/waybar.service',
install_dir: user_units_dir)
endif
src_files = files(
'src/factory.cpp',

View File

@ -2,6 +2,7 @@ option('libcxx', type : 'boolean', value : false, description : 'Build with Clan
option('libnl', type: 'feature', value: 'auto', description: 'Enable libnl support for network related features')
option('libudev', type: 'feature', value: 'auto', description: 'Enable libudev support for udev related features')
option('pulseaudio', type: 'feature', value: 'auto', description: 'Enable support for pulseaudio')
option('systemd', type: 'feature', value: 'auto', description: 'Install systemd user service unit')
option('dbusmenu-gtk', type: 'feature', value: 'auto', description: 'Enable support for tray')
option('man-pages', type: 'feature', value: 'auto', description: 'Generate and install man pages')
option('mpd', type: 'feature', value: 'auto', description: 'Enable support for the Music Player Daemon')

12
resources/waybar.service Normal file
View File

@ -0,0 +1,12 @@
[Unit]
Description=Highly customizable Wayland bar for Sway and Wlroots based compositors.
Documentation=https://github.com/Alexays/Waybar/wiki/
PartOf=wayland-session.target
[Service]
Type=dbus
BusName=fr.arouillard.waybar
ExecStart=/usr/bin/waybar
[Install]
WantedBy=wayland-session.target