Skip to content

NixOS and Home-Manager configs for my devices. dotfiles, but way better

Notifications You must be signed in to change notification settings

colemickens/nixcfg

Repository files navigation

nixcfg

Nix rules everything around me

Overview

  • nix configuration for my laptops, desktops, sbcs, phones, and cloud servers
  • nix flake-powered
  • guaranteed to be reproducible
  • immutable full system configuration (dotfiles, but on steroids)

notes

  • some commits may have empty commit messages, this is from me attempting to use and learn jj.

Components

  • home-manager for user-based app/desktop configuration
  • sops-nix for secrets (encrypted at rest, per-host encryption)
  • terranix for cloud server creation/deletion automation
  • custom commands for easy gpg-over-ssh usage (pkgs/commands.nix)

Repo Layout

(this sometimes drifts, but should be roughly accurate as of April 2023)

  • cloud
    • automation and configuration for cloud servers
    • powered by terranix
  • docs
    • notes to self
    • who knows what "great" ideas and tidbits it contains
  • hosts
  • misc/
    • misc scripts
    • buyer beware
  • mixins/
    • individual application configuration (mostly via home-manager)
    • mix of home-manager and nixos configuration
    • (libvirt, prs/gopass, git, gnupg, spotifyd, tailscale, wezterm, etc)
  • pkgs/
    • my own "packages"
    • custom shell commands (gpg+ssh wrapper, etc)
    • tip-of-tree package overrides for:
      • git-repo-manager
      • nushell
      • rio
      • wezterm
  • profiles/
    • bits that compose machine "personas"
    • core.nix - core bits, see also mixins/common.nix
    • interactive.nix - headless systems
    • gui.nix - baseline for GUI systems
    • gui-wayland.nix - common tools for wayland/wlroots compositors
    • gui-sway.nix - the start of my sway GUI configuration
    • addon-dev.nix - pull devtool's shell deps into system
    • addon-laptop.nix - common laptop bits, power management, etc
    • addon-asus.nix - extras for my ASUS laptop
    • user-cole.nix - my base cole user configuration
  • secrets/
    • scripts to manage sops for sops-nix
    • sops-nix is great...
    • but sops is questionable-code-quality near-abandonware
  • shells/
    • nix shells for various scenarios
      • _minimal.nix - minimal shell base
      • ci.nix - tools needed to drive CI for this repo
      • devenv.nix - complete set of tools for Go/Rust/Nix development
      • uutils.nix - experimentation with rust-based coreutils
  • main.nu
    • a homegrown nushell (❤️) script for managing this repo
    • updates/rebases my flake inputs
    • updates/rebases my custom packages to tip-of-branch
    • updates the lock file
    • handles remote building and caching (without using nix's "remote builders")

Other Interesting Nix Repos