The install script has 3 main sections
-
[i]nstall
- prepare temp list of packages
install_pkg.lst
from main package listcustom_hypr.lst
- if the user pass additional list
custom_apps.lst
, then add it to the listinstall_pkg.lst
- if nvidia card is detected in system, add
nvidia-dkms
andnvidia-utils
to the listinstall_pkg.lst
- script also works for AMD and Intel system, it will just skip the nvidia packages.
- install packages from
install_pkg.lst
- install AUR helper based on user input,
1
foryay
2
forparu
- use
pacman
to install package if its available in official arch repo - use AUR helper ( detect if its
yay
orparu
) to install packages if its available in AUR
- install AUR helper based on user input,
- prepare temp list of packages
-
[d]efault
- 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
- exactly same as install, but with
-
[r]estore
- uncompress
tar.gz
files fromSource/arcs/
to the target location specified in restore_fnt.lst - backup existing config files to
$HOME/.config/cfg_YYMMDD_HHhMMmSSs
directory. - copy dot files from
Configs
directory to corresponding target location specified in restore_cfg.lst for installed packages - fix/update all the symlinks used
- uncompress
-
[s]ervice
- enable and start system services like sddm and bluetooth
Archive (tar.gz) files are restored/extracted based on restore_fnt.lst
, a |
delimited control file structured as,
<archive_name>|<target_path>
where column,
- is a compressed tar.gz file named
<archive_name>.tar.gz
, should be located inSource/arcs/<archive_name>.tar.gz
- is the target location to extract
Config/dot files are restored based on restore_cfg.lst
, a |
delimited control file structured as,
<target_path>|<dir_or_file_name1> <dir_or_file_name2>|<package_name1> <package_name2>
where column,
- is the target location to copy
- is the file or directory list separated by space to copy from
Configs/
directory. Here all files inConfigs/
should follow the same structure as its target directory (col 1). - is the package(s) names separated by space to check dependency, so if the package(s) is not installed it will not copy its corresponding config file(s)
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