Conky는 리눅스에서 시스템 정보를 실시간으로 화면에 표시해 주는 대표적인 시스템 모니터링 도구입니다. 단순히 정보를 보여주는 것에 그치지 않고, 사용자의 취향에 맞게 외관과 표시 항목을 자유롭게 꾸밀 수 있다는 점이 큰 매력입니다.

Conky가 기본적으로 표시하는 정보
설치 직후 아무 설정 없이 실행하면 다음과 같은 정보를 확인할 수 있습니다.
- 컴퓨터 이름(호스트명)
- 시스템 가동 시간(Uptime)
- CPU 주파수(MHz)
- CPU 주파수(GHz)
- RAM 사용량
- SWAP 사용량
- CPU 사용량
- 전체 프로세스 수 및 실행 중인 프로세스 수
- 파일 시스템 사용 현황
- 네트워크 정보
- 실행 중인 상위 프로세스 목록
이 글에서는 Conky를 설치하는 방법과 이를 자신만의 스타일로 꾸미는 방법까지 차근차근 살펴보겠습니다.
Conky 설치하기
사용 중인 리눅스 배포판에 따라 설치 명령어가 다릅니다. 아래에서 해당하는 배포판의 명령어를 찾아 입력하세요.
Debian 계열 배포판, 즉 Ubuntu 패밀리(Ubuntu, Ubuntu MATE, Ubuntu GNOME, Kubuntu, Xubuntu, Lubuntu), Linux Mint, Bodhi 등을 사용한다면 apt 명령어를 사용합니다.
sudo apt install conky
Fedora 또는 CentOS를 사용한다면 dnf 명령어를 사용합니다.
sudo dnf install conky
openSUSE라면 zypper 명령어를 사용합니다.
sudo zypper install conky
Arch Linux라면 pacman 명령어를 사용합니다.
sudo pacman -S conky
위의 모든 명령어에는 관리자 권한으로 실행하기 위한 sudo가 포함되어 있습니다.
Conky 실행하기
터미널에서 다음 명령어를 입력하면 Conky를 바로 실행할 수 있습니다.
conky
다만 기본 상태로 실행하면 화면이 깜빡이는 현상(flickering)이 발생할 수 있으며, 디자인 역시 그다지 만족스럽지 않습니다.

화면 깜빡임을 없애려면 다음과 같이 더블 버퍼(double buffer) 옵션을 활성화하여 실행하세요.
conky -b
터미널을 닫아도 Conky가 계속 동작하도록 백그라운드 프로세스로 실행하려면 다음 명령어를 사용합니다.
conky -b &
부팅 시 Conky를 자동으로 실행하는 방법은 배포판마다 조금씩 다르며, 우분투 공식 문서에서 주요 우분투 변형 버전별 설정 방법을 확인할 수 있습니다.
설정 파일 만들기
Conky의 기본 설정 파일은 /etc/conky/conky.conf 경로에 위치합니다. 하지만 시스템 원본 파일을 직접 수정하기보다는, 자신만의 설정 파일을 별도로 만들어 사용하는 것이 좋습니다.
먼저 터미널을 열고 홈 디렉터리로 이동합니다.
cd ~
이후 숨김 폴더인 .config 디렉터리로 이동합니다.
cd .config
참고로 cd ~/.config처럼 한 번에 이동할 수도 있습니다. 파일 시스템 탐색에 대한 자세한 내용은 cd 명령어 관련 가이드를 참고하세요.
.config 폴더에 들어왔다면, 다음 명령어로 기본 설정 파일을 복사합니다.
sudo cp /etc/conky/conky.conf .conkyrc
복사한 파일의 소유권을 현재 사용자로 변경합니다.
sudo chown user:user .conkyrc

부팅 시 자동 실행 스크립트 만들기
Conky를 시작 프로그램에 바로 등록하는 것만으로는 제대로 작동하지 않는 경우가 많습니다. 데스크톱 환경이 완전히 로드되기 전에 Conky가 먼저 실행되면서 문제가 생길 수 있기 때문입니다.
가장 확실한 해결 방법은 데스크톱 로딩을 기다린 후 Conky를 실행하는 셸 스크립트를 만들고, 이 스크립트를 시작 프로그램에 등록하는 것입니다.
터미널을 열고 홈 폴더로 이동한 뒤, nano 편집기나 cat 명령어를 사용해 conkystartup.sh라는 이름의 파일을 생성합니다. (파일 이름 앞에 점(.)을 붙이면 숨김 파일로 만들 수도 있습니다.)
파일에 다음 내용을 입력합니다.
#!/bin/bash
sleep 10
conky -b &
여기서 sleep 10은 데스크톱이 완전히 로드될 때까지 10초간 기다리라는 의미입니다. 저장한 뒤 다음 명령어로 실행 권한을 부여합니다.
sudo chmod a+x ~/conkystartup.sh
이제 conkystartup.sh 스크립트를 사용 중인 배포판의 시작 응용 프로그램 목록에 추가하면 됩니다.
두 개의 Conky 동시에 실행하기
기본적으로 Conky는 .config 폴더의 .conkyrc 파일을 사용합니다. 하지만 설정 파일을 여러 개 지정할 수도 있으며, 이는 두 개 이상의 Conky를 동시에 실행할 때 유용합니다. 예를 들어 화면 왼쪽과 오른쪽에 각각 하나씩 띄우는 식입니다.
먼저 두 개의 설정 파일을 만듭니다.
sudo cp /etc/conky/conky.conf ~/.config/.conkyleftrc
sudo cp /etc/conky/conky.conf ~/.config/.conkyrightrc
그다음 conkystartup.sh 파일을 다음과 같이 수정합니다.
#!/bin/bash
sleep 10
conky -b -c ~/.config/.conkyleftrc &
conky -b -c ~/.config/.conkyrightrc &
파일을 저장하면 재부팅 후 두 개의 Conky가 함께 실행됩니다. 물론 세 개 이상도 가능하지만, Conky 자체도 시스템 자원을 사용하므로 너무 많은 정보를 표시하는 것은 피하는 것이 좋습니다.
설정 항목 변경하기
설정을 변경하려면 .config 폴더에 만들어 둔 Conky 설정 파일을 편집하면 됩니다. 터미널을 열고 다음 명령어를 실행하세요.
sudo nano ~/.config/.conkyrc
파일을 열면 라이선스 관련 문구가 먼저 나오는데, 그 아래로 스크롤하여 conky.config 섹션을 찾습니다.
conky.config 섹션의 { } 중괄호 사이에 있는 모든 설정값은 Conky 창 자체가 어떻게 그려질지를 결정합니다.
예를 들어 Conky 창을 화면 왼쪽 아래로 옮기려면 alignment 값을 'bottom_left'로 지정하면 됩니다. 앞서 언급한 좌우 분할 개념을 적용한다면, 왼쪽 설정 파일에는 'top_left', 오른쪽 설정 파일에는 'top_right'로 각각 지정하면 됩니다.
창에 테두리를 추가하려면 border_width 값을 0보다 큰 숫자로 설정하고 draw_borders 옵션을 true로 바꿉니다.
본문 텍스트 색상을 바꾸려면 default_color 옵션을 수정하고 red, blue, green 같은 색상을 지정합니다.
draw_outline 옵션을 true로 설정하면 창에 외곽선(outline)을 추가할 수 있으며, 외곽선 색상은 default_outline_colour 옵션으로 변경할 수 있습니다. 마찬가지로 red, green, blue 등의 색상을 지정하면 됩니다.
비슷한 방식으로 draw_shades를 true로 바꾸면 그림자 효과를 넣을 수 있고, default_shade_colour 값으로 그림자 색상을 조절할 수 있습니다.
이러한 설정들을 하나씩 바꿔가며 자신에게 맞는 디자인을 찾아보는 과정 자체가 재미있습니다.
글꼴 스타일과 크기는 font 파라미터를 수정하여 변경할 수 있습니다. 시스템에 설치된 글꼴 이름을 입력하고 적절한 크기를 지정하세요. 기본 12pt 글꼴은 생각보다 커서, 이 설정은 실무에서 가장 유용하게 쓰이는 항목 중 하나입니다.
화면 왼쪽 끝과의 간격을 두고 싶다면 gap_x 값을, 화면 상단과의 간격을 조정하려면 gap_y 값을 수정하면 됩니다.

창 모양과 관련된 설정 항목은 매우 다양합니다. 그중 특히 유용한 것들을 정리하면 다음과 같습니다.
- border_inner_margin – 테두리와 텍스트 사이의 여백
- border_outer_margin – 테두리와 창 가장자리 사이의 여백
- default_bar_height – 막대 그래프 요소의 높이
- default_bar_width – 막대 그래프 요소의 너비
- default_gauge_height – 게이지 요소의 높이
- default_gauge_width – 게이지 요소의 너비
- draw_graph_borders – 그래프에 테두리를 그릴지 여부
- minimum_width – 창의 최소 너비
- maximum_width – 창의 최대 너비
- minimum_height – 창의 최소 높이
- maximum_height – 창의 최대 높이
- own_window_title – Conky 창에 원하는 제목 지정
- own_window_argb_visual – 투명 효과 활성화
- own_window_argb_value – 0~255 사이의 값(0은 불투명, 255는 완전 투명)
- short_units – 단위를 한 글자로 축약 표시
- show_graph_range – 그래프가 커버하는 시간 범위 표시
- show_graph_scale – 스케일된 그래프의 최대값 표시
- uppercase – 모든 텍스트를 대문자로 표시
Conky가 표시할 정보 구성하기
Conky가 화면에 보여주는 정보를 바꾸려면 설정 파일에서 conky.config 섹션 아래쪽으로 스크롤을 내려야 합니다.
다음과 같이 시작하는 섹션을 발견할 수 있습니다.
conky.text = [[
화면에 표시하고 싶은 모든 내용은 이 섹션 안에 작성합니다.
text 섹션 내부의 각 줄은 대략 다음과 같은 형태를 띱니다.
${color grey}Uptime:$color $uptime
${color grey}는 "Uptime"이라는 단어를 회색으로 표시하겠다는 의미이며, 원하는 색상으로 자유롭게 변경할 수 있습니다.
$uptime 앞의 $color는 가동 시간 값이 기본 색상으로 표시되도록 하는 설정이고, $uptime 자리에는 실제 시스템 가동 시간이 대입됩니다.
텍스트가 흐르는 스크롤 효과를 주고 싶다면 설정 앞에 scroll을 추가하면 됩니다.
${scroll 16 $nodename - $sysname $kernel on $machine |}
항목 사이에 수평 구분선을 넣고 싶다면 다음 코드를 추가합니다.
$hr

활용도가 높은 주요 변수들을 정리하면 다음과 같습니다.
- audacious_bar – Audacious 음악 플레이어 진행률 막대
- audacious_channels – 현재 곡의 오디오 채널 수
- audacious_file – 현재 재생 중인 곡의 파일명
- audacious_length – 현재 곡의 길이
- audacious_playlist_length – 재생 목록에 있는 곡 수
- battery_percent – 배터리 잔량(%)
- battery_time – 배터리 남은 사용 시간
- cpu – CPU 사용량
- cpubar – CPU 사용량 막대 그래프
- cpugauge – CPU 게이지
- desktop_name – 데스크톱 환경 이름
- diskio (device) – 디스크 입출력 표시
- distribution – 배포판 이름
- downspeedf (net) – 다운로드 속도(KB/s)
- exec command – 셸 명령어를 실행하고 결과를 Conky에 출력
- fs_bar – 파일 시스템 사용량 막대
- fs_bar_free – 파일 시스템 여유 공간 막대
- fs_free – 파일 시스템 여유 공간
- fs_free_perc – 여유 공간 비율(%)
- image – 이미지 표시
- kernel – 커널 버전
- loadavg (1|2|3) – 1분, 5분, 15분 평균 부하
- mem – 사용 중인 메모리 용량
- membar – 메모리 사용량 막대
- memfree – 여유 메모리 용량
- memperc – 메모리 사용률(%)
- mpd_album – 현재 MPD 곡의 앨범
- mpd_artist – 현재 MPD 곡의 아티스트
- mpd_bar – MPD 재생 진행률 막대
- mpd_file – 현재 MPD 곡의 파일명
- mpd_length – 곡 길이
- mpd_title – 곡 제목
- mpd_vol – MPD 플레이어 볼륨
- nodename – 호스트명
- processes – 전체 프로세스 수
- running_processes – 실행 중인 프로세스 수
- swap – 사용 중인 스왑 용량
- swapbar – 스왑 사용량 막대
- swapfree – 여유 스왑 용량
- swapmax – 전체 스왑 용량
- swapperc – 스왑 사용률(%)
- threads – 전체 스레드 수
- time (format) – 현지 시간
- upspeedf – 업로드 속도
- uptime – 시스템 가동 시간
- user_names – 로그인한 사용자 목록
- user_number – 로그인한 사용자 수
- user_times – 사용자 로그인 유지 시간
- utime – UTC 형식의 시간
- weather – 날씨 정보
마무리
Conky에는 소개한 것 외에도 방대한 양의 설정 옵션이 존재합니다. 전체 목록이 궁금하다면 Conky 공식 매뉴얼 페이지(man page)를 참고하시기 바랍니다. 기본 설정에서 출발해 하나씩 옵션을 추가하고 디자인을 다듬다 보면, 어느새 나만의 개성 있는 시스템 모니터링 대시보드가 완성되어 있을 것입니다.