2025-10-29 00:06:12 +01:00
<div align="center">
<pre>
_ ___ __ _ _ _ _ _ _ _ ___ __ __ __ _ ___ __
| | / / | / / / //_// | / / | / _ _ ( ) ___/
| | / / /| | / / / ,< / |/ / /| | / /_/ //\__ \
| |/ / ___ |/ /_ __ / /| |/ /| / ___ |/ _, _/ _ __ / /
|___/_/ |_/_____/_/ |_/_/ |_/_/ |_/_/ |_| /____/
________ __ __ __ __________ __
/ __ __ / _ _ \/ _ _ \/ __ __ / __ __ /
/ /_ / / / / /_/ / / _ _ / _ _ /
/ _ _ / / /_/ / _ , _ / /_/ / /___
/_/ \____/_/ |_|\____/_____/
</pre>
# ⚡🔥 WHERE CODE MEETS CHAOS 🔥⚡
[](https://www.debian.org/)
[](https://www.slayer.net/)
[](/)
[](LICENSE)
**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.*
</div>
---
## ⚡ 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**
```bash
# 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
2025-11-14 11:55:37 +01:00
# 2. Configure git
2025-10-29 00:06:12 +01:00
git config --global init.defaultBranch main
git config --global --add safe.directory /home/$USER
2025-11-14 11:55:37 +01:00
# 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
2025-10-29 00:06:12 +01:00
2025-11-14 11:55:37 +01:00
# 4. Sync shell configuration and version managers
arty sync
2025-10-29 00:06:12 +01:00
2025-11-14 11:55:37 +01:00
# 5. Source the shell configuration
source ~/.zshrc
```
2025-10-29 00:06:12 +01:00
2025-11-14 11:55:37 +01:00
### **Available Installation Scripts**
2025-10-29 00:06:12 +01:00
2025-11-14 11:55:37 +01:00
Arty provides installation scripts for various tools:
2025-10-29 00:06:12 +01:00
2025-11-14 11:55:37 +01:00
```bash
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
2025-10-29 00:06:12 +01:00
```
---
## 🎯 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 ](https://github.com/butter-sh/butter-sh.github.io ) 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:
```bash
# 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**
2025-11-14 11:55:37 +01:00
The root `~/arty.yml` defines your repository dependencies and installation scripts:
2025-10-29 00:06:12 +01:00
```yaml
name: "Valknar's home"
2025-11-14 11:55:37 +01:00
version: '1.0.0'
description: "Valknar's home repository"
author: 'valknar@pivoine .art'
license: 'MIT'
2025-10-29 00:06:12 +01:00
references:
2025-11-14 11:55:37 +01:00
# Custom scripts and binaries
- url: git@github .com:valknarogg/bin.git
into: bin
2025-10-29 00:06:12 +01:00
# Version managers
- url: https://github.com/nvm-sh/nvm.git
into: .nvm
2025-11-14 11:55:37 +01:00
- 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
2025-10-29 00:06:12 +01:00
scripts:
2025-11-14 11:55:37 +01:00
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
2025-10-29 00:06:12 +01:00
```
### **Using Arty**
```bash
2025-11-14 11:55:37 +01:00
# Sync all repositories defined in arty.yml
arty sync
2025-10-29 00:06:12 +01:00
2025-11-14 11:55:37 +01:00
# Run installation scripts
arty debian/install
arty rust/install
arty zed/install
2025-10-29 00:06:12 +01:00
2025-11-14 11:55:37 +01:00
# Update all references
arty update
2025-10-29 00:06:12 +01:00
2025-11-14 11:55:37 +01:00
# Show configuration info
arty info
2025-10-29 00:06:12 +01:00
```
### **What Arty Manages:**
2025-11-14 11:55:37 +01:00
- ✅ **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)
2025-10-29 00:06:12 +01:00
2025-11-14 11:55:37 +01:00
### **Simplified Repository Management**
2025-10-29 00:06:12 +01:00
2025-11-14 11:55:37 +01:00
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.
2025-10-29 00:06:12 +01:00
---
## 🔥 COMMAND LINE BRUTALITY 🔥
### **Git Operations**
```bash
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**
```bash
# 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**
```bash
# 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**
```bash
# Sync to remote with sudo
rs /local/path/ user@host:/remote/path/
```
---
2025-11-14 11:55:37 +01:00
## 📁 ENVIRONMENT STRUCTURE 📁
2025-10-29 00:06:12 +01:00
```
2025-11-14 11:55:37 +01:00
~/
├── 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
2025-10-29 00:06:12 +01:00
```
---
## 🛠️ DOTFILE HIGHLIGHTS 🛠️
### **Shell Configuration**
- **`.zshrc` ** - Oh-My-Zsh with Powerlevel10k theme
2025-11-14 11:55:37 +01:00
- **`.zlogin` ** - Login script (mounts HiDrive, creates symbolic links)
2025-10-29 00:06:12 +01:00
- **`.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 enforcement
- **`eslint.config.mts` ** - JavaScript/TypeScript linting
- **`.prettierrc` ** - Code formatting rules
- **`biome.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**
2025-11-14 11:55:37 +01:00
- **`arty.yml` ** - Repository and dependency management with installation scripts
2025-11-14 13:05:06 +01:00
### **Personal**
- **`signature.txt` ** - ASCII art email signature with contact information
2025-11-14 11:55:37 +01:00
---
## 🔗 HIDRIVE INTEGRATION 🔗
The `.zlogin` script automatically:
- **Mounts HiDrive** storage at `/mnt/hidrive` on 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.
2025-10-29 00:06:12 +01:00
---
## ⚙️ GIT SELECTIVE TRACKING ⚙️
This repository uses an **inverted `.gitignore` ** pattern:
```gitignore
# Ignore everything
*
# Allow specific files
!CLAUDE.md
!README.md
!.gitignore
2025-10-30 03:20:03 +01:00
!.zshrc
2025-11-14 11:55:37 +01:00
!.zlogin
2025-10-29 00:06:12 +01:00
!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.
2025-10-30 03:20:03 +01:00
**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.
2025-10-29 00:06:12 +01:00
---
## 🎸 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
- [Ansible Documentation ](https://docs.ansible.com/ )
- [Oh-My-Zsh ](https://ohmyz.sh/ )
- [Powerlevel10k ](https://github.com/romkatv/powerlevel10k )
### Language Managers
- [nvm ](https://github.com/nvm-sh/nvm ) - Node Version Manager
- [rbenv ](https://github.com/rbenv/rbenv ) - Ruby Version Manager
- [pyenv ](https://github.com/pyenv/pyenv ) - Python Version Manager
- [gvm ](https://github.com/moovweb/gvm ) - Go Version Manager
- [rustup ](https://rustup.rs/ ) - Rust Toolchain Manager
### Orchestration
- [Arty.sh Documentation ](https://github.com/butter-sh/butter-sh.github.io )
- [Butter.sh Ecosystem ](https://butter.sh )
---
## 🖤 LICENSE 🖤
MIT License - Do whatever the hell you want with it.
---
<div align="center">
<pre>
═════════════════════════════════════════════════════════════════
__________ __ __ ____ __ _______ __
/ __ __ / _ _ \/ _ _ \/ __ __ / / _/ ___/
/ / / / / / / / / _ _ / / / \__ \
/ /___/ /_/ / /_/ / /___ _/ / ___/ /
\____/\____/_____/_____/ /___//____/
____________ __ _____ __ __ __ __ __ ___ ____ __ _ _
/_ _ _ / __ __ / |/ / _ _ \/ _ _ \/ _ _ \/ | / _ _ \ \/ /
/ / / _ _ / / /|_/ / /_/ / / / / /_/ / /| | / /_/ /\ /
/ / / /___/ / / / __ __ / /_/ / _ , _ / ___ |/ _ , _ / / /
/_/ /_____/_/ /_/_/ \____/_/ |_/_/ |_/_/ |_| /_/
_ _ ________________ __ _ _ _______ __
/ |/ / __ __ /_ _ _ / | / / / _/ ___/
/ /|_/ / _ _ / / / / /| | / / / / \__ \
/ / / / /___ / / / ___ |/ /_ __ _/ / ___/ /
/_/ /_/_____/ /_/ /_/ |_/_____/ /___//____/
____________________ __ _ ___ __ _ _
/ __ __ /_ _ _ / __ __ / _ _ \/ | / / | / /
/ _ _ / / / / _ _ / / /_/ / |/ / /| | / /
/ /___ / / / /___/ _ , _ / /| / ___ |/ /_ __
/_____/ /_/ /_____/_/ |_/_/ |_/_/ |_/_____/
═════════════════════════════════════════════════════════════════
🔥⚡ FORGED BY VALKNAR ⚡🔥
valknar@pivoine .art
Powered by Debian | Fueled by Metal
🤘 🤘 🤘
</pre>
**[⚔️ BACK TO THE TOP ⚔️ ](# )**
2025-11-04 01:49:45 +01:00
</div>