Fedora Account System
Red Hat Associate
Red Hat Customer
On Fedora 43 with: - fish 4.2.0 - atuin 18.6.1-10.fc43.x86_64 Starting an interactive fish shell after sourcing atuin results in: bind: the -k/--key syntax is no longer supported. See `bind --help` and `bind --key-names` Tracing shows that the Fedora-shipped init script contains deprecated bindings: /usr/libexec/atuin/atuin-init.fish: bind -M insert -k up _atuin_bind_up (rpm -qf /usr/libexec/atuin/atuin-init.fish -> atuin-18.6.1-10.fc43.x86_64) Note: `atuin init fish | grep -n "bind -k"` produces no output; the deprecated binding originates from /usr/libexec/atuin/atuin-init.fish shipped in the Fedora RPM. Fish 4.x removed support for `bind -k` and `bind --key`. As a result, fish prints a warning at startup. Reproducible: Always Steps to Reproduce: 1. Install Fedora 43 2. sudo dnf install fish atuin 3. Verify versions: fish --version atuin --version 4. Add to ~/.config/fish/config.fish: if status is-interactive atuin init fish | source end 5. Start a new fish shell Actual Results: Fish prints: bind: the -k/--key syntax is no longer supported. See `bind --help` and `bind --key-names` Expected Results: No warnings should be printed. Atuin keybindings should use fish 4 compatible syntax. Suggested Fix: Replace: bind -M insert -k up _atuin_bind_up With fish 4 compatible escape sequence bindings, e.g.: bind -M insert \e\[A _atuin_bind_up bind -M insert \eOA _atuin_bind_up (or conditionally apply bindings based on fish version) Workaround: Set ATUIN_NOBIND=true and manually bind keys using fish 4 compatible syntax.
> `atuin init fish | grep -n "bind -k"` produces no output Interesting. Is it dependent on if fish package is already present? If so, would adding `fish` as a BuildRequires create the format you expect? If that is the case it sounds like we need to rebuild atuin for each terminal update.
(In reply to Cristian Le from comment #1) > > `atuin init fish | grep -n "bind -k"` produces no output > > Interesting. Is it dependent on if fish package is already present? If so, > would adding `fish` as a BuildRequires create the format you expect? > > If that is the case it sounds like we need to rebuild atuin for each > terminal update. It does not appear to be related to BuildRequires or whether fish was present at build time. `atuin init fish` itself does not emit `bind -k`, but the RPM ships a static init script at /usr/libexec/atuin/atuin-init.fish that still contains `bind -k`. So this looks like a packaging/init-script issue rather than something requiring rebuilds for each fish update.
(In reply to Anders from comment #2) > It does not appear to be related to BuildRequires or whether fish was > present at build time. > > `atuin init fish` itself does not emit `bind -k`, but the RPM ships a static > init script at /usr/libexec/atuin/atuin-init.fish that still contains `bind > -k`. > > So this looks like a packaging/init-script issue rather than something > requiring rebuilds for each fish update. That file is created here https://src.fedoraproject.org/rpms/atuin/blob/rawhide/f/atuin.spec#_146 That said, I just checked on my local file `atuin-18.6.1-10.fc43.x86_64` and I do not find `bind -k`. Can you give me the line number where that is and maybe +- 5 lines around it? Do you mean the line ``` $ grep -ne "bind.*-k" /usr/libexec/atuin/atuin-init.fish 79:bind -M insert -k up _atuin_bind_up ``` if that is the case it is from `atuin init fish` ``` $ atuin init fish | grep -ne "bind.*-k" 79:bind -M insert -k up _atuin_bind_up ``` (note the different grep syntax used) If this is fixed in upstream though, I plan to update atuin to 18.11.0 soon^{tm}
(In reply to Cristian Le from comment #3) > (In reply to Anders from comment #2) > > It does not appear to be related to BuildRequires or whether fish was > > present at build time. > > > > `atuin init fish` itself does not emit `bind -k`, but the RPM ships a static > > init script at /usr/libexec/atuin/atuin-init.fish that still contains `bind > > -k`. > > > > So this looks like a packaging/init-script issue rather than something > > requiring rebuilds for each fish update. > > That file is created here > https://src.fedoraproject.org/rpms/atuin/blob/rawhide/f/atuin.spec#_146 > > That said, I just checked on my local file `atuin-18.6.1-10.fc43.x86_64` and > I do not find `bind -k`. Can you give me the line number where that is and > maybe +- 5 lines around it? > > Do you mean the line > ``` > $ grep -ne "bind.*-k" /usr/libexec/atuin/atuin-init.fish > 79:bind -M insert -k up _atuin_bind_up > ``` > if that is the case it is from `atuin init fish` > ``` > $ atuin init fish | grep -ne "bind.*-k" > 79:bind -M insert -k up _atuin_bind_up > ``` > (note the different grep syntax used) > > If this is fixed in upstream though, I plan to update atuin to 18.11.0 > soon^{tm} Ah, you're right. This is fixed upstream in 18.9.0 (https://github.com/atuinsh/atuin/issues/2803#issuecomment-3479247506). On my system: $ grep -nE 'bind.*-k' /usr/libexec/atuin/atuin-init.fish 79:bind -M insert -k up _atuin_bind_up My earlier grep was too strict (`grep "bind -k"`), which missed the `bind -M insert -k ...` form. Using `grep -nE 'bind.*-k'` shows it clearly. Thanks for double-checking!
Very well. I am updating atuin to 18.11.0 (18.12.1 requires more work) tomorrow and that will close this bug. Thanks for the report.
FEDORA-2026-9a278688c0 (atuin-18.11.0-1.fc45, rust-metrics-exporter-prometheus-0.17.2-1.fc45, and 2 more) has been submitted as an update to Fedora 45. https://bodhi.fedoraproject.org/updates/FEDORA-2026-9a278688c0
FEDORA-2026-9a278688c0 (atuin-18.11.0-1.fc45, rust-metrics-exporter-prometheus-0.17.2-1.fc45, and 2 more) has been pushed to the Fedora 45 stable repository. If problem still persists, please make note of it in this bug report.