Screen and kitty what should $TERM be?

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP

up vote
1
down vote

favorite

Why does tmux report

$TERM=screen-256color

Normally kitty reports

$TERM=xterm-kitty

Which should I use if I run tmux inside kitty? Obviously kitty provides advanced functionality and that makes sense that it reports xterm-kitty. Why does screen report that it’s screen-256 are there programs that need to be aware that they’re running in screen? Would it be problematic to call screen running in kitty xterm-kitty?

share|improve this question

    up vote
    1
    down vote

    favorite

    Why does tmux report

    $TERM=screen-256color
    

    Normally kitty reports

    $TERM=xterm-kitty
    

    Which should I use if I run tmux inside kitty? Obviously kitty provides advanced functionality and that makes sense that it reports xterm-kitty. Why does screen report that it’s screen-256 are there programs that need to be aware that they’re running in screen? Would it be problematic to call screen running in kitty xterm-kitty?

    share|improve this question

      up vote
      1
      down vote

      favorite

      up vote
      1
      down vote

      favorite

      Why does tmux report

      $TERM=screen-256color
      

      Normally kitty reports

      $TERM=xterm-kitty
      

      Which should I use if I run tmux inside kitty? Obviously kitty provides advanced functionality and that makes sense that it reports xterm-kitty. Why does screen report that it’s screen-256 are there programs that need to be aware that they’re running in screen? Would it be problematic to call screen running in kitty xterm-kitty?

      share|improve this question

      Why does tmux report

      $TERM=screen-256color
      

      Normally kitty reports

      $TERM=xterm-kitty
      

      Which should I use if I run tmux inside kitty? Obviously kitty provides advanced functionality and that makes sense that it reports xterm-kitty. Why does screen report that it’s screen-256 are there programs that need to be aware that they’re running in screen? Would it be problematic to call screen running in kitty xterm-kitty?

      environment-variables tmux gnu-screen kitty

      share|improve this question

      share|improve this question

      share|improve this question

      share|improve this question

      edited Nov 28 at 22:47

      asked Nov 28 at 21:55

      Evan Carroll

      5,01994178

      5,01994178

          3 Answers
          3

          active

          oldest

          votes

          up vote
          1
          down vote

          accepted

          Which should I use if I run tmux inside kitty?

          When running tmux then you must use TERM=screen, TERM=tmux, or one of the derivatives e.g. TERM=screen-256color or TERM=tmux-256color.

          man tmux(1) states …

          The TERM environment variable must be set to “screen” for all programs running inside tmux. New windows will automatically have “TERM=screen” added to their environment, but care must be taken not to reset this in shell start-up files.

          .. and further down clarifies …

          Set the default terminal for new windows created in this session – the default value of the TERM environment variable. For tmux to work correctly, this must be set to ‘screen’ or a derivative of it.

          … they also emphasize must.

          The tmux wiki continues with additional clarification and answers …

          Inside tmux TERM must be “screen”, “tmux” or similar (such as “tmux-256color”).
          Don’t bother reporting problems where it isn’t!

          Are there programs that need to be aware that they’re running in screen?

          Yes. Many programs, such as tput, will not display correctly when they’re running in screen (or tmux) unless they’re using the correct TERM value.

          What is TERM and what does it do?

          The environment variable TERM tells applications the name of a terminal description to read from the terminfo(5) database. Each description consists of a number of named capabilities which tell applications what to send to control the terminal. For example, the “cup” capability contains the escape sequence used to move the cursor up.

          It is important that TERM points to the correct description for the terminal an application is running in – if it doesn’t, applications may misbehave.

          The infocmp(1) command shows the contents of a terminal description and the tic(1) command builds and installs a description from a file (the -x flag is normally required with both).

          Would it be problematic to call screen running in kitty xterm-kitty?

          Not necessarily, as long as the TERM value in the running screen is set correctly (i.e. TERM=screen-256color) and there’s valid terminfo strings for it that screen or tmux knows how to handle.

          Other derivatives (on my machine) are:

          /usr/share/terminfo/s/screen
          /usr/share/terminfo/s/screen-16color
          /usr/share/terminfo/s/screen-256color
          /usr/share/terminfo/s/screen.Eterm
          /usr/share/terminfo/s/screen.gnome
          /usr/share/terminfo/s/screen.konsole
          /usr/share/terminfo/s/screen.linux
          /usr/share/terminfo/s/screen.mlterm
          /usr/share/terminfo/s/screen.mrxvt
          /usr/share/terminfo/s/screen.rxvt
          /usr/share/terminfo/s/screen.teraterm
          /usr/share/terminfo/s/screen.vte
          /usr/share/terminfo/s/screen.xterm-r6
          /usr/share/terminfo/s/screen.xterm-new
          /usr/share/terminfo/s/screen.xterm-xfree86
          

          Once TERM is set, you could run infocmp. That will report if there’s a valid terminfo for the value. Other tests can validate basic terminfo functionality, such as:

          for terminfos in $(find /usr/share/terminfo/s -type f -name 'screen*' -printf '%fn' -o -name 'tmux*' -printf '%fn'); do export TERM=$terminfos; printf "%s: %sthis is foreground color 10 %sitalics%s and now all attributes are turned offn" "$terminfos" "$(tput setaf 10)" "$(tput sitm)" "$(tput sgr0)"; done

          share|improve this answer

          • That last answer from superuser is less than useful. screen’s emulating something that’s a particular terminal type more/less for consistency. tmux uses the same terminal description to (try to) not rely upon a new terminal description being installed. Ultimately that doesn’t work well, but for reasons outside the scope of this question.
            – Thomas Dickey
            Nov 28 at 22:55

          up vote
          0
          down vote

          Kitty’s advanced functionality isn’t compatible with things like tmux. For example if you run tmux and then run

          $ kitty icat ~/Pictures/fc.jpg 
          Terminal does not support reporting screen sizes via the TIOCGWINSZ ioctl
          $ TERM=xterm-kitty kitty icat ~/Pictures/fc.jpg 
          Terminal does not support reporting screen sizes via the TIOCGWINSZ ioctl
          

          So you can see even if you fudge TERM under tmux to match the one Kitty reports, you’ll find a dead end, at best. Under ranger, range just crashes when trying to render a preview.

          share|improve this answer

          • I’m a bit confused why the answer addresses tmux when the bulk of the question focuses on screen?
            – Jeff Schaller
            Nov 28 at 22:39

          • If kitty doesn’t support the ioctl, that’s a bug. But it’s unrelated to the TERM value.
            – Thomas Dickey
            Nov 28 at 22:57

          • @JeffSchaller the question is 100% about tmux, tmux just reports its term is screen. But, I did have one typo =)
            – Evan Carroll
            Nov 29 at 0:24

          up vote
          0
          down vote

          That’s several questions. Here are answers for the more interesting ones:

          • Why does tmux report

            $TERM=screen-256color

          Older releases of tmux use TERM=screen or TERM=screen-256color “because it’s there”. Ultimately that changed (a) because tmux’s developer wanted to add features and (b) because screen interferes with using italics.

          • Normally kitty reports

            $TERM=xterm-kitty

            Which should I use if I run tmux inside kitty?

          You should let tmux choose (it looks at the outer terminal description to see how to handle color and function-keys).

          • Why does screen report that it’s screen-256

          Probably meant to say “screen-256color”. GNU screen looks at the outer $TERM value and chooses an inner one. But this particular one comes from the user’s .screenrc file (normally – packagers may get involved).

          • are there programs that need to be aware that they’re running in screen?

          Not really…

          • Would it be problematic to call screen running in kitty xterm-kitty?

          Some screen configurations use bce (back color erase) by default. kitty doesn’t support the feature (ymmv).

          share|improve this answer

            Your Answer

            StackExchange.ready(function() {
            var channelOptions = {
            tags: “”.split(” “),
            id: “106”
            };
            initTagRenderer(“”.split(” “), “”.split(” “), channelOptions);

            StackExchange.using(“externalEditor”, function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using(“snippets”, function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: ‘answer’,
            convertImagesToLinks: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: “”,
            imageUploader: {
            brandingHtml: “Powered by u003ca class=”icon-imgur-white” href=”https://imgur.com/”u003eu003c/au003e”,
            contentPolicyHtml: “User contributions licensed under u003ca href=”https://creativecommons.org/licenses/by-sa/3.0/”u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href=”https://stackoverflow.com/legal/content-policy”u003e(content policy)u003c/au003e”,
            allowUrls: true
            },
            onDemand: true,
            discardSelector: “.discard-answer”
            ,immediatelyShowMarkdownHelp:true
            });

            }
            });

            draft saved
            draft discarded

            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin(‘.new-post-login’, ‘https%3a%2f%2funix.stackexchange.com%2fquestions%2f484775%2fscreen-and-kitty-what-should-term-be%23new-answer’, ‘question_page’);
            }
            );

            Post as a guest

            Required, but never shown

            3 Answers
            3

            active

            oldest

            votes

            3 Answers
            3

            active

            oldest

            votes

            active

            oldest

            votes

            active

            oldest

            votes

            up vote
            1
            down vote

            accepted

            Which should I use if I run tmux inside kitty?

            When running tmux then you must use TERM=screen, TERM=tmux, or one of the derivatives e.g. TERM=screen-256color or TERM=tmux-256color.

            man tmux(1) states …

            The TERM environment variable must be set to “screen” for all programs running inside tmux. New windows will automatically have “TERM=screen” added to their environment, but care must be taken not to reset this in shell start-up files.

            .. and further down clarifies …

            Set the default terminal for new windows created in this session – the default value of the TERM environment variable. For tmux to work correctly, this must be set to ‘screen’ or a derivative of it.

            … they also emphasize must.

            The tmux wiki continues with additional clarification and answers …

            Inside tmux TERM must be “screen”, “tmux” or similar (such as “tmux-256color”).
            Don’t bother reporting problems where it isn’t!

            Are there programs that need to be aware that they’re running in screen?

            Yes. Many programs, such as tput, will not display correctly when they’re running in screen (or tmux) unless they’re using the correct TERM value.

            What is TERM and what does it do?

            The environment variable TERM tells applications the name of a terminal description to read from the terminfo(5) database. Each description consists of a number of named capabilities which tell applications what to send to control the terminal. For example, the “cup” capability contains the escape sequence used to move the cursor up.

            It is important that TERM points to the correct description for the terminal an application is running in – if it doesn’t, applications may misbehave.

            The infocmp(1) command shows the contents of a terminal description and the tic(1) command builds and installs a description from a file (the -x flag is normally required with both).

            Would it be problematic to call screen running in kitty xterm-kitty?

            Not necessarily, as long as the TERM value in the running screen is set correctly (i.e. TERM=screen-256color) and there’s valid terminfo strings for it that screen or tmux knows how to handle.

            Other derivatives (on my machine) are:

            /usr/share/terminfo/s/screen
            /usr/share/terminfo/s/screen-16color
            /usr/share/terminfo/s/screen-256color
            /usr/share/terminfo/s/screen.Eterm
            /usr/share/terminfo/s/screen.gnome
            /usr/share/terminfo/s/screen.konsole
            /usr/share/terminfo/s/screen.linux
            /usr/share/terminfo/s/screen.mlterm
            /usr/share/terminfo/s/screen.mrxvt
            /usr/share/terminfo/s/screen.rxvt
            /usr/share/terminfo/s/screen.teraterm
            /usr/share/terminfo/s/screen.vte
            /usr/share/terminfo/s/screen.xterm-r6
            /usr/share/terminfo/s/screen.xterm-new
            /usr/share/terminfo/s/screen.xterm-xfree86
            

            Once TERM is set, you could run infocmp. That will report if there’s a valid terminfo for the value. Other tests can validate basic terminfo functionality, such as:

            for terminfos in $(find /usr/share/terminfo/s -type f -name 'screen*' -printf '%fn' -o -name 'tmux*' -printf '%fn'); do export TERM=$terminfos; printf "%s: %sthis is foreground color 10 %sitalics%s and now all attributes are turned offn" "$terminfos" "$(tput setaf 10)" "$(tput sitm)" "$(tput sgr0)"; done

            share|improve this answer

            • That last answer from superuser is less than useful. screen’s emulating something that’s a particular terminal type more/less for consistency. tmux uses the same terminal description to (try to) not rely upon a new terminal description being installed. Ultimately that doesn’t work well, but for reasons outside the scope of this question.
              – Thomas Dickey
              Nov 28 at 22:55

            up vote
            1
            down vote

            accepted

            Which should I use if I run tmux inside kitty?

            When running tmux then you must use TERM=screen, TERM=tmux, or one of the derivatives e.g. TERM=screen-256color or TERM=tmux-256color.

            man tmux(1) states …

            The TERM environment variable must be set to “screen” for all programs running inside tmux. New windows will automatically have “TERM=screen” added to their environment, but care must be taken not to reset this in shell start-up files.

            .. and further down clarifies …

            Set the default terminal for new windows created in this session – the default value of the TERM environment variable. For tmux to work correctly, this must be set to ‘screen’ or a derivative of it.

            … they also emphasize must.

            The tmux wiki continues with additional clarification and answers …

            Inside tmux TERM must be “screen”, “tmux” or similar (such as “tmux-256color”).
            Don’t bother reporting problems where it isn’t!

            Are there programs that need to be aware that they’re running in screen?

            Yes. Many programs, such as tput, will not display correctly when they’re running in screen (or tmux) unless they’re using the correct TERM value.

            What is TERM and what does it do?

            The environment variable TERM tells applications the name of a terminal description to read from the terminfo(5) database. Each description consists of a number of named capabilities which tell applications what to send to control the terminal. For example, the “cup” capability contains the escape sequence used to move the cursor up.

            It is important that TERM points to the correct description for the terminal an application is running in – if it doesn’t, applications may misbehave.

            The infocmp(1) command shows the contents of a terminal description and the tic(1) command builds and installs a description from a file (the -x flag is normally required with both).

            Would it be problematic to call screen running in kitty xterm-kitty?

            Not necessarily, as long as the TERM value in the running screen is set correctly (i.e. TERM=screen-256color) and there’s valid terminfo strings for it that screen or tmux knows how to handle.

            Other derivatives (on my machine) are:

            /usr/share/terminfo/s/screen
            /usr/share/terminfo/s/screen-16color
            /usr/share/terminfo/s/screen-256color
            /usr/share/terminfo/s/screen.Eterm
            /usr/share/terminfo/s/screen.gnome
            /usr/share/terminfo/s/screen.konsole
            /usr/share/terminfo/s/screen.linux
            /usr/share/terminfo/s/screen.mlterm
            /usr/share/terminfo/s/screen.mrxvt
            /usr/share/terminfo/s/screen.rxvt
            /usr/share/terminfo/s/screen.teraterm
            /usr/share/terminfo/s/screen.vte
            /usr/share/terminfo/s/screen.xterm-r6
            /usr/share/terminfo/s/screen.xterm-new
            /usr/share/terminfo/s/screen.xterm-xfree86
            

            Once TERM is set, you could run infocmp. That will report if there’s a valid terminfo for the value. Other tests can validate basic terminfo functionality, such as:

            for terminfos in $(find /usr/share/terminfo/s -type f -name 'screen*' -printf '%fn' -o -name 'tmux*' -printf '%fn'); do export TERM=$terminfos; printf "%s: %sthis is foreground color 10 %sitalics%s and now all attributes are turned offn" "$terminfos" "$(tput setaf 10)" "$(tput sitm)" "$(tput sgr0)"; done

            share|improve this answer

            • That last answer from superuser is less than useful. screen’s emulating something that’s a particular terminal type more/less for consistency. tmux uses the same terminal description to (try to) not rely upon a new terminal description being installed. Ultimately that doesn’t work well, but for reasons outside the scope of this question.
              – Thomas Dickey
              Nov 28 at 22:55

            up vote
            1
            down vote

            accepted

            up vote
            1
            down vote

            accepted

            Which should I use if I run tmux inside kitty?

            When running tmux then you must use TERM=screen, TERM=tmux, or one of the derivatives e.g. TERM=screen-256color or TERM=tmux-256color.

            man tmux(1) states …

            The TERM environment variable must be set to “screen” for all programs running inside tmux. New windows will automatically have “TERM=screen” added to their environment, but care must be taken not to reset this in shell start-up files.

            .. and further down clarifies …

            Set the default terminal for new windows created in this session – the default value of the TERM environment variable. For tmux to work correctly, this must be set to ‘screen’ or a derivative of it.

            … they also emphasize must.

            The tmux wiki continues with additional clarification and answers …

            Inside tmux TERM must be “screen”, “tmux” or similar (such as “tmux-256color”).
            Don’t bother reporting problems where it isn’t!

            Are there programs that need to be aware that they’re running in screen?

            Yes. Many programs, such as tput, will not display correctly when they’re running in screen (or tmux) unless they’re using the correct TERM value.

            What is TERM and what does it do?

            The environment variable TERM tells applications the name of a terminal description to read from the terminfo(5) database. Each description consists of a number of named capabilities which tell applications what to send to control the terminal. For example, the “cup” capability contains the escape sequence used to move the cursor up.

            It is important that TERM points to the correct description for the terminal an application is running in – if it doesn’t, applications may misbehave.

            The infocmp(1) command shows the contents of a terminal description and the tic(1) command builds and installs a description from a file (the -x flag is normally required with both).

            Would it be problematic to call screen running in kitty xterm-kitty?

            Not necessarily, as long as the TERM value in the running screen is set correctly (i.e. TERM=screen-256color) and there’s valid terminfo strings for it that screen or tmux knows how to handle.

            Other derivatives (on my machine) are:

            /usr/share/terminfo/s/screen
            /usr/share/terminfo/s/screen-16color
            /usr/share/terminfo/s/screen-256color
            /usr/share/terminfo/s/screen.Eterm
            /usr/share/terminfo/s/screen.gnome
            /usr/share/terminfo/s/screen.konsole
            /usr/share/terminfo/s/screen.linux
            /usr/share/terminfo/s/screen.mlterm
            /usr/share/terminfo/s/screen.mrxvt
            /usr/share/terminfo/s/screen.rxvt
            /usr/share/terminfo/s/screen.teraterm
            /usr/share/terminfo/s/screen.vte
            /usr/share/terminfo/s/screen.xterm-r6
            /usr/share/terminfo/s/screen.xterm-new
            /usr/share/terminfo/s/screen.xterm-xfree86
            

            Once TERM is set, you could run infocmp. That will report if there’s a valid terminfo for the value. Other tests can validate basic terminfo functionality, such as:

            for terminfos in $(find /usr/share/terminfo/s -type f -name 'screen*' -printf '%fn' -o -name 'tmux*' -printf '%fn'); do export TERM=$terminfos; printf "%s: %sthis is foreground color 10 %sitalics%s and now all attributes are turned offn" "$terminfos" "$(tput setaf 10)" "$(tput sitm)" "$(tput sgr0)"; done

            share|improve this answer

            Which should I use if I run tmux inside kitty?

            When running tmux then you must use TERM=screen, TERM=tmux, or one of the derivatives e.g. TERM=screen-256color or TERM=tmux-256color.

            man tmux(1) states …

            The TERM environment variable must be set to “screen” for all programs running inside tmux. New windows will automatically have “TERM=screen” added to their environment, but care must be taken not to reset this in shell start-up files.

            .. and further down clarifies …

            Set the default terminal for new windows created in this session – the default value of the TERM environment variable. For tmux to work correctly, this must be set to ‘screen’ or a derivative of it.

            … they also emphasize must.

            The tmux wiki continues with additional clarification and answers …

            Inside tmux TERM must be “screen”, “tmux” or similar (such as “tmux-256color”).
            Don’t bother reporting problems where it isn’t!

            Are there programs that need to be aware that they’re running in screen?

            Yes. Many programs, such as tput, will not display correctly when they’re running in screen (or tmux) unless they’re using the correct TERM value.

            What is TERM and what does it do?

            The environment variable TERM tells applications the name of a terminal description to read from the terminfo(5) database. Each description consists of a number of named capabilities which tell applications what to send to control the terminal. For example, the “cup” capability contains the escape sequence used to move the cursor up.

            It is important that TERM points to the correct description for the terminal an application is running in – if it doesn’t, applications may misbehave.

            The infocmp(1) command shows the contents of a terminal description and the tic(1) command builds and installs a description from a file (the -x flag is normally required with both).

            Would it be problematic to call screen running in kitty xterm-kitty?

            Not necessarily, as long as the TERM value in the running screen is set correctly (i.e. TERM=screen-256color) and there’s valid terminfo strings for it that screen or tmux knows how to handle.

            Other derivatives (on my machine) are:

            /usr/share/terminfo/s/screen
            /usr/share/terminfo/s/screen-16color
            /usr/share/terminfo/s/screen-256color
            /usr/share/terminfo/s/screen.Eterm
            /usr/share/terminfo/s/screen.gnome
            /usr/share/terminfo/s/screen.konsole
            /usr/share/terminfo/s/screen.linux
            /usr/share/terminfo/s/screen.mlterm
            /usr/share/terminfo/s/screen.mrxvt
            /usr/share/terminfo/s/screen.rxvt
            /usr/share/terminfo/s/screen.teraterm
            /usr/share/terminfo/s/screen.vte
            /usr/share/terminfo/s/screen.xterm-r6
            /usr/share/terminfo/s/screen.xterm-new
            /usr/share/terminfo/s/screen.xterm-xfree86
            

            Once TERM is set, you could run infocmp. That will report if there’s a valid terminfo for the value. Other tests can validate basic terminfo functionality, such as:

            for terminfos in $(find /usr/share/terminfo/s -type f -name 'screen*' -printf '%fn' -o -name 'tmux*' -printf '%fn'); do export TERM=$terminfos; printf "%s: %sthis is foreground color 10 %sitalics%s and now all attributes are turned offn" "$terminfos" "$(tput setaf 10)" "$(tput sitm)" "$(tput sgr0)"; done

            share|improve this answer

            share|improve this answer

            share|improve this answer

            edited Nov 30 at 17:59

            answered Nov 28 at 22:51

            Joseph Tingiris

            1877

            1877

            • That last answer from superuser is less than useful. screen’s emulating something that’s a particular terminal type more/less for consistency. tmux uses the same terminal description to (try to) not rely upon a new terminal description being installed. Ultimately that doesn’t work well, but for reasons outside the scope of this question.
              – Thomas Dickey
              Nov 28 at 22:55

            • That last answer from superuser is less than useful. screen’s emulating something that’s a particular terminal type more/less for consistency. tmux uses the same terminal description to (try to) not rely upon a new terminal description being installed. Ultimately that doesn’t work well, but for reasons outside the scope of this question.
              – Thomas Dickey
              Nov 28 at 22:55

            That last answer from superuser is less than useful. screen’s emulating something that’s a particular terminal type more/less for consistency. tmux uses the same terminal description to (try to) not rely upon a new terminal description being installed. Ultimately that doesn’t work well, but for reasons outside the scope of this question.
            – Thomas Dickey
            Nov 28 at 22:55

            That last answer from superuser is less than useful. screen’s emulating something that’s a particular terminal type more/less for consistency. tmux uses the same terminal description to (try to) not rely upon a new terminal description being installed. Ultimately that doesn’t work well, but for reasons outside the scope of this question.
            – Thomas Dickey
            Nov 28 at 22:55

            up vote
            0
            down vote

            Kitty’s advanced functionality isn’t compatible with things like tmux. For example if you run tmux and then run

            $ kitty icat ~/Pictures/fc.jpg 
            Terminal does not support reporting screen sizes via the TIOCGWINSZ ioctl
            $ TERM=xterm-kitty kitty icat ~/Pictures/fc.jpg 
            Terminal does not support reporting screen sizes via the TIOCGWINSZ ioctl
            

            So you can see even if you fudge TERM under tmux to match the one Kitty reports, you’ll find a dead end, at best. Under ranger, range just crashes when trying to render a preview.

            share|improve this answer

            • I’m a bit confused why the answer addresses tmux when the bulk of the question focuses on screen?
              – Jeff Schaller
              Nov 28 at 22:39

            • If kitty doesn’t support the ioctl, that’s a bug. But it’s unrelated to the TERM value.
              – Thomas Dickey
              Nov 28 at 22:57

            • @JeffSchaller the question is 100% about tmux, tmux just reports its term is screen. But, I did have one typo =)
              – Evan Carroll
              Nov 29 at 0:24

            up vote
            0
            down vote

            Kitty’s advanced functionality isn’t compatible with things like tmux. For example if you run tmux and then run

            $ kitty icat ~/Pictures/fc.jpg 
            Terminal does not support reporting screen sizes via the TIOCGWINSZ ioctl
            $ TERM=xterm-kitty kitty icat ~/Pictures/fc.jpg 
            Terminal does not support reporting screen sizes via the TIOCGWINSZ ioctl
            

            So you can see even if you fudge TERM under tmux to match the one Kitty reports, you’ll find a dead end, at best. Under ranger, range just crashes when trying to render a preview.

            share|improve this answer

            • I’m a bit confused why the answer addresses tmux when the bulk of the question focuses on screen?
              – Jeff Schaller
              Nov 28 at 22:39

            • If kitty doesn’t support the ioctl, that’s a bug. But it’s unrelated to the TERM value.
              – Thomas Dickey
              Nov 28 at 22:57

            • @JeffSchaller the question is 100% about tmux, tmux just reports its term is screen. But, I did have one typo =)
              – Evan Carroll
              Nov 29 at 0:24

            up vote
            0
            down vote

            up vote
            0
            down vote

            Kitty’s advanced functionality isn’t compatible with things like tmux. For example if you run tmux and then run

            $ kitty icat ~/Pictures/fc.jpg 
            Terminal does not support reporting screen sizes via the TIOCGWINSZ ioctl
            $ TERM=xterm-kitty kitty icat ~/Pictures/fc.jpg 
            Terminal does not support reporting screen sizes via the TIOCGWINSZ ioctl
            

            So you can see even if you fudge TERM under tmux to match the one Kitty reports, you’ll find a dead end, at best. Under ranger, range just crashes when trying to render a preview.

            share|improve this answer

            Kitty’s advanced functionality isn’t compatible with things like tmux. For example if you run tmux and then run

            $ kitty icat ~/Pictures/fc.jpg 
            Terminal does not support reporting screen sizes via the TIOCGWINSZ ioctl
            $ TERM=xterm-kitty kitty icat ~/Pictures/fc.jpg 
            Terminal does not support reporting screen sizes via the TIOCGWINSZ ioctl
            

            So you can see even if you fudge TERM under tmux to match the one Kitty reports, you’ll find a dead end, at best. Under ranger, range just crashes when trying to render a preview.

            share|improve this answer

            share|improve this answer

            share|improve this answer

            edited Nov 28 at 22:06

            answered Nov 28 at 22:01

            Evan Carroll

            5,01994178

            5,01994178

            • I’m a bit confused why the answer addresses tmux when the bulk of the question focuses on screen?
              – Jeff Schaller
              Nov 28 at 22:39

            • If kitty doesn’t support the ioctl, that’s a bug. But it’s unrelated to the TERM value.
              – Thomas Dickey
              Nov 28 at 22:57

            • @JeffSchaller the question is 100% about tmux, tmux just reports its term is screen. But, I did have one typo =)
              – Evan Carroll
              Nov 29 at 0:24

            • I’m a bit confused why the answer addresses tmux when the bulk of the question focuses on screen?
              – Jeff Schaller
              Nov 28 at 22:39

            • If kitty doesn’t support the ioctl, that’s a bug. But it’s unrelated to the TERM value.
              – Thomas Dickey
              Nov 28 at 22:57

            • @JeffSchaller the question is 100% about tmux, tmux just reports its term is screen. But, I did have one typo =)
              – Evan Carroll
              Nov 29 at 0:24

            I’m a bit confused why the answer addresses tmux when the bulk of the question focuses on screen?
            – Jeff Schaller
            Nov 28 at 22:39

            I’m a bit confused why the answer addresses tmux when the bulk of the question focuses on screen?
            – Jeff Schaller
            Nov 28 at 22:39

            If kitty doesn’t support the ioctl, that’s a bug. But it’s unrelated to the TERM value.
            – Thomas Dickey
            Nov 28 at 22:57

            If kitty doesn’t support the ioctl, that’s a bug. But it’s unrelated to the TERM value.
            – Thomas Dickey
            Nov 28 at 22:57

            @JeffSchaller the question is 100% about tmux, tmux just reports its term is screen. But, I did have one typo =)
            – Evan Carroll
            Nov 29 at 0:24

            @JeffSchaller the question is 100% about tmux, tmux just reports its term is screen. But, I did have one typo =)
            – Evan Carroll
            Nov 29 at 0:24

            up vote
            0
            down vote

            That’s several questions. Here are answers for the more interesting ones:

            • Why does tmux report

              $TERM=screen-256color

            Older releases of tmux use TERM=screen or TERM=screen-256color “because it’s there”. Ultimately that changed (a) because tmux’s developer wanted to add features and (b) because screen interferes with using italics.

            • Normally kitty reports

              $TERM=xterm-kitty

              Which should I use if I run tmux inside kitty?

            You should let tmux choose (it looks at the outer terminal description to see how to handle color and function-keys).

            • Why does screen report that it’s screen-256

            Probably meant to say “screen-256color”. GNU screen looks at the outer $TERM value and chooses an inner one. But this particular one comes from the user’s .screenrc file (normally – packagers may get involved).

            • are there programs that need to be aware that they’re running in screen?

            Not really…

            • Would it be problematic to call screen running in kitty xterm-kitty?

            Some screen configurations use bce (back color erase) by default. kitty doesn’t support the feature (ymmv).

            share|improve this answer

              up vote
              0
              down vote

              That’s several questions. Here are answers for the more interesting ones:

              • Why does tmux report

                $TERM=screen-256color

              Older releases of tmux use TERM=screen or TERM=screen-256color “because it’s there”. Ultimately that changed (a) because tmux’s developer wanted to add features and (b) because screen interferes with using italics.

              • Normally kitty reports

                $TERM=xterm-kitty

                Which should I use if I run tmux inside kitty?

              You should let tmux choose (it looks at the outer terminal description to see how to handle color and function-keys).

              • Why does screen report that it’s screen-256

              Probably meant to say “screen-256color”. GNU screen looks at the outer $TERM value and chooses an inner one. But this particular one comes from the user’s .screenrc file (normally – packagers may get involved).

              • are there programs that need to be aware that they’re running in screen?

              Not really…

              • Would it be problematic to call screen running in kitty xterm-kitty?

              Some screen configurations use bce (back color erase) by default. kitty doesn’t support the feature (ymmv).

              share|improve this answer

                up vote
                0
                down vote

                up vote
                0
                down vote

                That’s several questions. Here are answers for the more interesting ones:

                • Why does tmux report

                  $TERM=screen-256color

                Older releases of tmux use TERM=screen or TERM=screen-256color “because it’s there”. Ultimately that changed (a) because tmux’s developer wanted to add features and (b) because screen interferes with using italics.

                • Normally kitty reports

                  $TERM=xterm-kitty

                  Which should I use if I run tmux inside kitty?

                You should let tmux choose (it looks at the outer terminal description to see how to handle color and function-keys).

                • Why does screen report that it’s screen-256

                Probably meant to say “screen-256color”. GNU screen looks at the outer $TERM value and chooses an inner one. But this particular one comes from the user’s .screenrc file (normally – packagers may get involved).

                • are there programs that need to be aware that they’re running in screen?

                Not really…

                • Would it be problematic to call screen running in kitty xterm-kitty?

                Some screen configurations use bce (back color erase) by default. kitty doesn’t support the feature (ymmv).

                share|improve this answer

                That’s several questions. Here are answers for the more interesting ones:

                • Why does tmux report

                  $TERM=screen-256color

                Older releases of tmux use TERM=screen or TERM=screen-256color “because it’s there”. Ultimately that changed (a) because tmux’s developer wanted to add features and (b) because screen interferes with using italics.

                • Normally kitty reports

                  $TERM=xterm-kitty

                  Which should I use if I run tmux inside kitty?

                You should let tmux choose (it looks at the outer terminal description to see how to handle color and function-keys).

                • Why does screen report that it’s screen-256

                Probably meant to say “screen-256color”. GNU screen looks at the outer $TERM value and chooses an inner one. But this particular one comes from the user’s .screenrc file (normally – packagers may get involved).

                • are there programs that need to be aware that they’re running in screen?

                Not really…

                • Would it be problematic to call screen running in kitty xterm-kitty?

                Some screen configurations use bce (back color erase) by default. kitty doesn’t support the feature (ymmv).

                share|improve this answer

                share|improve this answer

                share|improve this answer

                answered Nov 28 at 23:13

                Thomas Dickey

                51.7k594164

                51.7k594164

                    draft saved
                    draft discarded

                    Thanks for contributing an answer to Unix & Linux Stack Exchange!

                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid

                    • Asking for help, clarification, or responding to other answers.
                    • Making statements based on opinion; back them up with references or personal experience.

                    To learn more, see our tips on writing great answers.

                    Some of your past answers have not been well-received, and you’re in danger of being blocked from answering.

                    Please pay close attention to the following guidance:

                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid

                    • Asking for help, clarification, or responding to other answers.
                    • Making statements based on opinion; back them up with references or personal experience.

                    To learn more, see our tips on writing great answers.

                    draft saved

                    draft discarded

                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin(‘.new-post-login’, ‘https%3a%2f%2funix.stackexchange.com%2fquestions%2f484775%2fscreen-and-kitty-what-should-term-be%23new-answer’, ‘question_page’);
                    }
                    );

                    Post as a guest

                    Required, but never shown

                    Required, but never shown

                    Required, but never shown

                    Required, but never shown

                    Required, but never shown

                    Required, but never shown

                    Required, but never shown

                    Required, but never shown

                    Required, but never shown

                    Related Post

                    Leave a Reply

                    Your email address will not be published. Required fields are marked *