diff --git a/Cargo.lock b/Cargo.lock
index 8d3e29b..2e4bf00 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -619,7 +619,7 @@ dependencies = [
[[package]]
name = "swayr"
-version = "0.17.0"
+version = "0.18.0"
dependencies = [
"clap",
"directories",
diff --git a/README.md b/README.md
index fc2b34d..cdbe322 100644
--- a/README.md
+++ b/README.md
@@ -173,6 +173,11 @@ These commands change the layout of the current workspace.
* `execute-swayr-command` displays all commands above and executes the selected
one. (This is useful for accessing swayr commands which are not bound to a
key.)
+* `nop` (unsurprisingly) does nothing, the command can be used to break out of a
+ sequence of [window cycling commands](#cycling-commands). The LRU window order
+ is frozen when the first cycling command is processed and remains so until a
+ non-cycling command is received. The `nop` command can conveniently serve to
+ interrupt a sequence without having any other side effects.
### Screenshots
@@ -270,6 +275,17 @@ bindsym $mod+Shift+c exec env RUST_BACKTRACE=1 \
Of course, configure the keys to your liking. Again, enabling rust backtraces
and logging are optional.
+Pending a fix for [Sway issue 6456](https://github.com/swaywm/sway/issues/6456),
+it will be possible to close a sequence of window cycling commands using
+a `nop` command bound to the release of the `$mod` key. Assuming your `$mod`
+is bound to `Super_L` it could look something like this:
+
+```
+bindsym --release Super_L exec env RUST_BACKTRACE=1 \
+ swayr nop >> /tmp/swayr.log 2>&1
+```
+
+
### Configuration
Swayr can be configured using the `~/.config/swayr/config.toml` or
@@ -334,6 +350,9 @@ auto_tile_min_window_width_per_output_width = [
[3440, 1000],
[4096, 1200],
]
+
+[focus]
+lockin_delay = 750
```
In the following, all sections are explained.
@@ -454,6 +473,15 @@ over IPC. Therefore, auto-tiling is triggered by new-window events,
close-events, move-events, floating-events, and also focus-events. The latter
are a workaround and wouldn't be required if there were resize-events.
+
+#### The focus section
+
+In the `[focus]` section, you can configure the amount of time a window
+has to keep the focus in order to affect the LRU order. If a given window
+is only briefly focused, e.g. moving the mouse over it on the way to
+another window, then its position in the LRU order will not be modified.
+
+
### Version changes
Since version 0.8.0, I've started writing a [NEWS](swayr/NEWS.md) file listing the
diff --git a/swayr/Cargo.toml b/swayr/Cargo.toml
index bbd3661..b6dece1 100644
--- a/swayr/Cargo.toml
+++ b/swayr/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "swayr"
-version = "0.17.0"
+version = "0.18.0"
description = "A LRU window-switcher (and more) for the sway window manager"
homepage = "https://sr.ht/~tsdh/swayr/"
repository = "https://git.sr.ht/~tsdh/swayr"
diff --git a/swayr/NEWS.md b/swayr/NEWS.md
index 6d0c1ad..d7aed6c 100644
--- a/swayr/NEWS.md
+++ b/swayr/NEWS.md
@@ -1,3 +1,14 @@
+swayr v0.18.0
+=============
+
+- The LRU window order will no longer be immediately updated when there is a
+ focus change. Instead there is now a short (configurable) delay before the
+ update. The user-visible change is that quickly moving over windows with the
+ mouse, or moving through them using keyboard navigation, will only register
+ the start and destination windows in the LRU sequence.
+- A `nop` command can be used to interrupt a sequence of window-cycling
+ commands.
+
swayr v0.17.0
=============