Here are my standalone home-manager configuration files that are used on my NixOS systems and also other linux distribution systems.
This allows for home directory portability from machine to machine to configure once and enjoy a many times forward. If you are looking for NixOS system configuration have a peek at my NixOS Configurations.
If you would like to base your own configuration from this repository, you will need to be able to use Nix flakes.
Highlights:
- Flexible roles such as workstation, server, kiosk
- Deployment of secrets using sops-nix
- Highly configured desktop environments for i3 sway and hyprland
- Some interesting bash scripts for automating common tasks.
- Declarative themes and wallpapers with nix-colors
flake.nix: Entrypoint for home configurations.dotfiles: Configuration files that are outside of the Home-Manager configuration (not migrated to nix)home: Home Manager Configurations, accessible viahome-manager switch --flake.- Split in between 'orgs' and common configuration this creates isolation. Based on 'roles' defaults are loaded
and then each subfolder creates a different level of configuration specific to that host or role.
shared: Shared configurations consumed by all users.role: Files related to what "role" is being selected as a templatesecrets: Secrets that are available to all users
generic: The 'generic' org to allow for isolation of configurations, secrets and config from various clientstoi: The 'toi' org to allow for isolation of configurations, secrets and config from various clientssecrets: Secrets that are specific to the 'toi' org<hostname>: Optional subfolder to load more configuration files based on the home-manager profiles name<role>: Optional subfolder to load more configuration files based on the roles name<users>: Load some specific user profile information
sd: Similar to the above org, just another org for isolationsr: Similar to the above org, just another org for isolation...
- Split in between 'orgs' and common configuration this creates isolation. Based on 'roles' defaults are loaded
and then each subfolder creates a different level of configuration specific to that host or role.
modules: Modules that are specific to this installationapplications: Applications and configurationscli: Command line toolsgui: Programs with a graphical interface
desktop: Desktop environmentsdisplayServer:xorwaylandconfigurationutils: Programs specific to desktop and window environmentsagnostic- runs great on whatever window managerwayland- wayland specific utilities to complement window managersx- x specific utilties to complement window managers
windowManager: A variety of configurations depending on the type of window manager, or Desktop environment
feature- Switchable featuresservice- Daemons and services
- Initialize Home Manager
nix --extra-experimental-features "nix-command flakes" run home-manager/master --init
- Activate the Configuration
home-manager switch --flake .#${HOSTNAME}.${USERNAME} --extra-experimental-features 'nix-command flakes'
nix flake update .
Do you what you'd like and I hope that this inspires you for your own configurations as many others have myself.