aboutsummaryrefslogtreecommitdiff
path: root/src/layout
AgeCommit message (Collapse)Author
2024-05-24Added actions to allow focusing up or down as normal but to wrap to the ↵Micah N Gorrell
column to the left or right if there is no window above or below
2024-05-17Implement niri msg workspacesrustysec
2024-05-16Make workspace names case-insensitiveIvan Molodetskikh
2024-05-16Implement named workspacesGergely Nagy
This is an implementation of named, pre-declared workspaces. With this implementation, workspaces can be declared in the configuration file by name: ``` workspace "name" { open-on-output "winit" } ``` The `open-on-output` property is optional, and can be skipped, in which case the workspace will open on the primary output. All actions that were able to target a workspace by index can now target them by either an index, or a name. In case of the command line, where we do not have types available, this means that workspace names that also pass as `u8` cannot be switched to by name, only by index. Unlike dynamic workspaces, named workspaces do not close when they are empty, they remain static. Like dynamic workspaces, named workspaces are bound to a particular output. Switching to a named workspace, or moving a window or column to one will also switch to, or move the thing in question to the output of the workspace. When reloading the configuration, newly added named workspaces will be created, and removed ones will lose their name. If any such orphaned workspace was empty, they will be removed. If they weren't, they'll remain as a dynamic workspace, without a name. Re-declaring a workspace with the same name later will create a new one. Additionally, this also implements a `open-on-workspace "<name>"` window rule. Matching windows will open on the given workspace (or the current one, if the named workspace does not exist). Signed-off-by: Gergely Nagy <niri@gergo.csillger.hu>
2024-05-15Fix render elements looking off on screenshotsIvan Molodetskikh
2024-05-15Implement custom shader for window-openIvan Molodetskikh
2024-05-14Avoid changing the view offset if size didn't changeIvan Molodetskikh
2024-05-14Improve interactive resize end edge cases and animationsIvan Molodetskikh
2024-05-14Fix interactive resize cancellingIvan Molodetskikh
The interactive resize may have ended, but we're still waiting for the last commit of the respective window. When cancelling, we should cancel those ones too.
2024-05-14Refactor column and tile offsets, fix a few issuesIvan Molodetskikh
2024-05-14Draw closing windows in the right orderIvan Molodetskikh
2024-05-12Implement custom shader for window-close animIvan Molodetskikh
2024-05-12closing_window: Pass geo size and view rectIvan Molodetskikh
2024-05-12closing_window: Remove starting_alpha/scaleIvan Molodetskikh
2024-05-11closing_window: Store textures directlyIvan Molodetskikh
2024-05-11Implement Mod+MMB view offset gestureIvan Molodetskikh
2024-05-11Group input-related things in a subfolderIvan Molodetskikh
2024-05-11Update resize commit unconditionallyIvan Molodetskikh
2024-05-11Add is_active_in_columnTheZoq2
Add missing ``` Fix tests
2024-05-11Add a reset-window-height actionIvan Molodetskikh
2024-05-11Render tiles flush to the right when left-resizingIvan Molodetskikh
This really needs a refactor...
2024-05-11Split get resize data from updateIvan Molodetskikh
2024-05-10Implement interactive mouse resizingIvan Molodetskikh
2024-05-04Fix blocked-out surfaces on scaled outputsIvan Molodetskikh
2024-05-04Fix rounded corners on blocked-out resizesIvan Molodetskikh
2024-05-04Extract RenderTarget::should_block_out()Ivan Molodetskikh
2024-05-04Extract rules outIvan Molodetskikh
2024-05-04Update tile before taking unmap snapshotIvan Molodetskikh
2024-05-04Fix border/focus ring options not applying right awayIvan Molodetskikh
2024-05-04Split update_render_elements() from advance_animations()Ivan Molodetskikh
advance_animations() is called from places like input, whereas update_render_elements() is strictly for rendering.
2024-05-04shader_element: Store and set location separatelyIvan Molodetskikh
2024-05-03Make BorderRenderElement scale-agnosticIvan Molodetskikh
2024-05-03shader_element: Store program type instead of shaderIvan Molodetskikh
2024-05-03shader_element: Make shader optionalIvan Molodetskikh
The element is long-lived, but the shader itself isn't.
2024-05-03Reduce unnecessary damage to bordersIvan Molodetskikh
2024-05-02Damage window on corner radius changesIvan Molodetskikh
2024-05-02Implement rounded window cornersIvan Molodetskikh
2024-05-01Add Tracy span to Tile::render_innerIvan Molodetskikh
2024-05-01Split rendering between popups and window surfaceIvan Molodetskikh
2024-05-01Add Tracy span to Tile::renderIvan Molodetskikh
2024-05-01Move unmap snapshot from Mapped to TileIvan Molodetskikh
2024-04-29Move shader get out of ResizeRenderElement::newIvan Molodetskikh
2024-04-28Fix fullscreen backdrop rendering below focus ringIvan Molodetskikh
2024-04-24Implement focus-ring window ruleIvan Molodetskikh
2024-04-24Implement border window ruleIvan Molodetskikh
2024-04-21Implement window-resize custom-shaderIvan Molodetskikh
2024-04-19Synchronize column removal anim on consume left/rightIvan Molodetskikh
Visible when consuming left/right when always-centered and differing horizontal view anim.
2024-04-19Separate tile X and Y movement animationsIvan Molodetskikh
Helps with the jank caused by lack of transactions when consuming to the left/right. Resize triggers a few frames later and restarts the movement. Now it only restarts the vertical and not the horizontal movement.
2024-04-18Preserve tile move config on animation restartsIvan Molodetskikh
This fixes a problem where consume-into-column would use resize animation config instead of the window-movement config in most cases (since a resize comes very shortly after the move starts). A similar change to the column movement anim is more detrimental than it's worth.
2024-04-17Sync expel animationsIvan Molodetskikh