Skip to content

Dotfiles powered by Nix™ (plus package overlay)

License

Notifications You must be signed in to change notification settings

Weathercold/nixfiles

Repository files navigation

Abszero

NUR Badge Cachix Badge GitHub commit activity Update Hash status Build Packages status

Dotfiles powered by Nix™, plus a package overlay and a library of utility functions.

Highlights

Repository Structure

I try to make the repo structure as close to that of nixpkgs as possible, differing from it only when it makes sense.

Each part of this repo (home, lib, nixos, pkgs) has a subflake that can be used as flake input by specifying a directory like this: github:Weathercold/nixfiles?dir=home

nixfiles/
├ home/                                     home configurations
│ ├ configurations/                         top-level home configurations
│ │ ├ weathercold/                          my configurations
│ │ ├ custom.nix                            example configuration
│ │ └ _options.nix                          configuration abstraction
│ └ modules/                                home modules
│   ├ profiles/                             top-level home modules**
│   ├ accounts/, programs/, services/, ...
│   └ themes/                               **
├ nixos/                                    nixos configurations
│ ├ configurations/                         top-level nixos configurations
│ │ ├ nixos-inspiron.nix, ...               my configurations
│ │ └ _options.nix                          configuration abstraction
│ └ modules/                                nixos modules
│   ├ profiles/                             top-level nixos modules**
│   ├ config/, i18n/, programs/, ...
│   └ hardware/, themes/                    **
├ pkgs/                                     package repository (by-name)
└ lib/                                      library of shared expressions
  ├ modules/                                shared modules
  └ src/                                    shared functions

**: external modules exposed with self.nixosModules and self.homeModules. They are effective on import by default, but can be disabled with config.abszero.enableExternalModulesByDefault.

Import Graph

nixfiles/flake.nix
├ home/flake-module.nix
│ ├ configurations/custom.nix, ...
│ └ configurations/weathercold/nixos-inspiron.nix
│   ├ ../_options.nix
│   └ _base.nix
│     └ ../../modules/profiles/full.nix
│       └ base.nix
│         └ ../accounts/*, ../programs/*, ../services/*, ...
├ lib/default.nix
│ └ src/*
├ nixos/flake-module.nix
│ └ configurations/nixos-inspiron.nix
│   ├ _options.nix
│   ├ ../modules/hardware/dell-inspiron-7405.nix
│   └ ../modules/profiles/full.nix
│     ├ ../hardware/halo65.nix, ...
│     └ base.nix
│       └ ../config/*, ../i18n/*, ../programs/*, ...
└ pkgs/flake-module.nix
  └ default.nix
    └ aa/*, ab/*, ...