aboutsummaryrefslogtreecommitdiff
path: root/src/handlers
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-15Clarify surface destroyed commentIvan Molodetskikh
2024-05-15Use correct function name in commentIvan Molodetskikh
2024-05-15Clear fd flags before sending selectionIvan Molodetskikh
2024-05-14Refactor column and tile offsets, fix a few issuesIvan Molodetskikh
2024-05-11Implement Mod+MMB view offset gestureIvan Molodetskikh
2024-05-11Group input-related things in a subfolderIvan Molodetskikh
2024-05-11Reset double click timer on gesture triggerIvan Molodetskikh
2024-05-11Don't pass double-resize-right click to windowIvan Molodetskikh
2024-05-11Implement double-resize-click to reset height/toggle full widthIvan Molodetskikh
2024-05-11Stop confining the pointer during resize grabIvan Molodetskikh
2024-05-10Implement interactive mouse resizingIvan Molodetskikh
2024-05-05Don't unwrap clientIvan Molodetskikh
If Smithay posts an error, client will become None immediately, even while the surface may still receive events.
2024-05-01Move unmap snapshot from Mapped to TileIvan 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 border window ruleIvan Molodetskikh
2024-04-23Fix spelling mistakeIvan 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-23Use PopupKind instead of PopupSurfaceKirill Chibisov
2024-04-13Unify Animation- and RenderSnapshotIvan Molodetskikh
2024-04-13Implement window resize animationsIvan Molodetskikh
2024-04-13Move unmapped check to a pre-commit hookIvan 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-09Add missing mouse warp to commit unmapIvan Molodetskikh
2024-04-09Update SmithayIvan Molodetskikh
2024-04-01Fix and add missing calls to DRM leasingIvan Molodetskikh
2024-03-28tty: Add check for zero gamma sizeIvan Molodetskikh
2024-03-23Add is-active window rule matcherIvan Molodetskikh
2024-03-23Lift output clones from queue_redraw()Ivan Molodetskikh
2024-03-23Pass Un/Mapped to window rule resolutionIvan 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-19Move PartialEq from LayoutElement to an associated typeIvan Molodetskikh
2024-03-18Warp mouse to focus on window closingIvan Molodetskikh
2024-03-18Warp mouse to focus on new window appearingIvan Molodetskikh
2024-03-15Store gamma changes to apply on session resumeIvan Molodetskikh
2024-03-15gamma-control: Misc. clean ups and fixesIvan Molodetskikh
2024-03-15Adds support for wlr_gamma_control_unstable_v1 protocolphuhl
2024-03-12Reapply "Add wp-viewporter"Ivan Molodetskikh
This reverts commit 40cec34aa4a7f99ab12b30cba1a0ee83a706a413. The Chromium issues are now fixed.
2024-03-10Revert "Add wp-viewporter"Ivan Molodetskikh
This reverts commit 348690afb637514a38ad53fd61bf5e0102e419d6. Apparently this breaks input in Chromium: the input region won't resize together with the window.
2024-03-08Add xdg-foreignIvan Molodetskikh
2024-03-08Add wp-viewporterIvan Molodetskikh
Doesn't hurt I guess.
2024-03-08Implement wlr-screencopy v1 (#243)sodiboo
* Implement wlr-screencopy * Finish the implementation Lots of changes, mainly to fix transform handling. Turns out, grim expects transformed buffers and untransforms them by itself using info from wl_output. This means that render helpers needed to learn how to actually render transformed buffers. Also, it meant that y_invert is no longer needed. Next, moved the rendering to the Screencopy frame handler. Turns out, copy() is more or less expected to return immediately, whereas copy_with_damage() is expected to wait until the next VBlank. At least that's the intent I parse reading the protocol. Finally, brought the version from 3 down to 1, because copy_with_damage() will need bigger changes. Grim still works, others not really, mainly because they bind v3 unnecessarily, even if they don't use the damage request. --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
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-28Update SmithayIvan Molodetskikh
2024-02-28chore: update smithayChristian Meissl
2024-02-24Add open-fullscreen window ruleIvan Molodetskikh
2024-02-23Handle un-/fullscreen after initial configureIvan Molodetskikh