{"id":21690138,"url":"https://github.com/snehalyelmati/dotfiles","last_synced_at":"2026-02-08T22:04:34.244Z","repository":{"id":112477510,"uuid":"378484737","full_name":"snehalyelmati/dotfiles","owner":"snehalyelmati","description":"My configuration files for Linux and OSX.","archived":false,"fork":false,"pushed_at":"2025-09-27T13:37:06.000Z","size":51775,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-27T15:24:22.660Z","etag":null,"topics":["alacritty","arch-linux","config","dotfiles","i3wm","linux","manjaro","neovim","osx","picom","ranger","skhd","stow","tmux","vim","yabai","zsh"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/snehalyelmati.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-06-19T18:57:02.000Z","updated_at":"2025-09-27T13:28:26.000Z","dependencies_parsed_at":"2023-05-15T03:31:31.758Z","dependency_job_id":"998c156b-20a2-4626-9ae1-58cc36fc92b5","html_url":"https://github.com/snehalyelmati/dotfiles","commit_stats":null,"previous_names":["snehalyelmati/dotfiles"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/snehalyelmati/dotfiles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snehalyelmati%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snehalyelmati%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snehalyelmati%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snehalyelmati%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/snehalyelmati","download_url":"https://codeload.github.com/snehalyelmati/dotfiles/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snehalyelmati%2Fdotfiles/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29246440,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-08T21:42:34.334Z","status":"ssl_error","status_checked_at":"2026-02-08T21:41:38.468Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alacritty","arch-linux","config","dotfiles","i3wm","linux","manjaro","neovim","osx","picom","ranger","skhd","stow","tmux","vim","yabai","zsh"],"created_at":"2024-11-25T17:29:18.139Z","updated_at":"2026-02-08T22:04:34.239Z","avatar_url":"https://github.com/snehalyelmati.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dotfiles\n\nCross-platform dotfiles for macOS and Arch Linux systems, managed with [GNU Stow](https://www.gnu.org/software/stow/).\n\n_Note: If you want to give these dotfiles a try, you should fork this repo, review the code and remove things you don't want or need._\n\n## Tools \u0026 Configurations\n\n### Cross-Platform Tools\n\n- [`neovim`](https://neovim.io/) - Hyperextensible Vim-based text editor (kickstart.nvim configuration)\n  - **Plugin Manager**: [`lazy.nvim`](https://github.com/folke/lazy.nvim) - Modern plugin manager with lazy loading\n  - **LSP \u0026 Completion**:\n    - [`mason.nvim`](https://github.com/williamboman/mason.nvim) - Automatic LSP/tool installer\n    - [`blink.cmp`](https://github.com/saghen/blink.cmp) - Modern completion engine\n    - [`LuaSnip`](https://github.com/L3MON4D3/LuaSnip) - Snippet engine\n    - Pre-configured LSPs: `basedpyright` (Python), `lua_ls` (Lua)\n  - **Navigation \u0026 Search**:\n    - [`telescope.nvim`](https://github.com/nvim-telescope/telescope.nvim) - Fuzzy finder with FZF native\n    - [`which-key.nvim`](https://github.com/folke/which-key.nvim) - Key mapping hints\n  - **Code Enhancement**:\n    - [`treesitter`](https://tree-sitter.github.io/tree-sitter/) - Syntax highlighting and parsing\n    - [`conform.nvim`](https://github.com/stevearc/conform.nvim) - Formatting with ruff (Python), stylua (Lua)\n    - [`gitsigns.nvim`](https://github.com/lewis6991/gitsigns.nvim) - Git integration and decorations\n  - **Key Mappings**: Leader key (Space), `jk` → Escape, Vim-style navigation, system clipboard integration\n- [`vim`](https://github.com/vim/vim) - Legacy Vim configuration\n  - [`ctrlp`](https://github.com/ctrlpvim/ctrlp.vim) - Full path fuzzy file finder\n  - [`YouCompleteMe`](https://github.com/ycm-core/YouCompleteMe) - Code-completion engine\n  - [`vim-airline`](https://github.com/vim-airline/vim-airline) - Customizable statusbar/tabline\n  - [`gruvbox`](https://github.com/morhetz/gruvbox) - Retro color theme\n- [`tmux`](https://github.com/tmux/tmux) - Terminal multiplexer with custom scripts\n  - **Configuration**: Vim-style navigation, mouse support, custom status bar\n  - **Key Features**: Alt+h/l window switching, project-specific session scripts\n  - **Scripts**: Automated session management (`dotfiles-tmux`, `studio-tmux`, etc.)\n- [`zsh`](https://github.com/zsh-users/zsh) - Shell with advanced configuration and performance optimization\n  - **Framework**: [`Oh My Zsh`](https://github.com/ohmyzsh/ohmyzsh) with optimized plugin loading\n  - **Theme**: [`Powerlevel10k`](https://github.com/romkatv/powerlevel10k) - Pure-style configuration with instant prompt\n  - **Performance Plugins**:\n    - `evalcache` - Caches slow command evaluations for faster startup\n    - `zsh-nvm` - Node.js version manager with lazy loading\n  - **Enhancement Plugins**:\n    - [`zsh-autosuggestions`](https://github.com/zsh-users/zsh-autosuggestions) - Fish-like command suggestions\n    - [`zsh-syntax-highlighting`](https://github.com/zsh-users/zsh-syntax-highlighting) - Real-time syntax highlighting\n    - `zsh-completions` - Additional completion definitions\n  - **Development Environment**:\n    - **Go**: Complete setup (GOPATH, GOOS=darwin, personal workspace)\n    - **Python**: Python 3.9, UV package manager with completion\n    - **Node.js**: NVM with lazy loading and bash completion\n    - **Tools**: Protobuf compiler, IntelliJ toolbox, .NET tools, direnv integration\n- [`alacritty`](https://github.com/alacritty/alacritty) - Fast, cross-platform OpenGL terminal emulator\n  - **Font**: JetBrainsMono Nerd Font (size 18) - **Required for optimal display**\n  - **Theme**: Gruvbox color scheme with dark background (`#1d2020`)\n  - **Features**: Cursor blinking, buttonless decorations (macOS), Option-as-Alt support\n  - **Shell Integration**: Zsh with login arguments, 10px horizontal padding\n- [`ranger`](https://github.com/ranger/ranger) - VIM-inspired console file manager\n\n### macOS-Specific Tools\n\n- [`iTerm2`](https://iterm2.com/) - Feature-rich terminal emulator with advanced customization\n  - **Font**: JetBrainsMono Nerd Font SemiBold 17pt with 1.19x vertical spacing for enhanced readability\n  - **Visual Features**: Custom color scheme, blur effects (~20px radius), unlimited scrollback\n  - **Terminal Type**: xterm-256color, Option-as-Esc for both keys, smart cursor behavior\n  - **Ergonomics**: Increased line spacing, inspiration from Zed.\n- [`yabai`](https://github.com/koekeishiya/yabai) - Tiling window manager based on binary space partitioning\n  - **Layout**: BSP (Binary Space Partitioning) with no padding/gaps\n  - **Configuration**: Mouse follows focus disabled, Alt modifier for mouse actions\n  - **Exclusions**: System Settings, Calculator, Karabiner-Elements, and utility apps\n- [`skhd`](https://github.com/koekeishiya/skhd) - Simple hotkey daemon with comprehensive keybindings\n  - **Window Focus**: `Cmd + hjkl` for directional focus\n  - **Window Management**:\n    - `Shift + Cmd + M` - Toggle zoom fullscreen\n    - `Shift + Cmd + R` - Balance space layout\n    - `Shift + Cmd + Ctrl + hjkl` - Swap windows\n  - **Multi-Display**: `Ctrl + Alt + hjkl` for display focus, `Alt + Shift + hjkl` for moving windows\n  - **Workspaces**: `Ctrl + Cmd + [1-0]` for moving windows between spaces\n  - **Resizing**: `Shift + Alt + o/i` for horizontal window resizing\n- [`aerospace`](https://github.com/nikitabobko/AeroSpace) - Alternative tiling window manager\n- [`rectangle`](https://rectangleapp.com/) - Window management utility\n\n### Linux-Specific Tools\n\n- [`i3WM`](https://github.com/i3/i3) - Tiling window manager for X11\n- [`polybar`](https://github.com/polybar/polybar) - Fast and easy-to-use status bar\n- [`rofi`](https://github.com/davatorium/rofi) - Window switcher and application launcher\n- [`picom`](https://github.com/yshui/picom) - Standalone compositor for X11\n- [`redshift`](https://github.com/jonls/redshift) - Blue light filter for X11\n\n### System Configuration\n\n- `fonts` - Custom fonts for system-wide installation\n- `fonts-config` - Font configuration and .Xresources\n- `intel-graphics` - Intel graphics driver configuration for Arch Linux\n\n## Screenshots - Linux\n\n![btop.png](./images/btop.png)\n\n![i3.png](./images/i3.png)\n\n![tmux.png](./images/tmux.png)\n\n![nvim.png](/images/nvim.png)\n\n## Prerequisites\n\n### Required Tools\n- [GNU Stow](https://www.gnu.org/software/stow/) - For managing symlinks to configuration files\n\n### Platform-Specific Dependencies\n\n**macOS:**\n```bash\n# Install Homebrew if not already installed\n/bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\"\n\n# Install essential tools\nbrew install neovim tmux zsh stow yabai skhd\n```\n\n**Arch Linux:**\n```bash\n# Install essential tools\nsudo pacman -S neovim tmux zsh stow i3-wm i3status polybar rofi\n\n# Install AUR helper (yay) for additional packages\ngit clone https://aur.archlinux.org/yay.git\ncd yay \u0026\u0026 makepkg -si\n```\n\n### Shell Setup (Both Platforms)\n```bash\n# Install Oh My Zsh\nsh -c \"$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)\"\n\n# Install Powerlevel10k theme\ngit clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k\n\n# Install zsh plugins\ngit clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions\ngit clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting\n```\n\n## Installation\n\n### Setup Location\nClone this repository to your home directory:\n```bash\ncd ~\ngit clone https://github.com/your-username/linux-dotfiles.git dotfiles\ncd dotfiles\n```\n\n### Install Configurations\n\n**Essential Development Environment (All Platforms):**\n```bash\nstow nvim-kickstart   # Current Neovim configuration\nstow tmux            # Terminal multiplexer\nstow zsh             # Shell configuration\nstow alacritty       # Terminal emulator\nstow vim             # Legacy Vim configuration\nstow ranger          # File manager\n```\n\n**macOS-Specific Configurations:**\n```bash\nstow iterm2          # Terminal emulator configuration\nstow yabai           # Tiling window manager\nstow skhd            # Hotkey daemon\nstow aerospace       # Alternative window manager\nstow rectangle       # Window management utility\n```\n\n**Linux-Specific Configurations:**\n```bash\nstow i3              # Tiling window manager\nstow polybar         # Status bar\nstow rofi            # Application launcher\nstow picom           # Compositor\nstow redshift        # Blue light filter\n```\n\n**System-Wide Configurations (requires sudo):**\n```bash\n# Font installation\nsudo stow --target=/ fonts\n\n# Linux-specific system configurations\nsudo stow --target=/ intel-graphics  # Intel graphics fix for Arch\nsudo stow --target=/ fonts-config    # Font configuration\n```\n\n### Configuration Notes\n\n- **Repository Location**: Place in home directory (`~/dotfiles`) to avoid `--target` flags for most configurations\n- **Excluded Directories**:\n  - `images/` - Contains screenshots for README\n  - `.archive/` - Contains old/deprecated configurations\n- **System Configurations**: `fonts`, `intel-graphics`, and `fonts-config` require system-wide installation\n- **Current Neovim**: Use `nvim-kickstart` directory (not the archived configurations)\n\n## Additional Configuration\n\n### Post-Installation Setup\n\n**iTerm2 (macOS):**\n```bash\n# Import the configuration profile\n# 1. Open iTerm2 → Preferences → Profiles\n# 2. Click \"Other Actions...\" → Import JSON Profiles\n# 3. Select: iterm2/iterm2_config.json\n# 4. Set as default profile if desired\n```\n\n**Neovim:**\n```bash\n# Launch Neovim to trigger plugin installation\nnvim\n# Run health check\n:checkhealth\n```\n\n### Updating Neovim Configuration\n\nThe Neovim configuration is based on kickstart.nvim and can be updated periodically:\n\n```bash\n# 1. Update the configuration file\n# Copy the latest init.lua from kickstart.nvim repo to:\n# nvim-kickstart/.config/nvim/init.lua\n\n# 2. Reset Neovim installation (removes all plugins and data)\nrm -rf ~/.local/share/nvim\n\n# 3. Reopen Neovim - Mason will automatically reinstall everything\nnvim\n```\n\n**Benefits of this workflow:**\n- Updates to latest kickstart.nvim features and improvements\n- Resolves plugin conflicts and installation issues\n- Clean reinstall of all LSP servers and tools via Mason\n- Mason automatically installs everything listed in `ensure_installed`\n\n**Tmux:**\n```bash\n# Source the configuration\ntmux source-file ~/.tmux.conf\n# Install custom scripts (already executable)\n# Scripts available: cp-tmux, deepgram-tmux, dotfiles-tmux, etc.\n```\n\n**Zsh:**\n```bash\n# Configure Powerlevel10k theme\np10k configure\n# Restart shell to apply changes\nexec zsh\n```\n\n### Customization Tips\n\n- **Terminal Choice (macOS)**:\n  - **Alacritty**: Lightweight, Gruvbox theme, consistent across platforms\n  - **iTerm2**: Feature-rich, custom color scheme, ergonomic spacing (1.19x), blur effects\n- **Tmux Scripts**: Project-specific session scripts are available in `tmux/.scripts/`\n  - Example: `dotfiles-tmux` creates windows for yabai, skhd, nvim, alacritty, and tmux configs\n  - Scripts follow pattern: `\u003cproject\u003e-tmux` with predefined window layouts\n- **Window Management**:\n  - macOS: Choose between `yabai`, `aerospace`, or `rectangle` based on preference\n  - Linux: `i3` configuration includes custom keybindings and polybar integration\n- **Neovim**: Configuration uses kickstart.nvim approach - modify `nvim-kickstart/.config/nvim/init.lua`\n- **Terminal Colors**: Configurations assume 256-color terminal support\n- **Font Requirements**: JetBrainsMono Nerd Font required for icons and proper display\n- **Performance**: Zsh includes timing functions (`timezsh`, `timePlugins`) to monitor startup performance\n\n### Key Bindings Quick Reference\n\n**Neovim:**\n```\nLeader Key: Space\njk/JK/Jk → Escape (Insert mode)\n\u003cleader\u003ee → File explorer\n\u003cleader\u003ey → Copy to system clipboard\n\u003cleader\u003ef → Format buffer\n\u003cC-hjkl\u003e → Window navigation\n```\n\n**Tmux:**\n```\nPrefix: Ctrl+b\nhjkl → Pane navigation\nAlt+hl → Window switching\n| → Split horizontal\n_ → Split vertical\n```\n\n**macOS (skhd):**\n```\nCmd+hjkl → Window focus\nShift+Cmd+M → Toggle fullscreen\nShift+Cmd+R → Balance layout\nCtrl+Cmd+[1-0] → Move to workspace\n```\n\n### Troubleshooting\n\n**Common Issues:**\n- **Fonts not displaying properly**: Install JetBrainsMono Nerd Font\n- **Tmux colors incorrect**: Ensure `TERM='xterm-256color'` is set\n- **Neovim LSP not working**: Run `:checkhealth` and `:Mason` to verify installations\n- **Neovim plugin issues**: Use the reset workflow: `rm -rf ~/.local/share/nvim` then reopen nvim\n- **Zsh slow startup**: Use `timezsh` function to identify slow plugins\n- **Yabai not working**: Check SIP status and permissions with `yabai --check-sa`\n\n## References\n\n- [Kickstart.nvim](https://github.com/nvim-lua/kickstart.nvim) - Neovim configuration template\n- [GNU Stow Manual](https://www.gnu.org/software/stow/manual/stow.html) - Dotfiles management\n- [Yabai Documentation](https://github.com/koekeishiya/yabai/wiki) - macOS window management\n- [i3 User's Guide](https://i3wm.org/docs/userguide.html) - Linux window management\n- [Mathias's dotfiles](https://github.com/mathiasbynens/dotfiles) - Inspiration and best practices\n- [Webpro's dotfiles](https://github.com/webpro/awesome-dotfiles) - Community dotfiles collection\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsnehalyelmati%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsnehalyelmati%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsnehalyelmati%2Fdotfiles/lists"}