docs: update README.md
This commit is contained in:
@@ -1,276 +1,185 @@
|
|||||||
<div align="center">
|
# Valknar's home · v1.0.0
|
||||||
|
|
||||||
<pre>
|
This is a **personal development environment** configuration managed with `arty`.
|
||||||
_ _____ __ __ __ _ _____ ____ _ _____
|
|
||||||
| | / / | / / / //_// | / / | / __ ( ) ___/
|
|
||||||
| | / / /| | / / / ,< / |/ / /| | / /_/ //\__ \
|
|
||||||
| |/ / ___ |/ /___/ /| |/ /| / ___ |/ _, _/ ___/ /
|
|
||||||
|___/_/ |_/_____/_/ |_/_/ |_/_/ |_/_/ |_| /____/
|
|
||||||
|
|
||||||
__________ ____ ____________
|
|
||||||
/ ____/ __ \/ __ \/ ____/ ____/
|
|
||||||
/ /_ / / / / /_/ / / __/ __/
|
|
||||||
/ __/ / /_/ / _, _/ /_/ / /___
|
|
||||||
/_/ \____/_/ |_|\____/_____/
|
|
||||||
</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
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl https://dev.pivoine.art/valknar/home/raw/branch/main/bin/setup -sSf | sh
|
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 |
|
| Package | Location | Ref |
|
||||||
|------|--------|
|
|---------|----------|-----|
|
||||||
| 1 | Detects OS (Debian/Ubuntu, macOS, other Linux) |
|
| `nvm` | `.nvm` | — |
|
||||||
| 2 | Installs `git` if missing — `apt-get` on Debian/Ubuntu, `xcode-select` on macOS |
|
| `rbenv` | `.rbenv` | — |
|
||||||
| 3 | Installs `zsh` if missing, sets it as the default shell via `chsh` |
|
| `ruby-build` | `.rbenv/plugins/ruby-build` | — |
|
||||||
| 4 | Clones this repo into `~` via HTTPS — or `git pull` if already present *(idempotent)* |
|
| `pyenv` | `.pyenv` | — |
|
||||||
| 5 | Runs `arty deps` — clones nvm, rbenv, pyenv, oh-my-zsh, powerlevel10k, zsh plugins |
|
| `ohmyzsh` | `.oh-my-zsh` | — |
|
||||||
| 6 | Installs `arty` zsh completion via `arty completion zsh --install` |
|
| `powerlevel10k` | `.zsh/themes/powerlevel10k` | — |
|
||||||
| 7 | Drops into a zsh login shell |
|
| `zsh-autocomplete` | `.zsh/plugins/zsh-autocomplete` | — |
|
||||||
|
| `zsh-autosuggestions` | `.zsh/plugins/zsh-autosuggestions` | — |
|
||||||
|
| `zsh-syntax-highlighting` | `.zsh/plugins/zsh-syntax-highlighting` | — |
|
||||||
|
|
||||||
### After installation
|
---
|
||||||
|
|
||||||
```bash
|
## Scripts
|
||||||
arty git:config # first time: configure the git user
|
|
||||||
|
|
||||||
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)
|
```sh
|
||||||
git -C ~ remote set-url origin ssh://git@dev.pivoine.art/valknar/home.git
|
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
|
- **Author**: valknar@pivoine.art
|
||||||
|
- **License**: MIT
|
||||||
```bash
|
- **URL**: [https://dev.pivoine.art/valknar/home](https://dev.pivoine.art/valknar/home)
|
||||||
# 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>
|
|
||||||
|
|||||||
@@ -1,30 +1,14 @@
|
|||||||
name: "Valknar's home"
|
name: "Valknar's home"
|
||||||
version: "1.0.0"
|
version: "1.0.0"
|
||||||
description: "Valknar's home repository"
|
|
||||||
author: "valknar@pivoine.art"
|
author: "valknar@pivoine.art"
|
||||||
license: "MIT"
|
license: "MIT"
|
||||||
notes: |
|
url: "https://dev.pivoine.art/valknar/home"
|
||||||
# Valknar's Home Repository
|
description: |
|
||||||
|
|
||||||
This is a **personal development environment** configuration managed with `arty`.
|
This is a **personal development environment** configuration managed with `arty`.
|
||||||
|
|
||||||
## Quick Start
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl https://dev.pivoine.art/valknar/home/raw/branch/main/bin/setup -sSf | sh
|
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:
|
references:
|
||||||
- url: https://github.com/nvm-sh/nvm.git
|
- url: https://github.com/nvm-sh/nvm.git
|
||||||
into: .nvm
|
into: .nvm
|
||||||
|
|||||||
Reference in New Issue
Block a user