My Shadowrun inspired, keyboard-driven environment, managed with chezmoi. Dark backgrounds, neon accents, and a shared Cyberpunk palette across the desktop, terminal, editors, and TUIs.
The previous configuration is preserved in dotfiles-old.
- Hyprland + Noctalia — a Lua-configured desktop with a launcher, clipboard history, notifications, screenshots, and scratchpad terminals.
- Shared Cyberpunk palette — one color data file feeds application themes.
- Fish + Kitty — a custom prompt, Git shortcuts, and modern CLI tools.
- Mitos + Helix — modal editing with language server configuration.
- Machine-specific templates — a full CachyOS desktop and a focused Parrot CLI setup from the same source tree.
Mitos editing Go alongside test output and a Git diff rendered by delta.
Noctalia's launcher over the notes, feeds, mail, and Mastodon workspace.
| Target | Scope |
|---|---|
| CachyOS | Desktop and CLI configuration, plus package installation hooks |
| Parrot OS (HTB VM) | Selected CLI configuration; keeps the existing MATE session, application defaults, and Git signing |
| Termux (tranch-fold) | Selected app configuration and package installation |
CachyOS is the main desktop. Parrot's pwntranch host opts in to the applications
listed below; other Parrot hosts use their existing toolchain. Exclusions live in
.chezmoiignore.
These are personal dotfiles. Review the source before applying, especially Git identity and signing keys, monitor settings, application paths, and account configuration.
Start with Git, chezmoi, and SSH access to GitHub:
chezmoi init git@github.com:theantichris/dotfiles.git
chezmoi diff
chezmoi applyOn CachyOS, applying runs hooks that install missing packages through pacman,
Shelly (shelly install aur), Go, and Cargo. The setup expects the CachyOS
desktop tools and Shelly to be available already. Other hooks set Brave as the
default browser, Superfile as the folder opener, add Rust source support, and
rebuild bat's theme cache.
On tranchion, Mitos is a separate prerequisite; the package hook does not
install it. Download the Linux archive for the machine's architecture from
Mitos releases, extract it
under ~/.local/share/mitos/<release>/, and keep runtime/ beside ms.
Recreate ~/.local/bin/ms as a symlink to that executable and put
~/.local/bin on PATH. Verify ms --version and ms --health before using
the editor shortcuts. The current layout uses v0.1.3-x86_64-linux as the
release directory.
On other Parrot hosts, install the CLI tools, including Mitos (ms), separately
before applying. Templates account for Debian executable names such as batcat
and fdfind.
The pwntranch allowlist enables Kitty, Fish, Git, Mitos, and their supporting
configuration. The package hook installs Brave Origin from its official APT
repository and the APT dependencies listed in .chezmoidata/packages.yaml.
Fastfetch 2.70.0 and Mitos come from their official Debian packages.
Fastfetch uses the same color configuration as CachyOS. Mitos includes its runtime,
shell completions, and desktop entry. Node and npm are listed as APT dependencies;
global npm packages are intentionally unpinned. Before applying, ensure Node
meets the current tools' requirements: the
YAML server currently requires Node 22.13.0 or newer.
If Parrot still provides Node 20, upgrade Node first; the npm installation hook
checks engine compatibility. Externals provide the remaining language servers,
spelling files, and Hack Nerd Font Mono.
Use the restore commands above to initialize, review, and apply. If already
initialized, run chezmoi init after updating the source to regenerate its
configuration. The first apply requires sudo authentication. Git keeps the
shared identity and SSH signing configuration. Desktop settings and browser
profiles remain unmanaged. To make Fish your login shell after applying, run
chsh -s /usr/bin/fish.
With Git, chezmoi, and the SSH signing key available, use the restore commands
above. Applying sets up Git signing, Cyberpunk diffs, and Mitos as the editor,
with syntax grammars, language servers, and formatters.
Supporting tools install through pkg and npm.
The package lists install the Go and Rust toolchains, including Cargo,
Clippy, rustfmt, and Rust source support. They also install go-global-update
and cargo-update for managing tools installed through Go and Cargo.
The fish selection brings over the Cyberpunk prompt, CLI aliases, fuzzy
completion, and Go/Cargo executable paths. It selects Fish for new Termux
sessions; run exec fish to switch the current session after applying.
The update function upgrades Termux packages and installed npm, Go, and Cargo tools.
The hack-font selection installs Hack Nerd Font Mono and reloads Termux's
terminal settings after applying.
Enable more apps in .chezmoidata/termux.yaml.
Each app defines its target paths and scripts. Packages are listed by package
manager in .chezmoidata/packages.yaml: termux
for pkg, plus npm, go, and cargo. Termux installs those full lists
independently of the app selections. Add an app to termux.enabled, review
chezmoi diff, then apply. Mitos (ms) is the shared editor default for Fish,
chezmoi, and managed Git configuration.
The mitos selection builds Mitos 0.1.2 and its selected syntax grammars
natively on Termux, and installs the shared config, snippets, Cyberpunk theme,
spelling dictionaries, and YAML formatter. ms is the selected editor.
After syncing these changes, run chezmoi init to refresh chezmoi's editor
setting, apply, then run exec fish to refresh the current shell.
Git and chezmoi run ms from PATH. Fish selects it through EDITOR,
VISUAL, GIT_EDITOR, GIT_SEQUENCE_EDITOR, and GH_EDITOR.
Mitos's personal dictionaries and English ignored-word list link to the word lists in the chezmoi source checkout. To share accepted or ignored words, commit and push those lists, update the checkout on the other machine, and restart Mitos to reload them.
Fork this repository, initialize chezmoi with your fork's URL, and customize the source before applying. Start with:
- Git identity and signing.
- Package inventory.
- Monitor layout and default desktop apps.
- Editor and browser preferences.
- Noctalia settings and account-specific app configs.
Fish, chezmoi, and managed Git configuration select Mitos (ms) on PATH.
The hostname tranchion also selects ~/.local/bin/ms for the desktop editor
and file associations; restore that separate installation as described above.
Hyprland and UWSM retain Helix as their desktop default on other hosts.
The Fish helix alias supports the hx executable on Parrot and Termux; it
does not change the selected command-line editor.
These are the configured tools. The full installation inventory lives in
.chezmoidata/packages.yaml.
Desktop, shell, and files
| Tool | Role | Configuration |
|---|---|---|
| Hyprland | Window management and keyboard workflow | dot_config/hypr |
| Noctalia | Desktop shell and Cyberpunk palette | noctalia-settings.toml, palette |
| Fish | Shell, prompt, aliases, and updates | dot_config/fish |
| Kitty | Terminal | dot_config/kitty |
| Superfile | File manager, launched with spf |
dot_config/superfile |
| bat / eza | File previews and directory listings | bat, eza |
| Fastfetch | System information | dot_config/fastfetch |
Desktop defaults are Kitty, Superfile, Brave Origin, and GNOME Calculator's terminal interface (gcalccmd).
Hyprland loads individual Lua modules for bindings, monitors, animations,
window rules, and other settings.
Editing and development
| Tool | Role | Configuration |
|---|---|---|
| Mitos | Shared command-line editor; desktop editor on tranchion |
dot_config/mitos, English words, Gaelic words |
| Helix | Alternate editor; Hyprland/UWSM default outside tranchion |
dot_config/helix |
| Harper | Writing assistance and shared dictionary | dot_config/harper-ls, dictionary |
| Git + delta | Version control and themed diffs | dot_gitconfig.tmpl, dot_gitignore |
| Codex | Coding agent configuration and theme | dot_codex |
| Crush | Terminal coding agent configuration | dot_config/crush |
Language server settings live alongside the editor configurations. Packages
include Go, Rust, Bash, Lua, Markdown, TOML, JSON, and YAML tooling.
Mitos checks Markdown against English (en_US) and Scottish Gaelic (gd_GB).
The GPLv3+ Gaelic Hunspell 3.3 dictionary is downloaded directly from a pinned
LibreOffice source
via chezmoi externals; personal words are managed separately.
Feeds and communication
| Tool | Role | Configuration |
|---|---|---|
| Newsboat | Feed reader | dot_config/newsboat |
| Golazo | Football scores | dot_config/golazo |
| Linecast | Terminal weather | dot_config/linecast |
| Matcha | Email configuration and Lua plugins | dot_config/private_matcha |
| Mastui | Mastodon profile, keymap, and theme | dot_config/mastui |
These applications are excluded from the Parrot deployment.
Super is the main modifier. The full bindings are in
binds.lua.
| Keys | Action |
|---|---|
Super + Return |
Open terminal |
Super + Space |
App launcher |
Super + E / T / W |
Open file manager / editor / browser |
Super + H/J/K/L |
Focus left / down / up / right |
Super + Shift + H/J/K/L |
Move window left / down / up / right |
Super + 1–0 |
Switch to workspace 1–10 |
Super + Shift + 1–0 |
Move window to workspace and follow |
Super + Q |
Close window |
Super + F |
Toggle fullscreen |
Super + V |
Clipboard history |
Print / Super + Print |
Region / fullscreen screenshot |
| Super + grave (backtick) | Toggle dedicated scratchpad terminal |
Super + S / Super + Shift + S |
Toggle scratchpad / send window to scratchpad |
Super + Ctrl + Escape |
Lock screen |
Super + Alt + C |
Session menu |
Super + / |
Noctalia keybinding cheatsheet plugin |
The shared palette lives in
.chezmoidata/cyberpunk.yaml. Templates read it
through .cyberpunk to theme Fish, Git/delta, Kitty, Mitos, Helix, bat,
Superfile, Codex, Mastui, Fastfetch, Newsboat, and Noctalia.
Change shared colors there, then inspect the rendered differences with
chezmoi diff. Noctalia's selected custom palette is Cyberpunk; Hyprland
loads Noctalia's generated theme at the end of hyprland.lua.
| Task | Command |
|---|---|
| Inspect pending changes | chezmoi diff |
| Render a managed file | chezmoi cat ~/.config/kitty/kitty.conf |
| Open the source directory | chezmoi cd |
| Track a file | chezmoi add <path> |
| Apply source changes | chezmoi apply |
| Pull and apply updates | chezmoi update |
Editing behavior: .chezmoi.toml.tmpl enables
edit.apply, git.autoCommit, and git.autoPush. chezmoi edit applies edits
on exit, and automatic Git behavior can commit and push source changes. For
manual control, edit files directly in the source checkout and review the diff
before applying. Adjust those options if you prefer a different workflow.
Live files: Noctalia's ~/.local/state/noctalia/settings.toml, Harper's
~/.config/harper-ls/dictionary.txt, and Mitos's en_US.txt and gd_GB.txt
personal dictionaries under ~/.local/state/mitos/dictionaries/ are symlinked
to separate files in this checkout. Editing those source files can affect
running applications immediately.
Packages: edit .chezmoidata/packages.yaml.
The CachyOS installation hook runs when its rendered contents change. Fish's
update function runs the platform updater, global npm updates on Parrot and
Termux, then available Go, Cargo, and GitHub CLI extension updates. Global npm
packages remain unpinned; keep Node compatible with their upstream requirements.
MIT — Copyright (c) 2026 Christopher Lamm.


