aboutsummaryrefslogtreecommitdiff
path: root/src/layout/mod.rs
AgeCommit message (Collapse)Author
2024-06-18Refactor layout to fractional-logicalIvan Molodetskikh
Lets borders, gaps, and everything else stay pixel-perfect even with fractional scale. Allows setting fractional border widths, gaps, struts. See the new wiki .md for more details.
2024-06-17Fix cached data not updating on config changeIvan Molodetskikh
2024-06-17layout: Cache scale and transform on the workspaceIvan Molodetskikh
2024-06-10Implement our own TextureBuffer/RenderElementIvan Molodetskikh
Supports fractional texture scale + has some getters.
2024-06-10Signal fractional scale to clientsIvan Molodetskikh
Doesn't do anything yet because we don't bind the fractional scale manager and don't allow fractional scales.
2024-06-09Add `focus-column-right-or-first`, `focus-column-left-or-last` (#391)James Sully
* add focus-column-right-or-first * add focus-column-left-or-last
2024-06-04Add missing fullscreen checkIvan Molodetskikh
Fixes crash when a window in a column requests to be unfullscreened.
2024-06-02Preserve empty named workspaces upon output removalIvan Molodetskikh
Not sure how we missed this.
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-14Improve interactive resize end edge cases and animationsIvan Molodetskikh
2024-05-14Refactor column and tile offsets, fix a few issuesIvan Molodetskikh
2024-05-11Implement Mod+MMB view offset gestureIvan Molodetskikh
2024-05-11Add is_active_in_columnTheZoq2
Add missing ``` Fix tests
2024-05-11Add a reset-window-height actionIvan Molodetskikh
2024-05-11Split get resize data from updateIvan Molodetskikh
2024-05-10Implement interactive mouse resizingIvan 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-03shader_element: Store program type instead of shaderIvan Molodetskikh
2024-05-01Split rendering between popups and window surfaceIvan Molodetskikh
2024-05-01Move unmap snapshot from Mapped to TileIvan 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-16Remove jumps on consume/expel animation startIvan Molodetskikh
2024-04-16Start move animations from add/remove window/columnIvan Molodetskikh
2024-04-13Restore view offset upon unfullscreeningIvan Molodetskikh
2024-04-13Unify Animation- and RenderSnapshotIvan Molodetskikh
2024-04-13Implement window resize animationsIvan Molodetskikh
2024-04-10Reimplement window closing anim in an efficient wayIvan Molodetskikh
- Keep a root surface cache to be accessible in surface destroyed() - Only snapshot during / right before closing, rather than every frame - Store textures rather than elements to handle scale and alpha properly
2024-04-09Implement window closing animationsIvan Molodetskikh
2024-04-08Implement window open shift in terms of window-movementIvan Molodetskikh
This removes the quite unobvious visual size, and fixes jerking when opening multiple windows in quick succession.
2024-03-24Implement block-out-from window rule, fix alpha on window screenshotsIvan Molodetskikh
2024-03-24Implement opacity window ruleIvan Molodetskikh
2024-03-23Add is-active window rule matcherIvan Molodetskikh
2024-03-19Implement draw-border-with-background window ruleIvan Molodetskikh
2024-03-19Implement window rule reloading and min/max size rulesIvan Molodetskikh
2024-03-19Wrap mapped windows in a MappedIvan Molodetskikh
2024-03-19Remove remaining Window-specific functionsIvan Molodetskikh
2024-03-19Move PartialEq from LayoutElement to an associated typeIvan Molodetskikh
2024-03-19Workspace back and forth (#253)FluxTape
* implement workspace back and forth * Make our own ID counter instead of SerialCounter, use a newtype * Rename FocusWorkspaceBackAndForth to FocusWorkspacePrevious * Add focus-workspace-previous to tests * Don't special case in switch_workspace_previous * Minor clean up * Add switch_workspace_auto_back_and_forth to tests * Skip animation on switch_workspace_previous * Preserve previous_workspace_id on workspace movement * Make Workspace::id private with a getter Reduce the chance it gets overwritten. * Add test for workspace ID uniqueness * Update previous workspace ID upon moving workspace across monitors --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2024-03-12Fix spelling mistakeIvan Molodetskikh
2024-03-02Change horizontal gesture to focus furthest windowIvan Molodetskikh
2024-03-02Make vertical touchpad swipe inertialIvan Molodetskikh
Values and implementation are heavily inspired by AdwSwipeTracker.
2024-03-01Correctly handle parsing of Binds and DefaultColumnWidth (#234)sodiboo
* add dev dependencies to flake * parse only one default-column-width * require exactly one action per bind, and unique keys for binds * use proper filename for config errors if possible * fix duplicate keybinds after invalid action, lose some sanity
2024-02-29Move workspace gesture into monitor & fix missing workspace cleanupIvan Molodetskikh