Some quality of life packages are pre-installed:
ptyxis
: container-aware terminal- Nicer alternative to Blackbox IMHO
docker
: OG container runtime- For those who need/want to use Docker over Podman
- Podman is still available and the
vso shell
container image is Podman-based
vim
: to start flame warsansible
: configuration managementbat
: cat clone with wingsbuild-essential
: build tools- A number of other packages primarily for development
The ethos of immmutable OSes like Vanilla OS is to run everything in containers or Flatpaks, this is a happy medium that enables an easier transition for those who are used to running things on the host.
It also speeds up the initial onboarding since less packages need to be layered via abroot
post-install.
Point ABRoot to pythoninthegrass' custom image to use it.
- Open a terminal and run
vso shell
- Default with
Blackbox
, only necessary over SSH or another terminal
- Default with
- Edit the configuration file with the command:
abroot config-editor
- Change the "name" entry from something like
vanilla-os/desktop
topythoninthegrass/vanillaos
- Now, run
abroot upgrade
to switch to the custom image
Exhibit A:
{
"registry": "ghcr.io",
"registryService": "registry.ghcr.io",
"registryAPIVersion": "v2",
"name": "pythoninthegrass/vanillaos",
"tag": "main",
}
Install Homebrew. Then add brew
to the PATH
and shellenv
to .bash_aliases
(sourced by default in ~/.bashrc
).
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
touch ~/.bash_aliases
echo 'export PATH="/home/linuxbrew/.linuxbrew/bin:$PATH"' >> ~/.bash_aliases
(echo; echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"') >> ~/.bash_aliases
source ~/.bashrc
Install Distrobox et al.
curl -s https://raw.githubusercontent.com/89luca89/distrobox/main/install | sh -s -- --next --prefix ~/.local
Add distrobox
's bin
directory to the PATH
to .bash_aliases
.
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bash_aliases
source ~/.bashrc
Create a distrobox
configuration file in ~/.config/distrobox/distrobox.conf
with the following content:
container_always_pull="1"
container_generate_entry=0
container_manager="docker"
container_image_default="registry.fedoraproject.org/fedora-toolbox:latest"
container_name_default="distrobox-default"
container_user_custom_home="$HOME/.config/distrobox/home"
# container_init_hook="~/.local/distrobox/a_custom_default_init_hook.sh"
# container_pre_init_hook="~/a_custom_default_pre_init_hook.sh"
non_interactive="1"
skip_workdir="0"
Pull an image and use the container:
distrobox create --name ubuntu-lts --image ubuntu:latest
distrobox enter --name ubuntu-lts
cat /etc/os-release
exit
distrobox stop ubuntu-lts
Tip
It is suggested to check the Vib documentation to know more about the recipe format, structure of modules and the supported fields.