arch-wiki-md-repo
Version:
All arch-wiki articles in markdown format, updated every two days.
422 lines (282 loc) • 21.9 kB
Markdown
**Состояние перевода:** На этой странице представлен перевод статьи [rxvt-unicode/Tips and tricks](/index.php/Rxvt-unicode/Tips_and_tricks "Rxvt-unicode/Tips and tricks"). Дата последней синхронизации: 12 марта 2016\. Вы можете [помочь](/index.php/ArchWiki_Translation_Team_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "ArchWiki Translation Team (Русский)") синхронизировать перевод, если в английской версии произошли [изменения](https://wiki.archlinux.org/index.php?title=Rxvt-unicode/Tips_and_tricks&diff=0&oldid=425316).
Смотрите главную статью [rxvt-unicode](/index.php/Rxvt-unicode_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Rxvt-unicode (Русский)").
## Contents
* [1 Улучшенное поведение как в Kuake, Openbox](#.D0.A3.D0.BB.D1.83.D1.87.D1.88.D0.B5.D0.BD.D0.BD.D0.BE.D0.B5_.D0.BF.D0.BE.D0.B2.D0.B5.D0.B4.D0.B5.D0.BD.D0.B8.D0.B5_.D0.BA.D0.B0.D0.BA_.D0.B2_Kuake.2C_Openbox)
* [1.1 Скриплеты](#.D0.A1.D0.BA.D1.80.D0.B8.D0.BF.D0.BB.D0.B5.D1.82.D1.8B)
* [1.2 urxvtq с табуляцией](#urxvtq_.D1.81_.D1.82.D0.B0.D0.B1.D1.83.D0.BB.D1.8F.D1.86.D0.B8.D0.B5.D0.B9)
* [1.2.1 Управление Tab](#.D0.A3.D0.BF.D1.80.D0.B0.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5_Tab)
* [1.3 Настройка Openbox](#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0_Openbox)
* [1.4 Дальнейшая настройка](#.D0.94.D0.B0.D0.BB.D1.8C.D0.BD.D0.B5.D0.B9.D1.88.D0.B0.D1.8F_.D0.BD.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0)
* [1.5 Связанные сценарии](#.D0.A1.D0.B2.D1.8F.D0.B7.D0.B0.D0.BD.D0.BD.D1.8B.D0.B5_.D1.81.D1.86.D0.B5.D0.BD.D0.B0.D1.80.D0.B8.D0.B8)
* [2 Повышение производительности](#.D0.9F.D0.BE.D0.B2.D1.8B.D1.88.D0.B5.D0.BD.D0.B8.D0.B5_.D0.BF.D1.80.D0.BE.D0.B8.D0.B7.D0.B2.D0.BE.D0.B4.D0.B8.D1.82.D0.B5.D0.BB.D1.8C.D0.BD.D0.BE.D1.81.D1.82.D0.B8)
* [2.1 Демон-клиент](#.D0.94.D0.B5.D0.BC.D0.BE.D0.BD-.D0.BA.D0.BB.D0.B8.D0.B5.D0.BD.D1.82)
* [2.1.1 Xinitrc](#Xinitrc)
* [2.1.2 systemd](#systemd)
* [3 Расширенное управление вкладками](#.D0.A0.D0.B0.D1.81.D1.88.D0.B8.D1.80.D0.B5.D0.BD.D0.BD.D0.BE.D0.B5_.D1.83.D0.BF.D1.80.D0.B0.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5_.D0.B2.D0.BA.D0.BB.D0.B0.D0.B4.D0.BA.D0.B0.D0.BC.D0.B8)
* [4 Прозрачность](#.D0.9F.D1.80.D0.BE.D0.B7.D1.80.D0.B0.D1.87.D0.BD.D0.BE.D1.81.D1.82.D1.8C)
* [4.1 Настоящая прозрачность](#.D0.9D.D0.B0.D1.81.D1.82.D0.BE.D1.8F.D1.89.D0.B0.D1.8F_.D0.BF.D1.80.D0.BE.D0.B7.D1.80.D0.B0.D1.87.D0.BD.D0.BE.D1.81.D1.82.D1.8C)
* [4.2 Родная прозрачность](#.D0.A0.D0.BE.D0.B4.D0.BD.D0.B0.D1.8F_.D0.BF.D1.80.D0.BE.D0.B7.D1.80.D0.B0.D1.87.D0.BD.D0.BE.D1.81.D1.82.D1.8C)
* [5 Набор иконок](#.D0.9D.D0.B0.D0.B1.D0.BE.D1.80_.D0.B8.D0.BA.D0.BE.D0.BD.D0.BE.D0.BA)
* [6 Используйте urxvt для запуска приложений](#.D0.98.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D1.83.D0.B9.D1.82.D0.B5_urxvt_.D0.B4.D0.BB.D1.8F_.D0.B7.D0.B0.D0.BF.D1.83.D1.81.D0.BA.D0.B0_.D0.BF.D1.80.D0.B8.D0.BB.D0.BE.D0.B6.D0.B5.D0.BD.D0.B8.D0.B9)
* [7 Xterm escape sequences](#Xterm_escape_sequences)
## Улучшенное поведение как в Kuake, Openbox
Это первоначально разместил Xyne, на форуме [[1]](https://bbs.archlinux.org/viewtopic.php?pid=550380), и опирается на [xdotool](https://www.archlinux.org/packages/?name=xdotool) найденный в [официальных репозиториях](/index.php/Official_repositories_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Official repositories (Русский)").
### Скриплеты
Сохраните этот скриплет для `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](https://www.archlinux.org/packages/?name=xdotool) выдавала ошибку, которая отключала признание видимых окон и, таким образом, привела некоторых пользователей к использованию следующего скриптлета на месте предыдущего. В этом больше нет необходимости, как и в [xdotool](https://www.archlinux.org/packages/?name=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](http://openbox.org/wiki/Help:Bindings).
[Openbox per-app settings](http://openbox.org/wiki/Help:Applications) могут быть использованы для дальнейшей настройки поведения как консоль kuake (например, положение экрана, слой и т.д.). Вам возможно потребуется изменить параметр "geometry" в скриплете `urxvtq` для регулировки высоты консоли.
### Связанные сценарии
* hbekel опубликовал обобщенную версию из `urxvtq` [here](https://bbs.archlinux.org/viewtopic.php?pid=550380#p550380) которая может быть использована для переключения любого приложения, используя [xdotool](https://www.archlinux.org/packages/?name=xdotool).
* [http://www.jukie.net/~bart/blog/20070503013555](http://www.jukie.net/~bart/blog/20070503013555) - Сценарий для открытия URL-адреса с помощью клавиатуры, а не мыши.
## Повышение производительности
* Избегайте использования XFT шрифтов. Если есть необходимость в использовании XFT шрифтов, задайте занчени добавив `:antialias=false`.[[2]](http://pod.tst.eu/http://cvs.schmorp.de/rxvt-unicode/doc/rxvt.7.pod#Can_I_speed_up_Xft_rendering_somehow)
* Соберите rxvt-unicode с отключением ненужных функций, `--disable-xft` и в частности `--disable-unicode3`.
* Ограничьте количество `saveLines` (опция `-sl`)в буфере прокрутки, чтобы уменьшить использование памяти. [[4]](http://pod.tst.eu/http://cvs.schmorp.de/rxvt-unicode/doc/rxvt.7.pod#Isn_t_rxvt_unicode_supposed_to_be_sm)
* Используйте tmux для прокрутки буфера и установит saveLines в 0
* [Отключите Perl](#.D0.9E.D1.82.D0.BA.D0.BB.D1.8E.D1.87.D0.B5.D0.BD.D0.B8.D0.B5_.D1.80.D0.B0.D1.81.D1.88.D0.B8.D1.80.D0.B5.D0.BD.D0.B8.D0.B9_Perl)
* Пользуйтесь демоном `urxvtd` запуская клиенты `urxvtc`.
### Демон-клиент
#### Xinitrc
Смотрите раздел *Примеры* в [urxvtd(1)](http://jlk.fjfi.cvut.cz/arch/manpages/man/urxvtd.1). Это предпочтительный вариант.
**Совет:** Добавьте в ваш `~/.xinitrc` строку:
```
urxvtd -q -f -o &
```
Перед строкой запуска вашего Окружения рабочего стола/Оконного менеджера. Перезапустите Х сервер.
Теперь запустите urxvt в качестве клиента, командой `urxvtc`
#### systemd
**Примечание:** Обычные пользователи не могут выполнять команды systemctl для управления питанием (reboot (перезагрузка), poweroff (выключение), и т.п.) когда вход в urxvt клиент/демон выполняется через systemd, так как клиент не является частью [cессии](/index.php/Session "Session"). По этой причине, запуск 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
```
Передайте имя пользователя [запустив службу](/index.php/Systemd_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#.D0.98.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5_.D1.8E.D0.BD.D0.B8.D1.82.D0.BE.D0.B2 "Systemd (Русский)"):
```
urxvtd@*username*.service
```
Для службы [systemd/User](/index.php/Systemd/User "Systemd/User"), поместите следующие файлы секций, в `~/.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-tabbedex](https://aur.archlinux.org/packages/urxvt-tabbedex/) из [AUR](/index.php/AUR "AUR"), затем добавьте `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-tabbedex](https://aur.archlinux.org/packages/urxvt-tabbedex/). Вместо него, рассмотрите возможность использования пакета [urxvt-tabbedex-git](https://aur.archlinux.org/packages/urxvt-tabbedex-git/):
```
URxvt.tabbed.no-tabbedex-keys: true
```
## Прозрачность
### Настоящая прозрачность
Чтобы использовать настоящую прозрачность, вы должны использовать [оконный менеджер](/index.php/Window_manager_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Window manager (Русский)") с поддержкой композитинга, или отдельное приложение для композитинга.
Из командной строки:
```
$ 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](https://bugs.archlinux.org/task/34862), что в пакете [rxvt-unicode](https://www.archlinux.org/packages/?name=rxvt-unicode) много зависимостей, теперь для того, чтобы использовать опцию `iconFile`, вы должны установить пакет [rxvt-unicode-pixbuf](https://aur.archlinux.org/packages/rxvt-unicode-pixbuf/)
По умолчанию URxvt не имеет значка на панели задач. Тем не менее, это можно легко изменить путем добавления строки, указывающей на нужную иконку, в файл `~/.Xresources`:
```
URxvt.iconFile: /usr/share/icons/Clarity/scalable/apps/terminal.svg
```
## Используйте urxvt для запуска приложений
urxvt может быть использован в качестве легкой альтернативы для запуска приложений, таких как [gmrun](https://www.archlinux.org/packages/?name=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](/index.php/Xterm "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.