dotfiles/home-manager/default.nix
2024-11-09 16:44:23 -06:00

164 lines
2.9 KiB
Nix
Executable file

let
modulesPath = ./modules;
modules =
builtins.foldl' (
emptySet: importedModules:
emptySet // importedModules
) {} (map
(name: {
"${name}" = import (modulesPath + "/${name}");
})
[
"bat"
"firefox"
"obs-studio"
"steam"
])
// builtins.foldl' (
emptySet: importedModules:
emptySet // importedModules
) {} (map
(name: {
"${name}" = import (modulesPath + "/${name}.nix");
})
[
"bottom"
"brave"
"direnv"
"fastfetch"
"flameshot"
"freetube"
"git"
"helix"
"home-manager"
"lazygit"
"mpv"
"nextcloud"
"nushell"
"starship"
"vscode"
"wezterm"
"yazi"
"yt-dlp"
"zellij"
"zoxide"
])
// builtins.foldl' (
emptySet: importedModules:
emptySet // importedModules
) {} (map
(name: {
"misc-${name}" = import (modulesPath + "/misc/${name}.nix");
})
[
"android"
"commandLine"
"desktop"
"entertainment"
"internet"
"productionArt"
"productionAudio"
"productionVideo"
"productionWriting"
"tracking"
]);
in {
flake.homeModules = {
desktop = {
imports = builtins.attrValues {
inherit
(modules)
brave
flameshot
misc-android
misc-desktop
misc-internet
vscode
;
};
};
entertainment = {
imports = builtins.attrValues {
inherit
(modules)
freetube
misc-entertainment
mpv
steam
;
};
};
firefox = {
imports = builtins.attrValues {
inherit
(modules)
firefox
;
};
};
productionArt = {
imports = builtins.attrValues {
inherit
(modules)
misc-productionArt
;
};
};
productionAudio = {
imports = builtins.attrValues {
inherit
(modules)
misc-productionAudio
;
};
};
productionVideo = {
imports = builtins.attrValues {
inherit
(modules)
misc-productionVideo
obs-studio
yt-dlp
;
};
};
productionWriting = {
imports = builtins.attrValues {
inherit
(modules)
misc-productionWriting
;
};
};
shared = {
imports = builtins.attrValues {
inherit
(modules)
bat
bottom
direnv
fastfetch
git
helix
home-manager
lazygit
misc-commandLine
nushell
starship
wezterm
yazi
zellij
zoxide
;
};
};
};
}