GNU bug report logs -
#27206
Fish: figure out a solution for the vendor path extension to fish
Previous Next
Reported by: ng0 <ng0 <at> pragmatique.xyz>
Date: Sat, 3 Jun 2017 10:42:01 UTC
Severity: normal
Done: Ludovic Courtès <ludo <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
Hi,
> Fish doesn't pick up stuff like 'fish-guix' from store
> without modifications to the path where fish searches
> for vendor or sysadmin installed systemwide 'things'
> for fish.
I found this old thread after submitting patch #34003. I think that
patch has probably solved your problem.
I submitted patch #34003 to update fish to 3.0.0. In that patch, I
enabled fish to add user's and system's profiles to __extra_* variables.
So now fish can load completions and functions from user's and system's
profiles.
$fish_complete_path and $fish_function_path become this on my computer:
#+begin_example
~ echo $fish_complete_path | tr ' ' '\n'
/home/meiyo/.config/fish/completions
/gnu/store/nd3lkiyz144rwvlhvx9adxhngd5xy16f-fish-3.0.0/etc/fish/completions
/home/meiyo/.guix-profile/etc/fish/completions
/run/current-system/profile/etc/fish/completions
/home/meiyo/.guix-profile/share/fish/vendor_completions.d
/run/current-system/profile/share/fish/vendor_completions.d
/gnu/store/nd3lkiyz144rwvlhvx9adxhngd5xy16f-fish-3.0.0/share/fish/vendor_completions.d
/gnu/store/nd3lkiyz144rwvlhvx9adxhngd5xy16f-fish-3.0.0/share/fish/completions
/home/meiyo/.local/share/fish/generated_completions
~ echo $fish_function_path | tr ' ' '\n'
/home/meiyo/.config/fish/functions
/gnu/store/nd3lkiyz144rwvlhvx9adxhngd5xy16f-fish-3.0.0/etc/fish/functions
/home/meiyo/.guix-profile/etc/fish/functions
/run/current-system/profile/etc/fish/functions
/home/meiyo/.guix-profile/share/fish/vendor_functions.d
/run/current-system/profile/share/fish/vendor_functions.d
/gnu/store/nd3lkiyz144rwvlhvx9adxhngd5xy16f-fish-3.0.0/share/fish/vendor_functions.d
/gnu/store/nd3lkiyz144rwvlhvx9adxhngd5xy16f-fish-3.0.0/share/fish/functions
#+end_example
We can then install fish completions and functions into either user's or
system's profile. And fish will happily load them.
For example, youtube-dl provides a fish completion:
#+begin_example
/gnu/store/3sv0ckhpyrxcssrk21s70klw14dz7x1b-youtube-dl-2018.12.17/etc/fish
└── completions
└── youtube-dl.fish
#+end_example
After installing youtube-dl into my user profile, youtube-dl command
completion works in fish:
#+begin_example
~ youtube-dl --<Hit TAB>
--abort-on-error (Abort downloading of further videos…)
--abort-on-unavailable-fragment (Abort downloading wh…)
--add-header (Specify a custom HTTP header and its va…)
--add-metadata (Write metadata to the video file)
…and 159 more rows
#+end_example
youtube-dl is now in my user profile:
#+begin_example
/home/meiyo/.guix-profile/etc/fish/
└── completions
└── youtube-dl.fish
#+end_example
> I have many more fish packages in a branch which
> I want to get into guix, but they are stuck because
> of this. Help welcome, otherwise I'll promise to
> fix it one day.
You can share your packages with us now!
--
Meiyo Peng
https://www.pengmeiyu.com/
This bug report was last modified 6 years and 104 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.