This flake exposes my configuration as a NixOS Module.
It provides a full system with sane default options.
A minimal example in a flake.nix
{
inputs = {
nixpkgs = {
url = "github:NixOS/nixpkgs/nixos-unstable";
};
flake-utils = {
url = "github:numtide/flake-utils";
};
nixos = {
url = "github:clemenscodes/nixos";
inputs = {
nixpkgs = {
follows = "nixpkgs";
};
};
};
};
outputs = inputs:
inputs.flake-utils.lib.eachDefaultSystem (
system: let
inherit (inputs) nixpkgs;
inherit (nixpkgs) lib;
pkgs = import nixpkgs {
inherit system;
overlays = [inputs.nixos.overlays.${system}.default]
};
in {
nixosConfigurations = {
nixos = lib.nixosSystem {
specialArgs = {inherit inputs nixpkgs system pkgs;};
modules = [
./configuration.nix
./hardware-configuration.nix
inputs.nixos.nixosModules.${system}.default
];
};
};
}
);
}
- Kernel:
latest
- Terminal:
kitty
- Shell:
zsh
- Prompt:
starship
- Email Client:
neomutt
- Text Editor:
nvim
- Display Server:
wayland
- Display Manager:
sddm
- Compositor:
hyprland
- App Launcher:
rofi
- Status Bar:
waybar
- File Browser:
lf
- Browser:
firefox
- PDF Viewer:
zathura
- Notification Center:
swaynotificationcenter
- Music Player:
mpd
- Music Player Frontend:
ncmpcpp
- Video Player:
mpv
- Bootloader:
grub
- Process Manager:
btop
- Password Manager:
bitwarden
- Font:
iosevka
- Wallpaper Engine:
swww
- Powermenu:
wlogout
- Theme:
Catppuccin Macchiato Blue
Work in progress...
Currently all custom options are namespaced under the modules
option.
Options are defined according to the directory structure.
To tweak options, take a look at the modules
Feel free to reach out if you have any questions.