Linux Polybar Батарея емкость 0 Ярлык

Если вы хотите выполнять код всякий раз, когда считывается значение переменной, вы не можете делать это внутри самого zsh. Переменная RANDOM (как и другие подобные специальные переменные) жестко запрограммирована в исходном коде zsh. Однако вы можете определить подобные специальные переменные, написав модуль на C. Многие из стандартных модулей определяют специальные переменные.

Вы можете использовать сопроцесс , чтобы создать генератор.

coproc { i=0; while echo $i; do ((++i)); done }
for ((x=1; x<=3; x++)) { read -p n; echo $n; }

Однако это довольно ограничено, потому что у вас может быть только один сопроцесс. Другой способ постепенного получения вывода от процесса - это перенаправление из процесса подстановки .

exec 3< <(i=0; while echo $i; do ((++i)); done)
for ((x=1; x<=3; x++)) { read n <&3; echo $n; }

Обратите внимание, что head -1 здесь не работает, потому что он считывает весь буфер, распечатывает то, что ему нравится, и завершает работу. Данные, которые были прочитаны из канала, остаются прочитанными; это внутреннее свойство каналов (вы не можете загружать данные обратно). Встроенная функция чтения позволяет избежать этой проблемы, считывая по одному байту за раз, что позволяет ему останавливаться, как только находит первую новую строку, но работает очень медленно (конечно, это не имеет значения, если вы просто чтение нескольких сотен байт).

2
25.10.2018, 08:35
1 ответ

Установка ramp-capacity-0-foregroundизменит только цвет текста ramp-capacity-0, как вы уже заметили.

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

ramp-capacity-0 = %{F#ff0000}

Однако это работает только в том случае, если процентное значение отображается непосредственно после рампы, а ramp-capacity-0-foregroundи label-discharging-foregroundне установлены.

Это работает из-за того, как полибар обрабатывает настройку цвета текста. %{F...}— тег форматирования переднего плана. Если установлено свойство -foregroundметки или пандуса (или чего-то еще ), весь его текст будет заключен в %{F#...}TEXT%{F-}, где #...— это то, что было установлено для переднего плана, а %{F-}— это тег форматирования, который сбрасывает передний план для следующего текста на фон панели, определенный в разделе панели. По этой причине ни ramp-capacity-0-foreground, ни label-discharging-foregroundне могут быть установлены, так как если бы они были установлены, тег форматирования, добавленный вами в ramp-capacity-0, не имел бы никакого эффекта.

Пример:

Если вы установите ramp-capacity-0 = %{F#ff0000}в зависимости от остальной части вашей конфигурации, polybar будет генерировать следующее:

  • Если ни ramp-capacity-0-foreground, ни label-discharging-foregroundне установлены:

    %{F#ff0000} 10%

  • Сlabel-discharging-foreground = #ffffff:

    %{F#ff0000} %{F#ffffff}10%{F-}

  • Сramp-capacity-0-foreground = #ff0000

    %{F#ff0000}%{F#ff0000}%{F-} 10

Вы можете видеть, только если оба не установлены, может ли тег форматирования, который вы вставили вручную, «перетекать» в этикетку выгрузки.

Ссылки:

Форматирование вики-страницы

2
27.01.2020, 22:08

Теги

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