30 Commits

Author SHA1 Message Date
Ja.KooLit
fcf533f857 Merge pull request #359 from JaKooLit/dwilliam62-patch-discord-link
Update Discord invite link in README
2026-01-23 15:29:22 +00:00
Donald Williams
4bd1e18e6e Update Discord invite link in README
Fixing discord link after server name change broke it
2026-01-13 20:08:19 -05:00
Donald Williams
5acde89271 Merge pull request #347 from JaKooLit/development
Merge development branch to main
2025-12-11 12:00:02 -05:00
Donald Williams
7ebe599868 Merge branch 'main' into development 2025-12-11 11:54:34 -05:00
Don Williams
ae0c8b155c Updated CHANGELOG 2025-12-11 11:51:06 -05:00
Don Williams
3781f9c510 Adding qt5-quickcontrols2 to sddm.sh
A user reported in CachyOS this missing package prevented
Hyprland from starting via SDDM with simple_sddm_2 theme
Standard SDDM theme worked on.  Adding this pkg also resolved
issue

 On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   sddm.sh
2025-12-11 10:48:47 -05:00
Ahum Maitra
bbeaa681e0 docs : Fix Nvidia Spelling in README (#346) 2025-12-09 22:15:41 +09:00
Don Williams
47f4e4d7b6 Fixed AGS v1
It now does the following:
◦  Clone upstream AGS 1.9.0.
◦  Stub out PAM/GUtils via pam.ts.
◦  Build and install AGS.
◦  Install the known-good launcher from install-scripts/ags.launcher.com.github.Aylur.ags.
◦  Point /usr/local/bin/ags at that launcher.

 On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   install-scripts/ags.sh
2025-11-14 02:09:16 -05:00
Don Williams
23f52b3f00 Saving working script before adding to AGS.SH
On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	new file:   install-scripts/ags.launcher.com.github.Aylur.ags
2025-11-14 02:04:49 -05:00
Don Williams
956fb369b5 Fixing mesaon build errors 2025-11-14 01:17:20 -05:00
Don Williams
9cf06be539 Try again 2025-11-14 01:12:12 -05:00
Don Williams
1808001bdb Fixed syntax error 2025-11-14 01:07:36 -05:00
Don Williams
46728206a0 Patching tsconfig.json
On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   install-scripts/ags.sh
2025-11-14 01:03:18 -05:00
Don Williams
27b7ba5578 Fix attempt #2 GI_TYPELIB_PATH is read before set
On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   install-scripts/ags.sh
2025-11-14 00:43:53 -05:00
Don Williams
bcfade3e24 Checking for install triggered broken ags to start
On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   install-scripts/ags.sh
2025-11-14 00:31:38 -05:00
Don Williams
f231d77b5c Fixing ags script for overview launcher
On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   install-scripts/ags.sh
2025-11-14 00:27:51 -05:00
Don Williams
d1c0e89737 Fix to prevent 0byte ags file
On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   install-scripts/ags.sh
2025-11-13 23:26:25 -05:00
Don Williams
f1e2d27625 Fixed syntax error build failing still trying patch
On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   install-scripts/ags.sh
2025-11-13 23:04:28 -05:00
Don Williams
2789e1544c fixing AGS to install and not falsely report success
•  Added set -eo pipefail after sourcing Global_functions.sh so the script exits on failures and correctly fails when any command in a pipeline (like meson install | tee) fails.
◦  Added "ignoreDeprecations": "6.0" under compilerOptions to silence TS5107.
◦  Replaced moduleResolution "node10" with "node16" to be compatible with current TypeScript behavior.
•  The success message will now only be printed if meson actually succeeds

 On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   install-scripts/ags.sh
2025-11-13 22:59:30 -05:00
Donald Williams
560ecf3bb6 Merge pull request #325 from JaKooLit/dwilliam62-change-rofi-wayland-to-rofi
Update 01-hypr-pkgs.sh  rofii-waybar is now just rofi
2025-10-05 22:47:53 -04:00
Donald Williams
516f2e609c Update 01-hypr-pkgs.sh
Rofi wayland now merged with rofi
2025-10-05 19:31:36 -04:00
Donald Williams
66cebd2247 Merge pull request #324 from JaKooLit/yuni-fix-readme
Fixed README.md for formatting
2025-10-05 08:55:46 -04:00
mio-dokuhaki
c16b3bc2c0 Fixed README.md for formatting 2025-10-05 16:15:56 +09:00
Donald Williams
ead2235eba Merge pull request #323 from JaKooLit/yuni-fix-monitor-scripts
Fix missing monitor scripts from Fedora-Hyprland PR #234
2025-10-05 01:04:37 -04:00
mio-dokuhaki
729149b7cc Add missing monitor scripts from Fedora-Hyprland PR #234 2025-10-05 13:45:27 +09:00
Donald Williams
efba587fde Merge pull request #322 from JaKooLit/yuni-fedora234-port
Port Fedora-Hyprland PR #234 to Arch-Hyprland main
2025-10-05 00:34:54 -04:00
mio-dokuhaki
c2a30d5a08 Manually added monitor script documentation from Fedora PR #234 2025-10-05 13:06:18 +09:00
Ja.KooLit
ab31c829e2 Update quickshell.sh 2025-07-28 23:45:41 +09:00
Ja.KooLit
5b29ba38d8 Merge pull request #300 from JaKooLit/development
Development to main
2025-07-25 21:32:29 +09:00
Ja.KooLit
8813180c2d Merge pull request #289 from JaKooLit/development
Updated for new SDDM theme
2025-06-09 08:41:10 +09:00
5 changed files with 212 additions and 65 deletions

View File

@@ -1,230 +1,312 @@
## CHANGELOGS ## CHANGELOGS
## Dec 2025
Added:
- `qt5-quickcontrols2` to sddm.sh - User reported w/o this SDDM crashed on login
Fixed:
- AGS v1
- It now does the following:
- Clone upstream AGS 1.9.0.
- Stub out PAM/GUtils via pam.ts.
- Build and install AGS.
- Install the known-good launcher from install-scripts/ags.launcher.com.github.Aylur.ags.
- Points /usr/local/bin/ags at that launcher.
- AGS is no longer removed when you add quickshell.
- AGS overview is a backup if quickshell overview fails.
- meson build errors
- `rofi-wayland` package changed to 'rofi'
- Add missing monitor scripts from Fedora-Hyprland PR #234
## 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
## 17 July 2025 ## 17 July 2025
- added quickshell script to replace ags for desktop overview - added quickshell script to replace ags for desktop overview
## 08 June 2025 ## 08 June 2025
- updated SDDM theme. - updated SDDM theme.
## 20 March 2025 ## 20 March 2025
- adjusted hyprland installation script. This is great for those who are using -git packages - adjusted hyprland installation script. This is great for those who are using -git packages
- 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
## 20 Feb 2025 ## 20 Feb 2025
- Added nwg-displays for the upcoming Kools dots v2.3.12 - Added nwg-displays for the upcoming Kools dots v2.3.12
## 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
## 29 Jan 2025 ## 29 Jan 2025
- enhanced nvidia.sh to add additional systemd-bootloader entries for nvidia - enhanced nvidia.sh to add additional systemd-bootloader entries for nvidia
## 16 Jan 2025 ## 16 Jan 2025
- updated nvidia.sh to install non-git libva-nvidia-driver - updated nvidia.sh to install non-git libva-nvidia-driver
## 13 Jan 2025 ## 13 Jan 2025
- replaced polkit-gnome with hyprpolkitagent - replaced polkit-gnome with hyprpolkitagent
## 12 Jan 2025 ## 12 Jan 2025
- switch to final version of aylurs-gtk-shell-v1 - switch to final version of aylurs-gtk-shell-v1
## 11 Jan 2025 ## 11 Jan 2025
- added cachyos-hyprland-settings to uninstall - added cachyos-hyprland-settings to uninstall
## 06 Jan 2025 ## 06 Jan 2025
- added copying of modified fastfetch-compact for Arch - added copying of modified fastfetch-compact for Arch
- default theme for oh my zsh theme is now "funky" - default theme for oh my zsh theme is now "funky"
## 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
- integrated hyprcursor in Bibata Ice Cursor - integrated hyprcursor in Bibata Ice Cursor
## 15 Nov 2024 ## 15 Nov 2024
- revert Aylurs GTK Shell (AGS) to install older version - revert Aylurs GTK Shell (AGS) to install older version
- added aylurs-gtk-shell to uninstall - added aylurs-gtk-shell to uninstall
## 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
- 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
## 18 Sep 2024 ## 18 Sep 2024
- dotfiles will now be downloaded from main or master branch instead of from the releases version. - dotfiles will now be downloaded from main or master branch instead of from the releases version.
## 14 Sep 2024 ## 14 Sep 2024
- remove the final error checks instead, introduced a final check of essential packages to ran Hyprland - remove the final error checks instead, introduced a final check of essential packages to ran Hyprland
## 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
- added pulseaudio check - added pulseaudio check
- added sof-firmware - added sof-firmware
## 29 Aug 2024 ## 29 Aug 2024
- switched over to non-git wallust package - switched over to non-git wallust package
- improved indentions on some install scripts - improved indentions on some install scripts
## 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
## 26 Aug 2024 ## 26 Aug 2024
- Set to uninstall rofi as conflicts with rofi-wayland - Set to uninstall rofi as conflicts with rofi-wayland
- added nvidia_drm.fbdev=1 for grub - added nvidia_drm.fbdev=1 for grub
## 14 Aug 2024 ## 14 Aug 2024
- added archlinux-keyring on base.sh - added archlinux-keyring on base.sh
## 08 Aug 2024 ## 08 Aug 2024
- Increased to 1 sec delay for installing base-devel [commit](https://github.com/JaKooLit/Arch-Hyprland/commit/7ebfa06c3b186f9bec0bcf268fae401ba67dfc2a) - Increased to 1 sec delay for installing base-devel [commit](https://github.com/JaKooLit/Arch-Hyprland/commit/7ebfa06c3b186f9bec0bcf268fae401ba67dfc2a)
## 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
## 25 Jun 2024 ## 25 Jun 2024
- added fbdev=1 for nvidia.sh on `/etc/modprobe.d/nvidia.conf`. see here `https://wiki.hyprland.org/Nvidia/#drm-kernel-mode-setting` - added fbdev=1 for nvidia.sh on `/etc/modprobe.d/nvidia.conf`. see here `https://wiki.hyprland.org/Nvidia/#drm-kernel-mode-setting`
## 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.
- added fastfetch - added fastfetch
## 22 May 2024 ## 22 May 2024
- nwg-look is now in extra repo so replaced with nwg-look from nwg-look-bin - nwg-look is now in extra repo so replaced with nwg-look from nwg-look-bin
- change the sddm theme destination to /etc/sddm.conf.d/10-theme.conf to theme.conf.user - change the sddm theme destination to /etc/sddm.conf.d/10-theme.conf to theme.conf.user
## 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
## 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
## 08 May 2024 ## 08 May 2024
- Adjusted sddm.sh since it does not respect preset.sh - Adjusted sddm.sh since it does not respect preset.sh
- install.sh have been rearranged so it quits if user choose not to proceed - install.sh have been rearranged so it quits if user choose not to proceed
## 07 May 2024 ## 07 May 2024
- Minor typo change on nvidia.sh - Minor typo change on nvidia.sh
- switch back to cava since installing cava-git keep it hanging (see known-issue on readme) - switch back to cava since installing cava-git keep it hanging (see known-issue on readme)
## 05 May 2024 ## 05 May 2024
- switched to rofi-wayland Extra Repo - switched to rofi-wayland Extra Repo
## 04 May 2024 ## 04 May 2024
- separated fonts installation script for easy debugging - separated fonts installation script for easy debugging
## 03 May 2024 ## 03 May 2024
- 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) - Added pyprland (hyprland plugin)
## 26 Apr 2024 ## 26 Apr 2024
- Updated sddm.sh for Qt6 variant - Updated sddm.sh for Qt6 variant
## 23 Apr 2024 ## 23 Apr 2024
- Dropping swayidle and swaylock in favor of hypridle and hyprlock - Dropping swayidle and swaylock in favor of hypridle and hyprlock
## 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
## 16 Mar 2024 ## 16 Mar 2024
- added hyprcursor - added hyprcursor
## 1 Mar 2024 ## 1 Mar 2024
- replaced sddm-git with sddm - replaced sddm-git with sddm
## 11 Jan 2024 ## 11 Jan 2024
- dropped wlsunset - dropped wlsunset
## 05 Jan 2024 ## 05 Jan 2024
- Added a preset feature - Added a preset feature
- Added templates for contributing, and reporting, etc - Added templates for contributing, and reporting, etc
## 01 Jan 2024 ## 01 Jan 2024
- Re-coded complete and test - Re-coded complete and test
- Added to spice up pacman.conf including adding of ILoveCandy on it :) - Added to spice up pacman.conf including adding of ILoveCandy on it :)
## 30 Dec 2023 ## 30 Dec 2023
- Install scripts reconstructed - Install scripts reconstructed
## 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
- switched hyprland to Extra Repo hyprland (both nvidia and non-nvidia). Seeing they are updating all the time :) - switched hyprland to Extra Repo hyprland (both nvidia and non-nvidia). Seeing they are updating all the time :)
## 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
## 01 Dec 2023 ## 01 Dec 2023
- Added pipewire to install - Added pipewire to install
## 30 Nov 2023 ## 30 Nov 2023
- switched to swaylock-effects-git as non-git does not seem to work - switched to swaylock-effects-git as non-git does not seem to work
## 29 Nov 2023 ## 29 Nov 2023
- nvidia.sh edited to remove hyprland-nvidia-git as well - nvidia.sh edited to remove hyprland-nvidia-git as well
## 26 Nov 2023 ## 26 Nov 2023
- nvidia - Move to hyprland-git. see [`commit`](https://github.com/hyprwm/Hyprland/commit/cd96ceecc551c25631783499bd92c6662c5d3616) - nvidia - Move to hyprland-git. 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

View File

@@ -97,7 +97,7 @@ https://github.com/user-attachments/assets/49bc12b2-abaf-45de-a21c-67aacd9bb872
- 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 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. - 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.
#### 👀 NVidia GPU Owners. #### 👀 Nvidia GPU Owners.
- By default, nvidia-dkms will be installed. and only supports GTX 900 and newer. If required to install older driver, edit the nvidia.sh in install-scripts directory - By default, nvidia-dkms will be installed. and only supports GTX 900 and newer. If required to install older driver, edit the nvidia.sh in install-scripts directory
@@ -254,7 +254,7 @@ env = WLR_RENDERER_ALLOW_SOFTWARE,1
#### 📒 Final Notes #### 📒 Final Notes
- join my discord channel [`Discord`](https://discord.com/invite/kool-tech-world) - join my discord channel [`Discord`](https://discord.gg/RZJgC7KAKm)
- 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

View File

@@ -0,0 +1,18 @@
#!/usr/bin/gjs -m
import { exit, programArgs, programInvocationName } from "system";
import GLib from "gi://GLib";
// Ensure GI can see typelibs in /usr/local and the system girepository
GLib.setenv("GI_TYPELIB_PATH", "/usr/local/lib:/usr/lib/girepository-1.0", true);
imports.package.init({
name: "com.github.Aylur.ags",
version: "1.9.0",
prefix: "/usr/local",
libdir: "/usr/local/lib",
});
const module = await import("resource:///com/github/Aylur/ags/main.js");
const exitCode = await module.main([programInvocationName, ...programArgs]);
exit(exitCode);

View File

@@ -38,22 +38,16 @@ if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
exit 1 exit 1
fi fi
# Fail early and make pipelines fail if any command fails
set -eo pipefail
# 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)_ags.log" LOG="Install-Logs/install-$(date +%d-%H%M%S)_ags.log"
MLOG="install-$(date +%d-%H%M%S)_ags2.log" MLOG="install-$(date +%d-%H%M%S)_ags2.log"
# Check if AGS is installed # NOTE: We intentionally do NOT run `ags -v` here, because a broken AGS
if command -v ags &>/dev/null; then # installation (missing GUtils, etc.) would crash gjs and spam errors
AGS_VERSION=$(ags -v | awk '{print $NF}') # during install. We always (re)install v1.9.0 when this script is run.
if [[ "$AGS_VERSION" == "1.9.0" ]]; then
printf "${INFO} ${MAGENTA}Aylur's GTK Shell v1.9.0${RESET} is already installed. Skipping installation."
printf "\n%.0s" {1..2}
exit 0
fi
fi
# Installation of main components # Installation of main components
printf "\n%s - Installing ${SKY_BLUE}Aylur's GTK shell $ags_tag${RESET} Dependencies \n" "${NOTE}" printf "\n%s - Installing ${SKY_BLUE}Aylur's GTK shell $ags_tag${RESET} Dependencies \n" "${NOTE}"
@@ -76,35 +70,83 @@ fi
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"
printf "\n%.0s" {1..1} printf "\n%.0s" {1..1}
# Clone repository with the specified tag and capture git output into MLOG # Clone repository with the specified tag and compile AGS
if git clone --depth=1 https://github.com/JaKooLit/ags_v1.9.0.git; then if git clone --depth=1 https://github.com/JaKooLit/ags_v1.9.0.git; then
cd ags_v1.9.0 || exit 1 cd ags_v1.9.0 || exit 1
# Patch tsconfig to avoid TS5107 failure (moduleResolution=node10 deprecation)
if [ -f tsconfig.json ]; then
# 1) Ensure ignoreDeprecations is present
if ! grep -q '"ignoreDeprecations"[[:space:]]*:' tsconfig.json; then
sed -i 's/"compilerOptions":[[:space:]]*{/"compilerOptions": {\n "ignoreDeprecations": "6.0",/' tsconfig.json
fi
# 2) Bump moduleResolution from node10 to node16 if present
if grep -q '"moduleResolution"[[:space:]]*:[[:space:]]*"node10"' tsconfig.json; then
sed -i 's/"moduleResolution"[[:space:]]*:[[:space:]]*"node10"/"moduleResolution": "node16"/' tsconfig.json || true
fi
# 3) Fallback with Node to rewrite JSON if sed failed to catch patterns
if grep -q '"moduleResolution"[[:space:]]*:[[:space:]]*"node10"' tsconfig.json; then
if command -v node >/dev/null 2>&1; then
node -e '\n const fs = require("fs");\n const p = "tsconfig.json";\n const j = JSON.parse(fs.readFileSync(p, "utf8"));\n j.compilerOptions = j.compilerOptions || {};\n if (j.compilerOptions.moduleResolution === "node10") j.compilerOptions.moduleResolution = "node16";\n if (j.compilerOptions.ignoreDeprecations === undefined) j.compilerOptions.ignoreDeprecations = "6.0";\n fs.writeFileSync(p, JSON.stringify(j, null, 2));\n '
fi
fi
# Log what we ended up with for troubleshooting
echo "== tsconfig.json after patch ==" >> "$MLOG"
grep -n 'moduleResolution\|ignoreDeprecations' tsconfig.json >> "$MLOG" || true
fi
# Replace pam.ts with a stub that does NOT depend on GUtils at all.
# The desktop overview does not use PAM, and GUtils typelib support is
# inconsistent across distros, so we disable these helpers instead of
# crashing at startup when the typelib is missing.
if [ -f src/utils/pam.ts ]; then
printf "%s Replacing src/utils/pam.ts with PAM stub (no GUtils dependency)...\\n" "${NOTE}" | tee -a "$MLOG"
cat > src/utils/pam.ts <<'PAM_STUB'
// Stubbed PAM auth for AGS installed via Arch-Hyprland.
// The desktop overview does not use PAM, and GUtils typelib support
// is unreliable across distros, so we disable these helpers here.
export function authenticate(password: string): Promise<number> {
return Promise.reject(new Error("PAM authentication disabled on this system (no GUtils)"));
}
export function authenticateUser(username: string, password: string): Promise<number> {
return Promise.reject(new Error("PAM authentication disabled on this system (no GUtils)"));
}
PAM_STUB
fi
npm install npm install
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 launcher 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"
LAUNCHER="/usr/local/share/com.github.Aylur.ags/com.github.Aylur.ags"
if sudo test -f "$LAUNCHER"; then
# 1) Switch from GIRepository ESM import to GLib and drop deprecated prepend_* calls
sudo sed -i \
-e 's|^import GIR from "gi://GIRepository?version=2.0";$|import GLib from "gi://GLib";|' \
-e '/GIR.Repository.prepend_search_path/d' \
-e '/GIR.Repository.prepend_library_path/d' \
"$LAUNCHER"
# 2) Inject GI_TYPELIB_PATH export right after the GLib import
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\" + (__old ? \":\" + __old : \"\"), true);"}' "$LAUNCHER" | sudo tee "$LAUNCHER" >/dev/null
printf "${OK} AGS launcher patched.\n"
else
printf "${WARN} Launcher not found at $LAUNCHER, skipping patch.\n"
fi
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"
# Abort here on build/install failure so we do NOT install a broken launcher
# or report success when AGS binaries are missing.
mv "$MLOG" ../Install-Logs/ || true
cd ..
exit 1
fi fi
LAUNCHER_DIR="/usr/local/share/com.github.Aylur.ags"
LAUNCHER_PATH="$LAUNCHER_DIR/com.github.Aylur.ags"
sudo mkdir -p "$LAUNCHER_DIR"
# Install the known-good launcher we captured from a working system.
# This JS entry script uses GLib to set GI_TYPELIB_PATH and does not
# depend on GIRepository, which avoids missing-typelib crashes.
LAUNCHER_SRC="$SCRIPT_DIR/ags.launcher.com.github.Aylur.ags"
if [ -f "$LAUNCHER_SRC" ]; then
sudo install -m 755 "$LAUNCHER_SRC" "$LAUNCHER_PATH"
else
printf "${WARN} Saved launcher not found at %s; leaving Meson-installed launcher untouched.\\n" "$LAUNCHER_SRC" | tee -a "$MLOG"
fi
# Ensure /usr/local/bin/ags points to the JS entry script.
sudo mkdir -p /usr/local/bin
sudo ln -srf "$LAUNCHER_PATH" /usr/local/bin/ags
printf "${OK} AGS launcher installed.\\n"
# Move logs to Install-Logs directory # Move logs to Install-Logs directory
mv "$MLOG" ../Install-Logs/ || true mv "$MLOG" ../Install-Logs/ || true
cd .. cd ..

View File

@@ -7,6 +7,7 @@ sddm=(
qt6-svg qt6-svg
qt6-virtualkeyboard qt6-virtualkeyboard
qt6-multimedia-ffmpeg qt6-multimedia-ffmpeg
qt5-quickcontrols2
sddm sddm
) )
@@ -20,11 +21,14 @@ login=(
) )
## 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
@@ -32,33 +36,30 @@ if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
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
LOG="Install-Logs/install-$(date +%d-%H%M%S)_sddm.log" LOG="Install-Logs/install-$(date +%d-%H%M%S)_sddm.log"
# Install SDDM and SDDM theme # Install SDDM and SDDM theme
printf "${NOTE} Installing sddm and dependencies........\n" printf "${NOTE} Installing sddm and dependencies........\n"
for package in "${sddm[@]}"; do for package in "${sddm[@]}"; do
install_package "$package" "$LOG" install_package "$package" "$LOG"
done done
printf "\n%.0s" {1..1} printf "\n%.0s" {1..1}
# Check if other login managers installed and disabling its service before enabling sddm # Check if other login managers installed and disabling its service before enabling sddm
for login_manager in "${login[@]}"; do for login_manager in "${login[@]}"; do
if pacman -Qs "$login_manager" > /dev/null 2>&1; then if pacman -Qs "$login_manager" >/dev/null 2>&1; then
sudo systemctl disable "$login_manager.service" >> "$LOG" 2>&1 sudo systemctl disable "$login_manager.service" >>"$LOG" 2>&1
echo "$login_manager disabled." >> "$LOG" 2>&1 echo "$login_manager disabled." >>"$LOG" 2>&1
fi fi
done done
# Double check with systemctl # Double check with systemctl
for manager in "${login[@]}"; do for manager in "${login[@]}"; do
if systemctl is-active --quiet "$manager" > /dev/null 2>&1; then if systemctl is-active --quiet "$manager" >/dev/null 2>&1; then
echo "$manager is active, disabling it..." >> "$LOG" 2>&1 echo "$manager is active, disabling it..." >>"$LOG" 2>&1
sudo systemctl disable "$manager" --now >> "$LOG" 2>&1 sudo systemctl disable "$manager" --now >>"$LOG" 2>&1
fi fi
done done
@@ -67,6 +68,10 @@ printf "${INFO} Activating sddm service........\n"
sudo systemctl enable sddm sudo systemctl enable sddm
wayland_sessions_dir=/usr/share/wayland-sessions wayland_sessions_dir=/usr/share/wayland-sessions
[ ! -d "$wayland_sessions_dir" ] && { printf "$CAT - $wayland_sessions_dir not found, creating...\n"; sudo mkdir "$wayland_sessions_dir" 2>&1 | tee -a "$LOG"; } [ ! -d "$wayland_sessions_dir" ] && {
printf "$CAT - $wayland_sessions_dir not found, creating...\n"
sudo mkdir "$wayland_sessions_dir" 2>&1 | tee -a "$LOG"
}
printf "\n%.0s" {1..2} printf "\n%.0s" {1..2}