dotfiles for every odyssey. one config, a thousand shores.
personal configuration files managed with GNU Stow.
dotfiles/
├── assets/ # wallpaper
├── aur/ # package list (arch)
├── brew/ # homebrew bundle (macOS)
├── fastfetch/ # fastfetch config
├── ghostty/ # ghostty terminal
├── git/ # git config and global ignore
├── vscode/ # vscode settings
├── zen/ # zen browser theming
├── zsh/ # zshrc, aliases, syntax highlighting
├── zsa/ # ZSA keyboard sync (not managed by stow)
│ ├── <name>/ # generated output, one dir per layout
│ ├── layouts # oryx hash IDs, one per line
│ └── sync.sh # fetch, convert, and render all layouts
├── install.sh # install packages
├── link.sh # add symlinks
└── unlink.sh # remove symlinks
clone the repo and ensure the prerequisites are available:
git clone https://github.com/odysseus/dotfiles.git ~/dotfiles
cd ~/dotfiles1. install packages (optional)
installs packages for the current platform — homebrew bundle on macOS, yay on arch. also prompts to sync vscode extensions.
./install.sh2. link configs
heads up: existing configs will be overwritten. back up anything you want to keep first.
./link.shunlinking
./unlink.shfetches ZSA Voyager layouts from the Oryx cloud configurator and produces three files per layout under zsa/<layout-name>/:
oryx.json: full layout export, re-importable into Oryxqmk.json: QMK-compatible keymap (version 1 schema)layout.svg: rendered keyboard diagram
prerequisites: python 3.x (no manual venv setup, bootstrapped automatically on first run)
./zsa/sync.shadding or changing layouts
add an Oryx layout hash ID to zsa/layouts, one per line. the hash is the short string in the Oryx URL (e.g. nv4mJ). the output directory name is taken from the layout title as it appears in Oryx.
- GNU Stow:
brew install stow/pacman -S stow
MIT, feel free to borrow anything.
fork it, use it, make it yours. see CONTRIBUTING.md.