https://github.com/kbrdn1/dotfiles
My personal OS X dotfiles.
https://github.com/kbrdn1/dotfiles
bat brew chezmoi dotfiles ghostty home-manager nix omz p10k sketchybar skhd superfile tmux zed zsh
Last synced: 3 months ago
JSON representation
My personal OS X dotfiles.
- Host: GitHub
- URL: https://github.com/kbrdn1/dotfiles
- Owner: kbrdn1
- License: mit
- Created: 2024-03-28T16:01:49.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2026-03-26T11:36:39.000Z (3 months ago)
- Last Synced: 2026-03-27T04:34:33.096Z (3 months ago)
- Topics: bat, brew, chezmoi, dotfiles, ghostty, home-manager, nix, omz, p10k, sketchybar, skhd, superfile, tmux, zed, zsh
- Language: Shell
- Homepage:
- Size: 15.8 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
Awesome Lists containing this project
README
# Dotfiles
Welcome to my dotfiles repository! This repository is managed using [Chezmoi](https://www.chezmoi.io/) and [Nix Home Manager](https://github.com/nix-community/home-manager).

## Table of Contents π
- [Stack Overview π¦](#stack-overview-)
- [Sketchybar Themes π¨](#sketchybar-themes-)
- [Package Management π οΈ](#package-management-)
- [CLI Tools π»](#cli-tools-)
- [GUI Applications π₯οΈ](#gui-applications-)
- [Aliases & Functions π§](#aliases--functions-)
- [Window Manager (AeroSpace) πͺ](#window-manager-aerospace-)
- [Shortcuts & Keybindings β¨οΈ](#shortcuts--keybindings-)
- [Neovim Configuration π](#neovim-configuration-)
- [Zed Configuration β‘](#zed-configuration-)
- [Installation π₯](#installation-)
- [Acknowledgments π](#acknowledgments-)
- [License π](#license-)
## Stack Overview π¦
| Layer | Tool | Purpose |
|-------|------|---------|
| **Package Manager** | Nix + Home Manager 24.11 | Declarative CLI tools (70+ packages) |
| **GUI Apps** | Homebrew Casks | GUI applications and system tools |
| **Dotfiles** | Chezmoi | Configuration file management |
| **Shell** | Zsh + Oh-My-Zsh | Interactive shell with plugins |
| **Theme** | Powerlevel10k | Shell prompt theme |
| **Primary Editor** | Zed | Modern code editor with AI integration |
| **Secondary Editor** | Neovim + LazyVim | Terminal editor with LSP, Claude Code integration |
| **Terminal** | Ghostty + Kitty + Tmux | GPU terminals with multiplexer (Claude Dark theme) |
| **Window Manager** | AeroSpace + Karabiner-Elements | Tiling window manager (no SIP required) |
| **Menu Bar** | Sketchybar | Custom menu bar with 6 themes |
| **File Manager** | Yazi + Superfile | Terminal file managers |
| **Music** | MPD + rmpc | Music player daemon with TUI client |
## Sketchybar Themes π¨
| Theme | Style | Accent Color | Description |
|-------|-------|--------------|-------------|
| **Claude Dark** β | Dark | `#D4825D` (copper) | Warm, elegant theme (default) |
| **Claude Light** | Light | `#C15F3C` (copper) | Light version for bright environments |
| **Blueberry Dark** | Dark | `#27E8A7` (mint) | Fresh blue/violet palette |
| **Catppuccin** | Dark | Pastel | Modern pastel theme |
| **Tokyo Night** | Dark | Blue | Popular VS Code theme port |
| **Nord** | Dark | Cyan | Arctic, bluish color palette |
### Theme Commands
| Command | Description |
|---------|-------------|
| `~/.config/sketchybar/change_theme.sh ` | Change to specified theme |
| `~/.config/sketchybar/preview_theme.sh` | Preview all available themes |
## Package Management π οΈ
| Tool | Version | Purpose | Packages |
|------|---------|---------|----------|
| **Nix** | Multi-user daemon | Declarative package manager | System foundation |
| **Home Manager** | 24.11 | User environment management | 63 CLI tools |
| **Homebrew** | Latest | GUI apps & system tools | Complementary to Nix |
| **Chezmoi** | Latest | Dotfile management | Config sync |
### Nix Management
| Alias | Command | Description |
|-------|---------|-------------|
| `reload-nix` | `nix run home-manager/release-24.11 -- switch --flake ~/nix-config` | Apply Nix configuration changes |
| `edit-nix` | `$EDITOR ~/nix-config/home.nix` | Edit Nix configuration file |
## CLI Tools π»
> **Note**: All Nix-managed tools have their versions pinned via `flake.lock` (nixpkgs 24.11 channel). Specific version numbers are listed where explicitly configured in `home.nix`; otherwise versions follow the nixpkgs pin.
### Programming Languages & Runtimes
| Tool | Version | Managed By | Notes |
|------|---------|------------|-------|
| [Node.js](https://nodejs.org/) | 24.x | Nix | JavaScript runtime |
| [Python](https://www.python.org/) | 3.13.x | Nix | Python interpreter |
| [PHP](https://www.php.net/) | 8.4.x | Nix | With pcov, redis extensions |
| [Go](https://golang.org/) | - | Nix | Golang compiler |
| [Rust](https://www.rust-lang.org/) | - | Nix | Rust toolchain (rustc, cargo, clippy, rustfmt) |
| [Rust Analyzer](https://rust-analyzer.github.io/) | - | Nix | Rust LSP server |
| [Bun](https://bun.sh/) | - | Nix | Fast JavaScript runtime |
| [Deno](https://deno.land/) | - | Nix | Secure TypeScript runtime |
| [pnpm](https://pnpm.io/) | - | Nix | Fast package manager |
| [Symfony CLI](https://symfony.com/download) | - | Nix | Symfony tooling |
| [Composer](https://getcomposer.org/) | Latest | Homebrew | PHP dependency manager |
### Kubernetes & Container Tools
| Tool | Version | Managed By | Purpose |
|------|---------|------------|---------|
| [kubectl](https://kubernetes.io/) | - | Nix | Kubernetes CLI |
| [Helm](https://helm.sh/) | - | Nix | Kubernetes package manager |
| [Minikube](https://minikube.sigs.k8s.io/) | - | Nix | Local Kubernetes |
| [ArgoCD](https://argoproj.github.io/cd/) | - | Nix | GitOps CD tool |
| [k9s](https://k9scli.io/) | - | Nix | Kubernetes TUI |
| [kubectx](https://github.com/ahmetb/kubectx) | - | Nix | Context switcher |
| [stern](https://github.com/stern/stern) | - | Nix | Multi-pod logs |
| [kustomize](https://kustomize.io/) | - | Nix | Kubernetes config |
| [kubecolor](https://github.com/hidetatz/kubecolor) | - | Nix | Colorized kubectl |
| [dive](https://github.com/wagoodman/dive) | - | Nix | Docker image explorer |
| [popeye](https://popeyecli.io/) | - | Nix | Kubernetes scanner |
| [Lazykube](https://github.com/TNK-Studio/lazykube) | Latest | Homebrew | Kubernetes TUI |
### Development Tools
| Tool | Version | Managed By | Purpose |
|------|---------|------------|---------|
| [Git](https://git-scm.com/) | - | Nix | Version control |
| [GitHub CLI](https://cli.github.com/) | - | Nix | GitHub integration |
| [Lazygit](https://github.com/jesseduffield/lazygit) | - | Nix | Git TUI |
| [Lazydocker](https://github.com/jesseduffield/lazydocker) | - | Nix | Docker TUI |
| [Lazysql](https://github.com/jorgerojas26/lazysql) | - | Nix | SQL TUI client |
| [Redis](https://redis.io/) | - | Nix | In-memory database |
| [Pandoc](https://pandoc.org/) | - | Nix | Document converter |
| [Neovim](https://neovim.io/) | - | Nix | Secondary editor (LazyVim) |
| [Sesh](https://github.com/joshmedeski/sesh) | - | Nix | Tmux session manager |
| [PlantUML](https://plantuml.com/) | - | Nix | Diagram generation |
| [D2](https://d2lang.com/) | - | Nix | Modern diagram scripting |
| [Gnuplot](http://www.gnuplot.info/) | - | Nix | Graph generation |
| [Just](https://github.com/casey/just) | - | Nix | Task runner |
| [Tokei](https://github.com/XAMPPRocky/tokei) | - | Nix | Code statistics |
| [Hyperfine](https://github.com/sharkdp/hyperfine) | - | Nix | Benchmarking |
| [Chezmoi](https://www.chezmoi.io/) | - | Nix | Dotfiles management |
| [Direnv](https://direnv.net/) | - | Nix | Directory-level environments |
### Shell & Terminal
| Tool | Version | Managed By | Purpose |
|------|---------|------------|---------|
| [Zsh](https://www.zsh.org/) | - | Nix | Interactive shell |
| [Oh My Zsh](https://ohmyz.sh/) | Latest | Manual (install.sh) | Zsh framework |
| [Powerlevel10k](https://github.com/romkatv/powerlevel10k) | Latest | Manual (install.sh) | Zsh theme |
| [Bat](https://github.com/sharkdp/bat) | - | Nix | Enhanced cat (Claude Dark theme) |
| [Eza](https://eza.rocks/) | - | Nix | Modern ls |
| [Yazi](https://github.com/sxyazi/yazi) | - | Nix | File manager |
| [Superfile](https://github.com/yorukot/superfile) | Latest | Homebrew | File manager TUI |
| [Tmux](https://github.com/tmux/tmux) | - | Nix | Terminal multiplexer |
| [Fzf](https://github.com/junegunn/fzf) | - | Nix | Fuzzy finder (Claude Dark theme) |
| [Zoxide](https://github.com/ajeetdsouza/zoxide) | - | Nix | Smarter cd (`z` command) |
| [Neofetch](https://github.com/dylanaraps/neofetch) | - | Nix | System info |
### System & Network Tools
| Tool | Version | Managed By | Purpose |
|------|---------|------------|---------|
| [coreutils](https://www.gnu.org/software/coreutils/) | - | Nix | GNU core utilities |
| [findutils](https://www.gnu.org/software/findutils/) | - | Nix | GNU find utilities |
| [gnused](https://www.gnu.org/software/sed/) | - | Nix | GNU sed |
| [gnugrep](https://www.gnu.org/software/grep/) | - | Nix | GNU grep |
| [Tree](https://mama.indstate.edu/users/ice/tree/) | - | Nix | Directory listing |
| [fd](https://github.com/sharkdp/fd) | - | Nix | Find alternative |
| [ripgrep](https://github.com/BurntSushi/ripgrep) | - | Nix | Grep alternative |
| [htop](https://htop.dev/) | - | Nix | Process viewer |
| [duf](https://github.com/muesli/duf) | - | Nix | Disk usage |
| [bottom](https://github.com/ClementTsang/bottom) | - | Nix | System monitor |
| [jq](https://jqlang.github.io/jq/) | - | Nix | JSON processor |
| [yq](https://github.com/mikefarah/yq) | - | Nix | YAML processor |
| [curl](https://curl.se/) | - | Nix | URL transfer |
| [wget](https://www.gnu.org/software/wget/) | - | Nix | Web downloader |
| [HTTPie](https://httpie.io/) | - | Nix | HTTP client |
| [dogdns](https://github.com/ogham/dog) | - | Nix | DNS client |
### Multimedia & Music
| Tool | Version | Managed By | Purpose |
|------|---------|------------|---------|
| [ffmpeg](https://ffmpeg.org/) | - | Nix | Video/audio processing |
| [ImageMagick](https://imagemagick.org/) | - | Nix | Image processing |
| [Poppler](https://poppler.freedesktop.org/) | - | Nix | PDF tools |
| [rmpc](https://github.com/mierak/rmpc) | - | Nix | MPD client TUI |
| [mpc](https://www.musicpd.org/clients/mpc/) | - | Nix | MPD CLI client |
### Cloud & API Tools
| Tool | Version | Managed By | Purpose |
|------|---------|------------|---------|
| [AWS CLI](https://aws.amazon.com/cli/) | v2 | Nix | Amazon Web Services |
| [Stripe CLI](https://stripe.com/docs/stripe-cli) | - | Nix | Stripe API testing |
## GUI Applications π₯οΈ
### Development
| Application | Purpose | Managed By | Cask |
|-------------|---------|------------|------|
| [Zed](https://zed.dev/) | Modern code editor | Homebrew | `zed@preview` |
| [Ghostty](https://ghostty.org/) | GPU-accelerated terminal | Homebrew | `ghostty` |
| [Warp](https://warp.dev/) | Rust-based terminal | Homebrew | `warp` |
| [OrbStack](https://orbstack.dev/) | Docker alternative | Homebrew | `orbstack` |
| [Postman](https://www.postman.com/) | API platform | Homebrew | `postman` |
| [TablePlus](https://tableplus.com/) | Database management | SetApp | - |
### Browsers & Communication
| Application | Purpose | Managed By | Cask |
|-------------|---------|------------|------|
| [Arc](https://arc.net/) | Modern browser | Homebrew | `arc` |
| [Slack](https://slack.com/) | Team communication | Homebrew | `slack` |
| [Discord](https://discord.com/) | Community platform | Homebrew | `discord` |
| [WhatsApp](https://www.whatsapp.com/) | Messaging | Homebrew | `whatsapp` |
| [Telegram](https://telegram.org/) | Messaging | Homebrew | `telegram` |
| [Mattermost](https://mattermost.com/) | Team collaboration | Homebrew | `mattermost` |
### Productivity
| Application | Purpose | Managed By | Cask |
|-------------|---------|------------|------|
| [Raycast](https://raycast.com/) | Launcher & productivity | Homebrew | `raycast` |
| [Obsidian](https://obsidian.md/) | Knowledge base | Homebrew | `obsidian` |
| [Claude](https://claude.ai/) | AI assistant | Homebrew | `claude` |
| [Dashlane](https://www.dashlane.com/) | Password manager | App Store | - |
| [Figma](https://www.figma.com/) | Design tool | Homebrew | `figma` |
| [Anki](https://apps.ankiweb.net/) | Spaced repetition | Homebrew | `anki` |
| [CleanShot X](https://cleanshot.com/) | Screenshot tool | SetApp | - |
| [PixelSnap](https://getpixelsnap.com/) | Measurement tool | SetApp | - |
| [Sip](https://sipapp.io/) | Color picker | SetApp | - |
| [Yoink](https://eternalstorms.at/yoink/mac/) | Drag & drop helper | SetApp | - |
### System Tools
| Application | Purpose | Managed By | Cask |
|-------------|---------|------------|------|
| [AeroSpace](https://github.com/nikitabobko/AeroSpace) | Window manager | Homebrew | `nikitabobko/tap/aerospace` |
| [Sketchybar](https://github.com/FelixKratz/SketchyBar) | Menu bar | Homebrew | `felixkratz/formulae/sketchybar` |
| [Borders](https://github.com/FelixKratz/JankyBorders) | Window borders | Homebrew | `felixkratz/formulae/borders` |
| [SF Symbols](https://developer.apple.com/sf-symbols/) | System icons | Homebrew | `sf-symbols` |
| [Logi Options+](https://www.logitech.com/en-us/software/logi-options-plus.html) | Logitech device manager | Homebrew | `logi-options+` |
| [Rectangle](https://rectangleapp.com/) | Window management | Homebrew | `rectangle` |
| [CleanMyMac X](https://macpaw.com/cleanmymac) | System cleaner | SetApp | - |
| [NotchNook](https://lo.cafe/notchnook) | Notch utility | SetApp | - |
| [Canary Mail](https://canarymail.io/) | Email client | SetApp | - |
| [Clop](https://setapp.com/apps/clop) | Media optimizer | SetApp | - |
### Gaming & Entertainment
| Application | Purpose | Managed By | Cask |
|-------------|---------|------------|------|
| [Steam](https://store.steampowered.com/) | Gaming platform | Homebrew | `steam` |
## 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 |
| `edit-p10k` | `$EDITOR ~/.p10k.zsh` | Edit Powerlevel10k configuration |
### Development Aliases
| Alias | Command | Description |
|-------|---------|-------------|
| `py`, `python` | `/usr/bin/python3` | Python 3 |
| `pa`, `laravel` | `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 |
| `z` | `zoxide` | Smart directory navigation (replaces `cd` for frequent dirs) |
| `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 |
| `ad` | `agent-deck` | Launch Agent Deck (bypasses nested tmux detection) |
### 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 |
### Web Search Aliases
| Alias | Command | Description |
|-------|---------|-------------|
| `gg` | `google` | Google search from terminal |
| `yt` | `youtube` | YouTube search from terminal |
### Window Manager Services
| Alias | Command | Description |
|-------|---------|-------------|
| `reload-sketchybar` | `brew services restart sketchybar` | Restart Sketchybar menu bar |
| `edit-sketchybar` | `$EDITOR $XDG_CONFIG_HOME/sketchybar` | Edit Sketchybar configuration |
| `reload-borders` | `brew services restart borders` | Restart window borders |
| `edit-borders` | `$EDITOR $XDG_CONFIG_HOME/borders` | Edit borders configuration |
### Tmux
| 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 |
### Custom Functions
| Function | Usage | Description |
|----------|-------|-------------|
| `y()` | `y [path]` | Launch Yazi file manager with directory change on exit |
| `brew()` | `brew [args]` | Homebrew wrapper that triggers Sketchybar updates |
| `zen()` | `zen [mode]` | Toggle Sketchybar zen mode |
## Window Manager (AeroSpace) πͺ
> Modern tiling window manager (no SIP required) - See [MIGRATION-YABAI-TO-AEROSPACE.md](./MIGRATION-YABAI-TO-AEROSPACE.md)
> [!NOTE]
> **Dual input mode** pour clavier AZERTY - le left Option reste libre pour les caracteres speciaux (`{ } [ ] @ # | \`).
>
> | Mode | Methode | Usage |
> |------|---------|-------|
> | **Leader key** | β₯β (F18 via Karabiner) puis touche | Clavier interne (portable) |
> | **Held modifier** | β₯β maintenu (Ctrl+Alt via Karabiner) puis touche | Clavier externe (desktop) |
>
> Sketchybar affiche un indicateur visuel du mode actif (aero/resize/service).
### Workspace Navigation
| Leader key | Held modifier | Workspace | Applications |
|------------|---------------|-----------|-------------|
| β₯β 1 | β₯β+1 | 1 - Home | Mail, Calendar, Canary Mail |
| β₯β 2 | β₯β+2 | 2 - Music | Apple Music, Spotify, Tidal |
| β₯β 3 | β₯β+3 | 3 - Development | Zed, Ghostty, VS Code, JetBrains, Postman |
| β₯β Q | β₯β+Q | 4 - Web | Helium, Dia/Arc, Chrome, Safari |
| β₯β W | β₯β+W | 5 - Communication | Slack, Discord, Messages, Teams, Zoom |
| β₯β E | β₯β+E | 6 - Server Tools | TablePlus, OrbStack, Docker |
| β₯β O | β₯β+O | 7 - Notes | Obsidian |
| β₯β C | β₯β+C | 8 - Claude AI | Claude |
| β₯β Tab | β₯β+Tab | Back and forth | Previous workspace |
### Window Focus
| Leader key | Held modifier | Action |
|------------|---------------|--------|
| β₯β h/j/k/l | β₯β+h/j/k/l | Focus window (vim-style) |
| β₯β β/β/β/β | β₯β+β/β/β/β | Focus window (arrows) |
### Window Movement
| Leader key | Held modifier | Action |
|------------|---------------|--------|
| β₯β β§+h/j/k/l | β₯β+β§+h/j/k/l | Move window (vim-style) |
| β₯β β§+1-3/Q/W/E/O/C | β₯β+β§+key | Move to workspace |
### Layout & Display
| Leader key | Held modifier | Action |
|------------|---------------|--------|
| β₯β / | β₯β+/ | Toggle tiles layout |
| β₯β , | β₯β+, | Toggle accordion layout |
| β₯β β§+Space | β₯β+β§+Space | Toggle floating/tiling |
| β₯β F | β₯β+F | Toggle fullscreen |
| β₯β -/= | β₯β+-/= | Resize window (smart) |
| β₯β R | β₯β+R | Enter resize mode |
### Resize Mode
> Enter with β₯β R. Exit with Esc or Enter. Stays in resize mode until exit.
| Shortcut | Action | Description |
|----------|--------|-------------|
| h | `resize width +50` | Grow width (left) |
| j | `resize height -50` | Shrink height (down) |
| k | `resize height +50` | Grow height (up) |
| l | `resize width -50` | Shrink width (right) |
| β§+h | `resize width -50` | Shrink width (opposite) |
| β§+j | `resize height +50` | Grow height (opposite) |
| β§+k | `resize height -50` | Shrink height (opposite) |
| β§+l | `resize width +50` | Grow width (opposite) |
| -/= | Smart resize Β±50 | Resize smart |
| β§+-/= | Smart resize Β±10 | Fine smart resize |
### Utilities
| Leader key | Held modifier | Action |
|------------|---------------|--------|
| β₯β Enter | β₯β+Enter | Open Ghostty terminal |
| β₯β β§+X | β₯β+β§+X | Close window |
| β₯β β§+= | β₯β+β§+= | Balance window sizes |
| β₯β β§+R | β₯β+β§+R | Reload config |
| β₯β β§+; | β₯β+β§+; | Enter service mode |
| Esc | Esc | Exit current mode |
### SketchyVim (svim)
> Ajoute les modes vim (Normal/Insert/Visual) a tous les champs texte macOS via l'API Accessibility.
> Indicateur de mode visible dans Sketchybar.
| Config | Description |
|--------|-------------|
| `~/.config/svim/svimrc` | Remaps vim (Y, H, L) |
| `~/.config/svim/blacklist` | Apps exclues (Ghostty, Zed, terminals) |
| `~/.config/svim/svim.sh` | Hook sketchybar pour indicateur de mode |
## Shortcuts & Keybindings β¨οΈ
### Tmux Keybindings π₯οΈ
> **Prefix**: β + A (replaces default β + B)
> **Theme**: Claude Dark with copper accent (`#D4825D`)
> **Config source**: `home.nix` (Nix Home Manager)
#### Session Management
| Shortcut | Action | Description |
|----------|--------|-------------|
| prefix + R | `source-file ~/.tmux.conf` | Reload configuration |
| prefix + T | Sesh picker | Open session manager (fzf-based, with multi-source: tmux, configs, zoxide, find) |
| prefix + L | Sesh last | Switch to last session |
#### Window Management
| Shortcut | Action |
|----------|--------|
| prefix + C | Create new window (in current path) |
| prefix + B | Previous window |
| prefix + N | Next window |
| prefix + X (uppercase) | Close window |
#### Pane Management
| Shortcut | Action |
|----------|--------|
| prefix + H | Focus left pane |
| prefix + J | Focus down pane |
| prefix + K | Focus up pane |
| prefix + L | Focus right pane |
| prefix + x (lowercase) | Close pane |
| prefix + V | Split horizontally (in current path) |
| prefix + S | Split vertically (in current path) |
| prefix + β§ + H/J/K/L | Resize pane (repeatable, Β±5) |
#### Navigation (no prefix)
| Shortcut | Action |
|----------|--------|
| β + h/j/k/l | Seamless navigation between tmux panes and nvim splits (tmux.nvim) |
#### Copy Mode
| Shortcut | Action |
|----------|--------|
| prefix + V | Enter copy mode |
| Escape | Cancel copy mode |
| Enter | Copy selection and exit |
#### Plugins
| Plugin | Trigger | Purpose |
|--------|---------|---------|
| [sesh](https://github.com/joshmedeski/sesh) | prefix + T | Smart session manager with fzf |
| [tmux.nvim](https://github.com/aserowy/tmux.nvim) | β + h/j/k/l | Seamless nvim/tmux navigation |
| [fzf-url](https://github.com/wfxr/tmux-fzf-url) | prefix + U | URL picker with fzf |
| [tmux-yank](https://github.com/tmux-plugins/tmux-yank) | - | System clipboard integration |
| claude-dark | - | Custom Claude Dark theme (copper accent `#D4825D`) |
| tmux-cpu | - | CPU usage in status bar |
| tmux-battery | - | Battery status (laptops) |
## Neovim Configuration π
Secondary editor using [LazyVim](https://www.lazyvim.org/) with custom plugins and Claude Dark colorscheme.
### Key Features
| Feature | Plugin/Config | Description |
|---------|--------------|-------------|
| **Colorscheme** | `claude-dark` (custom) | Warm copper theme matching terminal setup |
| **AI Integration** | `claude-code.nvim` | Claude Code integration in editor |
| **Git Worktrees** | `git-worktree.nvim` | Manage git worktrees with telescope |
| **File Manager** | `neo-tree.nvim` | File tree with icons |
| **Docker** | `lazydocker.nvim` | Docker TUI integration |
| **Task Runner** | `overseer.nvim` | Run Zed-compatible tasks from nvim |
| **Tmux** | `tmux.nvim` | Seamless nvim/tmux pane navigation |
| **PHP** | Laravel/PHP extras | PHP development support |
| **Rust** | `rust-analyzer` + extras | Rust development support |
| **Markdown** | `render-markdown.nvim` | Rendered markdown preview |
| **Multi-cursor** | `vim-visual-multi` | Multiple cursor editing |
| **Autosave** | `auto-save.nvim` | Automatic file saving |
### Plugin Structure
```
~/.config/nvim/lua/
βββ config/ # Core config (keymaps, options, autocmds, lazy)
βββ plugins/ # Plugin specs (one file per plugin/group)
βββ claude-dark/ # Custom colorscheme
βββ overseer/ # Task templates (Zed tasks compat)
```
## Zed Configuration β‘
Primary editor with custom Vim-mode keybindings, task integrations, and Claude Dark theme.
### Keybindings πΉ
#### Global Navigation
| Shortcut | Action | Description |
|----------|--------|-------------|
| β + h/j/k/l | `workspace::ActivatePane*` | Focus pane (left/down/up/right) |
| β + β§ + h/j/k/l | `pane::SplitAndMove*` | Split pane and move (left/down/up/right) |
| β + @ | `editor::RestartLanguageServer` | Restart language server |
| β + ΓΉ | `git_panel::ToggleFocus` | Toggle Git panel |
#### Editor
| Shortcut | Action | Description |
|----------|--------|-------------|
| β + Space | `editor::ShowCompletions` | Show completions |
| β₯ + β§ + f | `editor::Format` | Format current file |
| β₯ + k/j | `editor::MoveLineUp/Down` | Move line up/down |
| β₯ + β/β | `editor::MoveLineUp/Down` | Move line up/down (arrows) |
| β + β§ + r | `editor::Rename` | Rename symbol |
| β + β§ + k | `editor::DeleteLine` | Delete current line |
| β + g | `editor::SelectLargerSyntaxNode` | Select larger syntax node |
| β + β§ + g | `editor::SelectSmallerSyntaxNode` | Select smaller syntax node |
| β + < | `editor::ToggleInlayHints` | Toggle inlay hints |
| β + ; | `go_to_line::Toggle` | Go to line |
| β + i | `assistant::InlineAssist` | Inline AI assist |
| β₯ + β§ + p | `markdown::OpenPreview` | Open markdown preview |
#### Alt Shortcuts (Workspace + Terminal)
> These shortcuts work globally and in terminal context for quick access to tools.
| Shortcut | Task | Description |
|----------|------|-------------|
| β + β§ + t | `task::Spawn` | Open task launcher |
| β₯ + C | Claude Code (skip perms) | Open Claude Code |
| β₯ + f | Files: FZF | FZF file finder |
| β₯ + y | Files: Yazi | Yazi file manager |
| β₯ + R | Files: Rename Files (FZF) | Batch rename files |
| β₯ + g | Git: Lazygit | Open Lazygit |
| β₯ + r | Database: Redis CLI | Open Redis CLI |
| β₯ + s | LazySQL | SQL TUI client |
| β₯ + c | LazyCurl | HTTP client TUI |
| β₯ + S | LazySSH | SSH manager TUI |
| β₯ + d | Docker: Lazydocker | Docker TUI |
| β₯ + k | Kubernetes: Lazykube | Kubernetes TUI |
| β₯ + p | Files: Generate Project Structure | Generate project tree |
#### Terminal
> **No direct `ctrl-*` bindings** in Terminal context β all navigation uses the `ctrl-a` prefix (tmux-like) to avoid conflicts with Claude Code, lazygit, and other TUI apps.
| Shortcut | Action | Description |
|----------|--------|-------------|
| β + Esc | `terminal::ToggleViMode` | Toggle Vi mode |
### Ctrl-A Prefix (tmux-like) π₯οΈ
> **Available in both Editor (vim mode) and Terminal.** Mirrors tmux prefix workflow β `ctrl-a` replaces `vim::Increment` in editor.
#### Pane Navigation & Management
| Shortcut | Action | Description |
|----------|--------|-------------|
| βa h/j/k/l | `workspace::ActivatePane*` | Focus pane (left/down/up/right) |
| βa H/J/K/L | `workspace::SwapPane*` | Swap pane (left/down/up/right) |
| βa z | `workspace::ToggleZoom` | Toggle pane zoom |
| βa = | `workspace::IncreaseActiveDockSize` | Grow dock (matches aerospace) |
| βa - | `workspace::DecreaseActiveDockSize` | Shrink dock (matches aerospace) |
| βa + | `workspace::ResetActiveDockSize` | Reset dock size |
#### Tab / Buffer
| Shortcut | Action | Description |
|----------|--------|-------------|
| βa n | `pane::ActivateNextItem` | Next tab |
| βa b | `pane::ActivatePreviousItem` | Previous tab |
| βa x | `pane::CloseActiveItem` | Close tab |
| βa v | `pane::SplitRight` | Split right |
| βa s | `pane::SplitDown` | Split down |
| βa Tab | `pane::ActivateNextItem` | Next tab (alt) |
#### Ctrl-A Sub-menus
| Shortcut | Action | Description |
|----------|--------|-------------|
| βa e | `project_panel::ToggleFocus` | Toggle explorer |
| βa Space | `file_finder::Toggle` | File finder |
| βa f f/g/p/s/t | Find | File/Grep/Project/Symbols/Terminal |
| βa a c | Claude Code | New session (skip perms) |
| βa a C | Claude Code (Continue) | Continue session (skip perms) |
| βa a i/f/p | AI | Inline assist / Agent focus / Add to thread |
| βa g g | `git_panel::ToggleFocus` | Git panel |
| βa G G | Git: Lazygit | Open Lazygit |
| βa t * | Tools | All TUI tools (same as `space t *`) |
| βa , * | Settings | Keymap/Settings/Tasks/Theme/Extensions |
### Vim-Mode Keybindings π§ββοΈ
#### Quick Navigation (Ctrl) β Editor only
| Shortcut | Action | Description |
|----------|--------|-------------|
| β + n | `pane::ActivateNextItem` | Next tab/buffer |
| β + b | `pane::ActivatePreviousItem` | Previous tab/buffer |
| β + x | `pane::CloseActiveItem` | Close active tab/buffer |
| β + v | `pane::SplitRight` | Split pane right |
| β + s | `pane::SplitDown` | Split pane down |
#### Folding (z)
| Shortcut | Action | Description |
|----------|--------|-------------|
| z + a | `editor::ToggleFold` | Toggle fold at cursor |
| z + h | `editor::Fold` | Fold at cursor |
| z + H | `editor::FoldAll` | Fold all regions |
| z + l | `editor::UnfoldLines` | Unfold at cursor |
| z + L | `editor::UnfoldAll` | Unfold all regions |
#### Space Leader - Explorer & Search (space f)
| Shortcut | Action | Description |
|----------|--------|-------------|
| Space + e | `project_panel::ToggleFocus` | Toggle project panel |
| Space + Space | `file_finder::Toggle` | File finder |
| Space + f + f | `file_finder::Toggle` | File finder |
| Space + f + g | `pane::DeploySearch` | Global search |
| Space + f + p | `projects::OpenRecent` | Open recent project |
| Space + f + b | `vim::Search` | Search in buffer |
| Space + f + s | `outline::Toggle` | Toggle outline view |
| Space + f + r | `search::ToggleReplace` | Search & replace |
| Space + f + l | `go_to_line::Toggle` | Go to line |
| Space + f + t | `terminal_panel::ToggleFocus` | Toggle terminal |
| Space + f + T | `workspace::NewCenterTerminal` | New center terminal |
| Space + ; | `go_to_line::Toggle` | Go to line |
#### Space Leader - Buffer (space b)
| Shortcut | Action | Description |
|----------|--------|-------------|
| Space + b + n | `pane::ActivateNextItem` | Next buffer |
| Space + b + b | `pane::ActivatePreviousItem` | Previous buffer |
| Space + b + d | `pane::CloseActiveItem` | Close buffer |
| Space + b + o | `pane::CloseOtherItems` | Close other buffers |
| Space + b + f | `editor::Format` | Format buffer |
| Space + b + D | `editor::DiffClipboardWithSelection` | Diff clipboard |
| Space + Tab | `pane::ActivateNextItem` | Next tab |
| Space + β§ + Tab | `pane::ActivatePreviousItem` | Previous tab |
| Space + v | `pane::SplitRight` | Split right |
| Space + s | `pane::SplitDown` | Split down |
| Space + x | `pane::CloseActiveItem` | Close item |
| Space + m | `markdown::OpenPreview` | Markdown preview |
| Space + M | `markdown::OpenPreviewToTheSide` | Markdown preview (side) |
#### Space Leader - Window / Split (space w)
| Shortcut | Action | Description |
|----------|--------|-------------|
| Space + w + v | `pane::SplitRight` | Split right |
| Space + w + s | `pane::SplitDown` | Split down |
| Space + w + d | `pane::CloseActiveItem` | Close pane |
| Space + w + h/j/k/l | `workspace::ActivatePane*` | Focus pane |
| Space + w + H/J/K/L | `workspace::SwapPane*` | Swap/move pane |
| Space + w + n/b | `workspace::ActivateNextPane/PreviousPane` | Next/previous pane |
| Space + w + z | `workspace::ToggleZoom` | Toggle pane zoom |
| Space + w + =/- | Increase/Decrease dock size | Resize dock (matches aerospace) |
| Space + w + + | Reset dock size | Reset to default |
#### Space Leader - Code / LSP (space c)
| Shortcut | Action | Description |
|----------|--------|-------------|
| Space + c + r | `editor::Rename` | Rename symbol |
| Space + c + a | `editor::ToggleCodeActions` | Code actions |
| Space + c + d | `editor::GoToDefinition` | Go to definition |
| Space + c + D | `editor::GoToTypeDefinition` | Go to type definition |
| Space + c + i | `editor::GoToImplementation` | Go to implementation |
| Space + R | `editor::Rename` | Rename symbol |
| Space + o | `editor::Hover` | Show hover info |
| Space + . | `editor::ToggleCodeActions` | Code actions |
| Space + A | `editor::FindAllReferences` | Find all references |
| Space + @ | `editor::RestartLanguageServer` | Restart LSP |
#### Space Leader - Git (space g)
| Shortcut | Action | Description |
|----------|--------|-------------|
| Space + g + g | `git_panel::ToggleFocus` | Toggle Git panel |
| Space + G + G | `task::Spawn "Git: Lazygit"` | Open Lazygit |
| Space + g + b | `git::Blame` | Git blame |
| Space + g + D | `task::Spawn "Git: Lumen diff"` | Lumen diff |
| Space + g + d | `git::Diff` | Git diff |
| Space + g + t | `git_panel::ToggleTreeView` | Toggle tree view |
| Space + g + w | `git::Worktree` | Git worktree |
| Space + g + v | `editor::ToggleSplitDiff` | Toggle split diff |
#### Space Leader - Tools / Tasks (space t)
| Shortcut | Action | Description |
|----------|--------|-------------|
| Space + t + t | `task::Spawn` | Open task launcher |
| Space + t + T | `terminal::RerunTask` | Rerun last task |
| Space + t + n | IDE: Neovim | Open Neovim |
| Space + t + f | Files: FZF | FZF file finder |
| Space + t + y | Files: Yazi | Yazi file manager |
| Space + t + r | Files: Rename Files (FZF) | Batch rename |
| Space + t + d | Docker: Lazydocker | Docker TUI |
| Space + t + k | Kubernetes: Lazykube | Kubernetes TUI |
| Space + t + p | Files: Generate Project Structure | Project tree |
| Space + t + l | Git: Generate Git Logs file | Git logs (limited) |
| Space + t + L | Git: Generate Git Logs file (All) | Git logs (all) |
| Space + t + s | LazySQL | SQL TUI |
| Space + t + S | LazySSH | SSH manager |
| Space + t + c | LazyCurl | HTTP client |
| Space + t + e | Ekphos | Documentation generator |
| Space + t + m | Lazymake | Build system |
#### Space Leader - AI (space a)
| Shortcut | Action | Description |
|----------|--------|-------------|
| Space + i | `assistant::InlineAssist` | Inline AI assist |
| Space + a + i | `assistant::InlineAssist` | Inline AI assist |
| Space + a + f | `agent::ToggleFocus` | Toggle AI agent panel |
| Space + a + p | `agent::AddSelectionToThread` | Add selection to thread |
| Space + a + c | Claude Code (skip perms) | New Claude Code session |
| Space + a + C | Claude Code (continue + skip perms) | Continue previous session |
> All Claude Code shortcuts use `--dangerously-skip-permissions` by default. Other variants (Chrome, Resume) are available via β + β§ + t task launcher.
#### Space Leader - Symbols & Diagnostics
| Shortcut | Action | Description |
|----------|--------|-------------|
| Space + S | `project_symbols::Toggle` | Project symbols |
| Space + G | `editor::SelectAllMatches` | Select all matches |
| Space + s + d | `diagnostics::Deploy` | Deploy diagnostics |
| Space + d | `editor::GoToDiagnostic` | Next diagnostic |
| Space + D | `editor::GoToPreviousDiagnostic` | Previous diagnostic |
#### Space Leader - Settings (space ,)
| Shortcut | Action | Description |
|----------|--------|-------------|
| Space + , + k | `zed::OpenKeymapFile` | Edit keymap file |
| Space + , + K | `zed::OpenKeymap` | Open keymap reference |
| Space + , + s | `zed::OpenSettingsFile` | Edit settings file |
| Space + , + S | `zed::OpenSettings` | Open settings reference |
| Space + , + t | `zed::OpenTasks` | Open tasks |
| Space + , + c | `theme_selector::Toggle` | Theme selector |
| Space + , + C | `icon_theme_selector::Toggle` | Icon theme selector |
| Space + , + e | `zed::Extensions` | Extensions |
#### Space Leader - Navigation
| Shortcut | Action | Description |
|----------|--------|-------------|
| Space + 0 | `vim::StartOfDocument` | Start of document |
| Space + * | `vim::MoveToNext` (partial) | Next word occurrence |
| Space + Β¨ | `vim::MoveToPrevious` (partial) | Previous word occurrence |
### File Explorer (ProjectPanel) π
> Vim-style keybindings when the project panel is focused.
| Shortcut | Action | Description |
|----------|--------|-------------|
| / | `file_finder::Toggle` | File finder |
| f + g | `workspace::NewSearch` | Global search |
| a | `project_panel::NewFile` | New file |
| A | `project_panel::NewDirectory` | New directory |
| d | `project_panel::Delete` | Delete |
| D | `project_panel::Duplicate` | Duplicate |
| R | `project_panel::Rename` | Rename |
| y / Y | `Copy` / `Cut` | Copy / Cut |
| p | `project_panel::Paste` | Paste |
| c / C | Copy relative/absolute path | Copy file path |
| n / b | Next/Previous directory | Directory navigation |
| T | `workspace::OpenInTerminal` | Open in terminal |
| β + v/s | Split vertical/horizontal | Open in split |
> All the above also work with `Space` prefix (e.g., `Space a` = new file).
### Git Panel π (lazygit-style)
> Keybindings mirror [lazygit](https://github.com/jesseduffield/lazygit) for muscle memory consistency.
| Shortcut | Action | Description |
|----------|--------|-------------|
| Space | `git::ToggleStaged` | Toggle file staging (lazygit: space) |
| a | `git::StageAll` | Stage all files (lazygit: a) |
| u | `git::UnstageAll` | Unstage all files |
| c | `git::Commit` | Commit (lazygit: c) |
| β + i | `git::GenerateCommitMessage` | AI-generate commit message |
| P / p / f | Push / Pull / Fetch | Remote operations (lazygit: P/p/f) |
| b / B | Branch / Checkout branch | Branch management (lazygit: n/space) |
| w | `git::Worktree` | Git worktree (lazygit: w) |
| s | `git::StashAll` | Stash all (lazygit: s) |
| S | `git::ViewStash` | View stash (lazygit: S) |
| A | `git::StashPop` | Pop stash |
| d / D | Restore file / Diff | Discard & diff (lazygit: d) |
| C | `git::CreatePullRequest` | Create pull request |
| i | `git::AddToGitignore` | Ignore file (lazygit: i) |
| I | `git::Init` | Git init |
| ` or t | `git_panel::ToggleTreeView` | Toggle tree view (lazygit: `) |
| / | `pane::DeploySearch` | Search (lazygit: /) |
| q or β + q | `git_panel::Close` | Close panel (lazygit: q) |
### Tasks π
| Task Name | Command | Description |
|-----------|---------|-------------|
| Claude Code | `claude` | Open Claude Code AI assistant |
| Claude Code (Continue) | `claude --continue` | Continue previous Claude session |
| Claude Code Usage | `bun x ccusage blocks` | Check Claude Code usage stats |
| Git: Lazygit | `lazygit -p $ZED_WORKTREE_ROOT` | Open Lazygit in project root |
| Git: Generate Git Logs file | `generate_git_log.sh 400` | Generate Git logs (limited) |
| Git: Generate Git Logs file (All) | `generate_git_log.sh 999999` | Generate Git logs (all) |
| LazySQL | `lazysql` | SQL TUI client |
| LazyCurl | `lazycurl` | HTTP client TUI |
| LazySSH | `lazyssh` | SSH manager TUI |
| Files: FZF | `fzf` with bat preview | Advanced file finder with preview |
| Files: Yazi | `yazi` | Terminal file manager |
| Files: Rename Files (FZF) | `rename_files.sh` | Interactive batch file renaming |
| Files: Generate Project Structure | `eza --tree --level=5 --git-ignore` | Generate project tree file |
| Docker: Lazydocker | `lazydocker` | Docker TUI |
| Kubernetes: Lazykube | `lazykube` | Kubernetes TUI |
| Database: Redis CLI | `redis-cli` | Redis command line interface |
| Laravel: Test | `php artisan test` | Run Laravel tests |
| Laravel: Test (coverage) | `php artisan test --coverage` | Run tests with coverage |
| Laravel: Migrate (fresh and seed) | `php artisan migrate:fresh --seed` | Fresh migration with seed |
| Laravel: Migrate (fresh) | `php artisan migrate:fresh` | Fresh migration |
> [!NOTE]
> Tasks run in the current workspace context. `$ZED_WORKTREE_ROOT` is set to the project root.
> See the [Zed Tasks Documentation](https://zed.dev/docs/tasks) for more information.
## Installation π₯
### Automated Installation (Recommended)
```bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/kbrdn1/dotfiles/main/install.sh)"
```
This script performs a complete installation:
1. Install Xcode Command Line Tools
2. Install Nix package manager (multi-user daemon)
3. Install Homebrew (for GUI apps)
4. Clone nix-config repository
5. Install Oh My Zsh
6. Apply dotfiles with Chezmoi
7. Install Home Manager and apply Nix configuration
8. Configure macOS system settings
9. Start services (Sketchybar, Borders)
### Manual Installation
| Step | Command | Description |
|------|---------|-------------|
| **1. Xcode CLI** | `xcode-select --install` | Install Apple command line tools |
| **2. Nix** | `sh <(curl -L https://nixos.org/nix/install) --daemon` | Install Nix (multi-user) |
| **3. Homebrew** | `/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"` | Install Homebrew |
| **4. Nix Config** | `git clone https://github.com/kbrdn1/nix-config.git ~/nix-config` | Clone Nix configuration |
| **5. Oh My Zsh** | `sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"` | Install Zsh framework |
| **6. Dotfiles** | `sh -c "$(curl -fsLS get.chezmoi.io)" -- init --apply https://github.com/kbrdn1/dotfiles.git` | Apply dotfiles |
| **7. Home Manager** | `nix run home-manager/release-24.11 -- switch --flake ~/nix-config` | Install CLI tools (70+ packages) |
### macOS System Configuration
```bash
# Keyboard - Fast key repeat
defaults write NSGlobalDomain KeyRepeat -int 1
# Screenshots - Custom location and format
mkdir -p ~/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 - Auto-hide
defaults write NSGlobalDomain _HIHideMenuBar -bool true
# Dock - Auto-hide with fast animation
defaults write com.apple.dock autohide -bool true
defaults write com.apple.dock autohide-time-modifier -float 0.15
# Apply changes
killall SystemUIServer Dock
```
### Post-Installation Steps
| Step | Action | Command |
|------|--------|---------|
| **1. Restart Terminal** | Apply shell changes | `exec zsh` |
| **2. Verify Nix** | Check installed packages | `nix profile list` |
| **3. Configure AeroSpace** | Reload window manager | `aerospace --reload` |
| **4. Install SetApp** | Manual installation | Install from SetApp website |
| **5. Restart Computer** | Complete setup | Full system restart |
### Troubleshooting
| Issue | Solution |
|-------|----------|
| Nix not found | Restart terminal or run `. /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh` |
| Home Manager fails | Ensure Nix daemon is running: `sudo launchctl load /Library/LaunchDaemons/org.nixos.nix-daemon.plist` |
| Sketchybar not visible | Run `brew services restart sketchybar` |
| AeroSpace not working | Check permissions in System Settings β Privacy & Security |
### Migration Documentation
- **Nix Migration**: See [MIGRATION_NIX.md](./MIGRATION_NIX.md) for complete ASDF β Nix migration details
- **Homebrew Cleanup**: See [MIGRATION_HOMEBREW.md](./MIGRATION_HOMEBREW.md) for removed Homebrew packages
- **AeroSpace Setup**: See [MIGRATION-YABAI-TO-AEROSPACE.md](./MIGRATION-YABAI-TO-AEROSPACE.md) for Yabai β AeroSpace migration
## Acknowledgments π
| Project | Author | Contribution |
|---------|--------|--------------|
| [AeroSpace](https://github.com/nikitabobko/AeroSpace) | [@nikitabobko](https://github.com/nikitabobko) | Modern tiling window manager |
| [Sketchybar](https://github.com/FelixKratz/SketchyBar) | [@FelixKratz](https://github.com/FelixKratz) | Custom menu bar and setup inspiration |
| [JankyBorders](https://github.com/FelixKratz/JankyBorders) | [@FelixKratz](https://github.com/FelixKratz) | Window border visualization |
| [Chezmoi](https://github.com/twpayne/chezmoi) | [@twpayne](https://github.com/twpayne) | Dotfiles management tool |
| [Home Manager](https://github.com/nix-community/home-manager) | [Nix Community](https://github.com/nix-community) | Declarative user environment |
| [Nix](https://nixos.org/) | [NixOS Foundation](https://nixos.org/community/) | Reproducible package management |
## License π
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.