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/