Added basic systemd for sway

This commit is contained in:
James Patrick 2021-11-30 23:40:35 -05:00
parent dae29eba34
commit 2287ca2423
1 changed files with 45 additions and 0 deletions

View File

@ -15,6 +15,51 @@
swaylock
wl-clipboard
wofi
(writeTextFile {
name = "sway-entry";
destination = "/bin/sway-entry";
executable = true;
text = ''
#! ${pkgs.bash}/bin/bash
# first import environment variables from the login manager
# function is currently deprecated. It should be rolled back in the future
systemctl --user import-environment
# then start the service
exec systemctl --user start sway.service
'';
})
];
};
systemd.user.targets.sway-session = {
description = "Sway compositor session";
documentation = [ "man:systemd.special(7)" ];
bindsTo = [ "graphical-session.target" ];
wants = [ "graphical-session-pre.target" ];
after = [ "graphical-session-pre.target" ];
};
systemd.user.services.sway = {
description = "Sway - Wayland window manager";
documentation = [ "man:sway(5)" ];
bindsTo = [ "graphical-session.target" ];
wants = [ "graphical-session-pre.target" ];
after = [ "graphical-session-pre.target" ];
# We explicitly unset PATH here, as we want it to be set by
# systemctl --user import-environment in startsway
environment.PATH = lib.mkForce null;
serviceConfig = {
Type = "simple";
ExecStart = ''
${pkgs.dbus}/bin/dbus-run-session ${pkgs.sway}/bin/sway --debug
'';
Restart = "on-failure";
RestartSec = 1;
TimeoutStopSec = 10;
};
};
users.users.james.extraGroups = [ "video" "audio" ];
}