Skip to content

Installation

Skerse edited this page Apr 22, 2024 · 15 revisions




Execution

Clone the repo and change the directory to the script path. Then make sure the user has [w]rite and e[x]ecute permission to the clone directory

pacman -Sy git
git clone --depth 1 https://github.com/prasanthrangan/hyprdots ~/HyDE
cd ~/HyDE/Scripts

Caution

Do not execute the script with sudo or as root user


Now the install script can be executed in different modes,

  • for default full hyprland installation with all configs
./install.sh
  • for full or minimal hyprland installation + your favorite packages (ex. custom_apps.lst)
./install.sh custom_apps.lst # full install custom_hypr.lst + custom_app.lst with configs
./install.sh -i custom_apps.lst # minimal install custom_hypr.lst + custom_app.lst without configs
  • each section can also be independently executed as,
./install.sh -i # minimal install hyprland without any configs
./install.sh -d # minimal install hyprland without any configs, but with (--noconfirm) install
./install.sh -r # just restores the config files
./install.sh -s # start and enable system services
./install.sh -drs # same as ./install.sh, but with (--noconfirm) install



Packages

Warning

Removing packages from this list might break some dependencies

n
v
i
d
i
a
linux-headers for main kernel (script will auto detect from /usr/lib/modules/)
linux-zen-headers for zen kernel (script will auto detect from /usr/lib/modules/)
linux-lts-headers for lts kernel (script will auto detect from /usr/lib/modules/)
nvidia-dkms nvidia drivers (script will auto detect from lspci -k | grep -A 2 -E "(VGA|3D)")
nvidia-utils nvidia utils (script will auto detect from lspci -k | grep -A 2 -E "(VGA|3D)")
s
y
s
t
e
m
pipewire audio/video server
pipewire-alsa pipewire alsa client
pipewire-audio pipewire audio client
pipewire-jack pipewire jack client
pipewire-pulse pipewire pulseaudio client
gst-plugin-pipewire pipewire gstreamer client
wireplumber pipewire session manager
pavucontrol pulseaudio volume control
pamixer pulseaudio cli mixer
networkmanager network manager
network-manager-applet network manager system tray utility
bluez bluetooth protocol stack
bluez-utils bluetooth utility cli
blueman bluetooth manager gui
brightnessctl screen brightness control
l
o
g
i
n
sddm display manager for KDE plasma
qt5-quickcontrols for sddm theme ui elements
qt5-quickcontrols2 for sddm theme ui elements
qt5-graphicaleffects for sddm theme effects
h
y
p
r
hyprland wlroots-based wayland compositor
dunst notification daemon
rofi-lbonn-wayland-git application launcher
waybar system bar
swww wallpaper
swaylock-effects-git lock screen
wlogout logout menu
grimblast-git screenshot tool
hyprpicker-git color picker
slurp region select for screenshot/screenshare
swappy screenshot editor
cliphist clipboard manager
d
e
p
e
n
d
e
n
c
y
polkit-kde-agent authentication agent
xdg-desktop-portal-hyprland xdg desktop portal for hyprland
pacman-contrib for system update check
python-pyamdgpuinfo for amd gpu info
parallel for parallel processing
jq for json processing
imagemagick for image processing
qt5-imageformats for dolphin image thumbnails
ffmpegthumbs for dolphin video thumbnails
kde-cli-tools for dolphin file type defaults
t
h
e
m
e
nwg-look gtk configuration tool
qt5ct qt5 configuration tool
qt6ct qt6 configuration tool
kvantum svg based qt theme engine
qt5-wayland wayland support in qt5
qt6-wayland wayland support in qt6
a
p
p
s
firefox browser
kitty terminal
dolphin kde file manager
ark kde file archiver
vim terminal text editor
visual-studio-code-bin IDE text editor
s
h
e
l
l
eza file lister for zsh
oh-my-zsh-git plugin manager for zsh
zsh-theme-powerlevel10k-git theme for zsh
lsd file lister for fish
starship customizable shell prompt
neofetch fetch tool
pokemon-colorscripts-git display pokemon sprites
hyde-cli cli tool to manage HyDE



Process

The install script has sections :  12345

// Section 1

Pre-Install

./install.sh -ir # this section only runs when [i]nstall and [r]estore options are passed
  • detect grub

    • backup existing config file /etc/default/grub and /boot/grub/grub.cfg
    • add nvidia_drm.modeset=1 to boot option, only for nvidia system
    • install grub theme based on user input,
      • 1 for retroboot
      • 2 for pochita
      • * press any other key to skip grub theme
  • detect systemd-boot

    • backup existing config files /boot/loader/entries/*.conf
    • add nvidia_drm.modeset=1 to boot option, only for nvidia system
  • configure pacman

    • backup existing config file /etc/pacman.conf
    • enable candy and parallel downloads
    • add xero_hypr repo (yet to be implemented)

// Section 2

Install

./install.sh -i
  • prepare a temp list of packages from main package list custom_hypr.lst

  • here custom_hypr.lst is a | delimited control file where column,

    • 1 is the package name
    • 2 is space separated package list to check cyclic dependency
  • if the user pass additional list (for ex. custom_apps.lst), then add it to the temp list

  • install shell based on user input,

    • 1 for zsh
    • 2 for fish
  • if nvidia card is detected, add corresponding nvidia-dkms and nvidia-utils to the temp list based on lookup

  • install AUR helper based on user input,

    • 1 for yay
    • 2 for paru
  • install packages from the generated temp list

    • use pacman to install package if its available in official arch repo
    • use AUR helper ( detect if its yay or paru ) to install packages if its available in AUR

Default

./install.sh -d
  • exactly same as install, but with --noconfirm option
  • will skip user input and use default option(s) to install, but prompts sudo password when required

// Section 3

Restore

./install.sh -r
  • restore gtk themes, icons, cursors and fonts

    • uncompress *.tar.gz files from Source/arcs/ to the target location based on this restore_fnt control file
    • here restore_fnt.lst is a | delimited control file where column,
      • 1 is compressed source *.tar.gz file located in Source/arcs/
      • 2 is the target location to extract
  • restore config files

    • restore the dot files based on this restore_cfg control file
    • here restore_cfg.lst is a | delimited control file where column,
      • 1 is overwrite flag [Y/N], to overwrite the target from source if it already exist
      • 2 is backup flag [Y/N], to copy the target file to backup directory
      • 3 is the target directory path
      • 4 is the source file/directory name(s), space separated list
      • 5 is the space separated package dependency list, to skip configs for packages that are not installed
  • generate wallpaper cache

  • fix/update all the symlinks used


// Section 4

Post-Install

./install.sh -ir # this section only runs when [i]nstall and [r]estore options are passed
  • patch/skip additional themes from themepatcher list, based on user input

  • configure sddm

    • install sddm theme based on user input,
      • 1 for candy
      • 2 for corners
  • set dolphin as default file manager

  • configure shell

    • detect shell installed, zsh or fish
    • for zsh, install plugins based on restore_zsh list
  • enable flatpak and install apps from custom_flat list


// Section 5

Service

./install.sh -s
  • enable and start system services based on system_ctl list