monky-2.1.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
.
- MonkyThe main module for monky
- Monky.AlsaAllows acces to information about the alsa sound system
- Monky.BatteryAllows access to information about a battery connected to the system
- Monky.BlkidMinimal access to liblkid
- Monky.CPUAllows access to information about the systems cpu
- Monky.ConnectivityAllows the user to get a connected state
- Monky.DiskAllows access to information about a btrfs pool
- Monky.Disk.BtrfsAllows access to information about a btrfs pool
- Monky.Disk.CommonProvides the common disk interfaces
- Monky.Disk.DeviceAllows access to information about generic block device
- Examples
- Monky.Examples.AlsaProxy module for backwards compat. See Monky.Examples.Sound.Alsa
- Monky.Examples.BatteryAn example module instance for the battery module
- Monky.Examples.CPUAn example module instance for the cpu module
- Monky.Examples.CombineCombine multiple modules into one (to avoid seperators)
- Monky.Examples.ConnectivitySimple Connectivity example
- Monky.Examples.DiskAn example module instance for the disk module
- Monky.Examples.FileDisplay the first line in a file each tick
- Monky.Examples.ImagesExports
MonkyImage
s that can/should be used. - Monky.Examples.MemoryAn example module instance for the memory module
- Monky.Examples.Modify
- Monky.Examples.NetworkAn example module instance for the network module
- Monky.Examples.PlainPrint some constant values
- Monky.Examples.PrependPrepend something to a module
- Sound
- Monky.Examples.Sound.AlsaAn example module instance for the alsa module
- Monky.Examples.TimeAn example module instance for the time module
- Monky.Examples.UtilityProvides utility functions for module implementations
- Monky.Examples.WifiAn example module instance for the wifi module
- Monky.IPIP information collection module
- Monky.IP.RawLowlevel IP interfaces
- Monky.MemoryAllows to access information about they systems main memory
- Monky.ModulesThe module definition used by
startLoop
- Monky.NetworkAllows access to information about they systems network
- Monky.Network.DynamicAllows access to information about they systems network
- Monky.Network.StaticAllows access to information about they systems network
- Outputs
- Monky.Outputs.AsciiOutput module for Ascii
- Monky.Outputs.Dzen2Output module for dzen2
- Monky.Outputs.FallbackOutput module for doing a best guess
- Monky.Outputs.GuessGuess the output that should be used based on pipe
- Monky.Outputs.I3Output module for i3-bar
- Monky.Outputs.SerializeOutput module for storing
- Monky.Outputs.ShowOutput module for storing
- Monky.Outputs.UnicodeProvides helper functions for output generators that use unicode
- Monky.Outputs.Utf8Output module for utf8
- Monky.TimeAllows access to read system time
- Monky.UtilityProvides utility functions
- Monky.VersionThe current version of the package, this updates from monky.hs
- Monky.WifiGives access to wifi status