Dotfiles/desktopenvs/hyprlua/scripts
Amir Alexander Abdelbaki 3d75182b54 feat(hyprlua): add astal-menu popup, replacing nwg-dock + nwg-drawer
A touch-friendly GTK4 popup control centre (Python + PyGObject, wlr-layer-shell)
launched from the EWW bar or Super+D. Replaces nwg-dock and nwg-drawer.

Layout: a floating, drawn-bordered panel (anchored top-centre so it never blocks
the rest of the screen) with a 2x2 quad grid over a full-width app drawer, plus a
top taskbar. Any quad expands over the others; the drawer expands to the bottom.

Modules:
- Location  — static OSM map (backend/staticmap.py) on IP geolocation
              (libshumate won't paint tiles in this env; shumate-demo is blank too)
- Weather   — wttr.in ANSI art rendered via an SGR parser into a TextView
- Bluetooth — AstalBluetooth: discovery/connect/disconnect + local history
- Network   — AstalNetwork wifi + nmcli/ip/ss for IP, DHCP/manual, routes, ports,
              public IP; per-feature toggles
- Taskbar   — open windows from hyprctl, grouped by app with pop-out per instance
- Favorites — pinned apps (right-click/long-press to pin) atop the app drawer

Notes:
- Frontend is Python/GTK4, not Lua: lgi/Astal-Lua are GTK3-only.
- Module borders are drawn with a Cairo overlay (lib/border.py); this GTK build's
  renderer skips CSS border/background on plain container widgets.
- Consumes Astal GObject libs (io/apps/network/bluetooth) via introspection.

Wiring: autostart + Super+D/Super+Shift+A binds, EWW launcher button in all three
bar variants, apply-theme.sh (_colors.css), installer packages, config-updater.
drawer.sh moved to scripts/deprecated/.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 00:11:39 +02:00
..
deprecated feat(hyprlua): add astal-menu popup, replacing nwg-dock + nwg-drawer 2026-07-05 00:11:39 +02:00
python feat(hyprlua/niri): webcam presence detection + systemd-inhibit idle/caffeine 2026-06-11 14:50:36 +02:00
workspacefocus fixed workspace navigation 2026-05-19 18:26:28 +02:00
_toggle_Template.tmplsh feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
activewindow chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
amssh feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
astal-menu-start.sh feat(hyprlua): add astal-menu popup, replacing nwg-dock + nwg-drawer 2026-07-05 00:11:39 +02:00
batteryperc chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
bluetooth-applet.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
caffeine-status.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
caffeine.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
calender-fix.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
date.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
dysk-phydisks.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
enroll-biometrics.sh fix(hyprlua): only offer real capture nodes; show howdy's enroll error 2026-06-13 22:41:24 +02:00
ewwstart-niri.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
ewwstart.sh fix(eww): stop duplicate stacked bars from ewwstart race 2026-06-28 02:23:45 +02:00
filepicker-clipboard.sh fix(hyprlua): spawn filepicker floating, compact, centred on the cursor 2026-07-04 15:06:37 +02:00
foldersearch.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
frequentcommands.list feat(hyprlua): wire chamel daemon + expand frequentcommands 2026-06-11 15:54:20 +02:00
getispeed.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
getvol chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
helpmenu.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
hyprland-toggle-touchpad.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
ip chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
journal.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
menu-toggle.sh feat(hyprlua): add astal-menu popup, replacing nwg-dock + nwg-drawer 2026-07-05 00:11:39 +02:00
menu.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
monitor-manager feat(monitor-manager): write live config and resolve snap overlaps 2026-06-26 16:00:52 +02:00
monitorhandler.sh refactor(hyprlua): move hypr-usr/ into hypr/usr/ and wire sysupdate sync 2026-06-11 15:46:01 +02:00
onscreenkb.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
playerget chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
playpause.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
presence-detect.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
pwr-dmenu.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
screenrec.sh feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
screenrotationacw.sh feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
screenrotationwcw.sh feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
screenshot.sh feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
time.sh feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
timer-notify.sh.old feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
timer-pick feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
timer-run feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
timer.sh.old feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
toggle-layout.sh feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
togglebar.sh feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
togglewinbars.sh feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
ulwatchdog.sh feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
unified-rotate.sh fix(rotate): add pen/stylus rotation with explicit output mapping 2026-05-23 10:23:22 +02:00
uptime.sh feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
wallpaper-picker refactor(hyprlua): move hypr-usr/ into hypr/usr/ and wire sysupdate sync 2026-06-11 15:46:01 +02:00
windowswitcher feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
wofi-file-search.sh feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
workspace feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00