urxvt - ширина столбца силы

control сам каталог имеет размер 4, и он включен в Вашу первую команду. Второй вариант не вычисляет размер каталога, потому что Вы не передаете его du, но только его содержание.

Существует также возможность, что у Вас есть скрытые файлы (точечные файлы), которые исключены при расширении * шарик так, чтобы du не беспокоится ими.

3
06.02.2015, 18:45
1 ответ

Это, похоже, два вопроса:

  • как запустить urxvt, чтобы он автоматически выбрал подходящий размер шрифта при условии, что urxvt использует 80 колонок, и
  • как сохранить urxvt использующим 80 колонок (и автоматически настраивающим размер шрифта) при изменении размеров окна.

X-приложения могут запрашивать заданный размер окна, но оконный менеджер сообщает приложению, какой размер оно будет использовать. Эмуляторы терминала обычно запрашивают размеры окна, кратные (строки) высоте шрифта и (столбцы) ширине шрифта. Это позволяет оконному менеджеру сотрудничать (немного...) при изменении размера окна, а также обеспечивает визуальную обратную связь для строкстолбцов макета.

Когда urxvt использует шрифт TrueType, он может (в принципе) использовать любой масштабный размер. Когда он открывает шрифт, он получает из него высоту и ширину символьной ячейки. Вы могли бы использовать те же значения вместе с размером экрана и вычислить соответствующий масштаб, чтобы окно было не шире 80 колонок.

Но самое сложное заключается в том, что если оконный менеджер не согласится, он изменит этот запрос, возможно, изменив и высоту, и ширину окна. Любое из этих измерений может быть увеличено или уменьшено независимо от другого. В менеджере окон с черепичной структурой нельзя даже предположить, что окно может уменьшиться, чтобы сохранить подходящее соотношение сторон. В итоге urxvt получает размер окна, а затем должен решить, как разбить его на символьные ячейки.

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

Аналогично, изменение размера окна после запуска передается как SIGWINCH.

Учитывая это, вы можете написать приложение в оболочке, которое перехватывает SIGWINCH и изменяет размер шрифта, используемого urxvt (который затем может попросить оконный менеджер о лучшем расположении).

Это выполнимо, но из коробки, urxvt не предоставляет прямого способа сделать это. Это потребует некоторых сценариев/программирования:

  • urxvt (начиная с версии 2.6 от 2004/4/2) реализует последовательность управления, адаптированную из xterm #94 в 1999/3/27:

расширить последовательность управления динамическими цветами, чтобы позволить пользователям определять цвета и шрифт, которые в данный момент активны.

которая относится к этой возможности, документированной в Последовательности управления XTerm:

Если задано "?", а не имя или спецификация RGB, xterm отвечает управляющей последовательностью той же формы, которая можно использовать для установки соответствующего динамического цвета. Поскольку в одной управляющей последовательности может быть задано более одной пары номера и спецификации цвета. в одной управляющей последовательности, xterm может сделать более одного ответ.

и

 Ps = 5 0 -> Установить шрифт на Pt.

Таким образом, приложение может сделать

printf '\033]50;?\007'

и получить обратно текущий шрифт - до 250 символов, во всяком случае (см. исходный код)

  • после проведения соответствующих вычислений ваше приложение может обновить шрифт (та же управляющая последовательность).

Странно, но при быстрой проверке копия urxvt (Debian 7) не работает для тест-скрипта в xterm для этой функции. Но если эту функцию можно заставить работать, то это средство, с помощью которого можно реализовать автоматическое изменение масштаба шрифта.

1
27.01.2020, 21:31

Теги

Похожие вопросы