From 866b7a969699d1aea575be1ad7dc468ab59518de Mon Sep 17 00:00:00 2001 From: hesam-init Date: Thu, 22 Feb 2024 01:47:13 +0330 Subject: [PATCH] feat: hyprland setup --- .gitignore | 1 + .install/setup.sh | 118 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 119 insertions(+) create mode 100644 .gitignore mode change 100644 => 100755 .install/setup.sh diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3a9b5c7 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +hyprland_setup_log diff --git a/.install/setup.sh b/.install/setup.sh old mode 100644 new mode 100755 index e69de29..5873b01 --- a/.install/setup.sh +++ b/.install/setup.sh @@ -0,0 +1,118 @@ +#!/bin/bash + +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 )"