A professional, cross-platform configuration suite for macOS and Linux (Arch, Debian). This repository provides a unified setup for Zsh, Neovim, Tmux, and other development tools, designed for performance, aesthetics, and productivity.
| Shell (ZSH + Starship) | Neovim (Lua Config) | Tmux Sessions |
|---|---|---|
![]() |
![]() |
![]() |
One script to rule them all. Detects your OS and installs the appropriate packages and configurations.
git clone https://github.com/mjonyh/config.git ~/.dotfiles
cd ~/.dotfiles
./install.sh./install.sh --install-packages # Only install system packages (Homebrew/Pacman)
./install.sh --setup-system # Only configure system settings (Shell, Git, Defaults)
./install.sh --symlink-only # Only link dotfiles (Safely backs up existing config)
./install.sh --all # Run full installation (Default)- Cross-Platform: Works on macOS (Homebrew) and Linux β Arch (Pacman), Debian (apt).
- Unified Installer: A single entry point
install.shthat delegates to OS-specific logic. - Robust Symlinking: The
symlink-config.shutility safely links configurations, automatically creating timestamped backups of any existing files to~/.config-backup/. - Performance: Optimized Zsh configuration with lazy-loading plugins and fast startup.
- Aesthetics: Consistent Catppuccin theming across Zsh, Tmux, Neovim, and system tools.
- Fast Startup: Optimized
zshrcwith lazy-loading plugins and conditional sourcing. - Prompt: Blazing fast Starship prompt written in Rust. Config:
starship.toml. - Plugins: zsh-autosuggestions, zsh-syntax-highlighting via zplug.
- Aliases: Modern CLI replacements (exa/eza, bat, ripgrep, fd, htop, lazygit, zoxide).
- Modern: Fully Lua-based configuration in
nvim/. - Lazy.nvim: Fast plugin management.
- LSP & Treesitter: Full IDE capabilities with intelligent code analysis.
- Structure:
init.luaentry point with modularlua/config/andlua/plugins/. - VirtualEnv: Python venv for pynvim in
nvim/venv/.
- Productivity: Custom keybindings matching Vim navigation (
h/j/k/l). - Prefix:
Ctrl-a(replaces defaultCtrl-b). - Session Management: Session persistence via tmux-resurrect, auto-restore via tmux-continuum.
- Theme: Catppuccin Macchiato integration for a seamless look.
- Plugins: TPM-managed β vim-tmux-navigator, tmux-yank, tmux-fzf, tmux-battery, tmux-online-status, tmux-sessionx, tmux-which-key.
- Session Profiles: tmuxp configs in
tmuxp/(physics journals, vim-config, rc-config).
- Hyprland: Modern Wayland compositor configuration in
hypr/β animations, keybindings, monitors, themes, window rules, lock screen. - AwesomeWM: Lua-based configuration in
rc.lua.awesome.
- Ghostty: GPU-accelerated terminal config in
ghostty/. - Termite: Lightweight VTE-based terminal config in
termite/(Linux). - iTerm2: macOS terminal (configured via
tmux.confoverrides).
- Hack Nerd Font: Bold, Italic, Regular variants (Mono and standard) in
Hack/.
- qutebrowser: Keyboard-driven browser config in
config/qutebrowser/.
- dunst: Notification daemon config in
config/dunst/(Linux). - waybar: Wayland status bar config in
config/waybar/(Linux). - wofi: Application launcher config in
config/wofi/(Linux). - swww: Wallpaper utility scripts in
scripts/swww*.sh(Linux). - kitty: Terminal config with Catppuccin theme in
config/kitty/.
βββ install.sh # Master installation script
βββ symlink-config.sh # Dotfile linker with backup support
βββ CLAUDE.md # Claude Code AI guidance
βββ GEMINI.md # Gemini AI guidance
βββ GPU_driver_information # GPU/driver notes per machine
βββ README.md # This file
βββ todo.txt # Pending tasks / tool wishlist
β
βββ config/ # Application-specific configs (mostly Linux)
β βββ dunst/dunstrc # Notification daemon
β βββ face/ # User avatar/face
β βββ ghostty/config # Ghostty terminal config
β βββ kitty/ # Kitty terminal config + Catppuccin theme
β βββ qutebrowser/ # qutebrowser config, bookmarks, quickmarks
β βββ waybar/ # Wayland status bar config + style
β βββ wofi/ # Application launcher config + style
β
βββ docs/ # Documentation and guides
β βββ exa-aliases-guide.md
β βββ markdown-preview-keybindings.md
β βββ markdown-workflow-guide.md
β βββ nvim-config-assessment.md
β βββ nvim-fixes-comprehensive.md
β βββ zsh-plugins-guide.md
β βββ ...
β
βββ Hack/ # Hack Nerd Font files (.ttf)
β
βββ hypr/ # Hyprland configuration (Linux)
β βββ animations.conf
β βββ hyprland.conf
β βββ hyprlock.conf
β βββ install_hypr.sh
β βββ keybindings.conf
β βββ mocha.conf
β βββ monitors.conf
β βββ userprefs.conf
β βββ windowrules.conf
β βββ themes/
β
βββ nvim/ # Neovim configuration
β βββ init.lua # Entry point
β βββ lazy-lock.json # Plugin lock file
β βββ REPORT.md # Configuration report
β βββ lua/
β β βββ config/ # Core config (lazy, maps, options, settings)
β β βββ plugins/ # Individual plugin configs (~25 plugins)
β βββ venv/ # Python virtual environment for pynvim
β
βββ screenshots/ # Screenshots for README
β βββ tmux.png
β βββ vim.png
β βββ zsh.png
β
βββ scripts/ # Utility and helper scripts
β βββ install_packages.sh # OS-specific package installation
β βββ setup_system.sh # System preference configuration
β βββ common_utils.sh # Shared logic and logging
β βββ check_fonts.sh # Font capability verifier
β βββ zsh_perf_test.sh # Shell startup benchmark
β βββ daily_notes.sh # Daily journaling automation
β βββ battery_status.sh # Battery status bar component
β βββ clean_mac.sh # macOS cleanup utility
β βββ disk_cleaner.sh # Disk space cleanup
β βββ duplicates.sh # Find duplicate files
β βββ get_ssid.sh # WiFi SSID detector
β βββ get_weather.sh # Weather info (wttr.in)
β βββ zoxide_tmux.sh # Zoxide + tmux integration
β βββ zoxide_zellij.sh # Zoxide + zellij integration
β βββ tmux-session.sh # Tmux session helper
β βββ youtube.sh # YouTube utilities
β βββ legacy/ # Deprecated scripts
β
βββ src/ # Shell source additions
β βββ directory.zsh # Directory navigation helpers
β
βββ termite/ # Termite terminal config (Linux)
β
βββ tmuxp/ # Tmux session profiles
β βββ journals.yaml
β βββ phy-111A.yaml
β βββ phy-229.yaml
β βββ phy-439.yaml
β βββ phy-455.yaml
β βββ rc-config.yaml
β βββ vim-config.yaml
β
βββ catppuccin-mocha-exa.conf # Catppuccin colors for exa/eza
βββ keybindings_tmux.md # Tmux keybindings cheat sheet
βββ copilot_cleanup_summary_latest.md # Copilot CLI cleanup log
βββ rc.lua.awesome # AwesomeWM config (Linux)
βββ rc.lua.termit # Termit config (legacy)
βββ starship.toml # Starship prompt config
βββ vimrc # Vim/Neovim fallback config
βββ zshrc # Zsh configuration
βββ zshrc_backup_20260605_221453 # Backup of previous zshrc
- Uses Homebrew for package management (
brew install). - Terminal: iTerm2 (primary), Ghostty.
- GPU: Intel integrated (no NVIDIA config needed).
- Nerd Font: Install via
brew install --cask font-hack-nerd-font.
- Uses Pacman + Yay (AUR) for package management.
- Window Manager: Hyprland (Wayland) or AwesomeWM (X11).
- Notifications: dunst.
- Status Bar: waybar.
- Application Launcher: wofi.
- Wallpaper: swww.
- GPU: NVIDIA (see
GPU_driver_informationfor driver version).
This project is licensed under the MIT License - see the LICENSE file for details.


