awesome-wm-widgets/_widgets/cpu-widget.md

75 lines
2.1 KiB
Markdown
Raw Normal View History

2018-09-15 23:33:42 +02:00
---
layout: page
---
# CPU widget
2020-11-15 03:26:34 +01:00
[![GitHub issues by-label](https://img.shields.io/github/issues-raw/streetturtle/awesome-wm-widgets/cpu)](https://github.com/streetturtle/awesome-wm-widgets/labels/cpu)
2018-09-15 23:33:42 +02:00
This widget shows the average CPU load among all cores of the machine:
2022-01-24 03:05:55 +01:00
![screenshot](../awesome-wm-widgets/assets/img/widgets/screenshots/cpu-widget/cpu.gif)
2018-09-15 23:33:42 +02:00
## How it works
2020-11-15 03:26:34 +01:00
To measure the load I took Paul Colby's bash [script](http://colby.id.au/calculating-cpu-usage-from-proc-stat/) and rewrote it in Lua, which was quite simple.
2018-09-15 23:33:42 +02:00
So awesome simply reads the first line of /proc/stat:
```bash
$ cat /proc/stat | grep '^cpu '
cpu 197294 718 50102 2002182 3844 0 2724 0 0 0
```
and calculates the percentage.
2019-12-15 21:38:54 +01:00
## Customization
It is possible to customize widget by providing a table with all or some of the following config parameters:
| Name | Default | Description |
|---|---|---|
| `width` | 50 | Width of the widget |
| `step_width` | 2 | Width of the step |
| `step_spacing` | 1 | Space size between steps |
| `color` | `beautiful.fg_normal` | Color of the graph |
2023-09-21 14:46:25 +02:00
| `enable_kill_button` | false | Show button which kills the process |
| `process_info_max_length` | -1 | Truncate the process information. Some processes may have a very long list of parameters which won't fit in the screen, this options allows to truncate it to the given length. |
2020-11-15 03:26:34 +01:00
| `timeout` | 1 | How often in seconds the widget refreshes |
2018-09-15 23:33:42 +02:00
2019-12-15 21:38:54 +01:00
### Example
2018-09-25 01:18:45 +02:00
2019-12-15 21:38:54 +01:00
```lua
cpu_widget({
width = 70,
step_width = 2,
step_spacing = 0,
color = '#434c5e'
})
```
The config above results in the following widget:
2018-09-25 01:18:45 +02:00
2022-01-24 03:05:55 +01:00
![custom](../awesome-wm-widgets/assets/img/widgets/screenshots/cpu-widget/custom.png)
2018-09-25 01:18:45 +02:00
2019-12-15 21:38:54 +01:00
## Installation
2018-09-25 01:18:45 +02:00
2019-12-15 21:38:54 +01:00
Clone/download repo and use widget in **rc.lua**:
2018-09-25 01:18:45 +02:00
2019-12-15 21:38:54 +01:00
```lua
local cpu_widget = require("awesome-wm-widgets.cpu-widget.cpu-widget")
...
s.mytasklist, -- Middle widget
{ -- Right widgets
layout = wibox.layout.fixed.horizontal,
...
-- default
cpu_widget(),
-- or custom
cpu_widget({
width = 70,
step_width = 2,
step_spacing = 0,
color = '#434c5e'
})
...
```