aboutsummaryrefslogtreecommitdiff
path: root/wiki/Configuration:-Switch-Events.md
diff options
context:
space:
mode:
Diffstat (limited to 'wiki/Configuration:-Switch-Events.md')
-rw-r--r--wiki/Configuration:-Switch-Events.md45
1 files changed, 45 insertions, 0 deletions
diff --git a/wiki/Configuration:-Switch-Events.md b/wiki/Configuration:-Switch-Events.md
new file mode 100644
index 00000000..bb438a20
--- /dev/null
+++ b/wiki/Configuration:-Switch-Events.md
@@ -0,0 +1,45 @@
+### Overview
+
+Switch event bindings are declared in the `switch-events {}` section of the config.
+
+Here are all the events that you can bind at a glance:
+
+```kdl
+switch-events {
+ lid-close { spawn "bash" "-c" "niri msg output \"eDP-1\" off"; }
+ lid-open { spawn "bash" "-c" "niri msg output \"eDP-1\" on"; }
+ tablet-mode-on { spawn "bash" "-c" "gsettings set org.gnome.desktop.a11y.applications screen-keyboard-enabled true"; }
+ tablet-mode-off { spawn "bash" "-c" "gsettings set org.gnome.desktop.a11y.applications screen-keyboard-enabled false"; }
+}
+```
+
+The syntax is similar to key bindings.
+Currently only the `spawn` action are supported.
+
+> [!NOTE]
+> In contrast to key bindings, switch event bindings are *always* executed, even when the session is locked.
+
+### `lid-close`, `lid-open`
+
+These events correspond to closing and opening of the laptop lid.
+
+You could use them to turn the laptop internal monitor off and on (until niri gets this functionality built-in).
+
+```kdl
+switch-events {
+ lid-close { spawn "bash" "-c" "niri msg output \"eDP-1\" off"; }
+ lid-open { spawn "bash" "-c" "niri msg output \"eDP-1\" on"; }
+}
+```
+
+### `tablet-mode-on`, `tablet-mode-off`
+
+These events trigger when a convertible laptop goes into or out of tablet mode.
+In tablet mode, the keyboard and mouse are usually inaccessible, so you can use these events to activate the on-screen keyboard.
+
+```kdl
+switch-events {
+ tablet-mode-on { spawn "bash" "-c" "gsettings set org.gnome.desktop.a11y.applications screen-keyboard-enabled true"; }
+ tablet-mode-off { spawn "bash" "-c" "gsettings set org.gnome.desktop.a11y.applications screen-keyboard-enabled false"; }
+}
+```