Or is there maybe a way to set the pager for all help related queries to some command? I’m using bat and would like to pipe all --help through | bat --language=help by default for the syntax highlighting and colored output… Or if you know a lower effort way to color the output of --help let me know.

  • 𞋴𝛂𝛋𝛆@lemmy.worldOP
    link
    fedilink
    English
    arrow-up
    2
    ·
    6 hours ago

    There has to be a hook somewhere for every command that executes. I’m not sure, but something in the chain after using set -x then running any terminal command likely is on the right path to doing this. (If you try set -x, you can turn it off with set +x). set -o options are another I’m not very familiar with but might be related.

    • friend_of_satan@lemmy.world
      link
      fedilink
      English
      arrow-up
      3
      ·
      4 hours ago

      set -x configures the running process, your shell. This is a posix standard flag. See https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html

      there has to be a hook somewhere for every command that executes

      Why do think this? I’m not aware of any shells that have such a feature. I’m not saying it couldn’t be done, but it would be a new feature.

      I like the other suggestion of having a wrapper script that does what you need.

      • 𞋴𝛂𝛋𝛆@lemmy.worldOP
        link
        fedilink
        English
        arrow-up
        0
        ·
        3 hours ago

        I don’t mind the idea of a wrapper it is just that most of the time, I’m looking at the last command, backspacing and then adding --help. After thinking about it, I will likely go the wrapper route, but add arguments that use the last command in terminal history automatically so that typing help- with no args runs a --help flag on that last command, 2::5 would add additional flags or arguments from the last command before --help and help- with any other args calls those instead of using history.

    • RedWeasel@lemmy.world
      link
      fedilink
      English
      arrow-up
      3
      ·
      6 hours ago

      You’d be intercepting all commands just to verify if they have a help flag and then if not executing them as they were intended. If the intercept got broke, then the shell would be completely broken.

        • RedWeasel@lemmy.world
          link
          fedilink
          English
          arrow-up
          3
          arrow-down
          1
          ·
          edit-2
          5 hours ago

          Not everything uses groff. A lot will have their own function or another.

          Edit: I think for what you indicting you are wanting to try you’d need to either patch your shell of choice or write your own.

          Edit2: If you did patch it, the best way I can think of to get something upstreamed would be to patch bash to use CTRL-Enter to automatically pipe the output to the default pager defined in BASHPAGER followed by PAGER if it doesn’t exist. Then set the BASHPAGER to your “bat” command.

          • Ephera@lemmy.ml
            link
            fedilink
            English
            arrow-up
            1
            ·
            5 hours ago

            Frankly, I would be surprised, if anything uses groff for displaying --help, unless it shows the man page for that.
            The most basic implementation of --help is a manually formatted multi-line string written into the source code, which gets printed as-is.
            For dynamic layouting, you do need more logic, but rendering it to groff source code first does not make that easier. For tabbing, you print an appropriate number of \t.

          • 𞋴𝛂𝛋𝛆@lemmy.worldOP
            link
            fedilink
            English
            arrow-up
            1
            ·
            5 hours ago

            At this point, someone has to have already made a prettier shell or terminal that is configured like this by default. Hideous 1950s monocolor --help output can’t be a novel issue in 2025.