Skip to content

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

@Valloric

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions