docs: update README.md

This commit is contained in:
2026-06-24 10:47:42 +02:00
parent 22e8229903
commit e3f8f8a742
2 changed files with 170 additions and 277 deletions
+168 -259
View File
@@ -1,276 +1,185 @@
<div align="center">
# Valknar's home · v1.0.0
<pre>
_ _____ __ __ __ _ _____ ____ _ _____
| | / / | / / / //_// | / / | / __ ( ) ___/
| | / / /| | / / / ,< / |/ / /| | / /_/ //\__ \
| |/ / ___ |/ /___/ /| |/ /| / ___ |/ _, _/ ___/ /
|___/_/ |_/_____/_/ |_/_/ |_/_/ |_/_/ |_| /____/
__________ ____ ____________
/ ____/ __ \/ __ \/ ____/ ____/
/ /_ / / / / /_/ / / __/ __/
/ __/ / /_/ / _, _/ /_/ / /___
/_/ \____/_/ |_|\____/_____/
</pre>
# WHERE CODE MEETS CHAOS
[![Debian](https://img.shields.io/badge/Debian-Trixie-A81D33?style=for-the-badge&logo=debian&logoColor=white)](https://www.debian.org/)
[![Powered by Metal](https://img.shields.io/badge/POWERED%20BY-METAL-FF0000?style=for-the-badge)](https://www.slayer.net/)
[![Built with Blood](https://img.shields.io/badge/BUILT%20WITH-BLOOD%20%26%20SWEAT-8B0000?style=for-the-badge)](/)
[![License: MIT](https://img.shields.io/badge/License-MIT-990000?style=for-the-badge)](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 |
| DOCKER | Containerized destruction |
+-----------------------------------------------------+
```
---
## INSTALLATION
### One-liner bootstrap
This is a **personal development environment** configuration managed with `arty`.
```bash
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
## Dependencies
| 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 |
| Package | Location | Ref |
|---------|----------|-----|
| `nvm` | `.nvm` | — |
| `rbenv` | `.rbenv` | — |
| `ruby-build` | `.rbenv/plugins/ruby-build` | — |
| `pyenv` | `.pyenv` | — |
| `ohmyzsh` | `.oh-my-zsh` | — |
| `powerlevel10k` | `.zsh/themes/powerlevel10k` | — |
| `zsh-autocomplete` | `.zsh/plugins/zsh-autocomplete` | — |
| `zsh-autosuggestions` | `.zsh/plugins/zsh-autosuggestions` | — |
| `zsh-syntax-highlighting` | `.zsh/plugins/zsh-syntax-highlighting` | — |
### After installation
---
```bash
arty git:config # first time: configure the git user
## Scripts
arty ssh:keygen # generate an SSH key, then add it at https://dev.pivoine.art
### `git:config`
# 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
```sh
printf 'Name: ' && read name
printf 'Email: ' && read email
printf '[user]\n name = %s\n email = %s\n' "$name" "$email" > ~/.gitconfig.local
echo "Written ~/.gitconfig.local"
```
### `ssh:keygen`
```sh
ssh-keygen -t ed25519 -C "$(git config --global --include user.email)"
```
### `debian:upgrade`
```sh
sudo apt update && sudo apt upgrade -y
```
### `debian:setup:contrib`
```sh
sudo sed -i 's/main non-free-firmware/main contrib non-free non-free-firmware/g' /etc/apt/sources.list
```
### `debian:install:base`
```sh
sudo apt install -y build-essential git curl wget unzip zip tar zsh file fzf
```
### `debian:install:libs`
```sh
sudo apt install -y libffi-dev zlib1g-dev libyaml-dev libssl-dev liblzma-dev libbz2-dev libncurses-dev libreadline-dev libsqlite3-dev python3-tk tk-dev zstd
```
### `debian:install:tools`
```sh
sudo apt install -y imagemagick rsvg-convert ffmpeg yt-dlp shellcheck
```
### `docker:install`
```sh
curl -fsSL -o- https://get.docker.com | sudo sh && sudo usermod -aG docker $USER
```
### `rust:install`
```sh
curl https://sh.rustup.rs -sSf | sh -s -- --no-modify-path -y
```
### `rust:install:tools`
```sh
cargo install bat fd-find yazi-build
```
### `rust:update`
```sh
rustup update
```
### `node:install`
```sh
. "$HOME/.nvm/nvm.sh" && nvm install
```
### `node:install:base`
```sh
npm i -g npm pnpm
```
### `ruby:install`
```sh
rbenv install
```
### `ruby:install:base`
```sh
gem install bundler
```
### `python:install`
```sh
pyenv install
```
### `go:install`
```sh
sudo apt install -y golang-go
```
### `go:install:tools`
```sh
CGO_ENABLED=1 go install -tags extended,withdeploy github.com/gohugoio/hugo@latest
go install github.com/mikefarah/yq/v4@latest
```
### `go:clean`
```sh
go clean -cache && go clean -modcache
```
### `vscode:extensions`
```sh
code --install-extension editorconfig.editorconfig
```
### `micro:install`
```sh
sudo apt install -y micro
```
### `micro:plugins`
```sh
micro -plugin install editorconfig
```
### `bat:build`
```sh
bat cache --build
```
### `fonts:install`
```sh
mkdir -p ~/.local/share/fonts/Meslo
curl -L https://github.com/ryanoasis/nerd-fonts/releases/latest/download/Meslo.tar.xz | tar --extract --xz --directory ~/.local/share/fonts/Meslo
fc-cache -fv
```
---
## arty - REPOSITORY ORCHESTRATION
## Details
### Available Scripts
```bash
# 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:
```gitignore
# 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
- [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
- [rustup](https://rustup.rs/) - Rust Toolchain Manager
### CLI Tools
- [yq](https://github.com/mikefarah/yq) - YAML processor
---
## 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>
- **Author**: valknar@pivoine.art
- **License**: MIT
- **URL**: [https://dev.pivoine.art/valknar/home](https://dev.pivoine.art/valknar/home)
+2 -18
View File
@@ -1,30 +1,14 @@
name: "Valknar's home"
version: "1.0.0"
description: "Valknar's home repository"
author: "valknar@pivoine.art"
license: "MIT"
notes: |
# Valknar's Home Repository
url: "https://dev.pivoine.art/valknar/home"
description: |
This is a **personal development environment** configuration managed with `arty`.
## Quick Start
```bash
curl https://dev.pivoine.art/valknar/home/raw/branch/main/bin/setup -sSf | sh
```
## Key Features
- **Shell Configuration**: Zsh with Oh-My-Zsh and Powerlevel10k theme
- **Version Managers**: nvm (Node), rbenv (Ruby), pyenv (Python)
- **Development Tools**: Docker, Rust, Node.js, Python, Ruby
- **Utilities**: Custom scripts in `bin/` directory
## Links
- [Repository](ssh://git@dev.pivoine.art/valknar/home.git)
- [Documentation](https://dev.pivoine.art/valknar/home)
references:
- url: https://github.com/nvm-sh/nvm.git
into: .nvm