https://github.com/refi64/uterm
A WIP terminal emulator, written in C++11 using Skia, libtsm, and GLFW
https://github.com/refi64/uterm
Last synced: 3 months ago
JSON representation
A WIP terminal emulator, written in C++11 using Skia, libtsm, and GLFW
- Host: GitHub
- URL: https://github.com/refi64/uterm
- Owner: refi64
- License: bsd-2-clause
- Created: 2017-11-27T03:10:45.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2019-04-24T01:54:48.000Z (about 7 years ago)
- Last Synced: 2025-12-03T00:33:00.142Z (6 months ago)
- Language: C++
- Size: 181 KB
- Stars: 24
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
Awesome Lists containing this project
- awesome-ricing - uterm - A WIP terminal emulator, written in C++11 using Skia, libtsm, and GLFW. (C) (Packages / Terminals)
README
uterm
=====
uterm is a WIP terminal emulator, written in C++11 using Skia, libtsm, and GLFW.
Supported platforms
*******************
Currently uterm has only been tested on Linux, though it should also work on OSX. It
*may* also work on BSD; anyone willing to test it should be able to just edit
``fbuildroot.py`` to change all instances of ``{'linux'}`` to ``{'linux', 'bsd'}``.
Downloading
***********
AppImages are available `here `_. If
you want to build it yourself, read on.
Dependencies
************
- GLFW.
- OpenGL and EGL. These should come by default with your Linux mesa installation.
- Freetype2 and Fontconfig.
Building
********
You need `Fbuild `_ version 0.3 RC 2 or greater.
(Just using the *master* branch should be good enough.) Run::
$ fbuild
to do a full build. If you want to do a release build, instead use::
$ fbuild --release
Note that the initial build will take quite a while, as it will be building the entire
Skia library, which is pretty huge.
If you're concerned about size, a debug build is 73MB, and a release build is only 6MB
(largely thanks to LTO).
Configuration
*************
Configuration is done using `libConfuse `_.
Here's an example config file (stored in ``$HOME/.config/uterm/uterm.conf``)
.. code-block:: c
// C-style comments are supported
// ***VERTICAL SYNC***
// By default, uterm uses adaptive vsync, which is given via a vsync value of -1. If you
// experience input lag, try setting it to 0. On the other hand, if you experience screen
// tearing, you can try setting it to 1, but it might cause input delays. -1 should make
// sure input is snappy while still avoiding tearing.
vsync = -1
// ***FONTS**
// Set the default font size.
font-defaults {
size = 16
}
// By default uterm uses the system monospace font. Any fonts appearing here will
// take priority in the order that they are specified in this file.
// These can specify a size too if you want; it'll look just like above.
// In this example, Roboto Mono is the #1 font. If any characters aren't available
// in Roboto Mono, it'll fall back to Hack. After that, it will fall back to the system
// monospace font.
font "Roboto Mono" {}
font Hack {}
// ***THEMING***
theme test {
// You can use 0xRRGGBB style
red = 0xFF0000
// or 0xRRGGBBAA style
background = 0xFFFFFFAA
// Supported colors: black, red, green, yellow, blue, magenta, cyan, white
// Prefix a color with bright_ (e.g. red_bright) to set the "bright" version of the color.
// You can also set the default foreground and background color:
foreground = 0x000000
// If any of the mentioned colors are ommitted, they will use the versions from the default
// theme.
}
// You can define multiple themes in this file. To switch between them, use current-theme:
current-theme = test
// If you omit it to set it to an empty string (""), the default theme will be used.