Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

216 Commits

Folders and files

Repository files navigation

NixOS Config

A modular NixOS configuration based on Géza Ahsendorf's setup.

Screenshots

Catppuccin Gruvbox
Catppuccin Gruvbox

Stack

Category Tool
Window Manager Niri (Wayland tiling compositor)
Terminal Kitty
Multiplexer Zellij
Editor Helix
Shell Fish
Status Bar Waybar
App Launcher Walker
Greeter Noctalia + greetd

Quickstart

1. Add to flake.nix

configuration-name = {
  username = "username";
  hashedPassword = "hashedPassword"; # mkpasswd

  # userDescription = "Your Name";
  # hostname = "hostname";
};

2. Create hosts/configuration-name/default.nix

{ config, pkgs, username, ... }:
{
  imports = [
    ./hardware-configuration.nix
    # ./config.nix  # optional overrides
  ];

  users.users.${username}.packages = with pkgs; [
    # host-specific packages
  ];
}

3. Copy hardware config

cp /etc/nixos/hardware-configuration.nix hosts/configuration-name/
sudo nixos-rebuild switch --flake .#configuration-name

Requires nix.settings.experimental-features = [ "nix-command" "flakes" ].

4. Options

Module options are documented in options.md. To use them, create hosts/configuration-name/config.nix:

{ username, ... }:
{
  # modules.desktop.enable = true;
}

Structure

.
├── flake.nix          # inputs and host definitions
├── lib/               # flake helpers
├── hosts/             # per-device config + hardware-configuration.nix
├── modules/
│   ├── core/          # base system utilities
│   ├── desktop/       # niri, gtk, fonts, portals
│   ├── programs/      # helix, kitty, zellij, btop, ...
│   └── services/      # audio, waybar, greetd, printing, ...
├── pkgs/              # themes and wallpapers
└── secrets.yaml       # sops-encrypted secrets

Keybindings

Niri (Super + ...)

Key Action
P Open browser
E Open terminal
H/J/K/L Navigate windows/workspaces
Ctrl + H/J/K/L Move windows between workspaces
R Resize window
[ / ] Stack windows

Full bindings in modules/desktop/niri/niri.nix.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages