aboutsummaryrefslogtreecommitdiffstats
path: root/crates/turtle/src/shell/atuin.fish (unfollow)
Commit message (Collapse)Author
3 dayschore(server): Simplify the database supportBenedikt Peetz
3 dayschore: Move everything into one big crateBenedikt Peetz
That helps remove duplicated code and rustc/cargo will now also show dead code correctly.
6 daysfeat: Capture command output + expose to new `atuin_output` tool (#3510)Michelle Tilley
2026-05-27fix: Atuin hangs when attempting to spawn daemon from Ctrl+R invocation (#3502)Michelle Tilley
This PR fixes a shell hang when daemon autostart happens from the interactive search widget. The bash/zsh/fish integrations run `atuin search -i` under command substitution and swap stdout/stderr so the TUI can draw to the terminal while the selected command is captured: ```sh 3>&1 1>&2 2>&3 ``` This leaves fd 3 open in the atuin search process. If search autostarts the daemon, the spawned long-running `atuin daemon start --daemonize` inherits fd 3, the command-substitution pipe, so the shell keeps waiting for EOF until the daemon is killed. The fix: close fd 3 after the swap in the non-tmux bash/zsh/fish paths: ```sh 3>&1 1>&2 2>&3 3>&- ``` Tested on zsh; I still need to confirm for bash and fish. Near as I can tell, the other shell integrations don't need this change. Fixes #3499
2026-04-23fix: minor issues with fish's vim mode(s) (#3362)Aditya Bhargava
This PR fixes two minor issues when using Atuin with fish's vim mode(s): 1. Add support for `fish_hybrid_key_bindings`: in addition to `fish_vi_key_bindings`, fish also provides `fish_hybrid_key_bindings`, which is a vi-based mode with some extra keybinds; but the key bind check for `atuin search` only checks for the former. 2. The AI keybind inserts a `?` on the command line in vim mode even though it can only be called from normal mode, when pressing `?` normally does nothing.
2026-02-24fix: forward $PATH to tmux popup in zsh (#3198)postmath
The functionality to run a tmux popup has the problem that the command runs as a child of the `tmux` *server* process, rather than the current shell. One potential issue is that the `$PATH` is not forwarded to this command, so the `atuin` command may not be found. Fixes: https://github.com/atuinsh/atuin/issues/3182 (#3182) <!-- 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
2026-02-13fix: silent DB failures e.g. when disk is full (#3183)Johannes Naylor
<!-- 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 Silent DB failures breaking shell when disk is full When storage runs out (i.e. disk full), atuin breaks the shell by continuously printing database errors for every character typed. This is a fix to silence the DB errors
2026-02-12fix: multiline commands with fish (#3179)Ellie Huxtable
Resolves #3169 ## 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
2026-02-11fix(shell): fix ATUIN_SESSION errors in tmux popup (#3170)Kkoi
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>
2026-01-28feat: add option to use tmux display-popup (#3058)Kkoi
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>
2026-01-27fix: new session on shlvl change (#3111)Ellie Huxtable
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
2026-01-27fix: do not set ATUIN_SESSION if it is already set (#3107)Ellie Huxtable
<!-- 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
2025-09-18refactor: shell environment variablesLucas Trzesniewski
2025-09-18fix: remove __atuin_chain_command__ prefixLucas Trzesniewski
The command chaining feature can be implemented without the prefix.
2025-07-22feat: command chaining (#2834)Ellie Huxtable
* feat: command chaining Allow for smart completion of commands ending in && or || * fmt
2024-04-18chore: move crates into crates/ dir (#1958)Ellie Huxtable
I'd like to tidy up the root a little, and it's nice to have all the rust crates in one place
2024-03-12fix: pass search query in via env (#1865)Ellie Huxtable
* fix: pass search query in via env * fix
2024-01-16feat(search): introduce keymap-dependent vim-mode (#1570)Koichi Murase
* feat(search): introduce keymap-dependent vim-mode * fix(zsh): provide widgets with specific keymaps * fix(settings): unify "vim" and "keymap_mode"
2024-01-15fix(fish): integration on older fishes (#1563)Matt Godbolt
* Fix fish integration on older fishes - On fish 3.3 the bash-style `$(...)` doesn't work, we should use `(...)` - Also quoting `"(moo)"` on older fishes gives a literal `moo` - The result of a `(subcommand)` is a single token, so no need to quote it, anyway Tested by making the change, executing `cargo run -- init fish --disable-up-arrow` and then executing that shell script on a system with fish 3.3, as well as 3.6 and observing both still work. Fixes #1562. * Alternative way of fixing the problem. Compatible with 3.3 and 3.4+
2024-01-08fix(shell): fix incorrect timing of child shells (#1510)Koichi Murase
When a child shell session is started from another shell session (parent session), the environment variable ATUIN_HISTORY_ID set by the parent session causes Atuin's precmd hook of the child session to be unexpectedly performed before the first call of Atuin's preexec hook. In this patch, we clear ATUIN_HISTORY_ID (possibly set by the parent session) on the startup of the session.
2023-12-02fix(fish): accept multiline commands (#1418)Patrick Jackson
2023-11-03fix(fish): use fish builtins for `enter_accept` (#1373)Patrick Jackson
2023-11-03fix(fish): clean up the fish script options (#1370)Patrick Jackson
2023-10-28fix(enter_accept): clear old cmd snippet (#1350)Patrick Jackson
2023-10-27fix(fish): improve output for `enter_accept` (#1341)Patrick Jackson
Fixes 2 issues with the fish shell prompt when using `enter_accept` 1. Runs pre/post exec so the command is added to the atuin history. 2. Adds padding so that the repainting of the shell prompt doesn't overwrite the output. This adds 2 lines of padding to account for prompts up to 2 lines tall, larger prompts will still cause repainting problems and smaller prompts will be getting an extra line.
2023-10-26Silence fish string match (#1336)Ellie Huxtable
Oops. `string match` is a bit too noisy, make it quiet. Also print the match before executing it. Resolve #1335
2023-10-20Add fish support for `enter_accept` (#1315)Ellie Huxtable
* Add fish support for `enter_accept` Also fixes shell detection. Who trusted me to write jetlagged code last night huh? * Document
2023-10-08clear history id (#1263)Conrad Ludgate
* clear history id * fix nu
2023-09-17Fix selecting complex fish commands (#1237)Ellie Huxtable
This was failing for commands that spanned multiple lines, and contained a backslash. Thanks to @saulrh for suggesting the fix! I just tested and pushed it. Resolves #1211 Resolves #1232
2023-04-14Workspace reorder (#868)Vladislav Stepanov
* Try different workspace structure Move main crate (atuin) to be on the same level with other crates in this workspace * extract common dependencies to the workspace definition * fix base64 v0.21 deprecation warning * questionable: update deps & fix chrono deprecations possible panic sites are unchanged, they're just more visible now * Revert "questionable: update deps & fix chrono deprecations" This reverts commit 993e60f8dea81a1625a04285a617959ad09a0866.
2023-02-14fish: Fix `atuin init` for the fish shell (#699)Tobias Hunger
2022-12-24Rework `atuin init` (#652)Jamie Quigley
* Rework `atuin init` This allows users to disable the CTRL-R and Up Arrow bindings, independently from one another * Document --disable-{ctrl-r,up-arrow} * Apply suggestions from code review Co-authored-by: Ellie Huxtable <ellie@elliehuxtable.com> Co-authored-by: Ellie Huxtable <ellie@elliehuxtable.com>
2022-12-18Allow overriding filter and search modes from CLI (#635)Patrick Decat
* Allow overriding filter and search modes from CLI arguments * Use session filter mode for bash up key binding * We precisely do not want to add quotes here so that all arguments are properly passed * Add --shell-up-key-binding hidden command argument and filter_mode_shell_up_key_binding configuration option to allow customizing the filter mode used when atuin is invoked from a shell up-key binding * Correct up binding for zsh Co-authored-by: Ellie Huxtable <ellie@elliehuxtable.com>
2022-11-19Handle multiline commands in fish shell (#623)Patrick Jackson
2022-10-21Respect fish shell's builtin private mode (#577)Patrick Jackson
2022-10-07Fix compatability with fish vi key bindings (#541)Jacob Evan Shreve
PR #420 addressed the existence of pagination in a fish prompt by trying to track when pagination was enabled and disabled. This introduced atuin-specific bindings for common keys: `\t`, `\e`, `\r`, and `\n` which exports a variable and informs the `_autiun_search` function to not show the TUI. Fish has a commandline function that will instead tell you whether pagination is enabled so the user doesn't need to keep track of that state. This PR uses this function, `commandline -P` to replace the prior TUI supression scheme. Removing these extra function calls allows us to remove the additional bindings which were breaking fish vi key bindings. Replacing the value for `bind -M insert \e` completely breaks vi mode by blocking the user from exiting insert mode. By removing these extra binds, this PR restores fish vi mode compatability.
2022-09-01hide errors for #516 (#518)Conrad Ludgate
2022-08-23Fix atuin crashing on commands that start with -- (#509)Jamie Quigley
The use of `--` in the shell scripts prevents clap attempting to parse the command name as a flag, in the case that it starts with `--`.
2022-05-20Improve default fish keybindings (#420)Sam Lanning
binding on "up" can conflict with the default fish keybindings as when in tab-completion mode, you are supposed to be able to use arrow keys to navigate the grid of suggestions, however pressing "up" will open the tui instead. This attempts to work around it by tracking when the user is probably in a tab completion mode by setting a variable that we use to determine whether to open atuin or perform the default fish up action
2022-02-15Update fish bindings. (#265)Patrick Jackson
2021-12-16remove unused environment var loading entire history into an env var (#242)Mat Jones
2021-12-11Fish importing (#234)Conrad Ludgate
* make a start on fish * fix * test * enable fish * fmt * update histpath set up fish init script * update readme * cover edge case * fmt * fix session variables Co-authored-by: PJ <me@panekj.dev> * respect NOBIND Co-authored-by: PJ <me@panekj.dev> * fix env var setting Co-authored-by: PJ <me@panekj.dev> * fix whitespace Co-authored-by: PJ <me@panekj.dev> * add fish to supported shells Co-authored-by: PJ <me@panekj.dev>