54 lines
1.3 KiB
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}"
|
|
];
|
|
};
|
|
};
|
|
}
|