* feat add atuin doctor
* registered -> logged_in
* not logged in, no sync info
* add plugin detection
* add a hack
* clippy
* add filesystem detection
* add title
* hmm
* need interactive shell
* feat(stats): add linux sysadmin commands to common_subcommands
I've been using atuin on my Linux box for some time now and I have
noticed that a few commands that are used rather often are not in the
list of common_subcommands.
This change adds these commands to the list.
* feat(stats): I forgot 'apt'
* Normalize formatting
This makes the commented bits unifed and makes lists multiline and
always adds the trailing comma.
* Add nix to default config
Since we are big fans of it ;)
Add 'I' binding to vim-normal mode (a la 'A' introduced in #1697) to
jump into vim-insert mode at the beginning of the search input.
Also add '/' and '?' bindings to vim-normal mode to clear the search
input and jump into vim-insert mode. This mimics the UX in e.g. `set -o
vi` (bash) or `bindkey -v` (zsh) mode when you are using 'k' and 'j' to
browse history lines and can type '/' or '?' to start a new search. (In
a perfect world it would target the search in the forward or backward
range starting at your current position in the history, but this is a
reasonable first step.)
* fix(client): no panic on empty inspector
* fix: clippy warning
Although I am not that happy with this clippy rule.
I am old school and we learned to put the most likely path first.
Back then compiler optimizations were not too great and cache prediction
was better handled this way.
* Update atuin/src/command/client/search/interactive.rs
---------
Co-authored-by: Ellie Huxtable <ellie@elliehuxtable.com>
* fix(import/zsh-histdb): import exit_status and session
* fix(import/zsh-histdb): avoid session id conflict
* fix(import/zsh-histdb): follow the format conventions of session and hostname
* fix(import/zsh-histdb): duration unit is nanosecond
* feat(client): add config option keys.scroll_exits
If the config option is set the `false`, using the up/down key won't
exit the TUI when scrolled past the first/last entry.
Example:
```
[keys]
scroll_exits = false
```
The default is `true`, which is the current behavior.
* Update atuin/src/command/client/search/interactive.rs
Co-authored-by: Koichi Murase <myoga.murase@gmail.com>
* refactor: add option to config.toml
---------
Co-authored-by: Koichi Murase <myoga.murase@gmail.com>
* add xonsh to `atuin import auto`
* respect $HISTFILE in xonsh importers
* disable up-arrow binding in xonsh when completion menu is active
* include xonsh logic in the same conditional as other shells
* format and fix clippy lints
* feat: support syncing aliases
This is definitely not yet finished, but works for zsh right now.
TODO:
1. Support other shells
2. Cache the alias generation, so we don't have to do a bunch of work at
shell init time
* correct imports
* fix clippy errors
* fix tests
* add the other shells
* support xonsh
* add delete
* update rust, then make clippy happy once more
* omfg fmt too
Fixes https://github.com/atuinsh/atuin/issues/1719
[C-m] is usually identical to [RET] in the terminal protocol, and some
users use [C-m] in place of [RET]. However, kitty's extended keyboard
protocol enables differentiating them so that [C-m] does not function
as does without the extended keyboard protocol.
For the compatibility with terminals without extended keyboard
protocols, we anyway cannot assign a distinct feature to [C-m], so we
can safely add the explicit binding of InputAction::Accept to [C-m].
* add importers for xonsh JSON files and SQLite db
* rustfmt xonsh importers
* remove env-dependent tests from xonsh importers
* pass xonsh_data_dir into path resolver instead of looking up in env
* review: run format
* review: fix clippy errors
---------
Co-authored-by: Ellie Huxtable <ellie@elliehuxtable.com>
Instead of lots of small sqlite transaction, do one monster one.
A single tx with 100s of 1000s of rows should be fine on all systems
A very unscientific test shows this to be roughly 10x faster
The current 'i' binding to switch to insert mode is entirely unintuitive
since what I almost always want to do is append to the current query.
The fact that the cursor extends past the current input (which vim
doesn't do with default settings) adds to the problem. The 'a' key is
what I would reach for, but 'A' makes a lot of sense too so I added
that.
The 'h' and 'l' bindings for moving the cursor also help makes things
a bit more usable.
Low-end devices like RISC-V SBCs are sometimes too slow to initialize SQLite in 0.1s. Option to specify a higher value allows check to pass on such devices with relaxed restrictions.