mirror of
https://github.imc.re/void-land/hyprland-void-dots
synced 2025-06-04 02:03:43 +02:00
feat: pkgs installer script
This commit is contained in:
parent
6f2f21d092
commit
a6159796e9
3 changed files with 135 additions and 121 deletions
|
@ -1,121 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# local package install : xbps-install -S --repository <pkg_path> <pkg_fullname>
|
|
||||||
# exmaple : sudo xbps-install -S --repository hostdir/binpkgs hyprland-0.35.0_1
|
|
||||||
|
|
||||||
update_pkgs=false
|
|
||||||
|
|
||||||
exec 1> >(tee "../hyprland_setup_log")
|
|
||||||
|
|
||||||
log() {
|
|
||||||
echo "*********** $1 ***********"
|
|
||||||
now=$(date +"%T")
|
|
||||||
echo "$now $1" >>../hyprland_setup_log
|
|
||||||
}
|
|
||||||
|
|
||||||
check() {
|
|
||||||
if [ "$1" != 0 ]; then
|
|
||||||
echo "$2 error : $1" | tee -a ../hyprland_setup_log
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# update package manager and system packages :
|
|
||||||
log "Update xbps/system"
|
|
||||||
sudo xbps-install -u xbps
|
|
||||||
if [ $update_pkgs = true ]; then
|
|
||||||
sudo xbps-install -Syu
|
|
||||||
fi
|
|
||||||
check "$?" "Update xbps/system"
|
|
||||||
log "xbps/system updated"
|
|
||||||
|
|
||||||
# clear cache and older kernels :
|
|
||||||
sudo xbps-remove -yO
|
|
||||||
sudo xbps-remove -yo
|
|
||||||
sudo vkpurge rm all
|
|
||||||
|
|
||||||
# install required packages for system :
|
|
||||||
log "Install base system packages"
|
|
||||||
sudo xbps-install -Sy \
|
|
||||||
git \
|
|
||||||
stow \
|
|
||||||
dbus \
|
|
||||||
seatd \
|
|
||||||
elogind \
|
|
||||||
polkit \
|
|
||||||
NetworkManager \
|
|
||||||
gnome-keyring \
|
|
||||||
polkit-gnome \
|
|
||||||
mesa-dri \
|
|
||||||
pipewire \
|
|
||||||
wireplumber \
|
|
||||||
inotify-tools
|
|
||||||
check "$?" "Install base system packages"
|
|
||||||
log "Base packges installed"
|
|
||||||
|
|
||||||
log "Install nonfree repo"
|
|
||||||
sudo xbps-install -Sy \
|
|
||||||
void-repo-nonfree
|
|
||||||
|
|
||||||
# install hyprland packages :
|
|
||||||
log "Install Hyprland packages"
|
|
||||||
sudo xbps-install -Sy \
|
|
||||||
xdg-desktop-portal \
|
|
||||||
xdg-desktop-portal-wlr \
|
|
||||||
swayidle \
|
|
||||||
swaylock \
|
|
||||||
dunst \
|
|
||||||
libnotify \
|
|
||||||
Waybar \
|
|
||||||
rofi \
|
|
||||||
playerctl \
|
|
||||||
grim \
|
|
||||||
slurp \
|
|
||||||
jq \
|
|
||||||
cliphist \
|
|
||||||
wl-clipboard \
|
|
||||||
font-awesome6 \
|
|
||||||
blueman \
|
|
||||||
bluez \
|
|
||||||
brightnessctl \
|
|
||||||
libspa-bluetooth \
|
|
||||||
mesa-dri \
|
|
||||||
nautilus \
|
|
||||||
pamixer \
|
|
||||||
pavucontrol \
|
|
||||||
pulsemixer \
|
|
||||||
pipewire \
|
|
||||||
terminus-font
|
|
||||||
check "$?" "Install Hyprland environment"
|
|
||||||
log "Hyprland environment installed"
|
|
||||||
|
|
||||||
log "Symlinking configs"
|
|
||||||
stow hyprland
|
|
||||||
check "$?" "Copy settings to home folder"
|
|
||||||
log "Settings copied"
|
|
||||||
|
|
||||||
log "Add user to needed groups"
|
|
||||||
sudo usermod -a $USER -G _seatd
|
|
||||||
sudo usermod -a $USER -G bluetooth
|
|
||||||
check "$?" "Add user to needed groups"
|
|
||||||
log "User added to needed groups"
|
|
||||||
|
|
||||||
log "Disable grub menu"
|
|
||||||
echo 'GRUB_TIMEOUT=0' | sudo tee -a /etc/default/grub
|
|
||||||
echo 'GRUB_TIMEOUT_STYLE=hidden' | sudo tee -a /etc/default/grub
|
|
||||||
echo 'GRUB_CMDLINE_LINUX_DEFAULT="loglevel=1 quiet splash"' | sudo tee -a /etc/default/grub
|
|
||||||
sudo update-grub
|
|
||||||
check "$?" "Disable grub menu"
|
|
||||||
log "Grub menu disabled"
|
|
||||||
|
|
||||||
log "Enable services"
|
|
||||||
sudo ln -s /etc/sv/dbus /var/service
|
|
||||||
sudo ln -s /etc/sv/seatd /var/service
|
|
||||||
sudo ln -s /etc/sv/elogind /var/service
|
|
||||||
sudo ln -s /etc/sv/NetworkManager /var/service
|
|
||||||
sudo ln -s /etc/sv/polkitd /var/service
|
|
||||||
sudo ln -s /etc/sv/bluetoothd /var/service
|
|
||||||
check "$?" "Enable services"
|
|
||||||
log "Services enabled"
|
|
||||||
|
|
||||||
log "Setup is done, please log out and log in back again ( type exit )"
|
|
|
@ -6,4 +6,5 @@ install_ttf_font() {
|
||||||
}
|
}
|
||||||
|
|
||||||
cd ../host/ui/fonts
|
cd ../host/ui/fonts
|
||||||
|
|
||||||
install_ttf_font
|
install_ttf_font
|
134
scripts/pkgs-installer.sh
Executable file
134
scripts/pkgs-installer.sh
Executable file
|
@ -0,0 +1,134 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
UPDATE_PKGS=false
|
||||||
|
CLEAR_CACHE=false
|
||||||
|
DISABLE_GRUB_MENU=false
|
||||||
|
|
||||||
|
declare -A PACKAGES=(
|
||||||
|
["BASE_PACKAGES"]="git stow dbus seatd elogind polkit NetworkManager gnome-keyring polkit-gnome mesa-dri pipewire wireplumber inotify-tools void-repo-multilib void-repo-nonfree wpa_supplicant wifish wpa-cute wpa_gui xorg gnome-keyring polkit-gnome mtpfs inotify-tools ffmpeg libnotify git base-devel"
|
||||||
|
["HYPRLAND_PACKAGES"]="Waybar rofi avizo dunst swaybg mpvpaper grim jq slurp cliphist wl-clipboard swayidle"
|
||||||
|
["AMD_DRIVERS"]="Vulkan-Headers Vulkan-Tools Vulkan-ValidationLayers-32bit mesa-vulkan-radeon mesa-vulkan-radeon-32bit vulkan-loader vulkan-loader-32bit libspa-vulkan libspa-vulkan-32bit amdvlk mesa-dri"
|
||||||
|
)
|
||||||
|
|
||||||
|
exec 1> >(tee "../hyprland_setup_log")
|
||||||
|
|
||||||
|
check_sudo() {
|
||||||
|
if [ "$(id -u)" != 0 ]; then
|
||||||
|
echo "Please run the script with sudo."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
log() {
|
||||||
|
local message="*********** $1 ***********"
|
||||||
|
local timestamp=$(date +"%T")
|
||||||
|
|
||||||
|
echo -e "\n$message"
|
||||||
|
echo "$timestamp $1" >>../hyprland_setup_log
|
||||||
|
}
|
||||||
|
|
||||||
|
check() {
|
||||||
|
if [ "$1" != 0 ]; then
|
||||||
|
echo "$2 error : $1" | tee -a ../hyprland_setup_log
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
update_system() {
|
||||||
|
log "Update xbps package manager"
|
||||||
|
sudo xbps-install -u xbps
|
||||||
|
|
||||||
|
if [ $UPDATE_PKGS = true ]; then
|
||||||
|
sudo xbps-install -Syu
|
||||||
|
check "$?" "Update xbps/system"
|
||||||
|
log "xbps/system updated"
|
||||||
|
else
|
||||||
|
log "Skipping full system update"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
clear_pkgs_cache() {
|
||||||
|
if [ $CLEAR_CACHE = true ]; then
|
||||||
|
log "Clear package manager cache"
|
||||||
|
sudo xbps-remove -yO
|
||||||
|
sudo xbps-remove -yo
|
||||||
|
sudo vkpurge rm all
|
||||||
|
log "Package manager cache cleared"
|
||||||
|
else
|
||||||
|
log "Skipping package manager cache clearance"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
pkgs_installer() {
|
||||||
|
local log_message=$1
|
||||||
|
shift
|
||||||
|
local -a package_list=("$@")
|
||||||
|
|
||||||
|
log "$log_message"
|
||||||
|
sudo xbps-install -Sy "${package_list[@]}"
|
||||||
|
check "$?" "$log_message"
|
||||||
|
}
|
||||||
|
|
||||||
|
install_pkgs() {
|
||||||
|
for package_set in $(echo "${!PACKAGES[@]}" | tr ' ' '\n' | sort); do
|
||||||
|
pkgs_installer "Install $package_set" ${PACKAGES["$package_set"]}
|
||||||
|
log "$package_set installed"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
add_user_to_groups() {
|
||||||
|
log "Add user to needed groups"
|
||||||
|
sudo usermod -a $USER -G _seatd
|
||||||
|
sudo usermod -a $USER -G bluetooth
|
||||||
|
check "$?" "Add user to needed groups"
|
||||||
|
log "User added to needed groups"
|
||||||
|
}
|
||||||
|
|
||||||
|
enable_services() {
|
||||||
|
log "Enable services"
|
||||||
|
|
||||||
|
local services=(
|
||||||
|
"/etc/sv/dbus"
|
||||||
|
"/etc/sv/seatd"
|
||||||
|
"/etc/sv/elogind"
|
||||||
|
"/etc/sv/NetworkManager"
|
||||||
|
"/etc/sv/polkitd"
|
||||||
|
"/etc/sv/bluetoothd"
|
||||||
|
)
|
||||||
|
|
||||||
|
for service in "${services[@]}"; do
|
||||||
|
if [ -d "$service" ]; then
|
||||||
|
echo "Service $service already exists, skipping"
|
||||||
|
else
|
||||||
|
sudo ln -s "$service" /var/service
|
||||||
|
check "$?" "Enable service: $service"
|
||||||
|
echo "Service $service enabled"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
log "Services enabled"
|
||||||
|
}
|
||||||
|
|
||||||
|
disable_grub_menu() {
|
||||||
|
if [ $DISABLE_GRUB_MENU = true ]; then
|
||||||
|
log "Disable grub menu"
|
||||||
|
echo 'GRUB_TIMEOUT=0' | sudo tee -a /etc/default/grub
|
||||||
|
echo 'GRUB_TIMEOUT_STYLE=hidden' | sudo tee -a /etc/default/grub
|
||||||
|
echo 'GRUB_CMDLINE_LINUX_DEFAULT="loglevel=1 quiet splash"' | sudo tee -a /etc/default/grub
|
||||||
|
sudo update-grub
|
||||||
|
check "$?" "Disable grub menu"
|
||||||
|
log "Grub menu disabled"
|
||||||
|
else
|
||||||
|
log "Skipping grub menu disable"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
check_sudo
|
||||||
|
update_system
|
||||||
|
clear_pkgs_cache
|
||||||
|
install_pkgs
|
||||||
|
add_user_to_groups
|
||||||
|
enable_services
|
||||||
|
disable_grub_menu
|
||||||
|
|
||||||
|
log "Setup is done, please log out and log in"
|
Loading…
Add table
Reference in a new issue