Skip to content

Repository files navigation

dotfiles // netrunner loadout

A cyberpunk/netrunner themed, keyboard-driven environment managed with chezmoi. One source tree renders per-machine configs for four targets:

  • CachyOS Linux — Hyprland desktop
  • macOS — CLI stack + GUI apps via Homebrew
  • Android — Termux
  • Parrot OS (HTB edition) — lean CLI stack on a Debian VM

✨ Highlights

  • Unified cyberpunk palette — the same hardcoded color scheme is carried across the shell prompt, Git, and every TUI. The canonical reference lives in color_palettes/cyberpunk/palette.html.
  • Hyprland desktop — configured in Lua, driven by Noctalia (a native Wayland desktop shell that provides the bar, launcher, control center, notifications, lock screen, wallpaper, and screenshot toolkit).
  • Fish shell with a custom cyberpunk prompt and per-OS branching.
  • Helix + language servers for LSP-powered editing.
  • Cross-platform templating — a single repo that renders correctly on Arch and Debian Linux, macOS, and Termux from .chezmoi.os / .chezmoi.osRelease.id.

⚡ Installation

Note: These are my personal dotfiles. You'll need to update user-specific information in configs like Git (name/email), backup remotes, paths, and any API keys or tokens.

Prerequisites

  • git
  • chezmoi
  • SSH keys configured with GitHub (for forking)

Fork and use with chezmoi

  1. Fork this repository to your GitHub account
  2. Install git and chezmoi
  3. Generate an SSH key: ssh-keygen -t ed25519 -C "your_email@example.com"
  4. Add the SSH key to GitHub
  5. Run chezmoi init <YOUR_USERNAME> --ssh
  6. Run chezmoi apply
  7. Customize configs to your preferences

On first apply, the OS-specific install script (.chezmoiscripts/run_onchange_*install-packages-<os>.sh.tmpl) installs the matching toolchain for your platform.

⌨️ Managing configurations

Task Command
Initialize & apply (SSH) chezmoi init <GITHUB_REPO> --apply
Pull updates chezmoi update
Inspect changes chezmoi diff
Apply local changes chezmoi apply
Render one file chezmoi cat <FILE>
Edit a tracked file chezmoi edit <FILE>
Start tracking a file chezmoi add <FILE>
Jump to source repo chezmoi cd

🧰 Loadout

Desktop — Linux / CachyOS
Tool Key Files (chezmoi paths)
Hyprland dot_config/hypr
Noctalia -
cliphist -

Hyprland is configured in Lua — hyprland.lua loads the modules under dot_config/hypr/config/*.lua (binds, animations, window rules, monitors, workspaces, autostart, …). Default apps: kitty, dolphin, zen-browser, helix, gnome-calculator.

Noctalia's own config (~/.config/noctalia/config.toml) is not tracked here — it's managed through the shell's settings UI. hyprland.lua ends with require("noctalia").apply_theme() so the generated palette reaches Hyprland; leave that line in place.

Parrot OS (HTB edition)

A deliberately lean target: shell, editor, git, core CLI, and the Go/Rust/gh toolchains — no desktop, and none of the TUI apps that need a personal account or secret to be useful.

Tool Key Files (chezmoi paths)
fish dot_config/fish
Helix dot_config/helix
bat dot_config/bat
eza dot_config/eza
fastfetch dot_config/fastfetch

Debian renames several binaries: batbatcat, fd-findfdfind, and helixhx. dot_config/fish/conf.d/modern-cli.fish aliases around all three for interactive use, while $EDITOR and git core.editor are templated to the real hx binary — an alias is a fish function and can't serve either.

gh is not in the Debian archive, so .chezmoiscripts/run_onchange_before_install-packages-parrot.sh.tmpl adds GitHub's own apt source. That script also switches the login shell to fish, since Parrot ships zsh.

Configs for tools outside this set (crush, glow, golazo, newsboat, outside, oxicord, superfile, linear-tui) are gated off in .chezmoiignore.

Shell & Terminal
Tool Key Files (chezmoi paths)
fish dot_config/fish
kitty dot_config/kitty

Termux ships its own terminal config under dot_termux.

Editor & Language Servers
Tool Key Files (chezmoi paths)
Helix dot_config/helix
bash-language-server -
lua-language-server -
marksman -
taplo -
typos-lsp -
vscode-langservers -
yaml-language-server -
Files, Viewers & Monitoring
Tool Key Files (chezmoi paths)
Superfile dot_config/private_superfile
eza dot_config/eza
fd -
entr -
bat dot_config/bat
glow dot_config/private_glow
tldr -
btop dot_config/btop
fastfetch dot_config/fastfetch
Git & Dev
Tool Key Files (chezmoi paths)
Git dot_gitconfig.tmpl, dot_gitignore
git-delta -
gh - (macOS)
pre-commit -
markdownlint-cli2 -
GoReleaser -
vhs -
hugo - (macOS)
Crush dot_config/crush
Go Toolchain
Tool Key Files (chezmoi paths)
go / gopls -
delve -
golangci-lint -
golangci-lint-langserver -
goimports -
gocovsh -
go-global-update -
cobra-cli -
ghost -
Rust Tools
Tool Key Files (chezmoi paths)
rustup -
cargo-update -
outside dot_config/outside
Notes, News & Productivity
Tool Key Files (chezmoi paths)
clin dot_config/clin
Toney dot_config/toney (Android)
linear-tui dot_linear-tui
golazo dot_config/golazo
newsboat dot_config/newsboat
Communication
Tool Key Files (chezmoi paths)
oxicord dot_config/oxicord
matcha -
slack-desktop -
Utilities & System
Tool Key Files (chezmoi paths)
chezmoi -
Tailscale -
Bitwarden / bitwarden-cli -
Ollama -
speedtest-cli -
cmatrix -
Nerd Fonts -
qFlipper -
macOS GUI (Homebrew casks)
App Cask
Bitwarden bitwarden
Notion notion
Surfshark surfshark
UHK Agent uhk-agent
qFlipper qflipper
Hack Nerd Font font-hack-nerd-font

The full macOS package set lives in dot_Brewfile.

🎨 Color system

The whole environment shares one hardcoded cyberpunk palette. The canonical reference — backgrounds, text, accents, semantic, syntax, and terminal colors with hex values — is color_palettes/cyberpunk/palette.html.

The values are duplicated (not shared) across the Fish prompt (dot_config/fish/functions/fish_prompt.fish), the Git config (dot_gitconfig.tmpl), and the clin theme (dot_config/clin/themes). Change one, change all.

🪪 License

MIT

About

My dotfiles, configurations, and desktop theme.

Topics

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages