A NixOS configuration template using Flakes, designed to allow users to customize their NixOS setup, add packages, and configure themes. This setup utilizes Niri as the window manager, along with NixOS flakes and Home Manager for declarative configuration management.
https://github.com/ArikRahman/dotfiles
flake.nix: The entry point for the Nix Flake. Defines inputs and outputs.configuration.nix: The main NixOS system configuration file.hardware-configuration.nix: Hardware-specific settings, usually auto-generated.home.nix: Home Manager configuration for user-specific settings.modules/: Contains custom modules.hm/: Home Manager modules.system/: System-level NixOS modules.
docs/: Documentation files.manus/: Folder for Manus workflow documentation and tasks..gitignore: Git ignore rules.AGENTS.org: Context and instructions for AI agents working on this project.Appendix.org: Personal notes and appendix (not for editing by agents).
- Declarative NixOS configuration using flakes.
- Home Manager integration for user environment management.
- Niri window manager setup.
- Customizable themes and packages.
- Modular structure for easy extension.
- Clone the repository:
git clone https://github.com/ArikRahman/dotfiles.git cd dotfiles - Customize the configuration files as needed:
- Edit
configuration.nixfor system-wide settings. - Edit
home.nixfor user-specific configurations. - Modify modules in
modules/for additional customizations.
- Edit
- Generate or update
hardware-configuration.nixif necessary (usually done during NixOS installation). - Build and switch to the new configuration:
sudo nixos-rebuild switch --flake .#hydenixNote: Replace
#hydenixwith your hostname if different.
- To apply changes, run the rebuild command:
sudo nixos-rebuild switch --flake .#hydenix - Use
nix flake checkto verify that the configuration compiles without errors before rebuilding. - For development, follow the Manus workflow as described in
AGENTS.orgfor complex tasks.
- Use Nushell (nu) for scripting.
- Follow the Manus workflow for complex tasks: Create
task_plan.md,notes.md, and deliverable files in amanus/task/subfolder. - Prefer editing Home Manager configurations or files in
modules/when modifying settings. - Update
flake.nixif new inputs are required. - Follow Nix language best practices.
- Comment thoroughly on additions.
- Log mistakes and corrections in comments.
- Use log files for debugging instead of terminal output.
- Comment out lines instead of deleting them, noting the reason.
- Use
nix flake checkto ensure compilation.
- If issues arise, refer to
troubleshooting.mdfor logging complex troubleshooting steps. - For external drive issues, you may need to adjust permissions, e.g.,
sudo chown -R hydenix:users /mnt/arik_s_disk/SteamLibrary/steamapps/compatdata. - Dota 2 audio issues can be fixed with launch option
-sdlaudiodriver pulse.
Contributions are welcome. Please follow the development guidelines and use the Manus workflow for significant changes.
This project is open-source. Please check the repository for license details if applicable.