monky-2.0.0.0: A system state collecting library and application
monky started as an alternative to conky, i3-status or similar, that's fully containing in one process. Also making an effort to keep file descriptors or handles as long as possible. monky 2.0 is the first version on hackage.
monky consists of multiple parts. A number of collection modules, output modules, "examples" and a helper application.
- collection modules
The collection modules are the core library. Collection modules export a handle that can be used to get some detail about the system. They can be used without the other parts of this package, but they are designed with monky in mind.
- output modules
Output modules take a monky specific output type and transform it into something that can be displayed by some external application. That may be a statusbar (dzen2), the terminal, a network port, that makes it accessible on another machine, or any other thing.
- examples
The examples are a group of modules, that use collection modules to create the output used by the output modules. The flexibility of the examples varies greatly, some may are really flexible, some are rather static. The intended usecase is for users to create their own examples and use them, if they don't want to use the provided ones.
Later on, I want to create something like xmonad-contrib or a collection of user examples, to provide better usability for users with few to no experience with haskell.
- helper application
The helper application is used to compile the actual output generator and can generate an example configuration.
To generate an example configuration in ~/.monky simply run monky
.
Then modify ~/.monky/monky.hs to create your own configuration.
Modules can have two types. PollModule
and EvtModule
. PollModule
s work by the main loop
asking the module to generate new output, while EvtModule
s block until some event is received and
update their output on demand. Some handles are an instance of both, PollModule
and EvtModule
.
EvtModule
should be preferred, since they induce less load on your system.
The monky main-loop does one "tick" every second. PollModules
are updated each N ticks, where
N is passed to pollPack
.
- Monky The main module for monky
- Monky.Alsa Allows acces to information about the alsa sound system
- Monky.Battery Allows access to information about a battery connected to the system
- Monky.Blkid Minimal access to liblkid
- Monky.CPU Allows access to information about the systems cpu
- Monky.Connectivity Allows the user to get a connected state
- Monky.Disk Allows access to information about a btrfs pool
- Monky.Disk.Btrfs Allows access to information about a btrfs pool
- Monky.Disk.Common Provides the common disk interfaces
- Monky.Disk.Device Allows access to information about generic block device
- Examples
- Monky.Examples.Alsa An example module instance for the alsa module
- Monky.Examples.Battery An example module instance for the battery module
- Monky.Examples.CPU An example module instance for the cpu module
- Monky.Examples.Combine Combine multiple modules into one (to avoid seperators)
- Monky.Examples.Connectivity Simple Connectivity example
- Monky.Examples.Disk An example module instance for the disk module
- Monky.Examples.File Display the first line in a file each tick
- Monky.Examples.IBus An example of how to use the ibus-hs package
- Monky.Examples.MPD An example module instance for the MPD module
- Monky.Examples.Memory An example module instance for the memory module
- Monky.Examples.Network An example module instance for the network module
- Monky.Examples.Plain Print some constant values
- Monky.Examples.Prepend Prepend something to a module
- Monky.Examples.Time An example module instance for the time module
- Monky.Examples.Utility Provides utility functions for module implementations
- Monky.Examples.Wifi An example module instance for the wifi module
- Monky.MPD Allows to query information from an mpd server
- Monky.Memory Allows to access information about they systems main memory
- Monky.Modules The module definition used by
startLoop
- Monky.Network Allows access to information about they systems network
- Monky.Network.Dynamic Allows access to information about they systems network
- Monky.Network.Static Allows access to information about they systems network
- Outputs
- Monky.Outputs.Ascii Output module for Ascii
- Monky.Outputs.Dzen2 Output module for dzen2
- Monky.Outputs.Fallback Output module for doing a "best guess"
- Monky.Outputs.Serialize Output module for storing
- Monky.Outputs.Show Output module for storing
- Monky.Outputs.Utf8 Output module for utf8
- Monky.Time Allows access to read system time
- Monky.Utility Provides utility functions
- Monky.Version The current version of the package, this updates from monky.hs
- Monky.Wifi Gives access to wifi status