Compare commits

..

12 Commits

Author SHA1 Message Date
Donald Williams
7613ab90e7
Merge pull request #229 from JaKooLit/development
Development to main,  Updated HL to 0.52.2
2025-12-11 12:15:51 -05:00
Donald Williams
5a51d35ec0
Merge branch 'main' into development 2025-12-11 12:15:18 -05:00
Don Williams
cb1250ce8d Fixed package name for libdisplay-info2 failed to install
On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   CHANGELOGS.md
	modified:   install-scripts/00-dependencies.sh
2025-12-10 16:55:30 -05:00
Don Williams
9281ac4295 Updated CHANGELOG 2025-12-10 13:19:58 -05:00
Don Williams
24fb2b0dc5 Fixed pkg name qt-style-kavantum-themes not qt5
On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   install-scripts/01-hypr-pkgs.sh
2025-12-10 13:17:36 -05:00
Don Williams
b98e468d56 Updated version is the individual files
On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   install-scripts/aquamarine.sh
	modified:   install-scripts/hyprgraphics.sh
	modified:   install-scripts/hyprland-protocols.sh
	modified:   install-scripts/hyprland.sh
	modified:   install-scripts/hyprlang.sh
	modified:   install-scripts/hyprutils.sh
2025-12-10 13:08:48 -05:00
Don Williams
cb46365d8c Updated dev to match sdeglers changes
On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   hypr-tags.env
	modified:   install-scripts/00-dependencies.sh
	modified:   install-scripts/aquamarine.sh
	renamed:    install-scripts/hyprland-qtutils.sh -> install-scripts/hyprland-guiutils.sh
	new file:   install-scripts/hyprtoolkit.sh
	modified:   install.sh
	modified:   update-hyprland.sh
2025-12-10 12:47:00 -05:00
Don Williams
42cbae3c1c Pushing sdegler's changes to dev
On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   install-scripts/aquamarine.sh
	new file:   install-scripts/xkbcommon.sh
2025-12-10 12:35:43 -05:00
Don Williams
0ec2169efd Updated CHANGELOG 2025-12-10 12:24:49 -05:00
Don Williams
7707ec2c4e Updated CHANGELOG 2025-12-10 12:22:41 -05:00
Donald Williams
525ec5eb5a
Merge pull request #223 from JaKooLit/debian-ags-fix
Ported AGS fix from ubuntu to debian
2025-11-04 15:50:03 -05:00
Don Williams
df9f093dbb Ported AGS fix from ubuntu to debian
On branch debian-ags-fix
 Changes to be committed:
	modified:   install-scripts/ags.sh
2025-11-04 15:40:51 -05:00
16 changed files with 594 additions and 263 deletions

View File

@ -1,13 +1,25 @@
## CHANGELOGS ## CHANGELOGS
## 10 December 2025
- Updated:
- Hyprland Build to v0.52.2
- Thanks entirely to @sdegler
- Fixed:
- `qt5-style-kvantum-themes` failed to install
- Wrong package name it's `qt-style-kvantume-themes`
- `libdisplay-info2` failed to install
- New package name: `libdisplay-info3`
## 10 October 2025 ## 10 October 2025
### Hyprland 0.51.x install support ### Hyprland 0.51.x install support
- Hyprland builds 0.51.x from source - Hyprland builds 0.51.x from source
- Added documentation for upgrading from 0.49/0.50.x to 0.51.1. - Added documentation for upgrading from 0.49/0.50.x to 0.51.1.
### New scripts and modules ### New scripts and modules
- update-hyprland.sh: Manage the Hyprland stack with: - update-hyprland.sh: Manage the Hyprland stack with:
- --install / --dry-run build modes - --install / --dry-run build modes
- --only and --skip for selective components - --only and --skip for selective components
@ -19,7 +31,8 @@
- install-scripts/wayland-protocols-src.sh: Build wayland-protocols from - install-scripts/wayland-protocols-src.sh: Build wayland-protocols from
source (>= 1.45) to satisfy Hyprland 0.51.x requirements source (>= 1.45) to satisfy Hyprland 0.51.x requirements
### Core features ### Core features
- Centralized tag management via hypr-tags.env; tags exported to all - Centralized tag management via hypr-tags.env; tags exported to all
modules. Environment overrides remain first priority. modules. Environment overrides remain first priority.
- Automatic dependency ordering for Hyprland 0.51.x: - Automatic dependency ordering for Hyprland 0.51.x:
@ -30,12 +43,14 @@
- Selective updates for targeted components and skip lists - Selective updates for targeted components and skip lists
- Dry-run mode to validate builds without installing - Dry-run mode to validate builds without installing
### Installer integration ### Installer integration
- install.sh reads hypr-tags.env and optionally refreshes tags. - install.sh reads hypr-tags.env and optionally refreshes tags.
- Ensures wayland-protocols-src is built before Hyprland. - Ensures wayland-protocols-src is built before Hyprland.
- Maintains proper sequencing for the Hyprland dependencies. - Maintains proper sequencing for the Hyprland dependencies.
### Docs ### Docs
- Debian-Hyprland-Install-Upgrade.md and .es.md: - Debian-Hyprland-Install-Upgrade.md and .es.md:
- Add explicit section: Upgrade 0.49/0.50.x → 0.51.1 - Add explicit section: Upgrade 0.49/0.50.x → 0.51.1
- Recommend: `./update-hyprland.sh --install --only hyprland` - Recommend: `./update-hyprland.sh --install --only hyprland`
@ -43,7 +58,8 @@
- Full install via install.sh is not required for this - Full install via install.sh is not required for this
upgrade unless optional modules need refresh upgrade unless optional modules need refresh
### Usage highlights ### Usage highlights
- Pin and upgrade to 0.51.1: - Pin and upgrade to 0.51.1:
./update-hyprland.sh --set HYPRLAND=v0.51.1 ./update-hyprland.sh --set HYPRLAND=v0.51.1
./update-hyprland.sh --install --only hyprland ./update-hyprland.sh --install --only hyprland
@ -51,221 +67,282 @@
./update-hyprland.sh --with-deps --install --only hyprland ./update-hyprland.sh --with-deps --install --only hyprland
./update-hyprland.sh --dry-run --only hyprland ./update-hyprland.sh --dry-run --only hyprland
### Notes ### Notes
- Target OS remains Debian Trixie/Testing/SID - Target OS remains Debian Trixie/Testing/SID
- Run as sudo-capable user (not root) - Run as sudo-capable user (not root)
- Ensure deb-src entries are enabled. - Ensure deb-src entries are enabled.
## 22 July 2025 ## 22 July 2025
- Updated sddm theme and script to work with the updated simple_sddm_2 theme - Updated sddm theme and script to work with the updated simple_sddm_2 theme
- Manual building process - Manual building process
## 21 June 2025 ## 21 June 2025
- Added a warning message that support is now very limited - Added a warning message that support is now very limited
## 08 June 2025 ## 08 June 2025
- updated SDDM theme. - updated SDDM theme.
## 20 March 2025 ## 20 March 2025
- added findutils as dependencies - added findutils as dependencies
## 11 March 2025 ## 11 March 2025
- Added uninstall script - Added uninstall script
- forked AGS v1 into JakooLit repo. This is just incase Aylur decide to take down v1 - forked AGS v1 into JakooLit repo. This is just incase Aylur decide to take down v1
## 10 March 2025 ## 10 March 2025
- Dropped pyprland in favor of hyprland built in tool for a drop down like terminal and Desktop magnifier - Dropped pyprland in favor of hyprland built in tool for a drop down like terminal and Desktop magnifier
## 06 March 2025 ## 06 March 2025
- Switched to whiptail version for Y & N questions - Switched to whiptail version for Y & N questions
- switched eza to lsd - switched eza to lsd
## 23 Feb 2025 ## 23 Feb 2025
- added Victor Mono Font for proper hyprlock font rendering for Dots v2.3.12 - added Victor Mono Font for proper hyprlock font rendering for Dots v2.3.12
- added Fantasque Sans Mono Nerd for Kitty - added Fantasque Sans Mono Nerd for Kitty
## 22 Feb 2025 ## 22 Feb 2025
- replaced eog with loupe - replaced eog with loupe
- changed url for installing oh-my-zsh to get wider coverage. Some countries are blocking github raw url's - changed url for installing oh-my-zsh to get wider coverage. Some countries are blocking github raw url's
## 18 Feb 2025 ## 18 Feb 2025
- Change default zsh theme to adnosterzak - Change default zsh theme to adnosterzak
- pokemon coloscript integrated with fastfetch when opted with pokemon to add some bling - pokemon coloscript integrated with fastfetch when opted with pokemon to add some bling
- additional external oh-my-zsh theme - additional external oh-my-zsh theme
## 06 Feb 2025 ## 06 Feb 2025
- added semi-unattended function. - added semi-unattended function.
- move all the initial questions at the beginning - move all the initial questions at the beginning
## 04 Feb 2025 ## 04 Feb 2025
- Re-coded for better visibility - Re-coded for better visibility
- Offered a new SDDM theme. - Offered a new SDDM theme.
- script will automatically detect if you have nvidia but script still offer if you want to set up for user - script will automatically detect if you have nvidia but script still offer if you want to set up for user
## 30 Jan 2025 ## 30 Jan 2025
- AGS (aylur's GTK shell) v1 for desktop overview is now optional - AGS (aylur's GTK shell) v1 for desktop overview is now optional
## 12 Jan 2025 ## 12 Jan 2025
- switch to final version of aylurs-gtk-shell-v1 - switch to final version of aylurs-gtk-shell-v1
## 01 Jan 2025 ## 01 Jan 2025
- Switched to download dots from KooL's Hyprland dots specific branch - Switched to download dots from KooL's Hyprland dots specific branch
## 26 Dec 2024 ## 26 Dec 2024
- Removal of Bibata Ice cursor on assets since its integrated in the GTK Themes and Icons extract from a separate repo - Removal of Bibata Ice cursor on assets since its integrated in the GTK Themes and Icons extract from a separate repo
## 10 Dec 2024 ## 10 Dec 2024
- updated swww.sh to download from version v0.9.5 - updated swww.sh to download from version v0.9.5
## 24 Nov 2024 ## 24 Nov 2024
- switched to download rofi-wayland from releases instead from upstream - switched to download rofi-wayland from releases instead from upstream
## 20 Sep 2024 ## 20 Sep 2024
- User will be ask if they want to set Thunar as default file manager if they decided to install it - User will be ask if they want to set Thunar as default file manager if they decided to install it
## 19 Sep 2024 ## 19 Sep 2024
- updated xdph installation since it is now in Debian Repo - updated xdph installation since it is now in Debian Repo
- Added fastfetch on tty. However, will be disabled if user decided to install pokemon colorscripts - Added fastfetch on tty. However, will be disabled if user decided to install pokemon colorscripts
## 14 Sep 2024 ## 14 Sep 2024
- Added Essential Packages final check in lieu of errors from Install log files in Install-Logs directory - Added Essential Packages final check in lieu of errors from Install log files in Install-Logs directory
- nwg-look is now in Debian Repo - nwg-look is now in Debian Repo
## 10 Sep 2024 ## 10 Sep 2024
- added background check of known login managers if they are active if user chose to install sddm - added background check of known login managers if they are active if user chose to install sddm
## 08 Sep 2024 ## 08 Sep 2024
- Added final error checks on install-logs - Added final error checks on install-logs
## 07 Sep 2024 ## 07 Sep 2024
- Fix installation issue on hyprlock and xdph - Fix installation issue on hyprlock and xdph
- disabled imagemagick compilation from source - disabled imagemagick compilation from source
- dotfiles adjusted so it will be compatible for imagemagick v6 - dotfiles adjusted so it will be compatible for imagemagick v6
## 04 Sep 2024 ## 04 Sep 2024
- added a function to check if it is Ubuntu or Based on Ubuntu and script will exit - added a function to check if it is Ubuntu or Based on Ubuntu and script will exit
## 28 Aug 2024 ## 28 Aug 2024
- Added final check if hyprland is installed and will give an error to user - Added final check if hyprland is installed and will give an error to user
## 24 Aug 2024 ## 24 Aug 2024
- Created a newer and compatible Hyprland-Dots repo - Created a newer and compatible Hyprland-Dots repo
- -
## 23 Aug 2024 ## 23 Aug 2024
- Moved Ubuntu-Hyprland on a separate Github Repo - Moved Ubuntu-Hyprland on a separate Github Repo
## 22 Aug 2024 ## 22 Aug 2024
- refactor Debian-Hyprland script. As Hyprland is now in official repo - refactor Debian-Hyprland script. As Hyprland is now in official repo
## 07 Jul 2024 ## 07 Jul 2024
- added eza (ls replacement for tty). Note only on .zshrc - added eza (ls replacement for tty). Note only on .zshrc
## 06 July 2024 ## 06 July 2024
- Version bumps for Debian (Hyprland v0.41.2) - Version bumps for Debian (Hyprland v0.41.2)
## 11 June 2024 ## 11 June 2024
- adjusted script to install only Hyprland-Dots v2.2.14 - adjusted script to install only Hyprland-Dots v2.2.14
## 10 June 2024 ## 10 June 2024
- changed behaviour of rofi-wayland.sh. To redownload a new rofi-wayland from repo instead of pulling changes. (It proves giving issue) - changed behaviour of rofi-wayland.sh. To redownload a new rofi-wayland from repo instead of pulling changes. (It proves giving issue)
## 04 June 2024 ## 04 June 2024
- switched over to source install for imagemagick - switched over to source install for imagemagick
- removal of fzf for Debian and Ubuntu (headache) - removal of fzf for Debian and Ubuntu (headache)
## 26 May 2024 ## 26 May 2024
- Added fzf for zsh (CTRL R to invoke FZF history) - Added fzf for zsh (CTRL R to invoke FZF history)
## 23 May 2024 ## 23 May 2024
- added qalculate-gtk to work with rofi-calc. Default keybinds (SUPER ALT C) - added qalculate-gtk to work with rofi-calc. Default keybinds (SUPER ALT C)
- added power-profiles-daemon for ROG laptops. Note, I cant add to all since it conflicts with TLP, CPU-Auto-frequency etc. - added power-profiles-daemon for ROG laptops. Note, I cant add to all since it conflicts with TLP, CPU-Auto-frequency etc.
- Note: Fastfetch configs will be added from Hyprland-Dots v2.2.12. However, you need to install from Fastfetch github page - Note: Fastfetch configs will be added from Hyprland-Dots v2.2.12. However, you need to install from Fastfetch github page
## 19 May 2024 ## 19 May 2024
- Disabled the auto-login in .zprofile as it causes auto-login to Hyprland if any wayland was chosen. Can enabled if only using hyprland - Disabled the auto-login in .zprofile as it causes auto-login to Hyprland if any wayland was chosen. Can enabled if only using hyprland
## 15 May 2025 ## 15 May 2025
- Backed down hyprland version to install as v0.40.0 is failing to install - Backed down hyprland version to install as v0.40.0 is failing to install
- removed from waybar-git to install. Instead to install from official repo - removed from waybar-git to install. Instead to install from official repo
- cliphist install script is removed as it is now on Debian repo - cliphist install script is removed as it is now on Debian repo
- dependencies cleaned up and added - dependencies cleaned up and added
## 10 May 2024 ## 10 May 2024
- added wallust-git and remove python-pywal for migration to wallust on Hyprland-Dots v2.2.11 - added wallust-git and remove python-pywal for migration to wallust on Hyprland-Dots v2.2.11
## 07 May 2024 ## 07 May 2024
- added ags.sh for upcoming ags overview for next Hyprland-Dots release. Will be installed form source - added ags.sh for upcoming ags overview for next Hyprland-Dots release. Will be installed form source
- added manual installation of waybar since Debian is very slow in updating their packages - added manual installation of waybar since Debian is very slow in updating their packages
## 03 May 2024 ## 03 May 2024
- Bump swww to v0.9.5 - Bump swww to v0.9.5
- added python3-pyquery for new weather-waybar python based on Hyprland-Dots - added python3-pyquery for new weather-waybar python based on Hyprland-Dots
## 02 May 2024 ## 02 May 2024
- Added pyprland (hyprland plugin) - warning, I cant make it to properly run. Drop Down terminal not working, zoom is hit and miss - Added pyprland (hyprland plugin) - warning, I cant make it to properly run. Drop Down terminal not working, zoom is hit and miss
## 30 Apr 2024 ## 30 Apr 2024
- Updated hyprland.sh to install v0.39.1 Hyprland - Updated hyprland.sh to install v0.39.1 Hyprland
- adding hypridle and hyprlock - adding hypridle and hyprlock
- dropping swaylock-effects and swayidle - dropping swaylock-effects and swayidle
- adjusted to work with current Hyprland-Dots - adjusted to work with current Hyprland-Dots
## 22 Apr 2024 ## 22 Apr 2024
- Change dotfiles to specific version only as Debian and Ubuntu cant keep up with Hyprland development - Change dotfiles to specific version only as Debian and Ubuntu cant keep up with Hyprland development
## 20 Apr 2024 ## 20 Apr 2024
- Change default Oh-my-zsh theme to xiong-chiamiov-plus - Change default Oh-my-zsh theme to xiong-chiamiov-plus
## 11 Jan 2024 ## 11 Jan 2024
- dropped wlsunset - dropped wlsunset
- added hyprlang build and install - added hyprlang build and install
## 02 Jan 2024 ## 02 Jan 2024
- Readme updated for cliphist instruction for ubuntu 23.10 users - Readme updated for cliphist instruction for ubuntu 23.10 users
- Created cliphist.sh for ubuntu 23.10 users (disabled by default and needs to be enabled on install.sh if desired) - Created cliphist.sh for ubuntu 23.10 users (disabled by default and needs to be enabled on install.sh if desired)
## 30 December 2023 ## 30 December 2023
- Code Cleaned up. - Code Cleaned up.
- Pokemon Color Scripts now offered as optional - Pokemon Color Scripts now offered as optional
## 29 December 2023 ## 29 December 2023
- Remove dunst in favor of swaync. NOTE: Part of the script is to also uninstall mako and dunst (if installed) as on my experience, dunst is sometimes taking over the notification even if it is not set to start - Remove dunst in favor of swaync. NOTE: Part of the script is to also uninstall mako and dunst (if installed) as on my experience, dunst is sometimes taking over the notification even if it is not set to start
## 16 Dec 2023 ## 16 Dec 2023
- zsh theme switched to `agnoster` theme by default - zsh theme switched to `agnoster` theme by default
- pywal tty color change disabled by default - pywal tty color change disabled by default
## 13 Dec 2023 ## 13 Dec 2023
- Added a script / function to force install packages. Some users reported that it is not installed. - Added a script / function to force install packages. Some users reported that it is not installed.
## 11 Dec 2023 ## 11 Dec 2023
- Changing over to zsh automatically if user opted - Changing over to zsh automatically if user opted
- If chose to install zsh and have no login manager, zsh auto login will auto start Hyprland - If chose to install zsh and have no login manager, zsh auto login will auto start Hyprland
- added as optional, with zsh, pokemon colorscripts - added as optional, with zsh, pokemon colorscripts
- improved zsh install scripts, so even the existing zsh users of can still opt for zsh and oh-my-zsh installation :) - improved zsh install scripts, so even the existing zsh users of can still opt for zsh and oh-my-zsh installation :)
## 03 Dec 2023 ## 03 Dec 2023
- Added kvantum for qt apps theming - Added kvantum for qt apps theming
- return of wlogout due to theming issues of rofi-power - return of wlogout due to theming issues of rofi-power
## 1 Dec 2023 ## 1 Dec 2023
- replace the Hyprland to specific branch/version as newest needed some new libraries and debian dont have those yet - replace the Hyprland to specific branch/version as newest needed some new libraries and debian dont have those yet
## 26 Nov 2023 ## 26 Nov 2023
- nvidia - Move to normal hyprland package as nvidia patches are doing nothing see [`commit`](https://github.com/hyprwm/Hyprland/commit/cd96ceecc551c25631783499bd92c6662c5d3616) - nvidia - Move to normal hyprland package as nvidia patches are doing nothing see [`commit`](https://github.com/hyprwm/Hyprland/commit/cd96ceecc551c25631783499bd92c6662c5d3616)
## 25 Nov 2023 ## 25 Nov 2023
- drop wlogout since Hyprland-Dots v2.1.9 uses rofi-power - drop wlogout since Hyprland-Dots v2.1.9 uses rofi-power
## 23-Nov-2023 ## 23-Nov-2023
- Added Bibata cursor to install if opted for GTK Themes. However, it is not pre-applied. Use nwg-look utility to apply - Added Bibata cursor to install if opted for GTK Themes. However, it is not pre-applied. Use nwg-look utility to apply
## 19-Nov-2023 ## 19-Nov-2023
- Adjust dotfiles script to download from releases instead of from upstream - Adjust dotfiles script to download from releases instead of from upstream
## 14-Oct-2023 ## 14-Oct-2023
- initial release. Added swappy for screenshots - initial release. Added swappy for screenshots
## 12-Oct-2023 ## 12-Oct-2023
- BETA release - BETA release

View File

@ -2,13 +2,14 @@
# You can edit these values or let update-hyprland.sh manage them. # You can edit these values or let update-hyprland.sh manage them.
# Each module script reads its TAG from these environment variables if set. # Each module script reads its TAG from these environment variables if set.
HYPRLAND_TAG=v0.51.1 HYPRLAND_TAG=v0.52.2
AQUAMARINE_TAG=v0.9.3 AQUAMARINE_TAG=v0.10.0
HYPRUTILS_TAG=v0.8.3 HYPRUTILS_TAG=v0.10.4
HYPRLANG_TAG=v0.6.4 HYPRLANG_TAG=v0.6.7
HYPRGRAPHICS_TAG=v0.1.5 HYPRGRAPHICS_TAG=v0.4.0
HYPRTOOLKIT_TAG=v0.4.1
HYPRWAYLAND_SCANNER_TAG=v0.4.5 HYPRWAYLAND_SCANNER_TAG=v0.4.5
HYPRLAND_PROTOCOLS_TAG=v0.6.4 HYPRLAND_PROTOCOLS_TAG=v0.7.0
HYPRLAND_QT_SUPPORT_TAG=v0.1.0 HYPRLAND_QT_SUPPORT_TAG=v0.1.0
HYPRLAND_QTUTILS_TAG=v0.1.4 HYPRLAND_GUIUTILS_TAG=v0.2.0
WAYLAND_PROTOCOLS_TAG=1.45 WAYLAND_PROTOCOLS_TAG=1.46

View File

@ -5,146 +5,150 @@
# packages neeeded # packages neeeded
dependencies=( dependencies=(
build-essential build-essential
cmake cmake
cmake-extras cmake-extras
curl curl
findutils findutils
gawk gawk
gettext gettext
gir1.2-graphene-1.0 gir1.2-graphene-1.0
git git
glslang-tools glslang-tools
gobject-introspection gobject-introspection
golang golang
hwdata hwdata
jq jq
libavcodec-dev libavcodec-dev
libavformat-dev libavformat-dev
libavutil-dev libavutil-dev
libcairo2-dev libcairo2-dev
libdeflate-dev libdeflate-dev
libdisplay-info-dev libdisplay-info-dev
libdrm-dev libdrm-dev
libegl-dev libegl-dev
libegl1-mesa-dev libegl1-mesa-dev
libgbm-dev libgbm-dev
libgdk-pixbuf-2.0-dev libgdk-pixbuf-2.0-dev
libgdk-pixbuf2.0-bin libgdk-pixbuf2.0-bin
libgirepository1.0-dev libgirepository1.0-dev
libgl1-mesa-dev libgl1-mesa-dev
libgraphene-1.0-0 libgraphene-1.0-0
libgraphene-1.0-dev libgraphene-1.0-dev
libgtk-3-dev libgtk-3-dev
libgulkan-0.15-0t64 libgulkan-0.15-0t64
libgulkan-dev libgulkan-dev
libinih-dev libinih-dev
libinput-dev libiniparser-dev
libjbig-dev libinput-dev
libjpeg-dev libjbig-dev
libjpeg62-turbo-dev libjpeg-dev
liblerc-dev libjpeg62-turbo-dev
libliftoff-dev liblerc-dev
liblzma-dev libliftoff-dev
libnotify-bin liblzma-dev
libpam0g-dev libnotify-bin
libpango1.0-dev libpam0g-dev
libpipewire-0.3-dev libpango1.0-dev
libqt6svg6 libpipewire-0.3-dev
libsdbus-c++-dev libqt6svg6
libseat-dev libsdbus-c++-dev
libstartup-notification0-dev libseat-dev
libswresample-dev libstartup-notification0-dev
libsystemd-dev libswresample-dev
libtiff-dev libsystemd-dev
libtiffxx6 libtiff-dev
libtomlplusplus-dev libtiffxx6
libudev-dev libtomlplusplus-dev
libvkfft-dev libudev-dev
libvulkan-dev libvkfft-dev
libvulkan-volk-dev libvulkan-dev
libwayland-dev libvulkan-volk-dev
libwebp-dev libwayland-dev
libxcb-composite0-dev libwebp-dev
libxcb-cursor-dev libxcb-composite0-dev
libxcb-dri3-dev libxcb-cursor-dev
libxcb-ewmh-dev libxcb-dri3-dev
libxcb-icccm4-dev libxcb-ewmh-dev
libxcb-present-dev libxcb-icccm4-dev
libxcb-render-util0-dev libxcb-present-dev
libxcb-res0-dev libxcb-render-util0-dev
libxcb-util-dev libxcb-res0-dev
libxcb-xinerama0-dev libxcb-util-dev
libxcb-xinput-dev libxcb-xinerama0-dev
libxcb-xkb-dev libxcb-xinput-dev
libxkbcommon-dev libxcb-xkb-dev
libxkbcommon-x11-dev libxkbcommon-dev
libxkbregistry-dev libxkbcommon-x11-dev
libxml2-dev libxkbregistry-dev
libxxhash-dev libxml2-dev
meson libxxhash-dev
ninja-build meson
openssl ninja-build
psmisc openssl
python3-mako psmisc
python3-markdown python3-mako
python3-markupsafe python3-markdown
python3-pyquery python3-markupsafe
python3-yaml python3-pyquery
qt6-base-dev python3-yaml
scdoc qt6-base-dev
seatd scdoc
spirv-tools seatd
unzip spirv-tools
vulkan-utility-libraries-dev unzip
vulkan-validationlayers vulkan-utility-libraries-dev
wayland-protocols vulkan-validationlayers
xdg-desktop-portal wayland-protocols
xwayland xdg-desktop-portal
xwayland
) )
# hyprland dependencies # hyprland dependencies
hyprland_dep=( hyprland_dep=(
bc bc
binutils binutils
libc6 libc6
libcairo2-dev libcairo2-dev
libdisplay-info2 libdisplay-info3
libdrm2 libdrm2
libjpeg-dev libjpeg-dev
libjxl-dev libjxl-dev
libmagic-dev libmagic-dev
libpixman-1-dev libpixman-1-dev
libpugixml-dev libpugixml-dev
libre2-dev libre2-dev
librsvg2-dev librsvg2-dev
libspng-dev libspng-dev
libtomlplusplus-dev libtomlplusplus-dev
libwebp-dev libwebp-dev
libzip-dev libzip-dev
libpam0g-dev libpam0g-dev
libxcursor-dev libxcursor-dev
qt6-declarative-dev qt6-declarative-dev
qt6-base-private-dev qt6-base-private-dev
qt6-wayland-dev qt6-wayland-dev
qt6-wayland-private-dev qt6-wayland-private-dev
) )
build_dep=( build_dep=(
wlroots wlroots
) )
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ## ## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# Change the working directory to the parent directory of the script # Change the working directory to the parent directory of the script
PARENT_DIR="$SCRIPT_DIR/.." PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; } cd "$PARENT_DIR" || {
echo "${ERROR} Failed to change directory to $PARENT_DIR"
exit 1
}
# Source the global functions script # Source the global functions script
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
echo "Failed to source Global_functions.sh" echo "Failed to source Global_functions.sh"
exit 1 exit 1
fi fi
# Set the name of the log file to include the current date and time # Set the name of the log file to include the current date and time
@ -154,13 +158,13 @@ LOG="Install-Logs/install-$(date +%d-%H%M%S)_dependencies.log"
printf "\n%s - Installing ${SKY_BLUE}main dependencies....${RESET} \n" "${NOTE}" printf "\n%s - Installing ${SKY_BLUE}main dependencies....${RESET} \n" "${NOTE}"
for PKG1 in "${dependencies[@]}" "${hyprland_dep[@]}"; do for PKG1 in "${dependencies[@]}" "${hyprland_dep[@]}"; do
install_package "$PKG1" "$LOG" install_package "$PKG1" "$LOG"
done done
printf "\n%.0s" {1..1} printf "\n%.0s" {1..1}
for PKG1 in "${build_dep[@]}"; do for PKG1 in "${build_dep[@]}"; do
build_dep "$PKG1" "$LOG" build_dep "$PKG1" "$LOG"
done done
printf "\n%.0s" {1..2} printf "\n%.0s" {1..2}

View File

@ -12,79 +12,82 @@ Extra=(
# packages needed # packages needed
hypr_package=( hypr_package=(
cliphist cliphist
grim grim
gvfs gvfs
gvfs-backends gvfs-backends
inxi inxi
imagemagick imagemagick
kitty kitty
nano nano
pavucontrol pavucontrol
playerctl playerctl
polkit-kde-agent-1 polkit-kde-agent-1
python3-requests python3-requests
python3-pip python3-pip
qt5ct qt5ct
qt5-style-kvantum qt5-style-kvantum
qt5-style-kvantum-themes qt-style-kvantum-themes
qt6ct qt6ct
slurp slurp
swappy swappy
sway-notification-center sway-notification-center
unzip unzip
waybar waybar
wget wget
wl-clipboard wl-clipboard
wlogout wlogout
xdg-user-dirs xdg-user-dirs
xdg-utils xdg-utils
yad yad
) )
# the following packages can be deleted. however, dotfiles may not work properly # the following packages can be deleted. however, dotfiles may not work properly
hypr_package_2=( hypr_package_2=(
brightnessctl brightnessctl
btop btop
cava cava
fastfetch fastfetch
loupe loupe
gnome-system-monitor gnome-system-monitor
mousepad mousepad
mpv mpv
mpv-mpris mpv-mpris
nwg-look nwg-look
nwg-displays nwg-displays
nvtop nvtop
pamixer pamixer
qalculate-gtk qalculate-gtk
) )
# packages to force reinstall # packages to force reinstall
force=( force=(
imagemagick imagemagick
wayland-protocols wayland-protocols
) )
# List of packages to uninstall as it conflicts with swaync or causing swaync to not function properly # List of packages to uninstall as it conflicts with swaync or causing swaync to not function properly
uninstall=( uninstall=(
dunst dunst
mako mako
rofi rofi
cargo cargo
) )
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ## ## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# Change the working directory to the parent directory of the script # Change the working directory to the parent directory of the script
PARENT_DIR="$SCRIPT_DIR/.." PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; } cd "$PARENT_DIR" || {
echo "${ERROR} Failed to change directory to $PARENT_DIR"
exit 1
}
# Source the global functions script # Source the global functions script
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
echo "Failed to source Global_functions.sh" echo "Failed to source Global_functions.sh"
exit 1 exit 1
fi fi
# Set the name of the log file to include the current date and time # Set the name of the log file to include the current date and time
@ -94,14 +97,14 @@ LOG="Install-Logs/install-$(date +%d-%H%M%S)_hypr-pkgs.log"
overall_failed=0 overall_failed=0
printf "\n%s - ${SKY_BLUE}Removing some packages${RESET} as it conflicts with KooL's Hyprland Dots \n" "${NOTE}" printf "\n%s - ${SKY_BLUE}Removing some packages${RESET} as it conflicts with KooL's Hyprland Dots \n" "${NOTE}"
for PKG in "${uninstall[@]}"; do for PKG in "${uninstall[@]}"; do
uninstall_package "$PKG" 2>&1 | tee -a "$LOG" uninstall_package "$PKG" 2>&1 | tee -a "$LOG"
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
overall_failed=1 overall_failed=1
fi fi
done done
if [ $overall_failed -ne 0 ]; then if [ $overall_failed -ne 0 ]; then
echo -e "${ERROR} Some packages failed to uninstall. Please check the log." echo -e "${ERROR} Some packages failed to uninstall. Please check the log."
fi fi
printf "\n%.0s" {1..1} printf "\n%.0s" {1..1}
@ -110,24 +113,24 @@ printf "\n%.0s" {1..1}
printf "\n%s - Installing ${SKY_BLUE}KooL's hyprland necessary packages${RESET} .... \n" "${NOTE}" printf "\n%s - Installing ${SKY_BLUE}KooL's hyprland necessary packages${RESET} .... \n" "${NOTE}"
for PKG1 in "${hypr_package[@]}" "${hypr_package_2[@]}" "${Extra[@]}"; do for PKG1 in "${hypr_package[@]}" "${hypr_package_2[@]}" "${Extra[@]}"; do
install_package "$PKG1" "$LOG" install_package "$PKG1" "$LOG"
done done
printf "\n%.0s" {1..1} printf "\n%.0s" {1..1}
for PKG2 in "${force[@]}"; do for PKG2 in "${force[@]}"; do
re_install_package "$PKG2" "$LOG" re_install_package "$PKG2" "$LOG"
done done
printf "\n%.0s" {1..1} printf "\n%.0s" {1..1}
# install YAD from assets. NOTE This is downloaded from SID repo and sometimes # install YAD from assets. NOTE This is downloaded from SID repo and sometimes
# Trixie is removing YAD for some strange reasons # Trixie is removing YAD for some strange reasons
# Check if yad is installed # Check if yad is installed
if ! command -v yad &> /dev/null; then if ! command -v yad &>/dev/null; then
echo "${INFO} Installing ${YELLOW}YAD from assets${RESET} ..." echo "${INFO} Installing ${YELLOW}YAD from assets${RESET} ..."
sudo dpkg -i assets/yad_0.40.0-1+b2_amd64.deb sudo dpkg -i assets/yad_0.40.0-1+b2_amd64.deb
sudo apt install -f -y sudo apt install -f -y
echo "${INFO} ${YELLOW}YAD from assets${RESET} succesfully installed ..." echo "${INFO} ${YELLOW}YAD from assets${RESET} succesfully installed ..."
fi fi
printf "\n%.0s" {1..2} printf "\n%.0s" {1..2}
@ -141,3 +144,4 @@ source "$HOME/.cargo/env"
sudo chmod +s $(which brightnessctl) 2>&1 | tee -a "$LOG" || true sudo chmod +s $(which brightnessctl) 2>&1 | tee -a "$LOG" || true
printf "\n%.0s" {1..2} printf "\n%.0s" {1..2}

View File

@ -8,12 +8,20 @@ ags=(
meson meson
libgjs-dev libgjs-dev
gjs gjs
gobject-introspection
libgirepository1.0-dev
gir1.2-gtk-4.0
gir1.2-gtklayershell-0.1
libgtk-layer-shell-dev libgtk-layer-shell-dev
libgtk-3-dev libgtk-3-dev
libadwaita-1-dev
libpam0g-dev libpam0g-dev
libpulse-dev libpulse-dev
libdbusmenu-gtk3-dev libdbusmenu-gtk3-dev
libsoup-3.0-dev libsoup-3.0-dev
ninja-build
build-essential
pkg-config
) )
f_ags=( f_ags=(
@ -48,9 +56,18 @@ MLOG="install-$(date +%d-%H%M%S)_ags2.log"
if command -v ags &>/dev/null; then if command -v ags &>/dev/null; then
AGS_VERSION=$(ags -v | awk '{print $NF}') AGS_VERSION=$(ags -v | awk '{print $NF}')
if [[ "$AGS_VERSION" == "1.9.0" ]]; then if [[ "$AGS_VERSION" == "1.9.0" ]]; then
printf "${INFO} ${MAGENTA}Aylur's GTK Shell v1.9.0${RESET} is already installed. Skipping installation." printf "${INFO} ${MAGENTA}Aylur's GTK Shell v1.9.0${RESET} is already installed.\n"
printf "\n%.0s" {1..2} read -r -p "Reinstall v1.9.0 anyway? [y/N]: " REPLY
exit 0 case "$REPLY" in
[yY]|[yY][eE][sS])
printf "${NOTE} Reinstalling Aylur's GTK Shell v1.9.0...\n"
;;
*)
printf "Skipping reinstallation.\n"
printf "\n%.0s" {1..2}
exit 0
;;
esac
fi fi
fi fi
@ -78,11 +95,13 @@ sudo npm install --global typescript 2>&1 | tee -a "$LOG"
# ags v1 # ags v1
printf "${NOTE} Install and Compiling ${SKY_BLUE}Aylur's GTK shell $ags_tag${RESET}..\n" printf "${NOTE} Install and Compiling ${SKY_BLUE}Aylur's GTK shell $ags_tag${RESET}..\n"
# Check if directory exists and remove it # Remove previous sources (both legacy "ags" and tagged "ags_v1.9.0")
if [ -d "ags" ]; then for SRC_DIR in "ags" "ags_v1.9.0"; do
printf "${NOTE} Removing existing ags directory...\n" if [ -d "$SRC_DIR" ]; then
rm -rf "ags" printf "${NOTE} Removing existing %s directory...\\n" "$SRC_DIR"
fi rm -rf "$SRC_DIR"
fi
done
printf "\n%.0s" {1..1} printf "\n%.0s" {1..1}
printf "${INFO} Kindly Standby...cloning and compiling ${SKY_BLUE}Aylur's GTK shell $ags_tag${RESET}...\n" printf "${INFO} Kindly Standby...cloning and compiling ${SKY_BLUE}Aylur's GTK shell $ags_tag${RESET}...\n"
@ -94,6 +113,92 @@ if git clone --depth=1 https://github.com/JaKooLit/ags_v1.9.0.git; then
meson setup build meson setup build
if sudo meson install -C build 2>&1 | tee -a "$MLOG"; then if sudo meson install -C build 2>&1 | tee -a "$MLOG"; then
printf "\n${OK} ${YELLOW}Aylur's GTK shell $ags_tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG" printf "\n${OK} ${YELLOW}Aylur's GTK shell $ags_tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
# Patch installed AGS launchers to ensure GI typelibs in /usr/local/lib are discoverable in GJS ESM
printf "${NOTE} Applying AGS launcher patch for GI typelibs search path...\n"
patch_ags_launcher() {
local target="$1"
if ! sudo test -f "$target"; then
return 1
fi
# 1) Remove deprecated GIR Repository path tweaks and GIRepository import (harmless if absent)
sudo sed -i \
-e '/Repository\.prepend_search_path/d' \
-e '/Repository\.prepend_library_path/d' \
-e '/gi:\/\/GIRepository/d' \
"$target"
# 2) Ensure GLib import exists (insert after first import line, or at top if none)
if ! sudo grep -q '^import GLib from "gi://GLib";' "$target"; then
TMPF=$(sudo mktemp)
sudo awk 'BEGIN{added=0} {
if (!added && $0 ~ /^import /) { print; print "import GLib from \"gi://GLib\";"; added=1; next }
print
} END { if (!added) print "import GLib from \"gi://GLib\";" }' "$target" | sudo tee "$TMPF" >/dev/null
sudo mv "$TMPF" "$target"
fi
# 3) Inject GI_TYPELIB_PATH export right after the GLib import (once)
if ! sudo grep -q 'GLib.setenv("GI_TYPELIB_PATH"' "$target"; then
TMPF=$(sudo mktemp)
sudo awk '{print} $0 ~ /^import GLib from "gi:\/\/GLib";$/ {print "const __old = GLib.getenv(\"GI_TYPELIB_PATH\");"; print "GLib.setenv(\"GI_TYPELIB_PATH\", \"/usr/local/lib/x86_64-linux-gnu:/usr/local/lib64:/usr/local/lib:/usr/local/lib64/girepository-1.0:/usr/local/lib/girepository-1.0:/usr/local/lib/x86_64-linux-gnu/girepository-1.0:/usr/lib/x86_64-linux-gnu/girepository-1.0:/usr/lib/girepository-1.0:/usr/lib/ags:/usr/local/lib/ags:/usr/lib64/ags\" + (__old ? \":\" + __old : \"\"), true);"; print "const __oldld = GLib.getenv(\"LD_LIBRARY_PATH\");"; print "GLib.setenv(\"LD_LIBRARY_PATH\", \"/usr/local/lib/x86_64-linux-gnu:/usr/local/lib64:/usr/local/lib\" + (__oldld ? \":\" + __oldld : \"\"), true);"}' "$target" | sudo tee "$TMPF" >/dev/null
sudo mv "$TMPF" "$target"
fi
# 4) Ensure LD_LIBRARY_PATH export exists even if GI_TYPELIB_PATH was already present
if ! sudo grep -q 'GLib.setenv("LD_LIBRARY_PATH"' "$target"; then
TMPF=$(sudo mktemp)
sudo awk '{print} $0 ~ /^import GLib from "gi:\/\/GLib";$/ {print "const __oldld = GLib.getenv(\"LD_LIBRARY_PATH\");"; print "GLib.setenv(\"LD_LIBRARY_PATH\", \"/usr/local/lib64:/usr/local/lib\" + (__oldld ? \":\" + __oldld : \"\"), true);"}' "$target" | sudo tee "$TMPF" >/dev/null
sudo mv "$TMPF" "$target"
fi
# Restore executable bit for bin wrappers (mv from mktemp resets mode to 0600)
case "$target" in
*/bin/ags)
sudo chmod 0755 "$target" || true
;;
esac
printf "${OK} Patched: %s\n" "$target"
return 0
}
# Try common locations
for CAND in \
"/usr/local/share/com.github.Aylur.ags/com.github.Aylur.ags" \
"/usr/share/com.github.Aylur.ags/com.github.Aylur.ags" \
"/usr/local/bin/ags" \
"/usr/bin/ags"; do
patch_ags_launcher "$CAND" || true
done
# Create an env-setting wrapper for AGS to ensure GI typelibs/libs are discoverable
printf "${NOTE} Creating env wrapper /usr/local/bin/ags...\n"
sudo tee /usr/local/bin/ags >/dev/null <<'WRAP'
#!/usr/bin/env bash
set -euo pipefail
cd "$HOME" 2>/dev/null || true
# Locate AGS ESM entry
MAIN_JS="/usr/local/share/com.github.Aylur.ags/com.github.Aylur.ags"
if [ ! -f "$MAIN_JS" ]; then
MAIN_JS="/usr/share/com.github.Aylur.ags/com.github.Aylur.ags"
fi
if [ ! -f "$MAIN_JS" ]; then
echo "Unable to find AGS entry script (com.github.Aylur.ags) in /usr/local/share or /usr/share" >&2
exit 1
fi
# Ensure GI typelibs and native libs are discoverable before gjs ESM loads
export GI_TYPELIB_PATH="/usr/local/lib/x86_64-linux-gnu:/usr/local/lib64:/usr/local/lib:/usr/local/lib64/girepository-1.0:/usr/local/lib/girepository-1.0:/usr/local/lib/x86_64-linux-gnu/girepository-1.0:/usr/lib/x86_64-linux-gnu/girepository-1.0:/usr/lib/girepository-1.0:/usr/lib64/girepository-1.0:/usr/lib/ags:/usr/local/lib/ags:/usr/lib64/ags:${GI_TYPELIB_PATH-}"
export LD_LIBRARY_PATH="/usr/local/lib/x86_64-linux-gnu:/usr/local/lib64:/usr/local/lib:${LD_LIBRARY_PATH-}"
exec /usr/bin/gjs -m "$MAIN_JS" "$@"
WRAP
sudo chmod 0755 /usr/local/bin/ags
# Ensure ESM entry is readable by gjs
sudo chmod 0644 /usr/local/share/com.github.Aylur.ags/com.github.Aylur.ags 2>/dev/null || true
sudo chmod 0644 /usr/share/com.github.Aylur.ags/com.github.Aylur.ags 2>/dev/null || true
printf "${OK} AGS wrapper installed at /usr/local/bin/ags\n"
else else
echo -e "\n${ERROR} ${YELLOW}Aylur's GTK shell $ags_tag${RESET} Installation failed\n " 2>&1 | tee -a "$MLOG" echo -e "\n${ERROR} ${YELLOW}Aylur's GTK shell $ags_tag${RESET} Installation failed\n " 2>&1 | tee -a "$MLOG"
fi fi

View File

@ -5,7 +5,7 @@
#specific branch or release #specific branch or release
tag="v0.9.3" tag="v0.10.0"
# Allow environment override # Allow environment override
if [ -n "${AQUAMARINE_TAG:-}" ]; then tag="$AQUAMARINE_TAG"; fi if [ -n "${AQUAMARINE_TAG:-}" ]; then tag="$AQUAMARINE_TAG"; fi
@ -45,7 +45,7 @@ fi
printf "${INFO} Installing ${YELLOW}aquamarine $tag${RESET} ...\n" printf "${INFO} Installing ${YELLOW}aquamarine $tag${RESET} ...\n"
if git clone --recursive -b $tag https://github.com/hyprwm/aquamarine.git; then if git clone --recursive -b $tag https://github.com/hyprwm/aquamarine.git; then
cd aquamarine || exit 1 cd aquamarine || exit 1
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B ./build cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr/local -S . -B ./build
cmake --build ./build --config Release --target all -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF` cmake --build ./build --config Release --target all -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF`
if [ $DO_INSTALL -eq 1 ]; then if [ $DO_INSTALL -eq 1 ]; then
if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then

View File

@ -8,7 +8,7 @@ hyprgraphics=(
) )
#specific branch or release #specific branch or release
tag="v0.1.5" tag="v0.4.0"
# Allow environment override # Allow environment override
if [ -n "${HYPRGRAPHICS_TAG:-}" ]; then tag="$HYPRGRAPHICS_TAG"; fi if [ -n "${HYPRGRAPHICS_TAG:-}" ]; then tag="$HYPRGRAPHICS_TAG"; fi

View File

@ -1,9 +1,9 @@
#!/bin/bash #!/bin/bash
# 💫 https://github.com/JaKooLit 💫 # # 💫 https://github.com/JaKooLit 💫 #
# Hypr Ecosystem # # Hypr Ecosystem #
# hypland-qtutils # # hypland-guiutils #
qtutils=( guiutils=(
libqt6core5compat6 libqt6core5compat6
qt6-base-dev qt6-base-dev
qt6-wayland-dev qt6-wayland-dev
@ -17,9 +17,9 @@ qtutils=(
) )
#specific branch or release #specific branch or release
tag="v0.1.4" tag="v0.2.0"
# Allow environment override # Allow environment override
if [ -n "${HYPRLAND_QTUTILS_TAG:-}" ]; then tag="$HYPRLAND_QTUTILS_TAG"; fi if [ -n "${HYPRLAND_GUIUTILS_TAG:-}" ]; then tag="$HYPRLAND_GUIUTILS_TAG"; fi
# Dry-run support # Dry-run support
DO_INSTALL=1 DO_INSTALL=1
@ -42,13 +42,13 @@ if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
fi fi
# Set the name of the log file to include the current date and time # Set the name of the log file to include the current date and time
LOG="Install-Logs/install-$(date +%d-%H%M%S)_hyprland-qtutils.log" LOG="Install-Logs/install-$(date +%d-%H%M%S)_hyprland-guiutils.log"
MLOG="install-$(date +%d-%H%M%S)_hyprland-qtutils2.log" MLOG="install-$(date +%d-%H%M%S)_hyprland-guiutils2.log"
# Installation of dependencies # Installation of dependencies
printf "\n%s - Installing ${YELLOW}hyprland-qtutils dependencies${RESET} .... \n" "${INFO}" printf "\n%s - Installing ${YELLOW}hyprland-guiutils dependencies${RESET} .... \n" "${INFO}"
for PKG1 in "${qtutils[@]}"; do for PKG1 in "${guiutils[@]}"; do
re_install_package "$PKG1" 2>&1 | tee -a "$LOG" re_install_package "$PKG1" 2>&1 | tee -a "$LOG"
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo -e "\e[1A\e[K${ERROR} - ${YELLOW}$PKG1${RESET} Package installation failed, Please check the installation logs" echo -e "\e[1A\e[K${ERROR} - ${YELLOW}$PKG1${RESET} Package installation failed, Please check the installation logs"
@ -58,31 +58,31 @@ done
printf "\n%.0s" {1..1} printf "\n%.0s" {1..1}
# Check if hyprland-qtutils directory exists and remove it # Check if hyprland-guiutils directory exists and remove it
if [ -d "hyprland-qtutils" ]; then if [ -d "hyprland-guiutils" ]; then
rm -rf "hyprland-qtutils" rm -rf "hyprland-guiutils"
fi fi
# Clone and build # Clone and build
printf "${INFO} Installing ${YELLOW}hyprland-qtutils $tag${RESET} ...\n" printf "${INFO} Installing ${YELLOW}hyprland-guiutils $tag${RESET} ...\n"
if git clone --recursive -b $tag https://github.com/hyprwm/hyprland-qtutils.git; then if git clone --recursive -b $tag https://github.com/hyprwm/hyprland-guiutils.git; then
cd hyprland-qtutils || exit 1 cd hyprland-guiutils || exit 1
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B ./build cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B ./build
cmake --build ./build --config Release --target all -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF` cmake --build ./build --config Release --target all -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF`
if [ $DO_INSTALL -eq 1 ]; then if [ $DO_INSTALL -eq 1 ]; then
if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then
printf "${OK} ${MAGENTA}hyprland-qtutils $tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG" printf "${OK} ${MAGENTA}hyprland-guiutils $tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
else else
echo -e "${ERROR} Installation failed for ${YELLOW}hyprland-qtutils $tag${RESET}" 2>&1 | tee -a "$MLOG" echo -e "${ERROR} Installation failed for ${YELLOW}hyprland-guiutils $tag${RESET}" 2>&1 | tee -a "$MLOG"
fi fi
else else
echo "${NOTE} DRY RUN: Skipping installation of hyprland-qtutils $tag." echo "${NOTE} DRY RUN: Skipping installation of hyprland-guiutils $tag."
fi fi
#moving the addional logs to Install-Logs directory #moving the addional logs to Install-Logs directory
[ -f "$MLOG" ] && mv "$MLOG" ../Install-Logs/ [ -f "$MLOG" ] && mv "$MLOG" ../Install-Logs/
cd .. cd ..
else else
echo -e "${ERROR} Download failed for ${YELLOW}hyprland-qtutils $tag${RESET}" 2>&1 | tee -a "$LOG" echo -e "${ERROR} Download failed for ${YELLOW}hyprland-guiutils $tag${RESET}" 2>&1 | tee -a "$LOG"
fi fi
printf "\n%.0s" {1..2} printf "\n%.0s" {1..2}

View File

@ -5,7 +5,7 @@
#specific branch or release #specific branch or release
tag="v0.6.4" tag="v0.7.0"
# Allow environment override # Allow environment override
if [ -n "${HYPRLAND_PROTOCOLS_TAG:-}" ]; then tag="$HYPRLAND_PROTOCOLS_TAG"; fi if [ -n "${HYPRLAND_PROTOCOLS_TAG:-}" ]; then tag="$HYPRLAND_PROTOCOLS_TAG"; fi

View File

@ -3,7 +3,7 @@
# Main Hyprland Package# # Main Hyprland Package#
#specific branch or release #specific branch or release
tag="v0.51.1" tag="v0.52.2"
# Allow environment override # Allow environment override
if [ -n "${HYPRLAND_TAG:-}" ]; then tag="$HYPRLAND_TAG"; fi if [ -n "${HYPRLAND_TAG:-}" ]; then tag="$HYPRLAND_TAG"; fi

View File

@ -5,7 +5,7 @@
#specific branch or release #specific branch or release
tag="v0.6.4" tag="v0.6.7"
# Allow environment override # Allow environment override
if [ -n "${HYPRLANG_TAG:-}" ]; then tag="$HYPRLANG_TAG"; fi if [ -n "${HYPRLANG_TAG:-}" ]; then tag="$HYPRLANG_TAG"; fi

65
install-scripts/hyprtoolkit.sh Executable file
View File

@ -0,0 +1,65 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# Hypr Ecosystem #
# hyprtoolkit #
#specific branch or release
tag="v0.4.1"
# Allow environment override
if [ -n "${HYPRTOOLKIT_TAG:-}" ]; then tag="$HYPRTOOLKIT_TAG"; fi
# Dry-run support
DO_INSTALL=1
if [ "$1" = "--dry-run" ] || [ "${DRY_RUN}" = "1" ] || [ "${DRY_RUN}" = "true" ]; then
DO_INSTALL=0
echo "${NOTE} DRY RUN: install step will be skipped."
fi
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Change the working directory to the parent directory of the script
PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
# Source the global functions script
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
echo "Failed to source Global_functions.sh"
exit 1
fi
# Set the name of the log file to include the current date and time
LOG="Install-Logs/install-$(date +%d-%H%M%S)_hyprtoolkit.log"
MLOG="install-$(date +%d-%H%M%S)_hyprtoolkit2.log"
# Clone, build, and install using Cmake
printf "${NOTE} Cloning hyprtoolkit...\n"
# Check if hyprtoolkit folder exists and remove it
if [ -d "hyprtoolkit" ]; then
printf "${NOTE} Removing existing hyprtoolkit folder...\n"
rm -rf "hyprtoolkit" 2>&1 | tee -a "$LOG"
fi
if git clone -b $tag "https://github.com/hyprwm/hyprtoolkit.git"; then
cd "hyprtoolkit" || exit 1
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr/local -S . -B ./build
cmake --build ./build --config Release --target all -j`nproc 2>/dev/null || getconf _NPROCESSORS_CONF`
if [ $DO_INSTALL -eq 1 ]; then
if sudo cmake --install build 2>&1 | tee -a "$MLOG"; then
printf "${OK} hyprtoolkit installed successfully.\n" 2>&1 | tee -a "$MLOG"
else
echo -e "${ERROR} Installation failed for hyprtoolkit." 2>&1 | tee -a "$MLOG"
fi
else
echo "${NOTE} DRY RUN: Skipping installation of hyprtoolkit $tag."
fi
[ -f "$MLOG" ] && mv "$MLOG" ../Install-Logs/
cd ..
else
echo -e "${ERROR} Download failed for hyprtoolkit" 2>&1 | tee -a "$LOG"
fi
printf "\n%.0s" {1..2}

View File

@ -4,7 +4,7 @@
# hyprutils # # hyprutils #
#specific branch or release #specific branch or release
tag="v0.8.2" tag="v0.10.4"
# Allow environment override # Allow environment override
if [ -n "${HYPRUTILS_TAG:-}" ]; then tag="$HYPRUTILS_TAG"; fi if [ -n "${HYPRUTILS_TAG:-}" ]; then tag="$HYPRUTILS_TAG"; fi

69
install-scripts/xkbcommon.sh Executable file
View File

@ -0,0 +1,69 @@
#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# Hypr Ecosystem #
# xkbcommon #
xkbcommon=(
bison
libzip-dev
librsvg2-dev
)
#specific branch or release
tag="xkbcommon-1.13.1"
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Change the working directory to the parent directory of the script
PARENT_DIR="$SCRIPT_DIR/.."
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
# Source the global functions script
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
echo "Failed to source Global_functions.sh"
exit 1
fi
# Set the name of the log file to include the current date and time
LOG="Install-Logs/install-$(date +%d-%H%M%S)_xkbcommon.log"
MLOG="install-$(date +%d-%H%M%S)_xkbcommon.log"
# Installation of dependencies
printf "\n%s - Installing xkbcommon dependencies.... \n" "${NOTE}"
for PKG1 in "${xkbcommon[@]}"; do
install_package "$PKG1" 2>&1 | tee -a "$LOG"
if [ $? -ne 0 ]; then
echo -e "\e[1A\e[K${ERROR} - $PKG1 Package installation failed, Please check the installation logs"
exit 1
fi
done
# Check if xkbcommon folder exists and remove it
if [ -d "libxkbcommon" ]; then
printf "${NOTE} Removing existing libxkbcommon folder...\n"
rm -rf "libxkbcommon"
fi
# Clone and build
printf "${NOTE} Installing xkbcommon...\n"
if git clone --recursive -b $tag https://github.com/xkbcommon/libxkbcommon.git; then
cd libxkbcommon || exit 1
meson setup build --libdir=/usr/local/lib
meson compile -C build
if sudo meson install -C build 2>&1 | tee -a "$MLOG" ; then
printf "${OK} xkbcommon installed successfully.\n" 2>&1 | tee -a "$MLOG"
else
echo -e "${ERROR} Installation failed for xkbcommon." 2>&1 | tee -a "$MLOG"
fi
#moving the addional logs to Install-Logs directory
mv $MLOG ../Install-Logs/ || true
cd ..
else
echo -e "${ERROR} Download failed for xkbcommon." 2>&1 | tee -a "$LOG"
fi
printf "\n%.0s" {1..2}

View File

@ -400,13 +400,17 @@ execute_script "aquamarine.sh"
sleep 1 sleep 1
execute_script "hyprland-qt-support.sh" execute_script "hyprland-qt-support.sh"
sleep 1 sleep 1
execute_script "hyprland-qtutils.sh" execute_script "hyprtoolkit.sh"
sleep 1
execute_script "hyprland-guiutils.sh"
sleep 1 sleep 1
execute_script "hyprland-protocols.sh" execute_script "hyprland-protocols.sh"
sleep 1 sleep 1
# Ensure wayland-protocols (from source) is installed to satisfy Hyprland's >= 1.45 requirement # Ensure wayland-protocols (from source) is installed to satisfy Hyprland's >= 1.45 requirement
execute_script "wayland-protocols-src.sh" execute_script "wayland-protocols-src.sh"
sleep 1 sleep 1
execute_script "xkbcommon.sh"
sleep 1
execute_script "hyprland.sh" execute_script "hyprland.sh"
sleep 1 sleep 1
execute_script "hyprpolkitagent.sh" execute_script "hyprpolkitagent.sh"

View File

@ -33,15 +33,17 @@ SUMMARY_LOG="$LOG_DIR/update-hypr-$TS.log"
# Default module order (core first, then Hyprland) # Default module order (core first, then Hyprland)
DEFAULT_MODULES=( DEFAULT_MODULES=(
xkbcommon
hyprutils hyprutils
hyprlang hyprlang
hyprtoolkit
wayland-protocols-src wayland-protocols-src
aquamarine aquamarine
hyprgraphics hyprgraphics
hyprwayland-scanner hyprwayland-scanner
hyprland-protocols hyprland-protocols
hyprland-qt-support hyprland-qt-support
hyprland-qtutils hyprland-guiutils
hyprland hyprland
) )