[@] A light, but functional terminal emulator - LilyTerm _ O X
[Home] [Features] [Download] [Changelog] [Tips] [About]

The Rendering speed

libvte is a little slower then xterm, rxvt and mlterm. To speed up the rendering speed, you should have a good X settings, like using "XAA" instead of "EXA" in your /etc/X11/xorg.conf:
Option         "AccelMethod"          "XAA"
In my personal experience, the rendering speed of LilyTerm is still acceptable on an Eee PC 701 (Celeron 630) with Compiz, which is the main develop environment of LilyTerm.

LilyTerm and Compiz

If you encounter trouble when running LilyTerm with Compiz, for instance, a black screen or transparent/colorless text, use the following setting in your /etc/X11/xorg.conf:
Option "XAANoOffscreenPixmaps"

Bitmaps fonts

Using bitmaps fonts will be a little fast than using TrueType font in LilyTerm. To do this, You should config fontconfig to use bitmaps fonts first: (Debian disabled bitmaps fonts by default)
dpkg-reconfigure fontconfig-config
Then, put a bitmap font in ~/.fonts/, and restart X, or run the following command to re-generate the font list for fontconfig:
fc-cache -f -v
Then you could see the bitmaps font listed in the right click menu [Change the font] in LilyTerm.

Monospace fonts

Some Chinese fonts don't use monospace on alphanumeric characters, but it's possible to "bind" a monospace English font and a non-monospace Chinese font into a single font by editing ~/.fonts.conf. (Thank Edward Lee for this tip!)
<match target="pattern" >
    <test compare="eq" name="family" >
    <edit mode="assign" binding="strong" name="family" >
        <string>DejaVu Sans Mono</string>
        <string>WenQuanYi Zen Hei</string>
(Note that this doesn't affect every application.)

XTerm Title

XTerm title is a feature of xterm, it can be custom by the application, and shows some information such as the name of the host the user is logged into, the current working directory, etc, on window title. Please visit the following link for more details:
To custom the window title for bash, you may change the "PROMPT_COMMAND" environ (may defined in the ~/.bashrc)
case $TERM in
    # PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"'
or to disable the "Window Title" in LilyTerm, edit the profile:
page_shows_window_title = 0

Transparent background

LilyTerm supports transparent background, but it don't work with some window manager. In that case you may use hsetroot to set the background, which may work well with LilyTerm.
hsetroot -center /home/tetralet/compiz.png

<Ctrl><S> and <Ctrl><Q> don't work under VIM

Use the following command to turn off 'flow-Control' under LilyTerm: (Thank qotsa for this tip!)
stty raw
stty -ixon

VIM 9.x print strange [>4;m and [?4m on screen

Use TERM=rxvt to launch VIM:
TERM=rxvt vim
or, write it in ~/.bashrc:
alias vi='TERM=rxvt vim'

Run LilyTerm in a chroot jail

Mount the devpts device before you launch LilyTerm in a chroot jail:
mount devpts /PathToChroot/dev/pts -t devpts

For BSD Users

Please mount the procfs before launch LilyTerm:
mount -t procfs procfs /proc


VTE_CJK_WIDTH is an environment, it controls the width of some ideographs should be "single width (narrow)" or "double width (wide)" in a vte teminal. This environment should be set before creating a vte widget.

Unfortunately, a ideographs should be "single width" or "double width" is decide by the locale data, the libvte, the displaying font, and the running command; and they are almost never the same, so there is no prefect solution for a vte teminal to decide an ideographs should be "single width" or "double width".

The VTE_CJK_WIDTH will be setted to "narrow" or "wide" by checking the locale environment in libvte, but it may cause problems under some program, such as aptitude, apt, w3m and vim.

In LilyTerm, you may set the VTE_CJK_WIDTH of a new tab to 'wide' with right click menu 'New tab with specified locale' -> 'xx_XX.UTF-8 (Wide)' or 'UTF-8 (Wide)'. LilyTerm will set VTE_CJK_WIDTH to "narrow" by default.

How to debug LilyTerm

Lilyterm have a build-in Makefile file (which will be overwritten after run autogeh.sh when compiling LilyTerm with autotools) in src/ may be used for debugging.

Use the following command to build the debug version of Lilyterm, lilyterm_dev: (You may have libgtk2.0-dev and libvte-dev package installed)

cd src
make debug
After lilyterm_dev have been created, use gdb or valgrind to debug it:
gdb ./lilyterm_dev

How to translate LilyTerm

Find out if the translation has already been done or is in the works. If not, contact upstream to avoid duplication of work.

Rename the downloaded lilyterm.pot file to YOUR_COUNTRY_CODE.po:

mv lilyterm.pot de.po
Edit the first section to fit your situation:
# German translation of LilyTerm.
# Copyright (C) 2013 YOUR_NAME <EMAIL@ADDRESS>
# This file is distributed under the same license as the LilyTerm package.
msgid ""
msgstr ""
"Project-Id-Version: LilyTerm 0.9.9\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-02-15 17:37+0800\n"
"PO-Revision-Date: 2013-02-16 00:30+0800\n"
"Last-Translator: YOUR_NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
If you have an old po file, and want to merge it with the new downloaded lilyterm.pot: (You may have gettext package installed)
msgmerge --previous de.po.old lilyterm.pot -o de.po
Translate the untranslated and fuzzy strings in "msgid" into "msgstr":
#: dialog.c:150 menu.c:461
msgid "Rename this tab"
msgstr "Diesen Reiter umbenennen"
If you have to use "inverted sentence" in the translation, try to use 1$ and 2$:
#: dialog.c:223 menu.c:229
msgid "Change the %s color of %s"
msgstr "改變 %2$s 上的 %1$s 顏色"
Check if the translation is all OK: (You may have gettext package installed)
msgfmt --check --statistics de.po -o /dev/null
Send the updated po file to the upstream via E-mail, Version Control System or Bug Tracking System.