Skip to content

pivoshenko/pivoshenko.dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

745 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

pivoshenko.dotfiles

StandWithUkraine

Overview

Personal dotfiles focused on minimalism, consistency, and cross-tool theming, bundling:

Main principles

  • Minimalism, consistency, simplicity
  • Unified style via pivoshenko.theme β€” currently running Popil (warm ash, muted terracotta). Morok (pitch black, cool accents) and Vatra (Carpathian hearth, gruvbox-warm) are also vendored
  • Typography: JetBrains Mono everywhere

Swap flavors with just set-flavor <morok|popil|vatra> followed by just dotfiles.

Installation

Dotfiles are managed via dotdrop and driven through just.

  1. Fork and clone this repository
  2. Install everything:
just install

This runs brew bundle and deploys both dotdrop profiles. Use just brew or just dotfiles to run halves separately; just lists every recipe.

Note

A few apps still need a manual step β€” currently Telegram and Discord (theme install through each app's own UI). Each section below documents what to do.

Terminal β€” Ghostty

Ghostty β€” fast, GPU-accelerated, native macOS terminal from Mitchell Hashimoto. The first terminal in years that feels like it was designed end-to-end rather than evolved by accretion; zero perceptible latency and a config format that doesn't insult the reader. Config: dotfiles/.config/ghostty.

Shell β€” Fish

Fish ships batteries-included β€” autosuggestions, syntax highlighting, and sane scripting without the bash compatibility tax. Plugins are managed via Fisher β€” only a few installed. Config: dotfiles/.config/fish.

Prompt: Starship β€” single binary, single TOML, works in every shell; fast enough that I forget it's there. Config: dotfiles/.config/starship.toml.

CLI Tools

Daily-driver CLI tools (all configured under .config/):

  • Bat β€” cat with syntax highlighting and git gutters; the drop-in I never want to live without
  • Bottom β€” htop reimagined: keyboard-driven, themable, and actually readable on a wide monitor
  • Delta β€” turns git diff into something I read for fun instead of squinting at
  • Eza β€” modern ls with icons, git status, and tree mode that doesn't choke on big repositories
  • Fastfetch β€” the only fetch tool worth the screen real estate; fast, configurable, JSONC-driven
  • Fd β€” find with sane defaults and an order of magnitude less typing
  • Fzf β€” the single CLI tool I'd save from a fire; fuzzy-finds everything, integrates everywhere
  • Ripgrep β€” fastest grep on the planet, respects .gitignore by default
  • K9s β€” the only Kubernetes UI that keeps me out of kubectl get pods | grep purgatory
  • LazyGit β€” interactive staging, rebases, and cherry-picks at TUI speed; replaced every GUI client for me
  • LazyDocker β€” same magic as LazyGit, applied to containers and compose stacks
  • Zellij β€” tmux with a discoverable UI and sane defaults out of the box
  • Zoxide β€” smarter cd that learns where you actually live; z foo and you're there

Editors

Editor β€” Helix

Helix β€” primary CLI editor; gradually moving day-to-day work to it. The selection-first modal model (selection β†’ action, Γ  la Kakoune) is, in my opinion, a real step up from Vim's verb-object grammar β€” multiple cursors and tree-sitter selections feel native instead of bolted on, and the batteries-included LSP setup means zero plugin yak-shaving. Config: dotfiles/.config/helix.

Editor β€” Zed

Zed β€” daily editor. Rust-native, GPU-accelerated, collaborative β€” and unlike most "modern" editors it actually ships Vim, Helix, and Whichkey modes out of the box instead of leaving them to flaky plugins. Config: dotfiles/.config/zed/settings.json.

Agentic Coding β€” Claude Code

Claude Code is my coding assistant. Config (settings.json + custom statusline): dotfiles/.claude.

Skills and MCPs are distributed across hosts via Kasetto. The Kasetto config lives in pivoshenko/pivoshenko.ai β€” personal and external skills/MCPs both included.

Global CLAUDE.md structure was inspired by Andrej Karpathy's CLAUDE.md.

macOS

Hotkeys Daemon β€” Karabiner

I drive everything from the keyboard via Vi/Kakoune motions. Where macOS or the window manager doesn't support that, Karabiner fills the gap β€” built around home row mode following this guide.

Config: dotfiles/.config/karabiner/karabiner.json.

Tiling Window Manager β€” Rectangle

Rectangle replicates i3-style tiling on macOS. Tried yabai and Aerospace; Rectangle wins on the "just works after every macOS update, no SIP gymnastics" axis. Config: dotfiles/.config/rectangle/config.json.

Browser β€” Zen

Zen β€” a Firefox fork that finally gives the browser the keyboard-driven, vertical-tabs, minimal-chrome UX I've been bolting on with userChrome hacks for years. Extensions:

  • Custom New Tab β€” points new tabs at my own startpage instead of Mozilla's noisy default
  • DuckDuckGo β€” default search; Google's results just aren't worth the tracking anymore
  • NordPass β€” password manager I've stuck with for years; the autofill genuinely stays out of the way
  • NordVPN β€” same family, same story; never had to think about it, which is the highest praise I give a VPN
  • Privacy Badger β€” EFF's heuristic tracker blocker; pairs nicely with uBlock without overlapping
  • RaindropIo β€” bookmarks that don't feel like bookmarks; tags, collections, and a UI I actually want to revisit
  • Stylus β€” userstyles without the abandoned-extension drama of Stylish
  • uBlock β€” the only ad blocker; the rest are noise. Thank you, Raymond Hill
  • Vimium β€” keyboard navigation everywhere; once you've used f to follow a link, the mouse feels broken

userChrome.css / userContent.css live in dotfiles/.config/zen and deploy into the active profile's chrome/ subfolder.

Per-site styling uses Stylus β€” userstyles export at dotfiles/.config/stylus, imported via the extension's preferences.

Notes β€” Obsidian

Obsidian for notes β€” local-first, plain Markdown on disk, no lock-in, and the plugin ecosystem covers anything Notion does without the SaaS tax. Vault synced through iCloud. Vendored themes + snippets in dotfiles/.config/obsidian deploy via the me profile into <vault>/.obsidian/{themes,snippets}/ β€” the vault path is machine-specific (set in dotdrop.config.yaml). Active theme is picked inside Obsidian's appearance settings.

Plugins:

Music β€” Spotify

Spotify is customised via Spicetify. Themes live in dotfiles/.config/spicetify/Themes β€” activate a flavor with just spicetify <morok|popil|vatra>.

Messengers

Messenger β€” Telegram

Telegram with my Popil theme β€” installed via t.me/addtheme/pivoshenko_theme_popil.

Messenger β€” Discord

The official Discord client lacks functionality, so I run Vesktop instead. Install the Popil theme via Themes β†’ Online Themes:

@dark https://raw.githubusercontent.com/pivoshenko/pivoshenko.theme/refs/heads/main/dist/discord/popil.theme.css

Other Apps

  • f.lux β€” warms the display after sunset; my eyes notice immediately when I'm on a machine without it
  • NordPass / NordVPN β€” boring, reliable, and that's exactly what I want from a password manager and a VPN. Been on both for years
  • DBeaver β€” one client for every database I touch; ugly Eclipse bones, but it's the only tool that handles Postgres, MySQL, SQLite, and Mongo without me hunting for vendor GUIs
  • Tailscale β€” WireGuard with the UX problem solved; my home NAS, work boxes, and phone are all on one flat network and I haven't thought about VPN config in years

Contributors

Languages