to xft or not to xft ?

My favorite terminal is mrxvt (also refered to as materm). It has tab support, it’s pretty, and very configurable.
Since I am greek…I want to be able to both read and write greek on the terminal. Until recently I used the font:
*font:-*-lucida console-medium-r-*-*-0-*-*-*-*-*-iso8859-7
for all my terminals. This font is pretty good looking but of course not as good as an xft font.

I’ve now decided to use an xft font for my mrxvt. The problem is that I can’t find an xft font to display greek chars…so I had to keep xterm with the previous mentioned lucida-console font for greek viewing purposes. I chose “DejaVu Sans Mono” as my font of choice for mrxvt…and the results are just excellent. Output is a lot easier to read and less tiring for the eyes.

Here my full .mrxvtrc:

#
# ----------------------------- TAB-BAR OPTIONS ------------------------------ #
#
Mrxvt.bottomTabbar: True
# Only show the tab bar if there is more than one tab.
Mrxvt.autohideTabbar: False
# The number of tabs to attempt to keep visible. The width of tabs will shrink
# to keep at least these many tabs visible.
Mrxvt.minVisibleTabs: 8
# Make the terminal title the same as the active tab title.
Mrxvt.syncTabTitle: True
Mrxvt.syncTabIcon: true
# Highlight inactive tabs only when they sound a bell (and not whenever they
# produce output).
Mrxvt.highlightTabOnBell: True
# Tab bar colors
Mrxvt.itabBackground: #101010
Mrxvt.tabBackground: #000000
Mrxvt.itabForeground: #909090
Mrxvt.tabForeground: #9a9a9a
#mrxvt*tabForeground: white
#mrxvt*tabBackground: grey
#mrxvt*itabForeground: grey
#mrxvt*itabBackground: darkblue
#
# ---------------------- SCROLLING / SCROLLBAR OPTIONS ----------------------- #
#
Mrxvt.scrollBar: true
Mrxvt.scrollbarRight: true
#Mrxvt.scrollbarStyle: rxvt
mrxvt*scrollbarStyle: next
# Number of lines to save in the scroll back buffer for all tabs
mrxvt*saveLines: 32767
# Don't scroll to the bottom every time some output is produced.
Mrxvt.scrollTtyOutputInhibit: true
# Scroll to the bottom when a key is pressed.
Mrxvt.scrollTtyKeypress: true
# Scroll bar colors
Mrxvt.scrollColor: #808080
Mrxvt.troughColor: #202020
# Mrxvt.scrollbarPixmap: scrollbarbg.jpg
#
# ------------------------------- TRANSPARENCY ------------------------------- #
#
# True translucency (using Xorg's composite extension).
# Mrxvt.opacity: 75
# Mrxvt.opacityDegree: 5
# Pseudo transparency. As long as you set the background using an esetroot
# compatible program (e.g. feh), then the following will work. It is pretty
# resource friendly too :).
Mrxvt.transparent: True
Mrxvt.transparentScrollbar: True
Mrxvt.transparentTabbar: True
Mrxvt.transparentMenubar: False
# Color / degree to which the root background should be tinted.
Mrxvt.tintColor: #000000
Mrxvt.shading: 10
#Mrxvt.fading: 10
#
# ---------------------------------- FONTS ----------------------------------- #
#
mrxvt*font:-*-*-*-*-*-*-*-140-*-*-*-*-iso8859-7
Mrxvt.xft: 1
#Mrxvt.xftFont: Bitstream Vera Sans Mono
Mrxvt.xftFont: DejaVu Sans Mono
Mrxvt.xftSize: 10
Mrxvt.xftAntialias: 1
# The options below are better set using ~/.fonts.config. Mrxvt will use the
# defaults passed to the fontconfig library.
#
Mrxvt.xftHinting: 1
Mrxvt.xftAutoHint: 1
Mrxvt.xftGlobalAdvance: 1
# Mrxvt.xftRGBA: rgb
# Mrxvt.xftslow: 1
# Don't load a multi-char font. This will reduce the line space if your multi
# char font has different dimensions than the regular font. You might need to
# comment it out if you want to use XIM and non-english fonts.
#Mrxvt.xftNomFont: 1
# Font to use for tab bar / menus. This need not be mono-spaced ;).
Mrxvt.xftPFont: Bitstream Vera Sans
Mrxvt.xftPSize: 10
# Shadow text
# Mrxvt.textShadow: red
# Mrxvt.textShadowMode: botright
#
# XIM input / multi char support. To use this, you should also comment out the
# xftNomFont line above.
#
# Mrxvt.xftmFont: SimSun
# Mrxvt.multichar_encoding: GB
#mrxvt.preeditType: OverTheSpot
#Mrxvt.inputMethod: SCIM
mrxvt*greek_keyboard: iso
mrxvt.multichar_encoding: el_GR
#mrxvt*greektoggle_key: VoidSymbol
mrxvt.greektoggle_key: Mode_switch
#
# ---------------------------------- CURSOR ---------------------------------- #
#
Mrxvt.cursorBlink: true
Mrxvt.cursorColor: #00ff00
Mrxvt.cursorColor2: #000000
#
# ---------------------------------- COLORS ---------------------------------- #
#
# Setup colors for a black background.
Mrxvt.background: #000000
Mrxvt.foreground: #9a9a9a
Mrxvt.color0: #000000
Mrxvt.color1: #af0000
Mrxvt.color2: #00af00
Mrxvt.color3: #afaf00
Mrxvt.color4: #0000af
Mrxvt.color5: #af00af
Mrxvt.color6: #00afaf
Mrxvt.color7: #9a9a9a
Mrxvt.color8: #5f5f5f
Mrxvt.color9: #d70000
Mrxvt.color10: #00d700
Mrxvt.color11: #d7d700
Mrxvt.color12: #0000d7
Mrxvt.color13: #d700d7
Mrxvt.color14: #00d7d7
Mrxvt.color15: #d7d7d7
# Display bold and underlined text in color, rather than using the terminal
# attributes. This makes reading man pages a little easier.
Mrxvt.colorBD: #00afaf
Mrxvt.colorUL: #00af00
# Mrxvt.colorRV: #000040
# Display the X selection as highlighted instead of using reverse video.
Mrxvt.highlightColor: #303060
# Colors when terminal window looses focus. (Does not work well with Xft).
# Mrxvt.ufBackground: yellow
Mrxvt.backgroundFade: 50
#
# ------------------------------- MISC OPTIONS ------------------------------- #
#
mrxvt*geometry: 120x45
# The value of the TERM environment variable. Default is rxvt. If you have
# trouble, try uncommenting the following line.
Mrxvt.termName: rxvt
# Default title of each tab.
#Mrxvt.tabTitle: mrxvt
Mrxvt.vt0.tabTitle: Term 1
Mrxvt.vt1.tabTitle: Term 2
Mrxvt.vt2.tabTitle: Term 3
# Border to leave around terminal text
Mrxvt.internalBorder: 2
# Make double click select whole URL's
Mrxvt.cutChars: :=/~#@?%&_-.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0abcdefghijklmnopqrstuvwxyz
# Blank the mouse pointer on keystrokes or after 10 seconds of inactivity.
Mrxvt.pointerBlank: True
Mrxvt.pointerBlankDelay: 10
# Don't close the tab if the secondary screen is displayed (e.g. when running
# vim).
Mrxvt.protectSecondary: True
# Run as a login shell.
Mrxvt.loginShell: True
# Enable session management
# Mrxvt.sessionMgt: true
#
# ---------------------------- KEYBOARD SHORTCUTS ---------------------------- #
#
Mrxvt.macro.Shift+Left: GotoTab -1
Mrxvt.macro.Shift+Right: GotoTab +1

And here’s how it looks like:

Well…It looks pretty nice to me…Here you can see 2 tabs (one running top at the background and the current one with a cat .mrtxvtrc output), how the highlighting works (instead of just reverse video), and that I am a zsh lover 🙂

And here comes the question : Is there any xft compatible, Mono font that can display greek characters at terminals ? If so…WHICH ?

Anyway…if you think you have a better .mrxvtrc that I might like…can you post it ?

6 Responses to “to xft or not to xft ?”

  1. enebdomon
    September 21st, 2006 | 19:28
    Using Mozilla Firefox Mozilla Firefox 1.5.0.7 on Linux Linux

    what do you mean by “xft compatible” font ?
    nearly every kind of font is working ok with xft, fontconfig and co.
    in my system the “lucida console” glyphs are provided from ttf files (ms origin). maybe you dont have the relevant dir in your fonts.conf/local.conf file ?

  2. site admin
    September 21st, 2006 | 20:53
    Using Mozilla Firefox Mozilla Firefox 1.5.0.7 on Linux Linux

    I don’t have a problem with lucida console…lucida console works fine on my xterm (I can see greek text just fine with it). My problem is that I can’t see any greek chars using “Dejavu sans Mono” or a similar “mono” font on mrxvt from the time that I enabled “xft”.

    I am reading here: http://dejavu.sourceforge.net/wiki/index.php/Testing#DejaVu_Sans_Mono_2 that “DeJavu Sans Mono” can display greek characters…so why aren’t they displayed on my mrxvt properly ? Anyone have any idea ?

  3. enebdomon
    September 22nd, 2006 | 18:38
    Using Mozilla Firefox Mozilla Firefox 1.5.0.7 on Linux Linux

    maybe u have an older version of dejavu fonts. they added full greek coverage in sans-mono after version 2.5 (or somewhere around it …)

  4. site admin
    September 22nd, 2006 | 22:17
    Using Mozilla Firefox Mozilla Firefox 1.5.0.7 on Linux Linux

    Well…I have tried both version 2.10 and Dejavu LGC 2.10…same result…
    That’s how it looks like when I try typing in Greek: http://img465.imageshack.us/img465/92/dejavugreekproblemse1.png

  5. February 12th, 2008 | 19:54
    Using Mozilla Firefox Mozilla Firefox 2.0.0.12 on Ubuntu Linux Ubuntu Linux

    hey, great tutorial.
    can u teach me, how to make it transparent ?
    so i can see my desktop background while doing command line-ing ?
    hope to get contact with u sir!
    😉

  6. February 14th, 2008 | 04:10
    Using Mozilla Firefox Mozilla Firefox 2.0.0.11 on Linux Linux

    Check out the Transparency settings of mrxvt. Look at my config posted above or on mrxvt’s man page.

Leave a reply