Compare commits

...

18 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
Donald Williams
d20782004b
Merge pull request #222 from JaKooLit/ddubs-swww-upd
Upd swww_tag to v0.11.2 made tag chk use variable fixes numerous issues, like vertical monitors
2025-10-31 19:33:30 -04:00
Don Williams
de7dea585c Upd swww_tag to v0.11.2 made tag chk use variable
It was hard coded to 0.9.3 before. Now it checks again the swww_tag

 On branch ddubs-swww-upd
 Changes to be committed:
	modified:   install-scripts/swww.sh
2025-10-31 19:05:14 -04:00
Don Williams
b83b3e80ba Fixed script not pulling current Hyprland dotfiles
On branch main
 Your branch is up to date with 'origin/main'.

 Changes to be committed:
	modified:   install-scripts/dotfiles-branch.sh
2025-10-25 06:13:32 -04:00
Donald Williams
8048ec1908
Merge pull request #217 from brockar/brockar-readme
fix: improve formatting and clarity in README.md
2025-10-10 22:08:00 -04:00
brockar
84aa9ea163
fix: update debian versions on readme 2025-10-10 22:48:57 -03:00
brockar
503f31bf68
fix: improve formatting and clarity in README.md 2025-10-10 21:01:37 -03:00
19 changed files with 729 additions and 406 deletions

View File

@ -1,13 +1,25 @@
## CHANGELOGS ## CHANGELOGS
## 10 October 2025 ## 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
### 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
@ -18,8 +30,9 @@
- dry-run-build.sh: Compile-only helper with summary output - dry-run-build.sh: Compile-only helper with summary output
- 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:
@ -29,243 +42,307 @@
hyprland (can be disabled via --no-fetch) hyprland (can be disabled via --no-fetch)
- 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`
- Provide optional `--with-deps` and `--dry-run` flows - Provide optional `--with-deps` and `--dry-run` flows
- 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
- Optional: - Optional:
./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

207
README.md
View File

@ -1,7 +1,8 @@
<div align="center"> <div align="center">
# 💌 KooL's Debian-Hyprland Install Script 💌 # 💌 KooL's Debian-Hyprland Install Script 💌
#### For Debian 13 Trixie (Testing) and SID (unstable)
#### For Debian 13 (Trixie) and above (testing, SID)
<p align="center"> <p align="center">
<img src="https://raw.githubusercontent.com/JaKooLit/Hyprland-Dots/main/assets/latte.png" width="400" /> <img src="https://raw.githubusercontent.com/JaKooLit/Hyprland-Dots/main/assets/latte.png" width="400" />
@ -13,7 +14,7 @@
</div> </div>
<div align="center"> <div align="center">
<br> <br>
<a href="#-announcement-"><kbd><br>Read this First<br></kbd></a>&ensp;&ensp; <a href="#-announcement-"><kbd><br>Read this First<br></kbd></a>&ensp;&ensp;
<a href="#-to-use-this-script"><kbd><br>Installation<br></kbd></a>&ensp;&ensp; <a href="#-to-use-this-script"><kbd><br>Installation<br></kbd></a>&ensp;&ensp;
<a href="#gallery-and-videos"><kbd><br>Gallery<br></kbd></a>&ensp;&ensp; <a href="#gallery-and-videos"><kbd><br>Gallery<br></kbd></a>&ensp;&ensp;
@ -42,109 +43,104 @@
</p> </p>
<h3 align="center"> <h3 align="center">
<img src="https://github.com/JaKooLit/Telegram-Animated-Emojis/blob/main/Activity/Sparkles.webp" alt="Sparkles" width="38" height="38" /> <img src="https://github.com/JaKooLit/Telegram-Animated-Emojis/blob/main/Activity/Sparkles.webp" alt="Sparkles" width="38" height="38" />
KooL Hyprland-Dotfiles Showcase KooL Hyprland-Dotfiles Showcase
<img src="https://github.com/JaKooLit/Telegram-Animated-Emojis/blob/main/Activity/Sparkles.webp" alt="Sparkles" width="38" height="38" /> <img src="https://github.com/JaKooLit/Telegram-Animated-Emojis/blob/main/Activity/Sparkles.webp" alt="Sparkles" width="38" height="38" />
</h3> </h3>
<div align="center"> <div align="center">
https://github.com/user-attachments/assets/49bc12b2-abaf-45de-a21c-67aacd9bb872 <https://github.com/user-attachments/assets/49bc12b2-abaf-45de-a21c-67aacd9bb872>
</div> </div>
### NOTE: Ubuntu-Hyprland install script has its own repo now
- [`Ubuntu-Hyprland LINK`](https://github.com/JaKooLit/Ubuntu-Hyprland)
### Gallery and Videos ### Gallery and Videos
#### 🎥 Feb 2025 Video explanation of installation with preset #### 🎥 Feb 2025 Video explanation of installation with preset
- [YOUTUBE-LINK](https://youtu.be/wQ70lo7P6vA?si=_QcbrNKh_Bg0L3wC) - [YOUTUBE-LINK](https://youtu.be/wQ70lo7P6vA?si=_QcbrNKh_Bg0L3wC)
- [YOUTUBE-Hyprland-Playlist](https://youtube.com/playlist?list=PLDtGd5Fw5_GjXCznR0BzCJJDIQSZJRbxx&si=iaNjLulFdsZ6AV-t) - [YOUTUBE-Hyprland-Playlist](https://youtube.com/playlist?list=PLDtGd5Fw5_GjXCznR0BzCJJDIQSZJRbxx&si=iaNjLulFdsZ6AV-t)
- [AGS overview DEMO](https://youtu.be/zY5SLNPBJTs)
> [!IMPORTANT] > [!IMPORTANT]
> install a backup tool like `snapper` or `timeshift`. and Backup your system before installing hyprland using this script (HIGHLY RECOMMENDED). > install a backup tool like `snapper` or `timeshift`. and Backup your system before installing hyprland using this script (**HIGHLY RECOMMENDED**).
> [!CAUTION] > [!CAUTION]
> Download this script on a directory where you have write permissions. ie. HOME. Or any directory within your home directory. Else script will fail > Download this script on a directory where you have write permissions. ie. HOME. Or any directory within your home directory. Else script will fail
#### ⚠️ Pre-requisites and VERY Important! ### #### ⚠️ Pre-requisites and VERY Important
- Do not run this installer as sudo or as root - Do not run this installer as sudo or as root
- This Installer requires a user with a priviledge to install packages - This Installer requires a user with a priviledge to install packages
- Needs a Debian 13 Trixie or greater. As it needs a newer wayland packages! I have tried on Stable Debian 12 Bookworm in which, Hyprland wont build. - Needs a Debian 13 Trixie or greater. As it needs a newer wayland packages!
- edit your /etc/apt/sources.list and remove # on lines with deb-src to enable source packaging else will not install properly especially Hyprland - edit your `/etc/apt/sources.list` and **remove** `#` on lines with `deb-src` to enable source packaging else will not install properly especially Hyprland
```bash ```bash
sudo nano /etc/apt/sources.list sudo nano /etc/apt/sources.list
``` ```
- delete # on the lines with 'deb-src'
- delete # on the lines with 'deb-src'
- ensure to allow to install non-free drivers especially for users with NVIDIA gpus. You can also install non-free drivers if required. Edit install-scripts/nvidia.sh and change the nvidia stuff's if required - ensure to allow to install non-free drivers especially for users with NVIDIA gpus. You can also install non-free drivers if required. Edit install-scripts/nvidia.sh and change the nvidia stuff's if required
### 🪧🪧🪧 ANNOUNCEMENT 🪧🪧🪧 ### 🪧🪧🪧 ANNOUNCEMENT 🪧🪧🪧
- 10 OCTOBER 2025 Update! [Debian-Hyprland Changelogs](https://github.com/JaKooLit/Debian-Hyprland/blob/main/CHANGELOGS.md)
- Hyprland-Debian nows builds 0.51.1 from source!
- The installer now can be used to install newer releases later - 10 October 2025 Update!
- Hyprland-Debian nows builds 0.51.1 from source!
- The installer now can be used to install newer releases later
- If you are currently running 0.49, or 0.50, you can upgrade to 0.51.1 - If you are currently running 0.49, or 0.50, you can upgrade to 0.51.1
- You do not have to re-install everything, but re-running `install.sh` works also - You do not have to re-install everything, but re-running `install.sh` works also
- Intstructions are available in English and Spanish - Instructions are available in English and Spanish
- 25 July 2025 Update!
- All Hyprland and associated packages set to install using this script are downloaded and built from source (github). However, do note that it is downloaded from each individual releases. You can set versions by editing the scripts located install-scripts directory.
- These packages are NOT updated automatically. You need to manually update it yourself
-
- This Repo does not contain Hyprland Dots or configs! Pre-configured Dotfiles are on [`Hyprland-Dots`](https://github.com/JaKooLit/Hyprland-Dots/tree/Debian-Dots) . During installation, if you opt to copy pre-configured dots, it will be downloaded from that centralized repo.
- Hyprland-Dots use are constantly evolving / improving. you can check CHANGELOGS here [`Hyprland-Dots-Changelogs`](https://github.com/JaKooLit/Hyprland-Dots/wiki/Changelogs)
- Since the Hyprland-Dots are evolving, some of the screenshots maybe old
- the wallpaper offered to be downloaded towards the end is from this [`WALLPAPER-REPO`](https://github.com/JaKooLit/Wallpaper-Bank)
#### ✨ Some notes on this installer / Prerequisites #### ✨ Some notes on this installer / Prerequisites
- This script is meant to install in Debian Trixie or newer . This script Will NOT work with Bookworm
- If However, decided to try, recommend to install SDDM. Apart from GDM and SDDM, any other Login Manager may not work nor launch Hyprland. However, hyprland can be launched through tty by type Hyprland - Recommend to install SDDM. Apart from GDM and SDDM, any other Login Manager may not work nor launch Hyprland. However, hyprland can be launched through tty by type Hyprland
- 🕯️ network-manager-gnome (nm-applet) has been removed from the packages to install. This is because it is known to restart the networkmanager causing issues in the installation process. After you boot up, inorder to get the network-manager applet, install network-manager-gnome. `sudo apt install network-manager-gnome` See below if your network or wifi became unmanaged after installation - 🕯️ network-manager-gnome (nm-applet) *has been removed* from the packages to install. This is because it is known to restart the networkmanager causing issues in the installation process. After you boot up, inorder to get the network-manager applet, install network-manager-gnome. `sudo apt install network-manager-gnome` See below if your network or wifi became unmanaged after installation
- If you have nvidia, and wanted to use proprietary drivers, uninstall nouveau first (if installed). This script will be installing proprietary nvidia drivers and will not deal with removal of nouveau.
- NVIDIA users / owners, after installation, check [`THIS`](https://github.com/JaKooLit/Hyprland-Dots/wiki/Notes_to_remember#--for-nvidia-gpu-users)
- NIVIDIA users: Strongly suggest you visit this site and install current drivers for newer GPUs. [`NVIDIA-Drivers`](https://github.com/mexersus/debian-nvidia-drivers)
#### ✨ Costumize the packages to be installed
- inside the install-scripts directory, you can edit 01-hypr-pkgs.sh. Do not edit 00-dependencies.sh unless you know what you are doing. Care though as the Hyprland Dots may not work properly!
### 🚩 changing login manager to SDDM ### 🚩 changing login manager to SDDM
- if you really want to change login manager, there are couple of things you need to carry out before running this install script - if you really want to change login manager, there are couple of things you need to carry out before running this install script
- first install sddm. the no-install-recommends is suggested else it will pull lots of plasma depencies. - first install sddm. the no-install-recommends is suggested else it will pull lots of plasma depencies.
```bash ```bash
sudo apt install --no-install-recommends -y sddm sudo apt install --no-install-recommends -y sddm
``` ```
- then ran `sudo dpkg-reconfigure sddm` choose sddm and then reboot. - then ran `sudo dpkg-reconfigure sddm` choose sddm and then reboot.
- once reboot done, you can ran the script and choose sddm & sddm theme - once reboot done, you can ran the script and choose sddm & sddm theme
- [LINK](https://www.simplified.guide/ubuntu/switch-to-gdm) for some guide - [LINK](https://www.simplified.guide/ubuntu/switch-to-gdm) for some guide
#### 💫 SDDM and GTK Themes offered #### 💫 SDDM and GTK Themes offered
- If you opted to install SDDM theme, here's the [`LINK`](https://github.com/JaKooLit/simple-sddm-2) which is a modified fork of [`LINK`](https://github.com/Keyitdev/sddm-astronaut-theme)
- If you opted to install GTK Themes, Icons, here's the [`LINK`](https://github.com/JaKooLit/GTK-themes-icons). This also includes Bibata Modern Ice cursor.
#### 🔔 NOTICE TO NVIDIA OWNERS ### - If you opted to install SDDM theme, here's the [LINK](https://github.com/JaKooLit/simple-sddm-2) which is a modified fork of [LINK](https://github.com/Keyitdev/sddm-astronaut-theme)
- by default it is installing the latest and newest nvidia drivers. If you have an older nvidia-gpu (GTX 800 series and older), check out nvidia-debian website [`LINK`](https://wiki.debian.org/NvidiaGraphicsDrivers) and edit nvidia.sh in install-scripts directory to install proper gpu driver - If you opted to install GTK Themes, Icons, here's the [LINK](https://github.com/JaKooLit/GTK-themes-icons). This also includes Bibata Modern Ice cursor.
#### 🔔 NOTICE TO NVIDIA OWNERS ###
- By default it is installing the latest and newest nvidia drivers. If you have an older nvidia-gpu (GTX 800 series and older), check out nvidia-debian website [LINK](https://wiki.debian.org/NvidiaGraphicsDrivers) and edit nvidia.sh in install-scripts directory to install proper gpu driver
- If you have nvidia, and wanted to use proprietary drivers, uninstall nouveau first (if installed). This script will be installing proprietary nvidia drivers and will not deal with removal of nouveau.
- NVIDIA users / owners, after installation, check [`THIS`](https://github.com/JaKooLit/Hyprland-Dots/wiki/Notes_to_remember#--for-nvidia-gpu-users)
> [!IMPORTANT] > [!IMPORTANT]
> If you want to use nouveau driver, Dont select Nvidia in the options. This is because the nvidia installer part, it will blacklist nouveau. Hyprland will still be installed but it will skip blacklisting nouveau. > If you wish to use the nouveau driver (installed by default in Debian), be sure to not select "Nvidia" in the installation options.
> If you select this option, the NVIDIA installer part will attempt to blacklist nouveau; while Hyprland will still be installed, it will skip blacklisting nouveau if you don't select the NVIDIA option.
> [!IMPORTANT]
> Another important note for nvidia owners
> If you have nvidia, by default debian is installing nouveau or open-source nvidia driver. If you want to keep the default nvidia driver installed by Debian, Dont select Nvidia in the options.
## ✨ Auto clone and install ## ✨ Auto clone and install
> [!CAUTION] >
> [!CAUTION]
> If you are using FISH SHELL, DO NOT use this function. Clone and run install.sh instead > If you are using FISH SHELL, DO NOT use this function. Clone and run install.sh instead
- you can use this command to automatically clone the installer and ran the script for you - you can use this command to automatically clone the installer and ran the script for you
- NOTE: `curl` package is required before running this command - NOTE: `curl` package is required before running this command
```bash ```bash
sh <(curl -L https://raw.githubusercontent.com/JaKooLit/Debian-Hyprland/main/auto-install.sh) sh <(curl -L https://raw.githubusercontent.com/JaKooLit/Debian-Hyprland/main/auto-install.sh)
``` ```
## ✨ to use this script ## ✨ to use this script
> clone this repo (latest commit only) by using git. Change directory, make executable and run the script clone this repo, change directory, make executable and run the script:
```bash ```bash
git clone --depth=1 https://github.com/JaKooLit/Debian-Hyprland.git ~/Debian-Hyprland git clone --depth=1 https://github.com/JaKooLit/Debian-Hyprland.git ~/Debian-Hyprland
cd ~/Debian-Hyprland cd ~/Debian-Hyprland
@ -152,30 +148,16 @@ chmod +x install.sh
./install.sh ./install.sh
``` ```
### 💥 💥 UNINSTALL SCRIPT / Removal of Config Files
- 11 March 2025, due to popular request, created a guided `uninstall.sh` script. USE this with caution as it may render your system unstable.
- I will not be responsible if your system breaks
- The best still to revert to previous state of your system is via timeshift of snapper
#### ✨ for ZSH and OH-MY-ZSH installation
> installer should auto change your default shell to zsh. However, if it does not, do this
```bash
chsh -s $(which zsh)
zsh
source ~/.zshrc
```
- reboot or logout
- by default `xiong-chiamiov-plus` theme is installed. You can find more themes from this [`OH-MY-ZSH-THEMES`](https://github.com/ohmyzsh/ohmyzsh/wiki/Themes)
- to change the theme, edit ~/.zshrc ZSH_THEME="desired theme"
#### ✨ TO DO once installation done and dotfiles copied #### ✨ TO DO once installation done and dotfiles copied
- SUPER H for HINT or click on the waybar HINT! Button
- Head over to [`FAQ`](https://github.com/JaKooLit/Hyprland-Dots/wiki/FAQ) and [`TIPS`](https://github.com/JaKooLit/Hyprland-Dots/wiki/TIPS)
- SUPER H for HINT or click on the waybar HINT! Button
- Head over to [`FAQ`](https://github.com/JaKooLit/Hyprland-Dots/wiki/FAQ) and [`TIPS`](https://github.com/JaKooLit/Hyprland-Dots/wiki/TIPS)
- Head over to [KooL Hyprland WIKI](https://github.com/JaKooLit/Hyprland-Dots/wiki)
- if you installed in your laptop and Brightness and Keyboard brightness does not work you can execute this command `sudo chmod +s $(which brightnessctl)` - if you installed in your laptop and Brightness and Keyboard brightness does not work you can execute this command `sudo chmod +s $(which brightnessctl)`
#### ✨ Packages that are manually downloaded and build. These packages will not be updated by apt and have to be manually updated #### ✨ Packages that are manually downloaded and build. These packages will not be updated by apt and have to be manually updated
- Asus ROG asusctl [`LINK`](https://gitlab.com/asus-linux/asusctl) and superfxctl [`LINK`](https://gitlab.com/asus-linux/supergfxctl) - Asus ROG asusctl [`LINK`](https://gitlab.com/asus-linux/asusctl) and superfxctl [`LINK`](https://gitlab.com/asus-linux/supergfxctl)
- swww [`LINK`](https://github.com/Horus645/swww) - swww [`LINK`](https://github.com/Horus645/swww)
- hyprlock [`LINK`](https://github.com/hyprwm/hyprlock) #22 Aug 2024 - still not on repo - hyprlock [`LINK`](https://github.com/hyprwm/hyprlock) #22 Aug 2024 - still not on repo
@ -186,55 +168,58 @@ source ~/.zshrc
> [!TIP] > [!TIP]
> To update to latest packages, re-running this script will auto update all. Script is configured to pull latest packages build for you. > To update to latest packages, re-running this script will auto update all. Script is configured to pull latest packages build for you.
#### 🤬 FAQ ### 💥 UNINSTALL SCRIPT / Removal of Config Files
#### Most common question I got is, Hey Ja, Why the heck it is taking long time to install? Other distro like Arch its only a minute or two. Why here takes like forever?!?!?!
- Well, most of the core packages are downloaded and Build and compiled from SOURCE. Unlike Other distros, they already have prepacked binary that can just download and install. - 11 March 2025, due to popular request, created a guided `uninstall.sh` script. USE this with caution as it may render your system unstable.
- I will not be responsible if your system breaks
- The best still to revert to previous state of your system is via **timeshift or snapper**
#### 🤬 FAQ
**Most common question I got is, Hey Ja, Why the heck it is taking long time to install? Other distro like Arch its only a minute or two. Why here takes like forever?!?!?**
- Well, most of the core packages are downloaded and Build and compiled from *SOURCE*. Unlike Other distros, they already have prepacked binary that can just download and install.
## 🛎 ***DEBIAN Hyprland Dots UPDATING NOTES***
## 🛎 *** DEBIAN Hyprland Dots UPDATING NOTES ***
> [!CHANGE]
- With this new update to Debian-Hyprland the current Hyprland-Dots are now compatible with Debian. This applies only to Debian, not ubuntu. - With this new update to Debian-Hyprland the current Hyprland-Dots are now compatible with Debian. This applies only to Debian, not ubuntu.
> [!NOTE] > [!NOTE]
> This script does not setup audio. Kindly set up. If you have not, I recommend pipewire. `sudo apt install -y pipewire` > This script does not setup audio. Kindly set up. If you have not, I recommend pipewire. `sudo apt install -y pipewire`
#### 🎞️ AGS Overview DEMO
- in case you wonder, here is a short demo of AGS overview [Youtube LINK](https://youtu.be/zY5SLNPBJTs)
#### ✨ TO DO once installation done and dotfiles copied
- SUPER H for HINT or click on the waybar HINT! Button
- Head over to [KooL Hyprland WIKI](https://github.com/JaKooLit/Hyprland-Dots/wiki)
#### 🙋 Got a questions regarding the Hyprland Dots or configurations? 🙋 #### 🙋 Got a questions regarding the Hyprland Dots or configurations? 🙋
- Head over to wiki Link [`WIKI`](https://github.com/JaKooLit/Hyprland-Dots/wiki)
Head over to wiki Link [`WIKI`](https://github.com/JaKooLit/Hyprland-Dots/wiki)
#### ⌨ Keybinds #### ⌨ Keybinds
- Keybinds [`CLICK`](https://github.com/JaKooLit/Hyprland-Dots/wiki/Keybinds)
Keybinds [`CLICK`](https://github.com/JaKooLit/Hyprland-Dots/wiki/Keybinds)
> [!TIP] > [!TIP]
> KooL Hyprland has a searchable keybind function via rofi. (SUPER SHIFT K) or right click the `HINTS` waybar button > KooL Hyprland has a searchable keybind function via rofi. (SUPER SHIFT K) or right click the `HINTS` waybar button
#### 🙋 👋 Having issues or questions? #### 🙋 👋 Having issues or questions?
- for the install part, kindly open issue on this repo - for the install part, kindly open issue on this repo
- for the Pre-configured Hyprland dots / configuration, submit issue [`here`](https://github.com/JaKooLit/Hyprland-Dots/issues) - for the Pre-configured Hyprland dots / configuration, submit issue [`here`](https://github.com/JaKooLit/Hyprland-Dots/issues)
#### 🔧 Proper way to re-installing a particular script from install-scripts directory #### 🔧 Proper way to re-installing a particular script from install-scripts directory
- CD into Debian-Hyprland DIrectory and then ran the below command.
- CD into Debian-Hyprland directory and then ran the below command.
- i.e. `./install-scripts/gtk-themes.sh` - to reinstall GTK Themes or - i.e. `./install-scripts/gtk-themes.sh` - to reinstall GTK Themes or
- `./install-scripts/sddm.sh` - to reinstall sddm - `./install-scripts/sddm.sh` - to reinstall sddm
> [!IMPORTANT] > [!IMPORTANT]
> DO NOT CD into install-scripts directory as script as it will fail. Scripts are designed to ran outside install-scripts directory for installation logging purposes. > DO NOT CD into install-scripts directory as script as it will fail. Scripts are designed to ran outside install-scripts directory for installation logging purposes.
#### 🎞️ AGS Overview DEMO #### 🛣️ Roadmap
- in case you wonder, here is a short demo of AGS overview [Youtube LINK](https://youtu.be/zY5SLNPBJTs)
#### 🛣️ Roadmap:
- [ ] possibly adding gruvbox themes, cursors, icons - [ ] possibly adding gruvbox themes, cursors, icons
### ⁉️ KNOWN ISSUE
- [ ] hypridle wont build (Feb 2025)
#### ❗ some known issues for nvidia #### ❗ some known issues for nvidia
- reports from members of my discord, states that some users of nvidia are getting stuck on sddm login. credit to @Kenni Fix stated was
- reports from members of my discord, states that some users of nvidia are getting stuck on sddm login. credit to @Kenni Fix stated was
``` ```
while in sddm press ctrl+alt+F2 or F3 while in sddm press ctrl+alt+F2 or F3
log into your account log into your account
@ -243,33 +228,38 @@ log into your account
`ls -l /dev/dri/by-path` to check where the symlink points to `ls -l /dev/dri/by-path` to check where the symlink points to
) )
``` ```
- add "env = WLR_DRM_DEVICES,/dev/dri/cardX" to the ENVvariables config `~/.config/hypr/UserConfigs/ENVariables.conf` ; X being where the symlink of the gpu points to - add "env = WLR_DRM_DEVICES,/dev/dri/cardX" to the ENVvariables config `~/.config/hypr/UserConfigs/ENVariables.conf` ; X being where the symlink of the gpu points to
- more info from the hyprland wiki [`Hyprland Wiki Link`](https://wiki.hyprland.org/FAQ/#my-external-monitor-is-blank--doesnt-render--receives-no-signal-laptop) - more info from the hyprland wiki [`Hyprland Wiki Link`](https://wiki.hyprland.org/FAQ/#my-external-monitor-is-blank--doesnt-render--receives-no-signal-laptop)
- reports from a member of discord for Nvidia for additional env's - reports from a member of discord for Nvidia for additional env's
- remove # from the following env's on - remove # from the following env's on
``` ```
env = GBM_BACKEND,nvidia-drm env = GBM_BACKEND,nvidia-drm
env = WLR_RENDERER_ALLOW_SOFTWARE,1 env = WLR_RENDERER_ALLOW_SOFTWARE,1
``` ```
#### 🫥 Improving performance for Older Nvidia Cards using driver 470 #### 🫥 Improving performance for Older Nvidia Cards using driver 470
- [`SEE HERE`](https://github.com/JaKooLit/Hyprland-Dots/discussions/123#discussion-6035205)
- [`SEE HERE`](https://github.com/JaKooLit/Hyprland-Dots/discussions/123#discussion-6035205)
#### ❗ other known issues #### ❗ other known issues
> [!NOTE] > [!NOTE]
> Auto start of Hyprland after login (no SDDM or GDM or any login managers) > Auto start of Hyprland after login (no SDDM or GDM or any login managers)
- This was disabled a few days ago. (19 May 2024). This was because some users, after they used the Distro-Hyprland scripts with other DE (gnome-wayland or plasma-wayland), if they choose to login into gnome-wayland for example, Hyprland is starting.
- This was disabled a few days ago. (19 May 2024). This was because some users, after they used the Distro-Hyprland scripts with other DE (gnome-wayland or plasma-wayland), if they choose to login into gnome-wayland for example, Hyprland is starting.
- to avoid this, I disabled it. You can re-enable again by editing `~/.zprofile` . Remove all the # on the first lines - to avoid this, I disabled it. You can re-enable again by editing `~/.zprofile` . Remove all the # on the first lines
- [ ] ROFI issues (scaling, unexplained scaling etc). This is most likely to experience if you are installing on a system where rofi is currently installed. To fix it uninstall rofi and install rofi-wayland . `sudo apt autoremove rofi` . - [ ] ROFI issues (scaling, unexplained scaling etc). This is most likely to experience if you are installing on a system where rofi is currently installed. To fix it uninstall rofi and install rofi-wayland . `sudo apt autoremove rofi` .
- Install rofi-wayland with - Install rofi-wayland with
```bash ```bash
cd ~/Debian-Hyprland cd ~/Debian-Hyprland
./install-scripts/rofi-wayland.sh ./install-scripts/rofi-wayland.sh
``` ```
- [ ] Rofi-wayland is compatible with x11 so no need to worry. - [ ] Rofi-wayland is compatible with x11 so no need to worry.
- [ ] Does not work in Debian Bookworm - [ ] Does not work in Debian Bookworm
@ -277,26 +267,27 @@ cd ~/Debian-Hyprland
- [ ] Installing SDDM if or any other Login Manager installed. See [`Issue 2 - SDDM`](https://github.com/JaKooLit/Debian-Hyprland/issues/2) - [ ] Installing SDDM if or any other Login Manager installed. See [`Issue 2 - SDDM`](https://github.com/JaKooLit/Debian-Hyprland/issues/2)
- [ ] network is down or become unmanaged [`This`](https://askubuntu.com/questions/71159/network-manager-says-device-not-managed) might help - [ ] network is down or become unmanaged [`This`](https://askubuntu.com/questions/71159/network-manager-says-device-not-managed) might help
#### 📒 Final Notes #### 📒 Final Notes
- join my discord channel [`Discord`](https://discord.com/invite/kool-tech-world) - join my discord channel [`Discord`](https://discord.com/invite/kool-tech-world)
- Feel free to copy, re-distribute, and use this script however you want. Would appreciate if you give me some loves by crediting my work :) - Feel free to copy, re-distribute, and use this script however you want. Would appreciate if you give me some loves by crediting my work :)
#### ✍️ Contributing #### ✍️ Contributing
- As stated above, these script does not contain actual config files. These are only the installer of packages - As stated above, these script does not contain actual config files. These are only the installer of packages
- If you want to contribute and/or test the Hyprland-Dotfiles (development branch), [`Hyprland-Dots-Development`](https://github.com/JaKooLit/Hyprland-Dots/tree/development) - If you want to contribute and/or test the Hyprland-Dotfiles (development branch), [`Hyprland-Dots-Development`](https://github.com/JaKooLit/Hyprland-Dots/tree/development)
- Want to contribute on KooL-Hyprland-Dots Click [`HERE`](https://github.com/JaKooLit/Hyprland-Dots/blob/main/CONTRIBUTING.md) for a guide how to contribute - Want to contribute on KooL-Hyprland-Dots Click [`HERE`](https://github.com/JaKooLit/Hyprland-Dots/blob/main/CONTRIBUTING.md) for a guide how to contribute
- Want to contribute on This Installer? Click [`HERE`](https://github.com/JaKooLit/Debian-Hyprland/blob/main/CONTRIBUTING.md) for a guide how to contribute - Want to contribute on This Installer? Click [`HERE`](https://github.com/JaKooLit/Debian-Hyprland/blob/main/CONTRIBUTING.md) for a guide how to contribute
#### 👍👍👍 Thanks and Credits! #### 👍👍👍 Thanks and Credits
- [`Hyprland`](https://hyprland.org/) Of course to Hyprland and @vaxerski for this awesome Dynamic Tiling Manager. - [`Hyprland`](https://hyprland.org/) Of course to Hyprland and @vaxerski for this awesome Dynamic Tiling Manager.
### 💖 Support ### 💖 Support
- a Star on my Github repos would be nice 🌟 - a Star on my Github repos would be nice 🌟
- Subscribe to my Youtube Channel [YouTube](https://www.youtube.com/@Ja.KooLit) - Subscribe to my Youtube Channel [YouTube](https://www.youtube.com/@Ja.KooLit)
- you can also give support through coffee's or btc 😊 - you can also give support through coffee's or btc 😊
@ -311,14 +302,10 @@ Or you can donate cryto on my btc wallet :)
![Bitcoin](https://github.com/user-attachments/assets/7ed32f8f-c499-46f0-a53c-3f6fbd343699) ![Bitcoin](https://github.com/user-attachments/assets/7ed32f8f-c499-46f0-a53c-3f6fbd343699)
#### 📹 Youtube videos (Click to view and watch the playlist) 📹 #### 📹 Youtube videos (Click to view and watch the playlist) 📹
[![Youtube Playlist Thumbnail](https://raw.githubusercontent.com/JaKooLit/screenshots/main/Youtube.png)](https://youtube.com/playlist?list=PLDtGd5Fw5_GjXCznR0BzCJJDIQSZJRbxx&si=iaNjLulFdsZ6AV-t) [![Youtube Playlist Thumbnail](https://raw.githubusercontent.com/JaKooLit/screenshots/main/Youtube.png)](https://youtube.com/playlist?list=PLDtGd5Fw5_GjXCznR0BzCJJDIQSZJRbxx&si=iaNjLulFdsZ6AV-t)
## 🥰🥰 💖💖 👍👍👍 ## 🥰🥰 💖💖 👍👍👍
[![Stargazers over time](https://starchart.cc/JaKooLit/Debian-Hyprland.svg?variant=adaptive)](https://starchart.cc/JaKooLit/Debian-Hyprland)
[![Stargazers over time](https://starchart.cc/JaKooLit/Debian-Hyprland.svg?variant=adaptive)](https://starchart.cc/JaKooLit/Debian-Hyprland)

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

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# 💫 https://github.com/JaKooLit 💫 # # 💫 https://github.com/JaKooLit 💫 #
# Hyprland-Dots Packages # # Hyprland-Dots Packages #
# edit your packages desired here. # edit your packages desired here.
# WARNING! If you remove packages here, dotfiles may not work properly. # WARNING! If you remove packages here, dotfiles may not work properly.
# and also, ensure that packages are present in Debian Official Repo # and also, ensure that packages are present in Debian Official Repo
@ -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}
@ -140,4 +143,5 @@ source "$HOME/.cargo/env"
## making brightnessctl work ## making brightnessctl work
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=(
@ -46,11 +54,20 @@ MLOG="install-$(date +%d-%H%M%S)_ags2.log"
# Check if AGS is installed # Check if AGS is installed
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
@ -106,4 +211,4 @@ else
exit 1 exit 1
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.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
@ -63,4 +63,4 @@ else
echo -e "${ERROR} Download failed for ${YELLOW}aquamarine $tag${RESET}" 2>&1 | tee -a "$LOG" echo -e "${ERROR} Download failed for ${YELLOW}aquamarine $tag${RESET}" 2>&1 | tee -a "$LOG"
fi fi
printf "\n%.0s" {1..2} printf "\n%.0s" {1..2}

View File

@ -3,19 +3,22 @@
# Hyprland-Dots to download from main # # Hyprland-Dots to download from main #
#specific branch or release #specific branch or release
dots_tag="Debian-Dots" dots_tag="main"
## 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
# Check if Hyprland-Dots exists # Check if Hyprland-Dots exists
@ -23,18 +26,18 @@ printf "${NOTE} Cloning and Installing ${SKY_BLUE}KooL's Hyprland Dots for Debia
# Check if Hyprland-Dots exists # Check if Hyprland-Dots exists
if [ -d Hyprland-Dots-Debian ]; then if [ -d Hyprland-Dots-Debian ]; then
cd Hyprland-Dots-Debian cd Hyprland-Dots-Debian
git stash && git pull git stash && git pull
chmod +x copy.sh
./copy.sh
else
if git clone --depth=1 -b $dots_tag https://github.com/JaKooLit/Hyprland-Dots Hyprland-Dots-Debian; then
cd Hyprland-Dots-Debian || exit 1
chmod +x copy.sh chmod +x copy.sh
./copy.sh ./copy.sh
else else
echo -e "$ERROR Can't download ${YELLOW}KooL's Hyprland-Dots-Debian${RESET}" if git clone --depth=1 https://github.com/JaKooLit/Hyprland-Dots Hyprland-Dots-Debian; then
fi cd Hyprland-Dots-Debian || exit 1
chmod +x copy.sh
./copy.sh
else
echo -e "$ERROR Can't download ${YELLOW}KooL's Hyprland-Dots-Debian${RESET}"
fi
fi fi
printf "\n%.0s" {1..2} printf "\n%.0s" {1..2}

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
@ -75,4 +75,4 @@ else
echo -e "${ERROR} Download failed for ${YELLOW}hyprgraphics $graphics${RESET}" 2>&1 | tee -a "$LOG" echo -e "${ERROR} Download failed for ${YELLOW}hyprgraphics $graphics${RESET}" 2>&1 | tee -a "$LOG"
fi fi
printf "\n%.0s" {1..2} printf "\n%.0s" {1..2}

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
@ -62,4 +62,4 @@ else
echo -e "${ERROR} Download failed for ${YELLOW}hyprland-protocols tag${RESET}" 2>&1 | tee -a "$LOG" echo -e "${ERROR} Download failed for ${YELLOW}hyprland-protocols tag${RESET}" 2>&1 | tee -a "$LOG"
fi fi
printf "\n%.0s" {1..2} printf "\n%.0s" {1..2}

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

View File

@ -2,36 +2,38 @@
# 💫 https://github.com/JaKooLit 💫 # # 💫 https://github.com/JaKooLit 💫 #
# SWWW - Wallpaper Utility # # SWWW - Wallpaper Utility #
# specific branch or release
swww_tag="v0.11.2"
# Check if 'swww' is installed # Check if 'swww' is installed
if command -v swww &>/dev/null; then if command -v swww &>/dev/null; then
SWWW_VERSION=$(swww -V | awk '{print $NF}') SWWW_VERSION=$(swww -V | awk '{print $NF}')
if [[ "$SWWW_VERSION" == "0.9.5" ]]; then if [[ "$SWWW_VERSION" == "$swww_tag" ]]; then
echo -e "${OK} ${MAGENTA}swww v0.9.5${RESET} is already installed. Skipping installation." echo -e "${OK} ${MAGENTA}swww ${swww_tag}${RESET} is already installed. Skipping installation."
exit 0 exit 0
fi fi
else else
echo -e "${NOTE} ${MAGENTA}swww${RESET} is not installed. Proceeding with installation." echo -e "${NOTE} ${MAGENTA}swww${RESET} is not installed. Proceeding with installation."
fi fi
swww=( swww=(
liblz4-dev liblz4-dev
) )
# specific branch or release
swww_tag="v0.9.5"
## 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
@ -80,19 +82,19 @@ if [ -f "$file2" ]; then
fi fi
# Copy binaries to /usr/bin/ # Copy binaries to /usr/bin/
sudo cp -r target/release/swww /usr/bin/ 2>&1 | tee -a "$MLOG" sudo cp -r target/release/swww /usr/bin/ 2>&1 | tee -a "$MLOG"
sudo cp -r target/release/swww-daemon /usr/bin/ 2>&1 | tee -a "$MLOG" sudo cp -r target/release/swww-daemon /usr/bin/ 2>&1 | tee -a "$MLOG"
# Copy bash completions # Copy bash completions
sudo mkdir -p /usr/share/bash-completion/completions 2>&1 | tee -a "$MLOG" sudo mkdir -p /usr/share/bash-completion/completions 2>&1 | tee -a "$MLOG"
sudo cp -r completions/swww.bash /usr/share/bash-completion/completions/swww 2>&1 | tee -a "$MLOG" sudo cp -r completions/swww.bash /usr/share/bash-completion/completions/swww 2>&1 | tee -a "$MLOG"
# Copy zsh completions # Copy zsh completions
sudo mkdir -p /usr/share/zsh/site-functions 2>&1 | tee -a "$MLOG" sudo mkdir -p /usr/share/zsh/site-functions 2>&1 | tee -a "$MLOG"
sudo cp -r completions/_swww /usr/share/zsh/site-functions/_swww 2>&1 | tee -a "$MLOG" sudo cp -r completions/_swww /usr/share/zsh/site-functions/_swww 2>&1 | tee -a "$MLOG"
# Moving logs into main Install-Logs # Moving logs into main Install-Logs
mv "$MLOG" ../Install-Logs/ || true mv "$MLOG" ../Install-Logs/ || true
cd - || exit 1 cd - || exit 1
printf "\n%.0s" {1..2} printf "\n%.0s" {1..2}

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
) )