Plain text configs for bootstrapping my (PDE) Personal Development Enviroment.
My primary operating system is macOS, but I do use Linux sometimes... (arch, btw!)
Also Ubuntu Server in the cloud
Feel free to try out my dotfiles or use them as inspiration! If you have a suggestion, improvement or question, please open an issue or PR!
- Open-Source
- Flow State
- Minimalism
- Keyboard Home Row Centric
- Design & Aesthetics
- Productivity (minimize distractions)
- Form & Function (beauty and action)
- Portable
- Bleeding Edge
Lazyvim Welcome screen
Yabai bsp grid with 5 cmatrix running
Zellij fastfetch, cmatrix, htop
Zellij Neovim htop cmatrix
Zellij welcome screen
![]() |
|
These dotfiles are for my own personal use and i update them very frequently. If you want to use them: fork the repo, review the code and take what you need from it. Use at your own risk! |
- Deno - For peek.nvim
- Neovim >= 0.9.0 (needs to be built with LuaJIT)
- Git >= 2.19.0 (for partial clones support)
- LazyVim
- a Nerd Font(v3.0 or greater) (optional, but needed to display some icons, Patched Operator Mono Provided in the repo)
- lazygit (optional)
- a C compiler for
nvim-treesitter
. See here - for telescope.nvim (optional)
- a terminal that support true color and undercurl:
- Patched Operator Mono
- Added Nerd Fonts
- Added Ligatures
defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false # For VS Code
defaults write com.microsoft.VSCodeInsiders ApplePressAndHoldEnabled -bool false # For VS Code Insider
defaults write com.vscodium ApplePressAndHoldEnabled -bool false # For VS Codium
defaults write com.microsoft.VSCodeExploration ApplePressAndHoldEnabled -bool false # For VS Codium Exploration users
defaults delete -g ApplePressAndHoldEnabled
I also recommend increasing Key Repeat and Delay Until Repeat settings in System Preferences -> Keyboard.
install wezterm through homebrew
brew install --cask wezterm
cd
into AquaFiles
cd ~/AquaFiles/
- stow the config
stow wezterm
- install fish shell through homebrew
brew install fish
- Add fish to the list of allowed shells by appending its path to /etc/shells
echo $(which fish) | sudo tee -a /etc/shells
- set fish shell to the default shell
chsh -s /opt/homebrew/bin/fish
- exit the current terminal
exit
- check if fish shell is set as the default shell
echo $SHELL
# expected output:
# /opt/homebrew/bin/fish (if on macOS)
- delete config folder
rm -rf ~/.config/fish
cd
into AquaFiles
cd ~/AquaFiles/
- stow the config
stow fish
Troubleshooting: if you don't see a recently added path in the $PATH make sure to delete ~/.config/fish/fish_variables
, and exit the terminal and restart to clear the cache
- Install neovim
brew install neovim # make sure you have the latest version
- install deno for (peek.nvim)
curl -fsSL https://deno.land/install.sh | sh
- Backup previous config
mv ~/.config/nvim ~/.config/nvim.bak
mv ~/.local/share/nvim ~/.local/share/nvim.bak
- Install LazyVim
git clone https://github.com/LazyVim/starter ~/.config/nvim
- Remove the .git folder, so you can add it to your own repo later
rm -rf ~/.config/nvim/.git
- clone dotfiles (needs to be cloned in root directory for GNU Stow work)
git clone https://github.com/0xAquaWolf/AquaFiles ~/
- delete lua directory in nvim
rm -rf ~/.config/nvim/lua/*
cd
into AquaFiles
cd ~/AquaFiles/
- if on macOS (you might need to delete DS_Store files)
dir="${1:-.}" && echo "Removing .DS_STORE files from $dir" && find "$dir" -type f -name .DS_STORE -delete && echo "ALL .DS_STORE files have been removed from $dir"
- stow lazyvim
stow nvim
- startup neovim
nvim
- sit back and enjoy the installation
xcode-select --install
git --version # check to make sure you have git installed
cd
into AquaFiles
cd ~/AquaFiles/
stow
git
stow git
- Install Zellij
brew install zellij
cd
into AquaFiles
cd ~/AquaFiles/
stow
zellij
stow zellij
- Install Yabai
brew install koekeishiya/formulae/yabai
- Turn off your device
- Intel (apple docs):
Hold down command ⌘+R while booting your device. Apple Silicon (apple docs):
Press and hold the power button on your Mac until “Loading startup options” appears.
Click Options, then click Continue. - In the menu bar, choose
Utilities
, thenTerminal
- Disable System Integrity Protection
#
# APPLE SILICON
#
# If you're on Apple Silicon macOS 13.x.x OR newer
# Requires Filesystem Protections, Debugging Restrictions and NVRAM Protection to be disabled
# (printed warning can be safely ignored)
csrutil enable --without fs --without debug --without nvram
# If you're on Apple Silicon macOS 12.x.x
# Requires Filesystem Protections, Debugging Restrictions and NVRAM Protection to be disabled
# (printed warning can be safely ignored)
csrutil disable --with kext --with dtrace --with basesystem
#
# INTEL
#
# If you're on Intel macOS 11.x.x OR newer
# Requires Filesystem Protections and Debugging Restrictions to be disabled (workaround because --without debug does not work)
# (printed warning can be safely ignored)
csrutil disable --with kext --with dtrace --with nvram --with basesystem
- Reboot
- For Apple Silicon; enable non-Apple-signed arm64e binaries
# Open a terminal and run the below command, then reboot
sudo nvram boot-args=-arm64e_preview_abi
- You can verify that System Integrity Protection is turned off by running
csrutil status
, which returnsSystem Integrity Protection status: disabled.
if it is turned off (it may showunknown
for newer versions of macOS when disabling SIP partially).
If you ever want to re–enable System Integrity Protection after uninstalling yabai; repeat the steps above, but run csrutil enable
instead at step 4.
Why do you need scripting additions?
yabai uses the macOS Mach APIs to inject code into Dock.app; this requires elevated (root) privileges. You can configure your user to execute yabai --load-sa as the root user without having to enter a password. To do this, we add a new configuration entry that is loaded by /etc/sudoers.
# create a new file for writing - visudo uses the vim editor by default.
# go read about this if you have no idea what is going on.
sudo visudo -f /private/etc/sudoers.d/yabai
# input the line below into the file you are editing.
# replace <yabai> with the path to the yabai binary (output of: which yabai).
# replace <user> with your username (output of: whoami).
# replace <hash> with the sha256 hash of the yabai binary (output of: shasum -a 256 $(which yabai)).
# this hash must be updated manually after upgrading yabai.
<user> ALL=(root) NOPASSWD: sha256:<hash> <yabai> --load-sa
If you know what you are doing, the following one-liner can be used to update the sudoers file correctly:
echo "$(whoami) ALL=(root) NOPASSWD: sha256:$(shasum -a 256 $(which yabai) | cut -d " " -f 1) $(which yabai) --load-sa" | sudo tee /private/etc/sudoers.d/yabai
After the above edit has been made, add the command to load the scripting addition at the top of your yabairc config file
# for this to work you must configure sudo such that
# it will be able to run the command without password
yabai -m signal --add event=dock_did_restart action="sudo yabai --load-sa"
sudo yabai --load-sa
lastly make sure to uncomment the last line from the sudoers file
sudo visudo -f /private/etc/sudoers
it should read
#includedir /private/etc/sudoers.d
(sometimes it has 2 ## it should only have 1)
finnaly reboot your mac
yabai -m space --focus recent
the intented result should be that you change your window focus, if not you did not correctly add the scripting additions
cd
into AquaFiles
cd ~/AquaFiles/
stow
yabai
stow yabai
start
yabai service
yabai --start-service
- Install skhd
brew install koekeishiya/formulae/skhd
start
service
skhd --start-service
cd
into AquaFiles
cd ~/AquaFiles/
stow
zellij
stow skhd
Chronicling my journey of continuous learning and exploration in cutting-edge technologies including:
- Algo Trading
- Web3
- AI/ML
Join me as I document my growth, share insights, and delve into the ever-evolving world of tech innovation.
0xAquaWolf YouTube Channel
(Programming, Content creation, Writing)
- Wezterm - Terminal
- Homebrew - Package manager
- Raycast - App Launcher
- Obsidian - Sync through iCloud
- Yabai - Window Manager
- SKHD - Keyboard Shortcut Manager
- Karabiner Elements - Hypermod and sublayers
- Shortcat - Vim for the desktop
- KeyCastr - For keyboard casting of shortcuts
- Cursor - AI Code Editor | Built to make you extraordinarily productive, Cursor is the best way to code with AI.
- Visual Studio Code (with vim like settings, check the repo)
- Vim (Vim motions FTW!!!!)
- Catppuccin for VSCode
- Catppuccin Icons for VSCode
- Clock in status bar (Hide ENV Variables on stream)
- Code Runner
- DotENV
- Cloak (HIDE ENV for streaming)
- TODO Highlight
- Rainbow CSV
- Data Wrangler
- Even Better TOML
- Markdown Preview Enhanced
- Markdown Checkboxes
- Python Dev Env
- Python (Includes Python Debugger)
- Pylance (LSP)
- Black Formatter
- Jupyter (Includes Jupyter Notebook support)
- Vimium
- Wappalyzer
- Dark Reader - with Catppuccin Mocha theme
- uBlock Origin
- 1Password
- Undistracted
- Bypass Paywalls
- Ableton Live 12 - DAW
- Affinity Photo - Professional image editing software
- Android File Transfer - File transfer tool for Android devices
- Binaural - Binaural beats generator
- LuLu - Security and network traffic blocker
- CleanShot X - Advanced screenshot and screen recording tool
- Gestimer - Simple menubar timer
- IINA - Modern video player
- KeyboardCleanTool - Tool to clean your keyboard
- Audio Hijack - Advanced audio recording software
- Memory Clean 3 - Memory optimization tool
- Parallels - Virtual machine software
- CrossOver - Run Windows applications on macOS
- Rize - Productivity tracker for macOS
- Screen Studio - Screen recording and editing tool
- ScreenFlow - Screen recording and video editing software
- TablePlus - Database manager
- The Unarchiver - File extraction utility
- xScope - Set of tools for UI/UX Designers
- Bartender 5 - macOS Menubar management
- Keka - File compression and extraction
- Voicemod - Real-time voice changer
- OBS - Open source video recording and live streaming
- Kaleidoscope - File and image comparison tool
- AlDente - macOS Battery Manager
- Dynamic Wallpaper - Wallpaper changer for macOS
- ColorSlurp - Color picker and organizer
- Elgato Stream Deck - Customizable control panel
- Farrago - Soundboard for macOS
- iTubeGo - YouTube video downloader
AquaWolf Academy: https://discord.gg/wzPBjEcn87
- add links for apps i use
- neovim setup
- fish setup
- git setup
- Zellij setup
- skhd setup
- yabai setup
- obsidian setup & config
- vs code setup & config
- document how to use GNU Stow with my dotfiles
- add a quick start guide (use this for video)
- add a video showing how to bootstrap the install and using the config