Skip to content

KiaraGrouwstra/cfg

Repository files navigation

kiara's nix config

Gitea Last Commit GitHub commit activity Gitea Issues

This is my setup for NixOS.

Screenshot screenshot showing niri with neofetch and yazi in wezterm. screenshot showing niri with neofetch and yazi in wezterm. thefuck plugin for zsh filled the JIT-install command for the missing app neofetch.

usage

prerequisites

  • install NixOS
  • enable flakes
  • update ./hosts/<PROFILE>/hardware-configuration.nix
  • get a user password by either:
    • setting one in ./hosts/<PROFILE>/configuration.nix
    • decoding secrets by adding the age keys file to /etc/nixos/keys.txt

commands

$ just -l
Available recipes:
    age       # Check when inputs were last updated
    clean     # Remove all generations older than 7 days
    decode    # Decode secrets
    encode    # Encode secrets
    fmt       # Format code
    gc        # Garbage collect all unused nix store entries
    repl      # Open a Nix REPL - run manually to load flake: `:lf .`
    switch    # Rebuild the system
    test      # Run tests
    up        # Update all inputs
    upp input # Update specific input. Usage: just upp nixpkgs

... or if just isn't available yet:

nix run nixpkgs#just -- -l

features

fixes for flake

the flake.locked nixpkgs is used for:

  • nix commands
  • 'command not found' errors

used software

Component Software
Compositor Niri
Bar Waybar
Notifications Swaynotificationcenter
Menu Anyrun
Web browser Firefox
File browser Yazi
Terminal Wezterm
Text editor VSCodium
Editor (shell) Neovim
Shell Zsh
Fuzzy finder Fzf
Pager Gum

style

package types

command drop-ins

command drop-in improvements
cd n/a (can skip it in Zsh)
cd z remembers visited locations
cd cd (enhancd) interactive directory picker using cd, cd . or cd ..
ls eza (aliased to ls) friendlier output and interface
cat bat syntax highlighting
less less (lesspipe) syntax highlighting
find fd faster, friendlier interface, respects .gitignore
grep rg friendlier interface
make just show comments, friendlier file format
ssh xxh use your favorite shell

keybinds

Used keyboard layout: en-us with Caps Lock remapped to Esc.

mouse

touchpad

niri supports three-finger swipes between:

  • windows (left/right)
  • workspaces (up/down)

bottom bar

module left-click right-click scroll
media player toggle play/pause skip ahead previous/next
clock - toggle month/year in calendar pop-up previous/next in calendar pop-up
volume toggle mute Pulse Audio Volume Control change volume
memory manage processes with Gnome System Monitor manage processes with btop -
CPU open monitoring tool zfxtop manage processes with btop -
battery run battery viewer powersupply - -
storage garbage-collect nix show big files/folders using dust -
network manage network by networkmanager_dmenu manage network by nmtui -
systray (application-specific) open application context menu -

what goes where

what where
system configuration ./hosts/
home-manager configuration ./home-manager/
binaries and command wrappers ./home-manager/kiara/commands/
reusable modules ./modules/
custom functions ./lib/
custom packages ./pkgs/*.nix (from flake inputs: ./pkgs/default.nix)
overlays ./overlays/*.nix (from flake inputs: ./flake.nix)
LSP (vscodium / coc.nvim) ./home-manager/kiara/features/development/
shell scripts ./home-manager/kiara/scripts/*.sh
dotfiles ./home-manager/kiara/dotfiles/ + ./home-manager/kiara/dotfiles.nix
custom desktop entries ./home-manager/kiara/desktop.nix
MIME types ./home-manager/kiara/mime.nix
file templates ./home-manager/kiara/dotfiles/Templates/
keybinds ./home-manager/kiara/niri.nix