borisfaure / terminology

The best terminal emulator based on the Enlightenment Foundation Libraries
http://terminolo.gy/
Other
659 stars 52 forks source link
c console terminal terminal-app terminal-emulators

Terminology

Terminology


Please report bugs/issues at git.enlightenment.org


Coverity CircleCI Codecov Twitter: _Terminology_ Snapcraft Weblate


This is an EFL terminal emulator with some extra bells and whistles such as the ability to display in-line images, video and even play music files, background images, videos, Z-Modem like sending (e.g. SSH into a server and use tysend to send a file back to the local terminal), GPU Accelerated rendering (optional - just set the EFL Elementary toolkit engine to use OpenGL) and much more.

Requirements

Please see http://www.enlightenment.org for information on these.

Compiling

Once you have met requirements, compiling and installing are simple:

meson build
ninja -C build
sudo ninja -C build install

At the end of this file is more complete information on cimpiling and installing.

NOTE: to make terminology work with input methods in general you need:

export ECORE_IMF_MODULE="xim"
export XMODIFIERS="@im=none"

Themes

Apart from the ones shipped with Terminology, themes can be stored in ~/.config/terminology/themes/.

Documentation on themes is written in THEMES.md.

Color Schemes

Terminology ships with some common color schemes.

To know how to modify or add some new color schemes, please read COLORSCHEMES.md.

Mouse controls

Default key controls

Companion tools

Terminology ships with a set of tools to help you get the best out of Terminology.

Extended escapes for terminology only

[\033][}][COMMAND][\000] i.e.

  1. ESC char (\033 or 0x1b)
  2. } char
  3. a sequence of UTF8 chars other than nul (\000 or 0x00).
  4. \000 char (nul byte or 0x00 to indicate end of sequence)

e.g.

  `echo -n '\033}Hello world\000'`

Commands

In the following, any values inside square brackets [] are to be replaced by some content (numbers, strings, paths, url's etc.).

Examples:

Available commands

Compiling and Installing

Meson is the build system used for this project. For more information please see mesonbuild.com

You will need normal build tooling installed such as a compiler (gcc or clang for example), pkg-config, ninja, any relevant package-dev or package-devel packages if your distribution splits out development headers (e.g. libc6-dev) etc.

Depending on where dependencies (like efl) are installed, you might have to set your PKG_CONFIG_PATH environment variable like:

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig

Also note that some distributions like to add extra arch directories to your library locations so you might have to have more like:

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig:/usr/local/lib/x86_64-linux-gnu/pkgconfig:/usr/lib/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig

You will need to ensure that the destination library directory (e.g. /usr/local/lib is in your /etc/ld.so.conf or /etc/ld.so.conf.d/ files and after installing anything that installs libraries you re-run ldconfig. Please see relevant documentation on ldconfig and ld.so.conf for your distribution.

You might also want to add the destination bin dir to your environment variable PATH (see documentation on your shell PATH variable) such as:

export PATH=/usr/local/bin:/usr/bin:/bin

Normal compilation in /usr/local:

meson . build
ninja -C build
sudo ninja -C build install

For meson build generic options:

meson --help

For a list of project specific options supported:

cat meson_options.txt

To set 1 or more project specific options:

meson --prefix=/path/to -Doption=value [-Dother=value2] [...] . build

To display current configuration:

meson configure build

The above will only work after at least the following is done:

meson . build

Quick build help

How to clean out the build and config and start fresh:

rm -rf build

How to make a dist tarball and check its build: (must do it from git tree clone and commit all changes to git first)

ninja -C build dist

How to change prefix:

meson --prefix=/path/to/prefix . build

How to install in a specific destination directory for packaging:

DESTDIR=/path/to/destdir ninja -C build install

How to build with verbose output (full commands run):

ninja -C build -v

Running on framebuffer

Terminology can run on the framebuffer, if EFL is compiled with fb or drm support. Then the following environment need to be set: