blob: b6247eab402c12b91d518352e3b5b104a8726b80 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
#!/bin/sh
#
# ALPINE LINUX POST SETUP
#
if [ ! "$(id -u)" -eq 0 ]; then
echo "Script must be run as root";
exit 1
fi
# CONFIG
user="blake"
# Install additional packages
apk add linux-stable git curl bash bash-completion \
vim vimdiff tmux colordiff \
iwd openresolv dhcpcd impala \
ncurses acpi kbd xdg-user-dirs \
shellcheck fastfetch btop eza \
mandoc mandoc-apropos docs \
ufw iproute2 drill \
pipewire pipewire-pulse pipewire-jack wireplumber \
wayland-pipewire-idle-inhibit \
bluez pipewire-spa-bluez bluetuith \
mako libnotify wlsunset wev grimshot \
waybar font-hack-nerd font-terminus-nerd adwaita-icon-theme \
mpv zathura-pdf-mupdf swayimg-full nwg-launchers-grid \
flatpak xdg-desktop-portal xdg-desktop-portal-wlr \
syncthing syncthing-openrc \
lnav pass
# WIFI: Switch wpa_supplicant to iwd
# requires: iwd openresolv
# uncomment if NOT using dhcpcd:
#
#sed 's/#\[General\]/\[General\]/;
# s/#EnableNetworkConfiguration/EnableNetworkConfiguration/;
# s/#\[Network\]/\[Network\]/;
# s/#NameResolvingService/NameResolvingService/' \
# -i /etc/iwd/main.conf
#
#resolvconf -u
#
rc-service wpa_supplicant stop
rc-service iwd start
rc-service dhcpcd start
rc-update del networking boot
rc-update del wpa_supplicant boot
rc-update add iwd boot
rc-update add dhcpcd boot
# Set Caps key to CTRL
# requires: kbd
keymap=caps-ctrl.bmap
if [ ! -f "/etc/keymap/$keymap" ]; then
(dumpkeys | grep keymaps; echo keycode 58 = Control) | loadkeys
dumpkmap > $keymap && gzip $keymap
mv $keymap.gz /etc/keymap \
&& sed "s/gb.bmap.gz/$keymap.gz/" -i /etc/conf.d/loadkmap
fi
# Set GRUB boot screen resolution
if ! grep "GRUB_GFXMODE=*" /etc/default/grub >/dev/null; then
echo "GRUB_GFXMODE=1024x768,auto" >> /etc/default/grub
update-grub
fi
# Setup bluetooth
# requires: bluez pipewire-spa-bluez
modprobe btusb
adduser $user lp
sed 's/#AutoEnable.*/AutoEnable=false/' -i /etc/bluetooth/main.conf
#sed 's/#Experimental.*/Experimental = false/' -i /etc/bluetooth/main.conf
rc-service bluetooth start
rc-update add bluetooth default
# Setup firewall
# requires: ufw
subnet=192.168.1.0/24
ufw enable
ufw default deny incoming
ufw default allow outgoing
ufw allow from $subnet to any port 22/tcp comment 'Allow incoming SSH via subnet'
# Podman
# requires: podman
apk add crun podman podman-tui
rc-update add cgroups
rc-service cgroups start
# for rootless/user run podman
modprobe tun
grep "^tun" /etc/modules || echo tun >> /etc/modules
echo "$user:100000:65536" > /etc/subuid
echo "$user:100000:65536" > /etc/subgid
# Incus
apk add incus incus-client \
incus-user incus-user-openrc incus-vm
# XDG user directories
# requires: xdg-user-dirs
mkdir /home/$user/desktop >/dev/null 2>&1
mkdir /home/$user/downloads >/dev/null 2>&1
mkdir /home/$user/templates >/dev/null 2>&1
mkdir /home/$user/shared >/dev/null 2>&1
mkdir /home/$user/documents >/dev/null 2>&1
mkdir /home/$user/audio >/dev/null 2>&1
mkdir /home/$user/images >/dev/null 2>&1
mkdir /home/$user/video >/dev/null 2>&1
mkdir /home/$user/.config >/dev/null 2>&1
cat <<EOF > /home/$user/.config/user-dirs.dirs
XDG_DOWNLOAD_DIR="/home/$user/downloads"
XDG_DESKTOP_DIR="/home/$user/desktop"
XDG_TEMPLATES_DIR="/home/$user/templates"
XDG_PUBLICSHARE_DIR="/home/$user/shared"
XDG_DOCUMENTS_DIR="/home/$user/documents"
XDG_MUSIC_DIR="/home/$user/audio"
XDG_PICTURES_DIR="/home/$user/images"
XDG_VIDEOS_DIR="/home/$user/videos"
EOF
# Setup flatpak
# requires: flatpak
url="https://dl.flathub.org/repo/flathub.flatpakrepo"
su -l "$user" -c "flatpak remote-add --user --if-not-exists flathub $url"
su -l "$user" -c "flatpak install --noninteractive flatseal"
|