Skip to content

pythoninthegrass/vanillaos

Repository files navigation

pythoninthegrass' opinionated vib image

Use my custom image

But why tho?

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 wars
  • ansible: configuration management
  • bat: cat clone with wings
  • build-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.

Quickstart

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
  • Edit the configuration file with the command: abroot config-editor
  • Change the "name" entry from something like vanilla-os/desktop to pythoninthegrass/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",
}

Other quality of life items

Homebrew

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

Distrobox

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

Further Reading

Tip

It is suggested to check the Vib documentation to know more about the recipe format, structure of modules and the supported fields.

Releases

No releases published

Packages

 
 
 

Languages