LilyTerm
A light and eazy-to-use terminal emulator
LilyTerm 0.9.8 was released, CALL FOR TRANSLATORS!
(You may download the pot file here!) (HowTo)
[@] A light, but functional terminal emulator - LilyTerm _ O X
[Home] [Features] [Download] [Changelog] [Document] [About] [CHT]
  1. Profiles

  2. Keybinds

  3. Tips

  4. License

::Profiles::

  • The configuration file is located at ~/.config/lilyterm.rc (<= 0.9.6) or ~/.config/lilyterm.conf (0.9.7) -- note that you may need to copy the default *.conf file from /etc/xdg/lilyterm.conf in the case of the latter.
  • Execute lilyterm -p to get a sample profile.
  • Use [Get function value] in the menu to get a function key to use in your profile.
  • To make the current tab's settings as the default, use [Save settings].
  • Use the -u command-line option to specify a custom profile.

::Keybinds::

Action Keybinds
Disable/Enable <Ctrl><`>
New tab <Ctrl><T>
Close current tab <Ctrl><Q>
Rename tab <Ctrl><E>
Prev tab <Ctrl><PageUp>
Next tab <Ctrl><PageDown>
First tab <Ctrl><Home>
Last tab <Ctrl><End>
Move current tab forward <Ctrl><Left>
Move current tab backward <Ctrl><Right>
Move current tab to first <Ctrl><Up>
Move current tab to last <Ctrl><Down>
Switch to 1st ~ 12th tab
<Ctrl><F1>~<F12>
Select all <Ctrl><O>
Copy <Ctrl><X>
Paste <Ctrl><V>
Increase font size <Ctrl><+>
Decrease font size <Ctrl><->
Reset font size <Ctrl><Enter>
Paste from primary clipboard <Shift><Insert>
Full Window
<Alt><F11>
Full Screen
<Alt><Enter>

::Tips::

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 /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.

Embedded bitmaps font

Some TrueType fonts, like "AR PL UMing", "WenQuanYi Zen Hei", and "Microsoft MingLiu", has a embedded bitmaps font. If the embedded bitmaps font don't work under LilyTerm, You may edit the profile to force enable it:
# Using AntiAlias when showing fonts.
# 0: default. 1: force enable. 2: force disable.
font_anti_alias = 2

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. (Thanks to Edward Lee for this tip!)
<match target="pattern" >
    <test compare="eq" name="family" >
        <string>monospace</string>
    </test>
    <edit mode="assign" binding="strong" name="family" >
        <string>DejaVu Sans Mono</string>
        <string>WenQuanYi Zen Hei</string>
    </edit>
</match>
(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:
Xterm-Title
To custom the window title for bash, you may change the "PROMPT_COMMAND" environ (may defined in the ~/.bashrc)
case $TERM in
xterm*)
    # PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"'
    ;;
*)
    ;;
esac
or to disable the "Window Title" in LilyTerm, edit the profile:
page_shows_window_title = 0

Specify the color

It's possible to change the color of the foreground(text)/background by giving the appropriate variable a value of white or #FFFFFF or #FFFFFFFFFFFF in the profile.

ANSI Color theme

You may specify the main ansi color theme used in Lilyterm. Possible values are linux, xterm, rxvt, tango, and vte_fixed, or left it blank to use the default settings form libvte.
theme = vte_fixed

Dim the text color when inactive

The text color of LilyTerm will be darken when inactive. You may adjust the brightness of the dim color in the profile:
inactive_brightness = -0.300
May set a empty value for it to disable this feature:
inactive_brightness =

Transparent background

LilyTerm only supports transparent background now, 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

Lighten the background

libvte can only "darken" the background by default when adjusting the saturation of background, but you may try to "lighten" the background when setting the background color to "white" (#FFFFFF).

Specify the function key

If you want to customize the function key, refer to the following example:
The default keys in LilyTerm:
[key]
new_tab_key = Ctrl T
close_tab_key = Ctrl W
prev_tab_key = Ctrl Page_Up
next_tab_key = Ctrl Page_Down
first_tab_key = Ctrl Home
last_tab_key = Ctrl End
edit_label_key = Ctrl E

Vim users may wish to use:
[key]
new_tab_key = Ctrl+Shift Insert
close_tab_key = Ctrl+Shift Delete
prev_tab_key = Ctrl+Shift Left
next_tab_key = Ctrl+Shift Right
first_tab_key = Ctrl+Shift Up
last_tab_key = Ctrl+Shift Down
edit_label_key = Ctrl+Shift Return

The Function Key value must be either Shift, Ctrl, Alt(MOD1), MOD3, MOD4, or MOD5 (MOD2 is the NumLock key). You may use [Get function key value] in the menu to "grab" a function key to use in the profile.

Disable the function key, hyperlinks and right click menu for temporarily

You may disable/enable the function keys, hyperlinks and right click menu for temporarily by function key. The default function key is <Ctrl><`>.

Disable the function key for permanently

You may disable a function key for permanently by setting a empty value for it in profile. for example:
new_tab_key =

Copy/paste text

Highlight text using [Left Click], and paste it by pressing [Middle Click] or <Shift><Insert>.

Also may use <Ctrl><X> to copy the text to clipboard, and past it with <Ctrl><V>.

Specify the encoding

You may specify a tab's encoding to zh_TW.Big5 or Big5 in the profile. May open a new tab with environ zh_TW.Big5 if you are using zh_TW.Big5 here.

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

Killing running shell

Use kill() to kill running shell when using <Ctrl><Q> or <Alt><F4>, or the subprocess of the tab will be closed at the same time.

VTE_CJK_WIDTH

VTE_CJK_WIDTH is an environment, it controls the width of some ideographs should be "single width" or "double width" in a vte teminal. 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.

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) 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) 2009 YOUR_NAME <EMAIL@ADDRESS>
# This file is distributed under the same license as the LilyTerm package.
#
msgid ""
msgstr ""
"Project-Id-Version: LilyTerm 0.9.8\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-12-15 17:37+0800\n"
"PO-Revision-Date: 2009-12-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"
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.

::License::

LilyTerm ( ~ 0.7.1)

3-clause BSD License

LilyTerm (0.7.2 ~ 0.9.6)

2-clause BSD License

LilyTerm (0.9.7 ~ )

GNU GPLv3