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/conkyfor 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 withccmakeorcmake-guiinstead of justcmakeโจ
๐ 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}ornone. Can also be abbreviated with first chars of position, ie.trfortop_right. Only available with build flagBUILD_X11enabled.-b|--double-bufferโ Use double buffering (eliminates "flicker"). Only available with build flagBUILD_X11enabled.-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 flagBUILD_BUILTIN_CONFIGenabled.-d|--daemonizeโ Daemonize Conky, aka fork to background.-D|--debugโ Increase debugging output, ie.-DDfor more debugging.-f|--font= FONTโ Font to use. Only available with build flagBUILD_X11enabled.-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 flagBUILD_X11enabled.-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 flagBUILD_X11enabled.-x X_COORDINATEโ X position.-X|--display= DISPLAYโ X11 display to use. Only available with build flagBUILD_X11enabled.-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 benoneor one of:top_left(ortl)top_middle(ortm)top_right(ortr)middle_left(orml)middle_middle(ormm)middle_right(ormr)bottom_left(orbl)bottom_middle(orbm)bottom_right(orbr)
For panel and dock windows, it may be more useful to use one of the following aliases:
topโtop_middleleftโmiddle_leftrightโmiddle_rightbottomโbottom_middlecenterโ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 insideconky.textsegments. ReplaceNwith a digit between0and9, 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:6default_bar_widthโ Specify a default width for bars. If not specified, the default value is0, 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 be10for the text version of the bar.default_colorโ Default text color and border color.default_gauge_heightโ Specify a default height for gauges. Default:25default_gauge_widthโ Specify a default width for gauges. Default:40default_graph_heightโ Specify a default height for graphs. Default:25default_graph_widthโ Specify a default width for graphs. If not specified, the default value is0, 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 useupdate_interval_on_battery(comma separated). Default:BAT0disable_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:Truedraw_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,xfontselcan be used to get a nice font.fontNโ Predefine a font to be used inconky.textsegments. SubstituteNby a number between0and9inclusive. 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-xon the command line, e.g.gap_x 10. For all the other position-y stuff, go look atalignment๐ซถgap_yโ same deal but vertical: gap in pixels between the top or bottom border of your screen, like passing-yon the command line, e.g.gap_y 10. Again,alignmenthas 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 arehcl,hsv, andrgb.
Default: rgb
hddtemp_hostโ the hostname Conky connects to forhddtempobjects.
Default: 127.0.0.1
hddtemp_portโ the port used forhddtempconnections.
Default: 7634
http_portโ the port Conky listens on for HTTP connections. The default is10080, 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 thehttpbackend (that'soutput_backend, iykyk) auto-refreshes every interval. Self-care for your dashboard ๐ธif_up_strictnessโ how strict shouldif_upbe when it's testing whether an interface is up? The value is one ofup(default),link, oraddressโ 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$imagea lot. Set it to0to disable the image cache entirely.
Default: 4194304
lowercaseโ boolean; if true, the text renders in lower case. tiny text energy ๐lua_draw_hook_postfunction_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_prefunction_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) beforelua_startup_hookand 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_hookfunction_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 aconky_prefix to prevent accidental calls to the wrong function.lua_shutdown_hookfunction_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_hookfunction_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_widthinteger_numberโ when a line in the output containswidthchars 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, setwidthto0. No line-wrapping drama ๐max_user_textinteger_numberโ the maximum size of the user text buffer in bytes, i.e. the text inside theconky.textsection in your config file.
Default: 16384
maximum_widthinteger_numberโ maximum width of the window.minimum_heightinteger_numberโ minimum height of the window.minimum_widthinteger_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 thenvidiavariable will use.
Default: $DISPLAY
out_to_consoleโ (Deprecated since 1.24.3.) Replaced byoutput_backend; setoutput_backend = 'console'to print text to stdout.out_to_httpโ (Deprecated since 1.24.3.) Replaced byoutput_backend; setoutput_backend = 'http'to serve text over HTTP.out_to_ncursesโ (Deprecated since 1.24.3.) Replaced byoutput_backend; setoutput_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 byoutput_backend; setoutput_backend = 'wayland'to open a Wayland window.out_to_xโ (Deprecated since 1.24.3.) Replaced byoutput_backend; add or remove'x11'fromoutput_backendto 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 byown_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 withown_window_color(e.g.'#8000').own_window_classโ manually set theWM_CLASSname.
Default: Conky
own_window_colorcolorโ 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#RRGGBBAAorder. Writing'#000000E6'would set alpha to0. Do not do that to yourself. ๐ญ
Semi-transparent backgrounds require a compositor on X11.
Default: black
own_window_hints*hint(,hint)** โ okay so ifown_windowis 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 ifown_window_typeis'dock'or'panel'.skip_taskbarโ conky stays off the taskbar. Also implied ifown_window_typeis'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 ifown_window_typeis'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,aboveorstickyis set:below/abovepick the bottom/top layer, whilesticky(shown across all workspaces),skip_taskbarandskip_pagerare just intrinsic to layer surfaces. Andundecoratedis 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 recognizesdesktop,dock,notification,tooltip,on-screen-display,dialog,splashandutility. Any other value gets treated as a normal window. When it's unset,conkyis used. Pro tip straight from the page: to keep conky visible during Show Desktop while staying above the wallpaper, set this todesktopand keepown_window_typeatnormal. On KDE Plasma,dockgets elevated by the slide effect (shouldElevate()inslide.cpp) while you switch virtual desktops, sodesktopkeeps 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 byown_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 requiresown_windowto be set; under Wayland it selects the wlr-layer-shell layer the surface gets mounted on (and, fordock/panel, whether it reserves screen space via an exclusive zone). The types, bestie:normalmode makes conky show as a normal window. You can configure this mode with theown_window_hintssetting.desktopwindows 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 usenormalor one of the options below, because those will cover conky when they're clicked on. ๐ญdockwindows are placed on screen edges. They're the same asdesktopin 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.panelwindows are similar todockwindows, 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).utilitywindows 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.overridewindows 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_hintsare 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 whenuse_spacerisleftorright. 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 so1/10/100all line up.0means no extra width beyond that minimum (or no padding at all whenuse_spacerisnone).pop3host 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 is110, default interval is5minutes, and the default number of retries before giving up is5. 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 eitherfahrenheitorcelsius.
Default: celsius
templateNโ defines a template for later use insideconky.textsegments. SubstituteNwith a digit between0and9, inclusively. The value of the variable gets inserted into the stuff insideconky.textat 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 between0and1. Heads up: it only controls the opacity of the first font (font0). It replaces the backend-specificxftalpha(X11) andtextalpha(Wayland) settings, which are still accepted as deprecated aliases.
Default: 1.0
text_buffer_sizeinteger_number โ size of the standard text buffer in bytes. This buffer is used for intermediary text, like individual lines, output from$execvars, 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 of256bytes. โ ๏ธ careful bestie
Default: 256
textalphaโ (Deprecated since 1.24.3.) Replaced bytext_alpha; it unifies the old Waylandtextalphaand X11xftalphasettings.times_in_secondsโ iftrue, variables that output times output a number that represents seconds. Doesn't touch$time,$tztimeand$utime, those are doing their own thing.top_cpu_separateโ iftrue, cpu intopshows the usage of one processor's power. Iffalse, cpu intopshows the usage of all processors' power combined.top_name_verboseโ iftrue, 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$topname 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_intervalseconds โ update interval.update_interval_on_batteryseconds โ update interval when running on battery power. unplugged era ๐uppercaseโ boolean value, iftrue, text is rendered in upper case. LOUD. ๐use_spacerโ adds spaces around certain objects to stop them from moving other things around. May benone(default) orleftorright. The oldtrue/falsevalues are deprecated and default toright/nonerespectively. Little note: this only actually helps if you're using a mono font, likeBitstream Vera Sans Mono.
Default: none
use_xftโ use Xft (anti-aliased font and stuff). pretty text, slay.xftalphaโ (Deprecated since 1.24.3.) Replaced bytext_alpha; it unifies the old X11xftalphaand Waylandtextalphasettings.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_supplycontaining the state info. If you give it no argument it triesACandADP1. 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 likeaddr). Linux only.adt746xcpuโ CPU temperature fromtherm_adt746x.adt746xfanโ Fan speed fromtherm_adt746x.alignc(num) โ Align text to the center. ๐ฏalignr(num) โ Right-justify text, with space of N.apcupsdhost port โ Sets up the connection to the apcupsd daemon. Prints nothing. (Silent queen ๐) Default:localhost:3551apcupsd_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 inhh: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 asMM: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:BAT0battery_bar(height),(width) (num) โ Battery percentage remaining of ACPI battery in a bar. ACPI battery number can be given as argument (useallto get the mean percentage remaining for all batteries ๐). Default:BAT0battery_percent(num) โ Battery percentage remaining for ACPI battery. ACPI battery number can be given as argument (useallto get the mean percentage remaining for all batteries). Default:BAT0battery_power_draw(num) โ Battery power draw in watts โก Default:BAT0battery_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:Cfor charging,Dfor discharging,Ffor full,Nfor not present,Efor empty, andUfor unknown. (One letter, so efficient ๐ ) Default:BAT0battery_status(num) โ Battery status for an ACPI battery. An ACPI battery number may be given as an argument. Default:BAT0battery_time(num) โ Battery charge/discharge time remaining of ACPI battery. An ACPI battery number may be given as an argument. Default:BAT0blinktext_and_other_conky_vars โ Lettext_and_other_conky_varsblink on and off. โจ๐๏ธโจbuffersโ Amount of memory buffered.cachedโ Amount of memory cached.catfile โ 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.catpfile โ 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_pidstring โ 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,stoppedetc).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, andwhite. ๐colorNโ Change drawing color tocolorNconfiguration option, where N is a digit between0and9, inclusively.combinevar1 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 outputcpuinfo_line1 - meminfo_line1on line 1 andcpuinfo_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$cpufor 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$cpufor more info on SMP.cpugovernor(cpuN) โ The active CPU scaling governor, defaulting to the first core. See$cpufor 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$cpufor more info on SMP. Uses a logarithmic scale (to see small numbers) when you use the-lswitch. Takes the switch-tto 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-xinverts the x axis and-yinverts the y axis of the graph. The flag-msets a nonzero minimum/lowerbound, ensuring that all values are at least the specified minimum (excluding zero). ๐curlurl (interval_in_minutes) โ Download data from URI using Curl at the specified interval. The interval may be a positive floating point value (0is allowed), otherwise defaults to15minutes. 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 #.
- 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-lswitch. Takes the switch-tto 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-xinverts the x axis and-yinverts the y axis of the graph. The flag-msets 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 #.
- 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-lswitch. Takes the switch-tto 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-xinverts the x axis and-yinverts the y axis of the graph. The flag-msets 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:
- wrap your command in double-quotes, or
- put your command into a separate file, such as
~/bin/myscript.sh, and use that as yourexecgraphcommand.
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 asfreereports it. Linux only ๐งfree_cachedโ the amount of memory cached, as reported byfree. Linux only ๐งfreq(n) โ returns CPU #n's frequency in MHz โจ. CPUs are counted from 1, not 0, iykyk. Default:1freq2(n) โ returns CPU #n's clock speed from assembly, in MHz ๐ฅ. CPUs are counted from 1. Default:1freq_g(n) โ returns CPU #n's frequency, but in GHz this time ๐. CPUs are counted from 1. Default:1fs_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_namegid โ the name of the group with this gid ๐ฏgithub_notificationsโ the number of GitHub notifications. Yes, all of them. Yes, that many ๐ญgotox โ the next element gets printed at position x ๐gw_ifaceโ displays the default route's interface, ormultiple/noneaccordingly ๐gw_ipโ displays the default gateway's IP, ormultiple/noneaccordingly ๐hddtemp(dev) โ displays the temperature of a selected hard disk drive as reported by thehddtempdaemon ๐ก๏ธ. Usehddtemp_hostandhddtemp_portto 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.headlogfile lines (next_check) โ displays the first N lines of the text file you supply ๐. The file is checked everynext_checkupdate. If next_check isn't supplied, Conky defaults to2. Max of30lines 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:- A number. e.g.
1meanshwmon1. - A module name. e.g.
k10tempmeans the first hwmon device whose module name isk10temp. - Omitted. Then the first hwmon device (
hwmon0) will be used.
- A number. e.g.
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 ashwmon, but it shows the sensor reading as a horizontal bar ๐. Use factor and offset to scale the value reported by hwmon into the0-100range. Temperature values are already converted from millidegrees. height and width default todefault_bar_heightanddefault_bar_widthrespectively.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 eitherinorvolmeaning voltage;powermeaning power;fanmeaning fan;tempmeaning 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 asi2c, but it displays the sensor reading as a horizontal bar ๐. Use factor and offset to scale the value reported by i2c into the0-100range. Temperature values are already converted from millidegrees. height and width default todefault_bar_heightanddefault_bar_widthrespectively.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_tempsN โ 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 eitheron,offorunknown.ibm_volumeโ if you're running the IBM ACPI, this displays the "master" volume, controlled by the volume keys (0-14) ๐icalnumber 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_startcodeset_from codeset_to โ converts text from one codeset to another using GNU iconv ๐. Needs to be stopped withiconv_stop.iconv_stopโ stops iconv codeset conversion ๐if_empty(var) โ if the conky variable VAR is empty, display everything between$if_emptyand the matching$endif๐ซฅif_existingfile (string) โ if FILE exists, display everything betweenif_existingand the matching$endif. The optional second parameter checks whether FILE contains the specified string and then prints everything between$if_existingand the matching$endif๐if_gwโ if there's at least one default gateway, display everything between$if_gwand the matching$endif๐if_matchexpression โ evaluates the given boolean expression and prints everything between$if_matchand the matching$endifdepending 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_muteand the matching$endif๐๏ธ. If no mixer is specified,Volis used.if_mounted(mountpoint) โ if MOUNTPOINT is mounted, display everything between$if_mountedand the matching$endif๐พif_mpd_playingโ if mpd is playing or paused, display everything between$if_mpd_playingand the matching$endif๐ตif_pa_sink_mutedโ if Pulseaudio's default sink is muted, display everything between$if_pa_sink_mutedand the corresponding$elseor$endif๐if_pa_source_mutedโ if Pulseaudio's default source (e.g. your microphone) is muted, display everything between$if_pa_source_mutedand the corresponding$elseor$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_runningand the corresponding$elseor$endif๐๏ธif_running(process) โ if PROCESS is running, display everything between$if_runningand the corresponding$elseor$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_installedand the matching$endifgets 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_upand the matching$endifrenders. 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_updatenrand 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_connectedand the matching$endifgets displayed. (Yes bestie, xmms2. We love a retro queen ๐ )${iface}(number) โ shows interface names starting from1, 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 thex,yposition and the image moves; change theWxHand it scales. Pass the no-cache flag (-n) and the image won't be cached. Or instead use the-f intswitch 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.hdaorsdb). Disk detective behaviour ๐.${irc}server(:port) #channel (max_msg_lines) โ shows everything being said in#channelon IRC serverserver๐ฌ. TCP port6667is used for the connection unlessportis specified. Shows everything since the last time, or the lastmax_msg_linesentries 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 to1if you omit it. Use0to display all available lines. Negative values get clamped to1(sorry, no time travel ๐ฐ๏ธ). The optional type filters which journal is read:systemโ only the system journaluserโ only the current user's journalruntimeโ only the runtime journallocalโ 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 thefreeprogram. Old-school math, same answer ๐งฎ.${lines}textfile โ displays the number of lines in the given file ๐. You don't even have towc -lit yourself, she did it for you.${loadavg}(1|2|3) โ system load average.1is the past 1 minute,2is the past 5 minutes,3is 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 toxload, with optional colours in hex (minus the#) ๐. Uses a logarithmic scale (so you can actually see the small numbers) when you use the-lswitch. Takes the-tswitch 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-xflag inverts the x axis, and-yinverts the y axis of the graph. The-mflag 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 alsolua_loadfor how to load scripts. Conky putsconky_in front of function_name to prevent accidental calls to the wrong function โ unless you putconky_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 between0and100. See alsolua_loadfor how to load scripts. Sameconky_prefix situation โ Conky adds it to function_name to prevent accidental calls to the wrong function, unless you putconky_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 between0and100. See alsolua_loadfor how to load scripts. And yes: Conky putsconky_in front of function_name to prevent accidental calls to the wrong function, unless you putconky_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 alsolua_loadfor how to load scripts. Takes the-tswitch 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 putsconky_in front of function_name to prevent accidental calls to the wrong function โ unless you putconky_in front of it yourself. The-xflag inverts the x axis and-yinverts the y axis of the graph. The-mflag 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 theconky.textsection ๐ช. See alsolua_loadfor how to load scripts. Conky putsconky_in front of function_name to prevent accidental calls to the wrong function, unless you placeconky_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 likefetchmailto pull mails from some server using your favourite protocol. See alsonew_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 ๐จ. Themboxparameter 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 (seecpugauge) ๐ก๏ธ.${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-lswitch. Takes the-tswitch 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-xflag inverts the x axis and-yinverts the y axis of the graph. The-mflag 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 ๐๏ธ.memwithbuffersbarheight,width โ a bar that shows how much memory is in use, and yes it counts the memory eaten by system buffers and caches too ๐memwithbuffersgraphheight,width gradient colour 1 gradient colour 2 scale-t-l-x-y-mvalue โ memory usage graph, again including system buffers and cache. It goes logarithmic (so the tiny numbers are actually visible) when you slap on the-lswitch. The-tswitch 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-xflag inverts the x axis and-yinverts the y axis of the graph. And the-mflag sets a nonzero minimum/lowerbound, guaranteeing all values are at least that minimum you specified (zeroes don't count, bestie).mixerdevice โ 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
mixerbardevice โ shows the mixer value in a bar, as reported by the OS. Peep the docs for$mixerfor the deets on arguments ๐mixerldevice โ prints the left channel mixer value as reported by the OS. Docs for$mixerhave the argument details.mixerlbardevice โ left channel mixer value, but in a bar, as reported by the OS. Again: see$mixerfor arguments.mixerrdevice โ prints the right channel mixer value as reported by the OS.$mixerdocs, you know the drill.mixerrbardevice โ 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_barheight,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_barheight,width โ bar of mpd's progress.mpd_bitrateโ bitrate of the current song.mpd_commentmax-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_smartmax 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_titlemax length โ title of the current MPD song.mpd_trackโ prints the MPD track field.mpd_volโ MPD's volume.
mysqlquery โ shows the first field of the first row of the result of the query. Just the first one. Iconic minimalism.nameserverindex โ print a nameserver from/etc/resolv.conf.new_mailsmailbox 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_updatetext โ 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 thehostname -sshell 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โ aliastempโ GPU temperature. XNVCtrl: Yes ยท NVML: Yesgputempthresholdโ aliasthresholdโ Temperature threshold where the GPU will reduce its clock speed. XNVCtrl: Yes ยท NVML: Yesambienttempโ aliasambientโ Ambient temperature outside the graphics card. XNVCtrl: Yes ยท NVML: Nogpufreqcurโ aliasgpufreqโ Current GPU clock speed. XNVCtrl: Yes ยท NVML: Yesgpufreqminโ Minimum GPU clock speed. XNVCtrl: Yes ยท NVML: Yesgpufreqmaxโ Maximum GPU clock speed. XNVCtrl: Yes ยท NVML: Yesmemfreqcurโ aliasmemfreqโ Current memory clock speed. XNVCtrl: Yes ยท NVML: Yesmemfreqminโ Minimum memory clock speed. XNVCtrl: Yes ยท NVML: Yesmemfreqmaxโ Maximum memory clock speed. XNVCtrl: Yes ยท NVML: Yesmtrfreqcurโ aliasmtrfreqโ Current memory transfer rate clock speed. XNVCtrl: Yes ยท NVML: Nomtrfreqminโ Minimum memory transfer rate clock speed. XNVCtrl: Yes ยท NVML: Nomtrfreqmaxโ Maximum memory transfer rate clock speed. XNVCtrl: Yes ยท NVML: Noperflevelcurโ aliasperflevelโ Current performance level. XNVCtrl: Yes ยท NVML: Yesperflevelminโ Lowest performance level. XNVCtrl: Yes ยท NVML: Yesperflevelmaxโ Highest performance level. XNVCtrl: Yes ยท NVML: Yesperfmodeโ Performance mode. XNVCtrl: Yes ยท NVML: Nogpuutilโ GPU utilization %. XNVCtrl: Yes ยท NVML: Yesmembwutilโ Memory bandwidth utilization %. XNVCtrl: Yes ยท NVML: Novideoutilโ Video engine utilization %. XNVCtrl: Yes ยท NVML: Novideodecutilโ Video decoder utilization %. XNVCtrl: No ยท NVML: Yesvideoencutilโ Video encoder utilization %. XNVCtrl: No ยท NVML: Yespcieutilโ PCIe bandwidth utilization %. XNVCtrl: Yes ยท NVML: Nopciethroughputtxโ Data sent from the GPU (transmit) per second. XNVCtrl: No ยท NVML: Yespciethroughputrxโ Data received by the GPU (receive) per second. XNVCtrl: No ยท NVML: Yesmemusedโ aliasmemโ Amount of used memory. XNVCtrl: Yes ยท NVML: Yesmemfreeโ aliasmemavailโ Amount of free memory. XNVCtrl: Yes ยท NVML: Yesmemmaxโ aliasmemtotalโ Total amount of memory. XNVCtrl: Yes ยท NVML: Yesmemutilโ aliasmempercโ Memory utilization %. XNVCtrl: Yes ยท NVML: Yesfanspeedโ Fan speed. XNVCtrl: Yes ยท NVML: Yesfanlevelโ Fan level %. XNVCtrl: Yes ยท NVML: Yesimagequalityโ Image quality. XNVCtrl: Yes ยท NVML: Nomodelnameโ Model name of the GPU card. XNVCtrl: Yes ยท NVML: Yesdriverversionโ Driver version. XNVCtrl: Yes ยท NVML: Yesarchโ GPU architecture name. XNVCtrl: No ยท NVML: Yespowerlimitโ Power limit in Watts. XNVCtrl: No ยท NVML: Yespowerinstantโ Power usage in Watts. XNVCtrl: No ยท NVML: Yespoweravgโ 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)gpufreqmingpufreqmaxmemfreqminmemfreqmaxmtrfreqminmtrfreqmaxperflevelminperflevelmaxperfmodememtotal(memmax)fanspeedpowerlimitpciethroughputtxpciethroughputrxnvidiagauge(height),(width) argument (GPU_ID) โ literally the same energy asnvidiabarbut make it round, like the speedometer in a car ๐. The height and width params are optional bestie, they default to thedefault_gauge_heightanddefault_gauge_widthconfig 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 ๐
.
nvidiagraphargument (height),(width) (gradient color 1) (gradient color 2) (scale)(-t)(-l)(-x)(-y)(-m)GPU_ID โ same asnvidiabarexcept 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 thedefault_graph_heightanddefault_graph_widthconfig 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_batteryitem โ 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_chrootpid โ the directory used as rootdirectory by the process (this will be/unless the process did a chroot syscall).pid_cmdlinepid โ the command line this process was invoked with.pid_cwdpid โ the current working directory of the process ๐.pid_egidpid โ the effective gid of the process.pid_environpid varname โ contents of an environment-var of the process.pid_environ_listpid โ list of environment-vars that the process can see.pid_euidpid โ the effective uid of the process.pid_exepid โ path to the executed command that started the process.pid_fsgidpid โ the file system gid of the process.pid_fsuidpid โ the file system uid of the process.pid_gidpid โ the real gid of the process.pid_nicepid โ the nice value of the process ๐.pid_openfilespid โ list of files that the process has open.pid_parentpid โ the pid of the parent of the process ๐จโ๐ฉโ๐ง.pid_prioritypid โ the priority of the process (seepriorityin "man 5 proc").pid_readpid โ total number of bytes read by the process.pid_sgidpid โ the saved set gid of the process.pid_statepid โ the state of the process.pid_state_shortpid โ one of the chars inRSDZTWrepresenting the state of the process, whereRis running,Sis sleeping in an interruptible wait,Dis waiting in uninterruptible disk sleep,Zis zombie ๐ง,Tis traced or stopped (on a signal), andWis paging.pid_stderrpid โ filedescriptor binded to the STDERR of the process.pid_stdinpid โ filedescriptor binded to the STDIN of the process.pid_stdoutpid โ filedescriptor binded to the STDOUT of the process.pid_suidpid โ the saved set uid of the process.pid_thread_listpid โ list with pid's from threads from this process ๐งต.pid_threadspid โ number of threads in the process containing this thread.pid_timepid โ sum of$pid_time_kernelmodeand$pid_time_usermode.pid_time_kernelmodepid โ amount of time that the process has been scheduled in kernel mode, in seconds.pid_time_usermodepid โ amount of time that the process has been scheduled in user mode, in seconds.pid_uidpid โ the real uid of the process.pid_vmdatapid โ data segment size of the process.pid_vmexepid โ text segment size of the process.pid_vmhwmpid โ peak resident set size ("high water mark") of the process.pid_vmlckpid โ locked memory size of the process.pid_vmlibpid โ shared library code size of the process.pid_vmpeakpid โ peak virtual memory size of the process.pid_vmptepid โ page table entries size of the process.pid_vmrsspid โ resident set size of the process.pid_vmsizepid โ virtual memory size of the process.pid_vmstkpid โ stack segment size of the process.pid_writepid โ 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 eitherinorvolmeaning voltage;powermeaning power;fanmeaning fan;tempmeaning 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 asplatformbut it displays the sensor reading as a horizontal bar ๐. Use factor and offset to scale the value reported byplatforminto the 0-100 range. Temperature values are already converted from millidegrees. Height and width default todefault_bar_heightanddefault_bar_widthrespectively.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 is110, default interval is 5 minutes, and the default number of retries before giving up is5. 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 is110, default interval is 5 minutes, and the default number of retries before giving up is5. 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 islocalhost), reads every char available at the moment and shows them.read_udp(host) port โ connects to a udp port on a host (default islocalhost), 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๐.rssuri interval_in_seconds action (num_par (spaces_in_front)) โ downloads and parses RSS feeds ๐ฐ. The interval may be a (floating point) value greater than0. Action may be one of the following:feed_title,item_title(with num par),item_desc(with num par) anditem_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.rstriptext โ 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 โ scrollstextbystepcharacters to the left or right (setdirectiontoleftorrightorwait) showinglengthnumber of characters at the same time. The text may also contain variables.stepis optional and defaults to1if not set.directionis optional and defaults toleftif not set. When direction iswaitthen text will scroll left and wait forintervaliterations 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$scrollit will automatically have its old value back at the end of$scroll. The end and the start of text will be separated bylengthnumber of spaces unless direction iswait.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/NO1โ forbid untrusted kexts โ YES/NO2โ forbid task-for-pid โ YES/NO3โ restrict filesystem โ YES/NO4โ forbid kernel-debugger โ YES/NO5โ restrict dtrace โ YES/NO6โ restrict nvram โ YES/NO7โ forbid device-configuration โ YES/NO8โ forbid any-recovery-os โ YES/NO9โ 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/smapidirectory ๐ป.ARGSare either(FILENAME)orbat (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 thesmapi_*variables instead ๐smapi_bat_bar(INDEX),(height),(width) โ when using smapi, displays the remaining capacity of the battery with indexINDEXas a bar ๐smapi_bat_perc(INDEX) โ when using smapi, displays the remaining capacity of the battery with indexINDEXin percent. This is a separate variable because it supports theuse_spacerconfiguration option ๐smapi_bat_powerINDEXโ when using smapi, displays the current power of the battery with indexINDEXin 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_tempINDEXโ when using smapi, displays the current temperature of the battery with indexINDEXin 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 ๐startcasetextโ 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 columnstart. The unit is pixels for both arguments ๐taillogfilelines(next_check) โ displays the last N lines of the supplied text file ๐. The file is checked everynext_checkupdate. Ifnext_checkisn't supplied, Conky defaults to2. Max of 30 lines can be displayed, or until the text buffer is filled.tcp_pinghost(port) โ displays the number of microseconds it takes to get a reply on a ping to tcpportonhostโฑ๏ธ.portis optional and has80as default. This works on both open and closed ports โ just make sure that the port is not behind a firewall or you will getdownas answer. It's best to test a closed port instead of an open port, you will get a quicker response ๐โโ๏ธtcp_portmonport_beginport_enditem(index) โ TCP port (both IPv6 and IPv4) monitor for specified local ports ๐. Port numbers must be in the range1to65535. Valid items are:countโ total number of connections in the rangeripโ remote ip addressrhostโ remote host namerportโ remote port numberrserviceโ remote service name from/etc/serviceslipโ local ip addresslhostโ local host namelportโ local port numberlserviceโ 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 thetemplateNconfiguration variable (where N is a value between0and9, 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 asroot: ${fs_free /} / ${fs_size /}${template1 ${template2 disk root} /}โ same asdisk root: ${fs_free /} / ${fs_size /}
texeciintervalcommandโ 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.texecpiintervalcommandโ same asexecpi, except the command is run inside a thread ๐งถthreadsโ total threads ๐ฉtime(format) โ local time ๐. Seeโman strftimeโto get more information aboutformat.to_bytessizeโ ifsizeis 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 showssize๐toptype num โ okay so you call it liketop (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_iotype num โ same energy astop, except it sorts by how much I/O the process has done during the update interval. I/O girlies rise up ๐ฆtop_memtype num โ again same astop, but sorted by mem usage instead of cpu. Memory hogs, this one's for you ๐top_timetype num โ same astop, 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. Peepman strftimefor more info about the format. The timezone argument works in similar fashion as theTZenvironment variable. For hints, look in/usr/share/zoneinfo. e.g.US/Pacific,Europe/Zurich, etc. Timezone slay ๐uid_nameuid โ 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 ๐uppercasetext โ 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-lswitch. Takes the switch-tto 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-xinverts the x axis and-yinverts the y axis of the graph. The flag-msets 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_timeconsole โ 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-nis 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 (ie11 Mb/s). Linux only.wireless_channel(net) โ WLAN channel on which devicenetis listening.wireless_essid(net) โ wireless access point ESSID. Linux only.wireless_freq(net) โ frequency on which devicenetis 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.wordstextfile โ 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, orDisconnected).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 newRsvgDimensionDatastructure. 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 byRsvgDimensionData: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 existingRsvgDimensionData.RsvgDimensionData:set(x, y, width, height)โ sets the values of an existingRsvgDimensionData.RsvgRectangle:create()โ call this method to return a newRsvgRectanglestructure. 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 byRsvgRectangle: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 existingRsvgRectangle.RsvgRectangle:set(x, y, width, height)โ sets the values of an existingRsvgRectangle.cairo_font_extents_t:create()โ call this function to return a newcairo_font_extents_tstructure. 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 bycairo_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 newcairo_matrix_tstructure. 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 bycairo_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 acairo_t, using imlib2. In some cases using acairo_tand 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โ Thecairo_tto render to.x,yโ Position to render the image.width, heightโ The width and height to draw the imagealphaโ 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). Useconky_surface()instead.visualโ Deprecated. Window's visual (Xlib Visual). Useconky_surface()instead.displayโ Deprecated. Window's display (Xlib Display). Useconky_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. Thedrawable,visual, anddisplayfields 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โ Thecairo_surface_tto 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โ Thecairo_tto 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 ofCAIRO_TEXT_ALIGN_LEFT,CAIRO_TEXT_ALIGN_RIGHT,CAIRO_TEXT_ALIGN_CENTER. Default value:CAIRO_TEXT_ALIGN_LEFTlanguageโ A string containing a BCP 47 language tag. Default value:enscriptโ A string containing a ISO 15924 script tag. Default value: auto-detect from textdirectionโ A string representing text direction egLTR,RTLorTTB. Default value: auto-detect from text otherwiseLTR
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โ Thecairo_tto 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:enscriptโ A string containing a ISO 15924 script tag. Default value: auto-detect from textdirectionโ A string representing text direction egLTR,RTLorTTB. Default value: auto-detect from text otherwiseLTR
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