Skip to content

arvedbloecker/nixos-config

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

216 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages