Commit Graph
39 Commits
Author SHA1 Message Date
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 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 1b51ba83b4 Explain runtime invariants and avoid redundant unwraps 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 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 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 a6f83689f8 Add XWayland support (#16)
* save dev state

* fix xwayland-satellite supervisor lifecycle, readiness and cleanup

* remove wayland scanner protocol generated files

* default xwayland enabled with path

* remove jargons

* address x11 review: park unconfirmed cleanup, never signal a reaped group, fix storm test and notify dir mode

* fix resize tests: never build Size values from negative dimensions

* add min-width/min-height window rules that replace client minimum sizes

* rename effective_size_constraints to effective_minimum_size and minor cleanups
2026-10-06 19:40:22 +01:00
Samuel Onoja 405c74af9f fix compositor edge cases, process handing and other cool improvements 2026-10-04 17:11:40 +01:00
Samuel Onoja 03a265b97f Add automatic idle inhibition for fullscreen playback and selected apps 2026-10-03 11:20:55 +01:00
Samuel Onoja 453ec16583 Protect selected windows from screen capture
Add capture privacy rules for windows, transient children, overview previews and client cursors, with separate capture rendering and deferred-frame invalidation. Keep detached close snapshots out of captures after clients leave the registry.

Validated with release workspace tests, private compositor/EGL regressions, and an isolated release PipeWire capture test.
2026-10-03 10:49:01 +01:00
Samuel Onoja 8ad5293178 Model lock ownership explicitly and allow protected crash recovery 2026-10-02 08:48:01 +01:00
Samuel Onoja 6f2951c6b0 Scope redraw requests and avoid redundant animation fallback wakeups
Instrument redraw sources, per-output request coalescing, and animation fallback scheduling. Route local visual changes to their affected outputs while preserving deferred grab and gesture updates.

Schedule fallback recovery using each orphaned animation output's refresh interval, suppress it while a normal frame chain exists, and retain requested final frames after scheduling failures. Add mixed-refresh, cursor footprint, frame-chain, and disconnect regressions and document measurement limits.
2026-10-02 01:21:11 +01:00
Samuel Onoja da60ecb719 micro optimization fixes 2026-10-01 20:47:05 +01:00
Samuel Onoja 07bda5a21c Refactor window ownership and immutable frame sampling 2026-10-01 18:03:01 +01:00
Samuel Onoja 0162870cca Add focus history and Alt-Tab window switching 2026-10-01 16:00:23 +01:00
Samuel Onoja 91d2388d12 Fix dialog placement and decorations and compact confirmation dialogs 2026-10-01 14:36:33 +01:00
Samuel Onoja 53bad8c672 Restore floating window size before the first buffer 2026-10-01 11:36:53 +01:00
Samuel Onoja b29d271252 Add floating placement memory and edge snapping 2026-10-01 11:24:56 +01:00
Samuel Onoja 46509f880a Fix compositor output routing and pointer hints; format imports 2026-09-30 06:39:58 +01:00
Samuel Onoja d26e1511d1 Implement native InputCapture with private EIS receiver transport
Add consent, zones and outside-edge barriers, connection-scoped leases, bounded input queues and keyboard/pointer forwarding. Restore local input on release, locking, topology or keymap changes, receiver loss and emergency escape. Preserve held-key state and distinguish finger stops from absent scroll axes.

Validation: independent review cleared; 5 native InputCapture unit tests; 32 portal tests; official D-Bus contract checks on a private bus; real installed libei receiver interoperability test. Live physical barrier and consent interaction remain to be checked in a desktop session.
2026-09-30 04:51:08 +01:00
Samuel Onoja 23991d5bd8 Add native Settings and complete live configuration reload
Add compact branded Settings with safe atomic edits, external config refresh and a draggable sidebar. Reconcile services, update connected displays and input devices, apply live layout policy and window rules, and resolve initial floating placement before tiled insertion. Package the Settings launcher and shared Ferese icon.
2026-09-26 20:31:05 +01:00
Samuel Onoja 672b4e2b60 Add live config reload, session locking and managed daemons
Refine focus gradients, shell workspace controls and popup motion. Correct floating stacking and preserve client-chosen dialog sizes. Add lock protocol probes and session integration.
2026-09-26 19:03:37 +01:00
Samuel Onoja b3fa82b53b Refine shell status controls and glass rendering; defer cursor redraw safely 2026-09-26 05:05:50 +01:00
Samuel Onoja e85fc1e032 advance shell integration and session support 2026-09-25 09:15:07 +01:00
Samuel Onoja 6d19932a64 fix: unify animated presentation and stacking 2026-09-25 04:57:39 +01:00
Samuel Onoja 3d0007ba12 feat: apply validated window rules 2026-09-25 03:02:50 +01:00
Samuel Onoja 4a1eab5b4a fix: negotiate initial server decorations 2026-09-25 02:26:19 +01:00
Samuel Onoja d32f20dbbf feat: hide decorations on tiled windows 2026-09-25 01:20:16 +01:00
Samuel Onoja e57d355db2 feat: support xdg foreign parenting 2026-09-25 00:44:43 +01:00
Samuel Onoja 501521cf78 fix: constrain layer shell popups to output 2026-09-24 16:59:26 +01:00
Samuel Onoja 6060257ffe feat: float transient windows with their parent 2026-09-24 11:27:33 +01:00
Samuel Onoja 677e0ba5d1 fix: synchronize floating window geometry 2026-09-24 11:26:08 +01:00
Samuel Onoja 9ad6761c4d feat: add floating and fullscreen modes 2026-09-24 11:18:25 +01:00
Samuel Onoja 58d91363d6 feat: tile managed windows with layout tree 2026-09-24 06:19:06 +01:00
Samuel Onoja 8fea6f85ee feat: enforce xdg popup grabs 2026-09-24 06:03:38 +01:00
Samuel Onoja 0cc0488257 feat: support interactive window move and resize 2026-09-24 06:02:25 +01:00
Samuel Onoja a941b80aa9 feat: add selection and decoration protocols 2026-09-24 05:41:38 +01:00
Samuel Onoja 475d433ec4 feat: add nested Phase 0 compositor 2026-09-24 05:38:18 +01:00