GTK4 shell configuration for AGS v3, targeting Hyprland.
- AGS v3 only
- GTK4 only
- Windows self-register on import
app.tsonly boots runtime and request handling- No deprecated APIs like
App.config,Widget.*, orUtils.exec
.
├── app.ts
├── build.sh
├── style/
│ ├── style.scss
│ ├── style.css
│ ├── _matugen.scss
│ └── _matugen.generated.scss
├── widgets/
│ ├── shell/
│ │ ├── bar/window.ts
│ │ ├── launcher/window.ts
│ │ ├── controlCenter/window.ts
│ │ ├── notifications/window.ts
│ │ ├── overview/window.ts
│ │ ├── overlay/window.ts
│ │ └── store.ts
│ └── refreshMenu/
└── scripts/
├── apply-matugen.sh
└── matugen-post-hook.sh
Install the tools used by this config:
# AGS v3
yay -S aylurs-gtk-shell
# SCSS compiler used by build.sh
sudo pacman -S sassc
# Hyprland IPC tools used by widgets/shell/store.ts
sudo pacman -S socatOptional but recommended:
yay -S ttf-nerd-fonts-symbols-monoFrom this directory (~/.config/ags):
./build.sh
ags run --gtk 4./build.sh
pkill ags || true
ags run --gtk 4app.ts imports each window module, then starts AGS:
widgets/shell/overlay/window.tswidgets/shell/bar/window.tswidgets/shell/launcher/window.tswidgets/shell/controlCenter/window.tswidgets/shell/notifications/window.tswidgets/shell/overview/window.ts
State and actions are centralized in widgets/shell/store.ts.
currently working on this
In ~/.config/hypr/hyprland.conf:
exec-once = ags run --gtk 4