From 145b8ddcd34bc0b2dba24bacd62276d1f7603556 Mon Sep 17 00:00:00 2001 From: Vladan Popovic Date: Thu, 17 Jun 2021 09:43:23 +0200 Subject: [PATCH] Add user systemd services (sway, redshift, nm-applet...) --- .config/systemd/user/firefox.service | 10 ++++++++++ .config/systemd/user/mako.service | 15 +++++++++++++++ .config/systemd/user/nm-applet.service | 14 ++++++++++++++ .config/systemd/user/org.kde.kdeconnect.service | 12 ++++++++++++ .../systemd/user/scream-ivshmem-pulse.service | 13 +++++++++++++ .config/systemd/user/sway-session.target | 6 ++++++ .config/systemd/user/sway.service | 14 ++++++++++++++ .config/systemd/user/swayidle.service | 13 +++++++++++++ .config/systemd/user/swaykbdd.service | 11 +++++++++++ .config/systemd/user/wayland-session.target | 16 ++++++++++++++++ .../nm-applet.service | 1 + 11 files changed, 125 insertions(+) create mode 100644 .config/systemd/user/firefox.service create mode 100644 .config/systemd/user/mako.service create mode 100644 .config/systemd/user/nm-applet.service create mode 100644 .config/systemd/user/org.kde.kdeconnect.service create mode 100644 .config/systemd/user/scream-ivshmem-pulse.service create mode 100644 .config/systemd/user/sway-session.target create mode 100644 .config/systemd/user/sway.service create mode 100644 .config/systemd/user/swayidle.service create mode 100644 .config/systemd/user/swaykbdd.service create mode 100644 .config/systemd/user/wayland-session.target create mode 120000 .config/systemd/user/wayland-session.target.wants/nm-applet.service diff --git a/.config/systemd/user/firefox.service b/.config/systemd/user/firefox.service new file mode 100644 index 0000000..55bf229 --- /dev/null +++ b/.config/systemd/user/firefox.service @@ -0,0 +1,10 @@ +[Unit] +Description=Firefox nightly +PartOf=graphical-session.target + +[Service] +Type=exec +ExecStart=/opt/firefox/firefox + +[Install] +WantedBy=graphical-session.target diff --git a/.config/systemd/user/mako.service b/.config/systemd/user/mako.service new file mode 100644 index 0000000..bd2fac2 --- /dev/null +++ b/.config/systemd/user/mako.service @@ -0,0 +1,15 @@ +[Unit] +Description=Lightweight Wayland notification daemon +Documentation=man:mako(1) +PartOf=sway-session.target +After=sway-session.target + +[Service] +Type=dbus +BusName=org.freedesktop.Notifications +ExecCondition=/bin/sh -c '[ -n "$WAYLAND_DISPLAY" ]' +ExecStart=/usr/bin/mako +ExecReload=/usr/bin/makoctl reload + +[Install] +WantedBy=sway-session.target diff --git a/.config/systemd/user/nm-applet.service b/.config/systemd/user/nm-applet.service new file mode 100644 index 0000000..3e35f1c --- /dev/null +++ b/.config/systemd/user/nm-applet.service @@ -0,0 +1,14 @@ +[Unit] +Description=network monitor and control GUI applet +Documentation=man:nm-applet(1) +PartOf=wayland-session.target +After=wayland-session.target + +# requires nm-applet compiled with -D appindicator=yes +[Service] +Type=dbus +BusName=org.freedesktop.network-manager-applet +ExecStart=/usr/bin/nm-applet --indicator + +[Install] +WantedBy=wayland-session.target diff --git a/.config/systemd/user/org.kde.kdeconnect.service b/.config/systemd/user/org.kde.kdeconnect.service new file mode 100644 index 0000000..c2ee4ee --- /dev/null +++ b/.config/systemd/user/org.kde.kdeconnect.service @@ -0,0 +1,12 @@ +[Unit] +Description=Adds communication between KDE and your smartphone +After=graphical-session.target +PartOf=graphical-session.target + +[Service] +Type=dbus +BusName=org.kde.kdeconnect +ExecStart=/usr/lib/kdeconnectd + +[Install] +WantedBy=graphical-session.target diff --git a/.config/systemd/user/scream-ivshmem-pulse.service b/.config/systemd/user/scream-ivshmem-pulse.service new file mode 100644 index 0000000..2ad12f7 --- /dev/null +++ b/.config/systemd/user/scream-ivshmem-pulse.service @@ -0,0 +1,13 @@ +[Unit] +Description=Scream IVSHMEM pulse receiver +After=pulseaudio.service +Wants=pulseaudio.service + +[Service] +Type=simple +ExecStartPre=/usr/bin/truncate -s 0 /dev/shm/scream-ivshmem +ExecStartPre=/usr/bin/dd if=/dev/zero of=/dev/shm/scream-ivshmem bs=1M count=2 +ExecStart=/usr/bin/scream -m /dev/shm/scream-ivshmem + +[Install] +WantedBy=default.target diff --git a/.config/systemd/user/sway-session.target b/.config/systemd/user/sway-session.target new file mode 100644 index 0000000..87fe41d --- /dev/null +++ b/.config/systemd/user/sway-session.target @@ -0,0 +1,6 @@ +[Unit] +Description=sway compositor session +Documentation=man:systemd.special(7) +BindsTo=graphical-session.target wayland-session.target +Wants=graphical-session-pre.target +After=graphical-session-pre.target diff --git a/.config/systemd/user/sway.service b/.config/systemd/user/sway.service new file mode 100644 index 0000000..ea21f05 --- /dev/null +++ b/.config/systemd/user/sway.service @@ -0,0 +1,14 @@ +[Unit] +Description=sway - i3-compatible Wayland compositor +Documentation=man:sway(5) +Before=graphical-session.service +Wants=graphical-session-pre.service +After=graphical-session-pre.service + +[Service] +Type=simple +EnvironmentFile=-%h/.config/sway/env +ExecStart=/usr/bin/sway +Restart=on-failure +RestartSec=1 +TimeoutStopSec=10 diff --git a/.config/systemd/user/swayidle.service b/.config/systemd/user/swayidle.service new file mode 100644 index 0000000..1f9ff79 --- /dev/null +++ b/.config/systemd/user/swayidle.service @@ -0,0 +1,13 @@ +[Unit] +Description=Idle manager for Wayland +Documentation=man:swayidle(1) +Documentation=https://github.com/gdamjan/swayidle - fork with sd-notify and autolock +PartOf=graphical-session.target +After=sway-session.target + +[Service] +Type=notify +ExecStart=/usr/bin/swayidle -w -l + +[Install] +WantedBy=sway-session.target diff --git a/.config/systemd/user/swaykbdd.service b/.config/systemd/user/swaykbdd.service new file mode 100644 index 0000000..4a5c426 --- /dev/null +++ b/.config/systemd/user/swaykbdd.service @@ -0,0 +1,11 @@ +[Unit] +Description=Keyboard layout per window +PartOf=graphical-session.target +After=sway-session.target + +[Service] +Type=exec +ExecStart=/usr/bin/swaykbdd + +[Install] +WantedBy=sway-session.target diff --git a/.config/systemd/user/wayland-session.target b/.config/systemd/user/wayland-session.target new file mode 100644 index 0000000..d0b2888 --- /dev/null +++ b/.config/systemd/user/wayland-session.target @@ -0,0 +1,16 @@ +# SPDX-License-Identifier: LGPL-2.1+ +# +# This file is inspired from systemd's `graphical-session.target` +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Current wayland user session +Documentation=man:systemd.special(7) +Requires=basic.target +RefuseManualStart=yes +StopWhenUnneeded=yes +BindsTo=graphical-session.target diff --git a/.config/systemd/user/wayland-session.target.wants/nm-applet.service b/.config/systemd/user/wayland-session.target.wants/nm-applet.service new file mode 120000 index 0000000..8fb7946 --- /dev/null +++ b/.config/systemd/user/wayland-session.target.wants/nm-applet.service @@ -0,0 +1 @@ +/home/vladan/.config/systemd/user/nm-applet.service \ No newline at end of file