Skip to content

mjonyh/config

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

327 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Repository Size Last Commit License

Unified Development Environment

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.

πŸ“Έ Screenshots

Shell (ZSH + Starship) Neovim (Lua Config) Tmux Sessions
zsh vim tmux

πŸš€ Quick Start

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

Installation Options

./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)

πŸ› οΈ Key Features

  • Cross-Platform: Works on macOS (Homebrew) and Linux β€” Arch (Pacman), Debian (apt).
  • Unified Installer: A single entry point install.sh that delegates to OS-specific logic.
  • Robust Symlinking: The symlink-config.sh utility 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.

🧩 Configuration Modules

🐚 Shell (Zsh + Starship)

  • Fast Startup: Optimized zshrc with 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).

πŸ“ Neovim (Lua)

  • Modern: Fully Lua-based configuration in nvim/.
  • Lazy.nvim: Fast plugin management.
  • LSP & Treesitter: Full IDE capabilities with intelligent code analysis.
  • Structure: init.lua entry point with modular lua/config/ and lua/plugins/.
  • VirtualEnv: Python venv for pynvim in nvim/venv/.

πŸ–₯️ Tmux

  • Productivity: Custom keybindings matching Vim navigation (h/j/k/l).
  • Prefix: Ctrl-a (replaces default Ctrl-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).

πŸͺŸ Window Managers (Linux)

  • Hyprland: Modern Wayland compositor configuration in hypr/ β€” animations, keybindings, monitors, themes, window rules, lock screen.
  • AwesomeWM: Lua-based configuration in rc.lua.awesome.

πŸ–₯️ Terminals

  • Ghostty: GPU-accelerated terminal config in ghostty/.
  • Termite: Lightweight VTE-based terminal config in termite/ (Linux).
  • iTerm2: macOS terminal (configured via tmux.conf overrides).

πŸ”€ Fonts

  • Hack Nerd Font: Bold, Italic, Regular variants (Mono and standard) in Hack/.

🌐 Browsers (Linux)

  • qutebrowser: Keyboard-driven browser config in config/qutebrowser/.

πŸ”§ System Utilities

  • 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/.

πŸ“‚ Repository Structure

β”œβ”€β”€ 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

πŸ”§ Platform-Specific Notes

macOS

  • 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.

Arch Linux

  • 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_information for driver version).

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors