From 59f88dad0f99d7c079301ffa422c96c25d8bb5ca Mon Sep 17 00:00:00 2001 From: Sravan Balaji Date: Wed, 27 Mar 2024 16:12:10 -0400 Subject: [PATCH] Re-organize Nix Modules - Move all programs into system folder - Create `default.nix` for each folder to reduce number of imports in configuration.nix - Rename some modules to be more generic and less package specific to allow for easy swapping of programs in the future - Update flake.lock --- flake.lock | 12 ++-- flake.nix | 5 +- {hardware => hosts}/proxmox-vm.nix | 0 {hardware => hosts}/qemu-vm.nix | 0 profiles/personal/configuration.nix | 25 +++++---- profiles/personal/home.nix | 55 ------------------- system/app/gaming/gamemode.nix | 5 -- system/gui/default.nix | 8 +++ system/gui/dwm.nix | 5 +- system/gui/fonts.nix | 1 + system/gui/gnome.nix | 2 +- system/gui/x11.nix | 6 -- system/hardware/default.nix | 13 +++++ system/programs/browser/vivaldi.nix | 7 +++ system/programs/development/default.nix | 7 +++ system/programs/development/vscode.nix | 7 +++ system/programs/gaming/compatibility.nix | 8 +++ system/programs/gaming/default.nix | 9 +++ .../gaming/launchers.nix} | 7 +++ system/programs/gaming/utilities.nix | 15 +++++ system/programs/launcher/default.nix | 8 +++ system/programs/launcher/dmenu.nix | 7 +++ system/programs/launcher/rofi.nix | 7 +++ system/programs/media/creation.nix | 8 +++ system/programs/media/default.nix | 9 +++ system/programs/media/editors.nix | 9 +++ system/programs/media/players.nix | 12 ++++ .../programs/productivity/communication.nix | 10 ++++ system/programs/productivity/default.nix | 10 ++++ system/programs/productivity/finance.nix | 7 +++ system/programs/productivity/notes.nix | 8 +++ system/programs/productivity/office.nix | 10 ++++ system/programs/terminal/kitty.nix | 7 +++ system/programs/utilities/3d-printing.nix | 7 +++ system/programs/utilities/bootable-media.nix | 7 +++ system/programs/utilities/default.nix | 11 ++++ system/programs/utilities/file-syncing.nix | 5 ++ .../utilities/keyboard-configuration.nix | 7 +++ system/programs/utilities/passwords.nix | 7 +++ system/security/default.nix | 8 +++ system/util/default.nix | 8 +++ 41 files changed, 277 insertions(+), 92 deletions(-) rename {hardware => hosts}/proxmox-vm.nix (100%) rename {hardware => hosts}/qemu-vm.nix (100%) delete mode 100644 system/app/gaming/gamemode.nix create mode 100644 system/gui/default.nix create mode 100644 system/hardware/default.nix create mode 100644 system/programs/browser/vivaldi.nix create mode 100644 system/programs/development/default.nix create mode 100644 system/programs/development/vscode.nix create mode 100644 system/programs/gaming/compatibility.nix create mode 100644 system/programs/gaming/default.nix rename system/{app/gaming/steam.nix => programs/gaming/launchers.nix} (59%) create mode 100644 system/programs/gaming/utilities.nix create mode 100644 system/programs/launcher/default.nix create mode 100644 system/programs/launcher/dmenu.nix create mode 100644 system/programs/launcher/rofi.nix create mode 100644 system/programs/media/creation.nix create mode 100644 system/programs/media/default.nix create mode 100644 system/programs/media/editors.nix create mode 100644 system/programs/media/players.nix create mode 100644 system/programs/productivity/communication.nix create mode 100644 system/programs/productivity/default.nix create mode 100644 system/programs/productivity/finance.nix create mode 100644 system/programs/productivity/notes.nix create mode 100644 system/programs/productivity/office.nix create mode 100644 system/programs/terminal/kitty.nix create mode 100644 system/programs/utilities/3d-printing.nix create mode 100644 system/programs/utilities/bootable-media.nix create mode 100644 system/programs/utilities/default.nix create mode 100644 system/programs/utilities/file-syncing.nix create mode 100644 system/programs/utilities/keyboard-configuration.nix create mode 100644 system/programs/utilities/passwords.nix create mode 100644 system/security/default.nix create mode 100644 system/util/default.nix diff --git a/flake.lock b/flake.lock index 97da0fa..380915a 100644 --- a/flake.lock +++ b/flake.lock @@ -223,11 +223,11 @@ ] }, "locked": { - "lastModified": 1711133180, - "narHash": "sha256-WJOahf+6115+GMl3wUfURu8fszuNeJLv9qAWFQl3Vmo=", + "lastModified": 1711554349, + "narHash": "sha256-RypwcWEIFePBI0Hubfj4chanbM/G2yzJzC6wgz+dmS4=", "owner": "nix-community", "repo": "home-manager", - "rev": "1c2c5e4cabba4c43504ef0f8cc3f3dfa284e2dbb", + "rev": "179f6acaf7c068c7870542cdae72afec9427a5b0", "type": "github" }, "original": { @@ -276,11 +276,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1711124224, - "narHash": "sha256-l0zlN/3CiodvWDtfBOVxeTwYSRz93muVbXWSpaMjXxM=", + "lastModified": 1711460390, + "narHash": "sha256-akSgjDZL6pVHEfSE6sz1DNSXuYX6hq+P/1Z5IoYWs7E=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "56528ee42526794d413d6f244648aaee4a7b56c0", + "rev": "44733514b72e732bd49f5511bd0203dea9b9a434", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 5cbaf2d..df77b37 100644 --- a/flake.nix +++ b/flake.nix @@ -25,7 +25,6 @@ timezone = "America/New_York"; # Time Zone locale = "en_US.UTF-8"; # Locale diskoConfig = "luks-btrfs-subvolumes"; # Select the disko config that was used to partition drive - desktopEnvironment = "gnome"; # Window Manager / Desktop Environment to use hardwareConfiguration = "qemu-vm"; # Select the hardware config from hardware directory }; @@ -36,8 +35,8 @@ email = "balajsra@umich.edu"; # Email (used for certain configurations) dotfilesDir = "~/.dotfiles"; # Absolute path of the local repo theme = "dracula"; # Selected theme from themes directory - wm = "dwm"; # Selected window manager or desktop environment - wmType = "x11"; # x11 or wayland + desktop = "gnome"; # Selected window manager or desktop environment + desktopType = "x11"; # x11 or wayland browser = "vivaldi"; # Default browser term = "kitty"; # Default terminal command editor = "vim"; # Default editor diff --git a/hardware/proxmox-vm.nix b/hosts/proxmox-vm.nix similarity index 100% rename from hardware/proxmox-vm.nix rename to hosts/proxmox-vm.nix diff --git a/hardware/qemu-vm.nix b/hosts/qemu-vm.nix similarity index 100% rename from hardware/qemu-vm.nix rename to hosts/qemu-vm.nix diff --git a/profiles/personal/configuration.nix b/profiles/personal/configuration.nix index 5330b7d..b938d84 100644 --- a/profiles/personal/configuration.nix +++ b/profiles/personal/configuration.nix @@ -6,18 +6,19 @@ { imports = [ - (../../hardware + "/${systemSettings.hardwareConfiguration}.nix") - ../../system/hardware/kernel.nix - ../../system/hardware/bluetooth.nix - ../../system/hardware/opengl.nix - ../../system/hardware/openrgb.nix - ../../system/hardware/printing.nix - ../../system/hardware/automount.nix - ../../system/security/firewall.nix - ../../system/app/gaming/steam.nix - ../../system/app/gaming/gamemode.nix - ../../system/hardware/audio.nix - (../../system/gui + "/${systemSettings.desktopEnvironment}.nix") + (../../hosts + "/${systemSettings.hardwareConfiguration}.nix") + (../../system/gui + "/${userSettings.desktop}.nix") + ../../system/hardware/default.nix + (../../system/programs/browser + "/${userSettings.browser}.nix") + ../../system/programs/development/default.nix + ../../system/programs/gaming/default.nix + ../../system/programs/launcher/default.nix + ../../system/programs/media/default.nix + ../../system/programs/productivity/default.nix + (../../system/programs/terminal + "/${userSettings.term}.nix") + ../../system/programs/utilities/default.nix + ../../system/security/default.nix + ../../system/util/default.nix ]; nix = { diff --git a/profiles/personal/home.nix b/profiles/personal/home.nix index 4eecdcb..d9a30dd 100644 --- a/profiles/personal/home.nix +++ b/profiles/personal/home.nix @@ -10,63 +10,8 @@ home.stateVersion = "23.11"; home.packages = (with pkgs; [ - # Terminal - kitty - - # Browser - vivaldi - - # Launcher - dmenu - rofi - - # Development - vscode - - # Utilities - syncthing - bitwarden - ventoy - via - prusa-slicer - - # Office - xournalpp - gimp - gnucash - - # Gaming - wine - bottles - lutris - protonup-qt - - # Media - gimp - mpv - blender - obs-studio - ffmpeg - trackma-gtk - - # Messaging - beeper - discord - signal-desktop - zoom-us - - # Productivity - anytype - logseq - - # Music / Podcasts - pocket-casts - spotify - spicetify-cli ]); - services.syncthing.enable = true; - xdg.enable = true; xdg.userDirs = { enable = true; diff --git a/system/app/gaming/gamemode.nix b/system/app/gaming/gamemode.nix deleted file mode 100644 index cf31ae1..0000000 --- a/system/app/gaming/gamemode.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ config, lib, pkgs, ... }: - -{ - programs.gamemode.enable = true; -} diff --git a/system/gui/default.nix b/system/gui/default.nix new file mode 100644 index 0000000..0d36ae7 --- /dev/null +++ b/system/gui/default.nix @@ -0,0 +1,8 @@ +{ config, lib, pkgs, ... }: + +{ + imports = [ + ./x11.nix + ./fonts.nix + ]; +} diff --git a/system/gui/dwm.nix b/system/gui/dwm.nix index 45060cc..ec15145 100644 --- a/system/gui/dwm.nix +++ b/system/gui/dwm.nix @@ -2,11 +2,8 @@ { imports = [ - ./x11.nix + ./default.nix ./lightdm.nix - ../app/terminal/kitty.nix - ../app/launcher/dmenu.nix - ../app/launcher/rofi.nix ]; services.xserver.windowManager.dwm.enable = true; diff --git a/system/gui/fonts.nix b/system/gui/fonts.nix index 3af0f10..2014727 100644 --- a/system/gui/fonts.nix +++ b/system/gui/fonts.nix @@ -2,6 +2,7 @@ { fonts.packages = with pkgs; [ + corefonts powerline font-awesome ubuntu_font_family diff --git a/system/gui/gnome.nix b/system/gui/gnome.nix index 1da7fb2..97acc6d 100644 --- a/system/gui/gnome.nix +++ b/system/gui/gnome.nix @@ -2,7 +2,7 @@ { imports = [ - ./x11.nix + ./default.nix ]; services.xserver.displayManager.gdm.enable = true; diff --git a/system/gui/x11.nix b/system/gui/x11.nix index 96b90ce..d7f6de8 100644 --- a/system/gui/x11.nix +++ b/system/gui/x11.nix @@ -1,12 +1,6 @@ { config, lib, pkgs, ... }: { - imports = [ - ../util/dbus.nix - ../util/gnome-keyring.nix - ./fonts.nix - ]; - services.xserver = { enable = true; xkb = { diff --git a/system/hardware/default.nix b/system/hardware/default.nix new file mode 100644 index 0000000..21c10c1 --- /dev/null +++ b/system/hardware/default.nix @@ -0,0 +1,13 @@ +{ config, lib, pkgs, ... }: + +{ + imports = [ + ./audio.nix + ./automount.nix + ./bluetooth.nix + ./kernel.nix + ./opengl.nix + ./openrgb.nix + ./printing.nix + ]; +} diff --git a/system/programs/browser/vivaldi.nix b/system/programs/browser/vivaldi.nix new file mode 100644 index 0000000..8119029 --- /dev/null +++ b/system/programs/browser/vivaldi.nix @@ -0,0 +1,7 @@ +{ config, lib, pkgs, ... }: + +{ + environment.systemPackages = with pkgs; [ + vivaldi + ]; +} diff --git a/system/programs/development/default.nix b/system/programs/development/default.nix new file mode 100644 index 0000000..b6e82d8 --- /dev/null +++ b/system/programs/development/default.nix @@ -0,0 +1,7 @@ +{ config, lib, pkgs, ... }: + +{ + imports = [ + ./vscode.nix + ]; +} diff --git a/system/programs/development/vscode.nix b/system/programs/development/vscode.nix new file mode 100644 index 0000000..121fe22 --- /dev/null +++ b/system/programs/development/vscode.nix @@ -0,0 +1,7 @@ +{ config, lib, pkgs, ... }: + +{ + environment.systemPackages = with pkgs; [ + vscode + ]; +} diff --git a/system/programs/gaming/compatibility.nix b/system/programs/gaming/compatibility.nix new file mode 100644 index 0000000..a1bbf3e --- /dev/null +++ b/system/programs/gaming/compatibility.nix @@ -0,0 +1,8 @@ +{ config, lib, pkgs, ... }: + +{ + environment.systemPackages = with pkgs; [ + wine + protonup-qt + ]; +} diff --git a/system/programs/gaming/default.nix b/system/programs/gaming/default.nix new file mode 100644 index 0000000..4489fa3 --- /dev/null +++ b/system/programs/gaming/default.nix @@ -0,0 +1,9 @@ +{ config, lib, pkgs, ... }: + +{ + imports = [ + ./utilities.nix + ./launchers.nix + ./compatibility.nix + ]; +} diff --git a/system/app/gaming/steam.nix b/system/programs/gaming/launchers.nix similarity index 59% rename from system/app/gaming/steam.nix rename to system/programs/gaming/launchers.nix index d2c8f27..7dce775 100644 --- a/system/app/gaming/steam.nix +++ b/system/programs/gaming/launchers.nix @@ -6,4 +6,11 @@ remotePlay.openFirewall = true; gamescopeSession.enable = true; }; + + environment.systemPackages = with pkgs; [ + bottles + lutris + heroic + prismlauncher + ]; } diff --git a/system/programs/gaming/utilities.nix b/system/programs/gaming/utilities.nix new file mode 100644 index 0000000..bc7cc9c --- /dev/null +++ b/system/programs/gaming/utilities.nix @@ -0,0 +1,15 @@ +{ config, lib, pkgs, ... }: + +{ + programs.gamemode = { + enable = true; + # settings = {}; + # enableRenice = true; + }; + + environment.systemPackages = with pkgs; [ + mangohud + goverlay + vkbasalt + ]; +} diff --git a/system/programs/launcher/default.nix b/system/programs/launcher/default.nix new file mode 100644 index 0000000..ee3704d --- /dev/null +++ b/system/programs/launcher/default.nix @@ -0,0 +1,8 @@ +{ config, lib, pkgs, ... }: + +{ + imports = [ + ./dmenu.nix + ./rofi.nix + ]; +} diff --git a/system/programs/launcher/dmenu.nix b/system/programs/launcher/dmenu.nix new file mode 100644 index 0000000..c2144a4 --- /dev/null +++ b/system/programs/launcher/dmenu.nix @@ -0,0 +1,7 @@ +{ config, lib, pkgs, ... }: + +{ + environment.systemPackages = with pkgs; [ + dmenu + ]; +} diff --git a/system/programs/launcher/rofi.nix b/system/programs/launcher/rofi.nix new file mode 100644 index 0000000..631329d --- /dev/null +++ b/system/programs/launcher/rofi.nix @@ -0,0 +1,7 @@ +{ config, lib, pkgs, ... }: + +{ + environment.systemPackages = with pkgs; [ + rofi + ]; +} diff --git a/system/programs/media/creation.nix b/system/programs/media/creation.nix new file mode 100644 index 0000000..a1db1a3 --- /dev/null +++ b/system/programs/media/creation.nix @@ -0,0 +1,8 @@ +{ config, lib, pkgs, ... }: + +{ + environment.systemPackages = with pkgs; [ + blender + obs-studio + ]; +} diff --git a/system/programs/media/default.nix b/system/programs/media/default.nix new file mode 100644 index 0000000..a1e7e28 --- /dev/null +++ b/system/programs/media/default.nix @@ -0,0 +1,9 @@ +{ config, lib, pkgs, ... }: + +{ + imports = [ + ./players.nix + ./editors.nix + ./creation.nix + ]; +} diff --git a/system/programs/media/editors.nix b/system/programs/media/editors.nix new file mode 100644 index 0000000..810ee26 --- /dev/null +++ b/system/programs/media/editors.nix @@ -0,0 +1,9 @@ +{ config, lib, pkgs, ... }: + +{ + environment.systemPackages = with pkgs; [ + gimp + libsForQt5.kdenlive + ffmpeg + ]; +} diff --git a/system/programs/media/players.nix b/system/programs/media/players.nix new file mode 100644 index 0000000..5da2ea7 --- /dev/null +++ b/system/programs/media/players.nix @@ -0,0 +1,12 @@ +{ config, lib, pkgs, ... }: + +{ + environment.systemPackages = with pkgs; [ + gnome.eog + mpv + trackma-gtk + pocket-casts + spotify + spicetify-cli + ]; +} diff --git a/system/programs/productivity/communication.nix b/system/programs/productivity/communication.nix new file mode 100644 index 0000000..e236052 --- /dev/null +++ b/system/programs/productivity/communication.nix @@ -0,0 +1,10 @@ +{ config, lib, pkgs, ... }: + +{ + environment.systemPackages = with pkgs; [ + beeper + discord + signal-desktop + zoom-us + ]; +} diff --git a/system/programs/productivity/default.nix b/system/programs/productivity/default.nix new file mode 100644 index 0000000..12739ef --- /dev/null +++ b/system/programs/productivity/default.nix @@ -0,0 +1,10 @@ +{ config, lib, pkgs, ... }: + +{ + imports = [ + ./office.nix + ./finance.nix + ./notes.nix + ./communication.nix + ]; +} diff --git a/system/programs/productivity/finance.nix b/system/programs/productivity/finance.nix new file mode 100644 index 0000000..33b04bd --- /dev/null +++ b/system/programs/productivity/finance.nix @@ -0,0 +1,7 @@ +{ config, lib, pkgs, ... }: + +{ + environment.systemPackages = with pkgs; [ + gnucash + ]; +} diff --git a/system/programs/productivity/notes.nix b/system/programs/productivity/notes.nix new file mode 100644 index 0000000..33fab0e --- /dev/null +++ b/system/programs/productivity/notes.nix @@ -0,0 +1,8 @@ +{ config, lib, pkgs, ... }: + +{ + environment.systemPackages = with pkgs; [ + anytype + logseq + ]; +} diff --git a/system/programs/productivity/office.nix b/system/programs/productivity/office.nix new file mode 100644 index 0000000..7fd456d --- /dev/null +++ b/system/programs/productivity/office.nix @@ -0,0 +1,10 @@ +{ config, lib, pkgs, ... }: + +{ + environment.systemPackages = with pkgs; [ + onlyoffice-bin + xournalpp + zathura + libsForQt5.okular + ]; +} diff --git a/system/programs/terminal/kitty.nix b/system/programs/terminal/kitty.nix new file mode 100644 index 0000000..d65d85f --- /dev/null +++ b/system/programs/terminal/kitty.nix @@ -0,0 +1,7 @@ +{ config, lib, pkgs, ... }: + +{ + environment.systemPackages = with pkgs; [ + kitty + ]; +} diff --git a/system/programs/utilities/3d-printing.nix b/system/programs/utilities/3d-printing.nix new file mode 100644 index 0000000..bfb9a37 --- /dev/null +++ b/system/programs/utilities/3d-printing.nix @@ -0,0 +1,7 @@ +{ config, lib, pkgs, ... }: + +{ + environment.systemPackages = with pkgs; [ + prusa-slicer + ]; +} diff --git a/system/programs/utilities/bootable-media.nix b/system/programs/utilities/bootable-media.nix new file mode 100644 index 0000000..f5a2a88 --- /dev/null +++ b/system/programs/utilities/bootable-media.nix @@ -0,0 +1,7 @@ +{ config, lib, pkgs, ... }: + +{ + environment.systemPackages = with pkgs; [ + ventoy + ]; +} diff --git a/system/programs/utilities/default.nix b/system/programs/utilities/default.nix new file mode 100644 index 0000000..dd2b455 --- /dev/null +++ b/system/programs/utilities/default.nix @@ -0,0 +1,11 @@ +{ config, lib, pkgs, ... }: + +{ + imports = [ + ./3d-printing.nix + ./bootable-media.nix + ./file-syncing.nix + ./keyboard-configuration.nix + ./passwords.nix + ]; +} diff --git a/system/programs/utilities/file-syncing.nix b/system/programs/utilities/file-syncing.nix new file mode 100644 index 0000000..3a38b5d --- /dev/null +++ b/system/programs/utilities/file-syncing.nix @@ -0,0 +1,5 @@ +{ config, lib, pkgs, ... }: + +{ + services.syncthing.enable = true; +} diff --git a/system/programs/utilities/keyboard-configuration.nix b/system/programs/utilities/keyboard-configuration.nix new file mode 100644 index 0000000..afdff06 --- /dev/null +++ b/system/programs/utilities/keyboard-configuration.nix @@ -0,0 +1,7 @@ +{ config, lib, pkgs, ... }: + +{ + environment.systemPackages = with pkgs; [ + via + ]; +} diff --git a/system/programs/utilities/passwords.nix b/system/programs/utilities/passwords.nix new file mode 100644 index 0000000..8bb3650 --- /dev/null +++ b/system/programs/utilities/passwords.nix @@ -0,0 +1,7 @@ +{ config, lib, pkgs, ... }: + +{ + environment.systemPackages = with pkgs; [ + bitwarden + ]; +} diff --git a/system/security/default.nix b/system/security/default.nix new file mode 100644 index 0000000..60391d4 --- /dev/null +++ b/system/security/default.nix @@ -0,0 +1,8 @@ +{ config, lib, pkgs, ... }: + +{ + imports = [ + ./firewall.nix + ./gpg.nix + ]; +} diff --git a/system/util/default.nix b/system/util/default.nix new file mode 100644 index 0000000..2656592 --- /dev/null +++ b/system/util/default.nix @@ -0,0 +1,8 @@ +{ config, lib, pkgs, ... }: + +{ + imports = [ + ./dbus.nix + ./gnome-keyring.nix + ]; +}