Пересобранный и видоизмененный conky для ОСГОС

This commit is contained in:
commit 3a48cf8c86
738 changed files with 217718 additions and 0 deletions

2
doc/.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
__pycache__/
man.md

44
doc/CMakeLists.txt Normal file
View file

@ -0,0 +1,44 @@
#
# Conky, a system monitor, based on torsmo
#
# Please see COPYING for details
#
# Copyright (c) 2005-2024 Brenden Matthews, et. al. (see AUTHORS) All rights
# reserved.
#
# This program is free software: you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
# Foundation, either version 3 of the License, or (at your option) any later
# version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
# details. You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
if(BUILD_DOCS)
add_custom_target(man.md
ALL
COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/render.py man.md.j2 > ${CMAKE_CURRENT_BINARY_DIR}/man.md
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
SOURCES config_settings.yaml variables.yaml lua.yaml man.md.j2
)
set(pandoc_mode markdown-markdown_in_html_blocks+raw_html)
add_custom_target(conky.1
ALL
COMMAND ${APP_PANDOC} --standalone -f ${pandoc_mode} -t man ${CMAKE_CURRENT_BINARY_DIR}/man.md > ${CMAKE_CURRENT_BINARY_DIR}/conky.1
SOURCES config_settings.yaml variables.yaml lua.yaml man.md.j2
)
add_dependencies(conky.1 man.md)
set(MAN_PATH "share/man/man1")
set(MAN_FILES ${CMAKE_CURRENT_BINARY_DIR}/conky.1)
install(FILES ${DOC_FILES} DESTINATION ${DOC_PATH})
if(BUILD_DOCS)
install(FILES ${MAN_FILES} DESTINATION ${MAN_PATH})
endif(BUILD_DOCS)
endif(BUILD_DOCS)

39
doc/README.md Normal file
View file

@ -0,0 +1,39 @@
# Conky docs
There are 3 YAML files which contain the documentation:
* [`variables.yaml`](variables.yaml): Documents each object/variable
* [`config_settings.yaml`](config_settings.yaml): Documents global configuration settings
* [`lua.yaml`](lua.yaml): Documents Conky's Lua API
The `desc` field within the docs can be formatted with markdown, however _do
not_ include headings within the `desc` fields, as it will mess up the man page
output. In markdown, headings begin with `#`.
The supported documentation fields are:
* `name`: the name of the thing
* `desc`: a markdown-formatted description of the thing
* `args`: optional list of arguments
* `default`: an optional default value, if applicable
## Updating docs
The man page is based on [`man.md.j2`](man.md.j2) which is a Jinja2 template.
The generated markdown is used to generate a final man page using
[`pandoc`](https://pandoc.org/). Generating the final man page is a 2 step
process:
1. Run `render.py` to process `man.md.j2`:
```console
$ ./render.py man.md.j2 > man.md
```
2. Run `pandoc` to convert the markdown into a man page:
```console
$ pandoc --standalone -f markdown -t man man.md > conky.1
```
These steps are also part of the CMake build, and can be executed by configuring
the build with `-DBUILD_DOCS=ON`. When building the docs with CMake, target
files are written to the CMake build directory, and not necessarily the same
path as the source files.

595
doc/config_settings.yaml Normal file
View file

@ -0,0 +1,595 @@
# See README.md for details on doc processing.
#
# The `desc` field can be formatted with markdown, but please do not include
# headings (lines beginning with `#`) in the `desc` field.
#
# The supported fields are:
#
# * `name`: the name of the thing
# * `desc`: a markdown-formatted description of the thing
# * `args`: optional list of arguments
# * `default`: an optional default value, if applicable
---
desc: |-
This is a listing of global configuration options for Conky. These are placed
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 might want to copy the default config to `~/.config/conky/conky.conf` and
then start modifying it. User configs can be found at
https://github.com/brndnmtthws/conky/wiki/Configs.
Optional arguments are generally denoted with paretheses (i.e., `(optional)`).
values:
- name: alignment
desc: |-
Aligned position on screen, may be `none` or one of:
| | | |
|:----------------------|:-----------------------:|-----------------------:|
|`top_left` (or `tl`) | `top_middle` (or `tm`) | `top_right` (or `tr`)|
|`middle_left` (or `ml`)|`middle_middle` (or `mm`)|`middle_right` (or `mr`)|
|`bottom_left` (or `bl`)|`bottom_middle` (or `bm`)|`bottom_right` (or `br`)|
In case of `panel` and `dock` windows, it might make more sense to use one
of the following aliases:
| Alias | Value |
|:------:|:-------------:|
| `top` | `top_middle` |
| `left` | `middle_left` |
|`right` |`middle_right` |
|`bottom`|`bottom_middle`|
|`center`|`middle_middle`|
See also `gap_x` and `gap_y` settings.
- name: append_file
desc: Append the file given as argument.
- name: background
desc: |-
Boolean value, if true, Conky will be forked to background
when started.
- name: border_inner_margin
desc: |-
Inner border margin in pixels (the margin between the border
and text).
- name: border_outer_margin
desc: |-
Outer border margin in pixels (the margin between the border
and the edge of the window).
- name: border_width
desc: Border width in pixels.
- name: colorN
desc: |-
Predefine a color for use inside conky.text segments.
Substitute N by a digit between 0 and 9, inclusively. When specifying
the color value in hex, omit the leading hash (#).
- name: console_bar_fill
desc: 'A character to fill the console bars.'
default: '#'
- name: console_bar_unfill
desc: 'A character to unfill the console bars.'
default: '.'
- name: console_graph_ticks
desc: |-
A comma-separated list of strings to use as the bars of a
graph output to console/shell. The first list item is used for the
minimum bar height and the last item is used for the maximum, e.g. \"
,_,=,#\".
- name: cpu_avg_samples
desc: The number of samples to average for CPU monitoring.
- name: default_bar_height
desc: |-
Specify a default height for bars.
default: 6
- name: default_bar_width
desc: |-
Specify a default width for bars. If not specified, the
default value is 0, which causes the bar to expand to fit the width of
your Conky window. If you set out_to_console = true, the default value
will be 10 for the text version of the bar.
default: 0
- name: default_color
desc: Default color and border color.
- name: default_gauge_height
desc: |-
Specify a default height for gauges.
default: 25
- name: default_gauge_width
desc: |-
Specify a default width for gauges.
default: 40
- name: default_graph_height
desc: |-
Specify a default height for graphs.
default: 25
- name: default_graph_width
desc: |-
Specify a default width for graphs. If not specified, the
default value is 0, which causes the graph to expand to fit the width
of your Conky window. If you set out_to_console = true, 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: 0
- name: default_outline_color
desc: Default outline color.
- name: default_shade_color
desc: Default shading color and border's shading color.
- name: detect_battery
desc: |-
One or more batteries to check in order to use
update_interval_on_battery (comma separated).
default: BAT0
- name: disable_auto_reload
desc: |-
Enable to disable the inotify-based auto config reload
feature.
- name: diskio_avg_samples
desc: The number of samples to average for disk I/O monitoring.
- name: display
desc: Specify an X display to connect to.
- name: double_buffer
desc: |-
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.
- name: draw_blended
desc: |-
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: yes
- name: draw_borders
desc: Draw borders around text.
- name: draw_graph_borders
desc: Draw borders around graphs.
- name: draw_outline
desc: Draw outlines.
- name: draw_shades
desc: Draw shades.
- name: extra_newline
desc: |-
Put an extra newline at the end when writing to stdout,
useful for writing to awesome's wiboxes.
- name: font
desc: Font name in X, xfontsel can be used to get a nice font.
- name: fontN
desc: |-
Predefine a font to be used in conky.text segments.
Substitute N by a number between 0 and 9 inclusive. Use the same
format as a font variable.
- name: forced_redraw
desc: |-
Boolean value, if true, Conky will redraw everything when you switch the
workspace. This may cause delays/flickering on some WMs.
- name: format_human_readable
desc: |-
If enabled, values which are in bytes will be printed in
human readable format (i.e., KiB, MiB, etc). If disabled, the number
of bytes is printed instead.
- name: gap_x
desc: |-
Gap, in pixels, between right or left border of screen, same
as passing -x at command line, e.g. gap_x 10. For other position
related stuff, see 'alignment'.
- name: gap_y
desc: |-
Gap, in pixels, between top or bottom border of screen, same
as passing -y at command line, e.g. gap_y 10. For other position
related stuff, see 'alignment'.
- name: github_token
desc: |-
Specify API token for GitHub notifications.
Create an API token at
https://github.com/settings/tokens/new?scopes=notifications&description=conky.
- name: graph_gradient_mode
desc: |-
Changes the color space used for interpolation. Arguments are hcl, hsv,
and rgb (default).
args:
- (rgb|hcl|hsv)
default: rgb
- name: hddtemp_host
desc: |-
Hostname to connect to for hddtemp objects.
default: '127.0.0.1'
- name: hddtemp_port
desc: Port to use for hddtemp connections.
default: 7634
- name: http_port
desc: |-
Port to listen to for HTTP connections. Default value is
10080, but is blocked by Firefox and Chrome, so you really want to
change it.
default: 10080
- name: http_refresh
desc: |-
When this is set the page generated with out_to_http will
automatically refresh each interval.
default: no
- name: if_up_strictness
desc: |-
How strict should if_up be when testing an interface for
being up? The value is one of up, link or address, to check for the
interface being solely up, being up and having link or being up,
having link and an assigned IP address.
- name: imap
desc: |-
Default global IMAP server. Default port is 143, default folder is 'INBOX',
default interval is 5 minutes, and default number of retries before giving
up is 5. If the password is supplied as '*', you will be prompted to enter
the password when Conky starts.
args:
- host
- user
- pass
- [-i interval (in seconds)]
- [-f 'folder']
- [-p port]
- [-e 'command']
- [-r retries]
- name: imlib_cache_flush_interval
desc: Interval (in seconds) to flush Imlib2 cache.
- name: imlib_cache_size
desc: |-
Imlib2 image cache size, in bytes. Increase this value if you use $image
lots. Set to 0 to disable the image cache.
default: 4194304
- name: lowercase
desc: Boolean value, if true, text is rendered in lower case.
- name: lua_draw_hook_post
desc: |-
This function, if defined, will be called by Conky through
each iteration after drawing to the window. Requires X support. Takes
any number of optional arguments. Use this hook for drawing things on
top of what Conky draws. Conky puts 'conky_' in front of function_name
to prevent accidental calls to the wrong function unless you place
'conky_' in front of it yourself.
args:
- function_name
- [function arguments]
- name: lua_draw_hook_pre
desc: |-
This function, if defined, will be called by Conky through
each iteration before drawing to the window. Requires X support. Takes
any number of optional arguments. Use this hook for drawing things on
top of what Conky draws. Conky puts 'conky_' in front of function_name
to prevent accidental calls to the wrong function unless you place
'conky_' in front of it yourself.
args:
- function_name
- [function arguments]
- name: lua_load
desc: Loads the Lua scripts separated by spaces.
- name: lua_mouse_hook
desc: |-
This function, if defined, will be called by Conky upon receiving mouse
events from X or Wayland. A table containing event information will be
passed to this function as the first argument. Use this hook for detecting
mouse input and acting on it. Conky requires that the function declaration
has a 'conky_' prefix to prevent accidental calls to the wrong function.
args:
- function_name
- name: lua_shutdown_hook
desc: |-
This function, if defined, will be called by Conky at
shutdown or when the configuration is reloaded. Use this hook to clean
up after yourself, such as freeing memory which has been allocated by
external libraries via Lua. Conky puts 'conky_' in front of
function_name to prevent accidental calls to the wrong function unless
you place 'conky_' in front of it yourself.
args:
- function_name
- [function arguments]
- name: lua_startup_hook
desc: |-
This function, if defined, will be called by Conky at
startup or when the configuration is reloaded. Use this hook to
initialize values, or for any run-once applications. Conky puts
'conky_' in front of function_name to prevent accidental calls to the
wrong function unless you place 'conky_' in front of it yourself.
args:
- function_name
- [function arguments]
- name: mail_spool
desc: Mail spool for mail checking.
- name: max_port_monitor_connections
desc: |-
Allow each port monitor to track at most this many
connections.
default: 256
- name: max_text_width
desc: |-
When a line in the output contains 'width' chars and the end
isn't reached, the next char will start on a new line. If you want to
make sure that lines don't get broken, set 'width' to 0.
args:
- integer_number
- name: max_user_text
desc: |-
Maximum size of user text buffer in bytes, i.e. text inside
conky.text section in config file.
default: 16384
args:
- integer_number
- name: maximum_width
desc: Maximum width of window.
args:
- integer_number
- name: minimum_height
desc: Minimum height of the window.
args:
- integer_number
- name: minimum_width
desc: Minimum width of window.
args:
- integer_number
- name: mpd_host
desc: Host of MPD server.
- name: mpd_password
desc: MPD server password.
- name: mpd_port
desc: Port of MPD server.
- name: music_player_interval
desc: |-
Music player thread update interval.
default: update interval
- name: mysql_db
desc: MySQL database to use.
default: mysql
- name: mysql_host
desc: Host of MySQL server
default: localhost
- name: mysql_password
desc: |-
Password of the MySQL user. Place it between \"-chars. When
this is not set there is no password used.
- name: mysql_port
desc: Port of MySQL server.
default: 0
- name: mysql_user
desc: |-
MySQL user name to use when connecting to the server.
Defaults to your username.
- name: net_avg_samples
desc: The number of samples to average for net data.
- name: no_buffers
desc: Subtract (file system) buffers from used memory.
- name: nvidia_display
desc: |-
The display that the nvidia variable will used.
default: $DISPLAY
- name: out_to_console
desc: Print text to stdout.
- name: out_to_http
desc: Let conky act as a small http-server serving its text.
- name: out_to_ncurses
desc: |-
Print text in the console, but use ncurses so that conky can
print the text of a new update over the old text. (In the future this
will provide more useful things).
- name: out_to_stderr
desc: Print text to stderr.
- name: out_to_wayland
desc: |-
Open a Wayland window to display output.
default: no
- name: out_to_x
desc: |-
When set to no, there will be no output in X (useful when
you also use things like out_to_console). If you set it to no, make
sure that it's placed before all other X-related setting (take the
first line of your configfile to be sure).
default: yes
- name: override_utf8_locale
desc: Force UTF8. Requires XFT.
- name: overwrite_file
desc: Overwrite the file given as argument.
- name: own_window
desc: Boolean, draw conky in own window instead of drawing on root window.
- name: own_window_argb_value
desc: |-
When ARGB visuals are enabled, this use this to modify the
alpha value used. Valid range is 0-255, where 0 is 0% opacity, and 255
is 100% opacity.
default: 255
args:
- integer_number
- name: own_window_argb_visual
desc: |-
Boolean, use ARGB visual? ARGB can be used for real transparency, note
that a composite manager is required on X11.
This option will not work as desired (in most cases) in conjunction with
'own_window_type override'.
- name: own_window_class
desc: Manually set the WM_CLASS name.
default: Conky
- name: own_window_colour
desc: |-
If own_window_transparent no, set a specified background
colour. Takes either a hex value (e.g. '#ffffff'),
a shorthand hex value (e.g. '#fff'), or a valid RGB name
(see `/usr/lib/X11/rgb.txt`).
default: black
args:
- color
- name: own_window_hints
desc: |-
If `own_window` is set, on X11 you may specify comma separated window
manager hints to affect the way Conky displays.
Following hints are some of the standard WM specification ones:
- `above` indicates that conky should be on top of most windows.
- `below` indicates that conky should be below most windows.
- `skip_pager` indicates that conky should not be included on a
Pager. **Implied if** `own_window_type` is 'dock' or 'panel'.
- `skip_taskbar` indicates that conky should not be included on a
taskbar. **Implied if** `own_window_type` is 'dock' or 'panel'.
- `sticky` indicates that the Window Manager SHOULD keep conky's
position fixed on the screen, even when the virtual desktop scrolls.
- `undecorated` indicates that conky shouldn't have any window
decorations (e.g. title bar). **Implied if** `own_window_type` is
'dock' or 'panel'.
Notes:
- Use `own_window_type='desktop'` setting as another way to implement many of these hints implicitly.
- If you use `own_window_type='override'`, window manager hints have no meaning and are ignored.
args:
- hint(,hint)*
- name: own_window_title
desc: |-
Allows overriding conky window name.
default: 'conky (<hostname>)'
- name: own_window_transparent
desc: |-
Make conky window transparent. If `own_window_argb_visual` is enabled,
sets background opacity to 0%.
default: false
- name: own_window_type
desc: |-
If `own_window` is set, under X11 you can specify type of window conky
displayed as:
- `normal` mode makes conky show as normal window. This mode can be
configured with use of `own_window_hints` setting.
- `desktop` windows are special windows that have no window decorations,
are always visible on the desktop, do not appear in pager or taskbar,
and are sticky across all workspaces. Many DEs include `desktop` windows
for background, icons and desktop menu, in those cases it might be
better to use `normal` or one of the below options, as those will cover
conky when they're clicked on.
- `dock` windows reserve space on the desktop, i.e. WMs will try their
best to not place windows on top of them. They're the same as `desktop`
in other respects, but render on top of `desktop` windows.
- `panel` windows are similar to `dock` windows, but they also reserve
space _along a desktop edge_ (like taskbars), preventing maximized
windows from overlapping them. The edge is chosen based on the
`alignment` setting.
- `utility` windows are persistent utility windows (e.g. a palette or
toolbox). They appear on top of other windows (in the same group), but
otherwise behave much like `normal` windows.
- `override` windows are drawn directly on root window (desktop
background) and are not under the control of the window manager. These
will not work with DEs which draw desktop icons via custom
panels/windows as those will cover conky.
`own_window_hints` are ignored for `override` windows.
To make conky mount on root window, set `own_window` to `false`.
default: normal
args:
- (normal|desktop|dock|panel|utility|override)
- name: pad_percents
desc: Pad percentages to this many decimals (0 = no padding).
- name: pop3
desc: |-
Default global POP3 server. Arguments are: `host user pass
[-i interval (in seconds)] [-p port] [-e 'command'] [-r retries]\".
Default port is 110, default interval is 5 minutes, and default number
of retries before giving up is 5. If the password is supplied as '*',
you will be prompted to enter the password when Conky starts.
args:
- host
- user
- pass
- [-i interval (in seconds)]
- [-p port]
- [-e 'command']
- [-r retries]
- name: short_units
desc: |-
Shortens units to a single character (kiB->k, GiB->G,
etc.).
default: no
- name: show_graph_range
desc: Shows the time range covered by a graph.
- name: show_graph_scale
desc: Shows the maximum value in scaled graphs.
- name: stippled_borders
desc: Border stippling (dashing) in pixels.
- name: store_graph_data_explicitly
desc: |-
Enable storing graph data explicitly by ID. This avoids resets while
using conditional colors. This option should be disabled while using
graphs indirectly e.g. via execpi or lua_parse. Otherwise the graph
stays emtpy. The default value is true.
default: true
- name: temperature_unit
desc: |-
Desired output unit of all objects displaying a temperature.
Parameters are either `fahrenheit` or `celsius`.
default: celsius
- name: templateN
desc: |-
Define a template for later use inside conky.text segments.
Substitute N by a digit between 0 and 9, inclusively. The value of the
variable is being inserted into the stuff inside conky.text at the
corresponding position, but before some substitutions are applied:
* `\\n` -> newline
* `\\` -> backslash
* `\\ ` -> space
* `\\N` -> template argument N (starting from 1)
- name: text_buffer_size
desc: |-
Size of the standard text buffer (default is 256 bytes).
This buffer is used for intermediary text, such as individual lines,
output from $exec vars, and various other variables. Increasing the
size of this buffer can drastically reduce Conky's performance, but
will allow for more text display per variable. The size of this buffer
cannot be smaller than the default value of 256 bytes.
args:
- seconds
- name: times_in_seconds
desc: |-
If true, variables that output times output a number that
represents seconds. This doesn't affect $time, $tztime and $utime.
- name: top_cpu_separate
desc: |-
If true, cpu in top will show usage of one processor's
power. If false, cpu in top will show the usage of all processors'
power combined.
- name: top_name_verbose
desc: |-
If true, top name shows the full command line of each
process, including arguments (whenever possible). Otherwise, only the
basename is displayed. Default value is false.
default: false
- name: top_name_width
desc: Width for $top name value (defaults to 15 characters).
- name: total_run_times
desc: |-
Total number of times for Conky to update before quitting.
Zero makes Conky run forever.
- name: units_spacer
desc: String to place between values and units.
default: ''
- name: update_interval
desc: Update interval.
args:
- seconds
- name: update_interval_on_battery
desc: Update interval when running on battery power.
args:
- seconds
- name: uppercase
desc: Boolean value, if true, text is rendered in upper case.
- name: use_spacer
desc: |-
Adds spaces around certain objects to stop them from moving
other things around. Arguments are left, right, and none (default).
The old true/false values are deprecated and default to right/none
respectively. Note that this only helps if you are using a mono font,
such as Bitstream Vera Sans Mono.
default: none
- name: use_xft
desc: Use Xft (anti-aliased font and stuff).
- name: xftalpha
desc: Alpha of Xft font. Must be a value at or between 1 and 0.
- name: xinerama_head
desc: Specify a Xinerama head.

211
doc/lua.yaml Normal file
View file

@ -0,0 +1,211 @@
# See README.md for details on doc processing.
#
# The `desc` field can be formatted with markdown, but please do not include
# headings (lines beginning with `#`) in the `desc` field.
#
# The supported fields are:
#
# * `name`: the name of the thing
# * `desc`: a markdown-formatted description of the thing
# * `args`: optional list of arguments
# * `default`: an optional default value, if applicable
---
desc: |-
Conky features a Lua Programming API, and also ships with Lua bindings
for some useful libraries. Note that the bindings require tolua++, which
currently only compiles against Lua 5.1.
To use Lua Conky, you first need to make sure you have a version of
Conky with Lua support enabled (`conky -v` will report this).
Conky defines certain global functions and variables which can be
accessed from Lua code running in Conky. Scripts must first be loaded
using the lua_load configuration option. You then call functions in Lua
via Conky's $lua, $lua_read, and Lua hooks.
Be careful when creating threaded objects through the Lua API. You could
wind up with a whole bunch of threads running if a thread is created
with each iteration.
NOTE: In order 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.
values:
- name: RsvgDimensionData:create()
desc: |-
Call this method to return a new RsvgDimensionData
structure. A creation function for this structure is not provided
by the Rsvg API.
After calling this, you should use `tolua.takeownership(rect)` on the return
value to ensure ownership is passed properly.
- name: RsvgDimensionData:destroy()
desc: |-
Call this method to free memory allocated by
`RsvgDimensionData:create`.
You should call `tolua.releaseownership(dd)` before calling this function to
avoid double-frees, but only if you previously called
`tolua.takeownership(dd)`
- name: RsvgDimensionData:get()
desc: |-
Gets the values of an existing RsvgDimensionData.
- name: RsvgDimensionData:set(x, y, width, height)
desc: |-
Sets the values of an existing RsvgDimensionData.
- name: RsvgRectangle:create()
desc: |-
Call this method to return a new RsvgRectangle
structure. A creation function for this structure is not provided
by the Rsvg API.
After calling this, you should use `tolua.takeownership(rect)` on the return
value to ensure ownership is passed properly.
- name: RsvgRectangle:destroy()
desc: |-
Call this method to free memory allocated by
`RsvgRectangle:create`.
You should call `tolua.releaseownership(rect)` before calling this function to
avoid double-frees, but only if you previously called
`tolua.takeownership(rect)`
- name: RsvgRectangle:get()
desc: |-
Gets the values of an existing RsvgRectangle.
- name: RsvgRectangle:set(x, y, width, height)
desc: |-
Sets the values of an existing RsvgRectangle.
- name: cairo_font_extents_t:create()
desc: |-
Call this function to return a new cairo_font_extents_t
structure. A creation function for this structure is not provided
by the cairo API.
After calling this, you should use
`tolua.takeownership(cfe)` on the return value to ensure ownership is
passed properly.
- name: cairo_font_extents_t:destroy(structure)
desc: |-
Call this function to free memory allocated by
cairo_font_extents_t:create.
You should call `tolua.releaseownership(cfe)` before calling this function to
avoid double-frees, but only if you previously called
`tolua.takeownership(cfe)`
- name: cairo_matrix_t:create()
desc: |-
Call this function to return a new cairo_matrix_t structure.
A creation function for this structure is not provided by the
cairo API.
After calling this, you should use
`tolua.takeownership(cm)` on the return value to ensure ownership is
passed properly.
- name: cairo_matrix_t:destroy(structure)
desc: |-
Call this function to free memory allocated by
cairo_matrix_t:create.
You should call `tolua.releaseownership(cm)` before calling this function to
avoid double-frees, but only if you previously called
`tolua.takeownership(cm)`
- name: cairo_place_image(file, cr, x, y, width, height, alpha)
desc: |-
Renders an image onto a cairo_t, using imlib2. In some cases using a cairo_t and exact coordinates is more
useful.
| Argument | Description |
|---------------------|--------------------------------------------------------------------------------------|
| file | Path to the image to render. |
| cr | The `cairo_t` to render to. |
| x,y | Position to render the image. |
| width, height | The width and height to draw the image |
| alpha | The transparency of the image 1.0 is solid 0.0 is fully translucent. |
require('cairo_imlib2_helper') in your lua file.
- name: cairo_text_extents_t:create()
desc: |-
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.
- name: cairo_text_extents_t:destroy(structure)
desc: |-
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)`
- name: conky_build_arch
desc: |-
A string containing the build architecture for this
particular instance of Conky.
- name: conky_build_info
desc: |-
A string containing the build info for this particular
instance of Conky, including the version, build date, and
architecture.
- name: conky_config
desc: |-
A string containing the path of the current Conky
configuration file.
- name: conky_info
desc: |-
This table contains some information about Conky's internal
data. The following table describes the values contained:
| Key | Value |
|-----------------|---------------------------------------|
| update_interval | Conky's update interval (in seconds). |
- name: conky_parse(string)
desc: |-
This function takes a string that is evaluated as per
Conky's TEXT section, and then returns a string with the
result.
- name: conky_set_update_interval(number)
desc: |-
Sets Conky's update interval (in seconds) to
'number'.
- name: conky_version
desc: |-
A string containing the version of the current instance of
Conky.
- name: conky_window
desc: |-
This table contains some information about Conky's window.
The following table describes the values contained:
| Key | Value |
|---------------------|---------------------------------------------------------------------------------|
| drawable | Window's drawable (Xlib Drawable), requires Lua extras enabled at compile time. |
| visual | Window's visual (Xlib Visual), requires Lua extras enabled at compile time. |
| display | Window's display (Xlib Display), requires Lua extras enabled at compile time. |
| width | Window width (in pixels). |
| height | Window height (in pixels). |
| 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 X support is
enabled.
- name: ret_scale_x,ret_scale_y:cairo_draw_image(file, cs, x, y, scale_x, scale_y)
desc: |-
Renders an image onto a cairo_surface_t, using imlib2. Returns the amount the image was scaled by
| Argument | Description |
|---------------------|--------------------------------------------------------------------------------------|
| file | Path to the image to render. |
| cs | The `cairo_surface_t` to render to. |
| x,y | Position to render the image. |
| scale_x, scale_y | The amount to scale the image, 1.0 provides no scaling, 2.0 for twice the size and |
| | 0.5 for half size etc. |
| | Default value: No Scaling (1.0,1.0) |
require('cairo_imlib2_helper') in your lua file.

282
doc/man.md.j2 Normal file
View file

@ -0,0 +1,282 @@
% conky(1)
%
% {{ date }}
# NAME
conky - A system monitor for X
# SYNOPSIS
**conky** \[ *options* \]
# DESCRIPTION
Conky is a system monitor for X originally based on torsmo. Since its
inception, Conky has changed significantly from its predecessor, while
maintaining simplicity and configurability. Conky can display just about
anything, either on your root desktop or in its own window. Not only
does Conky have many built-in objects, it can also display just about
any piece of information by using scripts and other external programs.
Conky has more than 250 built in objects, including support for a
plethora of OS stats (uname, uptime, CPU usage, mem usage, disk usage,
\"top\" like process stats, and network monitoring, just to name a few),
built in IMAP and POP3 support, built in support for many popular music
players (MPD, XMMS2, 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.
# COMPILING
For users compiling from source on a binary distro, make sure you have
the X development libraries installed (Unless you configure your build
without X11). This should be a package along the lines of \"libx11-dev\"
or \"xorg-x11-dev\" for X11 libs, and similar \"-dev\" format for the
other libs required (depending on your build options). You should be
able to see which extra packages you need to install by reading errors
that you get from running \`cmake\'. The easiest way to view the
available build options is to run \`ccmake\' or \`cmake-gui\' from the
source tree, but be careful when disabling certain features as you may
lose desired functionality. E.g., with BUILD_MATH disabled you won\'t
get errors but logarithmic graphs will be normal graphs and gauges will
miss their line.
Conky has (for some time) been available in the repositories of most
popular distributions. Here are some installation instructions for a
few:
Gentoo users \-- Conky is in Gentoo\'s Portage\... simply use \"emerge
app-admin/conky\" for installation.
Debian, etc. users \-- Conky should be in your repositories, and can be
installed by doing \"aptitude install conky\".
Example to compile and run Conky with default components (note that some
build options may differ for your system):
**cmake** **-D CMAKE_INSTALL_PREFIX:string=/usr .**
:
**make**
:
**make install** **\# Optional**
:
**src/conky**
:
Conky has been tested to be compatible with C99 C and C++0x C++, however
it has not been tested with anything other than gcc, and is not
guaranteed to work with other compilers.
TIP: Try configuring Conky with \`ccmake\' or \`cmake-gui\' instead of
just \`cmake\'.
# YOU SHOULD KNOW
Conky is generally very good on resources. That said, the more you try
to make Conky do, the more resources it is going to consume.
An easy way to force Conky to reload your *\~/.config/conky/conky.conf*:
\"killall -SIGUSR1 conky\". Saves you the trouble of having to kill and
then restart.
# OPTIONS
Command line options override configurations defined in configuration
file.
**-a \| \--alignment=** **ALIGNMENT**
: Text alignment on screen, {top,bottom,middle}\_{left,right,middle}
or none. Can also be abbreviated with first chars of position, ie.
tr for top_right. Only available with build flag BUILD_X11 enabled.
**-b \| \--double-buffer**
: Use double buffering (eliminates \"flicker\"). Only available with
build flag BUILD_X11 enabled.
**-c \| \--config=** **FILE**
: Config file to load instead of *\~/.config/conky/conky.conf*.
**-C \| \--print-config**
: Print builtin default config to stdout. See also the section
EXAMPLES for more information. Only available with build flag
BUILD_BUILTIN_CONFIG enabled.
**-d \| \--daemonize**
: Daemonize Conky, aka fork to background.
**-D \| \--debug**
: Increase debugging output, ie. -DD for more debugging.
**-f \| \--font=** **FONT**
: Font to use. Only available with build flag BUILD_X11 enabled.
**-h \| \--help**
: Prints command line help and exits.
**-i** **COUNT**
: Number of times to update Conky (and quit).
**-o \| \--own-window**
: Create own window to draw. Only available with build flag BUILD_X11
enabled.
**-p \| \--pause=** **SECONDS**
: Time to pause/wait before actually starting Conky.
**-q \| \--quiet**
: Run Conky in \'quiet mode\' (ie. no output).
**-t \| \--text=** **TEXT**
: Text to render, remember single quotes, like -t \' \$uptime \'.
**-u \| \--interval=** **SECONDS**
: Update interval.
**-v \| -V \| \--version**
: Prints version, build information and general info. Exits after
printing.
**-w \| \--window-id=** **WIN_ID**
: Window id to draw. Only available with build flag BUILD_X11 enabled.
**-x** **X_COORDINATE**
: X position.
**-X \| \--display=** **DISPLAY**
: X11 display to use. Only available with build flag BUILD_X11
enabled.
**-y** **Y_COORDINATE**
: Y position.
# CONFIGURATION SETTINGS
{{ config_settings['desc'] }}
{% for item in config_settings['values'] %}
**{{ item.name }}** {% if item.args %}**{{ item.args | join(" ") }}**{% endif %}
: {{ item.desc | indent(width=4) }}
{%- if item.default %}
Default: {{ item.default }}
{%- endif %}
{% endfor %}
# OBJECTS/VARIABLES
{{ variables['desc'] }}
{% for item in variables['values'] %}
**{{ item.name }}** {% if item.args %}**{{ item.args | join(" ") }}**{% endif %}
: {{ item.desc | indent(width=4) }}
{%- if item.default %}
Default: {{ item.default }}
{%- endif %}
{% endfor %}
# LUA API
{{ lua['desc'] }}
{% for item in lua['values'] %}
**{{ item.name }}** {% if item.args %}**{{ item.args | join(" ") }}**{% endif %}
: {{ item.desc | indent(width=4) }}
{%- if item.default %}
Default: {{ item.default }}
{%- endif %}
{% endfor %}
# 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.
# SEE ALSO
*https://github.com/brndnmtthws/conky*
# COPYING
Copyright (c) 2005-{{ copyright_year }} 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).

41
doc/render.py Executable file
View file

@ -0,0 +1,41 @@
#!/usr/bin/env python3
import sys
import os
import yaml
import datetime
base_path = os.path.dirname(os.path.realpath(__file__))
with open(os.path.join(base_path, "config_settings.yaml")) as file:
config_settings = yaml.safe_load(file)
with open(os.path.join(base_path, "variables.yaml")) as file:
variables = yaml.safe_load(file)
with open(os.path.join(base_path, "lua.yaml")) as file:
lua = yaml.safe_load(file)
data = {
"config_settings": config_settings,
"variables": variables,
"lua": lua,
"date": datetime.date.today().isoformat(),
"copyright_year": datetime.date.today().year,
}
from jinja2 import Environment, FileSystemLoader, select_autoescape
def reverse_format(param_list, format_string):
return format_string.format(param_list)
env = Environment(
loader=FileSystemLoader("."),
autoescape=select_autoescape(),
)
env.filters["reverse_format"] = reverse_format
template = env.get_template(sys.argv[1])
print(template.render(data))

2478
doc/variables.yaml Normal file

File diff suppressed because it is too large Load diff