Jump to content
From ArchWiki
< Rxvt-unicode (Русский)
Состояние перевода: На этой странице представлен перевод статьи 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.

Category:

- Terminal emulators (Русский)