diff --git a/flake.nix b/flake.nix index c6ce424f..1299d2b5 100644 --- a/flake.nix +++ b/flake.nix @@ -90,7 +90,9 @@ nix-index-database.url = "github:nix-community/nix-index-database"; nix-index-database.inputs.nixpkgs.follows = "nixpkgs"; - # Make a default.nix compatible stuff. + # Make a default.nix compatible stuff. Take note, we're giving this a + # unique suffix since there are other flake inputs that uses the same flake + # and we want our `default.nix` to refer to our version. flake-compat-fds.url = "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"; # Someone had the idea to make the flake outputs be configured as a Nix diff --git a/modules/flake-parts/setups/home-manager.nix b/modules/flake-parts/setups/home-manager.nix index 88720eb8..915457f5 100644 --- a/modules/flake-parts/setups/home-manager.nix +++ b/modules/flake-parts/setups/home-manager.nix @@ -88,8 +88,8 @@ let default = "nixpkgs"; example = "nixos-unstable-small"; description = '' - The nixpkgs branch to be used for evaluating the NixOS configuration. - By default, it will use the `nixpkgs` flake input. + The nixpkgs branch to be used for evaluating the home-manager + configuration. By default, it will use the `nixpkgs` flake input. ::: {.note} This is based from your flake inputs and not somewhere else. If you diff --git a/modules/flake-parts/setups/nixos.nix b/modules/flake-parts/setups/nixos.nix index ebc51705..41a20b9c 100644 --- a/modules/flake-parts/setups/nixos.nix +++ b/modules/flake-parts/setups/nixos.nix @@ -201,6 +201,7 @@ let }; home-manager = { + # Extending it with more NixOS-specific user options. users = lib.mkOption { type = with lib.types; attrsOf (submodule homeManagerUserType); }; @@ -337,6 +338,9 @@ let # overlay list is constructed. However, this is much more # preferable than letting a massive list with duplicated # overlays from different home-manager users to be applied. + # + # Anyways, all I'm saying is that this is a massive hack + # because it isn't correct. lib.lists.unique overlays; }) @@ -549,9 +553,8 @@ in ( let deployConfig = cfg.configs.${name}.deploy; - deployConfig' = lib.attrsets.removeAttrs deployConfig [ "profiles" ]; in - deployConfig' + deployConfig // { profiles = cfg.configs.${name}.deploy.profiles { diff --git a/modules/flake-parts/setups/nixvim.nix b/modules/flake-parts/setups/nixvim.nix index 499310ca..9486c067 100644 --- a/modules/flake-parts/setups/nixvim.nix +++ b/modules/flake-parts/setups/nixvim.nix @@ -64,7 +64,6 @@ let pkgs: with pkgs; [ (wrapNeovim neovim-unwrapped { }) neovim-nightly - neovide ] ''; description = '' @@ -104,7 +103,8 @@ in sharedModules = modulesOption // { description = '' A list of NixVim modules to be shared across all of the NixVim - configurations. + configurations. This is also to be shared among wider-scoped + environments when NixVim-specific integrations has been enabled. ''; }; standaloneConfigModules = modulesOption' "standalone configuration"; diff --git a/modules/flake-parts/setups/shared/deploy-node-type.nix b/modules/flake-parts/setups/shared/deploy-node-type.nix index bedd5cac..c086626a 100644 --- a/modules/flake-parts/setups/shared/deploy-node-type.nix +++ b/modules/flake-parts/setups/shared/deploy-node-type.nix @@ -1,3 +1,6 @@ +# A deploy-rs submodule to be shared among other deploy-rs-related options in +# different environments. Take note this is supposed to be imported inside of a +# deploy-rs-related option, not in the top-level `configs` option. { lib, ... }: { options = { fastConnection = diff --git a/modules/nixos/_private/workflows/default.nix b/modules/nixos/_private/workflows/default.nix index a68075e6..6a11779f 100644 --- a/modules/nixos/_private/workflows/default.nix +++ b/modules/nixos/_private/workflows/default.nix @@ -9,6 +9,16 @@ default = [ ]; description = '' A list of workflows to be enabled. + + Each workflow basically represents a way to interact with your computer + such as a typical complete desktop environment or a minimalistic desktop + featuring a standalone window manager with a custom status bar. + + While there's no set convention as to what each workflow should be, + workflows usually contain a complete graphical session configured inside + of it. A couple of exceptions are, for example, a complete standalone + tmux configuration where it can be used inside of a TTY or something like + that. ''; example = [ "a-happy-gnome" diff --git a/modules/nixos/profiles/desktop/audio.nix b/modules/nixos/profiles/desktop/audio.nix index 76802346..024c057f 100644 --- a/modules/nixos/profiles/desktop/audio.nix +++ b/modules/nixos/profiles/desktop/audio.nix @@ -21,6 +21,9 @@ }; # This is based from https://jackaudio.org/faq/linux_rt_config.html. + # + # Anyways, this enables several audio-related software requiring realtime + # scheduling to work such as Sonic Pi. security.pam.loginLimits = [ { domain = "@audio"; diff --git a/modules/nixos/profiles/desktop/fonts.nix b/modules/nixos/profiles/desktop/fonts.nix index af88c16f..021464d1 100644 --- a/modules/nixos/profiles/desktop/fonts.nix +++ b/modules/nixos/profiles/desktop/fonts.nix @@ -23,7 +23,7 @@ monaspace jetbrains-mono - # Noto font family + # Noto font family with the MR. WORLDWIDE settings. noto-fonts noto-fonts-cjk noto-fonts-cjk-sans diff --git a/modules/nixos/profiles/hardened.nix b/modules/nixos/profiles/hardened.nix index f24d9c0b..c3d934b6 100644 --- a/modules/nixos/profiles/hardened.nix +++ b/modules/nixos/profiles/hardened.nix @@ -10,7 +10,8 @@ # Don't replace it mid-way! DON'T TURN LEFT!!!! security.protectKernelImage = true; - # Hardened config equals hardened kernel. + # Hardened config equals hardened kernel equals hardened co--approval from the + # security-minded people. boot.kernelPackages = lib.mkOverride 500 pkgs.linuxKernel.packages.linux_6_6_hardened; # Disable system console entirely. We don't need it so get rid of it. diff --git a/modules/nixos/profiles/headless.nix b/modules/nixos/profiles/headless.nix index 76debf05..27e2b839 100644 --- a/modules/nixos/profiles/headless.nix +++ b/modules/nixos/profiles/headless.nix @@ -8,13 +8,16 @@ "${modulesPath}/profiles/headless.nix" ]; - # So does sounds... + # Sounds? We don't need in this void world of OURS! sound.enable = lib.mkDefault false; - # ...and Bluetooth because it's so insecure. + # Bluetooth is so 2000s, my wireless earbuds are scratching all to hell. hardware.bluetooth.enable = lib.mkDefault false; - # And other devices... + # You can draw from your imagination instead. hardware.opentabletdriver.enable = lib.mkDefault false; + + # Printers? In our godforsaken headless setups. (Ok there are servers that + # handle this but you know...) services.printing.enable = lib.mkDefault false; }