Refactored sway
This commit is contained in:
parent
69a65a3d8f
commit
1264d0c7f6
|
@ -1,4 +1,10 @@
|
|||
{ config, pkgs, ... }: {
|
||||
imports =
|
||||
[ ./firefox.nix ./mako.nix ./nextcloud.nix ./waybar.nix ./emacs.nix ];
|
||||
imports = [
|
||||
./firefox.nix
|
||||
./mako.nix
|
||||
./nextcloud.nix
|
||||
./waybar.nix
|
||||
./emacs.nix
|
||||
./sway.nix
|
||||
];
|
||||
}
|
||||
|
|
88
modules/applications/sway.nix
Normal file
88
modules/applications/sway.nix
Normal file
|
@ -0,0 +1,88 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
let cfg = config.application.sway;
|
||||
in with lib; {
|
||||
options = {
|
||||
application.sway = {
|
||||
enable = mkOption {
|
||||
# TODO base on graphical
|
||||
default = true;
|
||||
type = with types; bool;
|
||||
description = "testing one two three";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home-manager.users.james = {
|
||||
home.sessionVariables = {
|
||||
MOZ_ENABLE_WAYLAND = 1;
|
||||
XDG_CURRENT_DESKTOP = "sway";
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
autotiling
|
||||
dmenu
|
||||
kitty
|
||||
mako
|
||||
swayidle
|
||||
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
|
||||
'';
|
||||
})
|
||||
];
|
||||
|
||||
};
|
||||
|
||||
programs.sway = {
|
||||
enable = true;
|
||||
wrapperFeatures.gtk = true; # so that gtk works properly
|
||||
};
|
||||
|
||||
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 = {
|
||||
ExecStart =
|
||||
"${pkgs.dbus}/bin/dbus-run-session ${pkgs.sway}/bin/sway --debug";
|
||||
ExecStopPost =
|
||||
"/usr/bin/systemctl --user unset-environment SWAYSOCK DISPLAY I3SOCK WAYLAND_DISPLAY";
|
||||
NotifyAccess = "all";
|
||||
Restart = "on-failure";
|
||||
RestartSec = 1;
|
||||
TimeoutStopSec = 10;
|
||||
Type = "simple";
|
||||
};
|
||||
};
|
||||
|
||||
users.users.james.extraGroups = [ "video" "audio" ];
|
||||
};
|
||||
}
|
||||
|
|
@ -5,7 +5,6 @@
|
|||
../boot.nix
|
||||
../cli.nix
|
||||
../fonts.nix
|
||||
../sway.nix
|
||||
../system/gtk.nix
|
||||
./minimal.nix
|
||||
];
|
||||
|
|
|
@ -1,73 +0,0 @@
|
|||
{ config, lib, pkgs, ... }: {
|
||||
programs.sway = {
|
||||
enable = true;
|
||||
wrapperFeatures.gtk = true; # so that gtk works properly
|
||||
};
|
||||
|
||||
home-manager.users.james = {
|
||||
home.sessionVariables = {
|
||||
MOZ_ENABLE_WAYLAND = 1;
|
||||
XDG_CURRENT_DESKTOP = "sway";
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
autotiling
|
||||
dmenu
|
||||
kitty
|
||||
mako
|
||||
swayidle
|
||||
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 = {
|
||||
ExecStart =
|
||||
"${pkgs.dbus}/bin/dbus-run-session ${pkgs.sway}/bin/sway --debug";
|
||||
ExecStopPost =
|
||||
"/usr/bin/systemctl --user unset-environment SWAYSOCK DISPLAY I3SOCK WAYLAND_DISPLAY";
|
||||
NotifyAccess = "all";
|
||||
Restart = "on-failure";
|
||||
RestartSec = 1;
|
||||
TimeoutStopSec = 10;
|
||||
Type = "simple";
|
||||
};
|
||||
};
|
||||
|
||||
users.users.james.extraGroups = [ "video" "audio" ];
|
||||
|
||||
imports = [ ./applications/mako.nix ./applications/waybar.nix ];
|
||||
}
|
Reference in New Issue
Block a user