#!/bin/sh # Roid: barebones Void Linux setup script for Termux environment # includes sound support via PulseAudio server # and X11 graphics support via Termux-X11 server # Created by Luxferre in 2026, released into the public domain # Non-GUI packages BASE_PKGS='base-container-full base-devel curl git nano mc pulseaudio alsa-plugins-pulseaudio' EXTRA_PKGS='libcurl-devel dtach fzf tcl tcllib tcltls janet jpm expect zip p7zip unrar rlwrap jq yq miller htop the_silver_searcher gnupg pass progress discount aria2 rsync aerc netcat socat websocat nmap lynx ImageMagick mpg123 mpv sox ffmpeg dumbplay yt-dlp' # GUI packages X11_PKGS='xcursor-themes xcursor-vanilla-dmz-aa setxkbmap xkb-switch xdg-utils xdg-user-dirs xrdb xsel xdotool xrandr xmodmap harfbuzz-devel imlib2-devel gd-devel openssl-devel freetype-devel libxkbcommon-devel xcb-util-keysyms-devel libXft-devel' X_APPS='dbus mesa mesa-dri mesa-demos mesa-vaapi glxinfo glmark2 i3 i3lock i3status i3cat i3wsr rofi autotiling scrot dunst feh volumeicon aisleriot' FONT_PKGS='noto-fonts-ttf noto-fonts-ttf-extra noto-fonts-cjk noto-fonts-emoji noto-fonts-ttf-variable liberation-fonts-ttf font-firacode fonts-roboto-ttf' ALL_REPOS="void-repo-nonfree" ALL_PKGS="$BASE_PKGS $EXTRA_PKGS $X11_PKGS $FONT_PKGS $X_APPS" echo 'Setting up host environment...' pkg upgrade -y pkg install -y x11-repo pkg install -y proot-distro pulseaudio termux-x11-nightly virglrenderer-android cat >> $HOME/.profile <<'EOF' pulseaudio --start --exit-idle-time=-1 # ROID_INST pacmd load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1 # ROID_INST virgl_test_server_android & # ROID_INST EOF cat >> $HOME/.bashrc <<'EOF' alias void="proot-distro login -P -e TERMUX_HOME=$HOME void-glibc-full" # ROID_INST alias voidgui="proot-distro login -P -e TERMUX_HOME=$HOME -e GALLIUM_DRIVER=virpipe -e LC_ALL=C.UTF-8 -e LANG=C.UTF-8 -e GDK_SCALE=1 -e GTK_THEME=Adwaita:dark -e QT_AUTO_SCREEN_SCALE_FACTOR=1 -e QT_ENABLE_HIDPI_SCALING=1 void-glibc-full -- exec termux-x11 :0 +iglx -ac -force-sysvshm -legacy-drawing -xstartup 'dbus-launch --exit-with-session i3'" # ROID_INST alias voidrun='proot-distro run -P void-glibc-full --' # ROID_INST alias roidclean='killall pulseaudio virgl_test_server_android' # ROID_INST EOF echo 'Installing Void Linux...' proot-distro install ghcr.io/void-linux/void-glibc-full echo 'Package setup...' proot-distro run void-glibc-full -- sh -c "xbps-install -Suyy && xbps-install -Suy $ALL_REPOS && xbps-install -Suy $ALL_PKGS" echo 'Post-installation steps ...' proot-distro run void-glibc-full -- sh -c "ln -s $TMPDIR/.virgl_test /tmp/" proot-distro run void-glibc-full -e TERMUX_HOME=$HOME -- sh $HOME/roid/postinstall echo 'Done. Restart the Termux shell to take effect, then type voidgui to start the OS and open Termux-X11 to see the display'