Skip to content

Installation

Tittu edited this page Feb 26, 2024 · 15 revisions




Execution

First clone the repo and change the directory to the script path

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

Then make sure the user has write and execute permission to the clone directory

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



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

  • 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

// Section 5

Service

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