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

From ArchWiki
< Rxvt-unicode (Русский)
Jump to navigation Jump to search
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 из 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.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 (Русский)

Hidden category:

- Pages with broken section links