2023-06-11 20:56:47 +05:30
#+title : User-level Nix Modules
#+author : Emmet
Separate Nix files can be imported as modules using an import block:
#+BEGIN_SRC nix
imports = [ import1.nix
import2.nix
...
];
#+END_SRC
My user-level Nix modules are organized into this directory:
- [[./app ][app ]] - Apps or collections of apps bundled with my configs
- [[./app/browser ][browser ]] - Used to set default browser
- [[./app/dmenu-scripts ][dmenu-scripts ]]
- [[./app/doom-emacs ][doom-emacs ]]
- [[./app/flatpak ][flatpak ]] - Installs flatpak as a utility (flatpaks must be installed manually)
- [[./app/games ][games ]] - Gaming setup
- [[./app/git ][git ]]
- [[./app/keepass ][keepass ]]
- [[./app/ranger ][ranger ]]
- [[./app/terminal ][terminal ]] - Configuration for terminal emulators
- [[./app/virtualization ][virtualization ]] - Virtualization and compatability layers
- [[./bin ][bin ]] - My own scripts
- [[./bin/phoenix.nix ][phoenix ]] - My nix command wrapper
- [[./lang ][lang ]] - Various bundled programming languages
- I will probably get rid of this in favor of a shell.nix for every project, once I learn how that works
- [[./pkgs ][pkgs ]] - "Package builds" for packages not in the Nix repositories
- [[./pkgs/pokemon-colorscripts.nix ][pokemon-colorscripts ]]
- [[./pkgs/rogauracore.nix ][rogauracore ]] - not working yet
- [[./pkgs/ytsub.nix ][ytsub ]]
- [[./shell ][shell ]] - My default bash and zsh configs
- [[./shell/sh.nix ][sh ]] - bash and zsh configs
- [[./shell/cli-collection.nix ][cli-collection ]] - Curated useful CLI utilities
- [[./style ][style ]] - Stylix setup (system-wide base16 theme generation)
2023-06-21 21:01:09 +05:30
- [[./wm ][wm ]] - Window manager, compositor, wayland compositor, and/or desktop environment setups
2023-06-11 20:56:47 +05:30
- [[./wm/xmonad ][xmonad ]]
- [[./wm/picom ][picom ]]
** Variables imported from flake.nix
Variables can be imported from [[../flake.nix ][flake.nix ]] by setting the =extraSpecialArgs= block inside the flake (see [[../flake.nix ][my flake ]] for more details). This allows variables to merely be managed in one place ([[../flake.nix ][flake.nix ]]) rather than having to manage them in multiple locations.
I currently import the following variables to the system config:
- =myName= - Username
2023-06-21 09:00:34 +05:30
- =myHostname= - Hostname for machine
2023-06-11 20:56:47 +05:30
- =myHomeDir= - Absolute path to home directory derived from =myName=
- =myEmail= - Email
- =myDotfilesDir= - Path to my dotfiles directory on the system
- =myTheme= - base16 theme stored in ../themes to be used
- =myThemePolarity= - whether theme is =light= or =dark=
- =myBackgroundUrl= - Direct link to background wallpaper (used for login screen)
- =myBackgroundSha256= - Checksum for background image used when downloading