Commit Graph
61 Commits
Author SHA1 Message Date
Samuel Onoja 42f022fde5 nits 2026-10-01 23:42:40 +01:00
Samuel Onoja da60ecb719 micro optimization fixes 2026-10-01 20:47:05 +01:00
Samuel Onoja 1441875096 Unify per-monitor workspace numbering and lifecycle policy 2026-10-01 18:24:12 +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 2b9f30fa5d Add shortcut hint toggle with Super+F1 2026-10-01 12:30:35 +01:00
Samuel Onoja a14f222119 Make horizontal focus swipes follow touchpad motion 2026-10-01 11:34:30 +01:00
Samuel Onoja b29d271252 Add floating placement memory and edge snapping 2026-10-01 11:24:56 +01:00
Samuel Onoja 464a1a635b Add continuous touchpad workspace swiping 2026-10-01 10:28:14 +01:00
Samuel Onoja 17b8482433 Add per-monitor workspace back-and-forth 2026-10-01 10:14:35 +01:00
Samuel Onoja 46509f880a Fix compositor output routing and pointer hints; format imports 2026-09-30 06:39:58 +01:00
Samuel Onoja 83574451df Fix DRM callback pacing and shared animation timing 2026-09-30 05:39:51 +01:00
Samuel Onoja 35537b32c8 Dim and sleep locked displays after inactivity
Add adjustable lock-only inactivity delays, a smooth dimming fade and DRM display sleep without changing output layout. Input, session resume and policy changes wake displays. Pending flips retire before power-off, and protected fallback frames preserve the policy after an early locker crash while unlock ownership checks remain strict.

Reduce the password field and avatar, expose delays in Settings, document the practical swaylock comparison and remove the completed backlog.

Validation: independent review cleared; 255 compositor tests, 7 locker tests and 15 Settings tests pass; affected debug binaries rebuilt. Isolated visual smoke remains blocked by an unlocked nested screenshot timeout, matching the previously established baseline presentation limitation. Real DRM display sleep requires a live session check.
2026-09-30 05:10:04 +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 c8ed8e6c30 Add configurable session-scoped global shortcut portal 2026-09-29 23:32:41 +01:00
Samuel Onoja d8a23748c8 Confirm power and logout actions in centered system modals 2026-09-29 22:21:15 +01:00
Samuel Onoja ae712b6b40 Keep workspace presentation in numeric order 2026-09-29 21:29:58 +01:00
Samuel Onoja 74634b8cd0 Animate swipe navigation across windows and workspaces 2026-09-29 17:05:28 +01:00
Samuel Onoja 4b70cb40e0 Move and resize floating windows with the Super button 2026-09-29 15:51:51 +01:00
Samuel Onoja c73d11b2c9 Match hover focus to pointer surface hit testing 2026-09-29 13:59:38 +01:00
Samuel Onoja 9b78aabf0a Revert "Keep drag source focused until pointer leaves release window"
This reverts commit 7b6e592cb4.
2026-09-29 13:55:58 +01:00
Samuel Onoja 7b6e592cb4 Keep drag source focused until pointer leaves release window 2026-09-29 13:50:12 +01:00
Samuel Onoja e7ee2f14db Skip the pointer hit test outside Overview presenting
visual_scale_for_window returns 1.0 whenever Overview is not
presenting, so gate the window_under_visual walk behind
is_presenting() and read the scale straight from the constant.

Use hash_map::Entry for the window geometry insert so client_size is
only computed on the vacant path, and reuse the elapsed time already
sampled for the frame in expire_wait and presentation_size_request
instead of calling start_time.elapsed() a second time.
2026-09-29 12:00:03 +01:00
Samuel Onoja 41d63f6b18 Make Overview selection responsive and simplify window previews 2026-09-28 10:45:38 +01:00
Samuel Onoja 442b950bcd Separate pointer focus from scrolling window reveal 2026-09-28 10:36:19 +01:00
Samuel Onoja 2b0ec94ab7 Preserve selected window focus while Overview closes 2026-09-28 10:27:49 +01:00
Samuel Onoja f87039562b Prune unused empty workspaces while preserving visible outputs 2026-09-27 12:16:50 +01:00
Samuel Onoja ab6bf8b961 Refine notification center and configure native notifications
Keep notification actions and dismiss controls visible, compact and animate history, and add themed icon controls and grouping.

Include notification settings, session integration and documentation, on-demand workspaces, and performance baseline notes.
2026-09-27 08:35:38 +01:00
Samuel Onoja dbdfc5688e Fix screenshots and workspace switching; add configurable swipe bindings 2026-09-27 05:21:52 +01:00
Samuel Onoja 5d6c610fec Add area screenshots and preserve stacking on hover focus 2026-09-26 23:22:38 +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 b422448d88 Add centered workspace thumbnails to overview
Render a tinted, scrollable workspace strip with live thumbnails, output-scaled font labels and a subtle selected-workspace outline. Keep the window grid background-free and support workspace selection without exiting overview.

Animate strip opacity independently with precise fade tolerances and continuous reversal, and expose toggle-overview through feresectl.
2026-09-26 15:13:13 +01:00
Samuel Onoja 0709484efb Overhaul resize presentation and wallpaper rendering
Coordinate native-pixel resize handoffs, fractional geometry and shared animation timing. Delegate wallpaper rendering to the compositor, advertise DMA-BUF device feedback, and improve callback pacing and render metrics.

Handle monitor-local shell surfaces, lid-driven output evacuation and workspace restoration.
2026-09-26 14:50:14 +01:00
Samuel Onoja e85fc1e032 advance shell integration and session support 2026-09-25 09:15:07 +01:00
Samuel Onoja 3384cfde0f feat: add compositor overview scene 2026-09-25 06:44:07 +01:00
Samuel Onoja 6d19932a64 fix: unify animated presentation and stacking 2026-09-25 04:57:39 +01:00
Samuel Onoja 95b15b6e0d feat: support focus follows mouse 2026-09-25 02:59:07 +01:00
Samuel Onoja 29af1bec9c feat: configure commands and key bindings 2026-09-25 02:57:36 +01:00
Samuel Onoja dbabe95a5e feat: forward touch input to clients 2026-09-25 02:21:41 +01:00
Samuel Onoja 5e6c9c3d9d feat: complete scrolling layout controls 2026-09-25 02:14:04 +01:00
Samuel Onoja 9d90415e55 feat: make scrolling the active default layout 2026-09-25 02:08:04 +01:00
Samuel Onoja 8d305bf338 feat: lay out workspaces per output 2026-09-25 01:50:08 +01:00
Samuel Onoja d32f20dbbf feat: hide decorations on tiled windows 2026-09-25 01:20:16 +01:00
Samuel Onoja bf4f5f77f7 fix: tame animated resize scaling 2026-09-25 01:13:21 +01:00
Samuel Onoja 6dc2a5300e feat: enforce focused shortcut inhibition 2026-09-25 01:00:58 +01:00
Samuel Onoja 37eb7cb9e9 feat: support idle notification and inhibition 2026-09-25 00:48:06 +01:00
Samuel Onoja f2ef8de74f feat: route input to layer shell surfaces 2026-09-24 16:57:13 +01:00
Samuel Onoja bf512cdd9b feat: support direct session vt switching 2026-09-24 16:44:18 +01:00
Samuel Onoja ee9da5d8c9 feat: compose client cursor surfaces 2026-09-24 16:42:50 +01:00
Samuel Onoja edef3a59ff fix: move pointer from direct relative input 2026-09-24 16:37:57 +01:00