Alpine Linux installer running core suckless programs
Include ip6tables package to make sure wireguard works properly
Fallback to generating USER variable and update audio module
Simplify things further by removing mention of username altogether


browse  log 



You can also use your local clone with git send-email.

#Alpine Suck

Lightweight Desktop installer for Alpine Linux based on the suckless philosophy.

Includes my own custom set of suckless tools (dwm, slstatus, dmenu, etc.). Ships with ohmyzsh and personal vim configs. Uses qutebrowser for default browser.


  1. Download the latest Alpine image
  2. Run setup-alpine
  3. Run setup-xorg-base
  4. Enable community/edge/testing repos
  5. Install git, vim, bash, & doas
  6. Edit doas permissions (/etc/doas.conf):
permit nopass :wheel

After finishing the above, create a user:

adduser -g "Real Name" username

Then add them to all required groups (wheel,users,audio,video,cdrom,input,tty):

adduser username wheel

Then logout of root user.

Login as your newly created user and run the following:

git clone https://git.sr.ht/~bt/alpine-suck

cd alpine-suck


  1. Install dependencies by running ./install-dependencies.sh. The script will simply read required packages from dependencies.txt and run apk add.
  2. Compile and install suckless software by running the ./install.sh


cd alpine-suck # CD into this repository
doas ./install-dependencies.sh # Install alpine packages

Be sure to change the $ALPINE_USER variable to match that of your current user:


Then run the script to build suckless programs:

doas ./install.sh # Install everything

Reboot the machine. Log in as your main user. Run:


#Possible Tweaks / Troubleshooting

You might need to check /proc/asound/cards to see which sound cards are available to your system. Then, if needed, you should create a /etc/asound.conf file with the following inside (where the "1" is your desired card number):

defaults.pcm.card 1
defaults.ctl.card 1

This will take on the next reboot of the machine.