https://github.com/xf5i/dotfiles
https://github.com/xf5i/dotfiles
dotfiles dotfiles-macos fastfetch fish-shell ghostty-terminal nvim skhd yabai
Last synced: 10 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/xf5i/dotfiles
- Owner: xf5i
- Created: 2025-02-10T15:21:03.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2025-02-10T16:24:17.000Z (about 1 year ago)
- Last Synced: 2025-02-17T20:55:26.293Z (about 1 year ago)
- Topics: dotfiles, dotfiles-macos, fastfetch, fish-shell, ghostty-terminal, nvim, skhd, yabai
- Language: Lua
- Homepage:
- Size: 23.9 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# π₯οΈ macOS Dotfiles & Configuration
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:



## **π Features**
- **Window Manager**: [yabai](https://github.com/koekeishiya/yabai) - dynamic tiling window manager for macOS.
- **Hotkey Daemon**: [skhd](https://github.com/koekeishiya/skhd) - global keyboard shortcuts.
- **Terminal**: [Ghostty](https://ghostty.dev) - modern, GPU-accelerated terminal.
- **Shell**: [Fish Shell](https://fishshell.com) - user-friendly, autosuggestion-based shell.
- **Prompt**: [Starship](https://starship.rs) - fast and customizable prompt.
- **Editor**: [Neovim](https://neovim.io) with [LazyVim](https://www.lazyvim.org/) for a feature-rich experience.
- **Package Manager**: [Homebrew](https://brew.sh) for easy package management.
### **1οΈβ£ Install Required Packages**
Install essential dependencies using **Homebrew**:
```sh
brew install ghostty
brew install yabai
brew install skhd
brew install nvim
brew install lazyvim
brew install fish
brew install starship
brew install git
```
### **2οΈβ£ Install Extra Utilities (optional, but recommended)**
```sh
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
```
### **3οΈβ£ Clone This Repository**
`git clone https://github.com/xf6i/dotfiles.git ~/.config`
### **4οΈβ£ Enable Services**
Start yabai and skhd to ensure they launch at startup:
```sh
brew services start yabai
brew services start skhd
```
## **π Folder Structure**
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
```
## **ποΈ Custom Keybindings (SKHD)**
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`.
## **π Customization**
- **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`.
## **π License**
This repository is licensed under the **MIT License**. Feel free to use and modify it.