{"id":50443824,"url":"https://github.com/djensenius/dotfiles","last_synced_at":"2026-05-31T20:02:40.743Z","repository":{"id":41232283,"uuid":"318319977","full_name":"djensenius/dotfiles","owner":"djensenius","description":"My config files for NeoVim, Fish, Starship, tmux, git, and Ghostty for use on Mac and GitHub Codespaces.","archived":false,"fork":false,"pushed_at":"2026-05-30T17:35:51.000Z","size":25661,"stargazers_count":25,"open_issues_count":1,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-05-30T19:11:04.787Z","etag":null,"topics":["codespaces","fish","ghostty","neovim","tmux"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/djensenius.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["djensenius"]}},"created_at":"2020-12-03T21:08:01.000Z","updated_at":"2026-05-30T17:35:53.000Z","dependencies_parsed_at":"2026-01-19T07:00:34.004Z","dependency_job_id":null,"html_url":"https://github.com/djensenius/dotfiles","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/djensenius/dotfiles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djensenius%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djensenius%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djensenius%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djensenius%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/djensenius","download_url":"https://codeload.github.com/djensenius/dotfiles/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djensenius%2Fdotfiles/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33746528,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-31T02:00:06.040Z","response_time":95,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["codespaces","fish","ghostty","neovim","tmux"],"created_at":"2026-05-31T20:02:36.516Z","updated_at":"2026-05-31T20:02:40.738Z","avatar_url":"https://github.com/djensenius.png","language":"Shell","funding_links":["https://github.com/sponsors/djensenius"],"categories":[],"sub_categories":[],"readme":"# dotfiles\n\nModern development environment configuration files optimized for productivity and visual consistency. This setup provides a comprehensive development environment with integrated tools for coding, git workflow, terminal enhancement, and system monitoring.\n\n**Key Features:**\n- 🎨 **Consistent Theming**: [Catppuccin Mocha theme](https://github.com/catppuccin/catppuccin) across all applications\n- 🚀 **Parallel Installation**: 40-60% faster setup with concurrent package installation\n- ⚡ **Performance Optimized**: Fast startup times and efficient resource usage\n- 🔧 **Development Focused**: Comprehensive language support and development tools\n- 📦 **Automated Setup**: One-script installation for GitHub Codespaces\n- 🐚 **Modern Shell**: Fish shell with starship prompt and productivity enhancements\n\nAll configurations use the [Catppuccin Mocha theme](https://github.com/catppuccin/catppuccin) for a consistent and visually appealing look across all tools and applications.\n\n## Installation\n\n### Automated Installation (Recommended)\n\nFor GitHub Codespaces, the setup is fully automated with **parallel installation** and **fast track** for essential tools:\n```bash\n./install.sh                    # Fast track mode: Essential tools ready in ~30s\n./install.sh --sequential       # Original sequential mode (10-15 minutes)\n./install.sh --help             # See all options\n```\n\n**Fast Track Optimization:** Essential tools (tmux + plugins + tmuxinator + nvim) are set up immediately in ~30 seconds, while other development tools install in the background.\n\n**Fast Track Priority (ready in ~20 seconds)**:\n- ✅ tmux configuration and plugins (TPM + all plugins installed)\n- ✅ tmuxinator for session management  \n- ✅ nvim configuration (plugins sync in background)\n- ✅ starship prompt, FZF, LazyGit\n\n**Background Installations (non-blocking)**:\n- 🦀 Rust development tools (bat, rg, fd, eza, zoxide, atuin)\n- 📦 NPM language servers and development tools\n- 🔌 Neovim plugins and Mason language servers  \n- 🛠️ Additional development tools (delta, yq, protobuf, luarocks)\n\n**New Background Installation:** The parallel mode now runs Rust/Cargo tools, NPM packages, and Neovim plugins in the background, allowing you to start using your environment immediately while development tools install in the background.\n\n**Visual Progress Indicator:** When using tmux, a spinning indicator (   ) appears in the status line showing active background installations with the same animation used by lualine in nvim.\n\n**Background Installation Monitoring:**\n```bash\n# Check installation status\n./scripts/check-rust-install.sh      # Rust tools (bat, rg, fd, etc.)\n./scripts/check-npm-install.sh       # NPM packages (language servers, etc.)\n./scripts/check-neovim-setup.sh      # Neovim plugins and Mason tools\n\n# Monitor installation progress\ntail -f ~/.dotfiles_rust_install.log    # Rust tools progress\ntail -f ~/.dotfiles_npm_install.log     # NPM packages progress\ntail -f ~/.dotfiles_neovim_setup.log    # Neovim setup progress\n\n# Wait for completion (if needed)\nwait $(cat ~/.dotfiles_rust_install.pid)  # Wait for Rust tools\nwait $(cat ~/.dotfiles_npm_install.pid)   # Wait for NPM packages\nwait $(cat ~/.dotfiles_neovim_setup.pid)  # Wait for Neovim setup\n```\n\n**Performance:** The new parallel installation reduces foreground setup time by **93%** - from 5+ minutes down to ~20 seconds for immediate productivity!\n\n### Manual Local Installation\n\nFor local installation, most configurations can be symlinked to your `~/.config` directory:\n\n1. **Clone this repository:**\n   ```bash\n   git clone https://github.com/djensenius/dotfiles.git ~/.dotfiles\n   cd ~/.dotfiles\n   ```\n\n2. **Symlink configurations:**\n   ```bash\n   # Core shell and editor configs\n   ln -sf ~/.dotfiles/fish ~/.config/\n   ln -sf ~/.dotfiles/nvim ~/.config/\n   ln -sf ~/.dotfiles/starship.toml ~/.config/\n   \n   # Terminal multiplexer\n   ln -sf ~/.dotfiles/tmux ~/.config/\n   \n   # Development tools\n   ln -sf ~/.dotfiles/gitconfig ~/.gitconfig\n   ln -sf ~/.dotfiles/gitignore_local ~/.gitignore_local\n   ```\n\n3. **Special setup for TMUX:**\n   ```bash\n   git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm\n   ~/.tmux/plugins/tpm/scripts/install_plugins.sh\n   ```\n\n4. **Install required tools** (see [Applications](#applications) section for details)\n\nSee the [install.sh](install.sh) script for the complete automated setup process used in GitHub Codespaces.\n\n## Overview\n\nThis dotfiles collection includes configurations for:\n\n- **🖥️ Terminal \u0026 Shell**: Fish shell with starship prompt, tmux multiplexer\n- **📝 Editor**: Neovim with 46+ plugins for modern development ([details](nvim/README.md))\n- **🔍 Search \u0026 Navigation**: fzf, ripgrep, fd, eza, zoxide for enhanced file operations\n- **📊 Git Workflow**: lazygit, delta, gitsigns integration for visual git management\n- **🔧 Development Tools**: Language servers, formatters, linters, and debugging tools\n- **📱 System Monitoring**: bottom, fastfetch, k9s for system and cluster monitoring\n- **🎨 Consistent Theming**: Catppuccin Mocha theme across all applications\n\n## Applications\n\n### [atuin](https://atuin.sh) ([repo](https://github.com/ellie/atuin))\nAtuin is a powerful and customizable shell history manager.\n- **Directory**: `atuin/`\n\n### [bat](https://github.com/sharkdp/bat)\nBat is a cat clone with syntax highlighting and Git integration.\n- **Directory**: `bat/`\n\n### [bottom](https://github.com/ClementTsang/bottom)\nBottom is a cross-platform graphical process/system monitor.\n- **Directory**: `bottom/`\n\n### [delta](https://github.com/dandavison/delta)\nDelta is a syntax-highlighting pager for git, diff, and grep output.\n- **Configuration**: Integrated into `gitconfig`\n\n### [eza](https://github.com/eza-community/eza)\nEza is a modern replacement for ls with colors, icons, and git integration.\n- **Installation**: Via cargo\n\n### [codespaces](https://github.com/github/codespaces)\nCodespaces is a cloud development environment provided by GitHub.\n- **Directory**: `.devcontainer/`\n- **Files**: `install.sh`, `prettierrc.json`\n\n### [fastfetch](https://github.com/LinusDierheimer/fastfetch)\nFastfetch is a neofetch-like tool for fetching system information.\n- **Directory**: `fastfetch/`\n\n### [fzf](https://github.com/junegunn/fzf)\nFzf is a command-line fuzzy finder for files, commands, and more.\n- **Installation**: Via git clone to `~/.fzf`\n\n### [fd](https://github.com/sharkdp/fd)\nFd is a simple, fast and user-friendly alternative to find.\n- **Installation**: Via cargo (as fd-find)\n\n### [Fish](https://fishshell.com) ([repo](https://github.com/fish-shell/fish-shell))\nFish is a smart and user-friendly command line shell.\n- **Directory**: `fish/`\n\n### [gh](https://cli.github.com) ([repo](https://github.com/cli/cli))\nGh is GitHub’s official command line tool.\n- **Directory**: `gh/`\n\n### [gh-dash](https://github.com/dlvhdr/gh-dash)\nGh-dash is a GitHub CLI tool to view and manage issues and pull requests in a terminal dashboard.\n- **Directory**: `gh-dash/`\n\n### [git](https://git-scm.com) ([repo](https://github.com/git/git))\nGit is a distributed version control system.\n- **Files**: `gitconfig`, `gitignore-local`\n\n### [gitmux](https://github.com/arl/gitmux)\nGitmux is a Tmux status line for Git.\n- **File**: `gitmux.conf`\n\n### [Ghostty](https://ghostty.org/) ([repo](https://github.com/ghostty-org/ghostty))\nGhostty is a fast, feature-rich terminal emulator built for performance and customization.\n- **Directory**: `ghostty/`\n\n### [gopod](https://github.com/djensenius/gopod)\nGopod is a tool for making radio programs that are streaming online into podcasts.\n- **Directory**: `gopod/`\n\n### [k9s](https://k9scli.io) ([repo](https://github.com/derailed/k9s))\nK9s is a terminal UI to interact with your Kubernetes clusters.\n- **Directory**: `k9s/`\n\n### [lazygit](https://github.com/jesseduffield/lazygit)\nLazygit is a simple terminal UI for git commands with keyboard shortcuts.\n- **Installation**: Downloaded binary to `/usr/local/bin`\n\n### [NeoVim](https://neovim.io) ([repo](https://github.com/neovim/neovim))\nNeoVim is a hyperextensible Vim-based text editor.\n- **Directory**: `nvim/`\n- **See**: [nvim/README.md](nvim/README.md) for comprehensive plugin documentation\n\n### [pay-respects](https://github.com/LudwigZeller/pay-respects)\nPay-respects is a modern replacement for thefuck, fixing command line errors with AI assistance.\n- **Installation**: Via cargo\n\n### [ripgrep](https://github.com/BurntSushi/ripgrep)\nRipgrep is a line-oriented search tool that recursively searches directories for a regex pattern.\n- **Installation**: Via cargo\n\n### [Starship](https://starship.rs) ([repo](https://github.com/starship/starship))\nStarship is a cross-shell prompt that displays information about the current directory, git status, and more.\n- **File**: `starship.toml`\n\n### [tmux](https://github.com/tmux/tmux/wiki) ([repo](https://github.com/tmux/tmux))\nTmux is a terminal multiplexer that allows multiple terminal sessions to be accessed and controlled from a single screen.\n- **Directory**: `tmux/`\n- **Features**: Catppuccin Mocha theme, vim-style navigation, floating windows, session management\n- **Battery Status**: Uses [battery_hearts](https://github.com/djensenius/battery_hearts) plugin to display battery level with heart icons in the status bar\n\n#### Installing battery_hearts\nThe battery_hearts tool displays battery status using heart icons and is integrated into the tmux status bar. Install it using one of these methods:\n\n**From crates.io (Recommended):**\n```bash\ncargo install battery_hearts\n```\n\n**From releases:**\n```bash\n# Download the latest binary for your platform from:\n# https://github.com/djensenius/battery_hearts/releases\nchmod +x battery_hearts-*\n# Move to PATH, e.g., /usr/local/bin/\n```\n\n**From source:**\n```bash\ngit clone https://github.com/djensenius/battery_hearts.git\ncd battery_hearts\ncargo build --release\n# Copy ./target/release/battery_hearts to your PATH\n```\n\nOnce installed, the tmux configuration will automatically use it to display battery status with heart icons (❤️ 🧡 🤍) in the status bar.\n\n### [tmuxinator](https://github.com/tmuxinator/tmuxinator)\nTmuxinator is a tool to manage complex tmux sessions easily.\n- **Directory**: `tmuxinator/`\n\n### [vale](https://vale.sh) ([repo](https://github.com/errata-ai/vale))\nVale is a syntax-aware linter for prose built with speed and extensibility in mind.\n- **File**: `vale.ini`\n\n### [yazi](https://github.com/yazi-shell/yazi)\nYazi is a terminal file manager.\n- **Directory**: `yazi/`\n\n\n### [zoxide](https://github.com/ajeetdsouza/zoxide)\nZoxide is a smarter cd command that learns your habits and jumps to frequently used directories.\n- **Installation**: Via cargo\n\n## Codespaces `install.sh` Script Summary\n\nThe `install.sh` script is designed to set up and configure a development environment, particularly for use in GitHub Codespaces. It performs the following tasks:\n\n### 1. Link Configuration Files\n\n- Creates necessary directories and creates symbolic links for various configuration files:\n  - `tmux.conf`\n  - `gitconfig`\n  - `fish`\n  - `starship.toml`\n  - `nvim`\n  - `bat`\n  - `vale.ini`\n  - `prettierrc.json`\n  - `gitmux.conf`\n  - `tmuxinator`\n  - `neofetch`\n  - `atuin`\n  - `yazi`\n  - `bottom`\n\n- If running within a GitHub Codespace, it links executables (e.g., `rubocop`, `srb`, `bundle`, `solargraph`, `safe-ruby`) to `/usr/local/bin` and updates locale settings.\n\n### 2. Install Software\n\n- Installs various software packages required for the development environment, including:\n  - `build-essential`\n  - `python3-venv`\n  - `socat`\n  - `ncat`\n  - `ruby-dev`\n  - `jq`\n  - `pay-respects` (replacement for thefuck)\n  - `tmux`\n  - `libfuse2`\n  - `fuse`\n  - `software-properties-common`\n  - `most`\n\n- Removes potentially conflicting packages (`bat`, `ripgrep`).\n\n- Installs additional tools via `curl`, `wget`, `cargo`, `go`, `gem`, and `npm`:\n  - `starship`\n  - `delta`\n  - `protobuf`\n  - `eza`\n  - `zoxide`\n  - `ripgrep`\n  - `fd-find`\n  - `bat`\n  - `atuin`\n  - `gitmux`\n  - `tmuxinator`\n  - `neovim-ruby-host`\n  - `prettierd`\n  - `yaml-language-server`\n  - `vscode-langservers-extracted`\n  - `eslint_d`\n  - `prettier`\n  - `tree-sitter`\n  - `neovim`\n  - `fzf`\n  - `lazygit`\n\n### 3. Setup Software\n\n- Logs into `atuin` using provided credentials.\n- Installs `tmux` plugins.\n- Synchronizes and installs `nvim` plugins.\n- If running within a GitHub Codespace\n  - Changes the default shell to `fish` for the `vscode` user.\n  - Checks the status of the repository.\n\n### 4. Logging\n\n- Logs the progress of file linking, software installation, and software setup to `~/install.log`.\n\n---\n\nThis script automates the setup process to ensure a consistent and efficient development environment, particularly optimized for GitHub Codespaces.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdjensenius%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdjensenius%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdjensenius%2Fdotfiles/lists"}