1
3
Fork
You've already forked dotfiles
0
  • Nix 86%
  • Lua 12.6%
  • Shell 0.7%
  • Just 0.7%
2026年01月13日 12:32:01 +01:00
docs chore(flake.lock): update all 2025年11月14日 20:01:57 +01:00
examples/nix-direnv Nix(home-manager): Migrate from chezmoi 2024年04月27日 23:25:29 +02:00
hosts chore(hosts/ori): update comments 2026年01月13日 12:32:01 +01:00
internal feat(nixCats): nvim-treesitter migration 2026年01月13日 12:20:39 +01:00
modules refactor(nixos/desktop): split module files & xserver removal 2026年01月13日 12:31:01 +01:00
nixCats feat(nixCats): nvim-treesitter migration 2026年01月13日 12:20:39 +01:00
overlays chore(flake.lock): update all 2025年05月25日 16:57:18 +02:00
packages chore(packages): update gardenctl & gardenlogin 2025年12月22日 11:23:02 +01:00
secrets feat(hosts/ori): add rclone paperless webdav consume mount 2025年10月27日 19:34:53 +01:00
.envrc feat(flake): switch from treefmt and custom githook to git-hooks.nix (pre-commit.com) 2025年01月30日 20:54:51 +01:00
.gitignore feat(repo): ignore .worktree directory 2026年01月05日 19:10:05 +01:00
.nvim.lua feat(repo): add .nvim.lua with custom nixd option expressions 2025年12月19日 17:16:57 +01:00
configurations.nix fix(flake): add flake-parts.follows for agenix-rekey with module import workaround 2026年01月10日 19:35:30 +01:00
flake.lock feat(nixCats): nvim-treesitter migration 2026年01月13日 12:20:39 +01:00
flake.nix fix(flake): add flake-parts.follows for agenix-rekey with module import workaround 2026年01月10日 19:35:30 +01:00
justfile feat(repo): add default just recipe 2026年01月13日 12:30:28 +01:00
lib.nix feat(flake): rename some variables and change some parameters 2025年04月04日 22:56:42 +02:00
modules.nix fix(modules): include niri home-manager module at correct location 2025年12月09日 20:10:52 +01:00
README.md feat(docs): move stuff out of README 2025年02月10日 20:48:09 +01:00
TODO.md feat(modules): add menu.apps.syncthing module for home-manager and add managedBy option to nixos module 2026年01月04日 17:46:16 +01:00

My Dotfiles

Repository Structure

The structure is strongly inspired by Jake Hamilton's Snowfall Lib.

.
├── hosts
├── modules
├── overlays
└── packages

Hosts

  • One directory per host
  • Containing
    • configuration.nix & hardware-configuration.nix
    • home.nix (or home-name.nix for multi-user hosts)
  • Hosts need to be explicitly referenced in flake.nix

Modules

To simplify managing of modules, I copied & adapted parts of Snowfall Lib (implementation: lib.nix).

outputs.nixosModules & outputs.homeManagerModules are created using the custom module.create-modules function.

Most modules exposed by this flake aren't meant to be used by others, as they often contain rather specific configurations.
Modules named public/* expose enough options and provide reasonable defaults, which makes them a better candidate to include. Some of them will probably even be contributed upstream.

  • One directory per module
  • default.nix is a modules "entry point"
  • Can be nested based on "category"
  • Path to default.nix will be the module name (e.g., hardware/nvidia is accessible with outputs.nixosModules.hardware/nvidia)

menu Options

Note: doesn't apply to public/* modules.

The config.menu options attribute set is the main interface to interact with my custom modules.

menu is defined globally and imported into all nixosConfigurations & homeManagerConfigurations.
All implementations, except settings.allowUnfreePackages, are specific to NixOS or Home Manager and therefore implemented in modules/{nixos|home-manager}.

menu
├── settings
│ ├── allowUnfreePackages (both)
│ └── ...
├── profiles
│ ├── private (both)
│ ├── work (both)
│ ├── gaming (both)
│ └── ...
├── apps
│ ├── firefox (hm)
│ ├── syncthing (nixos)
│ └── ...
├── desktop
│ ├── enable (nixos)
│ ├── gnome (both)
│ └── ...
└── hardware
 ├── nvidia (nixos)
 └── ...

Overlays

Some custom overlays I use with all of my hosts.

Packages

Some custom packages, that I needed at some point. Maybe some of them will be contributed upstream.

Please keep in mind that most packages were probably only successfully built on x86_64-linux or aarch64-darwin.

I have no checks in place to ensure that the packages are up-to-date!

Documentation

More docs can be found in the docs directory.