| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2025-10-02 | Add per-workspace layout config | Ivan Molodetskikh | |
| Per-workspace background-color doesn't work yet. | |||
| 2025-10-02 | layout: Extract Monitor::append_workspaces() | Ivan Molodetskikh | |
| 2025-10-02 | layout: Move empty workspace handling to Monitor::new() | Ivan Molodetskikh | |
| 2025-10-02 | layout: Extract Monitor::into_workspaces() | Ivan Molodetskikh | |
| 2025-10-02 | layout: Deduplicate move_workspace_to_output() | Ivan Molodetskikh | |
| 2025-10-02 | layout: Extract Monitor::insert_workspace() | Ivan Molodetskikh | |
| 2025-10-02 | layout: Extract Monitor::remove_workspace_by_idx() | Ivan Molodetskikh | |
| 2025-10-02 | layout: Remove unname_workspace() clean-up to Monitor | Ivan Molodetskikh | |
| 2025-10-02 | layout: Extract Monitor::verify_invariants() | Ivan Molodetskikh | |
| 2025-10-02 | layout: Extract Layout::monitors{,_mut}() | Ivan Molodetskikh | |
| 2025-10-02 | layout/tests: Make UpdateConfig an actual Op | Ivan Molodetskikh | |
| We can do it now that it's non-Copy. This also fixes a new stack overflow when running the random test in debug mode (which somehow occurs even though it's skipped in debug mode) that appeared after adding LayoutPart for some unbeknownst to me reason. | |||
| 2025-10-02 | layout/tests: Generate LayoutPart instead of Layout config | Ivan Molodetskikh | |
| Necessary for future changes, also produces much shorter failing output due to not having to include all the options. | |||
| 2025-10-02 | layout: Store Layout directly in Options | Ivan Molodetskikh | |
| 2025-10-02 | config: Split Layout from LayoutPart | Ivan Molodetskikh | |
| 2025-10-02 | config: Replace resolve_against with MergeWith | Ivan Molodetskikh | |
| 2025-10-02 | config: Add merge!() macros to reduce boilerplate | Ivan Molodetskikh | |
| 2025-10-02 | config: Introduce MergeWith trait | Ivan Molodetskikh | |
| 2025-10-02 | layout/tests: Make Op non-Copy | Ivan Molodetskikh | |
| 2025-09-24 | FAQ: Mention how to escape from a dead screen locker | Ivan Molodetskikh | |
| 2025-09-23 | FAQ: Mention directly opening in column, and focus-follows-mouse on monitor ↵ | Ivan Molodetskikh | |
| edges | |||
| 2025-09-22 | enhance(docs): NixOS - Intel graphics workaround wiki link | Malix | |
| 2025-09-20 | config: Fix discrepancy in default shadow color | Ivan Molodetskikh | |
| 2025-09-20 | config: Add a diff empty to default test | Ivan Molodetskikh | |
| 2025-09-20 | config: Fix inability to override border/focus-ring/tab-indicator gradient ↵ | Ivan Molodetskikh | |
| with color in window rules | |||
| 2025-09-20 | Update libdisplay-info and Smithay (popup destruction protocol check, ↵ | Ivan Molodetskikh | |
| constraints check) | |||
| 2025-09-20 | Move workspace options check to workspace tests | Ivan Molodetskikh | |
| 2025-09-20 | layout/workspace: Rearrange checks | Ivan Molodetskikh | |
| 2025-09-19 | Fix DnD icon offset from surface cursor | Ivan Molodetskikh | |
| The offset is already relative to the hotspot, no need to offset twice. | |||
| 2025-09-18 | Revert "revert nushell completion for flake.nix" | Ross Smyth | |
| This reverts commit ed799f5afcf6a3dc805def75d0824ecc24de4f32. | |||
| 2025-09-18 | nix: Bump flake.lock | Ross Smyth | |
| 2025-09-18 | Fix layer-shell initial commit logic | Ivan Molodetskikh | |
| I didn't properly update it for the Smithay refactor. It was reading initial_configure_sent too early. This worked before when niri had to reset it manually, but it no longer works now that it is automatically reset already before entering this function. | |||
| 2025-09-17 | Update Smithay (last_acked refactor, Qt layer-shell popup grab fix, popup ↵ | Ivan Molodetskikh | |
| ordering fix) | |||
| 2025-09-17 | Add unmap-from-floating test | Ivan Molodetskikh | |
| Hits a code path that reads the last acked state after unmapping. | |||
| 2025-09-17 | tests/client: Check and panic on protocol error | Ivan Molodetskikh | |
| Otherwise it keeps inf-looping. | |||
| 2025-09-17 | Add sending initial configure trace log | Ivan Molodetskikh | |
| 2025-09-17 | Downgrade lack of our initial configure from error! to debug! | Ivan Molodetskikh | |
| This can happen if a surface unmaps by committing a null buffer and then immediately does the initial commit without a sync roundtrip, while there are pending configures from the compositor in-flight. In this case, the surface cannot tell that the pending configures were meant for "before unmapping" and considers them to be the new initial configure. From our point of view, we don't get to do a proper initial configuration sequence in this case, and receive a mapping commit without our initial configure state. We cannot really do much about it, but it is not an error when this specific situation happens. | |||
| 2025-09-17 | Improve commit handler trace logging | Ivan Molodetskikh | |
| 2025-09-17 | layout/scrolling: Remove more redundant animate args | Ivan Molodetskikh | |
| These were redundant before too. | |||
| 2025-09-17 | layout/scrolling: Remove now-redundant animate arg | Ivan Molodetskikh | |
| 2025-09-17 | layout/tile: Animate un/fullscreen resize | Ivan Molodetskikh | |
| This turned out to require quite a few changes. We keep track of the tile resize animation progress separately now, in order to provide a resizing black fullscreen backdrop for non-resizable windows. The window is always rendered in the middle of the tile, which once again aids with the resizing black fullscreen backdrop. The backdrop itself will fade in from transparency so that it's less jarring. The resize animation now keeps track of the fullscreen progress to deal with the case where an unfullscreen resize is interrupted by another non-fullscreen resize. In this case, the fullscreen progress continues animating to avoid sudden disappearance of the fullscreen backdrop. Some things like border visibility switch to this fullscreen progress once again to avoid jarring appearance/disappearance. The border radius animates in accordance with the fullscreen progress to match the visuals. | |||
| 2025-09-17 | layout/tile: Remove unused function | Ivan Molodetskikh | |
| As far as I can tell, it was unused even when it was first added. | |||
| 2025-09-17 | layout/tile: Extract two variables | Ivan Molodetskikh | |
| 2025-09-17 | layout/scrolling: Animate tiles_origin changing on un/fullscreen | Ivan Molodetskikh | |
| 2025-09-17 | layout/scrolling: Track pending vs. current fullscreen for Columns | Ivan Molodetskikh | |
| We already did that for Tiles, but for Columns we only tracked what was effectively pending fullscreen. We used it in several places where the current fullscreen should've been used instead, like the tile origin or the view offset. This commit splits the two and makes every place use the right one. Fixes things like tiles briefly appearing at y=0 between issuing the fullscreen command and the tile committing in response to the fullscreen configure. | |||
| 2025-09-17 | layout/scrolling: Store view_offset_before_fullscreen when column actually ↵ | Ivan Molodetskikh | |
| goes fullscreen Simplifies the handling and correctly saves/restores view offset for clients that are slow to fullscreen, as can be seen from the fixed test. | |||
| 2025-09-17 | tests/fullscreen: Add broken slow client unfullscreen view offset ↵ | Ivan Molodetskikh | |
| restoration test | |||
| 2025-09-17 | tests: Move complete_animations() to Fixture | Ivan Molodetskikh | |
| 2025-09-17 | layout/tests/fullscreen: Add broken removing tile view pos restore test | Ivan Molodetskikh | |
| 2025-09-17 | Add unfullscreen view offset restoration tests | Ivan Molodetskikh | |
| 2025-09-17 | layout/tests: Extract fullscreen tests to submodule | Ivan Molodetskikh | |
