Shell profiles, aliases and developer environment configuration for macOS, Windows and Linux.
I lost sight in my right eye at age two due to retinoblastoma and have worked with monocular vision my entire life. One of the practical consequences is that a monochrome wall of terminal text is genuinely harder for me to navigate. Distinct, high-contrast colours in a terminal are not an aesthetic preference - they take over the depth-cue job that binocular vision normally does. Cyan headers, green status lines, yellow timestamps - each section is a different colour so I can scan instantly without reading line by line. That is the first reason these dotfiles look the way they do. The hope is that others with similar needs find it useful too.
The second reason is that I work and build across multiple devices - a MacBook Air, a Lenovo laptop on Linux/WSL2 and a Windows gaming PC. Typing long commands that break the moment you leave out a letter, a hyphen or the wrong word was getting in the way. A mistyped git commit --amend --no-edit or a forgotten flag in a Docker command meant stopping to look it up or retype it. Small friction that adds up across a day.
These dotfiles solve that by replacing the commands I run most often with short, memorable aliases that are identical on every machine. gs instead of git status. dcu instead of docker-compose up -d. ktcr instead of typing out the full Kotlin compile-and-run pipeline. The goal is the same muscle memory on macOS, Linux and Windows, no mental context switch between environments.
The profile is split into numbered topic files - one per area of concern - so everything stays organised and easy to find. Adding a new tool means creating one new file, not inserting into a monolithic profile. Run cmds at any time for the full command reference. Run clast to clear it and snap back to where you were working.
The repo also includes a 3-platform git mirror setup that pushes every commit to GitHub, GitLab and Codeberg simultaneously, with new repos registered automatically on the first push.
Warning
These are personal dotfiles configured for a specific set of machines, tools and workflows. Before cloning, read NOTICE for the full personalisation checklist. Then read the platform guide for your OS. Remove any topic files you do not need, update paths and usernames to match your own machine, and only then source the profile. Running it unchanged on your own machine will not work correctly.
1. Read first
Important
- NOTICE - personalisation checklist, what to change before use
- guides/new-device.md - prerequisites, Homebrew, language runtimes, token setup, mirror configuration
2. Clone the repo
git clone https://github.com/zaccesss/dotfiles.git ~/dotfiles
cd ~/dotfiles3. Adapt to your machine
Caution
Go through each topic file in your platform's topics/ folder. Remove files for tools you do not use. Update any hardcoded paths, usernames or tokens to match your setup.
4. Copy the profile for your platform
macOS:
cp mac/zshrc ~/.zshrc && source ~/.zshrcLinux and WSL2:
cp linux/bashrc ~/.bashrc && source ~/.bashrcWindows:
Copy-Item windows\Microsoft.PowerShell_profile.ps1 $PROFILE -Forcedotfiles/
- mac/ zsh profile for macOS
- zshrc loader: sources all topic files in order
- topics/ numbered .zsh topic files, one per area
- linux/ bash profile for Linux and WSL2
- bashrc loader
- topics/ numbered .sh topic files
- windows/ PowerShell profile for Windows
- Microsoft.PowerShell_profile.ps1 loader
- topics/ numbered .ps1 topic files
- hooks/
- pre-push global git hook: auto-mirrors repos on first push
- scripts/
- mirror_tokens.template token file template (bash/zsh)
- mirror_tokens_template.ps1 token file template (PowerShell)
- sync-meta.sh syncs repo metadata to all mirror platforms
- guides/ platform setup walkthroughs and command reference
- shared/ platform-agnostic files used by all three platforms
- starship.toml Starship prompt config — one file for Mac, Linux and Windows
- journal/ engineering journal: decisions, refactors, architecture notes
- documentation.md full technical reference for every command
| Resource | What it covers |
|---|---|
| documentation.md | Full technical reference: architecture, loader mechanics and every command described |
| guides/mac.md | macOS installation, modular profile walkthrough and command reference |
| guides/linux.md | Linux and WSL2 installation, platform differences and command reference |
| guides/windows.md | Windows installation, PowerShell specifics and command reference |
| guides/mirroring.md | Mirror setup, token configuration, pre-push hook and new device checklist |
| guides/new-device.md | Step-by-step setup guide for a brand new machine on any platform |
| mac/topics/README.md | All macOS topic files listed with descriptions and key commands |
| linux/topics/README.md | All Linux topic files listed with descriptions and key commands |
| windows/topics/README.md | All Windows topic files listed with descriptions and key commands |
| shared/starship.toml | Starship prompt config — one file for all three platforms, covering git and all 59 topic file languages |
| journal/009-starship-prompt.md | Why Starship was added, module choices, the shared/ approach and how to disable it |
Every git push hits GitHub, GitLab and Codeberg simultaneously. New repos are registered on all platforms automatically on the first push. Five repos also mirror to Gitea via GitHub Actions.
See guides/mirroring.md for the full reference.
These dotfiles are configured for my own machines. Paths, usernames and tokens are specific to my setup. Review scripts before running them on your own machine and make sure token files are never committed.
Isaac Adjei - isaacadjei.me - contact@isaacadjei.me