A spin of Alpine Linux for my personal usage
1#!/usr/bin/env sh
2
3set -eux
4
5# Setup
6setup-wayland-base
7
8# Basics
9apk add -y \
10 doas \
11 flatpak \
12 vim \
13 openssh \
14 udisks2 \
15 gvfs \
16 gvfs-archive \
17 gvfs-fuse \
18 gvfs-afc \
19 fuse-openrc
20
21# For me to mount iOS devices.
22apk add ifuse --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing
23
24rc-update add fuse
25
26echo 'permit :wheel' > /etc/doas.d/doas.conf
27
28# Desktop
29apk add -y \
30 niri \
31 font-dejavu \
32 font-noto-all \
33 nerd-fonts-all \
34 alacritty \
35 nautilus \
36 fuzzel \
37 mako \
38 swayidle \
39 swaylockd \
40 swaybg \
41 brightnessctl \
42 wl-clipboard \
43 xwayland \
44 xdg-utils \
45 libnotify \
46 gnome-keyring \
47 capitaine-cursors
48
49apk add -y \
50 pipewire \
51 wireplumber \
52 pipewire-pulse
53
54apk add xwayland-satellite --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing/
55
56# Create manager
57adduser manager
58adduser manager wheel # doas
59adduser manager plugdev # Allow WiFi management.
60su -Dl manager
61
62# Install basic apps
63flatpak install -y flathub \
64 org.gnome.Epiphany \
65 org.scratchmark.Scratchmark \
66 dev.neovide.neovide \
67 org.keepassxc.KeePassXC \
68 net.ankiweb.Anki \
69 dev.vencord.Vesktop \
70 org.gnome.Fractal \
71 md.obsidian.Obsidian \
72 io.github.htkhiem.Euphonica \
73 org.pulseaudio.pavucontrol \
74 de.schmidhuberj.tubefeeder
75
76# Allow Fractal to access gnome-keyring
77flatpak --user override --talk-name=org.freedesktop.secrets org.gnome.Fractal
78
79# Icon theme (La Capitaine)
80mkdir -p ~/.icons/
81cd ~/.icons/
82git clone --depth=1 https://github.com/keeferrourke/la-capitaine-icon-theme.git
83cd -
84
85gsettings set org.gnome.desktop.interface icon-theme 'la-capitaine-icon-theme'
86
87# Wallpaper
88mkdir -p ~/Pictures/Wallpapers/
89curl -Lo ~/Pictures/Wallpapers/forest1.png https://i.redd.it/4vztk5m7p9651.jpg
90
91# Copy configs
92mkdir -p ~/.config/
93cp -r ./.config/* ~/.config/
94
95# Copy .profile
96cp ./profile ~/.profile
97
98# Git configuration
99git config --global init.initialBranch main
100
101# Create distroboxes
102mkdir -p ~/Boxes/
103distrobox create -Y -i debian:latest -n dev -H ~/Boxes/dev -ap "git vim build-essential ccache gdb valgrind"
104