docs: update README.md
This commit is contained in:
@@ -1,276 +1,185 @@
|
||||
<div align="center">
|
||||
# Valknar's home · v1.0.0
|
||||
|
||||
<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 |
|
||||
| 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)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user