conky — A system monitor for X originally based on the torsmo code, but more kickass. It just keeps on given'er. Yeah.
conky [
options
]
Conky is a system monitor for X originally based on torsmo. Since its inception, Conky has changed significantly from its predecessor, while maintaining simplicity and configurability. Conky can display just about anything, either on your root desktop or in its own window. Not only does Conky have many built-in objects, it can also display just about any piece of information by using scripts and other external programs.
Conky has more than 250 built in objects, including support for a plethora of OS stats (uname, uptime, CPU usage, mem usage, disk usage, "top" like process stats, and network monitoring, just to name a few), built in IMAP and POP3 support, built in support for many popular music players (MPD, XMMS2, BMPx, Audacious), and much much more. Conky can display this info either as text, or using simple progress bars and graph widgets, with different fonts and colours.
We are always looking for help, whether its reporting bugs, writing patches, or writing docs. Please use the facilities at SourceForge to make bug reports, feature requests, and submit patches, or stop by #conky on irc.freenode.net if you have questions or want to contribute.
Thanks for your interest in Conky.
For users compiling from source on a binary distro, make sure you have the X development libraries installed (Unless you configure your build without X11). This should be a package along the lines of "libx11-dev" or "xorg-x11-dev" for X11 libs, and similar "-dev" format for the other libs required (depending on your build options). You should be able to see which extra packages you need to install by reading errors that you get from running `cmake'. The easiest way to view the available build options is to run `ccmake' or `cmake-gui' from the source tree, but be careful when disabling certain features as you may lose desired functionality. E.g., with BUILD_MATH disabled you won't get errors but logarithmic graphs will be normal graphs and gauges will miss their line.
Conky has (for some time) been available in the repositories of most popular distributions. Here are some installation instructions for a few:
Gentoo users -- Conky is in Gentoo's Portage... simply use "emerge app-admin/conky" for installation.
Debian, etc. users -- Conky should be in your repositories, and can be installed by doing "aptitude install conky".
Example to compile and run Conky with default components (note that some build options may differ for your system):
cmake
-D CMAKE_INSTALL_PREFIX:string=/usr .
make
make install
# Optional
src/conky
Conky has been tested to be compatible with C99 C and C++0x C++, however it has not been tested with anything other than gcc, and is not guaranteed to work with other compilers.
TIP: Try configuring Conky with `ccmake' or `cmake-gui' instead of just `cmake'.
Conky is generally very good on resources. That said, the more you try to make Conky do, the more resources it is going to consume.
An easy way to force Conky to reload your ~/.config/conky/conky.conf: "killall -SIGUSR1 conky". Saves you the trouble of having to kill and then restart. You can now also do the same with SIGHUP.
Command line options override configurations defined in configuration file.
-a | --alignment=
ALIGNMENT
-b | --double-buffer
-c | --config=
FILE
-C | --print-config
-d | --daemonize
-D | --debug
-f | --font=
FONT
-h | --help
-i
COUNT
-o | --own-window
-p | --pause=
SECONDS
-q | --quiet
-t | --text=
TEXT
-u | --interval=
SECONDS
-v | -V | --version
-w | --window-id=
WIN_ID
-x
X_COORDINATE
-x
X_COORDINATE
-X | --display=
DISPLAY
-y
Y_COORDINATE
Default configuration file location is $HOME/.config/conky/conky.conf or ${sysconfdir}/conky/conky.conf. On most systems, sysconfdir is /etc, and you can find the sample config file there (/etc/conky/conky.conf).
You might want to copy it to $HOME/.config/conky/conky.conf and then start modifying it. Other configs can be found at http://conky.sf.net/
alignment
append_file
background
border_inner_margin
border_outer_margin
border_width
colorN
console_graph_ticks
cpu_avg_samples
default_bar_height
default_bar_width
default_color
default_gauge_height
default_gauge_width
default_graph_height
default_graph_width
default_outline_color
default_shade_color
disable_auto_reload
diskio_avg_samples
display
xinerama_head
double_buffer
draw_borders
draw_graph_borders
draw_outline
draw_shades
extra_newline
font
format_human_readable
gap_x
gap_y
hddtemp_host
hddtemp_port
http_refresh
if_up_strictness
imap
imlib_cache_flush_interval
imlib_cache_size
lua_draw_hook_post
function_name [function arguments]
lua_draw_hook_pre
function_name [function arguments]
lua_load
lua_shutdown_hook
function_name [function arguments]
lua_startup_hook
function_name [function arguments]
mail_spool
max_port_monitor_connections
max_text_width
width
max_user_text
bytes
maximum_width
pixels
minimum_height
height
minimum_width
width
mpd_host
mpd_password
mpd_port
mysql_host
mysql_port
mysql_user
mysql_password
mysql_db
music_player_interval
net_avg_samples
no_buffers
nvidia_display
out_to_console
out_to_http
out_to_ncurses
out_to_stderr
out_to_x
override_utf8_locale
overwrite_file
own_window
own_window_class
own_window_colour
colour
own_window_hints
undecorated,below,above,sticky,skip_taskbar,skip_pager
own_window_title
own_window_argb_visual
own_window_argb_value
own_window_transparent
own_window_type
pad_percents
pop3
short_units
show_graph_range
show_graph_scale
stippled_borders
temperature_unit
templateN
| '\n' -> newline |
| '\\' -> backslash |
| '\ ' -> space |
| '\N' -> template argument N (starting from 1) |
text_buffer_size
bytes
times_in_seconds
top_cpu_separate
top_name_verbose
top_name_width
total_run_times
update_interval
seconds
update_interval_on_battery
seconds
uppercase
use_spacer
use_xft
xftalpha
Colours are parsed using XParsecolor(), there might be a list of them: /usr/share/X11/rgb.txt. Colour can be also in #rrggbb format (hex).
Some objects may create threads, and sometimes these threads will not be destroyed until Conky terminates. There is no way to destroy or clean up threads while Conky is running. For example, if you use an MPD variable, the MPD thread will keep running until Conky dies. Some threaded objects will use one of the parameters as a 'key', so that you only have 1 relevant thread running (for example, the $curl, $rss and $weather objects launch one thread per URI).
acpiacadapter
(adapter)
acpifan
acpitemp
addr
(interface)
addrs
(interface)
adt746xcpu
adt746xfan
alignc
(num)
alignr
(num)
apcupsd
host
port
apcupsd_cable
apcupsd_charge
apcupsd_lastxfer
apcupsd_linev
apcupsd_load
apcupsd_loadbar
apcupsd_loadgauge
(height),(width)
apcupsd_loadgraph
(height),(width) (gradient colour 1) (gradient
colour 2) (scale) (-t) (-l)
apcupsd_model
apcupsd_name
apcupsd_status
apcupsd_temp
apcupsd_timeleft
apcupsd_upsmode
apm_adapter
apm_battery_life
apm_battery_time
audacious_bar
(height),(width)
audacious_bitrate
audacious_channels
audacious_filename
audacious_frequency
audacious_length
audacious_length_seconds
audacious_main_volume
audacious_playlist_length
audacious_playlist_position
audacious_position
audacious_position_seconds
audacious_status
audacious_title
(max length)
battery
(num)
battery_bar
(height),(width) (num)
battery_percent
(num)
battery_short
(num)
battery_time
(num)
blink
text_and_other_conky_vars
bmpx_album
bmpx_artist
bmpx_bitrate
bmpx_title
bmpx_track
bmpx_uri
buffers
cached
cmdline_to_pid
string
cmus_aaa
cmus_album
cmus_artist
cmus_curtime
cmus_file
cmus_date
cmus_genre
cmus_percent
cmus_progress
(height),(width)
cmus_random
cmus_repeat
cmus_state
cmus_timeleft
cmus_title
cmus_totaltime
cmus_track
color
(color)
colorN
combine
var1 var2
conky_build_arch
conky_build_date
conky_version
cpu
(cpuN)
cpubar
(cpuN) (height),(width)
cpugauge
(cpuN) (height),(width)
cpugraph
(cpuN) (height),(width) (gradient colour 1)
(gradient colour 2) (scale) (-t) (-l)
curl
url (interval_in_minutes)
desktop
desktop_name
desktop_number
disk_protect
device
diskio
(device)
diskio_read
(device)
diskio_write
(device)
diskiograph
(device) (height),(width) (gradient colour 1)
(gradient colour 2) (scale) (-t) (-l)
diskiograph_read
(device) (height),(width) (gradient colour 1)
(gradient colour 2) (scale) (-t) (-l)
diskiograph_write
(device) (height),(width) (gradient colour 1)
(gradient colour 2) (scale) (-t) (-l)
distribution
downspeed
(net)
downspeedf
(net)
downspeedgraph
(netdev) (height),(width) (gradient colour 1)
(gradient colour 2) (scale) (-t) (-l)
draft_mails
(maildir)
(interval)
else
endif
entropy_avail
entropy_bar
(height),(width)
entropy_perc
entropy_poolsize
eval
string
eve
api_keyID api_vCode character_id
exec
command
execbar
(height),(width)
command
execgauge
(height),(width)
command
execgraph
command
(height),(width)
(gradient color 1)
(gradient color 2)
(scale)
(-t)
(-l)
Draws a horizontally scrolling graph with values from 0-100 plotted on the vertical axis. All parameters following the command are optional. Gradient colors can be specified as hexadecimal values with no 0x or # prefix. Use the -t switch to enable a temperature gradient, so that small values are "cold" with color 1 and large values are "hot" with color 2. Without the -t switch, the colors produce a horizontal gradient spanning the width of the graph. The scale parameter defines the maximum value of the graph. Use the -l switch to enable a logarithmic scale, which helps to see small values. The default size for graphs can be controlled via the default_graph_height and default_graph_width config settings.
If you need to execute a command with spaces, you have a couple options: 1) wrap your command in double-quotes, or 2) put your command into a separate file, such as ~/bin/myscript.sh, and use that as your execgraph command. Remember to make your script executable!
In the following example, we set up execgraph to display seconds (0-59) on a graph that is 50px high and 200px wide, using a temperature gradient with colors ranging from red for small values (FF0000) to yellow for large values (FFFF00). We set the scale to 60.
${execgraph ~/seconds.sh 50,200 FF0000 FFFF00 60 -t}
execi
interval
command
execibar
interval
(height),(width)
command
execigauge
interval
(height),(width)
command
execigraph
interval
command
(height),(width)
(gradient color 1)
(gradient color 2)
(scale)
(-t)
(-l)
execp