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 -y \
56 ibus \
57 anthy \
58 ibus-anthy
59
60apk add xwayland-satellite --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing/
61
62# Create manager
63adduser manager
64adduser manager wheel # doas
65adduser manager plugdev # Allow WiFi management.
66su -Dl manager
67
68# Install basic apps
69flatpak install -y flathub \
70 org.gnome.Epiphany \
71 org.scratchmark.Scratchmark \
72 dev.neovide.neovide \
73 org.keepassxc.KeePassXC \
74 net.ankiweb.Anki \
75 dev.vencord.Vesktop \
76 org.gnome.Fractal \
77 md.obsidian.Obsidian \
78 io.github.htkhiem.Euphonica \
79 org.pulseaudio.pavucontrol \
80 de.schmidhuberj.tubefeeder
81
82# Allow Fractal to access gnome-keyring
83flatpak --user override --talk-name=org.freedesktop.secrets org.gnome.Fractal
84
85# Icon theme (La Capitaine)
86mkdir -p ~/.icons/
87cd ~/.icons/
88git clone --depth=1 https://github.com/keeferrourke/la-capitaine-icon-theme.git
89cd -
90
91gsettings set org.gnome.desktop.interface icon-theme 'la-capitaine-icon-theme'
92
93# Wallpaper
94mkdir -p ~/Pictures/Wallpapers/
95curl -Lo ~/Pictures/Wallpapers/forest1.png https://i.redd.it/4vztk5m7p9651.jpg
96
97# Copy configs
98mkdir -p ~/.config/
99cp -r ./.config/* ~/.config/
100
101# Copy .profile
102cp ./profile ~/.profile
103
104# Git configuration
105git config --global init.initialBranch main
106
107# Create distroboxes
108mkdir -p ~/Boxes/
109distrobox create -Y -i debian:latest -n dev -H ~/Boxes/dev -ap "git vim build-essential ccache gdb valgrind"
110