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
|
||||
# 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
|
||||
desktop = {
|
||||
imports = with modules; [
|
||||
brave
|
||||
firefox
|
||||
obs-studio
|
||||
misc-android
|
||||
misc-desktop
|
||||
misc-internet
|
||||
qbittorrent
|
||||
# Files
|
||||
vscode
|
||||
];
|
||||
};
|
||||
|
||||
bottom
|
||||
brave
|
||||
cursor
|
||||
direnv
|
||||
entertainment = {
|
||||
imports = with modules; [
|
||||
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
|
||||
misc-entertainment
|
||||
mpv
|
||||
nextcloud
|
||||
nushell
|
||||
starship
|
||||
steam
|
||||
vscode
|
||||
wezterm
|
||||
yazi
|
||||
zellij
|
||||
zoxide
|
||||
;
|
||||
commandLine = {
|
||||
imports = [
|
||||
];
|
||||
};
|
||||
|
||||
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
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,81 +1,57 @@
|
|||
let
|
||||
# Folders
|
||||
services = import ./modules/services;
|
||||
# Files
|
||||
accounts = import ./modules/accounts.nix;
|
||||
android = import ./modules/android.nix;
|
||||
audio = import ./modules/audio.nix;
|
||||
bluetooth = import ./modules/bluetooth.nix;
|
||||
corectrl = import ./modules/corectrl.nix;
|
||||
dconf = import ./modules/dconf.nix;
|
||||
disks = import ./modules/disks.nix;
|
||||
doas = import ./modules/doas.nix;
|
||||
environment = import ./modules/environment.nix;
|
||||
firejail = import ./modules/firejail.nix;
|
||||
flatpak = import ./modules/flatpak.nix;
|
||||
fonts = import ./modules/fonts.nix;
|
||||
gnome = import ./modules/gnome.nix;
|
||||
greetd = import ./modules/greetd.nix;
|
||||
gvfs = import ./modules/gvfs.nix;
|
||||
home-manager = import ./modules/home-manager.nix;
|
||||
locale = import ./modules/locale.nix;
|
||||
network = import ./modules/network.nix;
|
||||
nix = import ./modules/nix.nix;
|
||||
ollama = import ./modules/ollama.nix;
|
||||
plasma = import ./modules/plasma.nix;
|
||||
printing = import ./modules/printing.nix;
|
||||
rsyncd = import ./modules/rsyncd.nix;
|
||||
regreet = import ./modules/regreet.nix;
|
||||
sddm = import ./modules/sddm.nix;
|
||||
ssh = import ./modules/ssh.nix;
|
||||
steam = import ./modules/steam.nix;
|
||||
syncthing = import ./modules/syncthing.nix;
|
||||
sops = import ./modules/sops.nix;
|
||||
sysstat = import ./modules/sysstat.nix;
|
||||
system = import ./modules/system.nix;
|
||||
virtualization = import ./modules/virtualization.nix;
|
||||
xserver = import ./modules/xserver.nix;
|
||||
serviceModules = [
|
||||
"services"
|
||||
];
|
||||
|
||||
fileModules = [
|
||||
"accounts"
|
||||
"android"
|
||||
"audio"
|
||||
"bluetooth"
|
||||
"corectrl"
|
||||
"dconf"
|
||||
"disks"
|
||||
"doas"
|
||||
"environment"
|
||||
"firejail"
|
||||
"flatpak"
|
||||
"fonts"
|
||||
"gnome"
|
||||
"greetd"
|
||||
"gvfs"
|
||||
"home-manager"
|
||||
"locale"
|
||||
"network"
|
||||
"nix"
|
||||
"nur"
|
||||
"ollama"
|
||||
"plasma"
|
||||
"printing"
|
||||
"regreet"
|
||||
"rsyncd"
|
||||
"sddm"
|
||||
"sops"
|
||||
"ssh"
|
||||
"steam"
|
||||
"syncthing"
|
||||
"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 {
|
||||
flake = {
|
||||
nixosModules = {
|
||||
inherit
|
||||
accounts
|
||||
android
|
||||
audio
|
||||
bluetooth
|
||||
corectrl
|
||||
dconf
|
||||
disks
|
||||
doas
|
||||
environment
|
||||
firejail
|
||||
flatpak
|
||||
fonts
|
||||
gnome
|
||||
greetd
|
||||
gvfs
|
||||
home-manager
|
||||
locale
|
||||
network
|
||||
nix
|
||||
ollama
|
||||
ssh
|
||||
plasma
|
||||
printing
|
||||
regreet
|
||||
rsyncd
|
||||
sddm
|
||||
services
|
||||
sops
|
||||
steam
|
||||
syncthing
|
||||
sysstat
|
||||
system
|
||||
virtualization
|
||||
xserver
|
||||
;
|
||||
flake.nixosModules = {
|
||||
personal = {
|
||||
imports = [
|
||||
imports = with modules; [
|
||||
android
|
||||
audio
|
||||
bluetooth
|
||||
|
@ -85,6 +61,7 @@ in {
|
|||
firejail
|
||||
flatpak
|
||||
fonts
|
||||
nur
|
||||
plasma
|
||||
printing
|
||||
sddm
|
||||
|
@ -93,19 +70,22 @@ in {
|
|||
virtualization
|
||||
];
|
||||
};
|
||||
|
||||
desktop = {
|
||||
imports = [
|
||||
imports = with modules; [
|
||||
syncthing
|
||||
# ollama
|
||||
ollama
|
||||
];
|
||||
};
|
||||
|
||||
server = {
|
||||
imports = [
|
||||
imports = with modules; [
|
||||
services
|
||||
];
|
||||
};
|
||||
|
||||
shared = {
|
||||
imports = [
|
||||
imports = with modules; [
|
||||
accounts
|
||||
doas
|
||||
environment
|
||||
|
@ -114,12 +94,11 @@ in {
|
|||
locale
|
||||
nix
|
||||
rsyncd
|
||||
sops
|
||||
ssh
|
||||
system
|
||||
sops
|
||||
xserver
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,33 +1,27 @@
|
|||
{
|
||||
imports = [
|
||||
# Folders
|
||||
./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
|
||||
let
|
||||
serviceFolders = [
|
||||
"mastodon"
|
||||
];
|
||||
|
||||
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, ...}: {
|
||||
imports = [
|
||||
./boot.nix
|
||||
./filesystem.nix
|
||||
./graphics.nix
|
||||
./hardware.nix
|
||||
./networking.nix
|
||||
./sops.nix
|
||||
{lib, ...}: let
|
||||
desktopFiles = [
|
||||
"boot"
|
||||
"filesystem"
|
||||
"graphics"
|
||||
"hardware"
|
||||
"networking"
|
||||
"sops"
|
||||
];
|
||||
in {
|
||||
imports = map (file: ./${file}.nix) desktopFiles;
|
||||
nixpkgs.hostPlatform = lib.mkForce "x86_64-linux";
|
||||
system.stateVersion = lib.mkForce "24.05";
|
||||
}
|
||||
|
|
|
@ -1,12 +1,14 @@
|
|||
{lib, ...}: {
|
||||
imports = [
|
||||
./boot.nix
|
||||
./filesystem.nix
|
||||
./graphics.nix
|
||||
./hardware.nix
|
||||
./networking.nix
|
||||
./sops.nix
|
||||
{lib, ...}: let
|
||||
laptopFiles = [
|
||||
"boot"
|
||||
"filesystem"
|
||||
"graphics"
|
||||
"hardware"
|
||||
"networking"
|
||||
"sops"
|
||||
];
|
||||
in {
|
||||
imports = map (file: ./${file}.nix) laptopFiles;
|
||||
nixpkgs.hostPlatform = lib.mkForce "x86_64-linux";
|
||||
system.stateVersion = lib.mkForce "24.05";
|
||||
}
|
||||
|
|
|
@ -1,12 +1,14 @@
|
|||
{lib, ...}: {
|
||||
imports = [
|
||||
./boot.nix
|
||||
./filesystem.nix
|
||||
./graphics.nix
|
||||
./hardware.nix
|
||||
./networking.nix
|
||||
./sops.nix
|
||||
{lib, ...}: let
|
||||
serverFiles = [
|
||||
"boot"
|
||||
"filesystem"
|
||||
"graphics"
|
||||
"hardware"
|
||||
"networking"
|
||||
"sops"
|
||||
];
|
||||
in {
|
||||
imports = map (file: ./${file}.nix) serverFiles;
|
||||
nixpkgs.hostPlatform = lib.mkForce "x86_64-linux";
|
||||
system.stateVersion = lib.mkForce "24.05";
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue