aboutsummaryrefslogtreecommitdiff
path: root/wiki/Configuration:-Switch-Events.md
diff options
context:
space:
mode:
authorChristian Meissl <meissl.christian@gmail.com>2024-10-18 16:00:40 +0200
committerGitHub <noreply@github.com>2024-10-18 14:00:40 +0000
commit79fd309d6cf84163ff1c5c44f222e6a58dfa2872 (patch)
tree00d53946221acc9fdb4f80253cd8c2178b8b4933 /wiki/Configuration:-Switch-Events.md
parentdd8b2be044c6c67a1c9bf07f287b3967e958b8aa (diff)
downloadniri-79fd309d6cf84163ff1c5c44f222e6a58dfa2872.tar.gz
niri-79fd309d6cf84163ff1c5c44f222e6a58dfa2872.tar.bz2
niri-79fd309d6cf84163ff1c5c44f222e6a58dfa2872.zip
support binding actions to switches (#747)
* support spawn action on switch events this adds a new config section named `switch-events` that allows to bind `spawn` action to certain switch toggles. * Expand docs --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
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"; }
+}
+```