nixos-combined-flake/modules/home-manager/desktop/default.nix

105 lines
2.4 KiB
Nix

{
pkgs,
lib,
config,
nix-colors,
...
}: {
options = {
desktop = {
enable = lib.mkEnableOption "gui";
terminal = lib.mkOption {
type = lib.types.str;
description = "the default terminal to use";
default = "kitty";
};
fileManager = lib.mkOption {
type = lib.types.str;
description = "the default file_manager to use";
default = "pcmanfm";
};
browser = lib.mkOption {
type = lib.types.str;
description = "the default browser to use";
default = "firefox";
};
launcher = lib.mkOption {
type = lib.types.str;
description = "the default launcher to use";
default = "rofi -show drun";
};
};
};
imports = [
nix-colors.homeManagerModules.default
./firefox
./keepassxc
./kitty
./nextcloud-client
./picom
./nixGL
./theme
./awesome
./rofi
./network-manager-applet
./alacritty
./darkman
./pcmanfm
./thunar
];
config = lib.mkIf config.desktop.enable {
desktop = {
xserver.enable = lib.mkDefault true;
awesome.enable = lib.mkDefault true;
pcmanfm.enable = lib.mkDefault true;
network-manager.enable = lib.mkDefault true;
};
programs = {
keepassxc.enable = lib.mkDefault true;
firefox.enable = lib.mkDefault true;
kitty.enable = lib.mkDefault true;
};
services = {
nextcloud-client.enable = lib.mkDefault true;
udiskie = {
enable = lib.mkDefault true;
settings = {
program_options = {
udisks_version = 2;
tray = true;
};
};
};
picom.enable = lib.mkDefault true;
};
fonts.fontconfig.enable = true;
colorScheme = nix-colors.colorSchemes.catppuccin-mocha;
xdg = {
enable = lib.mkDefault true;
portal = {
enable = lib.mkDefault true;
config = {
common = {
default = [
"gtk"
];
};
awesome = {
default = [
"pantheon"
"gtk"
];
"org.freedesktop.impl.portal.Secret" = [
"gnome-keyring"
];
};
};
extraPortals = with pkgs; [
xdg-desktop-portal-gtk
];
};
userDirs.enable = true;
};
};
}