Files
nixos/modules/nix/gui.nix

86 lines
2.1 KiB
Nix

{ lib
, pkgs
, config
, localPackages
, ...
}:
with lib; let
cfg = config.simmer.gui;
in
{
options.simmer.gui = {
enable = mkOption {
description = "Enable gui";
type = types.bool;
default = false;
};
wm = mkOption {
description = "Which window manager to install";
type = types.enum [ "sway" ];
default = "sway";
};
terminal = mkOption {
description = "Which terminal to install (alacritty)";
type = types.enum [ pkgs.alacritty ];
default = pkgs.alacritty;
};
protonmail = mkOption {
description = "Whether to install protonmail bridge and mail application";
type = types.bool;
default = false;
};
secrets = mkOption {
description = "Whether to enable secrets handling with gnomke-keyring";
type = types.bool;
default = cfg.protonmail;
};
matrix = mkOption {
description = "Whether to install a matrix client";
type = types.bool;
default = false;
};
};
config = mkIf cfg.enable {
environment.systemPackages = with pkgs; with localPackages.x86_64-linux; []
++ optionals (cfg.wm == "sway") [
wl-clipboard
grim
slurp
waybar
swaybg
kickoff
kickoff-dot-desktop
wayland-pipewire-idle-inhibit
firefox
mpv
]
++ [ cfg.terminal ]
++ optional cfg.matrix cinny-desktop
++ optional cfg.secrets libsecret
++ optionals cfg.protonmail [ thunderbird protonmail-bridge ];
programs.sway.enable = mkIf (cfg.wm == "sway") true;
programs.dconf.enable = mkIf cfg.secrets true;
services.gnome.gnome-keyring.enable = mkIf cfg.secrets true;
services.dbus.packages = mkIf cfg.secrets [ pkgs.gnome.seahorse ];
xdg.portal.wlr.enable = true;
programs.thunar.enable = true;
fonts.packages = with pkgs; [
font-awesome
];
};
}