nix/module/desktop/Sway.nix

54 lines
1.3 KiB
Nix

{ pkgs, lib, config, ... } @args: with lib; let
cfg = config.module.desktop.sway;
sway = import ./sway args;
swayconfig = pkgs.writeText "SwayConfig" sway.config;
swayscript = pkgs.writeShellScriptBin "swayscript" sway.script;
in {
options = {
module.desktop.sway = {
enable = mkEnableOption "Use Sway WM.";
};
};
config = mkIf cfg.enable {
module.desktop = {
app.common.enable = true;
bluetooth.enable = true;
brightness.enable = true;
dconf.enable = true;
portal.enable = true;
realtime.enable = true;
sound.enable = true;
waybar.enable = true;
wayland.enable = true;
};
services.gnome.gnome-keyring.enable = mkForce false;
environment = {
systemPackages = with pkgs; [
fuzzel # Application launcher.
grim slurp # Screenshot.
mako # Notification system.
networkmanagerapplet # Internet configuration.
pamixer pavucontrol pulseaudio # Audio.
playerctl # Multimedia controls.
swayscript # My custom Sway shell scripts.
];
variables.XDG_CURRENT_DESKTOP = "sway";
};
programs.sway = {
enable = true;
wrapperFeatures = {
base = true;
gtk = true;
};
extraOptions = [
"--config=${swayconfig}"
];
};
};
}