This .dotfiles repository contains my macOS, Arch Linux and Windows system configurations.
Features include:
Common
- Catppuccin theme
- chezmoi to manage dotfiles across systems
- mise for managing dev tools, runtimes (Node, Python, Go, Rust), and environment variables
- Neovim a cross-platform editor
- Starship prompt
- WezTerm a cross-platform terminal emulator
- Yazi terminal file manager.
- A configured
zshshell for macOS and Linux, andPowerShellfor Windows with autocompletion, history, and syntax highlighting - Fuzzy finding with fzf
MacOS
- Aerospace window manager
- SketchyBar bar
- JankyBorders border styling
- Raycast launcher
- Homebrew package management
Windows
- GlazeWM window manager
- Zebar bar (with sketchybar-app-font icons)
- Microsoft PowerToys for launcher, keyboard shortcuts and various extras
- Scoop package management
Arch Linux
- Hyprland window manager
- Noctalia Shell for bar, lock screen, control center, notifications, and screen recorder
- Vicinae launcher
- Paru AUR helper (package management)
Warning
Change the git username, email, and ssh keygen email in setup_arch.sh, setup_mac.sh and setup_win.ps1 to your own.
Change banner.zsh and the banner in setup_win.ps1 to your own banner image.
If you have existing ssh keys, ensure to copy them to the $HOME/.ssh directory.
Important
Move key.txt encryption key to the $HOME/.config directory to decrypt encrypted files.
-
Remove mission control shortcuts. Open
System Settings->Keyboard->Keyboard Shortcuts. Disable theMission Controlshortcuts, including⌘+#to switch between workspaces. -
Open
System Settings->Privacy & Security->Accessibility. Click the + button at the bottom left of the list view and enter your password to allow changes to the list. -
Give
Terminalfull disk access throughSecurity & Privacy->Privacy->Full Disk Access. -
Download and run the setup_mac.sh shell script.
curl -L https://raw.githubusercontent.com/joncrangle/.dotfiles/main/setup_mac.sh | shTip
If needed, make the script executable with
chmod +x setup_mac.sh-
The macOS setup process will begin by installing Homebrew, chezmoi, and Git.
-
Setup will walk you through authenticating with Github. It will then install the dotfiles and apps.
-
Give
WezTermfull disk access throughSecurity & Privacy->Privacy->Full Disk Access. Hide the menu bar inSystem Settings->Control Center-> Automatically hide and show the menu bar -> Always. -
Give
Aerospace,Wezterm,skhdaccessibility permissions inSystem Preferences->Security & Privacy->Accessibility. -
Launch the
Shortcutsapp. Create a shortcut called "playpause" with "Play/Pause" from the "Media" category. This shortcut will be used by the bar for playback control.
- Download and run the setup_win.ps1 PowerShell script.
iwr -useb https://raw.githubusercontent.com/joncrangle/.dotfiles/main/setup_win.ps1 | iexTip
You might need to change the execution policy to RemoteSigned before running the script.
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser-
The Windows setup process will begin by trying to install PowerShell, Windows Terminal and PowerToys.
-
Setup will then proceed to install Scoop, chezmoi, Git and terminal apps.
-
After you authenticate with GitHub, it will install the dotfiles, configure PowerShell, and install apps.
Tip
Some useful PowerToys settings that can be configured:
- File Explorer add-ons for previews
- Enable Keyboard Manager and remap
Ctrl+FtoF4withinoutlookRemapCtrl+Shift+OandCtrl+Shift+Mto camera and microphone toggle buttons inms-teamsRemapDownandUptoCtrl+NandCtrl+Pforpowertoys.powerlauncher - Enable Paste as Plain Text
- Enable PowerToys Command Palette (optional)
- Enable Quick Accent for a desired language (e.g. French or Spanish)
Within Taskbar Settings, automatically hide the taskbar in Desktop mode.
- Install
Termuxusing F-Droid. Also installTermux:APIandTermux:Styling. - Open
Termuxand run:
pkg update && pkg upgrade -y
pkg install -y curl
bash <(curl -fsSL https://raw.githubusercontent.com/joncrangle/.dotfiles/main/install_termux.sh)- Import Neovim config.
Install Arch using archinstall with a Minimal profile. To connect to wifi, use iwctl:
iwctl
device list
station wlan0 scan
station wlan0 get-networks
station wlan0 connect SSID
exit
archinstallOnce installed, connect to wifi and run the setup script:
sh <(curl -s https://raw.githubusercontent.com/joncrangle/.dotfiles/main/setup_arch.sh)Install a package
paru -S <package>Clean package cache
paru -ScdRemove orphaned packages
paru -Qdtq | paru -RnsSee Keymapping.




