diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2024-11-29 11:37:33 +0300 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2024-11-29 21:57:36 -0800 |
| commit | 8b84afbd38e057c6dd378bdd42b9467d8a7baa24 (patch) | |
| tree | 3c2b09544b63d423691f94f6a37dc9d5b92d6daa | |
| parent | 305fc3b5576c4c6e3d899b3413dbbb8727922cfe (diff) | |
| download | niri-8b84afbd38e057c6dd378bdd42b9467d8a7baa24.tar.gz niri-8b84afbd38e057c6dd378bdd42b9467d8a7baa24.tar.bz2 niri-8b84afbd38e057c6dd378bdd42b9467d8a7baa24.zip | |
Add strict-new-window-focus-policy debug flag
| -rw-r--r-- | niri-config/src/lib.rs | 2 | ||||
| -rw-r--r-- | src/handlers/compositor.rs | 9 | ||||
| -rw-r--r-- | wiki/Configuration:-Debug-Options.md | 14 |
3 files changed, 24 insertions, 1 deletions
diff --git a/niri-config/src/lib.rs b/niri-config/src/lib.rs index 76222934..f49c2496 100644 --- a/niri-config/src/lib.rs +++ b/niri-config/src/lib.rs @@ -1537,6 +1537,8 @@ pub struct DebugConfig { pub keep_laptop_panel_on_when_lid_is_closed: bool, #[knuffel(child)] pub disable_monitor_names: bool, + #[knuffel(child)] + pub strict_new_window_focus_policy: bool, } #[derive(knuffel::DecodeScalar, Debug, Clone, Copy, PartialEq, Eq)] diff --git a/src/handlers/compositor.rs b/src/handlers/compositor.rs index ed36100b..ae53bfc8 100644 --- a/src/handlers/compositor.rs +++ b/src/handlers/compositor.rs @@ -145,7 +145,14 @@ impl CompositorHandler for State { .filter(|token| token.timestamp.elapsed() < XDG_ACTIVATION_TOKEN_TIMEOUT) { Some(_) => ActivateWindow::Yes, - None => ActivateWindow::Smart, + None => { + let config = self.niri.config.borrow(); + if config.debug.strict_new_window_focus_policy { + ActivateWindow::No + } else { + ActivateWindow::Smart + } + } }; let output = if let Some(p) = parent { diff --git a/wiki/Configuration:-Debug-Options.md b/wiki/Configuration:-Debug-Options.md index f622bd68..5ba851fe 100644 --- a/wiki/Configuration:-Debug-Options.md +++ b/wiki/Configuration:-Debug-Options.md @@ -24,6 +24,7 @@ debug { disable-transactions keep-laptop-panel-on-when-lid-is-closed disable-monitor-names + strict-new-window-focus-policy } binds { @@ -194,6 +195,19 @@ debug { } ``` +### `strict-new-window-focus-policy` + +<sup>Since: 0.1.11</sup> + +Disables heuristic automatic focusing for new windows. +Only windows that activate themselves with a valid xdg-activation token will be focused. + +```kdl +debug { + strict-new-window-focus-policy +} +``` + ### Key Bindings These are not debug options, but rather key bindings. |
