Skip to content

Latest commit

 

History

History
564 lines (411 loc) · 17.9 KB

README.md

File metadata and controls

564 lines (411 loc) · 17.9 KB

AquaFiles (dotfiles)

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!

Design Principles

Screenshots

Lazyvim Welcome screen

lazyvim welcome screen

Yabai bsp grid with 5 cmatrix running

yabai demo with cmatrix 5 grid

Zellij fastfetch, cmatrix, htop

zellij-in-action

Zellij Neovim htop cmatrix

zellij-neovim-htop-cmatrix

Zellij welcome screen

zellij-welcome-screen

warning WARNING
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!

Dev Setup

Requirements

  • Deno - For peek.nvim
  • Neovim >= 0.9.0 (needs to be built with LuaJIT)
  • Git >= 2.19.0 (for partial clones support)
  • LazyVim
  • Nerd Font(v3.0 or greater) (optional, but needed to display some icons, Patched Operator Mono Provided in the repo)
  • lazygit (optional)
  • 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

System Settings setup

defaults write -g ApplePressAndHoldEnabled -bool false

WezTerm Setup

install wezterm through homebrew

brew install --cask wezterm
  • cd into AquaFiles
cd ~/AquaFiles/
  • stow the config
stow wezterm

Fish Shell Setup

  • 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

Neovim setup

  • 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

Git setup

xcode-select --install
git --version # check to make sure you have git installed
  • cd into AquaFiles
cd ~/AquaFiles/
  • stow git
stow git

Zellij setup

  • Install Zellij
brew install zellij
  • cd into AquaFiles
cd ~/AquaFiles/
  • stow zellij
stow zellij

Yabai Setup

  • Install Yabai
brew install koekeishiya/formulae/yabai

Disable System Integrity Protection

  1. Turn off your device
  2. 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.
  3. In the menu bar, choose Utilities, then Terminal
  4. 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
  1. Reboot
  2. 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
  1. You can verify that System Integrity Protection is turned off by running csrutil status, which returns System Integrity Protection status: disabled. if it is turned off (it may show unknown 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.

Configure Scripting Additions

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.

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


# Verify that it worked
sudo visudo -f /private/etc/sudoers.d/yabai

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)

finaly reboot your mac

Test Scripting Additions

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

stow config

  • cd into AquaFiles
cd ~/AquaFiles/
  • stow yabai
stow yabai
  • start yabai service
yabai --start-service

skhd setup

  • Install skhd
brew install koekeishiya/formulae/skhd
  • start service
skhd --start-service
  • cd into AquaFiles
cd ~/AquaFiles/
  • stow zellij
stow skhd

Live Streaming on YouTube

Documenting my journey of continuous learning and exploration in cutting-edge technologies including:

  • AI/ML
    • AI Agents
    • Gen AI
  • Indie Hacking
  • Building in Public
  • UI/UX Design
  • Next.js
  • Typescript
  • Python

Join me as I document my growth, share insights, and delve into the ever-evolving world of tech innovation.
0xAquaWolf YouTube Channel

Apps i use

MacOS

(Programming, Content creation, Writing)

Chrome Extensions

Desktop Apps

Footer

Join the Community on Discord

AquaWolf Academy: https://discord.gg/wzPBjEcn87

Star History

Star History Chart

Todo List

  • 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
  • update screenshots with new tools that i'm using and display them