aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2024-11-29 11:37:33 +0300
committerIvan Molodetskikh <yalterz@gmail.com>2024-11-29 21:57:36 -0800
commit8b84afbd38e057c6dd378bdd42b9467d8a7baa24 (patch)
tree3c2b09544b63d423691f94f6a37dc9d5b92d6daa
parent305fc3b5576c4c6e3d899b3413dbbb8727922cfe (diff)
downloadniri-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.rs2
-rw-r--r--src/handlers/compositor.rs9
-rw-r--r--wiki/Configuration:-Debug-Options.md14
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.