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

https://github.com/kbrdn1/dotfiles

My personal OS X dotfiles.
https://github.com/kbrdn1/dotfiles

brew chezmoi dotfiles ghostty neofetch omz sketchybar skhd svim thefuck zsh

Last synced: about 2 months ago
JSON representation

My personal OS X dotfiles.

Awesome Lists containing this project

README

          

# Dotfiles

Welcome to my dotfiles repository! This repository is managed using [chezmoi](https://www.chezmoi.io/), a tool designed to manage your dotfiles across multiple machines.

Preview

## Table of Contents πŸ“š

- [CLI Tools πŸ› οΈ](#cli-tools-)
- [GUI Tools πŸ–₯️](#gui-tools-)
- [Applications πŸ“¦](#applications-)
- [SetApp Applications 🎯](#setapp-applications-)
- [Aliases & Functions πŸ”§](#aliases--functions-)
- [System Aliases πŸ–₯️](#system-aliases)
- [Development Aliases πŸ‘¨β€πŸ’»](#development-aliases)
- [GitHub Copilot Aliases πŸ€–](#github-copilot-aliases)
- [Window Manager Service Aliases πŸͺŸ](#window-manager-service-aliases)
- [Tmux Aliases πŸ“Ÿ](#tmux-aliases)
- [Custom Functions βš™οΈ](#custom-functions)
- [Shortcuts & Keybindings ⌨️](#shortcuts--keybindings-)
- [Space & Window Navigation πŸ”](#space--window-navigation)
- [Window Management πŸͺŸ](#window-management)
- [Window Stacking & Resizing πŸ“](#window-stacking--resizing)
- [Miscellaneous Controls πŸŽ›οΈ](#miscellaneous-controls)
- [Tmux Keybindings πŸ–₯️](#tmux-keybindings-)
- [Zed Configuration ⚑](#zed-configuration-)
- [Keybindings 🎹](#keybindings-)
- [Vim-Mode Keybindings πŸ§™β€β™‚οΈ](#vim-mode-keybindings-)
- [Tasks πŸ”„](#tasks-)
- [Installation πŸ“₯](#installation-)
- [Acknowledgments πŸ™](#acknowledgments-)
- [License πŸ“„](#license-)

### CLI Tools πŸ› 

Our essential command-line tools:

- **Package Management**
- [Homebrew](https://brew.sh/): The missing package manager for macOS
- [Asdf](https://asdf-vm.com/): Multi-language version manager

- **Core Utilities**
- [Coreutils](https://www.gnu.org/software/coreutils/): GNU core utilities
- [Curl](https://curl.se/): Data transfer tool
- [Git](https://git-scm.com/): Version control system
- [OpenSSL](https://www.openssl.org/): SSL/TLS toolkit
- [Bison](https://www.gnu.org/software/bison/): Parser generator

- **Shell & Terminal**
- [Oh My Zsh](https://ohmyz.sh/): Zsh configuration framework
- [Powerlevel10k](https://github.com/romkatv/powerlevel10k): Zsh theme
- [Bat](https://github.com/sharkdp/bat): Enhanced cat command
- [Eza](https://eza.rocks/): Modern ls replacement
- [Yazi](https://github.com/sxyazi/yazi): Terminal file manager
- [Tmux](https://github.com/tmux/tmux): Terminal multiplexer

- **Development Tools**
- [PHP](https://www.php.net/) & [Composer](https://getcomposer.org/): PHP ecosystem
- [Python](https://www.python.org/): Programming language
- [Symfony CLI](https://symfony.com/download): Symfony framework tools
- [Node.js](https://nodejs.org/): JavaScript runtime
- [Rust](https://www.rust-lang.org/): Systems programming language
- [Go](https://golang.org/): Programming language
- [Bun](https://bun.sh/): JavaScript runtime & toolkit
- [Deno](https://deno.land/): JavaScript runtime

- **Productivity Tools**
- [GH](https://cli.github.com/): GitHub CLI
- [Lazygit](https://github.com/jesseduffield/lazygit): Git TUI
- [Lazydocker](https://github.com/jesseduffield/lazydocker): Docker TUI
- [Fzf](https://github.com/junegunn/fzf): Fuzzy finder
- [Zoxide](https://github.com/ajeetdsouza/zoxide): Smarter cd
- [Thefuck](https://github.com/nvbn/thefuck): Command correction
- [Neofetch](https://github.com/dylanaraps/neofetch): System info tool
- [Dashlane CLI](https://cli.dashlane.com/): Password manager CLI

### GUI Tools πŸ–₯

Essential graphical tools:

- **Window Management**
- [Yabai](https://github.com/koekeishiya/yabai): Tiling window manager
- [Skhd](https://github.com/koekeishiya/skhd): Hotkey daemon
- [JankyBorders](https://github.com/FelixKratz/JankyBorders): Window borders
- [SketchyVim](https://github.com/FelixKratz/SketchyVim): Vim input fields

- **UI Enhancement**
- [Sketchybar](https://github.com/FelixKratz/SketchyBar): Custom menu bar
- [SF Symbols](https://developer.apple.com/sf-symbols/): Apple system symbols
- [Sketchybar App Font](https://github.com/kvndrsslr/sketchybar-app-font): Icon font

### Applications πŸ“¦

Key applications:

- **Development**
- [Zed](https://zed.dev/): Modern code editor
- [Ghostty](https://ghostty.org/): GPU-accelerated terminal
- [Warp](https://warp.dev/): Rust-based terminal
- [OrbStack](https://orbstack.dev/): Docker alternative
- [Postman](https://www.postman.com/): API platform

- **Browsers & Communication**
- [Arc](https://arc.net/): Modern browser
- [Slack](https://slack.com/): Team communication
- [Discord](https://discord.com/): Community platform
- [WhatsApp](https://www.whatsapp.com/): Messaging

- **Productivity**
- [Raycast](https://raycast.com/): Launcher & productivity tool
- [Obsidian](https://obsidian.md/): Knowledge base
- [Rectangle](https://rectangleapp.com/): Window management
- [Dashlane](https://www.dashlane.com/): Password manager
- [Figma](https://www.figma.com/): Design tool

### SetApp Applications πŸ“¦

Premium applications via SetApp:

- **Development**
- [TablePlus](https://tableplus.com/): Database management

- **Productivity**
- [CleanShot X](https://cleanshot.com/): Screenshot tool
- [PixelSnap](https://getpixelsnap.com/): Measurement tool
- [Sip](https://sipapp.io/): Color management
- [Yoink](https://eternalstorms.at/yoink/mac/): Drag and drop helper

- **System Tools**
- [CleanMyMac X](https://macpaw.com/cleanmymac): System cleaner
- [NotchNook](https://lo.cafe/notchnook): Notch utility
- [Canary Mail](https://canarymail.io/): Email client
- [Clop](https://setapp.com/apps/clop): Media optimizer

## Aliases & Functions πŸ”§

### System Aliases
| Alias | Command | Description |
|-------|---------|-------------|
| `x` | `exit` | Exit terminal |
| `config` | `cd $XDG_CONFIG_HOME` | Navigate to config directory |
| `edit-config` | `$EDITOR $XDG_CONFIG_HOME` | Edit config directory |
| `reload-zsh` | `source ~/.zshrc` | Reload ZSH configuration |
| `edit-zsh` | `$EDITOR ~/.zshrc` | Edit ZSH configuration |

### Development Aliases
| Alias | Command | Description |
|-------|---------|-------------|
| `py`, `python` | `/usr/bin/python3` | Python 3 |
| `pa` | `php artisan` | PHP Artisan CLI |
| `a`, `adonis` | `node ace` | Adonis Ace CLI |
| `ls` | `eza --color=always --long --git --no-filesize --icons=always --no-time --no-user --no-permissions --group-directories-first` | Enhanced listing |
| `cd` | `zoxide` | Enhanced directory navigation |
| `lg` | `lazygit` | Terminal UI for Git |
| `lzd` | `lazydocker` | Terminal UI for Docker |
| `f` | `fzf --tmux top,50%` | Fuzzy finder in Tmux fixed on top with 50% height |

### GitHub Copilot Aliases
| Alias | Command | Description |
|-------|---------|-------------|
| `gcs` | `gh copilot suggest` | Get command suggestions |
| `gce` | `gh copilot explain` | Explain commands |
| `gcc` | `gh copilot config` | Configure Copilot |
| `gca` | `gh copilot alias` | Manage Copilot aliases |

### Window Manager Service Aliases
| Alias | Command | Description |
|-------|---------|-------------|
| `reload-sketchybar` | `brew services restart sketchybar` | Restart Sketchybar |
| `edit-sketchybar` | `$EDITOR $XDG_CONFIG_HOME/sketchybar` | Edit Sketchybar config |
| `reload-borders` | `brew services restart borders` | Restart JankyBorders |
| `edit-borders` | `$EDITOR $XDG_CONFIG_HOME/borders` | Edit JankyBorders config |
| `reload-yabai` | `yabai --restart-service` | Restart Yabai |
| `edit-yabai` | `$EDITOR $XDG_CONFIG_HOME/yabai` | Edit Yabai config |
| `reload-skhd` | `skhd --restart-service` | Restart SKHD |
| `edit-skhd` | `$EDITOR $XDG_CONFIG_HOME/skhd/skhdrc` | Edit SKHD config |

### Tmux Aliases
| Alias | Command | Description |
|-------|---------|-------------|
| `t` | `tmux -2` | Launch Tmux with 256 colors |
| `reload-tmux` | `tmux source-file ~/.tmux.conf` | Reload Tmux configuration |
| `edit-tmux` | `$EDITOR ~/.tmux.conf` | Edit Tmux configuration |

## Shortcuts & Keybindings ⌨️

### Space & Window Navigation
| Shortcut | Action |
|----------|--------|
| βŒ₯ + 1-5 | Focus space 1-5 on current display |
| βŒ₯ + h/j/k/l | Focus window in direction (west/south/north/east) |
| βŒ₯ + 0 | Focus first window |
| βŒ₯ + $ | Focus last window |
| βŒ₯ + Space | Toggle float window |
| ⇧ + βŒ₯ + f | Toggle fullscreen |
| βŒ₯ + f | Toggle parent zoom |

### Window Management
| Shortcut | Action |
|----------|--------|
| ⇧ + βŒ₯ + h/j/k/l | Move window in direction |
| ⇧ + βŒ₯ + s | Toggle split orientation |
| ⇧ + βŒ₯ + 1-5 | Move window to space 1-5 |
| ⇧ + βŒ₯ + b/n | Move window to prev/next space |

### Window Stacking & Resizing
| Shortcut | Action |
|----------|--------|
| ⇧ + βŒƒ + h/j/k/l | Stack window in direction |
| ⇧ + βŒƒ + b/p | Navigate through stack |
| βŒƒ + βŒ₯ + h/j/k/l | Resize window |
| βŒƒ + βŒ₯ + e | Equalize window sizes |
| βŒƒ + βŒ₯ + g | Toggle gaps |

### Miscellaneous Controls
| Shortcut | Action |
|----------|--------|
| βŒ₯ + -/_ | Create new window in horizontal/vertical split |
| ⇧ + βŒ₯ + Space | Toggle Sketchybar visibility |
| ⇧ + βŒ₯ + r | Reload Sketchybar |

### Tmux Keybindings πŸ–₯️
| Shortcut | Action | Description |
|----------|--------|-------------|
| βŒƒ + s | `prefix` | Prefix key (replaces default βŒƒ + b) |

#### Session Management
| Shortcut | Action | Description |
|----------|--------|-------------|
| prefix + r | `source-file ~/.tmux.conf` | Reload tmux configuration |
| prefix + o | `tmux-sessionx` | Open session manager |
| prefix + Space | `which-key` | Show available keybindings |

#### Window Management
| Shortcut | Action | Description |
|----------|--------|-------------|
| prefix + c | `new-window` | Create new window |
| prefix + βŒƒ + H | `previous-window` | Go to previous window |
| prefix + βŒƒ + L | `next-window` | Go to next window |
| prefix + βŒƒ + x | `kill-window` | Close current window |

#### Pane Management
| Shortcut | Action | Description |
|----------|--------|-------------|
| prefix + h | `select-pane -L` | Focus left pane |
| prefix + j | `select-pane -D` | Focus down pane |
| prefix + k | `select-pane -U` | Focus up pane |
| prefix + l | `select-pane -R` | Focus right pane |
| prefix + x | `kill-pane` | Close current pane |
| prefix + - | `split-window -h` | Split pane horizontally |
| prefix + _ | `split-window -v` | Split pane vertically |

> [!NOTE]
> The prefix key (βŒƒ + s) must be pressed before using most tmux commands. After pressing the prefix key, release it before pressing the command key.

## Zed Configuration ⚑

My Zed editor configuration with custom keybindings and tasks.

### Keybindings 🎹

#### General Navigation

| Shortcut | Context | Action | Description |
|----------|---------|--------|-------------|
| βŒƒ + h | Editor | `workspace::ActivatePaneLeft` | Focus left pane |
| βŒƒ + j | Editor | `workspace::ActivatePaneDown` | Focus down pane |
| βŒƒ + k | Editor | `workspace::ActivatePaneUp` | Focus up pane |
| βŒƒ + l | Editor | `workspace::ActivatePaneRight` | Focus right pane |
| ⌘ + @ | Editor | `editor::RestartLanguageServer` | Restart language server |
| ⌘ + ù | Editor | `git_panel::ToggleFocus` | Toggle Git panel |
| ⌘ + < | Editor | `editor::ToggleInlayHints` | Toggle inlay hints |
| ⌘ + ⇧ + k | Editor | `editor::DeleteLine` | Delete current line |
| ⌘ + g | Editor | `editor::SelectLargerSyntaxNode` | Select larger syntax node |
| ⌘ + ⇧ + g | Editor | `editor::SelectSmallerSyntaxNode` | Select smaller syntax node |
| ⌘ + i | Editor | `assistant::InlineAssist` | Inline AI assist |
| ⌘ + ; | Editor | `go_to_line::Toggle` | Toggle go to line |
| ⌘ + ⇧ + r | Editor | `editor::Rename` | Rename symbol |

#### Formatting and Movement
| Shortcut | Context | Action | Description |
|----------|---------|--------|-------------|
| βŒ₯ + ⇧ + f | Editor | `editor::Format` | Format current file |
| βŒ₯ + k | Editor | `editor::MoveLineUp` | Move line up |
| βŒ₯ + j | Editor | `editor::MoveLineDown` | Move line down |
| βŒ₯ + ↑ | Editor | `editor::MoveLineUp` | Move line up |
| βŒ₯ + ↓ | Editor | `editor::MoveLineDown` | Move line down |
| βŒ₯ + ⇧ + p | Editor | `markdown::OpenPreview` | Open markdown preview |

#### Task Shortcuts

| Shortcut | Context | Action | Description |
|----------|---------|--------|-------------|
| ⌘ + ⇧ + t | Workspace | `task::Spawn` | Open task launcher |
| βŒ₯ + f | Workspace | `task::Spawn "Files: FZF"` | Open FZF file finder |
| βŒ₯ + y | Workspace | `task::Spawn "Files: Yazi"` | Open Yazi file manager |
| βŒ₯ + g | Workspace | `task::Spawn "Git: Lazygit"` | Open Lazygit |
| βŒ₯ + r | Workspace | `task::Spawn "Files: Rename Files (Script)"` | Run file rename script |
| βŒ₯ + d | Workspace | `task::Spawn "Database: Redis CLI"` | Open Redis CLI |
| βŒ₯ + ⇧ + d | Workspace | `task::Spawn "Docker: Lazydocker"` | Open Lazydocker |
| βŒ₯ + ⇧ + k | Workspace | `task::Spawn "Kubernetes: Lazykube"` | Open Lazykube |
| βŒ₯ + t | Workspace | `task::Spawn "Laravel: Test"` | Run Laravel tests |
| βŒ₯ + ⇧ + t | Workspace | `task::Spawn "Laravel: Test (coverage)"` | Run Laravel tests with coverage |
| βŒ₯ + ⇧ + m | Workspace | `task::Spawn "Laravel: Migrate (fresh and seed)"` | Run Laravel migration fresh with seed |
| βŒ₯ + p | Workspace | `task::Spawn "Files: Generate Project Structure file"` | Generate project structure file |

#### AI and Terminal

| Shortcut | Context | Action | Description |
|----------|---------|--------|-------------|
| ⌘ + βŒ₯ + i | Workspace | `assistant::ToggleFocus` | Toggle AI assistant |
| βŒƒ + Esc | Terminal | `terminal::ToggleViMode` | Toggle Vi mode in terminal |

> [!NOTE]
> See the [Zed Keybindings Documentation](https://zed.dev/docs/key-bindings) for more information.

### Vim-Mode Keybindings πŸ§™β€β™‚οΈ

#### Editor Navigation
| Shortcut | Action | Description |
|----------|--------|-------------|
| z + a | `editor::ToggleFold` | Toggle fold at cursor |
| z + l | `editor::Fold` | Fold at cursor |
| z + L | `editor::FoldAll` | Fold all regions |
| z + h | `editor::UnfoldLines` | Unfold at cursor |
| z + H | `editor::UnfoldAll` | Unfold all regions |
| βŒƒ + n | `pane::ActivateNextItem` | Next tab/buffer |
| βŒƒ + b | `pane::ActivatePreviousItem` | Previous tab/buffer |
| βŒƒ + x | `pane::CloseActiveItem` | Close active tab/buffer |
| βŒƒ + - | `pane::SplitRight` | Split pane right |
| βŒƒ + = | `pane::SplitDown` | Split pane down |

#### Space Leader Commands
| Shortcut | Action | Description |
|----------|--------|-------------|
| Space + ; | `go_to_line::Toggle` | Toggle go to line |
| Space + R | `editor::Rename` | Rename symbol |
| Space + @ | `editor::RestartLanguageServer` | Restart language server |
| Space + g | `editor::SelectLargerSyntaxNode` | Select larger syntax node |
| Space + G | `editor::SelectSmallerSyntaxNode` | Select smaller syntax node |
| Space + j | `terminal_panel::ToggleFocus` | Toggle terminal panel |
| Space + ΓΉ | `git_panel::ToggleFocus` | Toggle Git panel |
| Space + 0 | `vim::StartOfDocument` | Go to start of document |
| Space + o | `editor::Hover` | Show hover information |
| Space + Tab | `pane::ActivateNextItem` | Next tab/buffer |
| Space + ⇧ + Tab | `pane::ActivatePreviousItem` | Previous tab/buffer |
| Space + ⇧ + s | `project_symbols::Toggle` | Toggle project symbols |
| Space + . | `editor::ToggleCodeActions` | Toggle code actions |
| Space + ⇧ + a | `editor::FindAllReferences` | Find all references |
| Space + w + d | `pane::CloseActiveItem` | Close active item |
| Space + * | `vim::MoveToNext` (partial_word) | Move to next occurrence of word |
| Space + Β¨ | `vim::MoveToPrevious` (partial_word) | Move to previous occurrence of word |

#### Task Commands
| Shortcut | Action | Description |
|----------|--------|-------------|
| Space + t + r | `task::Spawn "Files: Rename Files (Script)"` | Run file rename script |
| Space + t + f | `task::Spawn "Files: FZF"` | Open FZF file finder |
| Space + t + y | `task::Spawn "Files: Yazi"` | Open Yazi file manager |
| Space + t + d | `task::Spawn "Docker: Lazydocker"` | Open Lazydocker |
| Space + t + k | `task::Spawn "Kubernetes: Lazykube"` | Open Lazykube |
| Space + t + p | `task::Spawn "Files: Generate Project Structure file"` | Generate project structure file |
| Space + t + l | `task::Spawn "Git: Generate Git Logs file"` | Generate Git logs file |
| Space + t + L | `task::Spawn "Git: Generate Git Logs file (All)"` | Generate all Git logs file |
| Space + g + g | `task::Spawn "Git: Lazygit"` | Open Lazygit |
| Space + t + t | `task::Spawn "Laravel: Test"` | Run Laravel tests |
| Space + t + T | `task::Spawn "Laravel: Test (coverage)"` | Run Laravel tests with coverage |
| Space + M | `task::Spawn "Laravel: Migrate (fresh and seed)"` | Run Laravel migration fresh with seed |

#### File & Search Operations
| Shortcut | Action | Description |
|----------|--------|-------------|
| Space + f + f | `file_finder::Toggle` | Toggle file finder |
| Space + f + p | `projects::OpenRecent` | Open recent project |
| Space + f + b | `vim::Search` | Search in current file |
| Space + f + s | `outline::Toggle` | Toggle outline view |
| Space + f + r | `search::ToggleReplace` | Toggle search & replace |
| Space + f + l | `go_to_line::Toggle` | Toggle go to line |
| Space + d | `editor::SelectAllMatches` | Select all matches |
| Space + e | `project_panel::ToggleFocus` | Toggle project panel |
| Space + b + f | `editor::Format` | Format current file |

#### AI Assistant
| Shortcut | Action | Description |
|----------|--------|-------------|
| Space + i | `assistant::InlineAssist` | Inline AI assist |
| Space + c + c + o | `assistant::ToggleFocus` | Toggle AI assistant |
| Space + c + c + p | `assistant::QuoteSelection` | Quote selected text to assistant |

#### Settings & Configuration
| Shortcut | Action | Description |
|----------|--------|-------------|
| Space + s + k | `zed::OpenKeymap` | Open keymap settings |
| Space + s + s | `zed::OpenSettings` | Open settings |
| Space + s + t | `zed::OpenTasks` | Open tasks |
| Space + s + T | `theme_selector::Toggle` | Toggle theme selector |
| Space + s + d | `diagnostics::Deploy` | Deploy diagnostics |

> [!NOTE]
> You can use the default Vim keybindings in Zed by enabling Vim mode in the settings.
> See the [Zed Vim Documentation](https://zed.dev/docs/vim) for more information.

### Tasks πŸ”„

| Task Name | Command | Description |
|-----------|---------|-------------|
| Git: Generate Git Logs file | `~/.config/zed/tasks/generate_git_log.sh $(git rev-parse --abbrev-ref HEAD) 400` | Generate Git logs for current branch (limited entries) |
| Git: Generate Git Logs file (All) | `~/.config/zed/tasks/generate_git_log.sh $(git rev-parse --abbrev-ref HEAD) 999999` | Generate Git logs for current branch (all entries) |
| Git: Lazygit | `lazygit -p $ZED_WORKTREE_ROOT` | Open Lazygit in project root |
| Files: Rename Files (Script) | `~/.config/zed/tasks/rename_files.sh "${1:Path}" "${2:Pattern}" "${3:Find}" "${4:Replace}"` | Interactive batch file renaming with parameters |
| Files: FZF | `fzf` with preview and custom bindings | Advanced file finder with preview and syntax highlighting |
| Files: Yazi | `yazi` | Terminal file manager in project root |
| Files: Generate Project Structure | `eza --tree --level=5 --git-ignore` | Generate project structure avoiding vendor/node_modules |
| Laravel: Test | `php artisan test` | Run Laravel tests |
| Laravel: Test (coverage) | `php artisan test --coverage` | Run Laravel tests with coverage |
| Laravel: Migrate (fresh and seed) | `php artisan migrate:fresh --seed` | Fresh database migration with seed |
| Laravel: Migrate (fresh) | `php artisan migrate:fresh` | Fresh database migration without seed |
| Docker: Lazydocker | `lazydocker` | Terminal UI for Docker |
| Kubernetes: Lazykube | `lazykube` | Terminal UI for Kubernetes |
| Database: Redis CLI | `redis-cli` | Redis command line interface |

> [!NOTE]
> The tasks are executed in the context of the current workspace. The `ZED_WORKTREE_ROOT` environment variable is set to the root directory of the current workspace.
> See the [Zed Tasks Documentation](https://zed.dev/docs/tasks) for more information.

## Installation πŸ“₯

### One-Line Installation

```bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/kbrdn1/dotfiles/main/install.sh)"
```

### Manual Installation

1. **Install Command Line Tools**
```bash
xcode-select --install
```

2. **Install Homebrew**
```bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
```

3. **Install Oh My Zsh**
```bash
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
```

4. **Clone and Apply Dotfiles**
```bash
chezmoi init https://github.com/kbrdn1/dotfiles.git
chezmoi apply
```

### Post-Installation

1. Configure system preferences:
```bash
# Keyboard
defaults write NSGlobalDomain KeyRepeat -int 1

# Screenshots
mkdir ~/Screenshots
defaults write com.apple.screencapture location ~/Screenshots
defaults write com.apple.screencapture type png
defaults write com.apple.screencapture disable-shadow -bool true

# Menu Bar
defaults write NSGlobalDomain _HIHideMenuBar -bool true

# Dock
defaults write com.apple.dock autohide -bool true
defaults write com.apple.dock autohide-time-modifier -float 0.15
```

2. Set up Yabai permissions
3. Install SetApp applications manually
4. Restart your computer

## Acknowledgments πŸ™

Special thanks to:
- [FelixKratz](https://github.com/FelixKratz) for window management setup inspiration
- [The Chezmoi team](https://github.com/twpayne/chezmoi) for the dotfiles management tool

## License πŸ“„

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.