Skip to content

aharoJ/config

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Angel J. Haro



Typing SVG

Portfolio LinkedIn Twitter LeetCode


Repo structure

config/
├─ alacritty/       # GPU‑accelerated terminal (fast startup, ligatures off by default)
├─ fish/            # Shell functions, abbreviations, completions
├─ karabiner/       # Complex mods (Hyper, layer keys, ergonomic arrows)
├─ kitty/           # Kitty terminal theme + keymaps parity with Alacritty
├─ lf/              # File manager (image/video preview via kitty icat)
├─ nvim/            # Neovim — LSP, Treesitter, Telescope, cmp, custom JDTLS fmt
├─ obsidian/        # Vault‑friendly tweaks
├─ skhd/            # Hotkeys orchestrator for Yabai + app layers
├─ starship/        # Prompt tuned for signal‑over‑noise
├─ tmux/            # Session glue — zero flicker, sane italics, truecolor
├─ yabai/           # WM rules (stacks, float rules, borders, spaces)
└─ README.md
System Development Utilities
Yabai
Tiling WM, zero-lag
Neovim
LSP, custom formatter
LF
Fast file previews
Skhd
Optimized hotkeys
Tmux
Session management
Flameshot
Precise captures
Karabiner
Advanced remaps
Fish
Intuitive shell
Sketchybar
Clean status bar
Kitty
Vibrant terminal
Starship
Custom prompt
Universal Linker
Dynamic links
Alacritty
GPU terminal
Lazygit
Git TUI
Glow
Markdown preview
Hammerspoon
macOS automation
Obsidian
Notes & PKM

Components

Area What you get Folder
Shell Fast fish startup, helpful abbreviations, zero noise fish/
Editor Neovim with LSP/cmp/TS, curated plugins nvim/
Terminal Alacritty & Kitty parity; ligatures optional alacritty/, kitty/
WM Yabai rules, borders, gaps; Skhd layers yabai/, skhd/
Input Karabiner Hyper + nav layers karabiner/
Prompt Starship minimal signal starship/
Multiplexer Tmux with smooth updates tmux/

Keymaps

Legend: Hyper = ⌃⌥⇧⌘ · ⎵ = Space · ⌥ = Option · ⌘ = Command

Karabiner (layers)
  • Caps → Hyper (⌃⌥⇧⌘)
  • (Optional, if you enable) Hyper layer for nav/stack ops via skhd.
skhd · Yabai (bindings)

Focus (move between windows)

⌥h / ⌥j / ⌥k / ⌥l  →  focus west / south / north / east

Swap (reorder in BSP/Stack)

Hyper h / j / k / l  →  swap west / south / north / east

Stack view (iterate inside a stack)

Hyper [  → focus stack.prev (or stack.last)
Hyper ]  → focus stack.next (or stack.first)
Hyper k  → focus stack.prev (or stack.last)
Hyper j  → focus stack.next (or stack.first)

Insertion hints (where the next split will land)

⌥⇧h / ⌥⇧j / ⌥⇧k / ⌥⇧l  →  set insert west / south / north / east

Layout & transform

Hyper r  → rotate space 90°
Hyper x  → mirror X-axis
Hyper y  → mirror Y-axis
Hyper e  → toggle split type

Float / center / zoom / borders

Hyper t        → toggle float, then center (grid 4x4:1:1:2:2)
Hyper z        → toggle fullscreen zoom
Right ⌘ + b    → toggle window border

Launchers & scripts (excerpt)

Right ⇧ + a    → Alacritty
Right ⇧ + k    → Kitty
Right ⇧ + v    → Vivaldi
Right ⇧ + g    → Chrome (new window)
Right ⇧ + f    → Finder
Right ⇧ + d    → Discord
Hyper b        → toggle_blur.py (Alacritty script)

Yabai runtime defaults (from your yabai config)

layout stack               # default space layout (bsp|float|stack)
window_placement second_child
window_topmost on
auto_balance off
split_ratio 0.50
# MacBook padding
top/bottom/left/right_padding: 0 / 20 / 20 / 20
window_gap: 20
# manage=off rules: System Settings, Finder, Activity Monitor, Disk Utility, Calculator, Console,
# System Information, Font Book, Keychain Access, Screenshot, Migration Assistant, Audio MIDI Setup,
# ColorSync Utility, VoiceOver Utility, Bluetooth File Exchange, QuickTime Player, Simulator…
tmux (session glue)
  • Terminal/truecolor: default-terminal "tmux-256color" · terminal-overrides ",xterm-256color:Tc"
  • Quality of life: base-index 1 · escape-time 0 · mouse on · aggressive-resize on · set-clipboard on
  • Copy-mode (vi): q cancel · ypbcopy
  • Pane moves: prefix + h/j/k/l
  • Splits (rebound): prefix + - (horizontal) · prefix + v (vertical)
  • Windows: prefix + t new window (cwd) · prefix + c kill pane
  • Reload: prefix + rsource-file ~/.config/tmux/tmux.conf
  • Extras: prefix + e captures pane into a temp Neovim buffer
  • Plugins: TPM, tmux-resurrect, tmux-continuum, vim-tmux-navigator (Prefix remains default unless you set it elsewhere.)
Neovim (leader ops)
  • Leader: <Space>
  • Search: <leader>ff files · <leader>fg live grep
  • LSP: gd goto def · gr refs · <leader>ca code action · <leader>rn rename
  • Buffers/Windows: <S-h>/<S-l> prev/next · <leader>bc close · <leader>bsv v-split · <leader>bsh h-split · <leader>bwc close
  • Save/Quit: <leader>w save · <leader>x save+quit · <leader>q quit · <leader>Q quit all
  • Clipboard: <leader>y yank → system · <leader>p/P paste · <leader>d delete (black-hole)
  • Terminal: <leader>tt toggle float · <Esc> closes (in terminal mode)
  • Paths: gp copy file path · gP reveal in Finder/Explorer
  • Java: JDTLS formatter profile included in nvim.

Use Hyper (Caps) as your single muscle-memory layer. Alt () focus keys remain as portable fallbacks.

🤝 Contributing

Found something that could be even more beautiful or performant? I'm always looking to push the boundaries of what's possible with desktop environments.

GitHub last commit GitHub Repo stars

About

dotfiles: karabiner, starship, tmux, skhd, yabai, alacritty

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published