dotfiles/home/default.nix

179 lines
3.3 KiB
Nix
Raw Normal View History

2024-10-06 15:25:05 -05:00
let
modulesPath = ./modules;
2024-11-10 01:29:37 -06:00
miscPath = modulesPath + "/misc";
2025-01-18 03:50:54 -06:00
moduleImport =
path: nameTransform:
2024-11-10 01:29:37 -06:00
builtins.listToAttrs (
map
(name: {
2025-01-18 03:50:54 -06:00
name = nameTransform name;
2024-11-10 01:29:37 -06:00
value = import (path + "/${name}");
})
(
2025-01-18 03:50:54 -06:00
builtins.filter (
name: (builtins.readDir path).${name} == "regular" && builtins.match ".*\\.nix$" name != null
) (builtins.attrNames (builtins.readDir path))
2024-11-10 01:29:37 -06:00
)
2025-01-18 03:50:54 -06:00
);
modules =
moduleImport modulesPath (
name:
builtins.replaceStrings
[
".nix"
]
[
""
]
name
)
// moduleImport miscPath (
name:
"misc-${
builtins.replaceStrings
[
".nix"
]
[
""
]
name
}"
)
//
(
path:
builtins.listToAttrs (
map
(name: {
name = name;
value = import (path + "/${name}");
})
(
builtins.filter (name: (builtins.readDir path).${name} == "directory" && name != "misc") (
builtins.attrNames (builtins.readDir path)
)
)
)
)
modulesPath;
in
{
2024-10-06 15:25:05 -05:00
flake.homeModules = {
desktop = {
imports = builtins.attrValues {
2025-01-18 03:50:54 -06:00
inherit (modules)
brave
2024-11-06 21:58:16 -06:00
flameshot
misc-android
misc-desktop
misc-internet
2024-12-06 21:48:52 -06:00
misc-tracking
;
};
2024-10-06 15:25:05 -05:00
};
2024-10-06 15:25:05 -05:00
entertainment = {
imports = builtins.attrValues {
2025-01-18 03:50:54 -06:00
inherit (modules)
freetube
misc-entertainment
mpv
steam
;
};
2024-10-06 15:25:05 -05:00
};
2024-11-09 16:44:23 -06:00
firefox = {
imports = builtins.attrValues {
2025-01-18 03:50:54 -06:00
inherit (modules)
2024-11-09 16:44:23 -06:00
firefox
;
};
};
2025-01-08 01:05:45 -06:00
hyprland = {
imports = builtins.attrValues {
2025-01-18 03:50:54 -06:00
inherit (modules)
2025-01-08 01:05:45 -06:00
gtk
dunst
easyEffects
gammastep
2025-01-11 18:53:08 -06:00
hyprland
2025-01-08 01:05:45 -06:00
misc-hyprland
network
swaylock
tofi
waybar
;
};
};
2024-10-06 15:25:05 -05:00
productionArt = {
imports = builtins.attrValues {
2025-01-18 03:50:54 -06:00
inherit (modules)
misc-productionArt
;
};
2024-10-06 15:25:05 -05:00
};
2024-10-06 15:25:05 -05:00
productionAudio = {
imports = builtins.attrValues {
2025-01-18 03:50:54 -06:00
inherit (modules)
misc-productionAudio
;
};
2024-10-06 15:25:05 -05:00
};
2024-11-20 15:46:18 -06:00
productionCode = {
imports = builtins.attrValues {
2025-01-18 03:50:54 -06:00
inherit (modules)
2025-01-14 16:17:42 -06:00
neovim
2024-11-20 15:46:18 -06:00
vscode
2025-01-14 16:17:42 -06:00
zed
2024-11-20 15:46:18 -06:00
;
};
};
2024-10-06 15:25:05 -05:00
productionVideo = {
imports = builtins.attrValues {
2025-01-18 03:50:54 -06:00
inherit (modules)
misc-productionVideo
obs-studio
2024-11-06 21:58:16 -06:00
yt-dlp
;
};
2024-10-06 15:25:05 -05:00
};
2024-10-06 15:25:05 -05:00
productionWriting = {
imports = builtins.attrValues {
2025-01-18 03:50:54 -06:00
inherit (modules)
misc-productionWriting
;
};
2024-10-06 15:25:05 -05:00
};
shared = {
imports = builtins.attrValues {
2025-01-18 03:50:54 -06:00
inherit (modules)
bottom
direnv
2024-11-06 21:58:16 -06:00
fastfetch
2025-01-08 19:06:14 -06:00
ghostty
git
helix
2025-01-08 01:05:45 -06:00
homeManager
lazygit
misc-commandLine
nushell
starship
2024-11-06 21:58:16 -06:00
yazi
zellij
zoxide
;
};
2024-10-06 15:25:05 -05:00
};
};
}