aboutsummaryrefslogtreecommitdiffstats
path: root/atuin-client/src/settings.rs (follow)
Commit message (Collapse)AuthorAge
* chore: move crates into crates/ dir (#1958)Ellie Huxtable2024-04-18
| | | | I'd like to tidy up the root a little, and it's nice to have all the rust crates in one place
* feat: show preview auto (#1804)Helmut K. C. Tessarek2024-04-18
| | | | | * feat: show preview auto * refactor: preview_auto
* feat: allow ignoring failed commands (#1957)Ellie Huxtable2024-04-18
| | | | | * feat: allow ignoring failed commands * cleanup
* fix: use spawn_blocking for file access during async context (#1936)Conrad Ludgate2024-04-12
|
* feat(search): add better search scoring (#1885)Ellie Huxtable2024-04-02
| | | | | * feat(search): add better search scoring * add opt-in
* feat(dotfiles): add enable setting to dotfiles, disable by default (#1829)Ellie Huxtable2024-03-05
|
* fix(tz): attempt to fix timezone reading (#1810)Ellie Huxtable2024-03-02
|
* feat(ui): Add config setting for showing tabs (#1755)Anderson2024-03-01
| | | | | * Add config setting for showing tabs * Added semicolon
* feat(stats): add linux sysadmin commands to common_subcommands (#1784)Helmut K. C. Tessarek2024-02-27
| | | | | | | | | | * 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'
* feat(stats): Normalize formatting of default config, suggest nix (#1764)Sandro2024-02-26
| | | | | | | | | | * 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 ;)
* feat: Add PHP package manager "composer" to list of default common ↵Korvin Szanto2024-02-26
| | | | | | | subcommands (#1757) * Add PHP package manager "composer" to list of default common subcommands * Run cargo fmt and sort entries
* feat(client): add config option keys.scroll_exits (#1744)Helmut K. C. Tessarek2024-02-21
| | | | | | | | | | | | | | | | | | | | | | | | | * 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>
* feat: add 'ignored_commands' option to stats (#1722)David2024-02-15
|
* fix(tests): add Settings::utc() for utc settings (#1677)Ellie Huxtable2024-02-06
| | | | | | Means we don't try and load timezones in tests, as this fails due to multiple threads. Also allow specifying '0' or 'utc' as a timezone
* Add timezone configuration option & CLI overrides (#1517)cyqsimon2024-02-06
| | | | | | | | | | | | | | | | | | | * Allow specifying a timezone in history search/list * Fix clippy complaints * Add a bit more comment on supporting named timezones * Add rudimentary tests * Ditch local timezone test * Timezone configuration support * Set default timezone to `local` * `--tz` -> `--timezone` `--tz` is kept as a visible alias
* feat: add prefers_reduced_motion flag (#1645)Conrad Ludgate2024-02-01
| | | | | | | | | | | * feat: add prefers_reduced_motion flag * use NO_MOTION, and ensure type is bool * update default config --------- Co-authored-by: Ellie Huxtable <ellie@elliehuxtable.com>
* feat: make history list format configurable (#1638)Dongxu Wang2024-01-29
| | | | | | | | | | | * feat: make history list format configurable * Update atuin-client/config.toml * review: run format --------- Co-authored-by: Ellie Huxtable <ellie@elliehuxtable.com>
* chore: add feature to allow always disable check update (#1628)Mag Mell2024-01-26
| | | | | | | | | | | | | * chore: add feature to allow always disable check update In the packaging rules of some distributions, the software's self-update check needs to be permanently turned off This commit will make it easier for these users to * fix: formatting --------- Co-authored-by: Ellie Huxtable <ellie@elliehuxtable.com>
* feat(search): make cursor style configurable (#1595)Koichi Murase2024-01-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * feat(search): make cursor style configurable The vim mode of the interactive Atuin search changes the cursor style on a mode change, but the current implementation has the following issues. * The terminal's cursor style set by the Atuin search remains after Atuin exits. This causes an inconsistency with the shell's setting for the cursor style. * Also, the cursor style for each keymap mode is currently hardcoded in the source code, which is not necessarily consistent with the user's cursor-style setting in the shell. * Since the current implementation does not set the cursor style for the initial keymap mode but only sets the cursor style when the keymap mode is changed, it also causes inconsistency in the cursor style and the actual keymap when the shell's keymap and Atuin's initial keymap mode are different. This patch solves those issues by introducing an opt-in configuration variable `keymap_cursor`. By default, the vim mode does not change the cursor style because there is no way to automatically determine the cursor style consistent with the shell settings. We enable the feature only when the user specifies the preferred cursor style in each mode in their config. Also, the cursor style is set on the startup of the Atuin search (based on the initial keymap mode) and is reset on the termination of the Atuin search (based on the shell's keymap mode that started the Atuin search). * chore(settings): remove dependency on crossterm
* fix: add acquire timeout to sqlite database connection (#1590)Ellie Huxtable2024-01-19
| | | | | | | | | | | | | | | | * fix: add acquire timeout to sqlite database connection This should fix #1503 I wasn't able to trigger enough IO pressure for the SQL connection to be a problem. This adds `local_timeout` to the client config. This is a float, and represents the number of seconds (units in line with the other timeouts, though those are ints). Users may well want to reduce this if they regularly have issues, but by default I think 2s is fine and avoids a non-responsive system in bad situations. * tests
* feat(search): introduce keymap-dependent vim-mode (#1570)Koichi Murase2024-01-16
| | | | | | | * feat(search): introduce keymap-dependent vim-mode * fix(zsh): provide widgets with specific keymaps * fix(settings): unify "vim" and "keymap_mode"
* feat(ui): vim mode (#1553)YummyOreo2024-01-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * feat(config): add vim option to config * feat(ui): simple vim mode * fix(windows): windows sadly doesn't support the stuff * feat(ui): blinking * fix(merge) * revert: reverts some debugging stuff * feat(ui): changes the defaut to insert, don't know what should be the default * feat(ui): implements some vim parity * doc: adds this to the docs * docs(keybindings): adds vim mode keybindsings to the list of keybindings * refactor: rustfmt and remove the docs for pr in own repo * refactor: use execute! * Update atuin/src/command/client/search/interactive.rs --------- Co-authored-by: Ellie Huxtable <ellie@elliehuxtable.com>
* feat: rework record sync for improved reliability (#1478)Ellie Huxtable2024-01-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * feat: rework record sync for improved reliability So, to tell a story 1. We introduced the record sync, intended to be the new algorithm to sync history. 2. On top of this, I added the KV store. This was intended as a simple test of the record sync, and to see if people wanted that sort of functionality 3. History remained syncing via the old means, as while it had issues it worked more-or-less OK. And we are aware of its flaws 4. If KV syncing worked ok, history would be moved across KV syncing ran ok for 6mo or so, so I started to move across history. For several weeks, I ran a local fork of Atuin + the server that synced via records instead. The record store maintained ordering via a linked list, which was a mistake. It performed well in testing, but was really difficult to debug and reason about. So when a few small sync issues occured, they took an extremely long time to debug. This PR is huge, which I regret. It involves replacing the "parent" relationship that records once had (pointing to the previous record) with a simple index (generally referred to as idx). This also means we had to change the recordindex, which referenced "tails". Tails were the last item in the chain. Now that we use an "array" vs linked list, that logic was also replaced. And is much simpler :D Same for the queries that act on this data. ---- This isn't final - we still need to add 1. Proper server/client error handling, which has been lacking for a while 2. The actual history implementation on top This exists in a branch, just without deletions. Won't be much to add that, I just don't want to make this any larger than it already is The _only_ caveat here is that we basically lose data synced via the old record store. This is the KV data from before. It hasn't been deleted or anything, just no longer hooked up. So it's totally possible to write a migration script. I just need to do that. * update .gitignore * use correct endpoint * fix for stores with length of 1 * use create/delete enum for history store * lint, remove unneeded host_id * remove prints * add command to import old history * add enable/disable switch for record sync * add record sync to auto sync * satisfy the almighty clippy * remove file that I did not mean to commit * feedback
* fix(stats): time now_local not working Conrad Ludgate2024-01-01
|
* fix(stats): don't require all fields under [stats] (#1437)Ramses2023-12-11
| | | | | | | | | | | | | | | | | | | Before this change, when configuring only `common_subcommands` and not `common_prefix` (so it would take its default value), atuin produces an error message: ``` Error: could not load client settings Caused by: failed to deserialize: missing field `common_prefix` Location: atuin-client/src/settings.rs:456:26 Error: could not load client settings Caused by: failed to deserialize: missing field `common_prefix` Location: atuin-client/src/settings.rs:456:26 Error:: command not found ``` With this change, the fields can be specified separately and missing fields will take their default values.
* feat: allow configuring stats prefix (#1411)Ellie Huxtable2023-11-23
|
* Add enter_accept to immediately execute an accepted command (#1311)Ellie Huxtable2023-10-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * make enter execute the command, tab copy it * Add config for enter_accept enter_accept will make Atuin immediately accept an execute a command when selected. It defaults to false in our binary, but the default config enables it. This means that users who already use atuin will not default to the new behaviour unless they opt in, but new users will have it by default. Thanks to @davidhewitt for the patch and bulk of this implementation! Currently we have it just for zsh, but I'll follow up with other shells (unless anyone beats me to it :D) * Add docs * we need to tidy up the ui code anyway * Check if using zsh * Update docs/docs/config/config.md Co-authored-by: Conrad Ludgate <conradludgate@gmail.com> --------- Co-authored-by: David Hewitt <1939362+davidhewitt@users.noreply.github.com> Co-authored-by: Conrad Ludgate <conradludgate@gmail.com>
* Add commands to print the default configuration (#1241)Tobias Genannt2023-10-12
| | | | | | | | | | | | | * Add commands to print the default configuration When updating a software I often want to compare my configuration with the configuration of the new version. To make this possible atuin can now print the default configuration. This also updates the example files with the actual values used as default in the settings.rs files. * Changed command name to 'default-config' * Fixed merge
* Add connect timeout and overall timeout (#1238)Ellie Huxtable2023-09-18
| | | | | | | | | * Add connect timeout and overall timeout * Make it configurable * Fix test * Add docs
* feat(keyup): Configure SearchMode for KeyUp invocation #1216 (#1224)Dieter Eickstaedt2023-09-17
| | | | | | | | | | | * feat(keyup): Configure SearchMode for KeyUp invocation #1216 * docs: adjusted search mode documentation * feat: setting search mode on engine * chore: cargo fmt * chore: removed redundant field name
* replace chrono with time (#806)Conrad Ludgate2023-09-11
| | | | | | | | | * replace chrono with time * Fix test chrono usage --------- Co-authored-by: Ellie Huxtable <ellie@elliehuxtable.com>
* Automatically filter out secrets (#1182)Ellie Huxtable2023-08-19
| | | | | | | | | | | | | | I'd like to extend the regex list here very soon, but start off by automatically filtering out secrets. Do not store them in history! I've included regex for: 1. AWS key id 2. Github pat (old and new) 3. Slack oauth tokens (bot, user) 4. Slack webhooks 5. Stripe live/test keys Will need updating after #806
* Add support for `max_preview_height` setting (#1088)Richard Jones2023-07-31
|
* Drop default sync frequency to 10m (#1130)Ellie Huxtable2023-07-28
|
* use Ctrl-n instead of Alt-n on macOS (#1106)Richard Turner2023-07-27
| | | | | * use Ctrl-n instead of Alt-n on macOS * make ctrl-n instead of alt-n configurable
* Add workspace mode, enable if in git repo (#1053)Ellie Huxtable2023-07-14
| | | | | | | | | * Add workspace mode, enable if in git repo * Fix tests * Should now be good * Page filter modes correctly if in workspace
* Add new sync (#1093)Ellie Huxtable2023-07-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add record migration * Add database functions for inserting history No real tests yet :( I would like to avoid running postgres lol * Add index handler, use UUIDs not strings * Fix a bunch of tests, remove Option<Uuid> * Add tests, all passing * Working upload sync * Record downloading works * Sync download works * Don't waste requests * Use a page size for uploads, make it variable later * Aaaaaand they're encrypted now too * Add cek * Allow reading tail across hosts * Revert "Allow reading tail across hosts" Not like that This reverts commit 7b0c72e7e050c358172f9b53cbd21b9e44cf4931. * Handle multiple shards properly * format * Format and make clippy happy * use some fancy types (#1098) * use some fancy types * fmt * Goodbye horrible tuple * Update atuin-server-postgres/migrations/20230623070418_records.sql Co-authored-by: Conrad Ludgate <conradludgate@gmail.com> * fmt * Sort tests too because time sucks * fix features --------- Co-authored-by: Conrad Ludgate <conradludgate@gmail.com>
* Key values (#1038)Ellie Huxtable2023-06-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * wip * Start testing * Store host IDs, not hostnames Why? Hostnames can change a lot, and therefore host filtering can be funky. Really, all we want is a unique ID per machine + do not care what it might be. * Mostly just write a fuckload of tests * Add a v0 kv store I can push to * Appending works * Add next() and iterate, test the pointer chain * Fix sig * Make clippy happy and thaw the ICE * Fix tests' * Fix tests * typed builder and cleaner db trait --------- Co-authored-by: Conrad Ludgate <conrad.ludgate@truelayer.com>
* Add option to completely disable help row (#993)Hilmar Wiegand2023-05-22
| | | | | | | * Add option to completely disable help row * Pass full settings object to draw command * Add documentation for show_help
* Input bar at the top if we are in inline mode (#866)Ellie Huxtable2023-05-21
| | | | | | | | | | | | | | | | * Put input chunk at the top in inline mode * Invert the search results if bar is at top * fix styling on reversed rendering * add setting * settings --------- Co-authored-by: Patrick Decat <pdecat@gmail.com> Co-authored-by: Conrad Ludgate <conrad.ludgate@truelayer.com>
* cwd_filter: much like history_filter, only it applies to cwd (#904)Kjetil Jørgensen2023-05-02
| | | | | * cwd_filter: much like history_filter, only it applies to cwd * appease clippy
* Updated client config docs (#839)cyqsimon2023-04-05
| | | | | | | | * Updated client config docs - Example `config.toml` now includes all the newest options - `settings.rs`, `config.toml`, and `config.md` now have uniform option order * Remove trailing space
* chore: use fork of skim (#803)Conrad Ludgate2023-03-26
| | | | | | | | | * use fuzzy-matcher instead of skim switch to a search-engine abstraction * fmt * fix deprecated warnings
* feat: add an inline view mode (#648)Patrick Decat2023-03-25
| | | | | * add inline viewport * Add inline_height setting. Zero disables inline mode (the default)
* Allow changing search_mode during interactive search (#586)Krut Patel2023-03-22
| | | | | | | | | | | | | | | * Make search_mode a part of SearchState * Allow changing search mode using ctrl+s * Tweak state reset for switched_search_mode * Improve search_mode display in interactive mode * Incorporate review suggestion * Tweak language * Fix Clippy and format
* skim-demo (#695)Conrad Ludgate2023-03-19
| | | | | | | | | | | | | | | * skim-demo * skim some more * Weight first word match higher (#712) * some improvements * make skim opt-in --------- Co-authored-by: Frank Hamand <frankhamand@gmail.com>
* Allow specifying fulltext as well as full-text (#771)Ellie Huxtable2023-03-09
|
* fix(client): always read session_path from settings (#757)Luke Karrys2023-03-06
| | | | | | | * fix(client): always read session_path from settings * fixup! fix(client): always read session_path from settings * fixup! fix(client): always read session_path from settings
* feat: add common default keybindings (#719)Steven Xu2023-03-05
| | | | | | | | | * feat: add common default keybindings * feat: add `WORD_SEPARATORS` to config as `word_chars`, as this is what *Zsh* calls it * feat: add option for *Emacs* word jumping * feat: scroll with `PageUp` and `PageDown`, cf #374
* Up arrow filter_mode setting default to global filter mode (#758)Ellie Huxtable2023-03-05
| | | Resolves #756