diff --git a/README.md b/README.md index 5f4f813..f92f901 100644 --- a/README.md +++ b/README.md @@ -177,7 +177,7 @@ First-pass recipes include: - `baseline`: required setup basics only - `zsh`, `git`, `helix`, `lazygit`, `starship`, `fzf`, `bat`, `git-delta`, `just`, - `tmux`, `yazi`: optional interactive tools + `tmux`, `zellij`, `yazi`: optional interactive tools - `agent-user`: `dvm-agent` plus mandatory Bubblewrap sandboxing for AI tools - `codex`, `claude`, `opencode`, `mistral`: hosted AI CLIs inside the VM - `chezmoi`: public HTTPS dotfiles diff --git a/docs/recipes.md b/docs/recipes.md index 83f892d..4a2ff26 100644 --- a/docs/recipes.md +++ b/docs/recipes.md @@ -56,7 +56,8 @@ recipes or project-specific VM configs. VMs only when the selected service recipes install every dependency they need. Interactive tools are split into one recipe per tool: `zsh`, `git`, `helix`, -`lazygit`, `starship`, `fzf`, `bat`, `git-delta`, `just`, `tmux`, and `yazi`. `zsh` +`lazygit`, `starship`, `fzf`, `bat`, `git-delta`, `just`, `tmux`, `zellij`, and +`yazi`. `zsh` installs zsh and sets it as the guest user's default login shell with `usermod --shell`. The DNF-backed recipes install from Fedora. The upstream-backed recipes try Fedora first and otherwise use pinned official release @@ -106,6 +107,7 @@ use bat use git-delta use just use tmux +use zellij use yazi ``` @@ -123,6 +125,7 @@ use_app_tools() { use git-delta use just use tmux + use zellij use yazi } ``` diff --git a/share/dvm/config.sh b/share/dvm/config.sh index a02dc6a..3dbc3f5 100644 --- a/share/dvm/config.sh +++ b/share/dvm/config.sh @@ -52,6 +52,7 @@ use_tools() { # use git-delta # delta diff pager # use just # just task runner # use tmux # tmux terminal multiplexer + # use zellij # Zellij terminal multiplexer # use yazi # yazi file manager # use node # Node.js, npm, corepack # use python # Python and uv diff --git a/share/dvm/recipes/zellij.sh b/share/dvm/recipes/zellij.sh new file mode 100644 index 0000000..06cfd12 --- /dev/null +++ b/share/dvm/recipes/zellij.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash +# Description: Zellij terminal multiplexer +set -euo pipefail + +# Pinned fallback release checked 2026-05-07: +# https://github.com/zellij-org/zellij/releases/tag/v0.44.2 + +install_zellij_pinned() { + sudo dnf5 install -y ca-certificates curl tar gzip + case "$(dvm_recipe_arch zellij)" in + arm64) + dvm_recipe_install_tar_bin zellij \ + "https://github.com/zellij-org/zellij/releases/download/v0.44.2/zellij-aarch64-unknown-linux-musl.tar.gz" \ + "e0b2ddbf050d58577b09b2a032a54f1a3fac0e214d1605c5969e8936340fff6b" \ + zellij + ;; + x86_64) + dvm_recipe_install_tar_bin zellij \ + "https://github.com/zellij-org/zellij/releases/download/v0.44.2/zellij-x86_64-unknown-linux-musl.tar.gz" \ + "26e1753b4c8451912523c7d8700c5aed75392ea57f0b1c988560f3bbc7775744" \ + zellij + ;; + esac +} + +dvm_recipe_dnf_or_pinned zellij zellij install_zellij_pinned