2018-10-21 10:49:31 +02:00
|
|
|
# Contrib
|
|
|
|
|
2013-06-01 00:09:51 +02:00
|
|
|
Contrib libraries, or widget types, are extra snippets of code you can
|
|
|
|
use. Some are for less common hardware, and other were contributed by
|
|
|
|
Vicious users. The contrib directory also holds widget types that were
|
|
|
|
obsoleted or rewritten. Contrib widgets will not be imported by init
|
|
|
|
unless you explicitly enable it, or load them in your rc.lua.
|
2012-06-25 01:22:53 +02:00
|
|
|
|
2018-10-21 10:49:31 +02:00
|
|
|
## Usage within Awesome
|
2012-06-25 01:22:53 +02:00
|
|
|
|
|
|
|
To use contrib widgets uncomment the line that loads them in
|
|
|
|
init.lua. Or you can load them in your rc.lua after you require
|
|
|
|
Vicious:
|
|
|
|
|
2017-11-22 22:01:30 +01:00
|
|
|
```lua
|
2018-10-21 10:49:31 +02:00
|
|
|
local vicious = require("vicious")
|
2017-11-22 22:01:30 +01:00
|
|
|
vicious.contrib = require("vicious.contrib")
|
|
|
|
```
|
2011-01-13 04:04:12 +01:00
|
|
|
|
2018-10-21 10:49:31 +02:00
|
|
|
## Widget types
|
2011-01-13 04:04:12 +01:00
|
|
|
|
2018-10-21 10:49:31 +02:00
|
|
|
Most widget types consist of worker functions that take the `format`
|
|
|
|
argument given to vicious.register as the first argument, `warg` as
|
2011-01-13 04:04:12 +01:00
|
|
|
the second, and return a table of values to insert in the format
|
|
|
|
string. But we have not insisted on this coding style in contrib. So
|
|
|
|
widgets like PulseAudio have emerged that are different. These widgets
|
|
|
|
could also depend on Lua libraries that are not distributed with the
|
|
|
|
core Lua distribution. Ease of installation and use does not
|
|
|
|
necessarily have to apply to contributed widgets.
|
|
|
|
|
2018-10-21 10:49:31 +02:00
|
|
|
### vicious.contrib.ac
|
|
|
|
|
|
|
|
Provide status about the power supply (AC).
|
2017-01-25 19:42:04 +01:00
|
|
|
|
2018-10-21 10:49:31 +02:00
|
|
|
Supported platforms: GNU/Linux, requiring `sysfs`.
|
2017-01-25 19:42:04 +01:00
|
|
|
|
2018-10-21 10:49:31 +02:00
|
|
|
* Argument: the AC device, i.e `"AC"` or `"ACAD"`. The device is linked under
|
|
|
|
`/sys/class/power_supply/` and should have a file called `online`.
|
|
|
|
* Returns `{"On"}` if AC is connected, else `{"Off"}`. If AC doesn't exist,
|
|
|
|
returns `{"N/A"}`.
|
2012-04-01 14:55:49 +02:00
|
|
|
|
2018-10-21 10:49:31 +02:00
|
|
|
### vicious.contrib.ati
|
2017-01-25 19:45:19 +01:00
|
|
|
|
|
|
|
Provides various info about ATI GPU status.
|
|
|
|
|
2018-10-21 10:49:31 +02:00
|
|
|
Supported platforms: GNU/Linux, requiring `sysfs`.
|
|
|
|
|
|
|
|
* Argument: card ID, e.g. `"card0"` (and where possible,
|
|
|
|
uses `debugfs` to gather data on radeon power management)
|
|
|
|
* Returns a table with string keys: `${method}`, `${dpm_state}`,
|
|
|
|
`${dpm_perf_level}`, `${profile}`, `${engine_clock mhz}`,
|
|
|
|
`${engine_clock khz}`, `${memory_clock mhz}`, `${memory_clock khz}`,
|
|
|
|
`${voltage v}`, `${voltage mv}`
|
|
|
|
|
|
|
|
### vicious.contrib.batpmu
|
|
|
|
|
|
|
|
### vicious.contrib.batproc
|
|
|
|
|
|
|
|
### vicious.contrib.btc
|
|
|
|
|
|
|
|
Provides current Bitcoin price in any currency by
|
|
|
|
[code](https://en.wikipedia.org/wiki/ISO_4217).
|
2013-11-02 18:07:11 +01:00
|
|
|
|
2011-01-13 04:04:12 +01:00
|
|
|
|
2018-10-21 10:49:31 +02:00
|
|
|
Platform independent, although requiring `curl` and either
|
|
|
|
[lua-cjson](https://github.com/mpx/lua-cjson/) or
|
|
|
|
[luajson](https://github.com/harningt/luajson/).
|
2011-01-13 04:04:12 +01:00
|
|
|
|
2018-10-21 10:49:31 +02:00
|
|
|
* Argument: currency code, e.g. `"usd"`, `"rub"` and other. Default to `"usd"`.
|
|
|
|
* Returns a table with string key `${price}`.
|
2017-11-22 15:22:52 +01:00
|
|
|
|
2018-10-21 10:49:31 +02:00
|
|
|
### vicious.contrib.buildbot
|
2017-11-25 10:22:36 +01:00
|
|
|
|
2018-10-21 10:49:31 +02:00
|
|
|
Provides last build status for configured buildbot builders
|
|
|
|
(http://trac.buildbot.net/).
|
2017-11-22 15:22:52 +01:00
|
|
|
|
2018-10-21 10:49:31 +02:00
|
|
|
Supported platforms: platform independent, though requiring Lua JSON parser
|
|
|
|
[luajson](https://github.com/harningt/luajson/).
|
2017-11-22 15:22:52 +01:00
|
|
|
|
2018-10-21 10:49:31 +02:00
|
|
|
Returns build status in the format:
|
|
|
|
`[<builderName>.<currentBuildNumber>.<lastSuccessfulBuildNumber>]`.
|
|
|
|
If `<currentBuildNumber>` is the same as `<lastSuccessfulBuildNumber>` only one
|
|
|
|
number is displayed. `<buildNumber>` colors: red - failed, green - successful,
|
|
|
|
yellow - in progress.
|
2017-01-25 19:51:05 +01:00
|
|
|
|
2018-10-21 10:49:31 +02:00
|
|
|
### vicious.contrib.countfiles
|
|
|
|
|
|
|
|
### vicious.contrib.cmus
|
2017-11-22 22:01:30 +01:00
|
|
|
|
2019-07-04 16:46:58 +02:00
|
|
|
NOTE: This widget type has been promoted to `widgets`.
|
|
|
|
|
2017-11-22 22:01:30 +01:00
|
|
|
Provides cmus player information using `cmus-remote`.
|
2018-10-21 10:49:31 +02:00
|
|
|
|
2017-11-22 22:01:30 +01:00
|
|
|
Supported platforms: platform independent.
|
|
|
|
|
2018-10-21 10:49:31 +02:00
|
|
|
* Argument: a table whose first field is the socket including host (or nil).
|
|
|
|
* Returns a table with string keys: `${status}`, `${artist}`, `${title}`,
|
|
|
|
`${duration}`, `${file}`, `${continue}`, `${shuffle}`, `${repeat}`.
|
2017-11-22 22:01:30 +01:00
|
|
|
|
2018-10-21 10:49:31 +02:00
|
|
|
### vicious.contrib.dio
|
2017-01-25 19:52:52 +01:00
|
|
|
|
2018-10-21 10:49:31 +02:00
|
|
|
Provides I/O statistics for requested storage devices.
|
2017-01-25 19:52:52 +01:00
|
|
|
|
2018-10-21 10:49:31 +02:00
|
|
|
* Argument: the disk as an argument, i.e. `"sda"`, or a specific
|
|
|
|
partition, i.e. `"sda/sda2"`
|
|
|
|
* Returns a table with string keys: `${total_s}`, `${total_kb}`, `${total_mb}`,
|
|
|
|
`${read_s}`, `${read_kb}`, `${read_mb}`, `${write_s}`, `${write_kb}`,
|
|
|
|
`${write_mb}` and `${sched}`
|
2011-03-29 02:21:53 +02:00
|
|
|
|
2018-10-21 10:49:31 +02:00
|
|
|
### vicious.contrib.mpc
|
2011-01-13 04:04:12 +01:00
|
|
|
|
2018-10-21 10:49:31 +02:00
|
|
|
### vicious.contrib.netcfg
|
2011-01-13 04:04:12 +01:00
|
|
|
|
2018-10-21 10:49:31 +02:00
|
|
|
### vicious.contrib.net
|
2011-01-13 04:04:12 +01:00
|
|
|
|
2018-10-21 10:49:31 +02:00
|
|
|
### vicious.contrib.openweather
|
2017-01-25 20:06:45 +01:00
|
|
|
|
|
|
|
Provides weather information for a requested city
|
|
|
|
|
2018-10-21 10:49:31 +02:00
|
|
|
* Argument: OpenWeatherMap city ID, e.g. `"1275339"`
|
|
|
|
* Returns a table with string keys: `${city}`, `${wind deg}`, `${wind aim}`,
|
|
|
|
`${wind kmh}`, `${wind mps}`, `${sky}`, `${weather}`, `${temp c}`,
|
|
|
|
`${humid}` and `${press}`
|
|
|
|
|
|
|
|
### vicious.contrib.nvinf
|
2013-11-02 18:07:11 +01:00
|
|
|
|
2018-10-21 10:49:31 +02:00
|
|
|
Provides GPU utilization, core temperature, clock frequency information about
|
|
|
|
Nvidia GPU from nvidia-settings
|
2017-01-25 20:02:28 +01:00
|
|
|
|
|
|
|
Supported Platforms: platform independent
|
|
|
|
|
2018-10-21 10:49:31 +02:00
|
|
|
* Argument (optional): card ID as an argument, e.g. `"1"`, default to ID 0
|
|
|
|
* Returns an array containing:
|
|
|
|
* `$1`: Usage of GPU core
|
|
|
|
* `$2`: Usage of GPU memory
|
|
|
|
* `$3`: Usage of video engine
|
|
|
|
* `$4`: Usage of PCIe bandwidth
|
|
|
|
* `$5`: Uemperature of requested graphics device
|
|
|
|
* `$6`: Urequency of GPU core
|
|
|
|
* `$7`: Uemory transfer rate
|
2015-07-19 14:51:00 +02:00
|
|
|
|
2018-10-21 10:49:31 +02:00
|
|
|
### vicious.contrib.nvsmi
|
2017-01-25 20:05:01 +01:00
|
|
|
|
|
|
|
Provides (very basic) information about Nvidia GPU status from SMI
|
|
|
|
|
2018-10-21 10:49:31 +02:00
|
|
|
Supported platforms: platform independent
|
|
|
|
|
|
|
|
* Argument (optional): card ID as an argument, e.g. `"1"`, default to ID 0
|
|
|
|
* Returns an array containing temperature of requested graphics device
|
2014-02-09 19:28:28 +01:00
|
|
|
|
2018-10-21 10:49:31 +02:00
|
|
|
### vicious.contrib.ossvol
|
2011-01-13 04:04:12 +01:00
|
|
|
|
2018-10-21 10:49:31 +02:00
|
|
|
### vicious.contrib.pop
|
2011-01-13 04:04:12 +01:00
|
|
|
|
2018-10-21 10:49:31 +02:00
|
|
|
### vicious.contrib.pulse
|
2017-01-25 20:10:04 +01:00
|
|
|
|
|
|
|
Provides volume levels of requested pulseaudio sinks and functions to
|
|
|
|
manipulate them
|
|
|
|
|
2018-10-21 10:49:31 +02:00
|
|
|
* Argument (optional): name of a sink as an optional argument. A number will
|
|
|
|
be interpret as an index, if no argument is given, it will take the
|
|
|
|
first-best. To get a list of available sinks run
|
|
|
|
`pacmd list-sinks | grep 'name:'`.
|
|
|
|
* Returns an array whose only element is the volume level
|
2017-01-25 19:49:53 +01:00
|
|
|
|
2018-10-21 10:49:31 +02:00
|
|
|
#### vicious.contrib.pulse.add(percent[, sink])
|
2011-01-13 04:04:12 +01:00
|
|
|
|
2018-10-21 10:49:31 +02:00
|
|
|
* `percent` is the percentage to increment or decrement the volume from its
|
|
|
|
current value
|
|
|
|
* Returns the exit status of `pacmd`
|
|
|
|
|
|
|
|
#### vicious.contrib.pulse.toggle([sink])
|
|
|
|
|
|
|
|
* Toggles mute state
|
|
|
|
* Returns the exit status of `pacmd`
|
|
|
|
|
|
|
|
### vicious.contrib.rss
|
|
|
|
|
|
|
|
### vicious.contrib.sensors
|
|
|
|
|
|
|
|
### vicious.contrib.wpa
|
|
|
|
|
|
|
|
Provides information about the wifi status.
|
|
|
|
|
|
|
|
Supported Platforms: platform independent, requiring `wpa_cli`.
|
|
|
|
|
|
|
|
* Argument: the interface, e.g. `"wlan0"` or `"wlan1"`
|
|
|
|
* Returns a table with string keys: `${ssid}`, `${qual}`, `${ip}`, `${bssid}`
|
|
|
|
|
|
|
|
## Usage examples
|
|
|
|
|
|
|
|
### Pulse Audio widget:
|
|
|
|
|
|
|
|
```lua
|
|
|
|
vol = wibox.widget.textbox()
|
|
|
|
local sink = "alsa_output.pci-0000_00_1b.0.analog-stereo"
|
|
|
|
vicious.register(vol, vicious.contrib.pulse, " $1%", 2, sink)
|
|
|
|
vol:buttons(awful.util.table.join(
|
|
|
|
awful.button({}, 1, function () awful.util.spawn("pavucontrol") end),
|
|
|
|
awful.button({}, 4, function () vicious.contrib.pulse.add(5, sink) end),
|
|
|
|
awful.button({}, 5, function () vicious.contrib.pulse.add(-5, sink) end)))
|
|
|
|
```
|
2013-06-01 00:09:51 +02:00
|
|
|
|
2018-10-21 10:49:31 +02:00
|
|
|
### Buildbot widget
|
2017-11-22 22:01:30 +01:00
|
|
|
|
|
|
|
```lua
|
2018-10-21 10:49:31 +02:00
|
|
|
buildbotwidget = wibox.widget.textbox()
|
|
|
|
vicious.register(
|
|
|
|
buildbotwidget, vicious.contrib.buildbot, "$1,", 3600,
|
|
|
|
{{builder="coverage", url="http://buildbot.buildbot.net"},
|
|
|
|
{builder="tarball-slave", url="http://buildbot.buildbot.net"}})
|
2017-11-22 22:01:30 +01:00
|
|
|
```
|