aboutsummaryrefslogtreecommitdiff
path: root/niri-config
AgeCommit message (Collapse)Author
2025-08-26Bump dependenciesIvan Molodetskikh
2025-08-22exit_confirm_dialog: Add open/close animationIvan Molodetskikh
2025-08-20Rename spawn-at-startup-sh => spawn-sh-at-startupIvan Molodetskikh
Makes a bit more sense
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-17github wiki replacement / mkdocs-docs (#2147)Kent Daleng
* Add wiki based on mkdocs * wording fixes * fix github bg color on narrow * Fix left sidebar section headers being bigger than pages * fix hover accent * fix list rendering on fractional layout * fix videos * fix automatic full links * remove redundant commented css * improve dark mode contrast * update pygments for better child node coloring * update logo * remove blank lines * add systemd language hint --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-08-17Add ConfigLoaded event to IPC, option to disable built-in notification (#1829)Horu
* feat: config reload ipc event * cleanups * Rename and move the new config option * rename to ConfigLoaded and emit at connection --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-08-11Fix new lifetime warningsIvan Molodetskikh
2025-08-09Add the `LoadConfigFile` action (#2163)vanderlokken
* Add the `LoadConfigFile` action * fixes --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-08-07niri-config: add keep-max-bpc-unchanged option (#2195)BB
* niri-config: add disable-set-bpc option setting bpc to 8 bricks some OLED displays driven by amdgpu * change to keep-max-bpc-unchanged and add to wiki * fmt * Update wiki/Configuration:-Debug-Options.md --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-08-05fix hot reloading `/etc/niri/config.kdl` (#1907)sodiboo
* refactor config load logic, and properly watch the system config path * move config creation to niri-config, and make the errors a bit nicer notably, "error creating config" is now a cause for "error loading config", instead of it being one error and then "error loading config: no such file or directory". also, failure to load a config is now printed as an error level diagnostic (because it is indeed an error, not just a warning you can shrug off) * refactor watcher tests; add some new ones now they check for the file contents too! and i added some tests for ConfigPath::Regular, including a messy one with many symlink swaps * fixes --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-08-04pw_utils: Wait for frame completion before queueingIvan Molodetskikh
Without explicit sync, we have no way to signal the PipeWire consumer when the rendering is done. So, wait until it's done before giving it the frame. This should fix flickering screencasts on NVIDIA.
2025-07-13Fix new Clippy warningsIvan Molodetskikh
2025-06-19Expose libinput Button Scrolling Button Lock Enabled propertyNikolay Yakimov
2025-06-11Clamp colors to valid values when parsing configAndrew Davis
The oklch color space often creates weird values when parsed by csscolorparser. clamping the output to values between 0 and 1 should fix inconsistent color handling on borders.
2025-06-11Upgrade deps and Smithay (cursor-shape v2)Ivan Molodetskikh
2025-06-11Add deactivate-unfocused-windows debug flag (#1706)sashomasho
* force xdg deactivation on invisable workspaces This debug option provides a workaround for many Chromium-based chat applications that fail to show notifications when they're active in a workspace that's not currently visible and don't have keyboard focus Signed-off-by: Alex Yosifov <sashomasho@gmail.com> * fixes --------- Signed-off-by: Alex Yosifov <sashomasho@gmail.com> Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-06-09Don't forget to update insta snapshotsIvan Molodetskikh
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-06-07Implement xwayland-satellite integrationIvan Molodetskikh
2025-06-03add option to hide unbound actions in hotkey overlay (#1618)Kent Daleng
* add option to hide unbound actions in hotkey overlay * fix config test, add some docs * Add kdl language hint Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com> * Improve docs Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com> * hide_unbound -> hide_not_bound * forgot to rename in wiki * filter actions before calling format * use any instead of contains * retain instead of filter --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-06-03Add debug option to skip cursor-only updates while VRR is active (#1616)Gwen
* Add debug option to skip cursor-only updates while VRR is active * Update niri-config/src/lib.rs Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com> * Update src/backend/tty.rs Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com> * Update wiki/Configuration:-Debug-Options.md Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com> * Update Configuration:-Debug-Options.md * Update tty.rs * Update lib.rs * Update Configuration:-Debug-Options.md --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-05-25Bump version to 25.05.1Ivan Molodetskikh
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-17Bump version to 25.05Ivan Molodetskikh
2025-05-12Add center-visible-columns actionIvan Molodetskikh
2025-05-12Implement baba-is-float for layersIvan Molodetskikh
2025-05-10Add is-urgent window rule matcherIvan Molodetskikh
2025-05-10Add urgent color support to tab indicatorsIvan Molodetskikh
2025-05-10add {toggle,set,unset}-urgent cli actionsDuncan Overbruck
2025-05-10add urgent border color and gradientDuncan Overbruck
2025-05-06Add layout background-color settingIvan Molodetskikh
2025-05-06Implement place-within-backdrop layer ruleIvan Molodetskikh
2025-05-01Implement --focus for MoveColumnToWorkspace/Up/DownAberter Yan
2025-05-01Adjust the workspace shadow defaults some moreIvan Molodetskikh
2025-05-01Normalize workspace shadows to 1080 px tall screen, adjust defaultsIvan Molodetskikh
Workspace gaps are dependent on screen size, so it makes sense to make shadows depend on the screen size to, to avoid them filling more or less of the gap.
2025-05-01Add workspace-shadow {} config to overview {}Ivan Molodetskikh
2025-04-30feat: implement support to enable numlock at startuperdii
Signed-off-by: erdii <me@erdii.engineering>
2025-04-28Add backdrop-color setting to overview {}Ivan Molodetskikh
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 DnD up/down scrollingIvan Molodetskikh
2025-04-25overview: Add hardcoded mouse scroll bindsIvan Molodetskikh
2025-04-25Implement an OverviewIvan Molodetskikh
2025-04-25Render workspaces separately with gaps betweenIvan Molodetskikh
This design makes more sense spatially, and is required for the Overview. Gaps also make it clear how clipping windows to workspace bounds works. Background and bottom layer-shell surfaces get duplicated for each workspace, while top and overlay stay "on top".
2025-03-31Allow negative shadow spreadLunarEclipse
2025-03-31add toggle-keyboard-shortcuts-inhibit to CLI/IPC (#1366)sodiboo
* add toggle-keyboard-shortcuts-inhibit to CLI/IPC missed it in ef8d5274b849fe0bd76ab7159765202ac98f7bbc or https://github.com/YaLTeR/niri/pull/630 or 0584dd2f1e82417bdabcc0d8cb20fddc2e8cc5e7 or whatever * Update niri-ipc/src/lib.rs --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-03-29Add option 'focus-at-startup' to focus a chosen output on start (#1323)lualeet
* Implement default-output * Fix incorrect wiki string * Center mouse on start * Move default-output to Output.focus-at-startup * fixes --------- Co-authored-by: lualeet <lualeet@null.null> Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-03-29Add focus argument to move-window-to-workspace (#1332)nyx
* layout: add focus flag to move-window-to-workspace * lib: update comment * misc: minor dup refactor * input: format code * layout: minor nit * layout: update comment * input: remove unnecessary conditionals * misc: replace boolean * tests: fix the failing one * layout: change to smart * ipc: Option<bool> -> bool * lib: format code * Rewrite focus doc comment --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-03-22Add option to warp-mouse-to-focus to always centerFlorian Finkernagel
2025-03-22Add mod-key and mod-key-nested settingspeelz