/ Статьи / Пользова­тельское / Urxvt (rxvt-unicode) настройка и использование /

Urxvt (rxvt-unicode) настройка и использование

Дата публикации: Jan. 8, 2011, 10:43 p.m.
Теги: консоль, терминал, настройка,
Автор: Brainsburn

rxvt-unicode urxvt

Urxvt - минималистичный и быстрый эмулятор терминала, поддерживающий расширения с помощью Perl-скриптов. Пугает пользователей отсутствием меню настройки, но искупляет это своей быстротой. Пользуясь urxvt вы можете производить поиск по тексту (searchable scrollback), переходить по ссылкам без мыши; urxvt можно запускать в режиме демона, тогда он будет потреблять еще меньше ресурсов. Поддерживает вкладки.

Установка urxvt

Скачать последний релиз urxvt можно отсюда: http://dist.schmorp.de/rxvt-unicode/ . На данный момент это версия 9.10.

$ wget http://dist.schmorp.de/rxvt-unicode/rxvt-unicode-9.10.tar.bz2
$ tar xaf rxvt-unicode-9.10.tar.bz2
$ cd rxvt-unicode-9.10
Некоторые опции конфигурации:
--enable-256-color - поддержка 256 цветов
--enable-xft - поддержка xft шрифтов
--enable-font-styles - поддержка стилей шрифта: жирный и наклонный
--enable-transparency - поддержка прозрачности
--enable-perl - поддержка Perl
--enable-mousewheel - поддержка скроллинга с помощью колесика мыши
$ ./configure --prefix=/usr --enable-font-styles --enable-perl --enable-mousewheel
$ make
$ make install

Способы запуска urxvt

Вы можете запускать urxvt обычным способом - командой urxvt. Но правильнее запускать его в режиме демона. Для этого добавьте следующую строчку в ~/.xinitrc:

urxvtd -q -f -o &

Теперь клиент urxvt можно запустить командой urxvtc. Однако, такой способ может быть опасным - если обрушится демон, то все клиенты умрут вместе с ним.

Настройка цветов urxvt

Все настройки для urxvt должны быть размещены в файле ~/.Xdefaults. Вы можете указать свои цвета, а если не укажете - urxvt будет использовать дефолтные. Вот моя цветовая схема:

! Normal
! color0    BLACK
! color1    red
! color2    green
! color3    yellow
! color4    blue (синий)
! color5    purple (фиолетовый)
! color6    cyan (голубой)
! color7    white

urxvt*color0:    #000000
urxvt*color1:    #C00000
urxvt*color2:    #00C000
urxvt*color3:    #C0C000
urxvt*color4:    #0C00C0
urxvt*color5:    #AA00AA
urxvt*color6:    #00AAAA
urxvt*color7:    #FFFFFF

! Light
! color8    darkgray
! color9    red
! color10    green
! color11    yellow
! color12    blue (синий)
! color13    purple (фиолетовый)
! color14    cyan (голубой)
! color15    lightgray

urxvt*color8:    #212121
urxvt*color9:    #FF8080
urxvt*color10:    #80FF80
urxvt*color11:    #FFFF88
urxvt*color12:    #99CCFF
urxvt*color13:    #B14CC2
urxvt*color14:    #9BFFFF
urxvt*color15:    #D0D0D0
Сохранять 5000 строк для прокрутки. Чем больше строк urxvt будет сохранять, тем больше он будет кушать оперативной памяти, поэтому это значение не рекомендуется сильно увеличивать.
URxvt*saveLines: 5000
Шрифты. Для выбора шрифтов используйте утилиту xfontsel
URxvt.font: -*-clean-medium-r-*-*-12-*-*-*-*-*-*-*
URxvt.boldFont: -*-clean-bold-r-*-*-12-*-*-*-*-*-*-
Убираем скролл
URxvt*scrollBar: false
Устанавливаем темно серый фон и светло серый текст (щадящий вариант для глаз)
URxvt*background: #212121
URxvt*foreground: #C0C0C0
Дефолтный каталог для перловых скриптов - /usr/lib/urxvt/perl/. Чтобы ваш пользователь мог добавлять свои скрипты, укажем дополнительный каталог для них:
URxvt.perl-lib: /home/brainsburn/.config/urxvt/perl
Указываем, какие дополнения urxvt будет использовать. matcher - работа со ссылками, url-select - переход по ссылкам без использования мыши. tabbedex - расширенный скрипт для включения вкладок
URxvt.perl-ext-common:  default,matcher,url-select,tabbedex
Указываем кнопку мыши для перехода по ссылкам
URxvt.matcher.button:   1
Браузер, в котором будут открываться страницы
URxvt.urlLauncher:     firefox
Подчеркивание ссылок
URxvt.underlineURLs:   true
Сочетание Alt-u - для выделения ссылок
URxvt.keysym.M-u:      perl:url-select:select_next
Изменяем цвета табов.
URxvt.tabbed.new-button: no
URxvt.tabbed.tabbar-fg: 15
URxvt.tabbed.tabbar-bg: 8
URxvt.tabbed.tab-fg:    8
URxvt.tabbed.tab-bg:    14

Переход по ссылкам без мыши.

Для этого используется скрипт url-select. По alt-u выбирается первая ссылка, клавишами j/k можно перемещаться по ссылкам, Enter - переход по ссылке, Esc - переход в обычный режим, y - копирование ссылки.
Скачать url-select можно отсюда: https://github.com/muennich/urxvt-perls/raw/master/url-select

Вкладки в urxvt.

Стандартный скрипт для этого - tabbed. У него есть два минуса - нельзя отключить никому не нужную кнопку "NEW" и нельзя задавать имена вкладкам. Существует и другой скрипт - tabbedex, в котором нету кнопки "NEW" и можно задавать вкладкам имена. Для скрипта tabbedex: перемещение по вкладкам - shift-left/right, создать новую вкладку - shift-down, задать имя вкладке - shift-up. Да, к сожалению, автоматически имена не задаются. Наверняка можно написать свой скрипт, который будет это делать.
Скачать tabbedex можно отсюда: https://github.com/stepb/urxvt-tabbedex/raw/master/tabbedex

Urxvt и Vim

У многих при использовании vim в urxvt при нажатии Ctrl-стрелка вместо перехода к следующему/предыдущему слову печатаются символы c и d. Что они делают не так? - Используют alt-arrow в Vim =) В Vim для перемещения между словами есть клавиши w и b. Все-же, помочь в таком случае может добавление следующих строк в файл /etc/inputrc:

"\033[1;5D": forward-word
"\033[1;5C": backward-word

Еще одна проблема возникла у меня при использовании vim в urxvt в dwm (тайловый оконный менеджер). При запуске Vim-а в urxvt, vim не растягивается на всю ширину окна, пока над окном не будет совершено какое-либо действие. Эта проблема оказалась вызвана строчкой в ~/.vimrc: set columns=80. Пришлось ее убрать.

Поиск по текстовому выводу urxvt (searchable scrollback).

Вы выполнили команду ls в забитом каталоге Downloads, жмете Alt-s и появляется строка поиска. Так же помогает быстро искать всяческие варнинги и ерроры при компиляции программ и тд. Короче говоря, очень полезная штука.

Почему urxvt?

Во-первых - скорость работы. Urxvt, наверное, самый быстрый эмулятор терминала. Во-вторых - такой стиль вкладок мне больше нравится, чем вид вкладок, к примеру, у gnome-terminal. В-третьих - searchable-scrollback.

Нет багов (?)

На сайте разработчика заявлено "crash-free", однако буквально минуту назад, во время написания этой статьи, urxvt, запущенный в режиме демона, взял и внаглую вырубился. В это время у меня был запущен Vim и я решил для теста активировать searchable-scrollback. После этого все исчезло :) Большое спасибо Vim-у - если бы он не делал бэкапы, вы бы никогда не увидели этой статьи, да и urxvt был бы немедленно удален с моего компьютера :) Чем был вызван этот краш я не знаю, т.к. в дальнейшем нажатие Alt-s в открытом Vim-е к ошибкам не приводило.

И еще одна не приятная особенность urxvt. На моем хостинге приглашение командной строки состоит из около 20 самых обычных символов. Но почему-то, если подключиться к хостингу по SSH, то urxvt помещает курсор куда-то к первым символам приглашения командной строки, в результате чего я не могу видеть команды, которые я ввожу, пока не изменю переменную $PS1. Однако, повторить такую ошибку, установив такую же $PS1 на моем домашнем компьютере, не получилось. С чем это связано - одному богу известно, но в том же roxterm такой проблемы никогда не было. (Fixed. Читать UPDATE внизу)

В заключение скажу, что если бы urxvt не вылетел, когда я писал текст этой статьи, и если бы не было проблемы с $PS1 на хостинге, то urxvt был бы моим дефолтным эмулятором терминала. Возможно, я все-равно сменю roxterm на urxvt, уж больно мне нравятся эти вкладки и searchable-scrollback.

Мой ~/.Xdefaults можно скачать отсюда


UPDATE:
Глюк с приглашением командной строки в SSH решился после добавления в ~/.bashrc на хостинге строки export TERM=xterm Сам urxvt за время работы больше ни разу не вылетал. Чем был вызван вышеописанный краш, я так и не узнал (возможно, сам urxvt не был виноват). Таким образом, два бывших недостатка urxvt самоустранились.




Возможно, эти материалы Вас заинтересуют:


Рекомендовать эту страницу:

Комментарии:(20)

# abcdw March 19, 2011, 12:34 a.m.
отличный пост, спасибо огромное

# SoaT April 1, 2011, 10:59 a.m.
Отличная статья. Спасибог большое.

* поправте последнее слово:
Вкладки в urxvt.
Стандартный скрипт для этого - tabbed. У него есть два минуса - нельзя отключить никому не нужную кнопку "NEW" и нельзя задавать имена вклабкам.

# Brainsburn April 1, 2011, 2:10 p.m.
Спасибо, поправил.

# _Andrey_ April 12, 2011, 11:27 p.m.
Отличный пост, спасибо. Я уже много времени использую urxvt в качестве основного эмулятора терминала (даже под Mac OS X его использую), но про приятное дополнение url-select услышал впервые. Отличная штука!

Расширение для табов не использую, т.к. предпочитаю нативные табы оконного менеджера (использую Ion3). Кстати, в этом расширении можно отключать отображения строки табов, если таб только один.

В urxvt не могу настроить Ctrl+Shift+Tab / Ctrl+Tab для работы в vim. Есть идеи? Я пробовал возиться с URxvt*keysym.C-S-Tab: ... но не срослось.

# anthonio May 8, 2011, 6:54 p.m.
Сабж бывает память кушает как слон. Что это, баг или фича???
http://dl.dropbox.com/u/22030480/1105/0823DwZ3J.png

# Гость May 8, 2011, 9:17 p.m.
В доп. tabbedex чтобы перемещать вкладки - ctrl-left/right

# Brainsburn May 8, 2011, 10:01 p.m.
anthonio: и правда слон! У себя такого не замечал. Проверь параметр URxvt*saveLines в ~/.Xdefaults. Чем он больше, тем больше памяти будет кушать urxvt.

# anthonio May 9, 2011, 4:21 a.m.
Проверь параметр URxvt*saveLines в ~/.Xdefaults.

У меня его нет. Оказалось, проблема в другом. Если открывать очень часто и очень много из консоли тяжёлые приложения, то у сабжа течёт память. Даже если потом всё закрыть, он таким раздутым и остаётся. Надо было мне по работе просмотреть кучу DBF-ок (в libreoffice). Вот он и опух. А если использовать в режиме демона, тогда демон начинает жрать память. К слову, тот же Terminal из Xfce4 так себя не ведёт.

# Brainsburn May 9, 2011, 10:58 p.m.
Терминалу не важно, тяжелые приложения из него запускают или легкие. Но если есть утечка памяти, то очень жалко. Кстати, urxvt еще пару раз у меня рушился по неизвестной причине.

# SoaT May 14, 2011, 4:39 a.m.
url-select не работает почемуто (
Ссылки отображает, выбирать могу, а вот жмякаю Enter и ни чего не происходит
URxvt.perl-ext-common:      default,matcher,url-select

URxvt.matcher.button: 1
URxvt.urlLauncher: /home/soat/prog/firefox/firefox
URxvt.underlineURLs: true
URxvt.keysym.M-u: perl:url:select:select_next
URxvt.perl-lib: /home/soat/.urxvt_perl

Если просто запустить в urxvt - всё как надо работает:
/home/soat/prog/firefox/firefox [url]http://example.com[/url]

открывается новая вкладка с указаным адресом

# SoaT May 14, 2011, 4:46 a.m.
ОПС, простите сделал xrdb -load ~/.Xdefaults и всё заработало ^_^

# anonymous Aug. 29, 2011, 2:40 p.m.
при нажатии Ctrl-стрелка вместо перехода к следующему/предыдущему слову печатаются символы c и d. Что они делают не так? - Используют alt-arrow в Vim =)
все верно :)

спасибо за пост, фикс с PS1 крайне актуален

# Гость Nov. 9, 2013, 12:47 a.m.
а как tabbedex подружить с utf-8? или же хотя бы с koi8-r

# Inferno March 7, 2014, 11:46 p.m.

# testus May 11, 2015, 6:54 p.m.
Не раскрыта тема изменения шрифтов на ходу, типа:

URxvt.keysym.C-4: command:\033]710; xft:PriamojC:regular:size=12\007\033]711; x
ft:PriamojC:bold:size=12\007\033]712; xft:PriamojC:italic:size=12\007\033]713;
xft:PriamojC:bold:italic:size=12\007

И изменения размера шрифта:
https://github.com/dave0/urxvt-font-size

# testus_неробот May 11, 2015, 7:24 p.m.
Вы писали:

>UPDATE:
>Глюк с приглашением командной строки в SSH >решился после добавления в ~/.bashrc на хостинге >строки export TERM=xterm Сам urxvt за время >работы больше ни разу не вылетал. Чем был вызван >вышеописанный краш, я так и не узнал (возможно, >сам urxvt не был виноват). Таким образом, два >бывших недостатка urxvt самоустранились.

Вы можете спросить свой терминал:
echo $TERM
И поймете, что противная сторона имеет право не уметь 256 цветов. Из-за этого и косяки.

# METAJIJI Jan. 11, 2017, 3:10 p.m.
Сам пользуюсь ROXTerm поиск взад там всегда был: Ctrl+Shift+f
Аналогично вроде и в gnome-terminal и других подобных.
При переходе с gnome-terminal проблем не заметил, ни в настройке ни в использовании.

Сейчас пытаюсь понять в чем магия rxvt, и почему людям он нравится, однозначно мороки с настройкой очень много + настройки в ~/.Xresources не очень-то круто :(
Хочется отдельного конфига и я думаю в этом не одинок.

# Sergei Feb. 3, 2017, 5:07 p.m.
Сейчас пытаюсь понять в чем магия rxvt, и почему людям он нравится
У него феншуйные текстовые вкладки, которым удобно давать название через shift-стрелкавверх :)

# METAJIJI March 11, 2017, 9:02 a.m.
Вкладки как раз не феншуйные (штатный tabbed), они ломают очень важные хоткеи:
Ctrl+ ->/<-: Перемещение по словам
Shift + ->/<-: У меня в скринах почти на всех серваках такой хоткей для переключения скринов, я и коллеги привыкли >3 лет так живем.
Ctrl+Shift+c/v: Запилил через eval:eval:selection_to_clipboard/eval:paste_clipboard
Но есть проблема, если закрыть окно терминала, где было скопировано, то скопированное теряется, это жутко не удобно! Встроенное Ctrl+Alt+c/v ведет себя аналогично, разве что выделять можно вертикально (Roxterm и другие работают удобней, просто выделяешь как хочешь, в вертикально или просто строки, удерживая Ctrl+Shift, а когда закончил выделение, просто один раз тыкаешь “c” и оно копируется в буфер, после чего можно даже закрыть окно терминала и где-то вставить скопированное).

urxvt крайне сырым показался мне, хотя и потратил я на его настройку 3 дня.
Прозрачный фон, моно шрифты, копипасты и прочее, даже с ssh проблему запилил через небольшой воркэраунд, кстати об этом!
urxvt использует не стандартные terminfo, следовательно, если использовать локально его родные terminfo, то все хоткеи работают верно, но как только подключишься по ssh на какой-то сервер, то все ломается, удаленный сервер не имеет информации о твоем $TERM и следовательно ведет себя не адекватно, htop просто не запускается, mc сходит с ума и становится черно-белым, bash тоже не рад, куча хоткеев не работает! Чинится костылями, локально в .bashrc добавляется export TERM=screen-256color, а в .Xresources URxvt.termName: rxvt-unicode-256color, есть более правильный путь с точки зрения urxvt и удаленного сервера - это копирование tetminfo на сервер, но с точки зрения здравого смысла это не правильно, ладно свои сервера, а сервера клиентов? Кому нужны мои terminfo файлы, да никому! А подобные костыли, описанные выше, ни к чему хорошему со временем не приведут, софт развивается и в какой-то момент это может сломаться.

В общем нет, urxvt привлекателен своей гибкостью и легкостью, но пока он сырой и не пригоден для повседневного использования.

Выбор должен быть где-то между gnome-terminal, lxterminal, roxterm и подобным.

# METAJIJI March 11, 2017, 9:05 a.m.
Ах да, почему я начал вообще трогать urxvt, потому, что в других терминала бесячие URL подсвечены и порой очень сложно скопировать текст, не открыв браузер или почтовый клиент.
Очень круто, что в urxvt такой фичи просто нет.

Например в том же gnome-terminal и Roxterm она вшита прямо в сорцы и не отключабельна никак.
Может кто посоветует терминал “здорового человека” без этих вредных URL :)

Комментировать:

Гость, Вы можете оставить свой комментарий.

Стиль кода:
Имя
Сайт * не обязательное поле
Поставьте галку, если вы - бот
Поставьте галку, если вы - человек

Друзья! Убедительная просьба воздержаться от нецензурной лексики!



Справка:
Если вы хотите использовать в тексте комментария специальные символы, например, [ и ], используйте их внутри тега [code] [/code]
Вы можете использовать теги BBcode. Для оформления кода и подсветки синтаксиса используйте тег [code] или [code=название_языка], например, [code=python]
Ссылки вставляйте так: [url]zenux.ru[/url] или так: http://zenux.ru, но не так: zenux.ru
Текст сообщения должен быть в пределах 3000 символов.




Последние комментарии:

fanyit: Спасибо за обзор. очень полезно и доступно.... >>>
cheech: Спасибо, статья полезная )... >>>
Васёк: Коммент, расскажи про часы на стене капитану в оке... >>>
METAJIJI: Ах да, почему я начал вообще трогать urxvt, потому... >>>
METAJIJI: Вкладки как раз не феншуйные (штатный tabbed), они... >>>