Conky에서 나만의 사용자 정의 진행률 표시줄을 만드는 방법은 무엇입니까?

Conky에서 나만의 사용자 정의 진행률 표시줄을 만드는 방법은 무엇입니까?

나는 며칠 전부터 Conky를 사용하기 시작했고 나만의 구성을 만들려고 합니다. 색상과 멋진 ASCII 아트를 추가하고 기본 사항을 배웠습니다.

그러나 Conky와 함께 제공되는 기본 진행률 표시줄이 마음에 들지 않습니다. 50개의 "#" 기호 또는 "직사각형"(ASCII 테이블의 219번째 문자)과 같은 문자열을 만들고 싶습니다. 즉 처음 20개는 녹색이고 다음은 녹색입니다. 노란색은 20개, 빨간색은 마지막 10개입니다.

fs_bar여유 공간이 충분하면 녹색, 절반이 차면 노란색, 일부 파일을 비워야 할 때는 빨간색 으로 구현하고 싶지만 마지막 두 경우에는 세 가지 색상이 표시됩니다. 나는영상결과는 매우 유사합니다.

저는 Arch Linux에서 AwesomeWM을 실행하고 있으며 Conky 버전은 1.10.5입니다.

답변1

execpi30초마다 쉘 스크립트를 실행하고, 출력을 구문 분석 하고, 이를 주석에 사용되는 conky 명령 및 문자 df /의 긴 목록으로 변환하는 다음 과 같이 간단한 작업을 수행할 수 있습니다 .color\##

${execpi 30  df --output=pcent / | awk 'NR==2 {
  n = ($1+0)/2; yellow = 20; red = 40;
  if(n>=red)   { r = "${color #ff0000}"; for(;n>=red;n--)   r = r "\\#" }
  if(n>=yellow){ y = "${color #ffff00}"; for(;n>=yellow;n--)y = y "\\#" }
                 g = "${color #00ff00}"; for(;n>0;n--)      g = g "\\#";
  print g y r
  printf "%50s"," "
 }' }
${color}

df --output=pcent출력은 2줄입니다. 두 번째는 사용된 백분율입니다 69%. 나는 이것을 conky 1.9에서 시도했습니다.


~/.conkyrc파일이 버전 1.10 형식으로 변환된 경우 다음 줄이 포함됩니다.

conky.text = [[

최종 종료 전에 위의 스크립트를 반드시 추가하시기 바랍니다 ]]. 또한 1.10에서는 ( #ff0000위와 같이) 숫자로 지정된 색상이 더 이상 로 시작하지 않으므로 스크립트에서 등을 사용해야 #합니다 . ff0000단순화하려면 다음 스크립트를 PATH의 별도 파일에 넣습니다. 예를 들어 ~/mydf실행 가능하게 만든 chmod +x ~/mydf다음( ) 해당 파일 이름을 ~/.conkyrc.${execpi 30 ~/mydf /}

#!/bin/bash
df --output=pcent "${1?}" | awk 'NR==2{
   n = ($1+0)/2; yellow = 20; red = 40;
   if(n>=red)   { r = "${color ff0000}"; for(;n>=red;n--)   r = r "\\#" }
   if(n>=yellow){ y = "${color ffff00}"; for(;n>=yellow;n--)y = y "\\#" }
                  g = "${color 00ff00}"; for(;n>0;n--)      g = g "\\#";
   print g y r
   printf "%50s"," "
  }'

전체 스크립트를 파일에 넣으려면 ~/.conkyrc기본 버퍼 크기를 늘려야 합니다. 그렇지 않으면 명령이 256자로 잘립니다. 이로 인해 다음과 같은 오류가 발생합니다.

sh: -c: line 0: unexpected EOF while looking for matching `''

이렇게 하려면 1.10의 해당 섹션 내부에 줄을 추가하고 설정을 conky.config={...}쉼표( )로 구분하세요.,

text_buffer_size = 400,

conky 1.9에서는 이 섹션 앞에 다음 줄을 추가합니다 TEXT.

text_buffer_size 400

인쇄되는 문자 수가 증가함에 따라 창 크기가 조정되는 것을 방지하기 위해 printf "%50s"," "최대 길이 공백의 두 번째 줄이 끝에 추가됩니다. 또는 minimum_size 500(또는 1.10) 과 같이 창의 최소 크기(픽셀 단위)에 대한 구성 설정을 추가합니다. minimum_size=500,여기서 사용할 값은 #문자의 글꼴 너비에 따라 다릅니다.

관련 정보