Commit Graph
486 Commits
Author SHA1 Message Date
Samuel Onoja 392e9cfeb0 Avoid capture busy-waiting and redundant config and DMA-BUF checks 2026-10-25 15:37:52 +01:00
Samuel Onoja 979afbd213 Reduce idle CPU use and prioritize compositor rendering (#62)
Avoid background title updates when no shell window list is visible, and skip output and capture invalidation for titles outside compositor decorations. Preserve focused titles, fresh window lists and capture privacy.

Request high EGL context priority with fallback, cover rendering and native title behavior in CI, and keep audio recording flowing while video capture is idle.
2026-10-25 14:54:50 +01:00
Samuel Onoja b66b19e4d9 Skip redundant stream capture clear (#65)
Remove the full-buffer clear before opaque stream transfers and disable blending for the destination region. Cover both shader modes, all transforms, and reused targets.

Fixes #61.
2026-10-25 14:30:30 +01:00
Samuel Onoja ad00e55fe4 Add mouse window controls and finer display scaling (#63)
Add configurable mouse and wheel bindings, window move and resize, tab drops, cross-output dragging, and device settings. Adjust display scaling in 0.05 increments.

Preserve opposite-edge positioning during scrolling resizes and show rows for edge drops into tabbed columns.
2026-10-25 14:14:35 +01:00
Samuel Onoja ab11269246 Add workspace screen sharing (#64)
Add workspace selection to the screen-sharing picker with pinned capture, privacy filtering and bounded capture resources. Refresh captured tab labels when title or app-ID metadata changes.
2026-10-25 13:59:34 +01:00
Samuel Onoja e64ab52190 perf(compositor): prioritize the event loop without promoting workers
Request modest negative nice priority through RTKit off the event loop. Set reset-on-fork before requesting priority so workers and launched clients retain normal scheduling. Respect explicit scheduling choices and continue when priority cannot be confirmed.
2026-10-24 22:44:06 +01:00
Samuel Onoja 417f78aa94 perf(compositor): account for late frame dispatch
Include observed timer dispatch delay in the render budget, capped at one refresh and decayed by elapsed time. Preserve the scheduled presentation target and output-local state. Existing scheduling assertions remain intact; a negative control verifies the new deadline regression.
2026-10-24 22:44:06 +01:00
Samuel Onoja f5fff6d930 fix(capture): preserve rounded fractional buffer dimensions 2026-10-24 22:03:23 +01:00
Samuel Onoja ad1207b417 test(settings): detect muted text against its rendered background
The previous brightness cutoff rejected visible muted glyphs. Compare against the local background and resolved text colors, retaining the minimum ink count. Verified against the previous toolkit and with a hidden-label negative control.
2026-10-24 22:03:23 +01:00
Samuel Onoja 6509cb714a fix(panel): snap Morph dimensions before centering 2026-10-24 22:03:23 +01:00
Samuel Onoja 910f7cc188 perf(shell): prefer GPU rendering and throttle allocator trimming 2026-10-24 22:03:23 +01:00
Samuel Onoja e9f36efdb6 perf(ipc): cache unchanged output event payloads 2026-10-24 22:03:23 +01:00
Samuel Onoja 835aadc3eb docs(capture): document stream behavior and performance checks 2026-10-24 19:59:24 +01:00
Samuel Onoja 533cd74c94 perf(capture): add SceneLens GPU streams and retained scene reuse
Use persistent privacy-filtered capture targets and client-owned GPU buffers with fence completion, backpressure, negotiated frame rates and shared-memory fallback.

Invalidate output views on scene changes while preserving inactive-window callbacks and capture revocation. Include OBS memory-mask negotiation and native pixel, transport and recording regressions.
2026-10-24 19:58:54 +01:00
Samuel Onoja f49f62583d perf(ipc): reuse theme snapshots and typed window records 2026-10-24 19:56:57 +01:00
Samuel Onoja a8ef3967a1 test(input): cover launcher touch dismissal and contact lifetimes
Verify outside contacts and additional fingers cannot reach the underlying window, and that up/cancel restore normal input. Covers the existing fix for #43.
2026-10-24 19:54:40 +01:00
Samuel Onoja df36d1c9b0 Fix floating placement and restore on overlapping outputs (#60)
Carry output identity through floating placement and restore, and retain the owning output when saved geometry overlaps multiple monitors equally.

Fixes #59.
2026-10-24 19:48:16 +01:00
Samuel Onoja 2248ee6846 test(activities): set the PTY prompt after system startup
Fixes #58.
2026-10-24 19:43:21 +01:00
Samuel Onoja d18f0fd8be Keep notification popovers open when unread badges clear 2026-10-23 13:08:52 +01:00
Samuel Onoja 8bc82a58a2 Refine notification stack edges and layer counts 2026-10-23 13:08:52 +01:00
Samuel Onoja 4f78cca71e Protect desktop notification service ownership 2026-10-23 01:17:20 +01:00
Samuel Onoja 1a484adead Open floating windows on the focused output 2026-10-23 01:17:20 +01:00
Samuel Onoja 1b51ba83b4 Explain runtime invariants and avoid redundant unwraps 2026-10-22 01:28:03 +01:00
Samuel Onoja 34f2f07301 Enforce shared Rust lint policy and document review rules 2026-10-22 01:28:03 +01:00
Samuel Onoja f2e728b503 Document unsafe contracts and stop reusing poisoned state 2026-10-22 01:28:03 +01:00
Samuel Onoja a7fcd69897 Clarify constructor failures and borrowed API contracts 2026-10-22 01:28:03 +01:00
Samuel Onoja 23e280a6b4 Separate library implementations from module declarations 2026-10-22 01:28:03 +01:00
Samuel Onoja 1b4db0e681 Make module dependencies explicit across the workspace 2026-10-22 01:28:03 +01:00
Samuel Onoja 610478f8c7 Format Rust sources at 100 columns 2026-10-22 01:28:03 +01:00
Samuel Onoja 4661f595f8 Refine Pomodoro popup styling and controls 2026-10-20 17:57:07 +01:00
Samuel Onoja 97bbf1b866 Isolate readiness tests that count process-wide descriptors
Run descriptor-count assertions in private processes so concurrent display and process-monitor tests cannot change their baseline. Keep the existing leak, timing and socket-recovery assertions unchanged.
2026-10-20 15:40:34 +01:00
Samuel Onoja 90879145b2 Upgrade Smithay to pinned upstream Git
Pin 8a270232f1bfc416c781273c98a3f52a812a0bba and adapt protocol dispatch, input timestamps, configure state and rendering APIs. Preserve custom lock and toplevel validation, compositor-owned key repeats, and valid layer remapping sequences.

Add native icon-buffer lifecycle regressions for the GoLand and Spotify launch failure.
2026-10-20 15:40:34 +01:00
Samuel Onoja 17df20089b Give touch-opened OnDemand layers keyboard focus
Remember and consume the opening interaction instead of depending on pointer focus. Revoke pending focus after another interaction, focus change, cancellation or unmapping, and retain lock and grab safeguards.

Fixes #54
2026-10-20 15:38:35 +01:00
Samuel Onoja de6e66460d Revoke fullscreen stacking exceptions when window parents change
Clear the old exception when a dialog is unparented or reparented, and remove child references when a parent is destroyed. Preserve floating placement while rebuilding the stacking order.

Fixes #55
2026-10-20 15:36:52 +01:00
Samuel Onoja 4fb383eaa3 Clear Background portal state when compositor IPC disconnects
Notify consumers when cached apps disappear and repopulate state from the next compositor snapshot. Cover disconnects, reconnects and duplicate signals on a private D-Bus session, and run the regression in CI.

Fixes #56
2026-10-20 15:36:45 +01:00
Samuel Onoja afd46c0ea5 Document Pomodoro configuration and session controls 2026-10-20 15:19:55 +01:00
Samuel Onoja 2c9bb85f2c Add session-owned Pomodoro cycles and controls
Add configurable work and break intervals, pause/resume, CLI and activity-popup controls, and silent completion alerts. Use CLOCK_BOOTTIME deadlines so running timers include suspend without consuming paused time.

Refs #31
2026-10-20 15:19:55 +01:00
Samuel Onoja 53ba599918 Release session devices during teardown and tolerate removed panel outputs 2026-10-14 19:02:54 +01:00
Samuel Onoja 90564e6564 Replace desktop demo video with launcher and activity screenshot 2026-10-14 18:38:09 +01:00
Samuel Onoja 63a3e41400 Keep the shell renderer preference out of launched applications 2026-10-14 18:24:44 +01:00
Samuel Onoja 0be35b7f8a Keep unrelated tree branches moving during spring reversals 2026-10-14 18:22:42 +01:00
Samuel Onoja 4bf556dedc Remove desktop reconciliation guide 2026-10-14 18:20:35 +01:00
Samuel Onoja 8f1efd37f0 Remove DMA-BUF feedback guide 2026-10-14 18:20:20 +01:00
Samuel Onoja cc38436bce Remove nested resize testing guide 2026-10-14 18:20:02 +01:00
Samuel Onoja f228a08ff9 Remove release preparation document 2026-10-14 18:17:34 +01:00
Samuel Onoja 77fa25e5f7 Prepare 0.1.0-beta.2 feature freeze and release validation 2026-10-14 18:16:55 +01:00
Samuel Onoja a62f1367bd Fix shell focus, launcher touch dismissal, and sandbox clipboard access 2026-10-14 18:11:13 +01:00
Samuel OnojaandSamuel Onoja c8dfb3074d feat(render): add output-specific DMA-BUF feedback (#53)
Co-authored-by: Samuel Onoja <[email protected]>
2026-10-14 13:32:18 +01:00
Samuel OnojaandSamuel Onoja 9251522a69 fix(input): match layer keyboard focus to fullscreen visibility (#49)
* fix(input): require mapped layers for keyboard focus

* fix(input): match layer keyboard focus to fullscreen visibility

---------

Co-authored-by: Samuel Onoja <[email protected]>
2026-10-14 13:30:14 +01:00
Samuel OnojaandSamuel Onoja b5f7793870 feat(render): add per-output DRM outcome diagnostics (#52)
Co-authored-by: Samuel Onoja <[email protected]>
2026-10-14 13:29:33 +01:00