System information agregator
Go to file
2024-08-20 23:08:34 +00:00
lib add some checks for whether exec cmd exits non-0 or output is blank 2024-08-20 23:08:29 +00:00
.editorconfig first prototype version 2024-07-30 04:02:05 -04:00
.gitignore name change and more modules added. config not started. 2024-08-14 12:28:29 -04:00
config.go make each reader func return a func, as well as add an exec reader. 2024-08-20 21:58:40 +00:00
go.mod allow setting the x root window name 2024-08-20 22:33:37 +00:00
go.sum allow setting the x root window name 2024-08-20 22:33:37 +00:00
LICENSE first prototype version 2024-07-30 04:02:05 -04:00
main.go add some checks for whether exec cmd exits non-0 or output is blank 2024-08-20 23:08:29 +00:00
README.md add example output section 2024-08-20 23:08:34 +00:00

modbot

modbot is a seriously over-engineered program for querying different information about your system. Often used with a status bar like dzen, lemonbar, or even the dwm status bar via the -x flag.

Each part of the output is a module, and modbot is an agregator for these modules. You can query different information about your system like load average, CPU temperature, wireless SSID, and even the output of an arbitrary command or file.

The modules that are in the output are determined at compile time, within the config.go file.

Attributions

This project was inspired by gocaudices, which I've used in the past. I created this to be window manager and status bar agnostic, in addition to allowing more options for where the input comes from.

Some ideas for how special cases should be handled were taken from mblocks, which is another great project in the same vein as this.

Usage

Usage of modbot:
  -x    set x root window name

Example

Configuration

var (
        delim  = "] ["
        prefix = "["
        suffix = "]"
)

var modules = []Module{
        {
                Func:     readers.ReadExec("statusbar cpu"),
                Interval: 5 * time.Second,
        },
        {
                Func:   readers.ReadExec("statusbar volume"),
                Signal: 1,
        },
        {
                Func:     readers.ReadExec("statusbar battery"),
                Interval: 60 * time.Second,
        },
        {
                Func:     readers.ReadExec("statusbar date"),
                Interval: 1 * time.Second,
        },
        {
                Func:     readers.ReadExec("statusbar loadavg"),
                Interval: 5 * time.Second,
        },
}

Output

[CPU 8%] [VOL 35%] [AC 71%] [23:04:02] [0.36]

Do note that the output is arbitrary as the scripts are not part of the program.