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