Commit Graph

4 Commits (2fa3414e3135d404518462ddf1804665b1753f04)

Author SHA1 Message Date
Amir Alexander Abdelbaki 2fa3414e31 feat(hyprlua): add orbit-menu radial power/utility menu
New GTK4 layer-shell radial menu (desktopenvs/hyprlua/orbit-menu/), following
astal-menu's single-instance D-Bus daemon conventions. Super+Shift+O opens
straight into a Power ring (sleep/reboot/poweroff/soft-reboot via hyprshutdown);
Super+Ctrl+O opens the full 5-category root (Power, Tools, Scripts sourced live
from ~/Documents/Scripts, Management, and a live open-Windows list with
go-to/bring-here/close/force-kill/get-pid/send-to-workspace actions). Adds a
round launcher button to all 3 eww bar variants with matching glow/hover CSS.

Also retunes hypridle (lock 30s, sleep 1min) and adds a HibernateDelaySec
systemd-sleep.conf.d fragment (deployed by sysupdate.sh) so the machine
hibernates ~80 minutes after going idle instead of drifting to sleep indefinitely.
2026-07-17 09:51:02 +02:00
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
Amir Alexander Abdelbaki 7fd0e37061 refactor(hyprlua): move hypr-usr/ into hypr/usr/ and wire sysupdate sync
Device-specific Lua configs (monitors, binds, input, etc.) previously lived
in a top-level hypr-usr/ sibling to hypr/. They now live inside hypr/usr/
so all hypr-related configs sit under one directory tree.

- git mv hypr-usr/ → hypr/usr/
- hyprland.lua: require() calls updated to require("usr.*")
- input.lua: require("input-device-exceptions") → require("usr.input-device-exceptions")
- hyprpaper.conf + monitorhandler.sh + wallpaper-picker: wallpaper.conf path
  updated from ~/.config/wallpaper.conf → ~/.config/hypr/usr/wallpaper.conf
- monitorhandler.sh: fix stale desktopenvs/hyprland/ → desktopenvs/hyprlua/
- binds.lua: edit-binds keybind path corrected to ~/.config/hypr/usr/binds.lua
- helpmenu.sh: update binds.lua source path
- updater.conf: SOURCE_BASE fixed (hyprland→hyprlua), config hypr except usr,
  remove flat hypr-usr entry
- update-configs.sh: add "except <subdirs>" support for the config type
- hyprlua.sh installer: remove now-redundant hypr-usr copy lines
- migrate-hyprland-to-hyprlua.sh: deploy from hypr/usr/ instead of hypr-usr/
- sysupdate.sh: add CONFIG SYNC section with _migrate_hypr_usr() which moves
  old flat-layout files into usr/ (case 1) or copies fresh from dotfiles when
  no local config exists (case 2); fallback copy preserves hypr/usr/

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-11 15:46:01 +02:00
Amir Alexander Abdelbaki b629697ddd feat: add hyprlua config set and migrate hyprland envvars to dedicated file
Duplicates desktopenvs/hyprland/ as desktopenvs/hyprlua/ and converts all
Hyprland-specific configs (.conf) to Lua (.lua) using the 0.55+ hl.* API:
hyprland.lua, envvars.lua, monitors.lua, input.lua, autostart.lua,
windowrules.lua, binds.lua. Non-Hyprland tool configs (hyprpaper, hyprlock,
hypridle, hyprtoolkit) remain as .conf. Adds hyprlua.sh installer (user-side
.lua files install to ~/.config/hypr/ for require() resolution) and registers
HyprLua as the recommended DE option in tui-install.sh, marking the old
hyprlang-based Hyprland install as legacy.

Also consolidates hyprland (legacy) env vars into hypr-usr/envvars.conf,
removing duplicates from hyprland.conf and monitors.conf.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 08:50:23 +02:00