패딩이 0인 Conky 텍스트 변수를 만드시겠습니까?

패딩이 0인 Conky 텍스트 변수를 만드시겠습니까?

Conky 설정에 이상한 문제가 발생했습니다.

여기에 이미지 설명을 입력하세요.

${cpu cpuX}내가 없애거나 고치려고 하는 것은 내 CPU 비율(사용량 )이 올바르게 채워지지 않는 것 같다는 사실입니다 . 상태가 흔들리지 않도록 모든 값을 수직으로 정렬하고 싶습니다. 내 conky 파일에서 발췌한 내용은 다음과 같습니다.

# ...
pad_percents 3
# ...
${cpubar cpu1 6,135}$alignr${...}${cpu cpu1}%

더 이상 레이아웃이 깨지지 않도록 CPU 백분율 값을 적절하게 정렬하고 패딩하려면 어떻게 해야 합니까? 동등한 printf %3.0f값은 다음과 같습니다:

$ "%3.0f" % (1,) 
'  1'
$ "%3.0f" % (13,)
' 13'
$ "%3.0f" % (100,)
'100'

내 CPU 비율에 대해 Conky에서 이를 어떻게 달성할 수 있나요?

답변1

위의 @jasonwryan이 제공한 솔루션:

  1. Conky가 사용할 Lua 스크립트를 만듭니다. 나는 내가 만든 폴더에 내 폴더를 만들었지 ~/.config/conky/scripts만 원하는 곳 어디에서나 만들 수 있습니다.

    $ mkdir -p ~/.config/conky/scripts/
    $ vim ~/.config/conky/scripts/conky_lua_scripts.lua
    
  2. 다음 Lua 함수를 사용하여 파일을 채웁니다.

    function conky_format( format, number )
        return string.format( format, conky_parse( number ) )
    end
    
  3. lua_load명령을 사용하여 Lua 스크립트 파일을 Conky 구성 파일로 가져옵니다.

    # ...
    lua_load ~/.config/conky/scripts/conky_lua_scripts.lua
    
    TEXT
    # ...
    
  4. 값의 형식을 지정하고 싶을 때마다 format앞서 정의한 함수를 호출하세요. 이름을 로 지정했지만 변수를 사용하여 액세스 conky_format합니다 .formatlua_parse

    # ...
    lua_load ~/.config/conky/scripts/conky_lua_scripts.lua
    
    TEXT
    # ...
    ${lua_parse format %3.0f ${cpu cpu1}}%
    

이 멋진 스크립트를 사용하면 임의의 값과 형식 문자열을 사용하여 Lua 형식 지정 엔진을 호출할 수 있습니다. 이제 출력이 예상대로 표시됩니다.

놀라운

이 유틸리티 에 익숙하다면 printf이 유틸리티를 사용하여 다른 훌륭한 형식 지정 방법을 수행할 수 있습니다.

답변2

조건문을 사용하면 Lua 스크립트 없이도 거의 동일한 효과를 얻을 수 있습니다.

${if_match ${cpu cpu1} < 10}${offset 10}${cpu cpu1}%

귀하의 코드는 다음과 같습니다:

${cpubar cpu1 6,135}$alignr${...}${if_match ${cpu cpu1} < 10}${offset 10}${endif}${cpu cpu1}%

참고: 오프셋 값(위의 경우 10)은 사용된 글꼴에 따라 조정되어야 합니다.

더 완전한 예에서는 더 많은 조건을 사용할 수 있습니다.

${cpubar cpu1 6,135}$alignr${...}${if_match ${cpu cpu1} < 10}${offset 20}${else}${if_match ${cpu cpu1} < 100}${offset 10}${endif}${cpu cpu1}%

관련 정보