about summary refs log tree commit diff stats
path: root/res
diff options
context:
space:
mode:
authorbptato <nincsnevem662@gmail.com>2024-05-31 00:27:54 +0200
committerbptato <nincsnevem662@gmail.com>2024-05-31 00:53:49 +0200
commit27a39add498a9b1dca790c11a14cc3320cce2e31 (patch)
treebcd3e836591d015c5b574f1613b08b9752bcd739 /res
parenta78fa4ee235006239bf9e81d8d83adc59415b524 (diff)
downloadchawan-27a39add498a9b1dca790c11a14cc3320cce2e31.tar.gz
pager: rework D/discard buffer
The previous solution had the issue that it switched between "delete
buffer, then move back" and "delete buffer, then move forward" depending
on whether the buffer was the root of the buffer tree, which made its
behavior quite unpredictable.

Now the pager (sort of) remembers the direction you are coming from,
and D moves in that direction. So e.g.:

* Enter, D just moves back to where you were coming from (as before)
* Comma, D deletes the previous buffer, then returns to the current
  buffer

If no buffer exists in the target direction, then we alert.

Also, new commands are: `d,' `d.'. They do the same thing the
non-d-prefixed variations do, but also delete the current buffer. Useful
if you're no longer sure where you are coming from, but know where you
want to go. (`d,' in particular is equivalent to w3m's `B'.)
Diffstat (limited to 'res')
-rw-r--r--res/chawan.html5
-rw-r--r--res/config.toml4
2 files changed, 8 insertions, 1 deletions
diff --git a/res/chawan.html b/res/chawan.html
index 1faf679e..43c093e8 100644
--- a/res/chawan.html
+++ b/res/chawan.html
@@ -57,7 +57,10 @@ up/down by one row
 <li><kbd>y</kbd>: yank (copy) current selection to system clipboard (needs xsel)
 <li><kbd>U</kbd>: reload page
 <li><kbd>,</kbd> (comma), <kbd>.</kbd> (period): previous/next buffer
-<li><kbd>D</kbd>: discard (delete) current buffer
+<li><kbd>D</kbd>: discard (delete) current buffer, then move back to where you
+came from
+<li><kbd>d,</kbd>, <kbd>d.</kbd>: discard (delete) current
+buffer, then move to previous/next buffer
 <li><kbd>M-y</kbd>: copy current buffer's URL to clipboard (needs xsel)
 <li><kbd>yu</kbd>: copy the link currently under the cursor to clipboard (needs
 xsel)
diff --git a/res/config.toml b/res/config.toml
index 7780db51..b1012a3c 100644
--- a/res/config.toml
+++ b/res/config.toml
@@ -62,6 +62,8 @@ reloadBuffer = '() => pager.reload()'
 lineInfo = '() => pager.lineInfo()'
 toggleSource = '() => pager.toggleSource()'
 discardBuffer = '() => pager.discardBuffer()'
+discardBufferPrev = '() => pager.discardBuffer(pager.buffer, "prev")'
+discardBufferNext = '() => pager.discardBuffer(pager.buffer, "next")'
 discardTree = '() => pager.discardTree()'
 prevBuffer = '() => pager.prevBuffer()'
 prevSiblingBuffer = '() => pager.prevSiblingBuffer()'
@@ -378,6 +380,8 @@ U = 'cmd.pager.reloadBuffer'
 C-g = 'cmd.pager.lineInfo'
 '\' = 'cmd.pager.toggleSource'
 D = 'cmd.pager.discardBuffer'
+'d,' = 'cmd.pager.discardBufferPrev'
+'d.' = 'cmd.pager.discardBufferNext'
 M-d = 'cmd.pager.discardTree'
 ',' = 'cmd.pager.prevBuffer'
 'M-,' = 'cmd.pager.prevSiblingBuffer'