rxvt-unicode (Русский)/Tips and tricks (Русский)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Состояние перевода: На этой странице представлен перевод статьи rxvt-unicode/Tips and tricks. Дата последней синхронизации: 12 марта 2016. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Смотрите главную статью rxvt-unicode.

Улучшенное поведение как в Kuake, Openbox

Это первоначально разместил Xyne, на форуме [1], и опирается на xdotool найденный в официальных репозиториях.

Скриплеты

Сохраните этот скриплет для urxvtc где-то на вашей системе как urxvtc (например в ~/.config/openbox):

#!/bin/sh

urxvtc "$@"
if [ $? -eq 2 ]; then
   urxvtd -q -o -f
   urxvtc "$@"
fi

и сохраните этот скриплет как urxvtq:

#!/bin/bash

wid=$(xdotool search --classname urxvtq)
if [ -z "$wid" ]; then
  /path/to/urxvtc -name urxvtq -geometry 80x28
  wid=$(xdotool search --classname urxvtq | head -1)
  xdotool windowfocus "$wid"
  xdotool key Control_L+l
else
  if [ -z "$(xdotool search --onlyvisible --classname urxvtq 2>/dev/null)" ]; then
    xdotool windowmap "$wid"
    xdotool windowfocus "$wid"
  else
    xdotool windowunmap "$wid"
  fi
fi

Предыдущая версия xdotool выдавала ошибку, которая отключала признание видимых окон и, таким образом, привела некоторых пользователей к использованию следующего скриптлета на месте предыдущего. В этом больше нет необходимости, как и в xdotool >= 1.20100416.2809, но он был оставлен здесь для дальнейшего использования.'

#!/bin/bash

wid=$(xprop -name urxvtq | grep 'WM_COMMAND' | awk -F ',' '{print $3}' | awk -F '"' '{print $2}')
if [ -z "$wid" ]; then
  /path/to/urxvtc -name urxvtq -geometry 200x28
  wid=$(xprop -name urxvtq | grep 'WM_COMMAND' | awk -F ',' '{print $3}' | awk -F '"' '{print $2}')
  xdotool windowfocus "$wid"
  xdotool key Control_L+l
else
  if [ -z "$(xprop -id "$wid" | grep 'window state: Normal' 2>/dev/null)" ]; then
    xdotool windowmap "$wid"
    xdotool windowfocus "$wid"
  else
    xdotool windowunmap "$wid"
  fi
fi

Убедитесь, что вы измените /путь/к/urxvtc к фактическому путю скриптлета urxvtc, что вы сохранили выше. Мы будем использовать urxvtc чтобы запустить как обычные экземпляры urxvt и экземпляр как kuake.

urxvtq с табуляцией

Если вы хотите, чтобы вкладки были как в kuake urxvtc (здесь называется urxvtq) просто замените третью строчку в urxvtq:

wid=$(xdotool search --name urxvtq)

на:

wid=$(xdotool search --name urxvtq | grep -m 1 "" )

Для активации поддержки вкладок, вы можете либо заменить пятую строку вашего urxvtq:

/path/to/urxvtc -name urxvtq -geometry 80x28

на:

/path/to/urxvtc -name urxvtq -pe tabbed -geometry 80x28

или заменить эту строку вашего файла ~/.Xresources:

URxvt.perl-ext-common: default,matcher

на

URxvt.perl-ext-common: default,matcher,tabbed

Управление Tab

Горячие клавиши Описание
Shift+Left Переход на вкладку слева от текущей
Shift+Right Переход на вкладку справа от текущей
Shift+Down Создать новую вкладку

Вы также можете использовать мышь для переключения вкладок щелкая по желаемой, и создавать новую вкладку, нажав на [NEW].\\

Чтобы закрыть вкладку, введите exit как будто вы нормально закрыли терминал.

Настройка Openbox

Теперь добавьте следующие строки в раздел <applications> файла ~/.config/openbox/rc.xml:

<application name="urxvtq">
   <decor>no</decor>
   <position force="yes">
     <x>center</x>
     <y>0</y>
   </position>
   <desktop>all</desktop>
   <layer>above</layer>
   <skip_pager>yes</skip_pager>
   <skip_taskbar>yes</skip_taskbar>
   <maximized>Horizontal</maximized>
</application>

и добавьте эти строки в разделе <keyboard>:

<keybind key="W-t">
  <action name="Execute">
    <command>/path/to/urxvtc</command>
  </action>
</keybind>
<keybind key="W-grave">
  <action name="Execute">
    <execute>/path/to/urxvtq</execute>
  </action>
</keybind>

Здесь тоже необходимо изменить строку /path/to/* (/путь/к/*) чтобы указать на сценарии, которые вы сохранили ранее. Сохраните файл, а затем перенастройте Openbox. Теперь вы можете запускать urxvt с Super+T, и переключать как консоль kuake с Super+` (ковычка на клавише "ё").

Дальнейшая настройка

Преимущество этой настройки через скрипт Perl urxvt kuake, в том что Openbox предоставляет больше возможностей, привязки клавиш-модификаторов. Сценарий kuake захватывает все физические клавиши, независимо от любой комбинации модификаторов. Для полного диапазона возможностей прочтите Openbox bindings documentation.

Openbox per-app settings могут быть использованы для дальнейшей настройки поведения как консоль kuake (например, положение экрана, слой и т.д.). Вам возможно потребуется изменить параметр "geometry" в скриплете urxvtq для регулировки высоты консоли.

Связанные сценарии

  • hbekel опубликовал обобщенную версию из urxvtq here которая может быть использована для переключения любого приложения, используя xdotool.
  • http://www.jukie.net/~bart/blog/20070503013555 - Сценарий для открытия URL-адреса с помощью клавиатуры, а не мыши.

Повышение производительности

  • Избегайте использования XFT шрифтов. Если есть необходимость в использовании XFT шрифтов, задайте занчени добавив :antialias=false.[2]
  • Соберите rxvt-unicode с отключением ненужных функций, --disable-xft и в частности --disable-unicode3.[3]
  • Ограничьте количество saveLines (опция -sl)в буфере прокрутки, чтобы уменьшить использование памяти. [4]
    • Используйте tmux для прокрутки буфера и установит saveLines в 0
  • Отключите Perl[ссылка недействительна: раздел не найден]
  • Пользуйтесь демоном urxvtd запуская клиенты urxvtc.

Демон-клиент

Xinitrc

Смотрите раздел Примеры в urxvtd(1). Это предпочтительный вариант.

Совет: Добавьте в ваш ~/.xinitrc строку:
urxvtd -q -f -o &

Перед строкой запуска вашего Окружения рабочего стола/Оконного менеджера. Перезапустите Х сервер.

Теперь запустите urxvt в качестве клиента, командой urxvtc

systemd

Примечание: Обычные пользователи не могут выполнять команды systemctl для управления питанием (reboot (перезагрузка), poweroff (выключение), и т.п.) когда вход в urxvt клиент/демон выполняется через systemd, так как клиент не является частью cессии. По этой причине, запуск urxvt через Systemd не рекомендуется.

Системная служба:

/etc/systemd/system/urxvtd@.service
[Unit]
Description=RXVT-Unicode Daemon

[Service]
User=%i
ExecStart=/usr/bin/urxvtd -q -o

[Install]
WantedBy=multi-user.target

Передайте имя пользователя запустив службу:

urxvtd@username.service

Для службы пользователя, поместите следующие файлы секций, в ~/.config/systemd/user:

urxvtd.service
[Unit]
Description=Urxvt Terminal Daemon
Requires=urxvtd.socket

[Service]
ExecStart=/usr/bin/urxvtd -o -q
Environment=RXVT_SOCKET=%t/urxvtd-%H

[Install]
WantedBy=MyTarget.target
urxvtd.socket
[Unit]
Description=urxvt daemon (socket activation)
Documentation=man:urxvtd(1) man:urxvt(1)

[Socket]
ListenStream=%t/urxvtd-%H

[Install]
WantedBy=sockets.target

Расширенное управление вкладками

Установите пакет urxvt-tabbedexAUR, затем добавьте tabbedex значение в URxvt.perl-ext-common X resource в вашем ~/.Xresources:

URxvt.perl-ext-common: ...,tabbedex,...
Примечание: Если вы ранее использовали tabbed расширение Perl и определили tabbed значение для URxvt.perl-ext-common X resource, пожалуйста, удалите tabbed первое значение, чтобы избежать конфликта с tabbedex.

По умолчанию, кнопка "[NEW]" (которая редко используется и используется только с помощью мыши) отключена при tabbedex. Вы можете снова включить эту функцию, задав new-button:

URxvt.tabbed.new-button: true

Вкладки можно назвать с помощью Shift+ ↑ (чтобы подтвердить Enter, и Escape для отмены).

Чтобы автоматически скрывать панель вкладок, когда присутствует только одна вкладка, включите следующий ресурс:

URxvt.tabbed.autohide: true

Для предотвращения закрытия последней вкладки Urxvt, включите следующий ресурс:

URxvt.tabbed.reopen-on-close: yes

Чтобы начать новую вкладку или цикл с помощью вкладок, используйте следующие команды пользователя: tabbedex:(new|next|prev)_tab. Пример отображения:

URxvt.keysym.Control-t: perl:tabbedex:new_tab
URxvt.keysym.Control-Tab: perl:tabbedex:next_tab
URxvt.keysym.Control-Shift-Tab: perl:tabbedex:prev_tab

Чтобы определить свои собственные горячие клавиши для переименования вкладки или перемещения вкладки вправо или влево, используйте следующие команды: tabbedex:move_tab_(left|right) и tabbedex:rename_tab. Пример отображения:

URxvt.keysym.Control-Shift-Left: perl:tabbedex:move_tab_left
URxvt.keysym.Control-Shift-Right: perl:tabbedex:move_tab_right
URxvt.keysym.Control-Shift-R: perl:tabbedex:rename_tab
Примечание: Переназначенные горячие клавиши, используемые для пользовательских команд, не будет отключать сопоставление по умолчанию, для этого вы должны установить X resource no-tabbedex-keys:
URxvt.tabbed.no-tabbedex-keys: true

Прозрачность

Настоящая прозрачность

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

Из командной строки:

$ urxvt -depth 32 -bg rgba:3f00/3f00/3f00/dddd

Используя файл настроек:

~/.Xresources
URxvt.depth: 32
URxvt.background: rgba:1111/1111/1111/dddd

или

~/.Xresources
URxvt.depth: 32
URxvt.background: [95]#000000

где '95' является уровень непрозрачности в процентах и '#000000' цвет фона.

Чтобы использовать цвет #302351 т.е. с rgba:rrrr/gggg/bbbb/aaaa синтаксисом это будет rgba:3000/2300/5100/ee00. "ee00" (значение альфа) ятобы сделать его красиво прозрачным.

Примечание: Для того, чтобы эти настройки были универсальны для всех форм URxvt, вы можете добавить символ подстановки "*". Например, URxvt.depth станет URxvt*.depth.

Родная прозрачность

Если нет необходимости в настоящей прозрачности, или если композитинг использует слишком много ресурсов на вашей системе, вы можете получить прозрачность следующим образом:

~/.Xresources
! Xresources file

URxvt*.transparent: true
! URxvt*.shading: 0 to 99 darkens, 101 to 200 lightens
URxvt*.shading: 110

Использование установки URxvt*background подтверждает пример выше, URxvt*.shading также будет работать.

Примечание: Избегайте использования затенения (shading), если у вас набор URxvt.tintColor. Используйте вместо tintColor другой.

Набор иконок

Примечание: Из-за сообщений и жалоб в отчете об ошибке FS#34862, что в пакете rxvt-unicode много зависимостей, теперь для того, чтобы использовать опцию iconFile, вы должны установить пакет rxvt-unicode-pixbufAUR

По умолчанию URxvt не имеет значка на панели задач. Тем не менее, это можно легко изменить путем добавления строки, указывающей на нужную иконку, в файл ~/.Xresources:

URxvt.iconFile:    /usr/share/icons/Clarity/scalable/apps/terminal.svg

Используйте urxvt для запуска приложений

urxvt может быть использован в качестве легкой альтернативы для запуска приложений, таких как gmrun. Запустите urxvt со следующей опцией вида и поведения запуска приложения, или назначьте команду в псевдониме:

$ urxvt -geometry 80x3 -name 'bashrun' -e sh -c "/bin/bash -i -t"

Xterm escape sequences

It is possible for rxvt-unicode to mimic the Xterm escape sequences. These can be found for arbitrary key combinations by running cat -v inside xterm, then bound in urxvt using keysyms.

Take this word by word movement binding as an example:

~/.Xresources
!Xterm escapes, word by word movement
URxvt.keysym.Control-Left:    \033[1;5D
URxvt.keysym.Control-Right:    \033[1;5C

For more information, see ascii(7) and the keysym section of the urxvt(1) man page.