refactor: debloated imports and modules

This commit is contained in:
Nick 2024-11-03 17:48:32 -06:00
parent 489b64c9c7
commit 7351c5cc45
6 changed files with 237 additions and 342 deletions

View file

@ -1,100 +1,106 @@
let
# Folders
bat = import ./modules/bat;
firefox = import ./modules/firefox;
obs-studio = import ./modules/obs-studio;
qbittorrent = import ./modules/qbittorrent;
steam = import ./modules/steam;
# Files
bottom = import ./modules/bottom.nix;
brave = import ./modules/brave.nix;
cursor = import ./modules/cursor.nix;
direnv = import ./modules/direnv.nix;
freetube = import ./modules/freetube.nix;
git = import ./modules/git.nix;
helix = import ./modules/helix.nix;
home-manager = import ./modules/home-manager.nix;
lazygit = import ./modules/lazygit.nix;
misc-android = import ./modules/misc/android.nix;
misc-commandLine = import ./modules/misc/command-line.nix;
misc-fileManagement = import ./modules/misc/file-management.nix;
misc-gaming = import ./modules/misc/gaming.nix;
misc-gnomeExtras = import ./modules/misc/gnome-extras.nix;
misc-internet-extras = import ./modules/misc/internet-extras.nix;
misc-internet = import ./modules/misc/internet.nix;
misc-jellyfin = import ./modules/misc/jellyfin.nix;
misc-kdeExtras = import ./modules/misc/kde-extras.nix;
misc-media = import ./modules/misc/media.nix;
misc-privacy = import ./modules/misc/privacy.nix;
misc-productionArt = import ./modules/misc/production-art.nix;
misc-productionArtExtras = import ./modules/misc/production-art-extras.nix;
misc-productionAudio = import ./modules/misc/production-audio.nix;
misc-productionCode = import ./modules/misc/production-code.nix;
misc-productionVideo = import ./modules/misc/production-video.nix;
misc-productionWriting = import ./modules/misc/production-writing.nix;
misc-virtualization = import ./modules/misc/virtualization.nix;
misc-yazi = import ./modules/misc/yazi.nix;
misc-wpsoffice = import ./modules/misc/wpsoffice.nix;
mpv = import ./modules/mpv.nix;
nextcloud = import ./modules/nextcloud.nix;
nushell = import ./modules/nushell.nix;
starship = import ./modules/starship.nix;
vscode = import ./modules/vscode.nix;
wezterm = import ./modules/wezterm.nix;
yazi = import ./modules/yazi.nix;
zellij = import ./modules/zellij.nix;
zoxide = import ./modules/zoxide.nix;
folderModules = [
"bat"
"firefox"
"obs-studio"
"qbittorrent"
"steam"
];
fileModules = [
"bottom"
"brave"
"direnv"
"freetube"
"git"
"helix"
"home-manager"
"lazygit"
"mpv"
"nextcloud"
"nushell"
"starship"
"vscode"
"wezterm"
"yazi"
"zellij"
"zoxide"
];
miscModules = [
"android"
"commandLine"
"desktop"
"entertainment"
"internet"
"productionArt"
"productionAudio"
"productionVideo"
"productionWriting"
"tracking"
"virtualization"
];
modulesPath = ./modules;
importFolder = name: {"${name}" = import (modulesPath + "/${name}");};
importFile = name: {"${name}" = import (modulesPath + "/${name}.nix");};
importMisc = name: {"misc-${name}" = import (modulesPath + "/misc/${name}.nix");};
modules =
builtins.foldl' (a: b: a // b) {} (map importFolder folderModules)
// builtins.foldl' (a: b: a // b) {} (map importFile fileModules)
// builtins.foldl' (a: b: a // b) {} (map importMisc miscModules);
in {
flake.homeModules = {
inherit
# Folders
bat
firefox
obs-studio
qbittorrent
# Files
bottom
brave
cursor
direnv
freetube
git
helix
home-manager
lazygit
misc-android
misc-commandLine
misc-fileManagement
misc-gaming
misc-gnomeExtras
misc-internet
misc-internet-extras
misc-jellyfin
misc-kdeExtras
misc-media
misc-privacy
misc-productionArtExtras
misc-productionArt
misc-productionAudio
misc-productionCode
misc-productionVideo
misc-productionWriting
misc-virtualization
misc-yazi
mpv
nextcloud
nushell
starship
steam
vscode
wezterm
yazi
zellij
zoxide
;
commandLine = {
imports = [
desktop = {
imports = with modules; [
brave
firefox
misc-android
misc-desktop
misc-internet
qbittorrent
vscode
];
};
entertainment = {
imports = with modules; [
freetube
misc-entertainment
mpv
steam
];
};
productionArt = {
imports = with modules; [
misc-productionArt
];
};
productionAudio = {
imports = with modules; [
misc-productionAudio
];
};
productionVideo = {
imports = with modules; [
misc-productionVideo
obs-studio
];
};
productionWriting = {
imports = with modules; [
misc-productionWriting
];
};
shared = {
imports = with modules; [
bat
bottom
direnv
@ -102,10 +108,8 @@ in {
helix
home-manager
lazygit
misc-android
misc-commandLine
misc-virtualization
misc-yazi
nushell
starship
wezterm
@ -114,93 +118,5 @@ in {
zoxide
];
};
entertainment = {
imports = [
misc-gaming
misc-media
freetube
mpv
steam
];
};
extras = {
imports = [
misc-gnomeExtras
misc-kdeExtras
];
};
fileManagement = {
imports = [
misc-fileManagement
];
};
internetExtras = {
imports = [
misc-internet-extras
];
};
firefoxHM = {
imports = [
firefox
];
};
braveHM = {
imports = [
brave
];
};
internet = {
imports = [
misc-internet
qbittorrent
];
};
jellyfin = {
imports = [
misc-jellyfin
];
};
privacy = {
imports = [
misc-privacy
];
};
productionArtExtras = {
imports = [
misc-productionArtExtras
];
};
productionArt = {
imports = [
misc-productionArt
];
};
productionAudio = {
imports = [
misc-productionAudio
];
};
productionCode = {
imports = [
misc-productionCode
vscode
];
};
productionVideo = {
imports = [
misc-productionVideo
obs-studio
];
};
productionWriting = {
imports = [
misc-productionWriting
];
};
wpsOffice = {
imports = [
misc-wpsoffice
];
};
};
}