| Commit message (Collapse) | Author | Age |
| ... | |
| |
|
|
|
|
|
|
|
|
|
|
| |
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This PR adds a keybind condition called `original-input-empty` that is
true when the TUI was invoked from an empty prompt line; users can use
this to change behavior based on the original prompt's contents; for
example:
```toml
[keymap.emacs]
"esc" = [
{ when = "original-input-empty", action = "return-query" },
{ action = "return-original" }
]
```
Thanks Hazilo in Discord for the suggestion.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This PR fixes:
+ #3154
+ #3164
+ #3166
It changes the following:
+ Pass ATUIN_SESSION to tmux popup
+ Use `command rm` to bypass user-defined configs
+ Disable tmux popup by default
## Checks
- [x] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [x] I have checked that there are no existing pull requests for the
same thing
---------
Co-authored-by: Ellie Huxtable <ellie@elliehuxtable.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
improvements (#3161)
Addresses the keybinding audit (#3157):
- Add missing vim-normal bindings: 0, $, w, b, e, x, dd, D, C
- Add new CursorWordEnd action for vim 'e' motion
- Add VimChangeToEnd action for vim 'C' motion
- Add Media key support (play, pause, stop, volume, etc.)
- Refactor inspector keymap to be minimal but respect enter_accept
and provide vim-style j/k navigation for vim users
- Add $ to special character parsing
- Replace eprintln! with tracing::warn! for config errors
- Document shifted punctuation keys and media keys
To be rebased once #3158 is merged
|
| |
|
|
|
|
|
|
|
|
|
| |
Fixes #3156
Fixes #3085
* `Enter` was not bound in the default vim-normal mode keybinds
* `Shift-tab` can be reported as `BackTab`; we convert this at detection
time to `shift-tab`
* `Insert` key was not handled
Verified fixes locally.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
## Checks
- [x] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [x] I have checked that there are no existing pull requests for the
same thing
I don't know why the previous PR
https://github.com/atuinsh/atuin/pull/2643 got auto-closed after a
rebase, so I am re-creating it.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This shows stderr output from `atuin search -i` in PowerShell:
The output looks like this:
<img width="628" height="149" alt="image"
src="https://github.com/user-attachments/assets/c0a4bc9a-5d57-415f-a5b4-9c497744c6e0"
/>
Currently reproducible with the following config:
```toml
[keymap.emacs]
"foo" = "bar"
"=" = "bar"
```
I started by using `Start-Process` in the first commit, but then rewrote
it entirely as using a `Process` object directly should be more stable
(`Start-Process` already [caused
issues](https://github.com/atuinsh/atuin/pull/2543#issuecomment-2647555114)
in the past).
This fixes the PowerShell part of #3134
## Checks
- [x] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [x] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
## Checks
- [x] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [x] I have checked that there are no existing pull requests for the
same thing
## Summary
SQLite doesn't support an `IF NOT EXISTS` on `ALTER TABLE`
> https://www.sqlite.org/lang_altertable.html
```
atuin | Caused by:
atuin | Other(while executing migration 20260127000000: error returned from database: (code: 1) near "exists": syntax error
atuin |
atuin | Caused by:
atuin | 0: error returned from database: (code: 1) near "exists": syntax error
atuin | 1: (code: 1) near "exists": syntax error
```
The fix works on my setup
Ref:
https://github.com/atuinsh/atuin/pull/3108#pullrequestreview-3713606584
Signed-off-by: Sped0n <hi@sped0n.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
resolves #3142
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
e.g. bash has these mapped to Ctrl-u/k.
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
## Checks
- [x] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [x] I have checked that there are no existing pull requests for the
same thing
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
(#3138)
Fixes two keymap issues introduced in #3127:
1. Space key does nothing - Pressing space in the search input didn't
insert a space character
2. F12 not recognized - Function keys (F1-F24) couldn't be used in
`[keymap]` config
|
| |
|
|
|
|
|
|
|
|
|
|
| |
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
Resolves #3134
Otherwise, I would like to figure out a nicer way for both logging, and
for surfacing user-facing errors from the tui. perhaps similar to our
current method of shell communication (`__atuin_accept`, etc), just
providing an error for the shell integration to log
## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
|
|
|
|
|
|
|
|
| |
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
groundwork for #2155. These functions can be reused when building the
interactive TUI.
Adds `--sort-by`, `--reverse`, `--name`, and `--value` flags to `atuin
dotfiles alias list` and `atuin dotfiles var list`. Also adds
`--exports-only` and `--shell-only` for vars.
happy to expand (or reduce?) on this if needed.
<details>
<summary>**Demo/Examples:**</summary>
`$atuin dotfiles alias list --reverse`
```bash
vim=nvim
py=python3
ll=ls -la
k=kubectl
gs=git status
gp=git push
gd=git diff
gc=git commit
dc=docker-compose
d=docker
```
`$atuin dotfiles alias list --sort-by value`
```bash
d=docker
dc=docker-compose
gc=git commit
gd=git diff
gp=git push
gs=git status
k=kubectl
ll=ls -la
vim=nvim
py=python3
```
`$atuin dotfiles alias list -n g`
```bash
gc=git commit
gd=git diff
gp=git push
gs=git status
```
`$atuin dotfiles var list --exports-only`
```bash
export EDITOR=vim
export LANG=en_US.UTF-8
export PAGER=less
export RUST_BACKTRACE=1
```
</details>
## Checks
- [x] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [x] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These files have been known to have corruption issues. SQLite will
perform better across filesystems for reads/writes across threads, and
will lock as expected.
I've also put the session file in there, though I'm 50/50 on it - I'll
be replacing it with keyring storage asap anyway.
The key file is _not_ included. It should ~never be changed, and should
be easy for the user to secure + manage themselves
In the future, instead of creating more files, we can just use this as a
kv store
Resolves https://github.com/atuinsh/atuin/issues/2336, resolves
https://github.com/atuinsh/atuin/issues/1650
## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds a parameter to change the upload/download page size, this
could help if one gets a '413' in a selfhosted scenario.
## Checks
- [x] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [x] I have checked that there are no existing pull requests for the
same thing
---------
Co-authored-by: Ellie Huxtable <ellie@elliehuxtable.com>
|
| |
|
|
|
|
|
|
|
| |
Resolves #3028
## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, home_dir() read $HOME directly and panicked if it wasn't
set. This could happen in environments like `nix develop -i` which strip
the environment.
The directories crate (already a dependency) falls back to getpwuid_r
when $HOME is not set, resolving the home directory from /etc/passwd.
Fixes #3123
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
We had an issue where the server was returning an empty page, when it
should not, and causing the client to keep looping
While such bugs should not happen, putting the client into a loop does
not help
## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is related to:
- #3090
- #1906
---
## No longer relevant:
~I often just hold the backspace key to clear the query line in Atuin,
and the change in #3090 makes it no longer possible: it accepts the
current history entry instead.~ 🤯
~It may be a muscle memory thing, but it also feels wrong to me for the
left key to accept the current entry. I'd prefer for it to do nothing
when the cursor is at the start of the line (I've set
`exit_past_line_start = false` in my config).~
~This PR makes the new behavior configurable: it adds an
`accept_past_empty_line` setting (naming is *hard*, feel free to find a
better name) which lets you disable it. It also updates the `[keys]`
docs.~
BTW wouldn't setting the `accept_past_line_start` and
`accept_with_backspace` settings to `true` (maybe by default) have the
same effect as what #3090 introduced?
## Checks
- [x] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [x] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The default width of the `exit` column is 3, which matches the 0-255
values on Linux. However, on Windows it is a 32-bit integer, and can be
anything from -2147483648 to 2147483647. Popular tools such as `winget`
apparently make use of that.
Here's an example with `columns = ["exit", "time", "duration",
"directory", "command"]`:
<img width="647" height="416" alt="image"
src="https://github.com/user-attachments/assets/d73b0487-3c77-4049-8487-01b2aab29a44"
/>
This PR changes the default column width to 11 on Windows to match these
values. The result is:
<img width="601" height="412" alt="image"
src="https://github.com/user-attachments/assets/b4b95f40-f223-400d-83c4-74d71e070b3e"
/>
## Checks
- [x] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [x] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
`$LASTEXITCODE` is an [automatic
variable](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_automatic_variables?view=powershell-7.5#lastexitcode)
in PowerShell which holds the exit code of the last *native* program
which has run. It's a close equivalent to `$?` in bash (PowerShell also
has [its own `$?`
variable](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_automatic_variables?view=powershell-7.5#section-1),
but it's a boolean).
Atuin is a native program, and the `PSConsoleHostReadLine` function
calls `atuin history start`, which resets this variable to 0 (or to
something else if it fails).
This PR resets this variable to its previous value, as it is that one
which the user will expect.
Before:
<img width="453" height="225" alt="image"
src="https://github.com/user-attachments/assets/5fc781d3-dbba-4737-b2ec-7ba73739d006"
/>
After:
<img width="460" height="212" alt="image"
src="https://github.com/user-attachments/assets/a2db9bca-343c-48fc-ab45-167e0dd6f7f9"
/>
Default behavior (without a profile file or Atuin):
<img width="351" height="147" alt="image"
src="https://github.com/user-attachments/assets/47d6aa28-1ea9-4e55-9879-98359ad3fbcf"
/>
## Checks
- [x] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [x] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
In the [2.0.0](https://github.com/ardaku/whoami/releases/tag/v2.0.0)
series, `whoami` removed all infallible function variants, and removed
the `fallible` module, moving those functions to the root module.
Therefore, I replaced `whoami::fallible::hostname` with
`whoami::hostname` (the same function with the same signature, just
moved to the root module).
For `whoami::username`, the infallible function that `atuin` was using
before is gone, and we must add error handling. I chose to fall back to
the string `"unknown-user"` if getting the username fails, just as
`"unknown-host"` is already the fallback when getting the hostname
fails. This seemed reasonable to me, but it’s worth double-checking if
there could be any unintended consequences, especially if `unknown-user`
happens to be a real, valid username on the system. The alternatives I
can see would be to panic on failure or to amend the signature of
`get_username()` and all of its call sites with some kind of more
graceful error handling (what?).
## Checks
- [x] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [x] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
|
|
|
|
|
|
| |
Reverts atuinsh/atuin#3090
Can be achieved by setting
```
accept_past_line_start = true
accept_with_backspace = true
```
|
| |
|
|
|
|
|
|
|
|
|
|
| |
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A combined binary was an early dev decision, when I thought most users
would be self hosting. It is now clear that in actual fact, most users
do not self host. So let's avoid forcing every user to have a copy of
the server literally linked in, and let's stop building server deps over
and over.
The deployment for this shouldn't change. `dist` will build a binary for
this automatically, and will also add it to the installer. The latter is
perhaps something we should explore changing too!
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a "continuation" of #1177 - which was a draft that used FIFOs
(named pipes) to get output from the popup, however this causes popup
not being closed properly, so in this PR I use tmpfile to store the
result and read after popup closes. @ellie could you review this PR
please?
P.S. Thank you @immae for sharing your idea!
## Feature
+ Option to use tmux popup window in `config.toml`
+ Customize window width/height in `config.toml`
+ Tmux display-popup for `zsh, bash, fish`
## Checks
- [x] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [x] I have checked that there are no existing pull requests for the
same thing
---------
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
|
| |
|
|
|
|
|
|
|
| |
eg, the user uses tmux, runs zsh again as a nested session, etc
## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
|
|
|
|
|
|
|
|
| |
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
|
|
|
|
|
|
|
|
| |
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing
---------
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Ensure we aren't using multiple versions, etc
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
|
|
|
|
|
|
|
|
| |
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Also change the trailing space of each column to be drawn in
`render_row` instead so that each column is separated by a space no
matter how they are ordered.
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
## Checks
- [x] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [x] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
|
|
|
|
|
|
|
|
| |
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
|
|
|
|
|
|
|
|
| |
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
## Checks
- [x] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [x] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
| |
resolves #3054
|
| | |
|
| |\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
search (#3098)
also parse query in one place.
This supersedes #3097 and can highlight regex matches as well.
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
## Checks
- [x] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [x] I have checked that there are no existing pull requests for the
same thing
|
| | | |
|
| | | |
|
| | |
| |
| |
| | |
also parse query in one place
|
| | | |
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Add vim-style movement commands to vim_normal keymap mode:
- Ctrl+u/d: half-page up/down
- Ctrl+b/f: full-page up/down
- G: jump to visual bottom of history
- gg: jump to visual top of history (multi-key sequence)
- H/M/L: jump to top/middle/bottom of visible screen
Also adds `offset()` getter to ListState for H/M/L functionality, and
includes tests for the new bindings.
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
## Checks
- [x] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [x] I have checked that there are no existing pull requests for the
same thing
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
|