Watch
1
Fork
You've already forked satellite
0
Personal nixos / home-manager configurations
  • Nix 82%
  • Lua 10.9%
  • Vim Script 2.9%
  • Python 2.6%
  • Just 1.2%
  • Other 0.4%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-09-19 19:45:07 +02:00
common sway & river 2026-09-16 00:54:06 +02:00
devshells Move more things out of the neovim config (to be added to shells) 2026-09-01 23:27:41 +02:00
dns Document the removal of cloudflare tunnels 2026-09-11 17:36:33 +02:00
docs Remove the mullvad module 2026-09-11 17:28:56 +02:00
home Clean up git rewriting & add codeberg rule 2026-09-19 19:45:07 +02:00
hosts/nixos Remove sway 2026-09-19 18:04:02 +02:00
infinite-impermanence lapetus upgrade 2026-09-16 18:01:21 +02:00
migadux Stuff? (I honestly don't remember what I did) 2026-09-08 03:48:03 +02:00
modules sway & river 2026-09-16 00:54:06 +02:00
overlays Improve docs 2023-12-12 14:38:20 +01:00
pkgs Move more things out of the neovim config (to be added to shells) 2026-09-01 23:27:41 +02:00
.envrc Convert most scripts to a justfile 2025-05-30 20:32:56 +02:00
.gitignore Add a devshell for managing the satellite 2025-05-30 03:46:58 +02:00
.mailmap Add a mailmap 2026-02-22 16:26:23 +01:00
.sops.yaml Update tethys 2026-04-25 16:17:18 +02:00
flake.lock Bump rhine 2026-09-19 18:03:13 +02:00
flake.nix Bump rhine 2026-09-19 18:03:13 +02:00
justfile lapetus upgrade 2026-09-16 18:01:21 +02:00
README.md Remove swayosd 2026-09-17 02:14:48 +02:00
stylua.toml Rosepine theme! 2023-01-22 01:22:38 +01:00

Welcome to the Satellite

Note: a lot of the info in this README might be a bit outdated. I plan to document things on my website once I finish rebuilding it.

In case you are not familiar with nix/nixos, this is a collection of configuration files which build all my systems in a declarative manner. The tool used to configure the global system is called nixos, and the one used to configure the individual users is called home-manager.

A visual history of my setup is in the works!

Woah, I can't believe this repo made it to 1000 commits :O

Features this repository includes:

  • Sets up all the apps I use — including git, neovim, fish, starship, hyprland, anyrun, discord, Zathura, foot & much more.
  • Sets up my entire homelab — including zfs-based impermanence, automatic let's-encrypt certificates, wireguard, syncthing, vaultwarden, pounce, calico, actual & more.
  • Consistent base16 theming using stylix
  • Declarative secret management using sops-nix

The current state of this repo is a refactor of my old, messy nixos config, based on the structure of this template.

Hosts

This repo's structure is based on separating configuration into individual hosts - different machines configured by me. Each host is named after things in space/mythology (they are the same picture). The hosts I have right now are:

  • calypso — my personal laptop
  • tethys — my previous personal laptop
  • lapetus — older laptop running as a server

The following hosts are not configured using nix, but might be referenced in places:

  • chaldene — my current phone
  • enceladus — my previous phone
  • erriapus — my tablet
  • euporie — VM used for testing

File structure

Location Description
common Configuration loaded on both nixos and home-manager
devshells Nix shells
dns Directory for parts of my octodns nix-based wrapper
docs Additional documentation regarding my setup
home Home manager configurations
hosts/nixos Nixos configurations
modules Custom generic/nixos/home-manager modules
overlays Nix overlays
pkgs Nix packages
flake.nix Nix flake entrypoint!
scripts Bash scripts that come in handy when on a live cd
.sops.yaml Sops entrypoint
stylua.toml Lua formatter config for the repo

Points of interest

Here's some things you might want to check out:

Things I use

This does not include links to every plugin I use for every program here. You can see more details in the respective configurations.

Fundamentals

  • Nixos — nix based operating system
  • Home-manager — manage user configuration using nix
  • Sops-nix — secret management
  • disko — format disks using nix
  • zfs — filesystem (on my server)
  • btrfs — filesystem (on my laptop)

Input handling

  • kanata — software-level keyboard layout customizer. One of the few such programs with support for chording
  • opentabletdriver

Graphical

Terminal

There are many clis I use which I did not include here, for the sake of brevity.

Services

Most services are served over wireguard, using certificates generated by let's encrypt.

Hall of fame

This section contains links to things which used to be in the previous section but are not used anymore. This section was created in June 2023, hence stuff I dropped earlier might not be here. Moreover, this list is sorted with the most recently dropped things at the top, as a sort of reverse-timeline.

  • swayosd kind of stopped working at some point, and I was too lazy to investigate further.
  • Prometheus — I dropped this once I dropped grafana.
  • Grafana — was too complicated for my needs, so I dropped it the moment breaking changes were introduced.
  • done — doesn't work with River.
  • fzf — I switched to fzy.
  • Spotify — I switched to a local-first music setup a few months back.
  • Spicetify — I no longer use Spotify.
  • Spicetify-nix — I no longer use Spicetify.
  • Neofetch is no longer maintained; switched to nerdfetch.
  • WasIstLos is no longer maintained.
  • neovim-nightly-overlay — I haven't used the nightly version in a long while.
  • darkmatter-grub-theme — I no longer care about Grub theming.
  • impermanence removed a feature I relied upon, so I rewrote the module for personal use.
  • neoconf.nvim one can use :h exrc.
  • neodev.nvim — one can do without this.
  • quicker.nvim — I rarely reached for this.
  • ftFT.nvim — one can do without this.
  • vim-wakatime — see below.
  • Wakatime — I hadn't used this in years, but forgot to remove it.
  • Beets VGMdb — this plugin hardly worked in practice.
  • Cloudflare tunnels — Cloudflare sucks. I switched to simply port forwarding on my router.
  • 5d diplomacy — I never had anyone to play this with.
  • Tailscale — I switched to Wireguard.
  • Whoogle — Google killed this project long ago.
  • Homer — I almost never went to this page. I plan to make my own similar page as part of my website.
  • Obsidian — I switched to my own markup language.
  • Smos — Too complicated for my taste (I switched to simple text files)
  • gitlinker — I very rarely needed this
  • crates.nvim — Cool plugin, but I was rarely using its functionality
  • idris2-nvim — I haven't used Idris in a good while
  • lean.nvim — I haven't used Lean in a good while
  • github-actions-yaml.vim — A yaml schema language server should do
  • nvim-dap — I never got this working properly anyways. I use Seer instead.
  • vim-djot — not sure why I had this in, there's an official plugin + an unofficial treesitter grammar
  • Purescript-vim — The treesitter grammar should hopefully be enough
  • Neotest — I was hardly ever using this
  • Navigator.nvim — I no longer use tmux, nor Wezterm, hence this was a bit useless
  • microbin — Was fairly clunky, thus I switched to picoshare
  • sponge — I kept losing commands I wanted to keep in my history
  • hyprland-vim-syntax — Neovim supports hyprlang files out of the box now
  • typst.vim — Neovim supports typst files out of the box now
  • ncdu — A neat project I used on a regular basis. Ended up switching to dua (in interactive mode)
  • peek — Doesn't seem to work on Wayland + GIFs are not a very efficient format
  • bc — I was rarely using this
  • lovely-forks — I was rarely using this
  • Octotree — GitHub supports this natively now
  • Tmux — I now simply use multiple WM windows / no longer persist sessions
  • Intray — The server is no longer open source
  • Guacamole — I had little reason to keep this around on top of tailscale
  • htop — I switched to bottom, as the interface felt way cleaner
  • Wezterm — I switched to Foot, as wezterm was laggy, unstable, and kept breaking between releases
  • Ranger — I switched to Yazi
  • firenvim - the concept is cool, but I found the whole thing pretty annoying at times
  • venn.nvim — the concept is cool, but I would use it about once a year
  • hydra.nvim — I was rarely using it, and it was taking up precious config space
  • winbar.nvim — I mostly had this here for the looks, so I moved the path it provided to my statusbar
  • treesitter-visual-context.nvim — felt like this was cluttering my screen more than anything
  • Paperplanes.nvim — replaced by a single curl call
  • Eww - experimented with eww for a bit, but setup was painful and bars are a bit useless
  • Neogit — was a bit slow / clunky, so I switched to lazygit
  • Slambda — custom keyboard chording utility. I retired the project in favour of kanata
  • GPG + pass — I switched to vaultwarden
  • Agenix & homeage — I switched to sops-nix
  • Mind.nvim — self management tree editor. The project got archived, so I switched to Smos.
  • Null-ls — general purpose neovim LSP. The project got archived, so I switched to formatter.nvim.
  • Wofi — program launcher. I switched to Anyrun.
  • Alacritty — terminal emulator. I switched to Wezterm.
  • Xmonad — xorg window manager. I switched to Hyprland.
  • Chrome — web browser. I switched to firefox because it offers a better HM module.