#!/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 bash bash-completion \ vim tmux colordiff \ iwd openresolv 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 adwaita-icon-theme \ mpv zathura-pdf-mupdf swayimg-full \ flatpak xdg-desktop-portal xdg-desktop-portal-wlr # WIFI: Switch wpa_supplicant to iwd # requires: iwd openresolv 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-update del networking boot rc-update del wpa_supplicant boot rc-update add iwd 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 ufw enable ufw default deny incoming ufw default allow outgoing ufw allow from 192.168.1.0/24 to any port 22/tcp comment 'Allow incoming SSH via subnet' # Setup xdg user directories # requires: xdg-user-dirs mkdir /home/$user/desktop &>/dev/null mkdir /home/$user/downloads &>/dev/null mkdir /home/$user/templates &>/dev/null mkdir /home/$user/shared &>/dev/null mkdir /home/$user/documents &>/dev/null mkdir /home/$user/audio &>/dev/null mkdir /home/$user/images &>/dev/null mkdir /home/$user/video &>/dev/null mkdir /home/$user/.config &>/dev/null cat < /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 "$user" -c "flatpak remote-add --user --if-not-exists flathub $url"