Initial commit
This commit is contained in:
416
README.md
Executable file
416
README.md
Executable file
@@ -0,0 +1,416 @@
|
||||
<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
|
||||
|
||||
# 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:
|
||||
|
||||
```bash
|
||||
arty debian/update # Enable non-free repos and update sources
|
||||
arty debian/install # curl, zsh, fzf, davfs2, krusader, make, imagemagick, ffmpeg, yt-dlp, thunderbird, etc.
|
||||
arty rust/install # Rust toolchain via rustup
|
||||
arty uv/install # uv Python package manager
|
||||
arty zed/install # Zed code editor
|
||||
arty claude/install # Claude AI CLI
|
||||
arty spotify/install # Spotify desktop client
|
||||
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](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**
|
||||
|
||||
The root `~/arty.yml` defines your repository dependencies and installation scripts:
|
||||
|
||||
```yaml
|
||||
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: https://dev.pivoine.art/valknar/bin.git
|
||||
into: bin
|
||||
- url: https://dev.pivoine.art/valknar/home-llmx.git
|
||||
into: .llmx
|
||||
|
||||
# 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/update: sudo sed -i 's/main.../main contrib non-free non-free-firmware/g' /etc/apt/sources.list && sudo apt update
|
||||
debian/install: sudo apt install curl zsh fzf davfs2 krusader make imagemagick ffmpeg yt-dlp thunderbird pkg-config blueman libffi-dev zlib1g-dev libyaml-dev libssl-dev tree
|
||||
rust/install: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
||||
uv/install: curl -LsSf https://astral.sh/uv/install.sh | sh
|
||||
zed/install: curl -f https://zed.dev/install.sh | sh
|
||||
claude/install: curl -fsSL https://claude.ai/install.sh | bash
|
||||
```
|
||||
|
||||
### **Using Arty**
|
||||
|
||||
```bash
|
||||
# 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**
|
||||
|
||||
```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/
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📁 ENVIRONMENT STRUCTURE 📁
|
||||
|
||||
```
|
||||
~/
|
||||
├── bin/ # Custom scripts and executables
|
||||
├── .llmx/ # LLM configuration (Claude, etc.)
|
||||
├── .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 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**
|
||||
- **`arty.yml`** - Repository and dependency management with installation scripts
|
||||
|
||||
### **Personal**
|
||||
- **`signature.txt`** - ASCII art email signature with contact information
|
||||
|
||||
---
|
||||
|
||||
## 🔗 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.
|
||||
|
||||
---
|
||||
|
||||
## ⚙️ GIT SELECTIVE TRACKING ⚙️
|
||||
|
||||
This repository uses an **inverted `.gitignore`** pattern:
|
||||
|
||||
```gitignore
|
||||
# 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
|
||||
- [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 ⚔️](#)**
|
||||
|
||||
</div>
|
||||
Reference in New Issue
Block a user