Skip to content

Fish's "built-in" man viewer does not respect man environment variables #11786

Description

@Valloric

Repro steps:

$ sh -c 'env HOME=$(mktemp -d) XDG_CONFIG_HOME= XDG_DATA_DIRS= fish'
$ set -x MANWIDTH 30 # set comically narrow man width for easy repro 
$ man man # so tiny!
$ set -h # as wide as the terminal window

I actually set MANWIDTH dynamically, along with a bunch of other man options with MANOPT. None of this is respected by the built-in man viewer.

Please take into account that people need to configure man for accessibility reasons; it's hard for me to read the default man output. Yes, I am aware of the web docs. We grognards like our terminals.

It took quite a while to track this down because I could see with /proc/$ID/environ that the terminal and fish itself were receiving the right env vars. And if I call man directly, fish passes them along and everything works.

$ fish --version
fish, version 4.0.2
$ uname -a
Linux oak 6.12.43+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.43-1 (2025-08-27) x86_64 GNU/Linux

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions