An open API service indexing awesome lists of open source software.

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

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:

![Image 0](./images/img0.png)
![Image 1](./images/img1.png)
![Image 2](./images/img2.png)

## **πŸš€ 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.