mirror of
https://gitlab.com/upRootNutrition/dotfiles.git
synced 2025-06-16 10:05:13 -05:00
refactor: debloated imports and modules
This commit is contained in:
parent
489b64c9c7
commit
7351c5cc45
6 changed files with 237 additions and 342 deletions
|
@ -1,100 +1,106 @@
|
||||||
let
|
let
|
||||||
# Folders
|
folderModules = [
|
||||||
bat = import ./modules/bat;
|
"bat"
|
||||||
firefox = import ./modules/firefox;
|
"firefox"
|
||||||
obs-studio = import ./modules/obs-studio;
|
"obs-studio"
|
||||||
qbittorrent = import ./modules/qbittorrent;
|
"qbittorrent"
|
||||||
steam = import ./modules/steam;
|
"steam"
|
||||||
# Files
|
];
|
||||||
bottom = import ./modules/bottom.nix;
|
|
||||||
brave = import ./modules/brave.nix;
|
fileModules = [
|
||||||
cursor = import ./modules/cursor.nix;
|
"bottom"
|
||||||
direnv = import ./modules/direnv.nix;
|
"brave"
|
||||||
freetube = import ./modules/freetube.nix;
|
"direnv"
|
||||||
git = import ./modules/git.nix;
|
"freetube"
|
||||||
helix = import ./modules/helix.nix;
|
"git"
|
||||||
home-manager = import ./modules/home-manager.nix;
|
"helix"
|
||||||
lazygit = import ./modules/lazygit.nix;
|
"home-manager"
|
||||||
misc-android = import ./modules/misc/android.nix;
|
"lazygit"
|
||||||
misc-commandLine = import ./modules/misc/command-line.nix;
|
"mpv"
|
||||||
misc-fileManagement = import ./modules/misc/file-management.nix;
|
"nextcloud"
|
||||||
misc-gaming = import ./modules/misc/gaming.nix;
|
"nushell"
|
||||||
misc-gnomeExtras = import ./modules/misc/gnome-extras.nix;
|
"starship"
|
||||||
misc-internet-extras = import ./modules/misc/internet-extras.nix;
|
"vscode"
|
||||||
misc-internet = import ./modules/misc/internet.nix;
|
"wezterm"
|
||||||
misc-jellyfin = import ./modules/misc/jellyfin.nix;
|
"yazi"
|
||||||
misc-kdeExtras = import ./modules/misc/kde-extras.nix;
|
"zellij"
|
||||||
misc-media = import ./modules/misc/media.nix;
|
"zoxide"
|
||||||
misc-privacy = import ./modules/misc/privacy.nix;
|
];
|
||||||
misc-productionArt = import ./modules/misc/production-art.nix;
|
|
||||||
misc-productionArtExtras = import ./modules/misc/production-art-extras.nix;
|
miscModules = [
|
||||||
misc-productionAudio = import ./modules/misc/production-audio.nix;
|
"android"
|
||||||
misc-productionCode = import ./modules/misc/production-code.nix;
|
"commandLine"
|
||||||
misc-productionVideo = import ./modules/misc/production-video.nix;
|
"desktop"
|
||||||
misc-productionWriting = import ./modules/misc/production-writing.nix;
|
"entertainment"
|
||||||
misc-virtualization = import ./modules/misc/virtualization.nix;
|
"internet"
|
||||||
misc-yazi = import ./modules/misc/yazi.nix;
|
"productionArt"
|
||||||
misc-wpsoffice = import ./modules/misc/wpsoffice.nix;
|
"productionAudio"
|
||||||
mpv = import ./modules/mpv.nix;
|
"productionVideo"
|
||||||
nextcloud = import ./modules/nextcloud.nix;
|
"productionWriting"
|
||||||
nushell = import ./modules/nushell.nix;
|
"tracking"
|
||||||
starship = import ./modules/starship.nix;
|
"virtualization"
|
||||||
vscode = import ./modules/vscode.nix;
|
];
|
||||||
wezterm = import ./modules/wezterm.nix;
|
|
||||||
yazi = import ./modules/yazi.nix;
|
modulesPath = ./modules;
|
||||||
zellij = import ./modules/zellij.nix;
|
|
||||||
zoxide = import ./modules/zoxide.nix;
|
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 {
|
in {
|
||||||
flake.homeModules = {
|
flake.homeModules = {
|
||||||
inherit
|
desktop = {
|
||||||
# Folders
|
imports = with modules; [
|
||||||
bat
|
brave
|
||||||
firefox
|
firefox
|
||||||
obs-studio
|
misc-android
|
||||||
qbittorrent
|
misc-desktop
|
||||||
# Files
|
misc-internet
|
||||||
|
qbittorrent
|
||||||
bottom
|
vscode
|
||||||
brave
|
];
|
||||||
cursor
|
};
|
||||||
direnv
|
|
||||||
freetube
|
entertainment = {
|
||||||
git
|
imports = with modules; [
|
||||||
helix
|
freetube
|
||||||
home-manager
|
misc-entertainment
|
||||||
lazygit
|
mpv
|
||||||
misc-android
|
steam
|
||||||
misc-commandLine
|
];
|
||||||
misc-fileManagement
|
};
|
||||||
misc-gaming
|
|
||||||
misc-gnomeExtras
|
productionArt = {
|
||||||
misc-internet
|
imports = with modules; [
|
||||||
misc-internet-extras
|
misc-productionArt
|
||||||
misc-jellyfin
|
];
|
||||||
misc-kdeExtras
|
};
|
||||||
misc-media
|
|
||||||
misc-privacy
|
productionAudio = {
|
||||||
misc-productionArtExtras
|
imports = with modules; [
|
||||||
misc-productionArt
|
misc-productionAudio
|
||||||
misc-productionAudio
|
];
|
||||||
misc-productionCode
|
};
|
||||||
misc-productionVideo
|
|
||||||
misc-productionWriting
|
productionVideo = {
|
||||||
misc-virtualization
|
imports = with modules; [
|
||||||
misc-yazi
|
misc-productionVideo
|
||||||
mpv
|
obs-studio
|
||||||
nextcloud
|
];
|
||||||
nushell
|
};
|
||||||
starship
|
|
||||||
steam
|
productionWriting = {
|
||||||
vscode
|
imports = with modules; [
|
||||||
wezterm
|
misc-productionWriting
|
||||||
yazi
|
];
|
||||||
zellij
|
};
|
||||||
zoxide
|
|
||||||
;
|
shared = {
|
||||||
commandLine = {
|
imports = with modules; [
|
||||||
imports = [
|
|
||||||
bat
|
bat
|
||||||
bottom
|
bottom
|
||||||
direnv
|
direnv
|
||||||
|
@ -102,10 +108,8 @@ in {
|
||||||
helix
|
helix
|
||||||
home-manager
|
home-manager
|
||||||
lazygit
|
lazygit
|
||||||
misc-android
|
|
||||||
misc-commandLine
|
misc-commandLine
|
||||||
misc-virtualization
|
misc-virtualization
|
||||||
misc-yazi
|
|
||||||
nushell
|
nushell
|
||||||
starship
|
starship
|
||||||
wezterm
|
wezterm
|
||||||
|
@ -114,93 +118,5 @@ in {
|
||||||
zoxide
|
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
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,125 +1,104 @@
|
||||||
let
|
let
|
||||||
# Folders
|
serviceModules = [
|
||||||
services = import ./modules/services;
|
"services"
|
||||||
# Files
|
];
|
||||||
accounts = import ./modules/accounts.nix;
|
|
||||||
android = import ./modules/android.nix;
|
fileModules = [
|
||||||
audio = import ./modules/audio.nix;
|
"accounts"
|
||||||
bluetooth = import ./modules/bluetooth.nix;
|
"android"
|
||||||
corectrl = import ./modules/corectrl.nix;
|
"audio"
|
||||||
dconf = import ./modules/dconf.nix;
|
"bluetooth"
|
||||||
disks = import ./modules/disks.nix;
|
"corectrl"
|
||||||
doas = import ./modules/doas.nix;
|
"dconf"
|
||||||
environment = import ./modules/environment.nix;
|
"disks"
|
||||||
firejail = import ./modules/firejail.nix;
|
"doas"
|
||||||
flatpak = import ./modules/flatpak.nix;
|
"environment"
|
||||||
fonts = import ./modules/fonts.nix;
|
"firejail"
|
||||||
gnome = import ./modules/gnome.nix;
|
"flatpak"
|
||||||
greetd = import ./modules/greetd.nix;
|
"fonts"
|
||||||
gvfs = import ./modules/gvfs.nix;
|
"gnome"
|
||||||
home-manager = import ./modules/home-manager.nix;
|
"greetd"
|
||||||
locale = import ./modules/locale.nix;
|
"gvfs"
|
||||||
network = import ./modules/network.nix;
|
"home-manager"
|
||||||
nix = import ./modules/nix.nix;
|
"locale"
|
||||||
ollama = import ./modules/ollama.nix;
|
"network"
|
||||||
plasma = import ./modules/plasma.nix;
|
"nix"
|
||||||
printing = import ./modules/printing.nix;
|
"nur"
|
||||||
rsyncd = import ./modules/rsyncd.nix;
|
"ollama"
|
||||||
regreet = import ./modules/regreet.nix;
|
"plasma"
|
||||||
sddm = import ./modules/sddm.nix;
|
"printing"
|
||||||
ssh = import ./modules/ssh.nix;
|
"regreet"
|
||||||
steam = import ./modules/steam.nix;
|
"rsyncd"
|
||||||
syncthing = import ./modules/syncthing.nix;
|
"sddm"
|
||||||
sops = import ./modules/sops.nix;
|
"sops"
|
||||||
sysstat = import ./modules/sysstat.nix;
|
"ssh"
|
||||||
system = import ./modules/system.nix;
|
"steam"
|
||||||
virtualization = import ./modules/virtualization.nix;
|
"syncthing"
|
||||||
xserver = import ./modules/xserver.nix;
|
"sysstat"
|
||||||
|
"system"
|
||||||
|
"virtualization"
|
||||||
|
"xserver"
|
||||||
|
];
|
||||||
|
|
||||||
|
modulesPath = ./modules;
|
||||||
|
|
||||||
|
importFolder = name: {"${name}" = import (modulesPath + "/${name}");};
|
||||||
|
importFile = name: {"${name}" = import (modulesPath + "/${name}.nix");};
|
||||||
|
|
||||||
|
modules =
|
||||||
|
builtins.foldl' (a: b: a // b) {} (map importFolder serviceModules)
|
||||||
|
// builtins.foldl' (a: b: a // b) {} (map importFile fileModules);
|
||||||
in {
|
in {
|
||||||
flake = {
|
flake.nixosModules = {
|
||||||
nixosModules = {
|
personal = {
|
||||||
inherit
|
imports = with modules; [
|
||||||
accounts
|
|
||||||
android
|
android
|
||||||
audio
|
audio
|
||||||
bluetooth
|
bluetooth
|
||||||
corectrl
|
corectrl
|
||||||
dconf
|
dconf
|
||||||
disks
|
disks
|
||||||
doas
|
|
||||||
environment
|
|
||||||
firejail
|
firejail
|
||||||
flatpak
|
flatpak
|
||||||
fonts
|
fonts
|
||||||
gnome
|
nur
|
||||||
greetd
|
plasma
|
||||||
|
printing
|
||||||
|
sddm
|
||||||
|
steam
|
||||||
|
sysstat
|
||||||
|
virtualization
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
desktop = {
|
||||||
|
imports = with modules; [
|
||||||
|
syncthing
|
||||||
|
ollama
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
server = {
|
||||||
|
imports = with modules; [
|
||||||
|
services
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
shared = {
|
||||||
|
imports = with modules; [
|
||||||
|
accounts
|
||||||
|
doas
|
||||||
|
environment
|
||||||
gvfs
|
gvfs
|
||||||
home-manager
|
home-manager
|
||||||
locale
|
locale
|
||||||
network
|
|
||||||
nix
|
nix
|
||||||
ollama
|
|
||||||
ssh
|
|
||||||
plasma
|
|
||||||
printing
|
|
||||||
regreet
|
|
||||||
rsyncd
|
rsyncd
|
||||||
sddm
|
|
||||||
services
|
|
||||||
sops
|
sops
|
||||||
steam
|
ssh
|
||||||
syncthing
|
|
||||||
sysstat
|
|
||||||
system
|
system
|
||||||
virtualization
|
|
||||||
xserver
|
xserver
|
||||||
;
|
];
|
||||||
personal = {
|
|
||||||
imports = [
|
|
||||||
android
|
|
||||||
audio
|
|
||||||
bluetooth
|
|
||||||
corectrl
|
|
||||||
dconf
|
|
||||||
disks
|
|
||||||
firejail
|
|
||||||
flatpak
|
|
||||||
fonts
|
|
||||||
plasma
|
|
||||||
printing
|
|
||||||
sddm
|
|
||||||
steam
|
|
||||||
sysstat
|
|
||||||
virtualization
|
|
||||||
];
|
|
||||||
};
|
|
||||||
desktop = {
|
|
||||||
imports = [
|
|
||||||
syncthing
|
|
||||||
# ollama
|
|
||||||
];
|
|
||||||
};
|
|
||||||
server = {
|
|
||||||
imports = [
|
|
||||||
services
|
|
||||||
];
|
|
||||||
};
|
|
||||||
shared = {
|
|
||||||
imports = [
|
|
||||||
accounts
|
|
||||||
doas
|
|
||||||
environment
|
|
||||||
gvfs
|
|
||||||
home-manager
|
|
||||||
locale
|
|
||||||
nix
|
|
||||||
rsyncd
|
|
||||||
ssh
|
|
||||||
system
|
|
||||||
sops
|
|
||||||
xserver
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,33 +1,27 @@
|
||||||
{
|
let
|
||||||
imports = [
|
serviceFolders = [
|
||||||
# Folders
|
"mastodon"
|
||||||
./mastodon
|
|
||||||
# Files
|
|
||||||
./acme.nix
|
|
||||||
./caddy.nix
|
|
||||||
./jellyfin.nix
|
|
||||||
./logrotate.nix
|
|
||||||
./minecraft.nix
|
|
||||||
./ollama.nix
|
|
||||||
./peertube.nix
|
|
||||||
./postgresql.nix
|
|
||||||
./owncast.nix
|
|
||||||
./samba.nix
|
|
||||||
./vaultwarden.nix
|
|
||||||
./wiki.nix
|
|
||||||
|
|
||||||
# These are all broken.
|
|
||||||
|
|
||||||
# ./forgejo.nix
|
|
||||||
|
|
||||||
# Partial Nginx configs make it nearly impossible to use alongside Caddy. 👇
|
|
||||||
|
|
||||||
# ./castopod.nix
|
|
||||||
|
|
||||||
# The reverse proxy works, but something is cucked.
|
|
||||||
# Maybe the port, or some configuration thing. It's unclear.
|
|
||||||
# Might actually have to wait for the package to get uncucked. 👇
|
|
||||||
|
|
||||||
# ./nextcloud.nix
|
|
||||||
];
|
];
|
||||||
|
|
||||||
|
serviceFiles = [
|
||||||
|
"acme"
|
||||||
|
"caddy"
|
||||||
|
"jellyfin"
|
||||||
|
"logrotate"
|
||||||
|
"minecraft"
|
||||||
|
"ollama"
|
||||||
|
"peertube"
|
||||||
|
"postgresql"
|
||||||
|
"owncast"
|
||||||
|
"samba"
|
||||||
|
"vaultwarden"
|
||||||
|
"wiki"
|
||||||
|
# "forgejo"
|
||||||
|
# "castopod"
|
||||||
|
# "nextcloud"
|
||||||
|
];
|
||||||
|
in {
|
||||||
|
imports =
|
||||||
|
(map (folder: ./${folder}) serviceFolders)
|
||||||
|
++ (map (file: ./${file}.nix) serviceFiles);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,12 +1,14 @@
|
||||||
{lib, ...}: {
|
{lib, ...}: let
|
||||||
imports = [
|
desktopFiles = [
|
||||||
./boot.nix
|
"boot"
|
||||||
./filesystem.nix
|
"filesystem"
|
||||||
./graphics.nix
|
"graphics"
|
||||||
./hardware.nix
|
"hardware"
|
||||||
./networking.nix
|
"networking"
|
||||||
./sops.nix
|
"sops"
|
||||||
];
|
];
|
||||||
|
in {
|
||||||
|
imports = map (file: ./${file}.nix) desktopFiles;
|
||||||
nixpkgs.hostPlatform = lib.mkForce "x86_64-linux";
|
nixpkgs.hostPlatform = lib.mkForce "x86_64-linux";
|
||||||
system.stateVersion = lib.mkForce "24.05";
|
system.stateVersion = lib.mkForce "24.05";
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,12 +1,14 @@
|
||||||
{lib, ...}: {
|
{lib, ...}: let
|
||||||
imports = [
|
laptopFiles = [
|
||||||
./boot.nix
|
"boot"
|
||||||
./filesystem.nix
|
"filesystem"
|
||||||
./graphics.nix
|
"graphics"
|
||||||
./hardware.nix
|
"hardware"
|
||||||
./networking.nix
|
"networking"
|
||||||
./sops.nix
|
"sops"
|
||||||
];
|
];
|
||||||
|
in {
|
||||||
|
imports = map (file: ./${file}.nix) laptopFiles;
|
||||||
nixpkgs.hostPlatform = lib.mkForce "x86_64-linux";
|
nixpkgs.hostPlatform = lib.mkForce "x86_64-linux";
|
||||||
system.stateVersion = lib.mkForce "24.05";
|
system.stateVersion = lib.mkForce "24.05";
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,12 +1,14 @@
|
||||||
{lib, ...}: {
|
{lib, ...}: let
|
||||||
imports = [
|
serverFiles = [
|
||||||
./boot.nix
|
"boot"
|
||||||
./filesystem.nix
|
"filesystem"
|
||||||
./graphics.nix
|
"graphics"
|
||||||
./hardware.nix
|
"hardware"
|
||||||
./networking.nix
|
"networking"
|
||||||
./sops.nix
|
"sops"
|
||||||
];
|
];
|
||||||
|
in {
|
||||||
|
imports = map (file: ./${file}.nix) serverFiles;
|
||||||
nixpkgs.hostPlatform = lib.mkForce "x86_64-linux";
|
nixpkgs.hostPlatform = lib.mkForce "x86_64-linux";
|
||||||
system.stateVersion = lib.mkForce "24.05";
|
system.stateVersion = lib.mkForce "24.05";
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue