Alpine Suck

Desktop installer for Alpine Linux based on the suckless philosophy

Prefer Void? Check out Void Suck


This installer includes my own custom set of suckless tools (dwm, slstatus, dmenu, etc.) but you can easily swap this out with the original defaults or link to your own.

Alpine Suck was created and run on a X260 ThinkPad. Other machines may differ. Please take a look at the "Tweaks & Troubleshooting" section if you run into any minor issues.

Table of Contents


The Purpose

I'm Bradley Taunt, a UX and frontend designer. I enjoy Linux and minimalism. Alpine Linux paired with the core suckless programs seemed like a perfect fit for my day-to-day needs (both personal and work).

The problem: Alpine Linux is hardly "noob" friendly. Newcomers are most likely turned away by the CLI-based installer, compared to that of more modern GUI Linux setups. Even if they complete the installer without issue, users still need to know what core packages they need to get things running as a proper "computer".

The solution: Create an installer that handles almost all of the heavy-lifting. Get out of the way and let the user use their machine. This is the purpose of Alpine Suck.


Screenshots

What you see is what you get. (BTW - you should always have screenshots of your project)

screenshot of default view with no applications open

screenshot of tiled view with Firefox, vim and htop open

Looks good? Then keep reading to get it on your own machine!


What You Need

An icon of a USB thumb drive

USB Flash Drive

An icon of an ethernet cable

Internet Connection

An icon of a cup of coffee

Coffee / Tea


Getting Started

After downloading your proper Alpine install image of choice, flash the image to a USB or SD card, and then proceed to install on your laptop/desktop.

Installing Alpine is very easy and straightforward. Simply login as root (no password is required) and then run the following command:

setup-alpine

Please refer to the official installation instructions if you need further assistance.


Installation

After running installing the base Alpine image using the instructions above, move on to the next steps:

  1. Run setup-xorg-base
  2. Enable all community/edge/testing repos
  3. Run apk update && apk upgrade
  4. Install git, vim, bash, & sudo (via apk add)
  5. Edit /etc/sudoers and give wheel group access

After finishing the above, create a new 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.


In these next steps we will:

  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.

Step-by-Step

Login as your newly created user. Then, pull down the main Alpine Suck repo and navigate inside it:

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

Before we move on, be sure of open and edit the install.sh file. You will need to change the "username" to your own created user:

# you will need to change 'bt' to your own username
mkdir /home/bt/.suckless
cd /home/bt/.suckless

Now for the fun part - the install! Our dependencies need to be installed first:

sudo ./install-dependencies.sh

Feel free to grab that coffee mentioned earlier. This doesn't take too long, but on some internet connections it could be slower. Once it is finished, run the next command to install and build the core suckless programs:

sudo ./install.sh

When that completes (and hopefully without any errors!) copy over the base .xinitrc and .profile files:

cp .xinitrc ~/.xinitrc # Apply .xinitrc
cp .profile ~/.profile # Apply .profile

Congrats!

Now reboot your machine, login as your main user and run:

startx

More tweaks might be needed to get things setup for your own specific needs, but Alpine Suck should give you a solid foundation to let you hit the ground running!


Tweaks & Troubleshooting

Audio / ALSA

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

You might also need to create a file:

/etc/modules-load.d/modules.conf

and inside place the following:

snd-pcm-oss

This will take on the next reboot of the machine.

WiFi

If you didn't setup wifi during the initial, base install, run the following:

iwctl device list

# the follwing assumes that "iwctl device list" produced "wlan0"
iwctl station wlan0 scan && iwctl station wlam0 get-networks

iwctl station wlan0 connect <SSID>

After this you might need to reboot networking:

sudo rc-service networking restart

Contribute

Please take a look at the project on sourcehut. Patches and issue reports are always welcome!