하모니카는 사용자들이 마음껏 자신의 시스템 환경을 꾸밀 수 있도록 여러가지 도구를 제공하고 있습니다.
그 중 바탕화면에서 시스템의 다양한 정보를 예쁘게 보여줄 수 있는 Conky 를 기본으로 포함하고 있는데
아직 안써본 분들은 아래 문서를 참고해서 사용해 보세요.
https://docs.hamonikr.org/hamonikr-7.0/key-features/desktop/conky
이번 글에서는 위 링크에서 소개한 기본적인 내용에서 조금 더 고급으로 넘어가서
이번에는 Conky 프로그램을 자신이 원하는 대로 구성하는 방법에 대해서 알아보겠습니다.
프로그램 메뉴 > Conky 설정도구를 실행해서 아래 이미지와 같은 연필모양의 버튼을 누르면 선택한 위젯의 설정파일이 편집기에 열립니다.
원하는 Conky 위젯을 만들기 위해서는 몇가지 규칙을 알아야 합니다.
Conky 는 오랫동안 프로젝트가 발전하면서 2가지의 문법을 사용하고 있습니다.
위 그림에서 보이는 내용의 설정파일을 예로 들면, v1의 경우 아래와 같은 형식입니다.
background yes
double_buffer yes
alignment top_right
border_width 1
cpu_avg_samples 2
default_color white
default_outline_color white
default_shade_color white
draw_borders no
draw_graph_borders yes
draw_outline no
draw_shades no
gap_x 30
gap_y 50
net_avg_samples 2
no_buffers yes
out_to_console no
out_to_stderr no
extra_newline no
own_window yes
own_window_type normal
own_window_transparent yes
own_window_colour 000000
own_window_argb_visual no
own_window_argb_value 0
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
minimum_size 170 0
stippled_borders 0
update_interval 2.0
uppercase no
use_spacer none
show_graph_scale no
show_graph_range no
use_xft yes
xftalpha 0.1
xftfont Droid Sans:size=8
color0 white
color1 EAEAEA
color2 FFA300
color3 grey
TEXT
${color2}CPU ${color0}${alignr}${cpu cpu0}%
${cpubar cpu0 5,}
${top name 1} $alignr ${top cpu 1}%
${top name 2} $alignr ${top cpu 2}%
${top name 3} $alignr ${top cpu 3}%
${top name 4} $alignr ${top cpu 4}%
${top name 5} $alignr ${top cpu 5}%
${color2}RAM ${color0}${alignr}${mem}
${membar 5,}
${top_mem name 1} $alignr ${top_mem mem_res 1}
${top_mem name 2} $alignr ${top_mem mem_res 2}
${top_mem name 3} $alignr ${top_mem mem_res 3}
${top_mem name 4} $alignr ${top_mem mem_res 4}
${top_mem name 5} $alignr ${top_mem mem_res 5}
${color2}ugreen ${color0}${alignr}${fs_used /media/hamonikr/ugreen}/${fs_size /media/hamonikr/ugreen}
${fs_bar 4,200 /media/hamonikr/ugreen}
${color2}system ${color0}${alignr}${fs_used /}/${fs_size /}
${fs_bar 4,200 /}
${color2}Download ${color0}${alignr}${downspeedf eth0} KiB/s
${downspeedgraph eth0 50,}
${color2}Upload ${color0}${alignr}${upspeedf eth0} KiB/s
${upspeedgraph eth0 50,}
${color2}Local${color0}${alignr}${addr eth0}
${color2}Public${color0}${alignr}${execi 3600 wget -q -O /dev/stdout http://checkip.dyndns.org/ | cut -d : -f 2- | cut -d \< -f -1}
똑같은 내용을 v2의 문법으로 작성하면 아래와 같이 사용할 수 있습니다.
좀 더 직관적이고 기본 위젯 설정과 출력 부분이 잘 구분되는 형식이니, 아무래도 최신 버전의 문법으로 작성하는게 더 좋겠죠.
--[[
# HamoniKR Conky 2.0
# Author : Kevin Kim
# Release date : Sat, 16 Dec 2023 11:24:36 +0900
# Tested on : HamoniKR 7.0
# Email : chayea@gmail.com
# Issue : https://hamonikr.org/
]]
conky.config = {
background = true, -- Conky를 백그라운드 프로세스로 실행
double_buffer = true, -- 화면 깜빡임을 방지하기 위한 더블 버퍼링 사용
alignment = 'top_right', -- Conky 창의 위치를 화면 오른쪽 상단으로 설정
border_width = 1, -- Conky 창의 테두리 너비 설정
cpu_avg_samples = 2, -- CPU 사용량 계산을 위한 평균 샘플 수
default_color = 'white', -- 기본 텍스트 색상 설정
default_outline_color = 'white', -- 텍스트 윤곽선의 기본 색상
default_shade_color = 'white', -- 텍스트 음영의 기본 색상
draw_borders = false, -- Conky 창 테두리 그리기 여부
draw_graph_borders = true, -- 그래프 테두리 그리기 여부
draw_outline = false, -- 텍스트 윤곽선 그리기 여부
draw_shades = false, -- 텍스트 음영 그리기 여부
gap_x = 30, -- 화면 가장자리로부터 Conky 창까지의 가로 간격
gap_y = 50, -- 화면 가장자리로부터 Conky 창까지의 세로 간격
net_avg_samples = 2, -- 네트워크 사용량 계산을 위한 평균 샘플 수
no_buffers = true, -- 버퍼링되지 않은 메모리 사용량을 표시
out_to_console = false, -- 콘솔 출력 여부
out_to_stderr = false, -- 표준 오류 출력 여부
extra_newline = false, -- 추가 줄바꿈 사용 여부
own_window = true, -- Conky를 별도의 창에서 실행
own_window_type = 'normal', -- Conky 창의 유형 설정 (일반, 데스크탑, 도킹 등)
own_window_transparent = true, -- Conky 창의 투명도 사용 여부
own_window_colour = '000000', -- Conky 창의 배경 색상
own_window_argb_visual = false, -- ARGB 비주얼 사용 여부 (고급 투명도)
own_window_argb_value = 0, -- ARGB 투명도 값
own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager',
-- 창 관리자에 대한 힌트: 데코레이션 없음, 항상 아래, 고정, 작업 표시줄 및 페이지 전환에서 제외
minimum_size = '170 0', -- Conky 창의 최소 크기
stippled_borders = 0, -- 점선 테두리 스타일 (0은 비활성화)
update_interval = 2.0, -- 정보 업데이트 간격 (초)
uppercase = false, -- 모든 텍스트를 대문자로 표시할지 여부
use_spacer = 'none', -- 레이아웃 조절을 위한 공간 사용 여부
show_graph_scale = false, -- 그래프 스케일 표시 여부
show_graph_range = false, -- 그래프 범위 표시 여부
use_xft = true, -- XFT를 사용하여 글꼴 렌더링
xftalpha = 0.1, -- XFT 글꼴의 투명도
xftfont = 'Ubuntu:size=9', -- 사용할 XFT 글꼴 및 크기
color0 = 'white', -- 사용자 정의 색상 0
color1 = 'EAEAEA', -- 사용자 정의 색상 1
color2 = 'FFA300', -- 사용자 정의 색상 2
color3 = 'grey', -- 사용자 정의 색상 3
};
-- 실제 출력 부분
conky.text = [[
${font Ubuntu:size=9}${color2}CPU ${color0}${alignr}${cpu cpu0}%
${cpubar cpu0 5,}
${top name 1} $alignr ${top cpu 1}%
${top name 2} $alignr ${top cpu 2}%
${top name 3} $alignr ${top cpu 3}%
${top name 4} $alignr ${top cpu 4}%
${top name 5} $alignr ${top cpu 5}%
${color2}RAM ${color0}${alignr}${mem}
${membar 5,}
${top_mem name 1} $alignr ${top_mem mem_res 1}
${top_mem name 2} $alignr ${top_mem mem_res 2}
${top_mem name 3} $alignr ${top_mem mem_res 3}
${top_mem name 4} $alignr ${top_mem mem_res 4}
${top_mem name 5} $alignr ${top_mem mem_res 5}
${color2}ugreen ${color0}${alignr}${fs_used /media/hamonikr/ugreen}/${fs_size /media/hamonikr/ugreen}
${fs_bar 4,200 /media/hamonikr/ugreen}
${color2}system ${color0}${alignr}${fs_used /}/${fs_size /}
${fs_bar 4,200 /}
${color2}Download ${color0}${alignr}${downspeedf eth0} KiB/s
${downspeedgraph eth0 50,}
${color2}Upload ${color0}${alignr}${upspeedf eth0} KiB/s
${upspeedgraph eth0 50,}
${color2}Local${color0}${alignr}${addr eth0}
${color2}Public${color0}${alignr}${execi 3600 wget -q -O /dev/stdout http://checkip.dyndns.org/ | cut -d : -f 2- | cut -d \< -f -1}
]];
주석으로 주요한 항목들을 설명해두었으니 내용을 참고하시면 되겠습니다.
이외에도 사용할 수 있는 다양한 변수들이 있으니 아래 링크를 참고하셔서 자신만의 멋진 위젯을 만들어보세요.
https://conky.sourceforge.net/variables.html