aboutsummaryrefslogtreecommitdiff
path: root/src/niri.rs
AgeCommit message (Collapse)Author
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-12Implement custom shader for window-close animIvan Molodetskikh
2024-05-11Implement Mod+MMB view offset gestureIvan Molodetskikh
2024-05-11Group input-related things in a subfolderIvan Molodetskikh
2024-05-11Stop confining the pointer during resize grabIvan Molodetskikh
2024-05-10Implement interactive mouse resizingIvan Molodetskikh
2024-05-08Mark screen transition texture transparentIvan Molodetskikh
2024-05-08Add trace span to do_screen_transitionIvan Molodetskikh
2024-05-07Implement do-screen-transition actionIvan Molodetskikh
2024-05-05Make output name matching case-insensitiveIvan Molodetskikh
2024-05-05Make missing scale = automatic selectionIvan Molodetskikh
That was the intention, but I missed it before.
2024-05-05Implement niri msg outputIvan 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-03Add a semi-working debug-toggle-damage bindingIvan Molodetskikh
2024-05-02Add debug-toggle-opaque-regionsIvan Molodetskikh
2024-04-25Add disable-direct-scanout debug flagIvan Molodetskikh
2024-04-25Add fixme commentIvan Molodetskikh
2024-04-25Only give keyboard focus to exclusive layer-shell surfacesIvan Molodetskikh
Workaround until we properly support on-demand. See: https://github.com/YaLTeR/niri/issues/308
2024-04-24Implement ideal scale factor guessingIvan Molodetskikh
2024-04-23Unconstrain InputMethod's PopupSurfaceKirill Chibisov
Make IME popup to be visible inside the parent and not obscure the text input rectangle region. Fixes https://github.com/YaLTeR/niri/issues/221
2024-04-22Advertise Abgr8888 and Xbgr8888 in shmIvan Molodetskikh
2024-04-21Implement window-resize custom-shaderIvan Molodetskikh
2024-04-14Add variable-refresh-rate flagIvan 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-09Update SmithayIvan Molodetskikh
2024-04-06Hide pointer on touch interactionIvan Molodetskikh
2024-03-31Clarify PipeWire error messageIvan Molodetskikh
2024-03-28Create screenshot directory if it doesn't existIvan Molodetskikh
2024-03-28Implement niri msg focused-windowIvan Molodetskikh
2024-03-27Replace config transform with ipcIvan Molodetskikh
2024-03-27Add logical output info and preferred modes to IPCIvan Molodetskikh
2024-03-27Expose more info in DisplayConfig implIvan Molodetskikh
Needed for the new xdp-gnome.
2024-03-24Make screenshot UI render target-awareIvan Molodetskikh
2024-03-24Implement block-out-from window rule, fix alpha on window screenshotsIvan Molodetskikh
2024-03-23Implement TouchpadScroll bindsIvan Molodetskikh
2024-03-23Rename WheelTracker to ScrollTrackerIvan Molodetskikh
2024-03-23Avoid scroll bind lookup until it is triggeredIvan Molodetskikh
2024-03-23Send pending configure after recomputing window rulesIvan Molodetskikh
2024-03-23Add is-focused window rule matcherIvan Molodetskikh
2024-03-23Split State::refresh() to get a trace spanIvan Molodetskikh
2024-03-23Add is-active window rule matcherIvan Molodetskikh
2024-03-23Lift output clones from queue_redraw()Ivan Molodetskikh
2024-03-23Don't use an idle for queued redraw trackingIvan Molodetskikh
This way we can order the redraw after all the refreshing, where it should be.
2024-03-23Pass Un/Mapped to window rule resolutionIvan Molodetskikh
2024-03-22Implement bind cooldown-msIvan Molodetskikh
2024-03-22Implement mouse wheel bindingsIvan Molodetskikh
2024-03-19Implement window rule reloading and min/max size rulesIvan Molodetskikh