Skip to content

zaccesss/dotfiles

dotfiles

Shell profiles, aliases and developer environment configuration for macOS, Windows and Linux.

Markdown Lint Shell Check License: MIT


About

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.


Quick setup

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 ~/dotfiles

3. 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 ~/.zshrc

Linux and WSL2:

cp linux/bashrc ~/.bashrc && source ~/.bashrc

Windows:

Copy-Item windows\Microsoft.PowerShell_profile.ps1 $PROFILE -Force

Structure

dotfiles/
- 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

Documentation

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

Mirroring

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.


Disclaimer

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

About

Shell profiles, aliases and developer environment configuration for macOS, Windows and Linux

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors