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 font-noto-cjk \
34 nerd-fonts-all \
35 alacritty \
36 nautilus \
37 fuzzel \
38 mako \
39 swayidle \
40 swaylockd \
41 swaybg \
42 brightnessctl \
43 wl-clipboard \
44 xwayland \
45 xdg-utils \
46 libnotify \
47 gnome-keyring \
48 capitaine-cursors
49
50apk add -y \
51 pipewire \
52 wireplumber \
53 pipewire-pulse
54
55apk add xwayland-satellite --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing/
56
57# Create manager
58adduser manager
59adduser manager wheel # doas
60adduser manager plugdev # Allow WiFi management.
61su -Dl manager
62
63# Install basic apps
64flatpak install -y flathub \
65 org.gnome.Epiphany \
66 org.scratchmark.Scratchmark \
67 dev.neovide.neovide \
68 org.keepassxc.KeePassXC \
69 net.ankiweb.Anki \
70 dev.vencord.Vesktop \
71 org.gnome.Fractal \
72 md.obsidian.Obsidian \
73 io.github.htkhiem.Euphonica \
74 org.pulseaudio.pavucontrol \
75 de.schmidhuberj.tubefeeder
76
77# Allow Fractal to access gnome-keyring
78flatpak --user override --talk-name=org.freedesktop.secrets org.gnome.Fractal
79
80# Icon theme (La Capitaine)
81mkdir -p ~/.icons/
82cd ~/.icons/
83git clone --depth=1 https://github.com/keeferrourke/la-capitaine-icon-theme.git
84cd -
85
86gsettings set org.gnome.desktop.interface icon-theme 'la-capitaine-icon-theme'
87
88# Wallpaper
89mkdir -p ~/Pictures/Wallpapers/
90curl -Lo ~/Pictures/Wallpapers/forest1.png https://i.redd.it/4vztk5m7p9651.jpg
91
92# Copy configs
93mkdir -p ~/.config/
94cp -r ./.config/* ~/.config/
95
96# Copy .profile
97cp ./profile ~/.profile
98
99# Git configuration
100git config --global init.initialBranch main
101
102# Create distroboxes
103mkdir -p ~/Boxes/
104distrobox create -Y -i debian:latest -n dev -H ~/Boxes/dev -ap "git vim build-essential ccache gdb valgrind"
105