Skip to content

carpet-stain/dotfiles

 
 

Repository files navigation

Dotfiles

License

WTFPL

Philosophy & Stack

Battle-tested on macOS. Designed for both personal workstations and minimal server environments.

This configuration is built on three core principles:

  1. Zero Home Presence (Strict XDG): I am an absolutist about the XDG Base Directory Specification. My $HOME is clean. With the exception of a single .zshenv entry point, every configuration, cache, and state file is forced into ~/.config, ~/.cache, or ~/.local/share —even for tools like Homebrew, wget, and less that don't support it natively.

  2. Modern Replacements: Legacy Unix utilities are replaced with modern, faster (often Rust-based) alternatives.

    • lseza (with git status & icons)
    • catbat (syntax highlighting & git integration)
    • findfd
    • grepripgrep (rg)
    • cdzoxide (teleportation)
  3. Explicit & Unified:

    • Theming: A consistent Catppuccin Mocha theme is applied programmatically across Alacritty, Tmux, FZF, Bat, Delta, and Neovim.
    • Workflow: A "Tmux-First" approach where the terminal emulator (Alacritty) is merely a canvas. Window management, scrolling, and clipboard integration are handled explicitly by Tmux.

Features

  • Fully Themed: Consistent Catppuccin Mocha theme across Alacritty, Tmux, FZF, Bat, Delta, and Neovim.
  • Extensive Zsh configuration and plugins:
  • Neovim: Full LazyVim IDE setup with Catppuccin theme.
  • Tmux: Highly customized configuration with:
    • Smart pane navigation (seamlessly switch between Vim and Tmux panes)
    • Minimal, info-rich status bar (CPU/RAM/Battery/Zoom indicators)
    • Popup scratchpad (Prefix + g)
    • Hybrid mouse workflow (Tmux for yanking, terminal for scrolling)
  • Alacritty: Minimal, borderless configuration acting as a pure launchpad for Tmux.
  • Modern CLI Replacements: bat (cat), eza (ls), rg (grep), fd (find), delta (diff), doggo (dig).

Installation

Requirements:

  • zsh 5.1 or newer (async stuff requires recent enough version of zsh)
  • git

Dotfiles can be installed in any dir, but probably somewhere under $HOME. Personally I use $HOME/.local/dotfiles.

Deployment script is idempotent and handles:

  1. Creating necessary XDG directory structures.
  2. Installing Homebrew (interactive prompt for custom location) and all Brewfile packages.
  3. Linking all config files to $XDG_CONFIG_HOME.
  4. Compiling necessary terminfo and plugins (like gitstatusd).

Configuration

Zsh configuration

Keep in mind that Zsh configuration skips every global configuration file except /etc/zsh/zshenv.

The difference is that env.d is sourced always while rc.d is sourced in interactive session only.

Dependencies

The setup heavily relies on Homebrew to manage CLI tools. The deploy.zsh script handles the installation of:

  • Core: git, neovim, tmux
  • Shell: zsh, coreutils, curl
  • Modern Utils: bat, eza, fd, ripgrep, fzf, zoxide
  • Data Tools: jq, yq

About

Personal configuration for zsh, vim, tmux and other tools

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Shell 61.2%
  • JavaScript 36.3%
  • Lua 1.9%
  • Ruby 0.6%