af6beaff1e2ef31c7ad24662691cc663a0b2e897
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
_ _____ __ __ __ _ _____ ____ _ _____
| | / / | / / / //_// | / / | / __ ( ) ___/
| | / / /| | / / / ,< / |/ / /| | / /_/ //\__ \
| |/ / ___ |/ /___/ /| |/ /| / ___ |/ _, _/ ___/ /
|___/_/ |_/_____/_/ |_/_/ |_/_/ |_/_/ |_| /____/
__________ ____ ____________
/ ____/ __ \/ __ \/ ____/ ____/
/ /_ / / / / /_/ / / __/ __/
/ __/ / /_/ / _, _/ /_/ / /___
/_/ \____/_/ |_|\____/_____/
WHERE CODE MEETS CHAOS
My Debian home directory - forged in the fires of chaos, tempered with configuration files, and wielded with the fury of a thousand riffs.
This is where dotfiles headbang and shell scripts scream.
THE ARSENAL
WEAPONS OF MASS DEVELOPMENT
+-----------------------------------------------------+
| NODE.JS | Managed by nvm |
| PYTHON | Managed by pyenv |
| RUBY | Managed by rbenv |
| RUST | Managed by rustup |
| DOCKER | Containerized destruction |
+-----------------------------------------------------+
INSTALLATION
One-liner bootstrap
curl https://dev.pivoine.art/valknar/home/raw/branch/main/bin/setup -sSf | sh
Prerequisites: curl or wget · sh/bash · sudo (for installing git/zsh if missing)
What the setup script does
| Step | Action |
|---|---|
| 1 | Detects OS (Debian/Ubuntu, macOS, other Linux) |
| 2 | Installs git if missing — apt-get on Debian/Ubuntu, xcode-select on macOS |
| 3 | Installs zsh if missing, sets it as the default shell via chsh |
| 4 | Clones this repo into ~ via HTTPS — or git pull if already present (idempotent) |
| 5 | Runs arty deps — clones nvm, rbenv, pyenv, oh-my-zsh, powerlevel10k, zsh plugins |
| 6 | Installs arty zsh completion via arty completion zsh --install |
| 7 | Drops into a zsh login shell |
After installation
p10k configure # first time: configure the Powerlevel10k prompt
arty ssh:keygen # generate an SSH key, then add it at https://dev.pivoine.art
# switch the dotfiles remote from HTTPS to SSH (after key is set up)
git -C ~ remote set-url origin ssh://git@dev.pivoine.art/valknar/home.git
arty - REPOSITORY ORCHESTRATION
Available Scripts
# System setup
arty debian:setup:contrib # Enable contrib/non-free repos
arty debian:upgrade # apt update && apt upgrade
arty debian:install:base # build-essential, curl, wget, git, zsh, bat, fzf, make...
arty debian:install:libs # dev libs: libffi, zlib, libyaml, libssl, libsqlite3...
arty debian:install:tools # imagemagick, rsvg-convert, ffmpeg, yt-dlp
# Development tools
arty rust:install # Rust toolchain via rustup
arty node:install # Node.js via nvm
arty node:install:base # npm + pnpm globally
arty ruby:install # Ruby via rbenv
arty ruby:install:base # bundler gem
arty python:install # Python via pyenv
arty go:install # Go via apt
arty go:install:tools # hugo (extended) + yq via go install
arty go:clean # Clear go build and module cache
arty docker:install # Docker Engine with user group
What arty Manages
- Version managers (nvm, rbenv, pyenv)
- Shell configuration (Oh-My-Zsh, Powerlevel10k, zsh plugins)
COMMAND LINE BRUTALITY
Custom Scripts
Scripts live in ~/bin/ and are tracked in this repo.
arty— repository orchestration, readsarty.ymlstacks— Docker Compose stack manager (runs in current directory, or setSTACKS_DIR)
ENVIRONMENT STRUCTURE
~/
+-- .nvm/ # Node Version Manager
+-- .rbenv/ # Ruby Version Manager
| +-- plugins/ruby-build/
+-- .pyenv/ # Python Version Manager
+-- .oh-my-zsh/ # Oh-My-Zsh framework
+-- .zsh/
| +-- themes/
| | +-- powerlevel10k/
| +-- plugins/
| +-- zsh-autocomplete/
| +-- zsh-autosuggestions/
| +-- zsh-syntax-highlighting/
DOTFILE HIGHLIGHTS
Shell Configuration
.zshrc- Oh-My-Zsh with Powerlevel10k theme.zlogin- Login script (mounts HiDrive, creates symbolic links).p10k.zsh- Powerlevel10k configuration.zprofile,.zlogout,.zshenv- Zsh startup files
Version Files
.nvmrc- Node.js version.ruby-version- Ruby version.python-version- Python version
Git Configuration
.gitignore- INVERTED PATTERN (ignore all, allow specific files).gitconfig- Git user configuration
Personal
signature.txt- ASCII art email signature.hushlogin- Suppress login banners
GIT SELECTIVE TRACKING
This repository uses an inverted .gitignore pattern:
# Ignore everything
*
# But not these files.
!.gitignore
!.gitconfig
!.editorconfig
!.nvmrc
!.ruby-version
!.python-version
!.p10k.zsh
!.zprofile
!.zlogout
!.zlogin
!.zshrc
!.zshenv
!.hushlogin
!arty.yml
!signature.txt
!LICENSE
!README.md
Why? To track only essential dotfiles and configurations while ignoring cache, logs, and user data.
SHELL PLUGIN POWER
Oh-My-Zsh Plugins Loaded:
git gh sudo ssh ruby rust python node
rsync nvm rbenv pyenv docker docker-compose qrcode
zsh-autosuggestions zsh-syntax-highlighting
zsh-interactive-cd zsh-navigation-tools
USEFUL RESOURCES
System & Shell
Language Managers
- nvm - Node Version Manager
- rbenv - Ruby Version Manager
- pyenv - Python Version Manager
- rustup - Rust Toolchain Manager
CLI Tools
- yq - YAML processor
LICENSE
MIT License - Do whatever the hell you want with it.
=================================================================
__________ ____ ______ _________
/ ____/ __ \/ __ \/ ____/ / _/ ___/
/ / / / / / / / / __/ / / \__ \
/ /___/ /_/ / /_/ / /___ _/ / ___/ /
\____/\____/_____/_____/ /___//____/
______________ _______ ____ ____ ___ ______ __
/_ __/ ____/ |/ / __ \/ __ \/ __ \/ | / __ \ \/ /
/ / / __/ / /|_/ / /_/ / / / / /_/ / /| | / /_/ /\ /
/ / / /___/ / / / ____/ /_/ / _, _/ ___ |/ _, _/ / /
/_/ /_____/_/ /_/_/ \____/_/ |_/_/ |_/_/ |_| /_/
__ __________________ __ _________
/ |/ / ____/_ __/ | / / / _/ ___/
/ /|_/ / __/ / / / /| | / / / / \__ \
/ / / / /___ / / / ___ |/ /___ _/ / ___/ /
/_/ /_/_____/ /_/ /_/ |_/_____/ /___//____/
______________________ _ _____ __
/ ____/_ __/ ____/ __ \/ | / / | / /
/ __/ / / / __/ / /_/ / |/ / /| | / /
/ /___ / / / /___/ _, _/ /| / ___ |/ /___
/_____/ /_/ /_____/_/ |_/_/ |_/_/ |_/_____/
=================================================================
FORGED BY VALKNAR
valknar@pivoine.art
Powered by Debian | Fueled by Metal
Languages
Shell
85.1%
Lua
14.9%