Commit Graph
45 Commits
Author SHA1 Message Date
NeilClack 400c6a782b Scroller: use full window height on rotated/tall displays
build-dev / nix-build (push) Successful in 41s
Override the LETTERBOX logical presentation while the scroller is
active so it renders into the full physical window.  On a 1920x6480
rotated display the scroller now scrolls through all 6480 pixels of
vertical space instead of being confined to the 1920x1080 letterbox
region.  Text scale is unchanged (same font size, same pixel
rasterization); more lines are simply visible at once.

- onPush: save current logical presentation, switch to DISABLED with
  real window dimensions
- onPop: restore the saved LETTERBOX presentation
- resize handler in main.cpp: skip re-apply while scroller is active
  (it owns its own presentation and restores on pop)
2026-08-25 10:55:53 -05:00
NeilClack 9b0bd517c6 pad footer 2026-08-25 10:33:04 -05:00
NeilClack babb74c7ad Fix attic upload
build-dev / nix-build (push) Successful in 40s
2026-08-25 07:55:32 -05:00
NeilClack 47785cd4b9 Proclamations: sub-cats always expanded, stable list width
build-dev / nix-build (push) Successful in 43s
- Sub-categories start expanded and cannot be collapsed
- Only root categories toggle open/closed
- LEFT on a sub-category is ignored (navigates to parent for depth-2)
- [+]/[-] indicators only shown on root categories
- Bounding box width computed over all items to prevent
  horizontal shifting when groups expand or collapse
2026-08-25 07:15:59 -05:00
NeilClack 15583edef8 Re-order settings menu 2026-08-25 06:57:43 -05:00
NeilClack 63265cc22f Dynamically size the fullscreen window; present design space via LETTERBOX
build-dev / nix-build (push) Successful in 42s
SDL_CreateWindow hardcoded a 1920x1080 backbuffer while SDL_WINDOW_FULLSCREEN
let compositors run a different output mode; the mismatched buffer reached
the panel unscaled — quarter-size in the top-left on 4K sets, cropped ("4x
too large") on smaller non-1080p panels under cage/Wayland. Logical
presentation never got to map the fixed design space because its target
(the backbuffer) was pinned to stale dimensions.

Size the fullscreen window from SDL_GetCurrentDisplayMode so the first
commit already matches scanout 1:1, switch logical presentation to LETTERBOX
(aspect-safe bars on non-16:9 panels), and route both through new
kDesignWidth/kDesignHeight constants. Harden getLayoutSize() to always write
its out params and null-check the renderer/render-window before use.

Log requested/window/pixel-buffer/render-output sizes at startup and on
every resize event so field units self-diagnose this bug class into
~/.local/radiantwave/log.txt. SDL_WINDOW_HIGH_PIXEL_DENSITY stays off on
purpose: kiosk panels are not HiDPI, and keeping the pixel buffer equal to
the display mode keeps compositor scanout unscaled.
2026-08-23 17:06:05 -05:00
NeilClack 9e73c82641 Fix attic push
build-dev / nix-build (push) Successful in 43s
2026-08-23 15:12:35 -05:00
NeilClack f2a40cd019 Remove attic-client install step
build-dev / nix-build (push) Successful in 39s
2026-08-23 12:46:08 -05:00
NeilClack 5caf1d6ef8 Move to checksums.md5
build-dev / nix-build (push) Failing after 13s
Server is scheduled to generate this file nightly
2026-08-23 12:39:05 -05:00
NeilClack e17e881c00 Split builds 2026-08-23 12:38:44 -05:00
NeilClack b96631c374 Add first Attic push 2026-08-21 14:52:14 -05:00
NeilClack 39eb6d7bf7 Update to new_checkshums.md5
new_checksums.md5 enables audio file naming and other audio related features.
2026-08-21 10:03:31 -05:00
NeilClack 3c9de0bee2 Fix double-scaling by locking page layout to logical presentation
Pages computed layout from SDL_GetWindowSize() (real window
coordinates) while SDL_SetRenderLogicalPresentation() independently
remapped every draw call into a 1920x1080 space. The two coordinate
systems only agreed when the window happened to be exactly 1920x1080;
at any other size, layout coordinates were transformed a second time,
so content shrank/grew quadratically toward the top-left on resize or
on non-1080p monitors. Commenting the call out masked the bug by
making rendering 1:1 with the window, but then nothing scaled: fonts
and margins stayed fixed-pixel while backgrounds cover-fit, and HiDPI
displays drew at point resolution and relied on blurry compositor
upsampling.

Restore SDL_SetRenderLogicalPresentation(1920x1080, LETTERBOX) as the
single source of scaling, and route all twelve layout sites through a
new radiantwave::getLayoutSize() helper (src/logical_size.h) that
returns the renderer's logical size, so pages always lay out against
the design resolution regardless of window or monitor geometry. Add
SDL_WINDOW_HIGH_PIXEL_DENSITY so HiDPI displays render at native pixel
density instead of being upscaled by the OS. Cached per-page textures
become resolution-independent since layout no longer depends on window
size.
2026-08-21 09:29:23 -05:00
NeilClack 8e930ef8d9 Remove WiFi gate 2026-08-18 23:37:44 -04:00
NeilClack ec6b76618c Lock compositor to 1920x1080 2026-08-17 22:46:44 -05:00
NeilClack 74245ee07d Remove API key requirement 2026-08-17 20:36:59 -05:00
NeilClack 359ae905d7 Update runner name 2026-08-17 12:00:28 -05:00
NeilClack 2b60002df3 Update runner name 2026-08-17 11:57:55 -05:00
NeilClack e401bd4ec5 Removed Debug logs from user-view 2026-08-15 15:43:49 -05:00
NeilClack f14bf3e29a Remove subscription levels; license valid = subscribed 2026-08-15 00:54:24 -05:00
NeilClack 8ca60de647 Update README.md 2026-08-13 20:10:36 -05:00
NeilClack ac69c7d694 Testing commit signing 2026-08-13 20:07:05 -05:00
NeilClack 7c74198d4f Update build procedures and documentation 2026-08-13 18:57:11 -05:00
NeilClack c53abede6a Remove archive code: Accidental commit 2026-08-13 17:25:16 -05:00
NeilClack 515056a92c Fix scroller draining off-screen on low frame rates
The scroller recycled at most one line per frame while movement was
continuous (velocity * dt), so whenever a frame's displacement exceeded
one line height the text block drifted toward the boundary and the
screen drained with nothing replacing it. This surfaced on slower
hardware / 60Hz panels (|move| > lineHeight) but not on fast machines.

Recycle in a loop until every line that scrolled fully off-screen has a
replacement, for both scroll directions. addLineAt() now returns whether
a line was produced so the loop stops cleanly instead of losing lines.
2026-08-13 16:57:39 -05:00
NeilClack 1c14c0401e Fix: Main Menu footer shows 'WiFi Not Connected'
Updated WiFiDevice::getActiveAccessPoint() to read the AP's SSID so connectedSSID() can report which network is in use.
2026-08-13 16:18:51 -05:00
NeilClack 2f014aec8a Increase audio track list window to full-height 2026-08-13 16:17:37 -05:00
NeilClack e774fbfda9 Fix the volume slider visual 2026-08-13 15:17:20 -05:00
NeilClack fe2c9ba6a5 Remove TAB keybindings 2026-08-13 14:37:35 -05:00
NeilClack 4abcfa473f Change menu text from gray to white 2026-08-13 14:34:49 -05:00
NeilClack c35f928c85 Periodic commit 2026-08-13 13:28:13 -05:00
NeilClack bea9a86358 Fix application crash on WiFi page 2026-08-13 13:27:57 -05:00
NeilClack bc165ef40f fix(network): read AccessPoints instead of AllAccessPoints for scan list
AllAccessPoints is not exposed by this NetworkManager ('No such property'),
so getAccessPoints() hit the error path and returned an empty scan list
with no log output. AccessPoints is the current scan results and is
universally supported. Also log the property-read failure instead of
failing silently.
2026-08-12 14:38:22 -05:00
NeilClack 20af03fe82 docs: sync AGENTS.md with current project state
Root flake is canonical, assets resolve relative to the working
directory, and the CI live-test secrets were renamed RW_LIVE_* to
RWT_LIVE_* (plus the new RWT_LIVE_ACCOUNT_EMAIL/LICENSE_* keys).
2026-08-12 12:00:42 -05:00
NeilClack 44927ebb98 build: seed APP_VERSION and API_KEY from the environment
Fresh cmake configures pick up APP_VERSION/API_KEY from environment
variables (as nix develop and CI provide them); -D still wins on
reconfigure. Also normalizes indentation in the sd-bus blocks.
2026-08-12 12:00:39 -05:00
NeilClack 442565508e fix(network): read AP security flags in WiFi scan and unit-test parseAccessPoint
parseAccessPoint() is extracted from an anonymous namespace so the pure
property->AccessPointInfo mapping is testable. getAccessPoints() now reads
the Flags/WpaFlags/RsnFlags properties (they were never read, so every
network was reported Open and connections lacked a security section) and
fixes the double container-enter on the SSID 'ay' read that silently
emptied the scan list.
2026-08-12 12:00:32 -05:00
NeilClack 666a4eca97 chore: ignore Apple metadata (._*) and editor cache dirs 2026-08-12 12:00:12 -05:00
NeilClack c5dac10611 Re-issue WiFi scan on the periodic refresh timer
The WiFi page only re-read the access-point list every 3s, so a scan
that was slow, denied, or interrupted left the network list permanently
empty until a manual F5. Re-request the scan on each timer tick (skipped
while a connection attempt is in flight) so results appear automatically
once NetworkManager completes a scan.
2026-08-07 19:41:07 -05:00
NeilClack 7d9b3f19a2 Log WiFi RequestScan failures with D-Bus error detail
The RequestScan result and the underlying sd_bus error were silently
dropped, so a denied or failed scan looked identical to an empty scan
list on the WiFi setup page. Surface both so the deployed-machine
diagnosis (e.g. user not in the networkmanager group) is visible in
~/.local/radiantwave/log.txt.
2026-08-07 19:40:51 -05:00
NeilClack cad834f232 Rename secrets from RW_ to match RWT_ 2026-08-07 16:54:56 -05:00
NeilClack 646ad76c00 Remove nixpkgs.cc 2026-08-07 15:39:18 -05:00
NeilClack ae12d50116 Update nix build command 2026-08-07 15:32:41 -05:00
NeilClack 23821e1be6 Fix host-mode checkout in Gitea workflow
Replace actions/checkout@v4 with a manual token-based clone — its files
were being copied into the act_runner workspace instead of the repo,
leaving nix to evaluate the wrong flake. Add a workspace inspection
step before the build to aid diagnosis.
2026-08-07 15:21:47 -05:00
NeilClack aa65f75e9f Add workflow actions
build / nix-build (push) Canceled after 0s
2026-08-07 15:02:19 -05:00
NeilClack 9251b3a196 initial commit 2026-08-07 14:51:41 -05:00