Error opening terminal xterm kitty

Using Ubuntu 14.04 When i type "nano" into the terminal I receive the following message: Error opening terminal: xterm. Typing "top" will give this message: 'xterm': unknown terminal type. Word wrap is not working when I push backspace on a multi-line command.
  • Home
  • Forum
  • The Ubuntu Forum Community
  • Ubuntu Official Flavours Support
  • Desktop Environments
  • [SOLVED] Error opening terminal: xterm.

  1. Unhappy Error opening terminal: xterm.

    Using Ubuntu 14.04

    When i type «nano» into the terminal I receive the following message:
    Error opening terminal: xterm.

    Typing «top» will give this message:
    ‘xterm’: unknown terminal type.

    Word wrap is not working when I push backspace on a multi-line command.

    Ctrl+Alt+F6 -> commands work fine.
    xterm works fine.
    Have tried creating a new user but it has the same problem.
    Tried what was suggested here but it doesn’t help.

    Any other suggestions out there?


  2. Re: Error opening terminal: xterm.

    Not all that familiar with the Unity system, but in Systems > Settings > Preferences, which terminal is set as preferred?


  3. Re: Error opening terminal: xterm.

    Just adding to the list of symptoms. When typing «man <something>» The following message will be shown «WARNING: terminal is not fully functional»

    I found this command to find out which terminal is preferred:
    -ubuntu:~$ gsettings get org.gnome.desktop.default-applications.terminal exec
    ‘x-terminal-emulator’

    Edit: I just changed it to xterm and was about to say I’m happy with that. but It’s hard to copy and paste things to xterm

    Last edited by philip10; April 12th, 2015 at 01:45 AM.


  4. Re: Error opening terminal: xterm.

    Try my favorite: the Xfce terminal. Copy-paste is easy, lot of customizing options.


  5. Re: Error opening terminal: xterm.

    I installed and opened xfce terminal
    sudo apt-get install xfce4-terminal

    xfce4-terminal
    Failed to connect to session manager: Failed to connect to the session manager: SESSION_MANAGER environment variable not defined

    echo $SESSION_MANAGER
    <blankline>

    xfce4-terminal still opens up but it suffers from the same problems as x-terminal-emulator


  6. Re: Error opening terminal: xterm.

    Hi philip10.

    Could you open a terminal run these commands, and post back the results (you can copy/paste the text)?

    Code:

    ls ~/.bash_logout ~/.bashrc ~/.profile
    
    diff /etc/skel/.bashrc ~/.bashrc
    
    diff /etc/skel/.profile ~/.profile

    Regards.


  7. Re: Error opening terminal: xterm.

    ls ~/.bash_logout ~/.bashrc ~/.profile

    Code:

    /home/philip/.bash_logout  /home/philip/.bashrc  /home/philip/.profile

    diff /etc/skel/.bashrc ~/.bashrc
    diff /etc/skel/.profile ~/.profile


  8. Re: Error opening terminal: xterm.

    Ok I have almost figured this out.

    Code:

    sudo apt-get install rxvt-unicode
    export TERM=rxvt-unicode

    From there on everything works perfectly. My only problem now is that i have to set TERM all the time. How can i set it permanently to rxvt-unicode using either gnome-terminal or xfce4-terminal? … or any other terminal that supports copy n paste

    Last edited by philip10; April 29th, 2015 at 11:23 AM.


  9. Re: Error opening terminal: xterm.

    Ok completely figured it out now.

    Code:

    sudo apt-get install rxvt-unicode
    nano ~/.bashrc
    export TERM=rxvt-unicode

    Now you should be able to run x-terminal-emulator or gnome-terminal-emulator and everything should work fine.

    I’m not sure if this is just me but if you press ctrl+alt+T and are confronted with the wrong terminal, just open system settings -> keyboard -> shortcuts -> create a custom shortcut with your preferred terminal on ctrl+alt+t. This will override the system shortcut.

    Last edited by philip10; May 26th, 2015 at 10:04 AM.


Tags for this Thread

Bookmarks

Bookmarks


Posting Permissions

Some special symbols are rendered small/truncated in kitty?#

The number of cells a Unicode character takes up are controlled by the Unicode
standard. All characters are rendered in a single cell unless the Unicode
standard says they should be rendered in two cells. When a symbol does not fit,
it will either be rescaled to be smaller or truncated (depending on how much
extra space it needs). This is often different from other terminals which just
let the character overflow into neighboring cells, which is fine if the
neighboring cell is empty, but looks terrible if it is not.

Some programs, like Powerline, vim with fancy gutter symbols/status-bar, etc.
use Unicode characters from the private use area to represent symbols. Often
these symbols are wide and should be rendered in two cells. However, since
private use area symbols all have their width set to one in the Unicode
standard, kitty renders them either smaller or truncated. The exception is if
these characters are followed by a space or empty cell in which case kitty
makes use of the extra cell to render them in two cells. This behavior can be
turned off for specific symbols using narrow_symbols.

Using a color theme with a background color does not work well in vim?#

Sadly, vim has very poor out-of-the-box detection for modern terminal features.
Furthermore, it recently broke detection even more.
It kind of, but not really, supports terminfo, except it overrides it with its own hard-coded
values when it feels like it. Worst of all, it has no ability to detect modern
features not present in terminfo, at all, even security sensitive ones like
bracketed paste.

Thankfully, probably as a consequence of this lack of detection, vim allows users to
configure these low level details. So, to make vim work well with any modern
terminal, including kitty, add the following to your ~/.vimrc.

" Mouse support
set mouse=a
set ttymouse=sgr
set balloonevalterm
" Styled and colored underline support
let &t_AU = "e[58:5:%dm"
let &t_8u = "e[58:2:%lu:%lu:%lum"
let &t_Us = "e[4:2m"
let &t_Cs = "e[4:3m"
let &t_ds = "e[4:4m"
let &t_Ds = "e[4:5m"
let &t_Ce = "e[4:0m"
" Strikethrough
let &t_Ts = "e[9m"
let &t_Te = "e[29m"
" Truecolor support
let &t_8f = "e[38:2:%lu:%lu:%lum"
let &t_8b = "e[48:2:%lu:%lu:%lum"
let &t_RF = "e]10;?e\"
let &t_RB = "e]11;?e\"
" Bracketed paste
let &t_BE = "e[?2004h"
let &t_BD = "e[?2004l"
let &t_PS = "e[200~"
let &t_PE = "e[201~"
" Cursor control
let &t_RC = "e[?12$p"
let &t_SH = "e[%d q"
let &t_RS = "eP$q qe\"
let &t_SI = "e[5 q"
let &t_SR = "e[3 q"
let &t_EI = "e[1 q"
let &t_VS = "e[?12l"
" Focus tracking
let &t_fe = "e[?1004h"
let &t_fd = "e[?1004l"
execute "set <FocusGained>=<Esc>[I"
execute "set <FocusLost>=<Esc>[O"
" Window title
let &t_ST = "e[22;2t"
let &t_RT = "e[23;2t"

" vim hardcodes background color erase even if the terminfo file does
" not contain bce. This causes incorrect background rendering when
" using a color theme with a background color in terminals such as
" kitty that do not support background color erase.
let &t_ut=''

These settings must be placed before setting the colorscheme. It is
also important that the value of the vim term variable is not changed
after these settings.

I get errors about the terminal being unknown or opening the terminal failing or functional keys like arrow keys don’t work?#

These issues all have the same root cause: the kitty terminfo files not being
available. The most common way this happens is SSHing into a computer that does
not have the kitty terminfo files. The simplest fix for that is running:

kitty +kitten ssh myserver

It will automatically copy over the terminfo files and also magically enable
shell integration on the remote machine.

This ssh kitten takes all the same command line arguments
as ssh, you can alias it to something small in your shell’s rc files
to avoid having to type it each time:

alias s="kitty +kitten ssh"

If this does not work, see Copying terminfo files manually for alternative ways to
get the kitty terminfo files onto a remote computer.

The next most common reason for this is if you are running commands as root
using sudo or su. These programs often filter the
TERMINFO environment variable which is what points to the kitty
terminfo files.

First, make sure the TERM is set to xterm-kitty in the sudo
environment. By default, it should be automatically copied over.

If you are using a well maintained Linux distribution, it will have a
kitty-terminfo package that you can simply install to make the kitty
terminfo files available system-wide. Then the problem will no longer occur.

Alternately, you can configure sudo to preserve TERMINFO
by running sudo visudo and adding the following line:

Defaults env_keep += "TERM TERMINFO"

If none of these are suitable for you, you can run sudo as follows:

sudo TERMINFO="$TERMINFO" -s -H

This will start a new root shell with the correct TERMINFO value from your
current environment copied over.

If you have double width characters in your prompt, you may also need to
explicitly set a UTF-8 locale, like:

export LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8

I cannot use the key combination X in program Y?#

First, run:

kitty +kitten show_key -m kitty

Press the key combination X. If the kitten reports the key press
that means kitty is correctly sending the key press to terminal programs.
You need to report the issue to the developer of the terminal program. Most
likely they have not added support for Comprehensive keyboard handling in terminals.

If the kitten does not report it, it means that the key is bound to some action
in kitty. You can unbind it in kitty.conf with:

Here X is the keys you press on the keyboard. So for example
ctrl+shift+1.

How do I change the colors in a running kitty instance?#

The easiest way to do it is to use the themes kitten,
to choose a new color theme. Simply run:

And choose your theme from the list.

You can also define keyboard shortcuts to set colors, for example:

map f1 set_colors --configured /path/to/some/config/file/colors.conf

Or you can enable remote control for kitty and use
kitty @ set-colors. The shortcut mapping technique has the same syntax as the
remote control command, for details, see kitty @ set-colors.

To change colors when SSHing into a remote host, use the color_scheme setting for the ssh kitten.

Additionally, You can use the
OSC terminal escape codes
to set colors. Examples of using OSC escape codes to set colors:

Change the default foreground color:
printf 'x1b]10;#ff0000x1b\'
Change the default background color:
printf 'x1b]11;bluex1b\'
Change the cursor color:
printf 'x1b]12;bluex1b\'
Change the selection background color:
printf 'x1b]17;bluex1b\'
Change the selection foreground color:
printf 'x1b]19;bluex1b\'
Change the nth color (0 - 255):
printf 'x1b]4;n;greenx1b\'

You can use various syntaxes/names for color specifications in the above
examples. See XParseColor
for full details.

If a ? is given rather than a color specification, kitty will respond
with the current value for the specified color.

How do I specify command line options for kitty on macOS?#

Apple does not want you to use command line options with GUI applications. To
workaround that limitation, kitty will read command line options from the file
<kitty config dir>/macos-launch-services-cmdline when it is launched
from the GUI, i.e. by clicking the kitty application icon or using
open -a kitty. Note that this file is only read when running via the GUI.

You can, of course, also run kitty from a terminal with command line options,
using: /Applications/kitty.app/Contents/MacOS/kitty.

And within kitty itself, you can always run kitty using just kitty as it
cleverly adds itself to the PATH.

I catted a binary file and now kitty is hung?#

Never output unknown binary data directly into a terminal.

Terminals have a single channel for both data and control. Certain bytes
are control codes. Some of these control codes are of arbitrary length, so if
the binary data you output into the terminal happens to contain the starting
sequence for one of these control codes, the terminal will hang waiting for the
closing sequence. Press ctrl+shift+delete to reset the terminal.

If you do want to cat unknown data, use cat -v.

kitty is not able to use my favorite font?#

kitty achieves its stellar performance by caching alpha masks of each rendered
character on the GPU, and rendering them all in parallel. This means it is a
strictly character cell based display. As such it can use only monospace fonts,
since every cell in the grid has to be the same size. Furthermore, it needs
fonts to be freely resizable, so it does not support bitmapped fonts.

Note

If you are trying to use a font patched with Nerd Fonts symbols, don’t do that as patching destroys
fonts. There is no need, simply install the standalone Symbols Nerd Font Mono
(the file NerdFontsSymbolsOnly.zip from the Nerd Fonts releases page). kitty should pick up
symbols from it automatically, and you can tell it to do so explicitly in
case it doesn’t with the symbol_map directive:

# Nerd Fonts v2.2.2

symbol_map U+23FB-U+23FE,U+2665,U+26A1,U+2B58,U+E000-U+E00A,U+E0A0-U+E0A3,U+E0B0-U+E0C8,U+E0CA,U+E0CC-U+E0D2,U+E0D4,U+E200-U+E2A9,U+E300-U+E3E3,U+E5FA-U+E634,U+E700-U+E7C5,U+EA60-U+EBEB,U+F000-U+F2E0,U+F300-U+F32F,U+F400-U+F4A9,U+F500-U+F8FF Symbols Nerd Font Mono

Those Unicode symbols beyond the E000-F8FF Unicode private use area are
not included.

If your font is not listed in kitty +list-fonts it means that it is not
monospace or is a bitmapped font. On Linux you can list all monospace fonts
with:

fc-list : family spacing outline scalable | grep -e spacing=100 -e spacing=90 | grep -e outline=True | grep -e scalable=True

Note that the spacing property is calculated by fontconfig based on actual glyph
widths in the font. If for some reason fontconfig concludes your favorite
monospace font does not have spacing=100 you can override it by using the
following ~/.config/fontconfig/fonts.conf:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="scan">
    <test name="family">
        <string>Your Font Family Name</string>
    </test>
    <edit name="spacing">
        <int>100</int>
    </edit>
</match>
</fontconfig>

After creating (or modifying) this file, you may need to run the following
command to rebuild your fontconfig cache:

Then, the font will be available in kitty +list-fonts.

How can I assign a single global shortcut to bring up the kitty terminal?#

Bringing up applications on a single key press is the job of the window
manager/desktop environment. For ways to do it with kitty (or indeed any
terminal) in different environments,
see here.

I do not like the kitty icon!#

There are many alternate icons available, click on an icon to visit its
homepage:

https://github.com/k0nserv/kitty-icon/raw/main/icon_512x512.png
https://github.com/DinkDonk/kitty-icon/raw/main/kitty-dark.png
https://github.com/DinkDonk/kitty-icon/raw/main/kitty-light.png
https://github.com/hristost/kitty-alternative-icon/raw/main/kitty_icon.png
https://github.com/igrmk/whiskers/raw/main/whiskers.svg
https://github.com/samholmes/whiskers/raw/main/whiskers.png

On macOS you can put kitty.app.icns or kitty.app.png in the
kitty configuration directory, and this icon will be applied
automatically at startup. Unfortunately, Apple’s Dock does not change its
cached icon so the custom icon will revert when kitty is quit. Run the
following to force the Dock to update its cached icons:

rm /var/folders/*/*/*/com.apple.dock.iconcache; killall Dock

If you prefer not to keep a custom icon in the kitty config folder, you can
also set it with the following command:

# Set kitty.icns as the icon for currently running kitty
kitty +runpy 'from kitty.fast_data_types import cocoa_set_app_icon; import sys; cocoa_set_app_icon(*sys.argv[1:]); print("OK")' kitty.icns

# Set the icon for app bundle specified by the path
kitty +runpy 'from kitty.fast_data_types import cocoa_set_app_icon; import sys; cocoa_set_app_icon(*sys.argv[1:]); print("OK")' /path/to/icon.png /Applications/kitty.app

You can also change the icon manually by following the steps:

  1. Find kitty.app in the Applications folder, select it and press +I

  2. Drag kitty.icns onto the application icon in the kitty info pane

  3. Delete the icon cache and restart Dock:

rm /var/folders/*/*/*/com.apple.dock.iconcache; killall Dock

How do I map key presses in kitty to different keys in the terminal program?#

This is accomplished by using map with send_text in kitty.conf.
For example:

map alt+s send_text normal,application x13

This maps alt+s to ctrl+s. To figure out what bytes to use for
the send_text you can use the show_key kitten. Run:

Then press the key you want to emulate. Note that this kitten will only show
keys that actually reach the terminal program, in particular, keys mapped to
actions in kitty will not be shown. To check those first map them to
no_op. You can also start a kitty instance without any shortcuts to
interfere:

kitty -o clear_all_shortcuts=yes kitty +kitten show_key

How do I open a new window or tab with the same working directory as the current window?#

In kitty.conf add the following:

map f1 launch --cwd=current
map f2 launch --cwd=current --type=tab

Pressing F1 will open a new kitty window with the same working directory
as the current window. The launch command is very powerful,
explore its documentation.

Things behave differently when running kitty from system launcher vs. from another terminal?#

This will be because of environment variables. When you run kitty from the
system launcher, it gets a default set of system environment variables. When
you run kitty from another terminal, you are actually running it from a shell,
and the shell’s rc files will have setup a whole different set of environment
variables which kitty will now inherit.

You need to make sure that the environment variables you define in your shell’s
rc files are either also defined system wide or via the env directive in
kitty.conf. Common environment variables that cause issues are those
related to localization, such as LANG, LC_* and loading of
configuration files such as XDG_*, KITTY_CONFIG_DIRECTORY.

To see the environment variables that kitty sees, you can add the following
mapping to kitty.conf:

map f1 show_kitty_env_vars

then pressing F1 will show you the environment variables kitty sees.

This problem is most common on macOS, as Apple makes it exceedingly difficult to
setup environment variables system-wide, so people end up putting them in all
sorts of places where they may or may not work.

I am using tmux and have a problem#

First, terminal multiplexers are a bad idea,
do not use them, if at all possible. kitty contains features that do all of what
tmux does, but better, with the exception of remote persistence (#391).
If you still want to use tmux, read on.

Image display will not work, see tmux issue.

Using ancient versions of tmux such as 1.8 will cause gibberish on screen when
pressing keys (#3541).

If you are using tmux with multiple terminals or you start it under one terminal
and then switch to another and these terminals have different TERM
variables, tmux will break. You will need to restart it as tmux does not support
multiple terminfo definitions.

If you use any of the advanced features that kitty has innovated, such as
styled underlines, desktop notifications, extended keyboard support, etc. they may or may not work, depending on the whims of
tmux’s maintainer, your version of tmux, etc.

I opened and closed a lot of windows/tabs and top shows kitty’s memory usage is very high?#

top is not a good way to measure process memory usage. That is
because on modern systems, when allocating memory to a process, the C library
functions will typically allocate memory in large blocks, and give the process
chunks of these blocks. When the process frees a chunk, the C library will not
necessarily release the underlying block back to the OS. So even though the
application has released the memory, top will still claim the process
is using it.

To check for memory leaks, instead use a tool like Valgrind. Run:

PYTHONMALLOC=malloc valgrind --tool=massif kitty

Now open lots of tabs/windows, generate lots of output using tools like find/yes
etc. Then close all but one window. Do some random work for a few seconds in
that window, maybe run yes or find again. Then quit kitty and run:

massif-visualizer massif.out.*

You will see the allocations graph goes up when you opened the windows, then
goes back down when you closed them, indicating there were no memory leaks.

For those interested, you can get a similar profile out of valgrind
as you get with top by adding --pages-as-heap=yes then you will
see that memory allocated in malloc is not freed in free. This can be further
refined if you use glibc as your C library by setting the environment
variable MALLOC_MMAP_THRESHOLD_=64. This will cause free to actually free
memory allocated in sizes of more than 64 bytes. With this set, memory usage
will climb high, then fall when closing windows, but not fall all the way back.
The remaining used memory can be investigated using valgrind again, and it will
come from arenas in the GPU drivers and the per thread arenas glibc’s malloc
maintains. These too allocate memory in large blocks and don’t release it back
to the OS immediately.

Why does kitty sometimes start slowly on my Linux system?#

kitty takes no longer (within 100ms) to start than other similar GPU terminal
emulators, (and may be faster than some). If kitty occasionally takes a long
time to start, it could be a power management issue with the graphics card. On
a multi-GPU system (which many modern laptops are, having a power efficient GPU
that’s built into the processor and a power hungry dedicated one that’s usually
off), even if the answer of the GPU will only be “don’t use me”.

For example, if you have a system with an AMD CPU and an NVIDIA GPU, and you
know that you want to use the lower powered card to save battery life and
because kitty does not require a powerful GPU to function, you can choose not
to wake up the dedicated card, which has been reported on at least one system
(#4292) to take ≈2 seconds, by running kitty as:

MESA_LOADER_DRIVER_OVERRIDE=radeonsi __EGL_VENDOR_LIBRARY_FILENAMES=/usr/share/glvnd/egl_vendor.d/50_mesa.json kitty

The correct command will depend on your situation and hardware.
__EGL_VENDOR_LIBRARY_FILENAMES instructs the GL dispatch library to use
libEGL_mesa.so and ignore libEGL_nvidia.so also available on the
system, which will wake the NVIDIA card during device enumeration.
MESA_LOADER_DRIVER_OVERRIDE also assures that Mesa won’t offer any NVIDIA
card during enumeration, and will instead just use radeonsi_dri.so.

Recommend Projects

  • React photo

    React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo

    Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo

    Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo

    TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo

    Django

    The Web framework for perfectionists with deadlines.

  • Laravel photo

    Laravel

    A PHP framework for web artisans

  • D3 photo

    D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Visualization

    Some thing interesting about visualization, use data art

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo

    Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo

    Microsoft

    Open source projects and samples from Microsoft.

  • Google photo

    Google

    Google ❤️ Open Source for everyone.

  • Alibaba photo

    Alibaba

    Alibaba Open Source for everyone

  • D3 photo

    D3

    Data-Driven Documents codes.

  • Tencent photo

    Tencent

    China tencent open source team.

Понравилась статья? Поделить с друзьями:
  • Error opening terminal sipp
  • Error opening terminal screen xterm 256color
  • Error opening terminal rxvt unicode
  • Error opening terminal linux
  • Error opening streaming file paks win64 pc all opt starpak