Scroll to navigation

LilyTerm(1) A light and eazy-to-use terminal emulator LilyTerm(1)


LilyTerm - A light and eazy-to-use terminal emulator for X.


lilyterm [-? | -h | --help] [-T TITLE | --title TITLE] [-R ROLE | --role ROLE] [-t NUMBER | --tab NUMBER] [-n TAB NAMES | --tab_names TAB NAMES] [-d DIRECTORY | --directory DIRECTORY] [-g GEOMETRY | --geometry GEOMETRY] [-l | -ls | --login] [-ut] [-H | --hold] [-s | --separate] [-j | --join] [-p | --profile] [-u PROFILE | --user_profile PROFILE] [-v | --version] [-e COMMAND | -x COMMAND | --execute COMMAND]


LilyTerm is a terminal emulator for the X Window System, based on the libvte library, and aims to be fast and lightweight.


-? | -h | --help

Display a brief help message.

-T TITLE | --title TITLE

Specify the window title.

-R ROLE | --role ROLE

Specify the WM_WINDOW_ROLE string of window.

-t NUMBER | --tab NUMBER

Open multi tabs when starting up.

-n TAB NAMES | --tab_names TAB NAMES

Specify the tab names, separate with <Space>.

-d DIRECTORY | --directory DIRECTORY

Specify the init directory when starting up.

-g GEOMETRY | --geometry GEOMETRY

Specify the geometry of window when starting.
A reasonable example value is "80x24+0+0", witch means "width x height {+-} xoffset {+-} yoffset" (without space).

-l | -ls | --login

Make the shell invoked as a login shell.


Disable recording the session in lastlog, utmp and wtmp.

-H | --hold

Hold the terminal window open when the command following -e/-x terminated.

-s | --separate

Run in separate process.

-j | --join

Integrate new created tabs to the last accessed window.
It may be useful for launching multi commands with LilyTerm in a shell script.

-p | --profile

Got a profile sample.

-u PROFILE | --user_profile PROFILE

Use a specified profile.

-v | --version

Show the version information.

-e COMMAND | -x COMMAND | --execute COMMAND

Run a command when starting up. Must be the final option.


The following key bindings may custom or disable by the right click menu [Set key binding].

Disable/Enable hyperlinks, function keys and right click menu for temporary.

Add a New tab with current directory.

Switch to Prev/Next tab.

Switch to First/Last tab.

Move current tab Forward/Backward.

Move current tab to First/Last.

Switch to 1st ~ 12th tab.

Select all the text in the Vte Terminal box.

Increase/Decrease/Reset the font size of current tab.

Switch between fullwindow/unfullwindow and fullscreen/unfullscreen state.

Emulate a mouse Scroll Up/Down event on Vte Terminal box.

Asks to scroll Up/Down 1 line on Vte Terminal box.

Asks to scroll Up/Down on Vte Terminal box.

Copy the text to clipboard / Paste the text in clipboard.

Copy the text to primary clipboard / Paste the text in primary clipboard.
i.e. Emulate a middle button mouse click to copy/paste the text.

Some key bindings that disabled by default but maybe useful:

Close current tab.
Using <Ctrl><D> or 'exit' to close tabs is recommended.

Open a new window with current directory.

Rename the current tab.


System configure file

User's profile.

Use [Save settings] in the right click menu to save the current tab's settings as default to the specified profile.


Display UTF-8 character under C locale

Execute the following command under LilyTerm:

bind "set convert-meta off"
bind "set output-meta on"

And use the right click menu to set the text encoding to "UTF-8".

Launch LilyTerm under a chroot jail

Extract xauth info to a file (under X):

xauth extract /PathToChroot/tmp/display $DISPLAY

Mount the devpts device and /tmp (may not necessary) before chroot into a chroot jail:

mount /dev/pts /PathToChroot/dev/pts -t devpts
mount -o bind /tmp /PathToChroot/tmp (may not necessary)

Merge the extracted xauth info and set the DISPLAY environ after chroot into the chroot jail:

xauth merge /tmp/display
export DISPLAY=:0

Launch LilyTerm directly, or run it under Xnest/Xephyr:

xinit ~/.xinitrc -- /usr/bin/Xnest :1 -ac -geometry 800x600


xinit ~/.xinitrc -- /usr/bin/Xephyr :1 -ac -screen 800x600

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

Use the following command to turn off 'flow-Control' under LilyTerm:

stty raw


stty -ixon

BSD Users:

Please mount the procfs before launch LilyTerm:

mount -t procfs procfs /proc


Sets what type of terminal attempts to emulate. Please always set to "xterm" under LilyTerm.

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.
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)'.

Customs the "Window Title" for shell.
The following is a reasonable example ~/.bashrc for bash:

case $TERM in
PROMPT_COMMAND='echo -ne "\033]0;${HOSTNAME}: ${PWD}\007"'

The following is a reasonable example ~/.cshrc for csh/tcsh:

switch ($TERM)
case "xterm*":
setenv TITLE "%{\033]0;%m: %~\007%}"

set prompt = "${TITLE}%# "

Please visit for more details.


Lu, Chao-Ming (Tetralet) <>



March 2013 LilyTerm