7

В настоящее время я экспериментировал с DWM и Conky, чтобы создать минимально выглядящий рабочий стол, чтобы использовать его для кодирования и тому подобного. У меня происходит что-то хорошее, но есть кое-что, с чем у меня сейчас проблемы. Прямо сейчас мой раздел Conky TEXT выровнен по центру, что выглядит неплохо, но также возвращает информацию об использовании процессора. Если загрузка ЦП колеблется, скажем, от 9 до 10%, общий размер текста будет другим, и поскольку он выровнен по центру, он немного сместился. Цвета на секунду удалены для ясности, вот простая версия рассматриваемой линии ...

${alignc}CPU: ${cpu}%

Разница, конечно, между двумя

Процессор 9%

Процессор 10%

это то, что вызывает проблему. Как бы я пошел по левому краю 9 с двумя нулями, затем 10 с одним нулем, а затем 100 без нулей? Единственное, что я могу видеть в документации, смутно связанной с этим, - это иметь дело с заполнением десятичной запятой, а это совсем не то, что мне нужно.

4 ответа4

5

Решение (не может найти ничего лучше сейчас, но оно работает) включает использование пользовательской функции Lua, вот как вы должны это сделать:

  1. Создайте файл для функции Lua, скажем, ~/.conky_lua_scripts.lua с помощью:

    function conky_pad( number )
        return string.format( '%3i' , conky_parse( number ) )
    end
    

    Это будет заполнять число пробелами (лучше), если вы хотите, чтобы нули просто заменили «% 3i» на «% 03i».

  2. В вашем .conkyrc добавьте перед разделом TEXT :

    lua_load ~/.conky_lua_scripts.lua
    
  3. Наконец, чтобы напечатать тип дополненного значения в вашем разделе TEXT что-то вроде:

    ${alignc}CPU: ${lua_parse pad ${cpu}}%
    

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

5

Конки наконец-то встроен. Эти опции делают свое дело:

use_spacer left
pad_percents 2
1

У меня была такая же проблема, когда я пытался отобразить проценты, например, 04% 05% и т.д. Вместо 1%, 5%, 0% и т.д. (Чтобы текст не "прыгал"). Я был в состоянии написать простую структуру if, используя $if_match

${if_match ${cpu cpu0}<10}0${endif}${cpu cpu0}%

^^^ Для этого выведите 0 в столбце десятков, если ${cpu cpu0} меньше 10. Затем он печатает цифру столбца. Затем он печатает символ%.

$if_match will print, run, or execute whatever is between itself and the ${endif}

${if_match [COMPARISON]}
...commands                  <<< all i do is print a 0.  heh
${endif}

Здесь я разобью его на составляющие с комментариями, многострочно

${if_match ${cpu cpu0}<10}  ### is the cpu load less than 10% ?
0                           ### if so, print a 0 !!!
${endif}                    ### thanks bye i had a really good time
%                           ### output formatting.  so it says 08% 
                              # instead of 08
0

Я обычно выравниваю текст (ЦП) по левому краю и значения по правому краю и указываю их точное положение. Таким образом, значения "расширяются" (например, от 9 до 10) в пустое пространство между процессором и значением.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .