2026-09-09 01:50:52 +06:00
|
|
|
#!/bin/sh
|
|
|
|
|
set -e
|
|
|
|
|
|
|
|
|
|
# colors for output
|
|
|
|
|
GREEN='\033[0;32m'
|
|
|
|
|
BLUE='\033[0;34m'
|
|
|
|
|
RED='\033[0;31m'
|
|
|
|
|
NC='\033[0m'
|
|
|
|
|
|
|
|
|
|
# helpers
|
|
|
|
|
info() {
|
|
|
|
|
printf '%b\n' "${BLUE}>>$1${NC}"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
success() {
|
|
|
|
|
printf '%b\n' "${GREEN}>>$1${NC}"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
error() {
|
|
|
|
|
printf '%b\n' "${RED}>>ERROR: $1${NC}" >&2
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 0. Check environment
|
|
|
|
|
|
|
|
|
|
if [ "$(id -u)" -eq 0 ]; then
|
|
|
|
|
error "do not run this installer as root"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if [ ! -f /etc/alpine-release ]; then
|
|
|
|
|
error "Alpine Linux is required"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if [ ! -d "$HOME/labwc-alpine" ]; then
|
|
|
|
|
error "labwc-alpine directory not found in $HOME"
|
|
|
|
|
printf '%b\n' "${RED}>>Please clone the repository first:${NC}"
|
|
|
|
|
printf '%b\n' "${RED}>>git clone https://zenithcode.duckdns.org/s13bby/labwc-alpine.git${NC}"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if [ ! -d "$HOME/labwc-alpine/.git" ]; then
|
|
|
|
|
error "$HOME/labwc-alpine is not a git repository"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if ! command -v sudo >/dev/null 2>&1; then
|
|
|
|
|
error "sudo is required"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 1. Begin
|
|
|
|
|
|
|
|
|
|
echo "┌──────────────────────────────────────┐"
|
|
|
|
|
echo "│ zenithcode.duckdns.org │"
|
|
|
|
|
echo "│ welcome to installer labwc-alpine │"
|
|
|
|
|
echo "│ by s13bby │"
|
|
|
|
|
echo "└──────────────────────────────────────┘"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 2. Update and upgrade system
|
|
|
|
|
|
|
|
|
|
info "updating distro repositories..."
|
|
|
|
|
sudo apk update
|
|
|
|
|
|
|
|
|
|
info "upgrading system packages..."
|
|
|
|
|
sudo apk upgrade
|
|
|
|
|
|
|
|
|
|
success "distro repositories and system are up-to-date"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 3. Install needed packages
|
|
|
|
|
|
|
|
|
|
info "installing needed packages..."
|
|
|
|
|
|
|
|
|
|
sudo apk add \
|
|
|
|
|
gcc \
|
|
|
|
|
g++ \
|
|
|
|
|
git \
|
|
|
|
|
curl \
|
|
|
|
|
cmake \
|
|
|
|
|
libcurl \
|
2026-09-13 21:35:41 +06:00
|
|
|
curl-dev \
|
2026-09-09 01:50:52 +06:00
|
|
|
opencv \
|
|
|
|
|
opencv-dev \
|
|
|
|
|
waybar \
|
|
|
|
|
mako \
|
|
|
|
|
swaybg \
|
|
|
|
|
wofi \
|
|
|
|
|
font-noto \
|
|
|
|
|
font-dejavu \
|
|
|
|
|
wl-clipboard \
|
|
|
|
|
xdg-desktop-portal \
|
|
|
|
|
xdg-desktop-portal-gtk \
|
|
|
|
|
pipewire \
|
|
|
|
|
wireplumber \
|
|
|
|
|
alsa-utils \
|
|
|
|
|
networkmanager \
|
2026-09-13 21:35:41 +06:00
|
|
|
network-manager-applet \
|
|
|
|
|
pcmanfm \
|
2026-09-09 01:50:52 +06:00
|
|
|
firefox \
|
2026-09-13 21:35:41 +06:00
|
|
|
swaylock-effects \
|
2026-09-09 01:50:52 +06:00
|
|
|
playerctl \
|
2026-09-13 21:35:41 +06:00
|
|
|
font-jetbrains-mono \
|
|
|
|
|
ristretto \
|
|
|
|
|
grim \
|
|
|
|
|
bluez \
|
|
|
|
|
pavucontrol \
|
|
|
|
|
brightnessctl \
|
|
|
|
|
networkmanager-tui \
|
|
|
|
|
blueman \
|
|
|
|
|
htop
|
2026-09-09 01:50:52 +06:00
|
|
|
|
|
|
|
|
success "all packages installed"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 4. Configure NetworkManager
|
|
|
|
|
|
|
|
|
|
info "configuring NetworkManager..."
|
|
|
|
|
|
|
|
|
|
if rc-update show default 2>/dev/null | grep -q "networkmanager"; then
|
|
|
|
|
success "networkmanager already configured"
|
|
|
|
|
else
|
|
|
|
|
sudo rc-update add networkmanager default
|
|
|
|
|
success "networkmanager added to default runlevel"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if rc-service networkmanager status >/dev/null 2>&1; then
|
|
|
|
|
success "networkmanager is already running"
|
|
|
|
|
else
|
|
|
|
|
sudo rc-service networkmanager start
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
2026-09-13 21:35:41 +06:00
|
|
|
# 5. Copy configs
|
2026-09-09 01:50:52 +06:00
|
|
|
|
|
|
|
|
info "creating config directory..."
|
|
|
|
|
|
|
|
|
|
mkdir -p "$HOME/.config"
|
|
|
|
|
|
|
|
|
|
info "copying dotfiles..."
|
|
|
|
|
|
2026-09-13 21:35:41 +06:00
|
|
|
for config in alacritty swaylock labwc waybar wofi; do
|
2026-09-09 01:50:52 +06:00
|
|
|
if [ -d "$HOME/labwc-alpine/configs/$config" ]; then
|
|
|
|
|
cp -r "$HOME/labwc-alpine/configs/$config" "$HOME/.config/"
|
|
|
|
|
else
|
|
|
|
|
error "config directory not found: $config"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
done
|
|
|
|
|
success "dotfiles copied"
|
|
|
|
|
|
|
|
|
|
|
2026-09-13 21:35:41 +06:00
|
|
|
# 6. Copy backgrounds
|
2026-09-09 01:50:52 +06:00
|
|
|
|
|
|
|
|
info "creating backgrounds directory..."
|
|
|
|
|
|
|
|
|
|
mkdir -p "$HOME/backgrounds/"
|
|
|
|
|
|
|
|
|
|
if [ -d "$HOME/labwc-alpine/backgrounds" ]; then
|
|
|
|
|
cp -r "$HOME/labwc-alpine/backgrounds/"* "$HOME/backgrounds/"
|
|
|
|
|
else
|
|
|
|
|
error "backgrounds directory not found"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
success "backgrounds copied"
|
|
|
|
|
|
|
|
|
|
|
2026-09-13 21:35:41 +06:00
|
|
|
# 7. Done
|
2026-09-09 01:50:52 +06:00
|
|
|
|
|
|
|
|
echo
|
|
|
|
|
echo "┌──────────────────────────────────────┐"
|
|
|
|
|
echo "│ zenithcode.duckdns.org │"
|
|
|
|
|
echo "│ thanks for use my dotfiles │"
|
|
|
|
|
echo "│ mail: qaws3623@gmail.com by s13bby │"
|
|
|
|
|
echo "└──────────────────────────────────────┘"
|
|
|
|
|
|
|
|
|
|
printf '%b\n' "${GREEN}"
|
|
|
|
|
printf '%b\n' ">>please reboot system<<"
|
|
|
|
|
printf '%b\n' "${NC}"
|