conky(1)

okay bestie, welcome to conky(1) โ€” this is the General Commands Manual entry, and itโ€™s giving iconic system-monitor energy ๐Ÿ’…โœจ

๐ŸŒธ NAME ๐ŸŒธ

conky โ€” A system monitor for X

๐Ÿ“œ SYNOPSIS ๐Ÿ“œ

conky [ options ]

๐Ÿ’– DESCRIPTION ๐Ÿ’–

okay so 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. literally iconic.

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, 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 on GitHub to make bug reports, feature requests, and submit patches ๐Ÿซก.

Thanks for your interest in Conky. no cap, we love that for us ๐Ÿ’œ

๐Ÿ› ๏ธ COMPILING ๐Ÿ› ๏ธ

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 โœจ

๐Ÿ‘€ YOU SHOULD KNOW ๐Ÿ‘€

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 ๐ŸŽ€.

โš™๏ธ OPTIONS โš™๏ธ

Command line options override configurations defined in configuration file. periodt.

  • -a | --alignment= ALIGNMENT โ€” Text alignment on screen, {top,bottom,middle}_{left,right,middle} or none. Can also be abbreviated with first chars of position, ie. tr for top_right. Only available with build flag BUILD_X11 enabled.
  • -b | --double-buffer โ€” Use double buffering (eliminates "flicker"). Only available with build flag BUILD_X11 enabled.
  • -c | --config= FILE โ€” Config file to load instead of ~/.config/conky/conky.conf.
  • -C | --print-config โ€” Print builtin default config to stdout. See also the section EXAMPLES for more information. Only available with build flag BUILD_BUILTIN_CONFIG enabled.
  • -d | --daemonize โ€” Daemonize Conky, aka fork to background.
  • -D | --debug โ€” Increase debugging output, ie. -DD for more debugging.
  • -f | --font= FONT โ€” Font to use. Only available with build flag BUILD_X11 enabled.
  • -h | --help โ€” Prints command line help and exits.
  • -i COUNT โ€” Number of times to update Conky (and quit).
  • -o | --own-window โ€” Create own window to draw. Only available with build flag BUILD_X11 enabled.
  • -p | --pause= SECONDS โ€” Time to pause/wait before actually starting Conky.
  • -q | --quiet โ€” Run Conky in 'quiet mode' (ie. no output).
  • -t | --text= TEXT โ€” Text to render, remember single quotes, like -t ' $uptime '.
  • -u | --interval= SECONDS โ€” Update interval.
  • -U | --unique โ€” Conky wonโ€™t start if another Conky process is already running. Implemented only for Linux, FreeBSD, NetBSD, OpenBSD and Haiku.
  • -v | -V | --version โ€” Prints version, build information and general info. Exits after printing.
  • -w | --window-id= WIN_ID โ€” Window id to draw. Only available with build flag BUILD_X11 enabled.
  • -x X_COORDINATE โ€” X position.
  • -X | --display= DISPLAY โ€” X11 display to use. Only available with build flag BUILD_X11 enabled.
  • -y Y_COORDINATE โ€” Y position.

๐ŸŽ›๏ธ CONFIGURATION SETTINGS ๐ŸŽ›๏ธ

This is a list of Conkyโ€™s global configuration options. These belong in the conky.config section of your configuration file, before conky.text.

The default configuration file location is ~/.config/conky/conky.conf or ${sysconfdir}/conky/conky.conf. On most systems, $sysconfdir is /etc, and you can find the sample config file there in /etc/conky/conky.conf.

You may want to copy the default config to ~/.config/conky/conky.conf and modify it there. User configs can be found at https://github.com/brndnmtthws/conky/wiki/Configs.

Optional arguments are generally denoted with parentheses, for example (optional).

  • alignment โ€” Screen alignment. May be none or one of:
    • top_left (or tl)
    • top_middle (or tm)
    • top_right (or tr)
    • middle_left (or ml)
    • middle_middle (or mm)
    • middle_right (or mr)
    • bottom_left (or bl)
    • bottom_middle (or bm)
    • bottom_right (or br)

For panel and dock windows, it may be more useful to use one of the following aliases:

  • top โ†’ top_middle
  • left โ†’ middle_left
  • right โ†’ middle_right
  • bottom โ†’ bottom_middle
  • center โ†’ middle_middle

See also gap_x and gap_y settings.

  • append_file โ€” Append the file given as an argument.
  • background โ€” Boolean value. If true, Conky will fork into the background when started.
  • border_inner_margin โ€” Inner border margin in pixels (the margin between the border and text).
  • border_outer_margin โ€” Outer border margin in pixels (the margin between the border and the edge of the window).
  • border_width โ€” Border width in pixels.
  • colorN โ€” Predefine a color for use inside conky.text segments. Replace N with a digit between 0 and 9, inclusive. When specifying the color value in hex, omit the leading #.
  • console_bar_fill โ€” A character to fill the console bars. Default: #
  • console_bar_unfill โ€” A character to unfill the console bars. Default: .
  • console_graph_ticks โ€” A comma-separated list of strings to use as the bars in a graph rendered to the console or shell. The first list item is used for the minimum bar height and the last item is used for the maximum, for example ",_,=,#".
  • cpu_avg_samples โ€” The number of samples to average for CPU monitoring.
  • default_bar_height โ€” Specify a default height for bars. Default: 6
  • default_bar_width โ€” Specify a default width for bars. If not specified, the default value is 0, which causes the bar to expand to fit the width of your Conky window. With a text-only backend (e.g. output_backend = 'console') the default value will be 10 for the text version of the bar.
  • default_color โ€” Default text color and border color.
  • default_gauge_height โ€” Specify a default height for gauges. Default: 25
  • default_gauge_width โ€” Specify a default width for gauges. Default: 40
  • default_graph_height โ€” Specify a default height for graphs. Default: 25
  • default_graph_width โ€” Specify a default width for graphs. If not specified, the default value is 0, which causes the graph to expand to fit the width of your Conky window. With a text-only backend (e.g. output_backend = 'console') the text version of the graph will actually have no width and you will need to set a sensible default or set the height and width of each graph individually.
  • default_outline_color โ€” Default outline color.
  • default_shade_color โ€” Default shading color and borderโ€™s shading color.
  • detect_battery โ€” One or more batteries to check in order to use update_interval_on_battery (comma separated). Default: BAT0
  • disable_auto_reload โ€” Enable to disable the inotify-based auto config reload feature.
  • diskio_avg_samples โ€” The number of samples to average for disk I/O monitoring.
  • display โ€” Specify an X display to connect to.
  • double_buffer โ€” Use the Xdbe extension? (eliminates flicker) It is highly recommended to use own window with this one so double buffer wonโ€™t be so big.
  • draw_blended โ€” Boolean, blend when rendering drawn image? Some images blend incorrectly breaking alpha with ARBG visuals. This provides a possible work around by disabling blending. Default: True
  • draw_borders โ€” Draw borders around text.
  • draw_graph_borders โ€” Draw borders around graphs.
  • draw_outline โ€” Draw outlines.
  • draw_shades โ€” Draw shades.
  • extra_newline โ€” Put an extra newline at the end when writing to stdout (output_backend = 'console'), useful for writing to awesomeโ€™s wiboxes.
  • font โ€” Font name in X, xfontsel can be used to get a nice font.
  • fontN โ€” Predefine a font to be used in conky.text segments. Substitute N by a number between 0 and 9 inclusive. Use the same format as a font variable.
  • forced_redraw โ€” boolean, bestie. Set it true and Conky redraws everything every time you switch workspaces. Cute in theory ๐Ÿ’… but some WMs will hit you with delays and flickering, so vibe check your setup first.
  • format_human_readable โ€” turn this on and byte values get printed all pretty and human (KiB, MiB, etc). Turn it off and you just get the raw byte count. Pick your fighter โœจ
  • gap_x โ€” the gap, in pixels, between the right or left border of your screen. Same energy as passing -x on the command line, e.g. gap_x 10. For all the other position-y stuff, go look at alignment ๐Ÿซถ
  • gap_y โ€” same deal but vertical: gap in pixels between the top or bottom border of your screen, like passing -y on the command line, e.g. gap_y 10. Again, alignment has the rest of the position lore.
  • github_token โ€” your API token for GitHub notifications ๐Ÿ‘‘

Make one right here: https://github.com/settings/tokens/new?scopes=notifications&description=conky.

  • graph_gradient_mode (rgb|hcl|hsv) โ€” switches up the colour space used for interpolation. The arguments are hcl, hsv, and rgb.

Default: rgb

  • hddtemp_host โ€” the hostname Conky connects to for hddtemp objects.

Default: 127.0.0.1

  • hddtemp_port โ€” the port used for hddtemp connections.

Default: 7634

  • http_port โ€” the port Conky listens on for HTTP connections. The default is 10080, but ๐Ÿ”ฅ heads up ๐Ÿ”ฅ that one's blocked by Firefox and Chrome, so you really want to change it.

Default: 10080

  • http_refresh โ€” set this and the page generated by the http backend (that's output_backend, iykyk) auto-refreshes every interval. Self-care for your dashboard ๐ŸŒธ
  • if_up_strictness โ€” how strict should if_up be when it's testing whether an interface is up? The value is one of up (default), link, or address โ€” checking whether the interface is solely up, is up and has a link, or is up, has a link, and has an assigned IP address. No cap, it's a whole spectrum ๐Ÿ’€

Default: up

  • imap โ€” sets the default global IMAP server. The signature is:
imap host user pass [`-i interval (in seconds)'] ["-f `folder'"] [`-p port'] ["-e `command'"] [`-r retries']

The deets: default port is 143, default folder is INBOX, default interval is 5 minutes, and the default number of retries before giving up is 5. If you pass the password as '*', you'll get prompted to enter it when Conky starts (honestly iconic security behaviour ๐Ÿ”).

  • imap-adjacent side quests โ€” nope, just keeping you on your toes. Moving on โœจ
  • imlib_cache_flush_interval โ€” interval (in seconds) to flush the Imlib2 cache. ๐Ÿงน
  • imlib_cache_size โ€” Imlib2 image cache size, in bytes. Bump this up if you're using $image a lot. Set it to 0 to disable the image cache entirely.

Default: 4194304

  • lowercase โ€” boolean; if true, the text renders in lower case. tiny text energy ๐ŸŽ€
  • lua_draw_hook_post function_name [function arguments']โ€” if you define this function, Conky calls it through each iteration **after** drawing to the window. Requires a graphical output (X11 or Wayland). It takes any number of optional arguments. Use this hook for drawing things on top of what Conky draws ๐Ÿ’… Conky putsconky_in front offunction_nameto prevent accidental calls to the wrong function โ€” unless you placeconky_in front of it yourself. Useconky_surface()` inside the hook to obtain the current drawing surface.
  • lua_draw_hook_pre function_name [function arguments']โ€” same as above but called through each iteration **before** drawing to the window. Also requires a graphical output (X11 or Wayland), also takes any number of optional arguments, and (yes, same description) use this hook for drawing things on top of what Conky draws. Conky putsconky_in front offunction_nameto prevent accidental calls to the wrong function unless you placeconky_in front of it yourself. Useconky_surface()` inside the hook to obtain the current drawing surface.
  • lua_load โ€” a list of Lua script paths to load at startup, so they can provide Lua functions for the other hooks. The listed files are loaded (executed) before lua_startup_hook and can โ€” but shouldn't โ€” run code in global scope ๐Ÿ˜ญ

Paths are ; (semicolon) separated, and can be relative to the config file path, or absolute.

๐Ÿšจ The paths were previously ' ' (space) separated. That still works if ; isn't found, but it's deprecated and will be removed in future versions. Empty paths are skipped, so ./example file.lua; is valid.
  • lua_mouse_hook function_name โ€” if defined, Conky calls this when it receives mouse events from X or Wayland ๐Ÿ–ฑ๏ธ A table containing event information gets passed to the function as the first argument. Use this hook for detecting mouse input and acting on it. Conky requires that the function declaration has a conky_ prefix to prevent accidental calls to the wrong function.
  • lua_shutdown_hook function_name [function arguments']โ€” if defined, called by Conky at shutdown or when the configuration is reloaded. Use this hook to clean up after yourself, like freeing memory that external libraries allocated via Lua. Conky putsconky_in front offunction_nameto prevent accidental calls to the wrong function unless you placeconky_` in front of it yourself. Responsible queen behaviour ๐Ÿซถ
  • lua_startup_hook function_name [function arguments']โ€” if defined, called by Conky at startup or when the configuration is reloaded. Use this hook to initialize values, or for any run-once applications. Conky putsconky_in front offunction_nameto prevent accidental calls to the wrong function unless you placeconky_` in front of it yourself.
  • mail_spool โ€” the mail spool used for mail checking. ๐Ÿ“ฌ
  • max_port_monitor_connections โ€” lets each port monitor track at most this many connections.

Default: 256

  • max_text_width integer_number โ€” when a line in the output contains width chars and the end isn't reached, the next char starts on a new line. If you want to make sure lines don't get broken, set width to 0. No line-wrapping drama ๐Ÿ’…
  • max_user_text integer_number โ€” the maximum size of the user text buffer in bytes, i.e. the text inside the conky.text section in your config file.

Default: 16384

  • maximum_width integer_number โ€” maximum width of the window.
  • minimum_height integer_number โ€” minimum height of the window.
  • minimum_width integer_number โ€” minimum width of the window.
  • mpd_host โ€” host of the MPD server ๐ŸŽต
  • mpd_password โ€” MPD server password.
  • mpd_port โ€” port of the MPD server.
  • music_player_interval โ€” the music player thread update interval.

Default: update interval

  • mysql_db โ€” the MySQL database to use.

Default: mysql

  • mysql_host โ€” host of the MySQL server.

Default: localhost

  • mysql_password โ€” password of the MySQL user. Put it between " chars. When this isn't set, no password is used.
  • mysql_port โ€” port of the MySQL server.
  • mysql_user โ€” the MySQL user name to use when connecting to the server. Defaults to your username.
  • net_avg_samples โ€” the number of samples to average for net data. ๐Ÿ“Š
  • no_buffers โ€” subtracts (file system) buffers from used memory.
  • nvidia_display โ€” the display that the nvidia variable will use.

Default: $DISPLAY

  • out_to_console โ€” (Deprecated since 1.24.3.) Replaced by output_backend; set output_backend = 'console' to print text to stdout.
  • out_to_http โ€” (Deprecated since 1.24.3.) Replaced by output_backend; set output_backend = 'http' to serve text over HTTP.
  • out_to_ncurses โ€” (Deprecated since 1.24.3.) Replaced by output_backend; set output_backend = 'ncurses' to render in the terminal with ncurses.
  • out_to_stderr โ€” print text to stderr.
  • out_to_wayland โ€” (Deprecated since 1.24.3.) Replaced by output_backend; set output_backend = 'wayland' to open a Wayland window.
  • out_to_x โ€” (Deprecated since 1.24.3.) Replaced by output_backend; add or remove 'x11' from output_backend to control the X11 window.
  • output_backend โ€” picks which display backend(s) Conky uses to present its output. Takes either a single backend name or a list of names:
output_backend = 'wayland'
output_backend = { 'x11', 'http' }

Valid backends are x11, wayland, ncurses, http, console, and file; whether each one is available depends on your compile-time options.

Only one primary backend (x11, wayland, or ncurses) is active at a time. When you request several, Conky keeps the one best suited to the current session: wayland under a Wayland compositor, x11 under X11 or XWayland. The non-primary backends http, console (stdout), and file can be combined freely with a primary backend โ€” stack 'em, bestie ๐Ÿซถ

When unset, Conky infers a sensible backend from the session environment.

This replaces the deprecated out_to_x, out_to_wayland, out_to_ncurses, out_to_http, and out_to_console settings, which are still accepted for backwards compatibility.

  • override_utf8_locale โ€” force UTF8. Requires XFT.
  • overwrite_file โ€” overwrite the file given as argument.
  • own_window โ€” boolean; draw Conky in its own window instead of drawing on the root window.
  • own_window_argb_value โ€” (Deprecated since 1.23.0.) Replaced by own_window_color; encode the background opacity in its alpha channel instead (e.g. '#8000' for ~50% opacity).
  • own_window_argb_visual โ€” (Removed in 1.23.0.) ARGB is now always enabled when available. Control background opacity with own_window_color (e.g. '#8000').
  • own_window_class โ€” manually set the WM_CLASS name.

Default: Conky

  • own_window_color color โ€” sets the background colour of the window. Takes a hex value with optional alpha (e.g. '#fff', '#8000', '#8fff'), or a valid RGB name (see /usr/lib/X11/rgb.txt).

The alpha channel controls background opacity ๐Ÿ’… For example, '#0000' is fully transparent and '#f000' is fully opaque black. An 8-digit value uses the #AARRGGBB form (alpha first), e.g. '#E6000000' for ~90% opaque black.

๐Ÿšจ Okay listen โ€” this differs from the CSS #RRGGBBAA order. Writing '#000000E6' would set alpha to 0. Do not do that to yourself. ๐Ÿ˜ญ

Semi-transparent backgrounds require a compositor on X11.

Default: black

  • own_window_hints *hint(,hint)** โ€” okay so if own_window is set, you get to pass comma-separated window manager hints that change how Conky shows up. Here are some of the standard WM-spec ones, bestie:
    • above โ€” conky sits on top of most windows. main character behavior, honestly.
    • below โ€” conky goes underneath most windows. shy icon vibes.
    • skip_pager โ€” conky doesn't show up on a Pager. This one's implied if own_window_type is 'dock' or 'panel'.
    • skip_taskbar โ€” conky stays off the taskbar. Also implied if own_window_type is 'dock' or 'panel'.
    • sticky โ€” the Window Manager SHOULD keep conky's position fixed on screen, even when the virtual desktop scrolls. locked in fr.
    • undecorated โ€” no window decorations for conky (like, no title bar). Implied if own_window_type is 'dock' or 'panel'.

Notes, and these matter ๐Ÿ‘€:

  • Using own_window_type='desktop' is another way to get a bunch of these hints implicitly. two birds.
  • If you go own_window_type='override', window manager hints literally have no meaning and get ignored. nada.
  • Under Wayland these hints get translated into a wlr-layer-shell placement (and your compositor must support that protocol for any of this to work). A normal or utility window that would otherwise be a regular toplevel gets mounted as a layer surface whenever any of below, above or sticky is set: below/above pick the bottom/top layer, while sticky (shown across all workspaces), skip_taskbar and skip_pager are just intrinsic to layer surfaces. And undecorated is implicit, since layer surfaces are never decorated. slay.
  • own_window_namespace โ€” sets the wlr-layer-shell namespace of the Wayland window. Compositors like KWin classify the surface based on this (lowercased, btw); KWin recognizes desktop, dock, notification, tooltip, on-screen-display, dialog, splash and utility. Any other value gets treated as a normal window. When it's unset, conky is used. Pro tip straight from the page: to keep conky visible during Show Desktop while staying above the wallpaper, set this to desktop and keep own_window_type at normal. On KDE Plasma, dock gets elevated by the slide effect (shouldElevate() in slide.cpp) while you switch virtual desktops, so desktop keeps conky in the background the whole time. ๐Ÿซถ

Default: conky

  • own_window_title โ€” lets you override the conky window name.

Default: conky ()

  • own_window_transparent โ€” (Deprecated since 1.23.0.) Replaced by own_window_color; use a fully transparent value (alpha 0, e.g. '#0000') for the exact same effect. it's giving legacy ๐Ÿ’€
  • own_window_type (normal|desktop|dock|panel|utility|override) โ€” specifies what type of window conky is displayed as. Under X11 this requires own_window to be set; under Wayland it selects the wlr-layer-shell layer the surface gets mounted on (and, for dock/panel, whether it reserves screen space via an exclusive zone). The types, bestie:
    • normal mode makes conky show as a normal window. You can configure this mode with the own_window_hints setting.
    • desktop windows are special windows with no window decorations, always visible on the desktop, they don't appear in pager or taskbar, and they're sticky across all workspaces. Many DEs include desktop windows for background, icons and desktop menu โ€” in those cases it might be better to use normal or one of the options below, because those will cover conky when they're clicked on. ๐Ÿ˜ญ
    • dock windows are placed on screen edges. They're the same as desktop in most respects, but they render on top of desktop windows and below normal ones. Conky doesn't define struts for this window type, but some WMs might still implicitly avoid placing windows on top of it.
    • panel windows are similar to dock windows, but they also reserve space along a workarea edge (like taskbars do), preventing maximized windows from overlapping them. The edge gets chosen based on final conky position and size, and workarea dimensions, to make sure normal windows have the most free space available. For WMs that "cut out" entirely covered screens from the reserved area, the edge will be chosen based on the alignment setting. Under Wayland the reserved edge is always derived from alignment; a fully centered (mm) alignment has no edge to reserve against, so use an edge-aligned value (e.g. tm, bm, ml, mr).
    • utility windows are persistent utility windows (like a palette or toolbox). They appear on top of other windows (in the same group), but otherwise behave a lot like normal windows.
    • override windows are drawn directly on the root window (desktop background) and are not under the control of the window manager. These will not work with DEs that draw desktop icons via custom panels/windows, because those will cover conky. own_window_hints are ignored for override windows. Semi-transparent backgrounds do not work with override windows, because compositors typically don't composite override-redirect windows. Full transparency (alpha 0) may work via pseudo-transparency.

To make conky mount on the root window, set own_window to false.

Default: normal

  • pad_percents โ€” minimum field width for percentage values when use_spacer is left or right. Values are still printed as whole numbers (%u); no fractional decimals here, we don't do that. When spacer alignment is enabled, the width is at least 3 so 1/10/100 all line up. 0 means no extra width beyond that minimum (or no padding at all when use_spacer is none).
  • pop3 host user pass [-i interval (in seconds)] [-p port] [-e 'command'] [-r retries] โ€” default global POP3 server. Arguments are: host user pass [-i interval (in seconds)] [-p port] [-e 'command'] [-r retries]. Default port is 110, default interval is 5 minutes, and the default number of retries before giving up is 5. If the password is supplied as '*', you'll be prompted to enter the password when Conky starts. secretive โœจ
  • short_units โ€” shortens units down to a single character (kiB->k, GiB->G, etc.). compact queen.
  • show_graph_range โ€” shows the time range covered by a graph.
  • show_graph_scale โ€” shows the maximum value in scaled graphs.
  • stippled_borders โ€” border stippling (dashing) in pixels.
  • store_graph_data_explicitly โ€” (Removed in 1.23.0.) Graph data is now always stored directly in the node; this setting has no effect. rip, it did nothing ๐Ÿชฆ
  • temperature_unit โ€” desired output unit of all objects displaying a temperature. Parameters are either fahrenheit or celsius.

Default: celsius

  • templateN โ€” defines a template for later use inside conky.text segments. Substitute N with a digit between 0 and 9, inclusively. The value of the variable gets inserted into the stuff inside conky.text at the corresponding position, but before some substitutions are applied:
    • \\n -> newline
    • \\ -> backslash
    • \\ -> space
    • \\N -> template argument N (starting from 1)
  • text_alpha โ€” alpha (opacity) of rendered text on graphical outputs (X11 with Xft, and Wayland). Has to be a value at or between 0 and 1. Heads up: it only controls the opacity of the first font (font0). It replaces the backend-specific xftalpha (X11) and textalpha (Wayland) settings, which are still accepted as deprecated aliases.

Default: 1.0

  • text_buffer_size integer_number โ€” size of the standard text buffer in bytes. This buffer is used for intermediary text, like individual lines, output from $exec vars, and various other variables. Increasing this buffer's size can drastically reduce Conky's performance, but it will let you display more text per variable. The size of this buffer can't be smaller than the default value of 256 bytes. โš ๏ธ careful bestie

Default: 256

  • textalpha โ€” (Deprecated since 1.24.3.) Replaced by text_alpha; it unifies the old Wayland textalpha and X11 xftalpha settings.
  • times_in_seconds โ€” if true, variables that output times output a number that represents seconds. Doesn't touch $time, $tztime and $utime, those are doing their own thing.
  • top_cpu_separate โ€” if true, cpu in top shows the usage of one processor's power. If false, cpu in top shows the usage of all processors' power combined.
  • top_name_verbose โ€” if true, the top name shows the full command line of each process, including arguments (whenever possible). Otherwise, only the basename is displayed.

Default: false

  • top_name_width โ€” width for $top name value in characters.

Default: 15

  • total_run_times โ€” total number of times for Conky to update before quitting. Zero makes Conky run forever. and ever. and ever. ๐Ÿ‘‘
  • units_spacer โ€” string to place between values and units.

Default: '' (empty string)

  • update_interval seconds โ€” update interval.
  • update_interval_on_battery seconds โ€” update interval when running on battery power. unplugged era ๐Ÿ”‹
  • uppercase โ€” boolean value, if true, text is rendered in upper case. LOUD. ๐Ÿ’…
  • use_spacer โ€” adds spaces around certain objects to stop them from moving other things around. May be none (default) or left or right. The old true/false values are deprecated and default to right/none respectively. Little note: this only actually helps if you're using a mono font, like Bitstream Vera Sans Mono.

Default: none

  • use_xft โ€” use Xft (anti-aliased font and stuff). pretty text, slay.
  • xftalpha โ€” (Deprecated since 1.24.3.) Replaced by text_alpha; it unifies the old X11 xftalpha and Wayland textalpha settings.
  • xinerama_head โ€” specify a Xinerama head.

๐Ÿฆ‹ OBJECTS/VARIABLES ๐Ÿฆ‹

So to configure what Conky actually displays, you gotta supply some variables in the conky.text section of your config. In this section you'll find the whole listing of available variables. Heads up though: some of them may require build options to be enabled at compile time before they'll work. iykyk. ๐ŸŒธ

okay so real quick, before we get into the next pile of variables โ€” colour lore ๐Ÿ’… Colours get parsed using XParseColor(), and there's a whole list of named colours possibly hanging out in /usr/share/X11/rgb.txt. You can also just write them in #rrggbb hex format if that's more your vibe. ๐ŸŽจ

and now a thread warning, bestie, listen up ๐Ÿงต Some objects straight up create threads, and sometimes those threads will not be destroyed until Conky terminates. There is no way to destroy or clean up threads while Conky is running. Fr fr. For example, if you use an MPD variable, the MPD thread will keep running until Conky exits โ€” it's giving unkillable little guy energy ๐Ÿ˜ญ. Some threaded objects use one of the parameters as a key, so you only ever have one relevant thread running (for example, the $curl and $rss objects launch one thread per URI). iykyk.

Also! Optional arguments are generally denoted with parentheses, for example (optional). Cute, consistent, iconic.


  • acpiacadapter (adapter) โ€” ACPI AC adapter state, slay โšก On Linux, the adapter option specifies the subfolder of /sys/class/power_supply containing the state info. If you give it no argument it tries AC and ADP1. Non-linux systems just ignore it, no thoughts head empty.
  • acpifan โ€” ACPI fan state. ๐ŸŒฌ๏ธ
  • acpitemp โ€” ACPI temperature in C. ๐ŸŒก๏ธ
  • addr (interface) โ€” IP address for an interface, or โ€œNo Addressโ€ if no address is assigned.
  • addrs (interface) โ€” IP addresses for an interface (if there's just one it works like addr). Linux only.
  • adt746xcpu โ€” CPU temperature from therm_adt746x.
  • adt746xfan โ€” Fan speed from therm_adt746x.
  • alignc (num) โ€” Align text to the center. ๐ŸŽฏ
  • alignr (num) โ€” Right-justify text, with space of N.
  • apcupsd host port โ€” Sets up the connection to the apcupsd daemon. Prints nothing. (Silent queen ๐Ÿ‘‘) Default: localhost:3551
  • apcupsd_cable โ€” Prints the UPS connection type.
  • apcupsd_charge โ€” Current battery capacity in percent.
  • apcupsd_lastxfer โ€” Reason for last transfer from line to battery.
  • apcupsd_linev โ€” Nominal input voltage.
  • apcupsd_load โ€” Current load in percent.
  • apcupsd_loadbar โ€” Bar showing current load.
  • apcupsd_loadgauge (height),(width) โ€” Gauge that shows current load.
  • apcupsd_loadgraph (height),(width) (gradient colour 1) (gradient colour 2) (scale) (-t) (-l) (-x) (-y) (-m value) โ€” History graph of current load.
  • apcupsd_model โ€” Prints the model of the UPS.
  • apcupsd_name โ€” Prints the UPS user-defined name.
  • apcupsd_status โ€” Prints current status (on-line, on-battery).
  • apcupsd_temp โ€” Current internal temperature.
  • apcupsd_timeleft โ€” Time left to run on battery.
  • apcupsd_upsmode โ€” Prints the UPS mode (e.g. standalone).
  • apm_adapter โ€” Display APM AC adapter status. FreeBSD, OpenBSD only.
  • apm_battery_life โ€” Display APM battery life in percent. FreeBSD, OpenBSD only.
  • apm_battery_time โ€” Display remaining APM battery life in hh:mm:ss, or โ€œunknownโ€ if AC adapter status is online or charging. FreeBSD and OpenBSD only.
  • audacious_bar (height),(width) โ€” Progress bar. ๐Ÿ“Š
  • audacious_bitrate โ€” Bitrate of current tune. ๐ŸŽต
  • audacious_channels โ€” Number of audio channels of current tune.
  • audacious_filename โ€” Full path and filename of current tune.
  • audacious_frequency โ€” Sampling frequency of current tune.
  • audacious_length โ€” Total length of current tune as MM:SS.
  • audacious_length_seconds โ€” Total length of current tune in seconds.
  • audacious_main_volume โ€” The current volume reported by Audacious. ๐Ÿ”Š
  • audacious_playlist_length โ€” Number of tunes in playlist.
  • audacious_playlist_position โ€” Playlist position of current tune.
  • audacious_position โ€” Position of current tune (MM:SS).
  • audacious_position_seconds โ€” Position of current tune in seconds.
  • audacious_status โ€” Player status (Playing/Paused/Stopped/Not running).
  • audacious_title (max length) โ€” Title of current tune, with optional maximum length specifier.
  • battery (num) โ€” Battery status and remaining percentage capacity of ACPI or APM battery. An ACPI battery number may be given as an argument. Default: BAT0
  • battery_bar (height),(width) (num) โ€” Battery percentage remaining of ACPI battery in a bar. ACPI battery number can be given as argument (use all to get the mean percentage remaining for all batteries ๐Ÿ”‹). Default: BAT0
  • battery_percent (num) โ€” Battery percentage remaining for ACPI battery. ACPI battery number can be given as argument (use all to get the mean percentage remaining for all batteries). Default: BAT0
  • battery_power_draw (num) โ€” Battery power draw in watts โšก Default: BAT0
  • battery_short (num) โ€” Battery status and remaining percentage capacity of ACPI or APM battery. An ACPI battery number may be given as an argument. This mode displays a short status: C for charging, D for discharging, F for full, N for not present, E for empty, and U for unknown. (One letter, so efficient ๐Ÿ’…) Default: BAT0
  • battery_status (num) โ€” Battery status for an ACPI battery. An ACPI battery number may be given as an argument. Default: BAT0
  • battery_time (num) โ€” Battery charge/discharge time remaining of ACPI battery. An ACPI battery number may be given as an argument. Default: BAT0
  • blink text_and_other_conky_vars โ€” Let text_and_other_conky_vars blink on and off. โœจ๐Ÿ‘๏ธโœจ
  • buffers โ€” Amount of memory buffered.
  • cached โ€” Amount of memory cached.
  • cat file โ€” Reads a file and displays its contents in Conky. This is useful if you have an independent process generating output that you want to include in Conky.
  • catp file โ€” Reads a file and displays its contents in Conky. This is useful if you have an independent process generating output that you want to include in Conky. The difference from $cat? This one parses the contents of the file, so you can insert things like ${color red}hi!${color} in your file and have it correctly parsed by Conky. Chef's kiss.
  • cmdline_to_pid string โ€” PID of the first process whose command line contains the given string.
  • cmus_aaa โ€” Print aaa status of cmus (all/artist/album).
  • cmus_album โ€” Prints the album of the current cmus song. ๐Ÿ’ฟ
  • cmus_artist โ€” Prints the artist of the current cmus song.
  • cmus_curtime โ€” Current time of the current cmus song.
  • cmus_date โ€” Print the date of the current cmus song.
  • cmus_file โ€” Print the file name of the current cmus song.
  • cmus_genre โ€” Print the genre name of the current cmus song.
  • cmus_percent โ€” Percent of song's progress.
  • cmus_progress (height),(width) โ€” cmus' progress bar.
  • cmus_random โ€” Random status of cmus (on/off).
  • cmus_repeat โ€” Repeat status of cmus (song/all/off).
  • cmus_state โ€” Current state of cmus (playing, paused, stopped etc).
  • cmus_timeleft โ€” Time left of the current cmus song.
  • cmus_title โ€” Prints the title of the current cmus song.
  • cmus_totaltime โ€” Total length of the current cmus song.
  • cmus_track โ€” Print track number of current cmus song.
  • color (color) โ€” Change drawing color to color, which is a name of a color or a hexcode preceded with #, e.g. #0A1B2C. If you use ncurses only the following colors are supported: red, green, yellow, blue, magenta, cyan, black, and white. ๐ŸŒˆ
  • colorN โ€” Change drawing color to colorN configuration option, where N is a digit between 0 and 9, inclusively.
  • combine var1 var2 โ€” Places the lines of var2 to the right of the lines of var1, separated by the chars that are put between var1 and var2. For example: ${combine ${head /proc/cpuinfo 2} - ${head /proc/meminfo 1}} gives as output cpuinfo_line1 - meminfo_line1 on line 1 and cpuinfo_line2 - on line 2. $combine vars can also be nested to place more vars next to each other. Nested combos are main character energy.
  • conky_build_arch โ€” CPU architecture Conky was built for.
  • conky_version โ€” Conky version. ๐Ÿ“Œ
  • cpu (cpuN) โ€” CPU usage in percents. For SMP machines, the CPU number can be provided as an argument. ${cpu cpu0} is the total usage, and ${cpu cpuX} (X >= 1) are individual CPUs.
  • cpubar (cpuN) (height),(width) โ€” Bar that shows CPU usage, height is bar's height in pixels. See $cpu for more info on SMP.
  • cpugauge (cpuN) (height),(width) โ€” Elliptical gauge that shows CPU usage, height and width are gauge's vertical and horizontal axis respectively. See $cpu for more info on SMP.
  • cpugovernor (cpuN) โ€” The active CPU scaling governor, defaulting to the first core. See $cpu for more info on SMP. Linux only.
  • cpugraph (cpuN) (height),(width) (gradient colour 1) (gradient colour 2) (scale) (-t) (-l) (-x) (-y) (-m value) โ€” CPU usage graph, with optional colours in hex, minus the #. See $cpu for more info on SMP. Uses a logarithmic scale (to see small numbers) when you use the -l switch. Takes the switch -t to use a temperature gradient, which makes the gradient values change depending on the amplitude of a particular graph value (try it and see ๐Ÿ‘€). The flag -x inverts the x axis and -y inverts the y axis of the graph. The flag -m sets a nonzero minimum/lowerbound, ensuring that all values are at least the specified minimum (excluding zero). ๐Ÿ“ˆ
  • curl url (interval_in_minutes) โ€” Download data from URI using Curl at the specified interval. The interval may be a positive floating point value (0 is allowed), otherwise defaults to 15 minutes. Most useful when used in conjunction with Lua and the Lua API. ๐Ÿซถ This object is threaded, and once a thread is created it can't be explicitly destroyed. One thread will run for each URI specified. You can use any protocol that Curl supports.
  • desktop โ€” Number of the desktop on which conky is running, or the message โ€œNot running in Xโ€ if this is the case.
  • desktop_name โ€” Name of the desktop on which conky is running, or the message โ€œNot running in Xโ€ if this is the case.
  • desktop_number โ€” Number of desktops, or the message โ€œNot running in Xโ€ if this is the case.

disk_protect device

Disk protection status โ€” only if your setup supports it (heads up: it needs kernel-patch). It prints either frozen or free โ€” and yes bestie, note the padding, it's there on purpose ๐Ÿ’…

diskio (device)

Current disk IO, live and direct โœจ The device is optional and takes the form of sda for /dev/sda. You can also point at a block device label with label:foo, or a block device partuuid with partuuid:40000000-01. Flexible queen behavior ๐Ÿ‘‘

diskio_read (device)

Current disk IO specifically for reads. Device works exactly like in diskio. Same energy, different direction ๐Ÿซถ

diskio_write (device)

Current disk IO specifically for writes. Device as in diskio. Go off, storage ๐Ÿ’พ

diskiograph (device) (height),(width) (gradient colour 1) (gradient colour 2) (scale) (-t) (-l) (-x) (-y) (-m value)

The disk IO graph ๐Ÿ’– Colours are defined in hex โ€” minus the #, do not come at me with a hash. If scale is non-zero, it becomes the scale for the graph. It uses a logarithmic scale (so you can actually see the small numbers) when you use the -l switch. It takes the switch -t to use a temperature gradient, which makes the gradient values change depending on the amplitude of a particular graph value (try it and see โ€” genuinely, just try it). The flag -x inverts the x axis, and -y inverts the y axis of the graph. The flag -m sets a nonzero minimum/lowerbound, so every value is at least the specified minimum (zero excluded, obviously). graph era ๐Ÿ“ˆ

diskiograph_read (device) (height),(width) (gradient colour 1) (gradient colour 2) (scale) (-t) (-l) (-x) (-y) (-m value)

Disk IO graph just for reads, colours defined in hex, minus the #.

  1. If scale is non-zero, it becomes the scale for the graph. Device as in diskio. Uses a logarithmic scale (to see small numbers) when you use the -l switch. Takes the switch -t to use a temperature gradient, which makes the gradient values change depending on the amplitude of a particular graph value (try it and see). The flag -x inverts the x axis and -y inverts the y axis of the graph. The flag -m sets a nonzero minimum/lowerbound, ensuring that all values are at least the specified minimum (excluding zero).

diskiograph_write (device) (height),(width) (gradient colour 1) (gradient colour 2) (scale) (-t) (-l) (-x) (-y) (-m value)

Disk IO graph for writes, colours defined in hex, minus the #.

  1. If scale is non-zero, it becomes the scale for the graph. Device as in diskio. Uses a logarithmic scale (to see small numbers) when you use the -l switch. Takes the switch -t to use a temperature gradient, which makes the gradient values change depending on the amplitude of a particular graph value (try it and see). The flag -x inverts the x axis and -y inverts the y axis of the graph. The flag -m sets a nonzero minimum/lowerbound, ensuring that all values are at least the specified minimum (excluding zero).

distribution

Name of your Linux distribution ๐Ÿง NAME is read from the /etc/os-release file, with a fallback on /proc/version content. And listen โ€” if the info it reports is wrong, create an issue. That's the whole vibe check, bestie ๐Ÿ’œ

downspeed (net)

Download speed in suitable IEC units. Clean, readable, iconic ๐ŸŒธ

downspeedf (net)

Download speed in KiB with one decimal. Precise but not extra ๐ŸŽ€

downspeedgraph (netdev) (height),(width) (gradient colour 1) (gradient colour 2) (scale) (-t) (-l) (-x) (-y) (-m)

Download speed graph, colours defined in hex, minus the # ๐Ÿฆ‹ If scale is non-zero, it defines the maximum value of the graph (in bytes per second). Uses a logarithmic scale (to see small numbers) when you use the -l switch. Takes the switch -t to use a temperature gradient, which makes the gradient values change depending on the amplitude of a particular graph value (try it and see). The flag -x inverts the x axis and -y inverts the y axis of the graph. The flag -m sets a nonzero minimum/lowerbound, ensuring that all values are at least the specified minimum (excluding zero). speeeeed โšก

draft_mails (maildir) (interval)

Number of mails marked as draft in the specified mailbox, or the mail spool if you don't specify one ๐Ÿ“ฎ Only maildir type mailboxes are supported โ€” mbox type will return -1, no cap ๐Ÿ˜ญ

else

Text to show if any of the above are not true. The little plan B of your $if block ๐Ÿ’…

endif

Ends an $if block. Bye bestie, block closed ๐Ÿ‘‹โœจ

entropy_avail

Current entropy available โ€” this one's for the crypto freaks ๐Ÿ”

entropy_bar (height),(width)

Normalized bar of available entropy, also for the crypto freaks. A whole lil bar, just for your randomness ๐ŸŒˆ

entropy_perc

Percentage of entropy available in comparison to the poolsize. Math but make it cute ๐Ÿงš

entropy_poolsize

Total size of the system entropy pool โ€” yeah, still for the crypto freaks ๐Ÿ’œ

eval string

Evaluates the given string according to the rules of conky.text interpretation โ€” i.e. parsing any contained text object specifications into their output, any occurring $ into a single $, and so on. The output is then being parsed again. Recursive queen ๐ŸŒ€ it's giving inception

exec command

Executes a shell command and displays the output in conky.

Warning: this takes a lot more resources than other variables. I'd recommend coding the wanted behaviour in C/C++ and posting a patch. ๐Ÿ˜ญ

execbar (height),(width) command

Same as exec, except if the first value returned is a value between 0-100, it will use that number to draw a horizontal bar ๐ŸŽ€ The height and width parameters are optional, and default to the default_bar_height and default_bar_width config settings respectively. Slay.

execgauge (height),(width) command

Same as exec, except if the first value returned is a value between 0-100, it will use that number to draw a round gauge (much like a vehicle speedometer) ๐ŸŽ๏ธ The height and width parameters are optional, and default to the default_gauge_height and default_gauge_width config settings respectively.

execgraph command (height),(width) (gradient color 1) (gradient color 2) (scale) (-t) (-l) (-x) (-y) (-m value)

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 โ€” no prefix, I'm serious. 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. The flag -x inverts the x axis and -y inverts the y axis of the graph. The flag -m sets a nonzero minimum/lowerbound, ensuring that all values are at least the specified minimum (excluding zero).

If you need to execute a command with spaces in it, you have a couple options bestie:

  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! chmod +x is your bestie, don't leave her hanging ๐Ÿ™ˆ

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

Same as exec, but with a specific interval in seconds โฑ๏ธ The interval can't be less than the update_interval in your configuration โ€” that's a hard no, don't even try. See also $texeci ๐Ÿ‘€

execibar interval (height),(width) command

Same as execbar, but with an interval. Bar but on a schedule ๐Ÿ’…

execigauge interval (height),(width) command

Same as execgauge, but with an interval. Gauge but on a schedule ๐ŸŒ€

execigraph interval command (height),(width) (gradient color 1) (gradient color 2) (scale) (-t) (-l) (-x) (-y) (-m value)

Same as execgraph, but with an interval. Graph but on a schedule, and honestly? Iconic โœจ

execp command

Executes a shell command and displays the output in conky.

Warning: this takes a lot more resources than other variables. I'd recommend coding the wanted behaviour in C/C++ and posting a patch. ๐Ÿ˜ญ

This differs from $exec in that it parses the output of the command, so you can insert things like ${color red}hi!${color} in your script and have it correctly parsed by Conky ๐Ÿ’–

Caveats: Conky parses and evaluates the output of $execp every single time Conky loops, and then destroys all the objects ๐Ÿ’€ If you try to use anything like $execi within an $execp statement, it will functionally run at the same interval that the $execp statement runs, as it is created and destroyed at every interval. Yeah. It's giving built different.

execpi interval command

Same as execp, but with an interval. Note that the output from the $execpi command is still parsed and evaluated at every interval ๐ŸŽ€

flagged_mails (maildir) (interval)

Number of mails marked as flagged in the specified mailbox, or the mail spool if you don't specify one ๐Ÿšฉ Only maildir type mailboxes are supported โ€” mbox type will return -1, we said what we said ๐Ÿ˜ญ

font (font)

Specify a different font ๐Ÿ–‹๏ธ This new font will apply to the current line and everything following it. You can use a $font with no arguments to change back to the default font โ€” much like with $color. Main character energy, but make it typography โœจ

fontN

Change font to the fontN configuration option, where N is a digit between 0 and 9, inclusively. Ten fonts, ten moods ๐Ÿ’…

format_time seconds format

Format time given in seconds โณ This var only works when the times_in_seconds configuration setting is on โ€” no setting, no formatting, that's the rule.

Format is a string that should start and end with a double quote " character. The quote characters are not part of the output. ,,, ( ) and \ are replaced by weeks, days, hours, minutes, seconds, (, ) and . respectively.

If you leave out a unit, its value will be expressed in the highest unit lower than the one left out. Text between ()-chars will not be visible if a replaced unit in this text is 0 โ€” sneaky lil conditional, love that for us ๐Ÿ™ˆ

If seconds is a decimal number then you can see the numbers behind the point by using a \ followed by a number that specifies the amount of digits behind the point that you want to see (maximum 9). You can also place an x behind so you have all digits behind the point and no trailing zero's (also maximum 9) ๐Ÿ“


  • forwarded_mails (maildir) (interval) โ€” how many mails are marked as forwarded in the mailbox you name โ€” or in the mail spool, if you don't name one ๐Ÿซถ. Heads up: only maildir type mailboxes are supported, mbox type will hand you back -1. Like, don't ask, it just will ๐Ÿ’€
  • free_bufcache โ€” the amount of memory cached or buffered, exactly as free reports it. Linux only ๐Ÿง
  • free_cached โ€” the amount of memory cached, as reported by free. Linux only ๐Ÿง
  • freq (n) โ€” returns CPU #n's frequency in MHz โœจ. CPUs are counted from 1, not 0, iykyk. Default: 1
  • freq2 (n) โ€” returns CPU #n's clock speed from assembly, in MHz ๐Ÿ”ฅ. CPUs are counted from 1. Default: 1
  • freq_g (n) โ€” returns CPU #n's frequency, but in GHz this time ๐ŸŽ€. CPUs are counted from 1. Default: 1
  • fs_bar (height),(width) fs โ€” a little bar showing how much space is used on a file system ๐Ÿ“Š. height is the height in pixels. fs is any file on that file system.
  • fs_bar_free (height),(width) fs โ€” same energy, but the bar shows how much space is free on the file system ๐Ÿฆ‹. height is the height in pixels. fs is any file on that file system.
  • fs_free (fs) โ€” free space on a file system that's actually available for users ๐Ÿซถ
  • fs_free_perc (fs) โ€” the free percentage of space on a file system available for users ๐ŸŒธ
  • fs_size (fs) โ€” file system size, the whole thing ๐Ÿ‘‘
  • fs_type (fs) โ€” file system type, literally its whole vibe check ๐Ÿ’…
  • fs_used (fs) โ€” file system used space ๐Ÿ”ฅ
  • fs_used_perc (fs) โ€” percent of file system used space, the spicy number ๐Ÿ“ˆ
  • gid_name gid โ€” the name of the group with this gid ๐Ÿ‘ฏ
  • github_notifications โ€” the number of GitHub notifications. Yes, all of them. Yes, that many ๐Ÿ˜ญ
  • goto x โ€” the next element gets printed at position x ๐Ÿ“
  • gw_iface โ€” displays the default route's interface, or multiple/none accordingly ๐ŸŒ
  • gw_ip โ€” displays the default gateway's IP, or multiple/none accordingly ๐ŸŒˆ
  • hddtemp (dev) โ€” displays the temperature of a selected hard disk drive as reported by the hddtemp daemon ๐ŸŒก๏ธ. Use hddtemp_host and hddtemp_port to specify a host and port for all hddtemp objects. If you don't give a dev parameter, the first disk returned by the hddtemp daemon is the one that gets used.
  • head logfile lines (next_check) โ€” displays the first N lines of the text file you supply ๐Ÿ“„. The file is checked every next_check update. If next_check isn't supplied, Conky defaults to 2. Max of 30 lines can be displayed, or until the text buffer is filled โ€” whichever comes first ๐Ÿ’€
  • hr (height) (width) โ€” a horizontal line โœจ. height is the height in pixels. width can be used to set the width, in pixels, of the horizontal line.
  • hwmon (dev) type n (factor offset) โ€” an hwmon sensor from sysfs (Linux 2.6) ๐Ÿงš. The dev parameter can be:
    1. A number. e.g. 1 means hwmon1.
    2. A module name. e.g. k10temp means the first hwmon device whose module name is k10temp.
    3. Omitted. Then the first hwmon device (hwmon0) will be used.

The type parameter is either in or vol meaning voltage; power meaning power; fan meaning fan; temp meaning temperature. The n parameter is the number of the sensor. Go look at /sys/class/hwmon/ on your local computer, bestie ๐Ÿ‘€. The optional factor and offset arguments let you precalculate the raw input, which gets modified like this: input = input * factor + offset. Note that they have to be given as decimal values (i.e. contain at least one decimal place) ๐ŸŽ€

  • hwmonbar (height),(width) (dev) type n (factor offset) โ€” same as hwmon, but it shows the sensor reading as a horizontal bar ๐Ÿ“Š. Use factor and offset to scale the value reported by hwmon into the 0-100 range. Temperature values are already converted from millidegrees. height and width default to default_bar_height and default_bar_width respectively.
  • i2c (dev) type n (factor offset) โ€” an I2C sensor from sysfs (Linux 2.6) ๐Ÿฆ‹. The dev parameter may be omitted if you have only one I2C device. The type parameter is either in or vol meaning voltage; power meaning power; fan meaning fan; temp meaning temperature. The n parameter is the number of the sensor. See /sys/bus/i2c/devices/ on your local computer. The optional factor and offset arguments allow precalculation of the raw input, which is modified like so: input = input * factor + offset. Note that they have to be given as decimal values (i.e. contain at least one decimal place) โœจ
  • i2cbar (height),(width) (dev) type n (factor offset) โ€” same as i2c, but it displays the sensor reading as a horizontal bar ๐Ÿ“Š. Use factor and offset to scale the value reported by i2c into the 0-100 range. Temperature values are already converted from millidegrees. height and width default to default_bar_height and default_bar_width respectively.
  • i8k_ac_status โ€” if you're running the i8k kernel driver for Inspiron laptops, this displays whether AC power is on, as listed in /proc/i8k (translated to human-readable) ๐Ÿ”Œ. Beware that this is by default not enabled by i8k itself ๐Ÿ™ˆ
  • i8k_bios โ€” if you're running the i8k kernel driver for Inspiron laptops, this displays the BIOS version as listed in /proc/i8k ๐Ÿ’ป
  • i8k_buttons_status โ€” if you're running the i8k kernel driver for Inspiron laptops, this displays the volume buttons status as listed in /proc/i8k ๐ŸŽ›๏ธ
  • i8k_cpu_temp โ€” if you're running the i8k kernel driver for Inspiron laptops, this displays the CPU temperature in Celsius, as reported by /proc/i8k ๐ŸŒก๏ธ
  • i8k_left_fan_rpm โ€” if you're running the i8k kernel driver for Inspiron laptops, this displays the left fan's rate of rotation, in revolutions per minute, as listed in /proc/i8k ๐Ÿ’จ. Beware, on some laptops i8k reports these fans in reverse order ๐Ÿ˜ญ
  • i8k_left_fan_status โ€” if you're running the i8k kernel driver for Inspiron laptops, this displays the left fan status as listed in /proc/i8k (translated to human-readable) ๐ŸŒ€. Beware, on some laptops i8k reports these fans in reverse order ๐Ÿ˜ญ
  • i8k_right_fan_rpm โ€” if you're running the i8k kernel driver for Inspiron laptops, this displays the right fan's rate of rotation, in revolutions per minute, as listed in /proc/i8k ๐Ÿ’จ. Beware, on some laptops i8k reports these fans in reverse order ๐Ÿ˜ญ
  • i8k_right_fan_status โ€” if you're running the i8k kernel driver for Inspiron laptops, this displays the right fan status as listed in /proc/i8k (translated to human-readable) ๐ŸŒ€. Beware, on some laptops i8k reports these fans in reverse order ๐Ÿ˜ญ
  • i8k_serial โ€” if you're running the i8k kernel driver for Inspiron laptops, this displays your laptop serial number as listed in /proc/i8k ๐Ÿท๏ธ
  • i8k_version โ€” if you're running the i8k kernel driver for Inspiron laptops, this displays the version formatting of /proc/i8k ๐Ÿ“Œ
  • ibm_brightness โ€” if you're running the IBM ACPI, this displays the brightness of the laptop's LCD (0-7) โ˜€๏ธ
  • ibm_fan โ€” if you're running the IBM ACPI, this displays the fan speed ๐Ÿ’จ
  • ibm_temps N โ€” if you're running the IBM ACPI, this displays the temperatures from the IBM temperature sensors (N=0..7). Sensor 0 is on the CPU, 3 is on the GPU ๐ŸŒก๏ธ
  • ibm_thinklight โ€” if you're running the IBM ACPI, this displays the status of your ThinkLightโ„ข ๐Ÿ’ก. The value is either on, off or unknown.
  • ibm_volume โ€” if you're running the IBM ACPI, this displays the "master" volume, controlled by the volume keys (0-14) ๐Ÿ”Š
  • ical number file โ€” shows the title of event number number in the ical (RFC 5545) file file ๐Ÿ“…. The events are first ordered by starting time, and events that started in the past are ignored. The events that get shown are the VEVENTS, the title that's shown is the SUMMARY, and the starting time used for sorting is DTSTART. Periodt ๐Ÿ‘‘
  • iconv_start codeset_from codeset_to โ€” converts text from one codeset to another using GNU iconv ๐Ÿ”„. Needs to be stopped with iconv_stop.
  • iconv_stop โ€” stops iconv codeset conversion ๐Ÿ›‘
  • if_empty (var) โ€” if the conky variable VAR is empty, display everything between $if_empty and the matching $endif ๐Ÿซฅ
  • if_existing file (string) โ€” if FILE exists, display everything between if_existing and the matching $endif. The optional second parameter checks whether FILE contains the specified string and then prints everything between $if_existing and the matching $endif ๐Ÿ”
  • if_gw โ€” if there's at least one default gateway, display everything between $if_gw and the matching $endif ๐ŸŒ
  • if_match expression โ€” evaluates the given boolean expression and prints everything between $if_match and the matching $endif depending on whether the evaluation returns true or not โš–๏ธ. Valid expressions consist of a left side, an operator and a right side. Left and right sides get parsed for contained text objects before evaluation.

Recognised left and right side types are:

  • double: the argument consists of only digits and a single dot ๐Ÿ”ข
  • long: the argument consists of only digits
  • string: the argument is enclosed in quotation marks (")

Valid operands are:

  • < or >
  • <= or >=
  • == or !=
  • if_mixer_mute (mixer) โ€” if that mixer exists, display everything between $if_mixer_mute and the matching $endif ๐ŸŽš๏ธ. If no mixer is specified, Vol is used.
  • if_mounted (mountpoint) โ€” if MOUNTPOINT is mounted, display everything between $if_mounted and the matching $endif ๐Ÿ’พ
  • if_mpd_playing โ€” if mpd is playing or paused, display everything between $if_mpd_playing and the matching $endif ๐ŸŽต
  • if_pa_sink_muted โ€” if Pulseaudio's default sink is muted, display everything between $if_pa_sink_muted and the corresponding $else or $endif ๐Ÿ”‡
  • if_pa_source_muted โ€” if Pulseaudio's default source (e.g. your microphone) is muted, display everything between $if_pa_source_muted and the corresponding $else or $endif ๐ŸŽค
  • if_pa_source_running โ€” if Pulseaudio's default source is running (e.g. a program is accessing your microphone), display everything between $if_pa_source_running and the corresponding $else or $endif ๐ŸŽ™๏ธ
  • if_running (process) โ€” if PROCESS is running, display everything between $if_running and the corresponding $else or $endif ๐Ÿƒโ€โ™€๏ธ. Note that PROCESS may be either a full command line with arguments (without the directory prefix), or simply the name of an executable. For example, either of the following will be true if there's a running process with the command line /usr/bin/conky -u 5:

Those last two flavours of the check, for the record:

${if_running conky -u 5}

or

${if_running conky}

Okay and this part is IMPORTANT โ€” do not leave a trailing space in there. Like, ${if_running conky } (see the sneaky little space? ๐Ÿ‘€) is gonna evaluate to false and you'll be debugging for an hour wondering why your widget ghosted you ๐Ÿ˜ญ.

  • ${if_smapi_bat_installed} (INDEX) โ€” smapi girlies rise ๐Ÿซถ. If the battery with index INDEX is installed, everything between $if_smapi_bat_installed and the matching $endif gets shown. Otherwise it's just not there. Periodt.
  • ${if_up} (interface) โ€” vibe check on your network: if INTERFACE exists and is up, everything between $if_up and the matching $endif renders. If the interface is down or doesn't exist, nothing renders. Simple as that โœจ.
  • ${if_updatenr} (updatenr) โ€” if it's the UPDATENR-th time conky updates, show everything between $if_updatenr and the matching $endif. The counter resets once the highest UPDATENR is reached, so it's giving little rotation cycle ๐Ÿ”„.

Example:

{$if_updatenr 1}foo$endif{$if_updatenr 2}bar$endif{$if_updatenr 4}$endif

That one shows foo 25% of the time, then bar 25% of the time, then nothing for the other half. Iconic scheduling tbh ๐Ÿ‘‘

  • ${if_xmms2_connected} โ€” if xmms2 is running, everything between $if_xmms2_connected and the matching $endif gets displayed. (Yes bestie, xmms2. We love a retro queen ๐Ÿ’…)
  • ${iface} (number) โ€” shows interface names starting from 1, e.g. ${iface 1}. Numbered like a playlist ๐ŸŽง.
  • ${image} (-p x,y) (-s WxH) (-n) (-f interval) โ€” renders an image from the path you give it, using Imlib2 ๐Ÿ–ผ๏ธ. Takes 4 optional arguments: a position, a size, a no-cache switch, and a cache flush interval. Change the x,y position and the image moves; change the WxH and it scales. Pass the no-cache flag (-n) and the image won't be cached. Or instead use the -f int switch to set a cache flush interval for that particular image.

Example: ${image /home/brenden/cheeseburger.jpg -p 20,20 -s 200x200} renders cheeseburger.jpg at (20,20), scaled to 200x200 pixels ๐Ÿ”.

Heads up: Conky makes zero attempt to adjust the position (or any other formatting) of images โ€” they're just rendered exactly per the arguments you passed. And the only reason $image even lives in the conky.text section is so you can modify stuff at runtime, through $execp, $lua_parse, or some other method. No cap.

  • ${imap_messages} (args) โ€” by default, shows the number of messages in your global IMAP inbox ๐Ÿ“ฌ. You can define individual IMAP inboxes separately by passing arguments to this object. The arguments are:
host user pass [-i interval (in seconds)] [-f `folder'] [-p port] [-e `command'] [-r retries]

Default port is 143, default folder is INBOX, default interval is 5 minutes, and the default number of retries before giving up is 5. If you hand it the password as *, you'll be prompted to type the password when Conky starts ๐Ÿ”.

  • ${imap_unseen} (args) โ€” same deal but for the number of unseen messages in your global IMAP inbox by default ๐Ÿ‘€๐Ÿ“ฌ. You can define individual IMAP inboxes separately by passing arguments to this object. The arguments are:
host user pass [-i interval (in seconds)] [-f `folder'] [-p port] [-e `command'] [-r retries]

Default port is 143, default folder is INBOX, default interval is 5 minutes, and default number of retries before giving up is 5. Password as * means you get prompted when Conky starts, same as above ๐Ÿ”.

  • ${intel_backlight} โ€” shows the brightness of your Intel backlight as a percentage โ˜€๏ธโœจ.
  • ${ioscheduler} disk โ€” prints the current ioscheduler being used for the given disk name (i.e. e.g. hda or sdb). Disk detective behaviour ๐Ÿ”.
  • ${irc} server(:port) #channel (max_msg_lines) โ€” shows everything being said in #channel on IRC server server ๐Ÿ’ฌ. TCP port 6667 is used for the connection unless port is specified. Shows everything since the last time, or the last max_msg_lines entries if you specified that. Very 2009 of you, and we respect it ๐Ÿซก.
  • ${journal} (lines) (type) โ€” displays the last N lines of the systemd journal ๐Ÿ““. N defaults to 1 if you omit it. Use 0 to display all available lines. Negative values get clamped to 1 (sorry, no time travel ๐Ÿ•ฐ๏ธ). The optional type filters which journal is read:
    • system โ€” only the system journal
    • user โ€” only the current user's journal
    • runtime โ€” only the runtime journal
    • local โ€” all local journals (this is the default, same as leaving the type off)

Output is limited by the text buffer size, so don't come crying when your 5000-line dump gets truncated ๐Ÿ˜….

  • ${kernel} โ€” kernel version ๐Ÿง . That's it, that's the whole thing.
  • ${key_caps_lock} โ€” an indicator for the Capital Lock key ๐Ÿ” .
  • ${key_num_lock} โ€” an indicator for the Number Lock key ๐Ÿ”ข.
  • ${key_scroll_lock} โ€” an indicator for the Scrolling Lock key ๐Ÿ“œ.
  • ${keyboard_layout} โ€” displays the keyboard layout โŒจ๏ธ.
  • ${laptop_mode} โ€” the value of /proc/sys/vm/laptop_mode ๐Ÿ’ป.
  • ${legacymem} โ€” amount of memory used, calculated the same way as in the free program. Old-school math, same answer ๐Ÿงฎ.
  • ${lines} textfile โ€” displays the number of lines in the given file ๐Ÿ“„. You don't even have to wc -l it yourself, she did it for you.
  • ${loadavg} (1|2|3) โ€” system load average. 1 is the past 1 minute, 2 is the past 5 minutes, 3 is the past 15 minutes โฑ๏ธ. With no argument at all, it prints all three values separated by whitespace. Choose your fighter.
  • ${loadgraph} (height),(width) (gradient colour 1) (gradient colour 2) (scale) (-t) (-l) (-x) (-y) (-m value) โ€” a Load1 average graph, similar to xload, with optional colours in hex (minus the #) ๐Ÿ“ˆ. Uses a logarithmic scale (so you can actually see the small numbers) when you use the -l switch. Takes the -t switch to use a temperature gradient, which makes the gradient values change depending on the amplitude of a particular graph value (try it and see ๐Ÿ”ฅ). The -x flag inverts the x axis, and -y inverts the y axis of the graph. The -m flag sets a nonzero minimum/lowerbound, making sure all values are at least the minimum you specified (zero excluded).
  • ${lowercase} text โ€” converts all letters into lowercase ๐Ÿ”ก. no more shouting.
  • ${lua} function_name (function parameters) โ€” executes a Lua function with the given parameters, then prints the returned string ๐Ÿงš. See also lua_load for how to load scripts. Conky puts conky_ in front of function_name to prevent accidental calls to the wrong function โ€” unless you put conky_ in front of it yourself.
  • ${lua_bar} (height,width) function_name (function parameters) โ€” executes a Lua function with the given parameters and draws a bar ๐Ÿ“Š. It expects the result value to be an integer between 0 and 100. See also lua_load for how to load scripts. Same conky_ prefix situation โ€” Conky adds it to function_name to prevent accidental calls to the wrong function, unless you put conky_ in front of it yourself.
  • ${lua_gauge} (height,width) function_name (function parameters) โ€” executes a Lua function with the given parameters and draws a gauge ๐ŸŒก๏ธ. Expects the result value to be an integer between 0 and 100. See also lua_load for how to load scripts. And yes: Conky puts conky_ in front of function_name to prevent accidental calls to the wrong function, unless you put conky_ in front of it yourself.
  • ${lua_graph} function_name (height),(width) (gradient colour 1) (gradient colour 2) (scale) (-t) (-l) (-x) (-y) (-m value) โ€” executes a Lua function and draws a graph ๐Ÿ“‰. Expects the result value to be any number, and by default it'll scale to show the full range. See also lua_load for how to load scripts. Takes the -t switch to use a temperature gradient, which makes the gradient values change depending on the amplitude of a particular graph value (try it and see ๐Ÿ”ฅ). Conky puts conky_ in front of function_name to prevent accidental calls to the wrong function โ€” unless you put conky_ in front of it yourself. The -x flag inverts the x axis and -y inverts the y axis of the graph. The -m flag sets a nonzero minimum/lowerbound, ensuring all values are at least the specified minimum (zero excluded).
  • ${lua_parse} function_name (function parameters) โ€” executes a Lua function with the given parameters just like $lua, then parses the result and prints it as per the syntax for the conky.text section ๐Ÿช„. See also lua_load for how to load scripts. Conky puts conky_ in front of function_name to prevent accidental calls to the wrong function, unless you place conky_ in front of it yourself.
  • ${machine} โ€” the machine, e.g. i686, x86_64 ๐Ÿ–ฅ๏ธ.
  • ${mails} (mailbox) (interval) โ€” mail count in the specified mailbox, or in your mail spool if you don't specify one ๐Ÿ’Œ. Both mbox and maildir type mailboxes are supported. You can use a program like fetchmail to pull mails from some server using your favourite protocol. See also new_mails.
  • ${mboxscan} (-n number of messages to print) (-fw from width) (-sw subject width) mbox โ€” prints a summary of recent messages in an mbox format mailbox ๐Ÿ“จ. The mbox parameter is the filename of the mailbox (it can be encapsulated using quotes, i.e. ${mboxscan -n 10โ€/home/brenden/some boxโ€} โ€” yes, spaces in the name, she can handle it ๐Ÿ’…).
  • ${mem} โ€” amount of memory in use ๐Ÿง โœจ.
  • ${memactive} โ€” amount of active memory. FreeBSD only ๐Ÿก.
  • ${memavail} โ€” amount of available memory as recorded in /proc/meminfo. Linux 3.14+ only ๐Ÿง.
  • ${membar} (height),(width) โ€” a bar that shows the amount of memory in use ๐Ÿ“Š.
  • ${memdirty} โ€” amount of "dirty" memory. Linux only ๐Ÿง๐Ÿงผ.
  • ${memeasyfree} โ€” amount of free memory including the memory that's very easily freed (buffers/cache) ๐Ÿƒ.
  • ${memfree} โ€” amount of free memory. Just the plain free stuff ๐Ÿซง.
  • ${memgauge} (height),(width) โ€” a gauge that shows the amount of memory in use (see cpugauge) ๐ŸŒก๏ธ.
  • ${memgraph} (height),(width) (gradient colour 1) (gradient colour 2) (scale) (-t) (-l) (-x) (-y) (-m value) โ€” memory usage graph ๐Ÿ“ˆ. Uses a logarithmic scale (so small numbers are actually visible) when you use the -l switch. Takes the -t switch to use a temperature gradient, which makes the gradient values change depending on the amplitude of a particular graph value (try it and see ๐Ÿ”ฅ). The -x flag inverts the x axis and -y inverts the y axis of the graph. The -m flag sets a nonzero minimum/lowerbound, ensuring all values are at least the specified minimum (zero excluded).
  • ${meminactive} โ€” amount of inactive memory. FreeBSD only ๐Ÿก.
  • ${memlaundry} โ€” amount of memory in the laundry queue ๐Ÿงบ. FreeBSD only ๐Ÿก.
  • ${memmax} โ€” total amount of memory. The whole bag ๐Ÿ’ฐ.
  • ${memperc} โ€” percentage of memory in use ๐Ÿ“Š.
  • ${memwired} โ€” amount of wired memory. FreeBSD only ๐Ÿก๐Ÿ”Œ.
  • ${memwithbuffers} โ€” amount of memory in use, including the memory used by system buffers and caches ๐Ÿ—‚๏ธ.
  • memwithbuffersbar height,width โ€” a bar that shows how much memory is in use, and yes it counts the memory eaten by system buffers and caches too ๐Ÿ’–
  • memwithbuffersgraph height,width gradient colour 1 gradient colour 2 scale -t -l -x -y -m value โ€” memory usage graph, again including system buffers and cache. It goes logarithmic (so the tiny numbers are actually visible) when you slap on the -l switch. The -t switch gives you a temperature gradient, which makes the gradient values shift based on the amplitude of a particular graph value (just try it, you'll see โœจ). The -x flag inverts the x axis and -y inverts the y axis of the graph. And the -m flag sets a nonzero minimum/lowerbound, guaranteeing all values are at least that minimum you specified (zeroes don't count, bestie).
  • mixer device โ€” prints the mixer value, straight from the OS. On Linux this variable rides the OSS emulation, so you need the proper kernel module loaded, no cap. Default mixer is โ€œVolโ€, but you can pick one of the available OSS controls: โ€œVolโ€, โ€œBassโ€, โ€œTreblโ€, โ€œSynthโ€, โ€œPcmโ€, โ€œSpkrโ€, โ€œLineโ€, โ€œMicโ€, โ€œCDโ€, โ€œMixโ€, โ€œPcm2โ€, โ€œRecโ€, โ€œIGainโ€, โ€œOGainโ€, โ€œLine1โ€, โ€œLine2โ€, โ€œLine3โ€, โ€œDigital1โ€, โ€œDigital2โ€, โ€œDigital3โ€, โ€œPhoneInโ€, โ€œPhoneOutโ€, โ€œVideoโ€, โ€œRadioโ€ and โ€œMonitorโ€.

Default: Vol

  • mixerbar device โ€” shows the mixer value in a bar, as reported by the OS. Peep the docs for $mixer for the deets on arguments ๐ŸŽ€
  • mixerl device โ€” prints the left channel mixer value as reported by the OS. Docs for $mixer have the argument details.
  • mixerlbar device โ€” left channel mixer value, but in a bar, as reported by the OS. Again: see $mixer for arguments.
  • mixerr device โ€” prints the right channel mixer value as reported by the OS. $mixer docs, you know the drill.
  • mixerrbar device โ€” right channel mixer value in a bar, as reported by the OS. Arguments = see $mixer.

๐ŸŽต MOC girlies rise up ๐ŸŽต

  • moc_album โ€” album of the current MOC song.
  • moc_artist โ€” artist of the current MOC song.
  • moc_bar height,width โ€” bar of the current MOC song's progress.
  • moc_bitrate โ€” bitrate in the current MOC song.
  • moc_avgbitrate โ€” average bitrate in the current MOC song.
  • moc_curtime โ€” current time of the current MOC song.
  • moc_cursec โ€” current time of the current MOC song, but in seconds.
  • moc_file โ€” file name of the current MOC song.
  • moc_percent โ€” percent of the current MOC song's progress.
  • moc_rate โ€” rate of the current MOC song.
  • moc_song โ€” the current song name being played in MOC.
  • moc_state โ€” current state of MOC; playing, stopped, etc.
  • moc_timeleft โ€” time left in the current MOC song.
  • moc_title โ€” title of the current MOC song.
  • moc_totaltime โ€” total length of the current MOC song.
  • moc_totalsec โ€” total length of the current MOC song, in seconds.

  • monitor โ€” the number of the monitor on which conky is running, or the message โ€œNot running in Xโ€ if that's the situation ๐Ÿ™ˆ
  • monitor_number โ€” number of monitors, or the message โ€œNot running in Xโ€ if that's the situation.
  • mouse_speed โ€” displays mouse speed ๐Ÿญ๐Ÿ’จ

๐ŸŒˆ MPD section (the music one) ๐ŸŒˆ

  • mpd_album โ€” album in the current MPD song.
  • mpd_albumartist โ€” artist of the album of the current MPD song.
  • mpd_artist โ€” artist in the current MPD song, must be enabled at compile. (iykyk)
  • mpd_bar height,width โ€” bar of mpd's progress.
  • mpd_bitrate โ€” bitrate of the current song.
  • mpd_comment max-length โ€” comment of the current MPD song.
  • mpd_date โ€” date of the current song.
  • mpd_elapsed โ€” the song's elapsed time.
  • mpd_file โ€” prints the file name of the current MPD song.
  • mpd_length โ€” the song's length.
  • mpd_name โ€” prints the MPD name field.
  • mpd_percent โ€” percent of the song's progress.
  • mpd_random โ€” random status (On/Off).
  • mpd_repeat โ€” repeat status (On/Off).
  • mpd_smart max length โ€” prints the song name as either โ€œartist - titleโ€ or the file name, depending on what's available. Smart, see? ๐Ÿ’…
  • mpd_status โ€” playing, stopped, et cetera.
  • mpd_title max length โ€” title of the current MPD song.
  • mpd_track โ€” prints the MPD track field.
  • mpd_vol โ€” MPD's volume.

  • mysql query โ€” shows the first field of the first row of the result of the query. Just the first one. Iconic minimalism.
  • nameserver index โ€” print a nameserver from /etc/resolv.conf.
  • new_mails mailbox interval โ€” unread mail count in the specified mailbox, or the mail spool if you don't specify one. Both mbox and maildir type mailboxes are supported ๐Ÿ“ฌ
  • no_update text โ€” shows the text and parses the vars in it, but doesn't update them. Use this for stuff that genuinely does not change while conky is running, like $machine, $conky_version,... By not updating this you can save some resources. Efficiency queen behavior ๐Ÿ‘‘
  • nodename โ€” hostname.
  • nodename_short โ€” short hostname (same as the hostname -s shell command).

๐ŸŽฎ nvidia (yes, the whole table, buckle up) ๐ŸŽฎ

nvidia argument GPU_ID โ€” Nvidia graphics card info, pulled via the XNVCtrl library or the NVML library.

Temperatures are printed as float, all other values as integers.

GPU_ID: optional parameter to choose the GPU to be used, as 0,1,2,3,... Default parameter is 0.

Possible arguments:

  • gputemp โ€” alias temp โ€” GPU temperature. XNVCtrl: Yes ยท NVML: Yes
  • gputempthreshold โ€” alias threshold โ€” Temperature threshold where the GPU will reduce its clock speed. XNVCtrl: Yes ยท NVML: Yes
  • ambienttemp โ€” alias ambient โ€” Ambient temperature outside the graphics card. XNVCtrl: Yes ยท NVML: No
  • gpufreqcur โ€” alias gpufreq โ€” Current GPU clock speed. XNVCtrl: Yes ยท NVML: Yes
  • gpufreqmin โ€” Minimum GPU clock speed. XNVCtrl: Yes ยท NVML: Yes
  • gpufreqmax โ€” Maximum GPU clock speed. XNVCtrl: Yes ยท NVML: Yes
  • memfreqcur โ€” alias memfreq โ€” Current memory clock speed. XNVCtrl: Yes ยท NVML: Yes
  • memfreqmin โ€” Minimum memory clock speed. XNVCtrl: Yes ยท NVML: Yes
  • memfreqmax โ€” Maximum memory clock speed. XNVCtrl: Yes ยท NVML: Yes
  • mtrfreqcur โ€” alias mtrfreq โ€” Current memory transfer rate clock speed. XNVCtrl: Yes ยท NVML: No
  • mtrfreqmin โ€” Minimum memory transfer rate clock speed. XNVCtrl: Yes ยท NVML: No
  • mtrfreqmax โ€” Maximum memory transfer rate clock speed. XNVCtrl: Yes ยท NVML: No
  • perflevelcur โ€” alias perflevel โ€” Current performance level. XNVCtrl: Yes ยท NVML: Yes
  • perflevelmin โ€” Lowest performance level. XNVCtrl: Yes ยท NVML: Yes
  • perflevelmax โ€” Highest performance level. XNVCtrl: Yes ยท NVML: Yes
  • perfmode โ€” Performance mode. XNVCtrl: Yes ยท NVML: No
  • gpuutil โ€” GPU utilization %. XNVCtrl: Yes ยท NVML: Yes
  • membwutil โ€” Memory bandwidth utilization %. XNVCtrl: Yes ยท NVML: No
  • videoutil โ€” Video engine utilization %. XNVCtrl: Yes ยท NVML: No
  • videodecutil โ€” Video decoder utilization %. XNVCtrl: No ยท NVML: Yes
  • videoencutil โ€” Video encoder utilization %. XNVCtrl: No ยท NVML: Yes
  • pcieutil โ€” PCIe bandwidth utilization %. XNVCtrl: Yes ยท NVML: No
  • pciethroughputtx โ€” Data sent from the GPU (transmit) per second. XNVCtrl: No ยท NVML: Yes
  • pciethroughputrx โ€” Data received by the GPU (receive) per second. XNVCtrl: No ยท NVML: Yes
  • memused โ€” alias mem โ€” Amount of used memory. XNVCtrl: Yes ยท NVML: Yes
  • memfree โ€” alias memavail โ€” Amount of free memory. XNVCtrl: Yes ยท NVML: Yes
  • memmax โ€” alias memtotal โ€” Total amount of memory. XNVCtrl: Yes ยท NVML: Yes
  • memutil โ€” alias memperc โ€” Memory utilization %. XNVCtrl: Yes ยท NVML: Yes
  • fanspeed โ€” Fan speed. XNVCtrl: Yes ยท NVML: Yes
  • fanlevel โ€” Fan level %. XNVCtrl: Yes ยท NVML: Yes
  • imagequality โ€” Image quality. XNVCtrl: Yes ยท NVML: No
  • modelname โ€” Model name of the GPU card. XNVCtrl: Yes ยท NVML: Yes
  • driverversion โ€” Driver version. XNVCtrl: Yes ยท NVML: Yes
  • arch โ€” GPU architecture name. XNVCtrl: No ยท NVML: Yes
  • powerlimit โ€” Power limit in Watts. XNVCtrl: No ยท NVML: Yes
  • powerinstant โ€” Power usage in Watts. XNVCtrl: No ยท NVML: Yes
  • poweravg โ€” Power usage averaged over one second in Watts. XNVCtrl: No ยท NVML: Yes

nvidiabar height,width argument GPU_ID โ€” same as nvidia, except it draws its output in a horizontal bar ๐Ÿซถ The height and width parameters are optional, and default to the default_bar_height and default_bar_width config settings, respectively.

GPU_ID: optional parameter to choose the GPU to be used, as 0,1,2,3,... Default parameter is 0.

Heads up bestie ๐Ÿ’€ the following arguments are incompatible:
  • gputempthreshold (threshold)
  • gpufreqmin
  • gpufreqmax
  • memfreqmin
  • memfreqmax
  • mtrfreqmin
  • mtrfreqmax
  • perflevelmin
  • perflevelmax
  • perfmode
  • memtotal (memmax)
  • fanspeed
  • powerlimit
  • pciethroughputtx
  • pciethroughputrx
  • nvidiagauge (height),(width) argument (GPU_ID) โ€” literally the same energy as nvidiabar but make it round, like the speedometer in a car ๐Ÿš—. The height and width params are optional bestie, they default to the default_gauge_height and default_gauge_width config settings respectively.

GPU_ID is optional too โ€” it picks which GPU to use, written as 0,1,2,3,.. and the default is 0.

For the possible arguments, go look at nvidia and nvidiabar ๐Ÿ’….

  • nvidiagraph argument (height),(width) (gradient color 1) (gradient color 2) (scale) (-t) (-l) (-x) (-y) (-m) GPU_ID โ€” same as nvidiabar except it's a horizontally scrolling graph with values from 0-100 plotted on the vertical axis ๐Ÿ“ˆ. The height and width params are optional and default to the default_graph_height and default_graph_width config settings, respectively.

GPU_ID is NOT optional here, bestie, don't test me. This param lets you choose the GPU to be used, written as 0,1,2,3,..

For the possible arguments see nvidia and nvidiabar. And to learn more about the -t -l -x -y and gradient color options, see execgraph.

  • offset (pixels) โ€” moves text over by N pixels โžก๏ธ. See also $voffset.
  • outlinecolor (color) โ€” changes the outline color ๐Ÿ–๏ธ.
  • pa_card_active_profile โ€” Pulseaudio's default card active profile.
  • pa_card_name โ€” Pulseaudio's default card name ๐ŸŽง.
  • pa_sink_active_port_description โ€” Pulseaudio's default sink active port description.
  • pa_sink_active_port_name โ€” Pulseaudio's default sink active port name.
  • pa_sink_description โ€” Pulseaudio's default sink description.
  • pa_sink_volume โ€” Pulseaudio's default sink volume percentage ๐Ÿ”Š.
  • pa_sink_volumebar โ€” Pulseaudio's default sink volume bar.
  • password (length) โ€” generates random passwords ๐Ÿ”.
  • pb_battery item โ€” if you're running on an Apple powerbook/ibook, this shows you the battery status ๐ŸŽ. The item parameter says what info to display, and exactly one item must be specified. Valid items are:
    • status โ€” display if battery is fully charged, charging, discharging or absent (running on AC).
    • percent โ€” display charge of battery in percent, if charging or discharging. Nothing will be displayed if battery is fully charged or absent.
    • time โ€” display the time remaining until the battery will be fully charged or discharged at current rate. Nothing is displayed if battery is absent or if it's present but fully charged and not discharging.
  • pid_chroot pid โ€” the directory used as rootdirectory by the process (this will be / unless the process did a chroot syscall).
  • pid_cmdline pid โ€” the command line this process was invoked with.
  • pid_cwd pid โ€” the current working directory of the process ๐Ÿ“.
  • pid_egid pid โ€” the effective gid of the process.
  • pid_environ pid varname โ€” contents of an environment-var of the process.
  • pid_environ_list pid โ€” list of environment-vars that the process can see.
  • pid_euid pid โ€” the effective uid of the process.
  • pid_exe pid โ€” path to the executed command that started the process.
  • pid_fsgid pid โ€” the file system gid of the process.
  • pid_fsuid pid โ€” the file system uid of the process.
  • pid_gid pid โ€” the real gid of the process.
  • pid_nice pid โ€” the nice value of the process ๐Ÿ˜‡.
  • pid_openfiles pid โ€” list of files that the process has open.
  • pid_parent pid โ€” the pid of the parent of the process ๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ง.
  • pid_priority pid โ€” the priority of the process (see priority in "man 5 proc").
  • pid_read pid โ€” total number of bytes read by the process.
  • pid_sgid pid โ€” the saved set gid of the process.
  • pid_state pid โ€” the state of the process.
  • pid_state_short pid โ€” one of the chars in RSDZTW representing the state of the process, where R is running, S is sleeping in an interruptible wait, D is waiting in uninterruptible disk sleep, Z is zombie ๐ŸงŸ, T is traced or stopped (on a signal), and W is paging.
  • pid_stderr pid โ€” filedescriptor binded to the STDERR of the process.
  • pid_stdin pid โ€” filedescriptor binded to the STDIN of the process.
  • pid_stdout pid โ€” filedescriptor binded to the STDOUT of the process.
  • pid_suid pid โ€” the saved set uid of the process.
  • pid_thread_list pid โ€” list with pid's from threads from this process ๐Ÿงต.
  • pid_threads pid โ€” number of threads in the process containing this thread.
  • pid_time pid โ€” sum of $pid_time_kernelmode and $pid_time_usermode.
  • pid_time_kernelmode pid โ€” amount of time that the process has been scheduled in kernel mode, in seconds.
  • pid_time_usermode pid โ€” amount of time that the process has been scheduled in user mode, in seconds.
  • pid_uid pid โ€” the real uid of the process.
  • pid_vmdata pid โ€” data segment size of the process.
  • pid_vmexe pid โ€” text segment size of the process.
  • pid_vmhwm pid โ€” peak resident set size ("high water mark") of the process.
  • pid_vmlck pid โ€” locked memory size of the process.
  • pid_vmlib pid โ€” shared library code size of the process.
  • pid_vmpeak pid โ€” peak virtual memory size of the process.
  • pid_vmpte pid โ€” page table entries size of the process.
  • pid_vmrss pid โ€” resident set size of the process.
  • pid_vmsize pid โ€” virtual memory size of the process.
  • pid_vmstk pid โ€” stack segment size of the process.
  • pid_write pid โ€” total number of bytes written by the process.
  • platform (dev) type n (factor offset) โ€” platform sensor straight from sysfs (Linux 2.6) ๐ŸŒก๏ธ. The dev parameter may be omitted if you've only got one platform device. Platform type is either in or vol meaning voltage; power meaning power; fan meaning fan; temp meaning temperature. Parameter n is the number of the sensor. Peep /sys/bus/platform/devices/ on your local computer. The optional arguments factor and offset let you precalculate the raw input, which gets modified like this: input = input * factor + offset. Note that they have to be given as decimal values (i.e. contain at least one decimal place).
  • platformbar (height),(width) (dev) type n (factor offset) โ€” same as platform but it displays the sensor reading as a horizontal bar ๐Ÿ“Š. Use factor and offset to scale the value reported by platform into the 0-100 range. Temperature values are already converted from millidegrees. Height and width default to default_bar_height and default_bar_width respectively.
  • pop3_unseen (args) โ€” shows the number of unseen messages in your global POP3 inbox by default ๐Ÿ“ฌ. You can define individual POP3 inboxes separately by passing arguments to this object. The arguments are: "host user pass [-i interval (in seconds)] [-p port] [-e 'command'] [-r retries]". Default port is 110, default interval is 5 minutes, and the default number of retries before giving up is 5. If the password is supplied as '*', you'll be prompted to enter the password when Conky starts.
  • pop3_used (args) โ€” shows the amount of space (in MiB, 2^20) used in your global POP3 inbox by default. You can define individual POP3 inboxes separately by passing arguments to this object. The arguments are: "host user pass [-i interval (in seconds)] [-p port] [-e 'command'] [-r retries]". Default port is 110, default interval is 5 minutes, and the default number of retries before giving up is 5. If the password is supplied as '*', you'll be prompted to enter the password when Conky starts.
  • processes โ€” total processes (sleeping and running) ๐Ÿƒ.
  • read_tcp (host) port โ€” connects to a tcp port on a host (default is localhost), reads every char available at the moment and shows them.
  • read_udp (host) port โ€” connects to a udp port on a host (default is localhost), reads every char available at the moment and shows them.
  • replied_mails (maildir) (interval) โ€” number of mails marked as replied in the specified mailbox, or the mail spool if not specified. Only maildir type mailboxes are supported, mbox type will return -1 ๐Ÿ™ˆ.
  • rss uri interval_in_seconds action (num_par (spaces_in_front)) โ€” downloads and parses RSS feeds ๐Ÿ“ฐ. The interval may be a (floating point) value greater than 0. Action may be one of the following: feed_title, item_title (with num par), item_desc (with num par) and item_titles (when using this action and spaces_in_front is given, conky places that many spaces in front of each item). This object is threaded, and once a thread is created it can't be explicitly destroyed. One thread will run for each URI specified. You can use any protocol that Curl supports.
  • rstrip text โ€” strips all trailing whitespace from input โœ‚๏ธ.
  • running_processes โ€” running processes (not sleeping). Requires Linux 2.6.
  • running_threads โ€” number of running (runnable) threads. Linux only ๐Ÿง.
  • scroll (direction) length (step) (interval) text โ€” scrolls text by step characters to the left or right (set direction to left or right or wait) showing length number of characters at the same time. The text may also contain variables. step is optional and defaults to 1 if not set. direction is optional and defaults to left if not set. When direction is wait then text will scroll left and wait for interval iterations at the beginning and end of the text. If a var creates output on multiple lines then the lines are placed behind each other separated with a |-sign. If you change the textcolor inside $scroll it will automatically have its old value back at the end of $scroll. The end and the start of text will be separated by length number of spaces unless direction is wait.
  • seen_mails (maildir) (interval) โ€” how many mails are marked as seen in the mailbox you point it at (or in the mail spool if you don't specify one) ๐Ÿ’Œ heads up though: only maildir-type mailboxes are supported โ€” mbox type just returns -1, sad but true ๐Ÿ˜ญ
  • shadecolor (color) โ€” changes the shading color ๐ŸŽจ
  • shmem โ€” how much shared memory is in use. Linux only ๐Ÿง
  • sip_status (switch) โ€” prints info about System Integrity Protection (SIP) on macOS ๐ŸŽ. If you don't hand it a switch, it prints the overall SIP status (enabled / disabled); if you do pass one, you get the status of that specific SIP feature. The switches go like this:
    • 0 โ€” apple internal โ€” YES/NO
    • 1 โ€” forbid untrusted kexts โ€” YES/NO
    • 2 โ€” forbid task-for-pid โ€” YES/NO
    • 3 โ€” restrict filesystem โ€” YES/NO
    • 4 โ€” forbid kernel-debugger โ€” YES/NO
    • 5 โ€” restrict dtrace โ€” YES/NO
    • 6 โ€” restrict nvram โ€” YES/NO
    • 7 โ€” forbid device-configuration โ€” YES/NO
    • 8 โ€” forbid any-recovery-os โ€” YES/NO
    • 9 โ€” forbid user-approved-kexts โ€” YES/NO

And there's an "uses unsupported configuration?" check too: if yes, it prints โ€œunsupported configuration, beware!โ€, otherwise it prints โ€œconfiguration is okโ€ โœจ

USAGE:

$ conky -t '${sip_status}'
# print SIP status
$ conky -t '${sip_status 0}'
# print allows apple-internal? Yes or No?

NOTES:

  • Available for all macOS versions (even the ones prior El Capitan where SIP was first introduced) ๐Ÿซถ
  • If run on versions prior El Capitan SIP is unavailable, so all you will get is โ€œunsupportedโ€.
  • smapi (ARGS) โ€” when you're using smapi, this displays the contents of the /sys/devices/platform/smapi directory ๐Ÿ’ป. ARGS are either (FILENAME) or bat (INDEX) (FILENAME), and it shows you the content of the corresponding files. Real talk: this is a very raw method of accessing the smapi values โ€” when available, better use one of the smapi_* variables instead ๐Ÿ™ˆ
  • smapi_bat_bar (INDEX),(height),(width) โ€” when using smapi, displays the remaining capacity of the battery with index INDEX as a bar ๐Ÿ“Š
  • smapi_bat_perc (INDEX) โ€” when using smapi, displays the remaining capacity of the battery with index INDEX in percent. This is a separate variable because it supports the use_spacer configuration option ๐Ÿ”‹
  • smapi_bat_power INDEX โ€” when using smapi, displays the current power of the battery with index INDEX in watt โšก. This is a separate variable because the original read out value is being converted from mW. The sign of the output reflects charging (positive) or discharging (negative) state.
  • smapi_bat_temp INDEX โ€” when using smapi, displays the current temperature of the battery with index INDEX in degree Celsius ๐ŸŒก๏ธ. This is a separate variable because the original read out value is being converted from milli degree Celsius.
  • sony_fanspeed โ€” displays the Sony VAIO fanspeed information if sony-laptop kernel support is enabled. Linux only ๐ŸŒ€
  • startcase text โ€” capitalises the start of each word ๐Ÿ”ค
  • stippled_hr (space) (height) (width) โ€” stippled (dashed) horizontal line โž–
  • stock โ€” (Removed in 1.24.3.) Used to display stock data by querying the public Yahoo API. The API is no longer provided by Yahoo, and there's no readily available free alternative, so this variable was removed ๐Ÿ’€

You can use $execi with a script that uses your private access token to some paid API.

  • swap โ€” amount of swap in use ๐Ÿ’พ
  • swapbar (height),(width) โ€” a bar that shows the amount of swap in use ๐Ÿ“ถ
  • swapfree โ€” amount of free swap.
  • swapmax โ€” total amount of swap.
  • swapperc โ€” percentage of swap in use.
  • sysctlbyname (name) โ€” print sysctl value by name. FreeBSD only ๐Ÿก
  • sysname โ€” system name, e.g. Linux ๐Ÿท๏ธ
  • tab (width, (start)) โ€” puts a tab of the specified width, starting from column start. The unit is pixels for both arguments ๐Ÿ“
  • tail logfile lines (next_check) โ€” displays the last N lines of the supplied text file ๐Ÿ“„. The file is checked every next_check update. If next_check isn't supplied, Conky defaults to 2. Max of 30 lines can be displayed, or until the text buffer is filled.
  • tcp_ping host (port) โ€” displays the number of microseconds it takes to get a reply on a ping to tcp port on host โฑ๏ธ. port is optional and has 80 as default. This works on both open and closed ports โ€” just make sure that the port is not behind a firewall or you will get down as answer. It's best to test a closed port instead of an open port, you will get a quicker response ๐Ÿƒโ€โ™€๏ธ
  • tcp_portmon port_begin port_end item (index) โ€” TCP port (both IPv6 and IPv4) monitor for specified local ports ๐ŸŒ. Port numbers must be in the range 1 to 65535. Valid items are:
    • count โ€” total number of connections in the range
    • rip โ€” remote ip address
    • rhost โ€” remote host name
    • rport โ€” remote port number
    • rservice โ€” remote service name from /etc/services
    • lip โ€” local ip address
    • lhost โ€” local host name
    • lport โ€” local port number
    • lservice โ€” local service name from /etc/services

The connection index gives you access to each connection in the port monitor. The monitor returns info for index values from 0 to n-1 connections. Values higher than n-1 are simply ignored ๐Ÿ™…โ€โ™€๏ธ. For the count item, the connection index must be omitted. It is required for all other items.

Examples:

  • ${tcp_portmon 6881 6999 count} โ€” displays the number of connections in the bittorrent port range
  • ${tcp_portmon 22 22 rip 0} โ€” displays the remote host ip of the first sshd connection
  • ${tcp_portmon 22 22 rip 9} โ€” displays the remote host ip of the tenth sshd connection
  • ${tcp_portmon 1 1024 rhost 0} โ€” displays the remote host name of the first connection on a privileged port
  • ${tcp_portmon 1 1024 rport 4} โ€” displays the remote host port of the fifth connection on a privileged port
  • ${tcp_portmon 1 65535 lservice 14} โ€” displays the local service name of the fifteenth connection in the range of all ports
Note that port monitor variables which share the same port range actually refer to the same monitor, so many references to a single port range for different items and different indexes all use the same monitor internally ๐Ÿง . In other words, the program avoids creating redundant monitors โ€” efficient queen behaviour ๐Ÿ‘‘
  • templateN (arg1) (arg2) (arg3 ...) โ€” evaluates the content of the templateN configuration variable (where N is a value between 0 and 9, inclusively), applying substitutions as described in the documentation of the corresponding configuration variable ๐Ÿงฉ. The number of arguments is optional, but must match the highest referred index in the template. You can use the same special sequences in each argument as the ones valid for a template definition, e.g. to allow an argument to contain a whitespace. Also simple nesting of templates is possible this way ๐Ÿช†

Here are some examples of template definitions, note they are placed between [[ ... ]] instead of ...:

template0 = [[$12]]
template1 = [[1: ${fs_used 2} / ${fs_size 2}]]
template2 = [[1 2]]

The following list shows sample usage of the templates defined above, with the equivalent syntax when not using any template at all:

  • ${template0 node name} โ€” same as $nodename
  • ${template1 root /} โ€” same as root: ${fs_free /} / ${fs_size /}
  • ${template1 ${template2 disk root} /} โ€” same as disk root: ${fs_free /} / ${fs_size /}
  • texeci interval command โ€” runs a command at an interval inside a thread and displays the output ๐Ÿงต. Same as $execi, except the command is run inside a thread. Use this if you have a slow script to keep Conky updating. You should make the interval slightly longer than the time it takes your script to execute โ€” for example, if you have a script that takes 5 seconds to execute, you should make the interval at least 6 seconds โณ. See also $execi. This object will clean up the thread when it is destroyed, so it can safely be used in a nested fashion, though it may not produce the desired behaviour if used this way.
  • texecpi interval command โ€” same as execpi, except the command is run inside a thread ๐Ÿงถ
  • threads โ€” total threads ๐Ÿ”ฉ
  • time (format) โ€” local time ๐Ÿ•. See โ€œman strftimeโ€ to get more information about format.
  • to_bytes size โ€” if size is a number followed by a size-unit (kilobyte,mb,GiB,...) then it converts the size to bytes and shows it without unit, otherwise it just shows size ๐Ÿ“
  • top type num โ€” okay so you call it like top (name) (number) and it ranks your processes from highest to lowest by CPU usage โ€” that's literally what (num) means, the rank ๐Ÿ’…. The types are: โ€œnameโ€, โ€œpidโ€, โ€œcpuโ€, โ€œmemโ€, โ€œmem_resโ€, โ€œmem_vsizeโ€, โ€œtimeโ€, โ€œuidโ€, โ€œuserโ€, โ€œio_percโ€, โ€œio_readโ€ and โ€œio_writeโ€. There can be a max of 10 processes listed. That's the ceiling, periodt.
  • top_io type num โ€” same energy as top, except it sorts by how much I/O the process has done during the update interval. I/O girlies rise up ๐Ÿฆ‹
  • top_mem type num โ€” again same as top, but sorted by mem usage instead of cpu. Memory hogs, this one's for you ๐Ÿ“
  • top_time type num โ€” same as top, except sorted by total CPU time instead of current CPU usage. Lowkey the long-game ranking โญ
  • totaldown (net) โ€” total download. Heads up though: it overflows at 4 GB on Linux with 32-bit arch, and there doesn't seem to be a way to know how many times it has already done that before conky has started ๐Ÿ˜ญ so like, take the number with a grain of salt.
  • totalup (net) โ€” total upload, and yeah, this one too may overflow ๐Ÿ™ˆ same vibe, same caveat.
  • trashed_mails (maildir) (interval) โ€” number of mails marked as trashed in the specified mailbox, or mail spool if you don't specify one. Only maildir type mailboxes are supported โ€” mbox type will return -1. Noted ๐Ÿ’€
  • tztime (timezone (format)) โ€” local time for the specified timezone. Peep man strftime for more info about the format. The timezone argument works in similar fashion as the TZ environment variable. For hints, look in /usr/share/zoneinfo. e.g. US/Pacific, Europe/Zurich, etc. Timezone slay ๐ŸŒ
  • uid_name uid โ€” username of the user with this uid. Iconic little lookup ๐Ÿ”
  • unflagged_mails (maildir) (interval) โ€” number of mails not marked as flagged in the specified mailbox, or mail spool if not specified. Only maildir type mailboxes are supported, mbox type will return -1.
  • unforwarded_mails (maildir) (interval) โ€” number of mails not marked as forwarded in the specified mailbox or mail spool if not. Only maildir type mailboxes are supported, mbox type will return -1.
  • unreplied_mails (maildir) (interval) โ€” number of mails not marked as replied in the specified mailbox or mail spool if not. Only maildir supported, mbox type will return -1.
  • unseen_mails (maildir) (interval) โ€” number of new or unseen mails in the specified mailbox or mail spool if not. Again: only maildir type mailboxes are supported, mbox type will return -1 ๐ŸŽ€
  • updates โ€” number of updates. For debugging. That's the whole thing, bestie, it's a debugging counter, not a personality ๐Ÿ’…
  • uppercase text โ€” converts all letters into uppercase. LOUD MODE ACTIVATED ๐Ÿ“ข
  • upspeed (net) โ€” upload speed in suitable IEC units.
  • upspeedf (net) โ€” upload speed in KiB with one decimal. F for float, iykyk โœจ
  • upspeedgraph (netdev) (height),(width) (gradient colour 1) (gradient colour 2) (scale) (-t) (-l) (-x) (-y) (-m) โ€” upload speed graph ๐Ÿ’– colours are defined in hex, minus the #. If scale is non-zero, it defines the maximum value of the graph (in bytes per second). It uses a logarithmic scale (to see small numbers) when you use the -l switch. Takes the switch -t to use a temperature gradient, which makes the gradient values change depending on the amplitude of a particular graph value (try it and see ๐Ÿ‘€). The flag -x inverts the x axis and -y inverts the y axis of the graph. The flag -m sets a nonzero minimum/lowerbound, ensuring that all values are at least the specified minimum (excluding zero). So many flags, so little time ๐Ÿ”ฅ
  • uptime โ€” uptime. Short and sweet, we love a low-effort king ๐Ÿ‘‘
  • uptime_short โ€” uptime in a shorter format. Same but condensed ๐Ÿซถ
  • user_names โ€” lists the names of the users logged in.
  • user_number โ€” number of users logged in.
  • user_terms โ€” lists the consoles in use.
  • user_time console โ€” lists how long the user for the given console has been logged in for.
  • user_times โ€” lists how long users have been logged in for. Plural version, ate ๐Ÿ’…
  • utime (format) โ€” display time in UTC (universal coordinate time). No local-time nonsense, we're going global ๐ŸŒˆ
  • v6addrs (-n) (-s) (interface) โ€” IPv6 addresses for an interface, followed by netmask if -n is specified and scope with -s. Scopes are Global(G), Host-local(H), Link-local(L), Site-local(S), Compat(C) and Unspecified(/). Linux only. ๐Ÿง
  • version โ€” Git version number. DragonFly only. ๐Ÿ‰
  • voffset (pixels) โ€” change vertical offset by N pixels. Negative values will cause text to overlap ๐Ÿ˜ฌ you've been warned. See also $offset.
  • voltage_mv (n) โ€” returns CPU #n's voltage in mV. CPUs are counted from 1.

Default: 1

  • voltage_v (n) โ€” returns CPU #n's voltage in V. CPUs are counted from 1.

Default: 1

  • wireless_ap (net) โ€” wireless access point MAC address. Linux only.
  • wireless_bitrate (net) โ€” wireless bitrate (ie 11 Mb/s). Linux only.
  • wireless_channel (net) โ€” WLAN channel on which device net is listening.
  • wireless_essid (net) โ€” wireless access point ESSID. Linux only.
  • wireless_freq (net) โ€” frequency on which device net is listening.
  • wireless_link_bar (net) (height),(width) โ€” wireless link quality bar. Linux only.
  • wireless_link_qual (net) โ€” wireless link quality. Linux only.
  • wireless_link_qual_max (net) โ€” wireless link quality maximum value. Linux only.
  • wireless_link_qual_perc (net) โ€” wireless link quality in percents. Linux only.
  • wireless_mode (net) โ€” wireless mode (Managed/Ad-Hoc/Master). Linux only.
  • words textfile โ€” displays the number of words in the given file. Word count bestie ๐Ÿ“š
  • xmms2_album โ€” album in current XMMS2 song.
  • xmms2_artist โ€” artist in current XMMS2 song.
  • xmms2_bar (height),(width) โ€” bar of XMMS2's progress.
  • xmms2_bitrate โ€” bitrate of current song.
  • xmms2_comment โ€” comment in current XMMS2 song.
  • xmms2_date โ€” returns song's date.
  • xmms2_duration โ€” duration of current song.
  • xmms2_elapsed โ€” song's elapsed time.
  • xmms2_genre โ€” genre in current XMMS2 song.
  • xmms2_id โ€” XMMS2 id of current song.
  • xmms2_percent โ€” percent of song's progress.
  • xmms2_playlist โ€” returns the XMMS2 playlist.
  • xmms2_size โ€” size of current song.
  • xmms2_smart โ€” prints the song name in either the form โ€œartist - titleโ€ or file name, depending on whats available. Smart by name, smart by nature โœจ
  • xmms2_status โ€” XMMS2 status (Playing, Paused, Stopped, or Disconnected).
  • xmms2_timesplayed โ€” number of times a song was played (presumably). "Presumably" is doing so much work in that sentence ๐Ÿ˜ญ
  • xmms2_title โ€” title in current XMMS2 song.
  • xmms2_tracknr โ€” track number in current XMMS2 song.
  • xmms2_url โ€” full path to current song.

โœจ LUA API โœจ

Conky features a Lua programming API and also ships with Lua bindings for some useful libraries ๐Ÿงš Note that the bindings require tolua++.

To use Lua with Conky, first make sure you have a version of Conky with Lua support enabled (conky -v will report this, bestie โ€” check it first, don't come crying to me ๐Ÿ’…). Conky defines certain global functions and variables that can be accessed from Lua code running inside Conky. Scripts must first be loaded using the lua_load configuration option. You can then call Lua functions through Conky's $lua, $lua_read, and Lua hooks.

โš ๏ธ Be careful when creating threaded objects through the Lua API. You could end up with a large number of threads running if a thread is created with each iteration. Like, actually be careful, that's how you end up with a thread explosion ๐Ÿ’€

Note: to accommodate certain features in the Cairo library's API, Conky will export a few additional functions for the creation of certain structures. These are documented below.


  • RsvgDimensionData:create() โ€” call this method to return a new RsvgDimensionData structure. A creation function for this structure is not provided by the Rsvg API.

After calling this, you should use tolua.takeownership(rect) on the return value to ensure ownership is passed properly.

  • RsvgDimensionData:destroy() โ€” call this method to free memory allocated by RsvgDimensionData:create.

You should call tolua.releaseownership(dd) before calling this function to avoid double-frees, but only if you previously called tolua.takeownership(dd) ๐Ÿ˜ฌ

  • RsvgDimensionData:get() โ€” gets the values of an existing RsvgDimensionData.
  • RsvgDimensionData:set(x, y, width, height) โ€” sets the values of an existing RsvgDimensionData.
  • RsvgRectangle:create() โ€” call this method to return a new RsvgRectangle structure. A creation function for this structure is not provided by the Rsvg API.

After calling this, you should use tolua.takeownership(rect) on the return value to ensure ownership is passed properly.

  • RsvgRectangle:destroy() โ€” call this method to free memory allocated by RsvgRectangle:create.

You should call tolua.releaseownership(rect) before calling this function to avoid double-frees, but only if you previously called tolua.takeownership(rect) ๐Ÿซถ

  • RsvgRectangle:get() โ€” gets the values of an existing RsvgRectangle.
  • RsvgRectangle:set(x, y, width, height) โ€” sets the values of an existing RsvgRectangle.
  • cairo_font_extents_t:create() โ€” call this function to return a new cairo_font_extents_t structure. A creation function for this structure is not provided by the cairo API.

After calling this, you should use tolua.takeownership(cfe) on the return value to ensure ownership is passed properly.

  • cairo_font_extents_t:destroy(structure) โ€” call this function to free memory allocated by cairo_font_extents_t:create.

You should call tolua.releaseownership(cfe) before calling this function to avoid double-frees, but only if you previously called tolua.takeownership(cfe) ๐Ÿ’€

  • cairo_matrix_t:create() โ€” call this function to return a new cairo_matrix_t structure. A creation function for this structure is not provided by the cairo API.

After calling this, you should use tolua.takeownership(cm) on the return value to ensure ownership is passed properly.

  • cairo_matrix_t:destroy(structure) โ€” call this function to free memory allocated by cairo_matrix_t:create.

You should call tolua.releaseownership(cm) before calling this function to avoid double-frees, but only if you previously called tolua.takeownership(cm) ๐ŸŒธ

  • cairo_place_image(file, cr, x, y, width, height, alpha) โ€” renders an image onto a cairo_t, using imlib2. In some cases using a cairo_t and exact coordinates is more useful. Precise placement, we stan ๐ŸŽ€

so the image helper's argument table goes like this, bestie โ€” no skips, every line:

  • file โ€” Path to the image to render.
  • cr โ€” The cairo_t to render to.
  • x,y โ€” Position to render the image.
  • width, height โ€” The width and height to draw the image
  • alpha โ€” The transparency of the image 1.0 is solid 0.0 is fully translucent.

And yeah, you gotta do this in your lua file:

require(`cairo_imlib2_helper') in your lua file.

cairo_text_extents_t:create()

Call this function to return a new cairo_text_extents_t structure. A creation function for this structure is not provided by the cairo API.

After calling this, you should use tolua.takeownership(cte) on the return value to ensure ownership is passed properly. slay ownership semantics, honestly ๐ŸŽ€

cairo_text_extents_t:destroy(structure)

Call this function to free memory allocated by cairo_text_extents_t:create.

You should call tolua.releaseownership(cte) before calling this function to avoid double-frees, but only if you previously called tolua.takeownership(cte). double-free jumpscare, be so for real ๐Ÿ˜ญ

conky_build_arch

A string containing the build architecture for this Conky instance.

conky_build_info

A string containing build information for this Conky instance, including the version, build date, and architecture.

conky_config

A string containing the path of the current Conky configuration file.

conky_info

This table contains some information about Conky's internal data. The following table describes the values contained:

  • update_interval โ€” Conky's update interval (in seconds).

conky_parse(string)

This function takes a string that is evaluated as per Conky's TEXT section, and then returns a string with the result.

conky_set_update_interval(number)

Sets Conky's update interval (in seconds) to number.

conky_surface()

Returns the current cairo_surface_t for the active display output, or nil if no graphical surface is available. This is the preferred, backend-agnostic way to obtain a drawing surface for use with Cairo.

The returned surface is only valid for the current draw cycle. Do not cache it across frames; call conky_surface() each time your draw hook is invoked. do not cache it, bestie, it will betray you ๐Ÿ’€

Example usage:

require('cairo')
function conky_draw()
  local surface = conky_surface()
  if not surface then return end
  local cr = cairo_create(surface)
  -- draw ...
  cairo_destroy(cr)
end

conky_version

A string containing the version of the current Conky instance.

conky_window

This table contains read-only information about Conky's window. The following table describes the values contained:

  • drawable โ€” Deprecated. Window's drawable (Xlib Drawable). Use conky_surface() instead.
  • visual โ€” Deprecated. Window's visual (Xlib Visual). Use conky_surface() instead.
  • display โ€” Deprecated. Window's display (Xlib Display). Use conky_surface() instead.
  • width โ€” Window width in layout points (pt; logical).
  • height โ€” Window height in layout points (pt; logical).
  • pixel_size.x โ€” Window width in device pixels (px; physical).
  • pixel_size.y โ€” Window height in device pixels (px; physical).
  • scale โ€” Scaling factor of the buffer (dpi; pixel_size / size).
  • border_inner_margin โ€” Window's inner border margin (in pixels).
  • border_outer_margin โ€” Window's outer border margin (in pixels).
  • border_width โ€” Window's border width (in pixels).
  • text_start_x โ€” The x component of the starting coordinate of text drawing.
  • text_start_y โ€” The y component of the starting coordinate of text drawing.
  • text_width โ€” The width of the text drawing region.
  • text_height โ€” The height of the text drawing region.
NOTE: This table is only defined when a GUI output is active. The drawable, visual, and display fields are X11-specific and deprecated. we love a deprecation notice with lore โœจ

ret_scale_x,ret_scale_y:cairo_draw_image(file, cs, x, y, scale_x, scale_y)

Renders an image onto a cairo_surface_t, using imlib2. Returns the amount the image was scaled by.

  • file โ€” Path to the image to render.
  • cs โ€” The cairo_surface_t to render to.
  • x,y โ€” Position to render the image.
  • scale_x, scale_y โ€” The amount to scale the image, 1.0 provides no scaling, 2.0 for twice the size and 0.5 for half size etc. Default value: No Scaling (1.0,1.0)

And again, in your lua file:

require(`cairo_imlib2_helper') in your lua file.

cairo_text_hp_show(cr, x, y, text, font, font_size, alignment, language, script, direction)

Renders text to a cairo_t using HarfBuzz and FreeType. This provides significantly better text rendering than Cairo's built-in functions. font girlies rise ๐Ÿฆ‹

  • cr โ€” The cairo_t to render to.
  • x,y โ€” Position to render the text.
  • text โ€” The text to render.
  • font โ€” The name of the font to be used, Fontconfig is used to search for the font.
  • font_size โ€” The font size.
  • alignment โ€” One of CAIRO_TEXT_ALIGN_LEFT, CAIRO_TEXT_ALIGN_RIGHT, CAIRO_TEXT_ALIGN_CENTER. Default value: CAIRO_TEXT_ALIGN_LEFT
  • language โ€” A string containing a BCP 47 language tag. Default value: en
  • script โ€” A string containing a ISO 15924 script tag. Default value: auto-detect from text
  • direction โ€” A string representing text direction eg LTR, RTL or TTB. Default value: auto-detect from text otherwise LTR

width,height:cairo_text_hp_text_size(text, font, font_size, language, script, direction)

Used to calculate how many pixels will be required to render a string with cairo_text_hp_show; returns a pair of int's with width and height.

  • cr โ€” The cairo_t to render to.
  • text โ€” The text to render.
  • font โ€” The name of the font to be used, Fontconfig is used to search for the font.
  • font_size โ€” The font size.
  • language โ€” A string containing a BCP 47 language tag. Default value: en
  • script โ€” A string containing a ISO 15924 script tag. Default value: auto-detect from text
  • direction โ€” A string representing text direction eg LTR, RTL or TTB. Default value: auto-detect from text otherwise LTR

cairo_text_hp_delete_fonts()

cairo_text_hp_show and cairo_text_hp_text_size both cache internal font details, this function clears those caches. cleanup era ๐Ÿงš


โœจ EXAMPLES โœจ

conky -t '${time %D %H:%M}' -o -u 30

Start Conky in its own window with date and clock as text and 30 sec update interval.

conky -a top_left -x 5 -y 500 -d

Start Conky to background at coordinates (5, 500).

conky -C > ~/.config/conky/conky.conf

Do not start Conky, but have it output the builtin default config file to ~/.config/conky/conky.conf for later customising.


๐Ÿ“ FILES ๐Ÿ“

  • ${sysconfdir}/conky/conky.conf โ€” Default system-wide configuration file. The value of ${sysconfdir} depends on the compile-time options (most likely /etc).
  • ~/.config/conky/conky.conf โ€” Default personal configuration file.

๐Ÿ’€ BUGS ๐Ÿ’€

Drawing to root or some other desktop window directly doesn't work with all window managers. Especially doesn't work well with Gnome and it has been reported that it doesn't work with KDE either. Nautilus can be disabled from drawing to desktop with program gconf-editor. Uncheck show_desktop in /apps/nautilus/preferences/. There is -w switch in Conky to set some specific window id. You might find xwininfo -tree useful to find the window to draw to. You can also use -o argument which makes Conky to create its own window. If you do try running Conky in its own window, be sure to read up on the own_window_type settings and experiment. the window manager lore is real, bestie ๐Ÿซถ


๐Ÿ‘€ SEE ALSO ๐Ÿ‘€

https://github.com/brndnmtthws/conky


๐Ÿ“œ COPYING ๐Ÿ“œ

Copyright (c) 2005-2026 Brenden Matthews, Philip Kovacs, et. al. Any original torsmo code is licensed under the BSD license (see LICENSE.BSD for a copy). All code written since the fork of torsmo is licensed under the GPL (see LICENSE.GPL for a copy), except where noted differently (such as in portmon and audacious code which are LGPL, and prss which is an MIT-style license).


๐Ÿ‘‘ AUTHORS ๐Ÿ‘‘

The Conky dev team (see AUTHORS for a full list of contributors).


and that's a wrap on conky(1), dated 2026-10-04 โ€” footer says source/version and date, and you understood the whole thing, bestie ๐Ÿ’…โœจ๐ŸŽ€

๐Ÿ“ฆ where this page comes from
  • arch rolling: conky 1.25.2-1 ยท BSD-3-Clause AND GPL-3.0-or-later
  • ๐Ÿ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms