Urxvt i zmodyfikowane rozszerzenie tabbed

Rxvt-unicode, bo taka jest oficjalna nazwa tego niepozornego emulatora terminala, oprócz wielu innych cech, posiada możliwość używania wraz z nim rozszerzeń napisanych w Perlu. Wśród kilkunastu dostarczanych wraz ze źródłami rozszerzeń jest tabbed. Rozszerzenie te, pozwala na uzyskanie funkcjonalności kart (tabów) zbliżonej do tej oferowanej przez "duże" terminale - Gnome-Terminal, Konsole czy świetny Multi-Gnome-Terminal.

Jako, że musiałem zrezygnować z tego ostatniego (zależności do bibliotek Gnome1, brak wsparcia dla UTF8), zacząłem poszukiwania terminala, który posiadałby kilka cech:

To były główne założenia. Dodatkowo miło by było jakby terminal ów był w stanie:

  1. Zapamiętywać sesje, podobnie jak to robił MGT, tzn. pamiętać co który tab zawierał włącznie z ostatnią ścieżką
  2. Wyświetlać aktywność w tytule karty (MGT wyświetlał tytuł karty na czerwono, gdy coś się tam aktualnie działo, na niebiesko, gdy przestało)
  3. Pozwalać na łatwe dodawanie nowych "typów terminali", czyli pozwolić zdefiniować sobie np. ssh serwer i zdefiniować do niego skrót
  4. Wyświetlić przynajmniej 256 kolorów

Znalazłem urxvt, który spełniał wszystkie podstawowe wymagania oraz część z tych o drugorzędnej ważności. By skorzystać z rozszerzenia tabbed wystarczy dodać odpowiedni parametr:

gryf@mslug ~ $ urxvt -pe tabbed

Tworzenie nowej karty odbywa się poprzez kliknięcie w przycisk [NEW] lub użycie skrótu SHIFT+down (czyli strzałka w dół). Przemieszczanie się pomiędzy tabami można uzyskać przez kliknięcie we właściwą kartę myszą, bądź poprzez SHIFT+left/right. Przemieszczanie kart pomiędzy sobą jest możliwe poprzez CTRL+SHIFT+left/right.

urxvt + tabbed defaults

urxvt po pierwszym uruchomieniu

Po pierwszym uruchomieniu tego terminala jego wygląd może dość poważnie zrazić, dlatego też niezbędne jest poświęcenie mu nieco czasu na skonfigurowanie pod siebie. Przykładowa konfiguracja, którą stosuję, wygląda mniej więcej tak:

! URXVT
URxvt.background:        Black
URxvt.foreground:        rgb:aa/aa/aa
URxvt.visualBell:        false
URxvt.scrollTtyKeypress: true
URxvt.scrollstyle:       next
URxvt*scrollBar:         false

! Font configuration. If compiled with xft support it's possible to use any
! other font like Lucida Typewriter.
URxvt.font:             xft:Fixed:pixelsize=16
URxvt.boldFont:         xft:Fixed:bold:pixelsize=16
URxvt.italicFont:       xft:Fixed:italic:pixelsize=16
URxvt.boldItalicFont:
! or, if XFT is not compiled into urxvt, use regular X font definition:
URxvt.font:             -misc-fixed-medium-r-normal-*-*-140-*-*-c-*-*
URxvt.boldFont:         -misc-fixed-bold-r-normal-*-*-140-*-*-c-*-*
URxvt.italicFont:       -misc-fixed-medium-o-normal-*-*-140-*-*-c-*-*
URxvt.boldItalicFont:

! Different colors
URxvt.color0: rgb:00/00/00
URxvt.color1: rgb:b8/36/36
URxvt.color2: rgb:5f/99/22
URxvt.color3: rgb:cd/7b/21
URxvt.color4: rgb:26/30/8a
URxvt.color5: rgb:65/26/8a
URxvt.color6: rgb:26/7a/8a
URxvt.color7: rgb:aa/aa/aa
URxvt.color8: rgb:55/55/55
URxvt.color9: rgb:ee/49/4b
URxvt.color10: rgb:ac/ee/49
URxvt.color11: rgb:f3/ee/49
URxvt.color12: rgb:49/77/f3
URxvt.color13: rgb:ac/49/f3
URxvt.color14: rgb:49/c4/f3
URxvt.color15: rgb:ff/ff/ff

! Perl extension config
URxvt.perl-ext-common: default
URxvt.perl-ext: tabbed
! Any scripts placed here will override global ones with the same name
URxvt.perl-lib: /home/user/.urxvt/

! Tabbed extension configuration
URxvt.tabbed.tabbar-fg: 8
URxvt.tabbed.tabbar-bg: 0
URxvt.tabbed.tab-fg:    15
URxvt.tabbed.tab-bg:    8
URxvt.tabbed.new-button: false

Konfiguracji dokonuje się w pliku ~/.Xdefaults. A oto efekt:

urxvt + tabbed

urxvt po wstępnej konfiguracji

Zmodyfikowany tabbed

Po jakimś czasie przestały mi wystarczać "bezimienne", ponumerowane taby oraz sposób tworzenia nowych kart. Zmodyfikowałem więc skrypt tabbed:

Rozszerzenie można pobrać z Bitbucket i używać na własną odpowiedzialność. Jako, że nie znam Perla w ogóle, mogłem, i zapewne narobiłem głupot w tym pliku, choć używam tej modyfikacji już jakiś czas i u mnie działa ;)

urxvt + mod tabbed

urxvt ze zmodyfikowanym tabbed

Instalacja jest banalna:


, Etykiety: linux, narzędzia