This repository contains my personal macOS configuration tailored for Apple Silicon (M1/M2/M3) users. It includes a tiling window manager, a customized terminal experience, and an optimized Neovim setup.
Here are some screenshots:
- Window Manager: yabai - dynamic tiling window manager for macOS.
- Hotkey Daemon: skhd - global keyboard shortcuts.
- Terminal: Ghostty - modern, GPU-accelerated terminal.
- Shell: Fish Shell - user-friendly, autosuggestion-based shell.
- Prompt: Starship - fast and customizable prompt.
- Editor: Neovim with LazyVim for a feature-rich experience.
- Package Manager: Homebrew for easy package management.
Install essential dependencies using Homebrew:
brew install ghostty
brew install yabai
brew install skhd
brew install nvim
brew install lazyvim
brew install fish
brew install starship
brew install git
brew install bat # Better cat with syntax highlighting
brew install borders # Floating window decorations for yabai
brew install fastfetch # System info display (faster than neofetch)
brew install fortune # Display random quotes
brew install zoxide # Smarter cd command
git clone https://github.com/xf6i/dotfiles.git ~/.config
Start yabai and skhd to ensure they launch at startup:
brew services start yabai
brew services start skhd
Here’s how the repository is structured:
~/.config/
├── borders/
│ └── bordersrc # Configuration for floating window decorations
├── fastfetch/
│ └── config.jsonc # Configuration for system info display
├── fish/
│ ├── functions/ # Custom Fish functions
│ └── config.fish # Main Fish shell configuration
├── ghostty/
│ ├── shaders/ # Shader files for terminal effects
│ └── ghostty # Terminal configuration file
├── karabiner/
│ └── karabiner.json # Hotkey remapping configuration
├── nvim/
│ ├── lua/ # Lua-based Neovim configurations
│ ├── init.lua # Main Neovim configuration
│ ├── lazy-lock.json # Lockfile for LazyVim plugins
│ └── lazyvim.json # LazyVim-specific configuration
├── skhd/
│ └── skhdrc # Hotkey configuration file
├── yabai/
│ ├── startup.sh # Script to start Yabai
│ └── window_gap # Custom gaps configuration
├── starship.toml # Starship prompt configuration
└── README.md # Documentation for the configuration
The skhd configuration includes custom keybindings for efficient window and system management.
Keybinding | Action |
---|---|
cmd + j |
Focus window down |
cmd + k |
Focus window up |
cmd + h |
Focus window left |
cmd + l |
Focus window right |
cmd + enter |
Swap window with the main window |
cmd + shift + r |
Restart yabai |
Customize keybindings in ~/.config/skhd/skhdrc
.
- Neovim: Add or remove plugins in
~/.config/nvim/lua/plugins/
. - Yabai: Edit tiling window manager settings in
~/.config/yabai/startup.sh
. - Fish Shell: Adjust shell options in
~/.config/fish/config.fish
. - Starship Prompt: Change the appearance in
~/.config/starship.toml
.
This repository is licensed under the MIT License. Feel free to use and modify it.