From rxvt-unicode …
Up to a few days ago, I was using rxvt-unicode as my terminal emulator. It works fine, is light (especially with its client/server mode) and integrates nicely with a tilled window manager. But I was needing Fontconfig support which is lacking from rxvt-unicode.
… to LilyTerm …
I first tried to switch to LilyTerm which seems to be appreciated by some people but I was not convinced. The default configuration has some annoying behaviors (confirmation needed when starting the term to launch a specific command, reusing existing window, …) and it has some shortcomings as well (most importantly TERM is set to xterm which is wrong since LilyTerm has 256 colors support).
… to Termite
I have been then suggested to try Termite, a rather recent (first commit is from May 2012), VTE based (as LilyTerm), terminal emulator. The config is really easy and in a few minutes I had a config replicating my rxvt config.
Here is my old rxvt config :
URxvt.foreground: white URxvt*iso14755: False URxvt.depth: 32 URxvt*background: rgba:0000/0000/0000/cccc URxvt.loginShell: true URxvt.perl-lib: /usr/lib/urxvt/perl URxvt.keysym.M-u: perl:mark-yank-urls:activate_mark_mode URxvt.underlineURLs: true URxvt.perl-ext: selection URxvt.perl-ext-common: default,matcher URxvt.matcher.button: 1 URxvt.urlLauncher: /usr/bin/firefox-ux URxvt.underlineColor: green URxvt.saveLines: 65535 URxvt.scrollBar: false URxvt.visualBell: true URxvt*background: #333333 URxvt*foreground: #cccccc URxvt*cursorColor: #999999 URxvt*colorBD: #ffffff URxvt*colorUL: #ffff99 !BLK URxvt*color0: #666666 URxvt*color8: #999999 !RED URxvt*color1: #CC6699 URxvt*color9: #FF99CC !GRN URxvt*color2: #99CC66 URxvt*color10: #CCFF99 !YEL URxvt*color3: #CC9966 URxvt*color11: #FFCC99 !BLU URxvt*color4: #6699CC URxvt*color12: #99CCFF !MAG URxvt*color5: #9966CC URxvt*color13: #CC99FF !CYN URxvt*color6: #66CC99 URxvt*color14: #99FFCC !WHT URxvt*color7: #CCCCCC URxvt*color15: #FFFFFF URxvt*font: -ypn-envypn-medium-r-normal--13-130-75-75-c-90-iso8859-1 URxvt*boldFont: -ypn-envypn-medium-r-normal--13-130-75-75-c-90-iso8859-1
And, here is my Termite config (not exactly the same behavior than rxvt but same look) :
[options] resize_grip = false scroll_on_output = false scroll_on_keystroke = true audible_bell = false visible_bell = false mouse_autohide = false allow_bold = true dynamic_title = true urgent_on_bell = true clickable_url = true font = envypn 9 scrollback_lines = 10000 search_wrap = true #icon_name = terminal #geometry = 640x480 # 0.0: opaque, 1.0: transparent transparency = 0.0 pseudo_transparency = false # "system", "on" or "off" cursor_blink = system # "block", "underline" or "ibeam" cursor_shape = block # $BROWSER is used by default browser = firefox # word characters used for word selection # (default if unset: all graphic non-punctuation/space characters) #word_chars = -A-Za-z0-9,./?%&#:_=+@~ [colors] foreground = #cccccc foreground_bold = #ffffff #foreground_dim = #888888 background = #333333 cursor = #999999 # if unset, will reverse foreground and background #highlight = #2f2f2f # colors from color0 to color254 can be set color0 = #666666 color1 = #CC6699 color2 = #99CC66 color3 = #CC9966 color4 = #6699CC color5 = #9966CC color6 = #66CC99 color7 = #CCCCCC color8 = #999999 color9 = #FF99CC color10 = #CCFF99 color11 = #FFCC99 color12 = #99CCFF color13 = #CC99FF color14 = #99FFCC color15 = #FFFFFF [hints] #font = Monospace 12 #foreground = #dcdccc #background = #3f3f3f #padding = 2 #border = #3f3f3f #border_width = 0.5 #roundness = 2.0 # vim: ft=dosini
Moreover, Termite brings some interesting features:
- Open a new terminal in the current directory: a basic feature I was trying to achieve directly in my Xmonad configuration for months.
- A command mode which takes its roots into Vim command mode.
- Scrollback search (really useful when you forgot to pipe a long running command into grep, less or whatever and that you need to find something specific in the output).
Some features are still lacking like settings specifics parameters through CLI arguments and (probably) sending events. These features are needed to use Termite with programs like Cluster SSH. But this is OK as it is something I do not use everyday and I can keep using urxvt for this.
Termite does not have client/server mode either but it is light enough for this not to be a requirement.
If you are looking for a lightweight terminal emulator, I strongly suggest you give Termite a try.
I thought this post deserved a comment 🙂
I am a rxvt-unicode user, and never thought i would ever in a million years switch back to a VTE. But with termite, it still is not my default, but I have found myself using it a bit more and a bit more and a bit more. I came across it on the IRC, when asking a question about something terminal related in general, I was told to use termite instead. At the time I was not so satisfied with that answer. But since that is its origins, they knew what it already had over urxvt and what it was to become. It may not be complete, but it is pretty d*mn good.
Hi! Very interesting article.
I have a doubt though. I have installed termite and I would like to change its appearance, colours…
I tried modifying the config file in /home/myusername/temite/config and it didn’t do anything.
Then I tried changing things in /etc/xdg/termite/config and then it worked. Can you explain me why this happens? What should I do to make the config file in my user folder be the one valid?
Thanks in advance
Just to be sure the typo in the path on your home folder is only on this comment (temite vs termite)?
~/termite/config is not a valid path. You should put it in ~/.config/termite/config (or $XDG_CONFIG_HOME/termite/config which will probably point to the same folder).
Oh yes, that was a typo here in the comment.
I created the folder termite in ~/.config and put the config file there and then it worked.
But the thing is, the config was originally there (in ~/termite/config) after I cloned from git (git clone –recursive https://github.com/thestinger/termite.git) and installed it. Plus there was a exact config file in /etc/xdg/termite/
I am a newbie here, what I don’t understand is why it has to create 2 config files in 2 separate places.
And another doubt, how can I know where $XDG_CONFIG_HOME points to and can I modify this?
Thanks for your prompt reply.
Well I do not know about how things are being installed by the makefile. I am using my distro package.
Anyway, the file in /etc is systemwide. The file in your home is specific to your user. Anything set in your home overwrite what is set in the system wide file.
You can do “echo $XDG_CONFIG_HOME” to see what is set to. If not set you can do this in your ~/.bashrc.
Ubuntu doesn’t set these variables (I got an empty line) I won’t touch anything for now.
Besides, after your reply I have been reading some articles, some of them:
Apparently it is going to be difficult to keep $HOME tidy. If you have some advice or trick to keep it “tidier”…
Thanks anyway, I appreciate your help.
This is why using ~/.config which is most of the time the directory used by XDG_CONFIG_HOME is a good idea.