- Replace Ansible provisioning workflow with arty installation scripts - Update arty.yml configuration to show simplified structure - Add HiDrive integration documentation for .zlogin - Update environment structure to show version managers and symbolic links - Remove references to playbook.yml and environment-based repo management - Add documentation for new installation scripts (debian, rust, zed, claude, etc.) - Clean up .zshenv and remove .last_pwd tracking file 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <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 │
│ ⚔️ GO │ Managed by gvm │
│ ⚔️ DOCKER │ Containerized destruction │
│ ⚔️ POSTGRES │ Version 18 database engine │
└─────────────────────────────────────────────────┘
🩸 QUICK START RITUAL 🩸
Summoning the Environment
# 1. Clone this unholy repository
git init && git remote add origin git@github.com:valknarogg/home.git
git fetch && git reset --hard origin/main
git branch --set-upstream-to=origin/main main
# 2. Configure git
git config --global init.defaultBranch main
git config --global --add safe.directory /home/$USER
# 3. Install essential packages using arty scripts
arty debian/install # Base packages (curl, zsh, fzf, davfs2, etc.)
arty rust/install # Rust toolchain via rustup
arty zed/install # Zed editor
arty claude/install # Claude CLI
# 4. Sync shell configuration and version managers
arty sync
# 5. Source the shell configuration
source ~/.zshrc
Available Installation Scripts
Arty provides installation scripts for various tools:
arty debian/install # curl, zsh, fzf, davfs2, krusader, make, imagemagick, ffmpeg, yt-dlp
arty rust/install # Rust toolchain via rustup
arty zed/install # Zed code editor
arty claude/install # Claude AI CLI
arty mattermost/install # Mattermost desktop client
arty joplin/install # Joplin note-taking app
arty yq/install # yq YAML processor
🎯 ARTY - REPOSITORY ORCHESTRATION 🎯
What is Arty?
Arty.sh is a bash-based dependency and repository manager that orchestrates git subrepositories like a conductor of chaos. It's part of the butter.sh ecosystem - a suite of bash development tools.
Installing Arty
Arty is already installed globally at /usr/local/bin/arty. If you need to install/update it:
# Clone butter.sh ecosystem
git clone https://github.com/butter-sh/butter-sh.github.io.git ~/Projects/butter-sh
# Install arty globally (requires sudo)
cd ~/Projects/butter-sh/projects/arty.sh
sudo ./arty.sh install
The arty.yml Configuration
The root ~/arty.yml defines your repository dependencies and installation scripts:
name: "Valknar's home"
version: '1.0.0'
description: "Valknar's home repository"
author: 'valknar@pivoine.art'
license: 'MIT'
references:
# Custom scripts and binaries
- url: git@github.com:valknarogg/bin.git
into: bin
# Version managers
- url: https://github.com/nvm-sh/nvm.git
into: .nvm
- url: https://github.com/rbenv/rbenv.git
into: .rbenv
- url: https://github.com/pyenv/pyenv.git
into: .pyenv
- url: https://github.com/moovweb/gvm.git
into: .gvm
# Shell configuration
- url: https://github.com/ohmyzsh/ohmyzsh.git
into: .oh-my-zsh
- url: https://github.com/romkatv/powerlevel10k.git
into: .oh-my-zsh/custom/themes/powerlevel10k
scripts:
debian/install: sudo apt install curl zsh fzf davfs2 krusader make imagemagick ffmpeg yt-dlp
rust/install: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
zed/install: curl -f https://zed.dev/install.sh | sh
claude/install: curl -fsSL https://claude.ai/install.sh | bash
Using Arty
# Sync all repositories defined in arty.yml
arty sync
# Run installation scripts
arty debian/install
arty rust/install
arty zed/install
# Update all references
arty update
# Show configuration info
arty info
What Arty Manages:
- ✅ Version managers (nvm, rbenv, pyenv, gvm)
- ✅ Shell configuration (Oh-My-Zsh, Powerlevel10k, plugins)
- ✅ Custom binaries (from valknarogg/bin repository)
- ✅ Installation scripts (system packages, development tools)
Simplified Repository Management
The configuration has been streamlined to focus on essential tooling and version managers. Project-specific repositories should be managed separately in their respective locations (e.g., ~/Projects/), while arty handles the core development environment setup.
🔥 COMMAND LINE BRUTALITY 🔥
Git Operations
g0 # Stage all changes and verify clean state
g1 # Nuclear reset to single commit
g2 # Show last commit message
git add -A && git commit -m "$(g2)" # Reuse last commit message
Media Processing
# Convert all images in directory to WebP
batch_image_webp
# Rename files with sequence numbers
batch_file_sequence artwork webp
# Optimize video
_video_optimize input.mov
# Download YouTube video as MP3
yt "https://youtube.com/watch?v=..."
Development Servers
# Serve current directory on port 8000
ss
# Run Jekyll site with livereload
cd ~/Projects/pivoine.art && bundle exec jekyll serve --livereload
# Run Node.js dev server
cd ~/Projects/node.js/awesome && pnpm dev
Rsync Power
# Sync to remote with sudo
rs /local/path/ user@host:/remote/path/
📁 ENVIRONMENT STRUCTURE 📁
~/
├── bin/ # Custom scripts and executables
├── .nvm/ # Node Version Manager
├── .rbenv/ # Ruby Version Manager
├── .pyenv/ # Python Version Manager
├── .gvm/ # Go Version Manager
├── .oh-my-zsh/ # Oh-My-Zsh framework
│ └── custom/
│ ├── themes/
│ │ └── powerlevel10k/
│ └── plugins/
│ ├── zsh-autosuggestions/
│ └── zsh-syntax-highlighting/
├── Projects/ # Development projects (managed separately)
├── Documents/ # → /mnt/hidrive/users/valknar/Documents
├── Pictures/ # → /mnt/hidrive/users/valknar/Pictures
├── Videos/ # → /mnt/hidrive/users/valknar/Videos
└── Music/ # → /mnt/hidrive/users/valknar/Music
🛠️ DOTFILE HIGHLIGHTS 🛠️
Shell Configuration
.zshrc- Oh-My-Zsh with Powerlevel10k theme.zlogin- Login script (mounts HiDrive, creates symbolic links).p10k.zsh- Powerlevel10k configuration.bashrc- Bash configuration (fallback)
Version Files
.nvmrc- Node.js version.ruby-version- Ruby version.python-version- Python version
Code Quality
.pre-commit-config.yaml- Pre-commit hooks (Python).rubocop.yml- Ruby style enforcementeslint.config.mts- JavaScript/TypeScript linting.prettierrc- Code formatting rulesbiome.json- Fast linter/formatter
Package Management
requirements.txt- Python packages (pip)Gemfile- Ruby gems (bundler)
Git Configuration
.gitignore- INVERTED PATTERN (ignore all, allow specific files).gitconfig- Git user configuration
Orchestration
arty.yml- Repository and dependency management with installation scripts
🔗 HIDRIVE INTEGRATION 🔗
The .zlogin script automatically:
- Mounts HiDrive storage at
/mnt/hidriveon shell login - Creates symbolic links from HiDrive to home directory:
~/Documents→/mnt/hidrive/users/valknar/Documents~/Pictures→/mnt/hidrive/users/valknar/Pictures~/Videos→/mnt/hidrive/users/valknar/Videos~/Music→/mnt/hidrive/users/valknar/Music
This provides seamless access to cloud-stored media and documents from your home directory.
⚙️ GIT SELECTIVE TRACKING ⚙️
This repository uses an inverted .gitignore pattern:
# Ignore everything
*
# Allow specific files
!CLAUDE.md
!README.md
!.gitignore
!.zshrc
!.zlogin
!arty.yml
...
Why? To track only essential dotfiles and configurations while ignoring cache, logs, and user data. Your home directory becomes a git repository without the chaos.
Note: The .init/ directory is NOT tracked in git - it exists locally only for shell initialization. This keeps your shell configuration private and machine-specific.
🎸 SHELL PLUGIN POWER 🎸
Oh-My-Zsh Plugins Loaded:
git pm2 gh sudo ssh ruby rust python node github
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
- gvm - Go Version Manager
- rustup - Rust Toolchain Manager
Orchestration
🖤 LICENSE 🖤
MIT License - Do whatever the hell you want with it.
═════════════════════════════════════════════════════════════════
__________ ____ ______ _________
/ ____/ __ \/ __ \/ ____/ / _/ ___/
/ / / / / / / / / __/ / / \__ \
/ /___/ /_/ / /_/ / /___ _/ / ___/ /
\____/\____/_____/_____/ /___//____/
______________ _______ ____ ____ ___ ______ __
/_ __/ ____/ |/ / __ \/ __ \/ __ \/ | / __ \ \/ /
/ / / __/ / /|_/ / /_/ / / / / /_/ / /| | / /_/ /\ /
/ / / /___/ / / / ____/ /_/ / _, _/ ___ |/ _, _/ / /
/_/ /_____/_/ /_/_/ \____/_/ |_/_/ |_/_/ |_| /_/
__ __________________ __ _________
/ |/ / ____/_ __/ | / / / _/ ___/
/ /|_/ / __/ / / / /| | / / / / \__ \
/ / / / /___ / / / ___ |/ /___ _/ / ___/ /
/_/ /_/_____/ /_/ /_/ |_/_____/ /___//____/
______________________ _ _____ __
/ ____/_ __/ ____/ __ \/ | / / | / /
/ __/ / / / __/ / /_/ / |/ / /| | / /
/ /___ / / / /___/ _, _/ /| / ___ |/ /___
/_____/ /_/ /_____/_/ |_/_/ |_/_/ |_/_____/
═════════════════════════════════════════════════════════════════
🔥⚡ FORGED BY VALKNAR ⚡🔥
valknar@pivoine.art
Powered by Debian | Fueled by Metal
🤘 🤘 🤘