Switch brightness control from AstalBrightness to `brightnessctl` for better
hardware support, with async system sync when the shell opens. Also change
default launchers to foot, firefox, and koreader, and update the refresh command
to the local pinenote-refresh script.
The Hyprland.Monitor.Transform enum values are not reliably accessible
in this context. Using the documented numeric values (0 for NORMAL,
3 for 270° rotation) avoids runtime lookup issues and keeps the
rotation logic working for both portrait and landscape modes.
Remove global reset and `window.` element prefixing. Expand shorthand
properties to explicit directional forms and drop unsupported
`border-radius`/`transition`/`animation` rules that break GTK CSS
parsing.
Breaks apart margin, padding, and transition shorthand properties into their
component forms and lowercases the `Icon` selector, matching GTK4 CSS
expectations. Also removes an explicit max-width from the brightness levelbar.
Expand shorthand `margin` and `width` properties for `.section` and
`.brightness-levelbar` to individual longhand properties, likely to
avoid issues with older GTK/CSS parsing.
The documentation previously showed the legacy `hyprland.conf` INI format. Since users now configure Hyprgrass via
Hyprland's Lua config, rewrite all gesture examples as Lua and update the troubleshooting note accordingly.
- Add `einkRefresh()` helper calling `pdlc-cli --refresh` after rotation,
brightness changes, waveform changes, and when the widget opens
- Disable CSS transitions and animations globally to reduce ghosting
- Remove button hover transform and transition effects
- Update README with e-ink-specific guidance and tuning notes
Replace the custom GJS/GTK4 @agi/gtk3 setup with AGS v3 on GTK3 using
Astal services (Hyprland, Brightness). Updates README installation
instructions, package scripts, and rewrites main.js to use AGS JSX
widgets and reactive state bindings. Adds a minimal package-lock.json.