Есть такой эмулятор терминала под названием URxvt. Он поддерживает юникод и расширение функционала перловыми скрипами.
В своём умолчальном виде он, конечно же, не шибко удобен в пользовании, поэтому пришлось настроить его под свои нужды. Собственно, идея была в том, чтобы сделать его похожим на тот же lxterminal или xfce4-terminal.

Одна из вещей, которая меня раздражала - это полоса прокрутки с левой стороны. Далее - малюсенький шрифт. ну и разные вещи по-мелочи.

Конечно же во всём есть своя ложка дёгтя - Иксовые приложения как-то, мягко говоря, странно работают с буфером обмена. То есть для копирования строки в буфер обмена придётся либо использовать какой-нибудь xsel, либо использовать какой-нибудь clipboard-менеджер, например parcellite(и перловое расширение selection-to-clipboard). Я выбрал второе. В любом случае я пользую менеджер буфера обмена, так что страдаю не сильно от того, что URxvt так странно это реализовывает.
Ещё один момент, который меня не устраивает во многих терминалах - это отсутствие бесконечного scrollback-а, но, по идее, это решается использованием некоего мультиплексора - либо screen, либо tmux.

URxvt*termName:        screen-256color
URxvt*loginShell:      true
URxvt.depth:           32
URxvt.scrollstyle:     rxvt

! do not scroll with output
URxvt*scrollTtyOutput: false

! scroll in relation to buffer (with mouse scroll or Shift+Page Up)
URxvt*scrollWithBuffer: true

! scroll back to the bottom on keypress
URxvt*scrollTtyKeypress: true

URxvt.font:            xft:terminus:size=10
!URxvt.letterSpace:    1

URxvt*buffered:        true
URxvt*scrollBar_right: true
URxvt*background:      Black
URxvt*foreground:      LightGray
URxvt*colorUL:         yellow
URxvt*underlineColor:  yellow
URxvt.cutchars:        "\\ `\"\'()*;<>[]{|}"
URxvt.inheritPixmap:   yes
URxvt.utmpInhibit:     true

!-*- Perl extensions -*-
URxvt.perl-ext-common:default,clipboard,matcher,keyboard-select
URxvt.keysym.M-u:     perl:url-select:select_next
URxvt.url-launcher:   /usr/bin/firefox
URxvt.underlineURLs:  True
URxvt.matcher.button: 1 
!URxvt.keysym.M-Escape:perl:keyboard-select:activate
!URxvt.keysym.M-c:     perl:clipboard:copy
!URxvt.keysym.M-v:     perl:clipboard:paste
!URxvt.keysym.M-C-v:   perl:clipboard:paste_escaped
!URxvt.copyCommand:   xsel -ib
!URxvt.pasteCommand:  xsel -ob

Next Post