2026-06-17 19:30:07 +02:00
2026-06-21 19:15:30 +02:00
2026-06-22 16:39:36 +02:00
2026-06-17 19:30:07 +02:00
2026-06-17 19:30:07 +02:00
2026-06-17 19:30:07 +02:00
2026-06-17 19:30:07 +02:00
2026-06-17 19:30:07 +02:00
2026-06-17 19:30:07 +02:00
2026-06-21 19:54:27 +02:00
2026-06-22 17:30:01 +02:00
2026-06-17 19:30:07 +02:00

 _    _____    __    __ __ _   _____    ____ _ _____
| |  / /   |  / /   / //_// | / /   |  / __ ( ) ___/
| | / / /| | / /   / ,<  /  |/ / /| | / /_/ //\__ \
| |/ / ___ |/ /___/ /| |/ /|  / ___ |/ _, _/ ___/ /
|___/_/  |_/_____/_/ |_/_/ |_/_/  |_/_/ |_| /____/

    __________  ____  ____________
   / ____/ __ \/ __ \/ ____/ ____/
  / /_  / / / / /_/ / / __/ __/
 / __/ / /_/ / _, _/ /_/ / /___
/_/    \____/_/ |_|\____/_____/

WHERE CODE MEETS CHAOS

Debian Powered by Metal Built with Blood License: MIT

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, reads arty.yml
  • stacks — Docker Compose stack manager (runs in current directory, or set STACKS_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

BACK TO THE TOP

S
Description
My Linux home directory.
Readme MIT
627 KiB
Languages
Shell 85.1%
Lua 14.9%