aboutsummaryrefslogtreecommitdiff
path: root/src/input
AgeCommit message (Collapse)Author
2025-10-02Support calibration-matrix in touch input configSzybet
2025-10-02layout: Deduplicate move_workspace_to_output()Ivan Molodetskikh
2025-08-29Add cycle back feature for presets of column/window width/height.Said Kadrioski
2025-08-27Fix focus=false for move-column-to-workspace*, add to ↵gibberish
move-window-to-workspace-up/down
2025-08-26input: Don't hide overlays on a11y-consumed key pressesIvan Molodetskikh
2025-08-26Remove redundant commentIvan Molodetskikh
2025-08-26Implement screen reader announcements via AccessKitIvan Molodetskikh
2025-08-21Unfocus layout when exit confirm dialog is openIvan Molodetskikh
Screen readers expect closing a modal dialog to reannounce the previous focus. This makes the exit confirm dialog more modal in this sense: it will unfocus the layout and then focus it back when closed, giving the desired behavior.
2025-08-21Simplify/deduplicate hot corner computationIvan Molodetskikh
2025-08-21Move fallibility inside ExitConfirmDialogIvan Molodetskikh
Makes it less annoying on the outside.
2025-08-20Add spawn-sh, spawn-at-startup-shIvan Molodetskikh
Our top 10 most confusing config moments
2025-08-19Add per-axis scroll speed config for input devices (#2109)Bernardo Kuri
* Add per-axis scroll speed config for input devices. Accepts negative values to inverse scroll direction. Properly complements/overrides global `scroll-direction` setting. Includes docs and tests. * Update per-axis scroll factor implementation after testing - Refined configuration structure in niri-config - Updated input handling to use per-axis scroll factors - Added comprehensive test snapshots - Updated documentation with per-axis examples 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Simplify per-axis scroll factor implementation per review feedback - Make documentation concise and clear - Remove unnecessary comments and test helper functions - Use inline snapshots for tests - Rename get_factors() to h_v_factors() for clarity - Remove unnecessary .clone() calls (ScrollFactor is Copy) - Reduce test count to essential cases only - Fix comment about window factor override behavior 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Remove unnecessary ScrollFactor::new() helper function The maintainer prefers minimal code, so removing this helper and constructing ScrollFactor directly in tests. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix scroll factor behavior - all settings now multiply with window factor Per maintainer feedback, both combined and per-axis scroll settings should multiply with the window-specific scroll factor, not override it. This ensures consistent behavior regardless of configuration method. Also removed the now-unused has_per_axis_override() method. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Final cleanup: remove redundant comments and unused snapshot files - Removed unused snapshot files (now using inline snapshots) - Removed redundant inline comments in tests - Simplified test descriptions to be more concise 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Convert scroll factor parsing tests to use assert_debug_snapshot Updates parse_scroll_factor_combined, parse_scroll_factor_split, and parse_scroll_factor_partial tests to use assert_debug_snapshot instead of manual assert_eq comparisons, as requested in PR review. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Convert to inline snapshots as requested - Convert all scroll factor parsing tests to use inline snapshots instead of external files - Remove external snapshot files to keep test directory clean - All tests still pass with inline snapshot assertions 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix missed assert_eq in parse_scroll_factor_mixed test Converts the remaining assert_eq calls to assert_debug_snapshot with inline snapshots in the mixed syntax test function. Also fixes raw string delimiters from ### to #. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Convert scroll_factor_h_v_factors test to use assert_debug_snapshot Makes all scroll factor tests consistent by using snapshots instead of assert_eq for better maintainability. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * fixes --------- Co-authored-by: Bernardo Kuri <github@bkuri.com> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-08-09Add the `LoadConfigFile` action (#2163)vanderlokken
* Add the `LoadConfigFile` action * fixes --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-07-31Implement org.fd.a11y KeyboardMonitorIvan Molodetskikh
Makes Orca work with niri: - keyboard watching and announcing everywhere (not just GTK 3 windows) - grabs for the Orca modifier (with double-press to pass through) and keystrokes
2025-06-19Expose libinput Button Scrolling Button Lock Enabled propertyNikolay Yakimov
2025-06-12screenshot_ui: Move selection when holding SpaceIvan Molodetskikh
2025-06-12Implement move-column/window-to-monitor actions for the screenshot UIIvan Molodetskikh
2025-06-11Expand screenshot UI to handle move-X-or-to-workspace/monitor-X (#1669)Illia Ostapyshyn
* Expand screenshot UI to handle more moving actions Currently, screenshot UI handles MoveColumn{Left,Right} and MoveWindow{Up,Down} which move the screenshot selection as if it were a floating window. Expand this to include MoveColumn*OrToMonitor* and MoveWindow*OrToWorkspace* and adjust their logic to move the screenshot selection. * Update src/input/mod.rs --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-06-09Accept FloatOrInt for input accel_speed, animation slowdownIvan Molodetskikh
Technically cfg-breaking due to introducing min/max limits at parse time, but values outside these limits were invalid anyway, so maybe it's fine?
2025-05-25Rename Un/Set/ToggleUrgent to Un/Set/ToggleWindowUrgentIvan Molodetskikh
Overlooked this when reviewing. This change is not cfg-breaking (since you can't bind these directly), but it does break calling these actions through IPC. I don't imagine they are widely used though, and the original PR author who also implemented urgency for bars said he didn't use these actions either.
2025-05-23input: do not revert fully invisible cursor to hidden (#1650)Duncan Overbruck
* input: do not force redraw to hide an already hidden cursor * more --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-05-22input: Add missing check for output underIvan Molodetskikh
2025-05-21input: Add missing redraws on urgency actionsIvan Molodetskikh
The layout urgent colors update even without window rule changes.
2025-05-16Deal with new Clippy warningsIvan Molodetskikh
2025-05-12Add center-visible-columns actionIvan Molodetskikh
2025-05-10add {toggle,set,unset}-urgent cli actionsDuncan Overbruck
2025-05-09Add a clickable button to capture the screenshotIvan Molodetskikh
Allows tablet-, touch- and mouse-only confirmation.
2025-05-09Extract confirm_screenshot()Ivan Molodetskikh
2025-05-09Add touch selection support to the screenshot UIIvan Molodetskikh
2025-05-09Split ScreenshotUi::pointer_down() and up()Ivan Molodetskikh
2025-05-09Extract evt.slot()Ivan Molodetskikh
2025-05-09Rename touch_location to posIvan Molodetskikh
2025-05-09Support tablet input for screenshot UI selectionIvan Molodetskikh
2025-05-09Use early returnIvan Molodetskikh
2025-05-09Simplify ScreenshotUi::pointer_button()Ivan Molodetskikh
2025-05-01Implement --focus for MoveColumnToWorkspace/Up/DownAberter Yan
2025-04-27Fix pointer hiding so that it is no longer annoying (#1426)bogdanov
* replace `pointer_hidden` with `pointer_visiblity` * disable hidden pointer after content underneath has changed * fixes --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-04-25Implement top-left hot corner to toggle the OverviewIvan Molodetskikh
Compared to third-party implementations such as waycorner: - It works during interactive window move (no surfaces receive pointer focus in this case, so this cannot work through layer-shell). - It works during drag-and-drop. - It disables itself over fullscreen windows. - It does not prevent direct scanout.
2025-04-25overview: Add touchscreen gesturesIvan Molodetskikh
2025-04-25overview: Add two-finger touchpad scrollIvan Molodetskikh
2025-04-25overview: Add hardcoded mouse scroll bindsIvan Molodetskikh
2025-04-25Implement an OverviewIvan Molodetskikh
2025-04-25Pass target workspace to view offset grabIvan Molodetskikh
2025-04-25Reformat scroll factor computationIvan Molodetskikh
2025-04-25Remove cancellation from swipe gesturesIvan Molodetskikh
It only worked for workspace switch, and even there it was more confusing than helpful.
2025-04-06Fix typo in commentIvan Molodetskikh
2025-04-04input: Fix move-workspace-to-index being one offIvan Molodetskikh
2025-04-04input: Don't panic on resize edge None when window is SomeIvan Molodetskikh
This can already happen with the tab indicator, it will happen more onwards.
2025-03-29layout: Remove duplicated functionIvan Molodetskikh
2025-03-29Make move-window-to-workspace focus=false work across monitors tooIvan Molodetskikh