My NixOS, Home Manager and Nixvim configurations
  • Nix 99.6%
  • Twig 0.4%
Find a file
Oliver Davies 13e7b92f1e
Some checks failed
/ check (push) Failing after 8s
Change vim-tmux-navigator to use Alt instead of Ctrl
Disable default Ctrl+h/j/k/l mappings and add custom Alt+h/j/k/l keybindings for pane navigation.
2026-07-06 16:13:55 +01:00
.forgejo/workflows Rename check workflow and add manual dispatch trigger 2026-07-06 07:15:59 +01:00
modules Change vim-tmux-navigator to use Alt instead of Ctrl 2026-07-06 16:13:55 +01:00
secrets Add Cloudflare Tunnel to home01 2026-07-02 17:50:04 +01:00
.gitignore Generate .gitignore programmatically 2026-04-16 08:44:56 +01:00
AGENTS.md Add note about conventional commits to AGENTS.md 2026-07-06 07:06:04 +01:00
flake.lock Convert tmux-open-session to nushell with proper dependencies 2026-07-04 22:45:22 +01:00
flake.nix Convert tmux-open-session to nushell with proper dependencies 2026-07-04 22:45:22 +01:00
README.md Update README.md 2026-07-01 09:11:32 +01:00
secrets.nix Add Cloudflare Tunnel to home01 2026-07-02 17:50:04 +01:00

infra

Originally my dotfiles repository, this repository contains my NixOS and Home Manager-based configurations for my personal laptops and home servers.

Hosts

Hostname Description Manufacturer Model Role Desktop/window manager Notes
home01 My homelab/home server Lenovo ThinkCentre M710q Server None Private services - e.g. Jellyfin, Immich, etc
home02 My homelab/home server Lenovo ThinkCentre M710q Server None Public services - i.e. public websites, Forgejo
t480 My personal laptop Lenovo ThinkPad T480 Laptop i3
t490 My son's laptop Lenovo ThinkPad T490 Laptop Cinnamon

The Dendritic Pattern

This repository follows the dendritic pattern.

Nixvim (Neovim) Configuration

A modular Nixvim configuration under modules/opdavies/editor/ and related directories.

Plugins

Category Plugins
Editing mini.ai, mini.bracketed, mini.move, mini.operators, mini.splitjoin, mini.surround
Text objects vim-textobj-entire, vim-textobj-indent, vim-textobj-line, vim-textobj-user, vim-textobj-xmlattr
Completion nvim-cmp (LSP, buffer, path sources)
Fuzzy finding telescope.nvim with web-devicons
Syntax treesitter (highlight, indent, folding)
LSP Built-in client, lsp-format (auto-format on save)
Formatting none-ls (phpcbf, php-cs-fixer, prettier, nix-flake-fmt), lsp-format
Git gitsigns.nvim, vim-fugitive
Testing vim-test
Databases vim-dadbod (core, completion, UI)
Other rest.nvim (HTTP client)

Language Support

  • CSScssls, css_variables, tailwindcss LSP
  • JSONjsonls LSP
  • Nixnixd LSP, nix-flake-fmt
  • Nushellnushell LSP
  • PHP — Phpactor LSP, PHPCS/PhpStan diagnostics, PHPCBF/PHP-CS-Fixer formatting
  • TypeScript/JavaScriptts_ls LSP, ESLint, Prettier formatting

Keymaps

Mode Prefix Purpose
Normal <leader>g Git (fugitive status/commit, gitsigns hunks)
Normal <leader>l LSP actions (definition, rename, code action, hover, etc.)
Normal <leader>p Phpactor (context menu, new class)
Normal <leader>r REST client, database queries
Normal <leader>rt Test runner (file, nearest, last)
Normal <leader>s Telescope pickers (files, grep, buffers, LSP, diagnostics, etc.)
Normal <space>f / <leader>tf Format buffer / toggle auto-format

Options

Spaces over tabs (2-char), relative line numbers, global statusline, ripgrep for grepping, smartcase search, no swapfile, hidden characters concealed, signcolumn always on, British English spelling.

Homelab

Two Lenovo ThinkCentre M710q servers running NixOS.

home01 — Media & Home Automation

Private services at *.opdavies.uk, exposed directly via Nginx (ports 80/443).

Service Purpose
Audiobookshelf Audiobooks & podcasts
FreshRSS RSS reader
Home Assistant Smart home automation (Elgato, Hive, LG webOS, TP-Link, Wiz)
Immich Photo management
Jellyfin Media streaming
Paperless-ngx Document management
Uptime Kuma Uptime monitoring

Encrypted LUKS volumes (/mnt/media + /mnt/media_backup) with nightly rsync backup.

home02 — Web & Git Hosting

Public services at *.oliverdavies.uk, exposed via Cloudflare Tunnel (no open inbound ports).

Service Purpose
Caddy Reverse proxy for 15+ static websites
Forgejo Self-hosted Git hosting with Gitea Actions runner
Nextcloud Cloud storage & file sync
PeerTube Video hosting
cloudflared Cloudflare Tunnel daemon

Static sites include oliverdavies.uk, ponthirtaekwondo.co.uk, and various demo/tutorial sites.

Generated files

The following files in this repository are generated and checked using the files flake-parts module:

  • .gitignore
  • README.md