oW      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW X Y Z [!\!]!^!_!`!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q"r"s"t"u"v"w"x"y"z"{"|"}"~""""""""#######$$$$$$$$$%%%%&&&'''''(((((((())))))))))****+++++,,,,,------------....///01111222338.Allows to query information from an mpd serverongytestingLinuxNone9Haskell type for the data returned by MPDs status commandInformation about an song$Collection of tags MPD supports:-The current state of the MPD player submodule;Playing<Stopped=Paused>6A type safe socket for this module, basically a handle? Close the > when it is no longer required=Open one MPDSock connected to a host specified by one of the MPDInfoP or throw an exception (either ran out of hosts or something underlying failed)@ Get a new >A Get the raw  from the > for eventing apiBJSend a query to the MPD server and return a list of answers (line by line)sThis does not filter out errors, error checking has to be done by the user. This does filter out the last OK thoughC1Get the OK sent by mpd after idle out of the pipeD Go into MPDs idleY mode, this does return, but MPD wont time us out and will notify us if something happensE6Get the current status or an error from the MPD serverFNGet the information about the song currently beeing player from the MPD serverW  !"#$%&'()*+,-./0123456789:;<=>?@The host the server is onThe port the server listens onABCD=The string that should be send with idle (list of subsystems)EFF   !"#$%&'()*+,-./0123456789:<;=>?@ABCDEFF>:;<=$%&'()*+,-./0123456789 !"# EF@?ACDB   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEF@Provides helper functions for output generators that use unicodeongytestingLinuxSafeO*Unicode block char for vertical bar (in %)P6Horizontalblock char for horizontal bar (in % of char)OPOPOPOPGives access to wifi statusongy experimentalLinuxNoneQ#Wifi network connection informationY Signal type: Ahttp://lxr.free-electrons.com/source/net/wireless/nl80211.c#L6944Z Signal MBM[Strength 0-100 4http://lxr.mein.io/source/iwinfo/api/nl80211.h#L3388\Enum for connection change]-Nothing changed, connection unrelated message^#The current network was disconnectd_ A new connection was established`The socket type for this module The first socket is general operation/event based the seconds socket will be used to get extended information. We use 2 sockets, to not get event/request mixed up.aThe interface identifierConvert raw values from netlink"Get WifiStats from netlink messageb3Get the stats of a currently connected wifi networkc1Get only the name of the currently connected wifidGet the interface id by nameeget the raw fd for eventingf.This should be called when the fd returned by e got readablegBGet some additional information about the currently connected wifihSubscribe to multicast groupiMGet a netlink socket bound to nl80211 Before this is used event based, call h QRSTUVWXYZ[\]^_`abcdefghiQRSTUVWXYZ[\]^_`abcdefghicbdfia`ehgYZ[QRSTUVWX\]^_QRSTUVWXYZ[\]^_`abcdefghiLowlevel IP interfacesongy experimentalLinuxNonej%AddressFamilies support for librariesn/Datatype for IP addresses, abstracts over v4/v6qIPv6 addressesrIPv4 addressessParse an IP4 from a StringtSRead an IP from a ByteString. The type is determined by the size of the ByteString.uYGet the number associated with the family address. This is for interfacing with librariesv-Get the address family for a given ip addressjklmnopqrstuvwxyz{ jlmknopqrstuv noprqstujklmvjklmnopqrstuvwxyz{ IP information collection moduleongy experimentalLinuxNoneL8Handle to access information about the IPs on the system>Get an IPHandle to gather information about IPs on the system.EGet all addresses on the system (filtered by interface and type, see ) Get the raw H used by this handle. This can be used to block in RTS controlled mannerWSubscribe to the multicast group(s) for this handle. This has to be called ONCE before  can be used."Handle the next event from NetlinkWThis will handle the next event reported by the handle. Before this ever does anything p has to be called ONCE! This function can then be called as often as needed and should be called in a main loop.The functions passed may be called multiple times, and sometimes both may be called. This is a limitation by the netlink api, that cannot be avoided without user space buffers. The interface to monitorThe AddressFamily to use The handle to use&Function to call with new ip addresses'Function to call with removed addresses jlmknop jklmnop  (Allows the user to get a connected stateongy experimentalLinuxNone[!The handle exposed by this module *The Haskell type for the C struct sockaddr Raw socket calls, we node those/Get the current connected state from the handle&Get a handle to check for connectivity    (The Host to use for connectivity probing7Which port to use for connecivity probing (drop is bad)     4Provides C utility functionsongytestingLinuxNone+The haskell type for Cs utsname (man uname),Get a UName structure for the current kernel !Allows access to read system timeongytestingLinuxSafe#The handle exported by this module.7Get the current time in the format given to the handle.>Get the current time (HH:MM) format for the current time zone.Get a handle for this module !#The format that should be used for  in strftime format ! The module definition used by  startLoop ongy, moepi experimentalLinuxNoneATWrapper around  and + so we can pass all modules in one list to  startLoop7A wrapper around EvtModule for so they can be in a listAA wrapper around module instances so they can be put into a list.The class for eventing modulesNStart your own event loop. The second argument is the consumer of your output.ODoing this in an opaque way gives a way to chain actions to your event handlingThe New class for collection modulesGet the current (new) output.Class that output converters have to implementACreate one tick of output from a list of collection module output*A data type to encode general output typesPlaintext outputA Vertical bar, in %A horizontal bar, in pixel Temporary (FG,BG) Color format (and somewhat image) are not fix yet, so don't rely on them to much/Colorize the enclosed output TODO: Color formatMPath to an image to display (for icons), or Unicode glyph that should be used)Function to make packaging modules easier for s The refresh rate for this module*The function to get a module (get??Handle)'The packed module ready to be given to  startLoop  Exports s that can/should be used.ongytestingLinuxNone0MonkyImage for disk (primary persistent storage)(MonkyImage for memory (RAM (it's a ram))-MonkyImage for time with custom image supportMonkyImage for time (clock)4MonkyImage with custom image support (loadding etc.)MonkyImage to be used for CPU 5Provides utility functions for module implementationsongytestingLinuxNone%Utility Function for eventing modules,Convert a number into a fixed length strings9Convert a number into a reasonable scale for binary units5Convert a number into a reasonable scale for SI unitsSome kind of module handleThe FD to block onThe update consume function#The function to generate the outputThis will loop for you"" .An example module instance for the time module ongy, moepitestingLinuxNoneLike ) but uses a fancy variant of clock images Handle for accessing system timeGet a Get a  #$#The format that should be used for  in strftime format%#The format that should be used for  in strftime format#$% Prepend something to a moduleongytestinglinuxNoneAT append type prepend typeEThe handle used by this module, contains underlying module and stringEThe handle used by this module, contains underlying module and string9Create a module that should be prepended with some stringGThis allows you to prepend an instance of a module with a fixed String.For usage look at .8Create a module that should be appended with some stringFThis allows you to append an instance of a module with a fixed String.For usage look at . for s for sThe String to prepend The refresh rate for this moduleThe function to get the moduleThe returned handleThe String to prepend The refresh rate for this moduleThe function to get the moduleThe returned handle %The event based wifi module interfaceongy experimentalLinuxNoneT %A typesafe version of a format string"Print the current networks channelHPrint the ESSID of the current network, may look weird because SSIDs areEPrint the frequency the current network sends on (related to channel)Print a plaintext stringThe handle type for this module Apply the  to show some Q information as text.Get a wifi handleLower level version of  if you need exted information. &'Format String for output generation7Text that should be displayed when wifi is disconnectedName of the interface( &'(5#Backwards compatability module for Monky.Examples.Wifi.Eventongy experimentalLinuxNone$The polling api for wifi informationongy experimentalLinuxNone T5Enum-ish type for converting Wifi information to textThe MCSIndex for our connection'The minimum MCSIndex for our connectionThe Signal width (in MHz)The Bitrate of our connection)Minimum of TX/RX Bitrate for this station!Signal strength from other sourceSignal strength average"Print the current networks channelHPrint the ESSID of the current network, may look weird because SSIDs areEPrint the frequency the current network sends on (related to channel)Print a plaintext string/Helper type for WifiFormat to specify directionUse TX informationUse TX information%The type for polling wifi information)=Do the calculation for MBM This is taken from NetworkManager*ZThis function is the easiest, but also a bit limited way to get extended wifi information.aWith this, all "normal" information will be first, and the extended information will be appended.Lower level version of  if you need exted information.Get a wifi handle+),-./*Format String for output generation7Text that should be displayed when wifi is disconnectedName of the interface +),-./*Simple Connectivity exampleongytestingLinuxNoneATThe handle type for this module=Get a handle that allows testing for connectivity to a server01(The Host to use for connectivity probing7Which port to use for connecivity probing (drop is bad)017Combine multiple modules into one (to avoid seperators)ongytestinglinuxNone9;AT#Wrapper type for mixed combination.#Wrapper type for mixed combination.Wrapper type for sWrapper type for s Combine two 3s. The first arguments output will be printed first Combine two ,s. The first argument will be printed first. Combine a  with a . This will alwasy create a J. |Event updates will not be displayed until the poll modules ticks once.Look at  for documentation2345 2345Print some constant valuesongytestinglinuxNoneThe type for this functionalityGet a  for familiar syntaxOutput module for dzen2ongytestingLinuxNone The output handle for dzen2 pipe3Get an output handle for dzen2 formatting Assumes " | " as divider^Get the output handle for dzen2 formatting. Will asume your .xbm files are in <monkydir>/xbm/)Get an output handle for dzen2 formatting678AThe height of your dzen bar in pixel (required for block-drawing)2Path to the directory cointaining your .xbm files.8The height of your dzen bar in pixel (for block drawing)AThe height of your dzen bar in pixel (required for block-drawing)1Path to the directory containing your .xbm files.Divider678Output module for AsciiongytestingLinuxNone"The output handle for a ascii pipe?Get an output handle for ascii formatting. Divider Defaults to " | ")Get an output handle for ascii formatting9:; The Divider9:;Output module for utf8ongytestingLinuxNone !The output handle for a utf8 pipe >Get an output handle for utf8 formatting. Divider defaults to " | " )Get an output handle for utf8 formatting. <=>  The divider between segments        <=>   &Output module for doing a "best guess"ongytestingLinuxNoneAT (The datatype for wrapping outher outputsMLowerlevel access to guess which terminal out to use based on system encoding=Wrapper for normal outputs that tries to find the best outputjThis function will check if stdout is a terminal and switch to AsciiOut or UTf8Out depending on the locale ?'The output to use for non-terminal mode   ?Output module for storingongytestingLinuxNone)The output handle for using show instance(Get an output handle for show formattingOutput module for i3-barongytestingLinuxNoneOutput handle for i3-barNGet output handle for i3-bar. This initializes the communication on generation @ABCDE@ABCDEOutput module for storingongytestingLinuxNone)The output handle for using show instance(Get an output handle for show formatting2Guess the output that should be used based on pipeongytestingLinuxNoneATType wrapper for this to work<Guess output based on isatty and other side of the stdout fd<Guess output based on isatty and other side of the stdout fdFGHIJKLMNOPQ Dzen height Dzen xbm path Dzen height Dzen xbm pathThe Divider to use FGHIJKLMNOPQ2Monky module that modifies other outputs behaviourongytestingLinuxNone#<Handle for modifying a line before it's passed to the output$$Get a handle to purely modify a line#R$%#$#$#R$%/Monky module that modifies other modules outputongytestingLinuxNone&'Handle for modifying output in IO monad'3Handle for duing pure modification of module output(4Get a handle to purely modify another modules output)CGet a handle that can modify another handles output in the IO monad*vChange the replacemant char in an monky image (if your font doesn't support it), returns initial value if not an image &S'T()*+,-.&'()*'(&)* &S'T()*+,-.-An example module instance for the MPD moduleongytestingLinuxNone//The handle for this example0Get an /1 (server has to be running when this is executed) /UVWXYZ0The host to connect toThe port to connect to12/0/0 /UVWXYZ012+Integration example for pulseaudio library.ongy experimentalLinuxNone3LPulse handle. This module uses continuations, the handle is not really used[)Format a given sink to the output string.\9Find the index of our sink and register the event handler4'Try to start pulse loop. silently fail!5GConnect to pulse server and try to start the main loop for this module.6%Get the handle for pulse integration.3][\45$The continuation if everything fails!Sink to use (Nothing for default)Output function66The servername (Nothing will use environment variable)7345634563][\4567Provides utility functions ongy, moepitestingLinuxNone9;87type alias to distinguish system functions from utility9 Find a line in a list of Strings:7Read the first line of the file and convert it into an ^;ARead the first line of the file and convert the words in it into ^s<Read the first line of the file_"Read a File as String line by line`&Read a File as ByteString line by line=>Rewind the file descriptor and read the complete file as lines>open a file read only?Close a file opened by >@!Split ys at every occurence of xsA6fmap fopen would give Maybe (IO File), this fixes thatB.0 save divide, uses maxbound for default valueC!0 save divide, uses default valueDGet the kernel nameversionrelease and so forthE(Get the kernel version as (major, minor)8abcde9:;<_`=>?@ABCDEFGHI89:;<=>?@ABCDE:;>?8<=9@ABCDE8abcde9:;<_`=>?@ABCDEFGHIB7C7#Provides the common disk interfacesmoepi experimentalLinuxNoneAT LExistential datatype to wrap N instancesN>Type class that should be instanciated by file system handlersThe Monky.Disk module is designed to work with different handlers specialized for different file systems and a generic block device handler.WThis typeclass gives the interface a file system handler has to implement to be usable.O%Get the bytes free on the file systemP%Get the total size of the file systemQ%Get the bytes used by the file systemR9Get all data, might be more efficient (Size, Free, Used)SWrap a N into an LT,The base path of block devices on the systemU5Get the physical block devices supporting some deviceVAGet the "top most" virtual device(s) based on the physical device LMNOPQRSTUV LMNOPQRSTUV LMNOPQRSTVULMNOPQRSTUV /Allows access to information about a btrfs poolongy experimentalLinuxNoneW"The FsInfo exported by this moduleXZGet the block devices used by a btrfs FileSystem. This resolves mappers as far as possibleY)Try to create a btfshanlde given the UUIDThis will create a W_ which is an instance of FsInfo and a list of block devices that are slaves of our file system.This allows the upper layer to monitor the read/write rates of all block devices that belong to our file system and report them as read/write rate for the file system.Due to compression and encryption the read/write rate on the block device may be quite different to the one that application see. WfghijXkY&The UUID of the file system to monitorZWXYWYX WfghijXkYZ!2Allows access to information about the systems cpuongytestingLinuxNone[-Which values should be returned by getCPUFreq\"Use the maximum frequencie allowed]Use the current frequencie used^%Don't open any files for scaling type_Numa aware version of ecThe handle for cpu frequencydThe handle for themperaturee"The handle exported by this modulel%Check if thermal zone is x86_pkg_tempm3Get the filter function for the thermal zone getternTry to guess the thermal zonesf-Tries to guess the thermal zone based on typeo1Calcualate the work done by the cores (all, work)g3Get the cpu usage in percent for each (virtual) cpuhRead node informationiget current CPU temperaturej0This function returns a frequency according the [ of the handle.OThe returned valued will be the max of all (virtual) proceessors on the system.kGet a frequency handle by typel?Get a frequency handle limited to the cpus the numa handle usespSRaw-ish access to numa handle, this can be (ab)used to make your own filter on cpusm Create an enGet the CPUs thermal zoneoHGet the CPUs thermal zones, will be same order as numa nodes (hopefully)pGet the Numa aware handle.[\]^_`abcqdrestuvwxyz{|lmnfo}~ghijklp/CPU "names" to include ([cpu0, cpu1, cpu2, ..])mnop[\]^_`abcdefghijklmnopedc_`abmghij[\]^pfnokl%[\]^_`abcqdrestuvwxyz{|lmnfo}~ghijklpmnop"-An example module instance for the cpu moduleongytestingLinuxNoneq2The handle type for the default setup (numa aware)r%The handle type for the default setups(Handle to acces thermal zone informationt*Handle to access cpu frequency information(Numa aware handle to get cpu usage stats!Handle to get the cpu usage statsu)Get a handle to access max node frequencyvNuma away version of uwGet the s) for the system (tries to guess CPU zone)xGet a sf for each cpu termal zone on the system. will be infinite list, with invalidated zones for convinienceyGet a s for the specified thermal zonezGet a raw CPU handle{Get raw numa aware cpu handles|Get a rFThis is a shiny combination of the raw handles exported by this module}Same as |$ but tries to guess the thermal zone~Numa aware version of |Same as ~$ but tries to guess the thermal zone$qrstuvwxyz{|5The type of scaling frequency that should be reportedThe thermal zone of the cpu}~5The type of scaling frequency that should be reported,A list of thermal zones for our numa handles[\]^qrstuvwxyz{|}~|}~[\]^rqtsuvywx{zqrstuvwxyz{|}~#;Allows to access information about they systems main memoryongytestingLinuxNone(The memory handle used for all functions(Return the memory available to userspaceyThis is accurate (read from kernel) for current kernels. Old kernel (~3.13) estimates this. Old kernels may overestimate.,Get the total amount of memory in the system6Get the amount of memory rported as free by the kernel9Get the amount of memory used by the kernel and processesPGet memory statistics in one got (with only one read) (total, avail, free, used)Get a memory handle  $0An example module instance for the memory module ongy, moepitestingLinuxNone0Handle to display the current memory usage (usedcachesfree) as horizontal bar,Simple handle to display current free memory1Simple handle to display current memory available%Get the the memory handle (available) Get the the memory handle (free)Get the 2A factor to modify bar length. Total-length: 100/f %7Allows access to information about they systems networkongytestingLinuxNone 2Internal handle represanting exactly one interfaceCurrent state of network deviceIt is down, consider offIt is up, consider on(Unknown, kernel docu says to consider onDormant, consider off1Get the current network adapter state from kernelaGet the (read, write) rate of the network interface. This is averaged over the time between callsGet a LClose a network handle after it is no longer needed (the device disappeared) Name of the interface to monitor &7Allows access to information about they systems networkongytestingLinuxNone"The handle exported by this moduleLGet the read/write rate of the first interface in the list that is connected4The value will be a tuple (Read, Write) in bit/s or  if no network is connected. Create a  for the list of networksWA list of interface names, the display order will be the same as the order in this list'7Allows access to information about they systems networkongytestingLinuxNone9;1The actual handel exposed and used by this moduleJThe map we keep our handles in (the Int is the Interface ID on the system)5A Wrapper than also carries the name, for comparisionThe fold function used for  handling the IO and Maybe stuffYGet the sum of all read/write rates from our network devices or Nothing if none is active,Logic for adding a new device to our HandlesDLogic for removing a handle form Handles after we lost the interface4The packet used to drump all current network devices'Read the interface name and index from *Get all current interfaces from our systemGet the # wrapper for all current interfaces;Handle an incomming rtneltink message and update the handleEUpdater loop, it blocks on the netlink socker until it gets a message4Start the update loop for adding/removing interfacesAGet the new handle this module exports and start its updater loopWill be given the name of the handle, only add interface if this returns true (think of it as filter over all possible interfaces)(1An example module instance for the network moduleongytestingLinuxNone9;2HAndle for a staticly configured network interface#Handle for dynamic network handlingActually get the network handle+Get a handle for a static network interfaceIGet a handle that will update with new or disappearing network interfaces2The string to use when the network is disconnectedThe Network adapters to monitor.The string to use when network is disconnectedName of the network interface.The string to use when network is disconnected*The filter function for the dynamic handle 6EThis module provides a template haskell splice for including librarys ongy, moepitestingLinuxNoneImport a library!The name of the library data typeThe name of the library7The functions in the library (Name, CName, Declaration))7Allows acces to information about the alsa sound systemongytestingLinuxNone "The handle exported by this moduleUpdate the volume handle.This function has to be called to update the handle internally. Calling this will get the current state into the handle, which can then by queried by the other functions. Until this is called again, the results of other functions will not update to the current state of the system."Get the raw volume value from alsa4Get the volume in percent (100% = loudest 0%=lowest)!0% does not equal a muted device.return  if the device is muted/Check if there was an error creating the handle!Get PollFds for polling interface.Close the mixer handle and unload alsa library Create an HThis function returns a type save error value if any alsa function failsK     The audio-card to use  6     *.An example module instance for the alsa moduleongytestingLinuxNoneThe handle type for this moduleFGet a handle which allows access to audio (alsa) subsystem informationThe audio-card to use7@Proxy module for backwards compat. See Monky.Examples.Sound.AlsaongytestingLinuxNone+Minimal access to liblkidongy experimentalLinuxNoneVersion to reuse the LibBlkidversion to reuse the LibBlkidEvaluate a tagEvaluate a spec1Execute an IO action with an instance of LibBlkid !"#$%&  !"#$%&,7Allows access to information about generic block deviceongy experimentalLinuxNone)The FsInfo handle exported by this module"Get "the" mountpoint of a device. Returns a mointpoint of a device. If there are multiple mountpoints, this will return the first one found. First one is mostly determined by order in procFmounts and should be the one that was mounted first (time since boot).Get a fs handle for normal devices0This uses fsStat to get file system information.TfsStat takes the mount point of the file system, so we need to find the mount point.MIn case of mapper devices, this is done by going through the chain of slaves.'()'()-DAllows access to information about a battery connected to the systemongytestingLinuxNone #Datatype to represent battery state"The handle exported by this module*&Internal function for getCurrentStatus-Get the current state of the battery (loadingdrainingfull)+%Internal function for getcurrentLevel.Get the charge left in the battery in percent.,!Internal function for getTimeLeft#Get current loading speed in Watt/sEGet an approximated amount of seconds left until the battery runs out-2Create a power handle that uses the power_now file.3Create a power handle that uses the charge_now file Create a Version which defaults to BAT0/0123456789:;*<+,-.7The name of the wall socket adapter used by the batteryThe name of the battery  /0123456789:;*<+,-..1An example module instance for the battery module ongy, moepitestingLinuxNoneThe handle type for this module Create a  Version of  that defaults to BAT0=>?7The name of the wall socket adapter used by the batteryThe name of the battery=>?/*Display the first line in a file each tickongytestingLinuxNoneThe handle type for this moduleGet the file handle@APath to the file@A84The TemplateHaskell splice required by Monky.VersionongytestingLinuxNoneBBGet the version string from monky.cabal and convert it to a 4tupelBBB0>The current version of the package, this updates from monky.hsongytestingLinuxNoneThe current version as 4tupel1/Allows access to information about a btrfs poolmoepi experimentalLinuxNoneeThe handle xported by this module A disk may have multiple physical devices so we use lists for them3Get the read write rates from the disk (in bytes/s)Get the space left on the diskGet the disk handleCDEFCDEF2.An example module instance for the disk modulemoepitestingLinuxNoneThe handle type for this moduleGet a disk handleGIThe UUID of the device to monitor. It has to be mounted at monky startup!G3The main module for monky ongy, moepitestingLinuxNoneH=Packs a module into a wrapper with an IORef for cached output;Start the mainLoop of monky. With custom tick timer (in s)For 1s tick-timer pass 1000000V to this. This does not scale the timers for collection modules passed into it. So if 500000v is passed here, and a collector should update every second it needs to update every 2nd tick, so it has to be scaled. s startLoop getAsciiOut [ pollPack 1 $ getRawCPU ] startLoopT 500000 getAsciiOut [ pollPack 2 $ getRawCPU ] HStart the mainLoop of monky. This should be the return type of your main IJHKLMNO IJHKLMNOP9:;<<=>?@ABCDEFGHIJKLMNOPQRSSTUVWXYZ[\]]^_`abcdefghijklmnopqrstuvwxyz{|}~4                                  !"#$%&'())*+,-./0123456789:;<=>>?@ABCDDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwwxyz{|}~    !!!!!!!!!!!!!!!!!!!!!!"""""""""""""""""""""#######$$$$$$$$$%%%%&&&'''''(((((((())))))))))****+++++,,,,,------------....///0111122233v      !"#$%&'#()*+,4-44.4/4041424344454678 9 : ; <=>?@A=BCDEFGHIJ-KL2KL6KLMANOPLQRSTUVWXYZ[\]^_^Z`abcdef^ghijkclmno p q r s t u!v!w!x!y!z!{!;!|!}!~!!!!!!!!!!!!!!""""";"{"""""""""####d$$$^$$$%%%%%% %%%%%%%&&''''''''''''(((((((666666666666666666gh)))))))))))))))))))))))))))))))))))))))))))))))) ) ) ) ) )))))))))))))***+++++ +!+"+#+$+%+&+',s,(,)-*-+-,---.-/-0-1-2-3-4-5-6-7-8-9-:-;-<.=.>.?/{/@8A11r1B1C23D3E3F3G3H3I3J3KL#monky-2.2.0.0-D9hf7mSzyrCyAhHmUFpvX Monky.Utility Monky.MPDMonky.Outputs.Unicode Monky.Wifi Monky.IP.RawMonky.IPMonky.Connectivity Monky.Time Monky.ModulesMonky.Examples.ImagesMonky.Examples.UtilityMonky.Examples.TimeMonky.Examples.PrependMonky.Examples.Wifi.EventMonky.Examples.Wifi.PollMonky.Examples.ConnectivityMonky.Examples.CombineMonky.Examples.PlainMonky.Outputs.Dzen2Monky.Outputs.AsciiMonky.Outputs.Utf8Monky.Outputs.FallbackMonky.Outputs.ShowMonky.Outputs.I3Monky.Outputs.SerializeMonky.Outputs.GuessMonky.Outputs.ModifyMonky.Examples.ModifyMonky.Examples.MPDMonky.Examples.Sound.PulseMonky.Disk.CommonMonky.Disk.Btrfs Monky.CPUMonky.Examples.CPU Monky.MemoryMonky.Examples.MemoryMonky.Network.Static Monky.NetworkMonky.Network.DynamicMonky.Examples.Network Monky.AlsaMonky.Examples.Sound.Alsa Monky.BlkidMonky.Disk.Device Monky.BatteryMonky.Examples.BatteryMonky.Examples.File Monky.Version Monky.DiskMonky.Examples.DiskMonky Monky.CUtilMonky.Examples.WifiMonky.TemplateMonky.Examples.AlsaMonky.VersionTHdirectory-1.2.6.2System.Directory listDirectoryStatusvolumerepeatsrandomsingleconsumeplaylistplaylistLengthstate mixrAmpdbxfade mixrAmpDelaysongsongIdnextSong nextSongIdtimeelapsedbitratedurationaudioupdatingmpderrorSongInfosongFile songRange songMTimesongTime songDurationsongTagssongPos songInfoId songPriority TagCollection tagArtist tagArtistSorttagAlbum tagAlbumSorttagAlbumArtisttagAlbumArtistSorttagTitletagTracktagNametagGenretagDate tagComposer tagPerformer tagCommenttagDisc tagMArtistid tagMAlbumidtagMAlbumArtistid tagMTrackidtagMReleaseTrackidStatePlayingStoppedPaused MPDSocketcloseMPDSocket getMPDSocketgetMPDFddoQueryreadOkgoIdle getMPDStatus getMPDSong $fShowState $fEqState$fShowTagCollection$fEqTagCollection$fShowSongInfo $fEqSongInfo $fShowStatus $fEqStatusbarCharhBarChar WifiStats wifiChannel wifiRateswifiNamewifiFreqwifiSig wifiBSSIDSignalSigMBM SigUNSPECWifiConnWifiNoneWifiDisconnect WifiConnect SSIDSocket InterfacegetCurrentWifiStatsgetCurrentWifi getInterface getWifiFd gotReadablegetExtendedWifi prepareEvents getSSIDSocket AddressFamily AF_UNSPECAF_INETAF_INET6IPIPv4IPv6IP6IP4parseIPipFromBS familyToNum getAddrFamily $fShowIP4 $fShowIP6$fShowIP $fStorableIP6 $fStorableIP4$fEqIP4$fEqIP6$fEqIPIPHandle getSocket getAddressesgetRawFdsubscribeToEvents handleNext ConnHandlehasConngetConnH$fStorableSockaddr$fEqPort $fShowPort $fEqSockaddr$fShowSockaddrUName TimeHandlegetTimegetHM getTimeHandleModulesPollEvt EvtModulesDW PollModulesNMW EvtModule startEvtLoop PollModule getOutput initialize MonkyOutputdoLineMonkyOut MonkyPlainMonkyBar MonkyHBar MonkyColor MonkyImagepollPackevtPack$fSerializeMonkyOut$fShowMonkyOut$fReadMonkyOut diskImage memoryImagefancyTimeImage timeImage batteryImagecpuImageloopFd convertUnit convertUnitB convertUnitSIFTHandleTHandlegetFancyTimeHandle$fPollModuleFTHandle$fPollModuleTHandle EvtPostHandleEvtPost EvtPrepHandleEvtPrep PostHandlePost PrepHandlePrep packPrepend packAppend evtPrepend evtAppend$fEvtModuleEvtPostHandle$fEvtModuleEvtPrepHandle$fPollModulePostHandle$fPollModulePrepHandle WifiFormat FormatChannel FormatName FormatFreq FormatText WifiEvtHandle getTextify getWifiHandlegetWifiHandle'$fEvtModuleWifiEvtHandle FormatMCS FormatMCSMinFormatWifiWidth FormatBitrateFormatBitrateMin FormatSignalFormatSignalAverage DirectionDirTXDirRXWifiPollHandle$fPollModuleWifiPollHandle$fShowDirection $fEqDirection$fShowWifiFormat$fEqWifiFormatConn$fPollModuleConnPECombiEPCombiEvtCombi CombiHandlecombinecombineEcombineFcombineD$fPollModulePECombi$fPollModuleEPCombi$fEvtModuleEvtCombi$fPollModuleCombiHandle MonkyListgetPlain$fEvtModuleMonkyList$fPollModuleMonkyList DzenOutput getDzenOut getDzenOut' getDzenOutDiv$fMonkyOutputDzenOutput AsciiOutput getAsciiOutgetAsciiOutDiv$fMonkyOutputAsciiOutput Utf8Output getUtf8Out getUtf8OutDiv$fMonkyOutputUtf8OutputWrapOutschooseTerminalOutgetFallbackOut$fMonkyOutputWrapOuts ShowOutput getShowOut$fMonkyOutputShowOutputI3Output getI3Output$fMonkyOutputI3OutputSerializeOutputgetSerializeOut$fMonkyOutputSerializeOutputGuessOut guessOutputguessOutputDiv$fMonkyOutputGuessOut $fEqOutput $fOrdOutput $fShowOutput ModifyOutputgetModifyOutput$fMonkyOutputModifyOutputIOModifyHandle ModifyHandlegetModifyHandlegetIOModifyHandle changeImage$fEvtModuleIOModifyHandle$fPollModuleIOModifyHandle$fEvtModuleModifyHandle$fPollModuleModifyHandle MPDHandle getMPDHandle$fEvtModuleMPDHandle$fPollModuleMPDHandlePulseH startPulsestartPulseMaybegetPulseHandle$fEvtModulePulseHFilefindLine readValue readValuesreadLine readContentfopenfclose splitAtEvery maybeOpenFile sdivBound sdivUBoundgetUnamegetKernelVersion$fFileReadableByteString$fFileReadable[]$fLineReadableByteString$fLineReadable[] $fShowFile$fEqFileFSIFsInfo getFsFree getFsSize getFsUsedgetFsAllfsToFSI blBasePath mapperToDev devToMapper BtrfsHandle getFSDevicesgetBtrfsHandle$fFsInfoBtrfsHandle ScalingType ScalingMax ScalingCur ScalingNone NumaHandlenumaCpus numaHandle FreqHandle TempHandle CPUHandleguessThermalZone getCPUPercentgetNumaPercent getCPUTempgetCPUMaxScalingFreq getFreqHandle getFreqNuma getCPUHandlegetThermalZonegetThermalZonesgetNumaHandlesgetTempHandle'getTempHandles getTempHandle getRawCPU getRawNumas getCPUHandle'getNumaHandles'$fPollModuleNumaHandle$fPollModuleCPUHandle$fPollModuleTempHandle$fPollModuleFreqHandle$fPollModuleRawNuma$fPollModuleRawCPU MemoryHandlegetMemoryAvailablegetMemoryTotal getMemoryFree getMemoryUsedgetMemoryStatsgetMemoryHandleMBHandleMFHandleMHandlegetMemoryFreeHandlegetMemoryBarHandle$fPollModuleMBHandle$fPollModuleMFHandle$fPollModuleMHandle NetworkHandle getReadWritegetNetworkHandlecloseNetworkHandleNetworkHandlesgetReadWriteMultigetNetworkHandlesUHandlesHandlesgetMultiReadWrite getUHandles$fShowNetHandleNetworkStaticHandleNetworkDynHandlegetNetworkHandles'getStaticHandlegetDynamicHandle$fPollModuleNetworkStaticHandle$fPollModuleNetworkHandles'$fPollModuleNetworkDynHandle$fStorablePollFD VOLHandle updateVOLH getVolumeRawgetVolumePercentgetMuteisLoaded getPollFDsdestroyVOLHandle getVOLHandleAlsaH$fEvtModuleAlsaH$fPollModuleAlsaH evaluateTag' evaluateSpec' evaluateTag evaluateSpec withLibBlkid BlockHandleBlockH devToMountgetBlockHandle$fFsInfoBlockHandle BatteryStateBatFull BatLoading BatDraining BatteryHandlegetCurrentStatusgetCurrentLevel getLoading getTimeLeftgetBatteryHandlegetBatteryHandle'$fShowFilesArrayBatteryH$fPollModuleBatteryH FileHandle getFileHandle$fPollModuleFileHandle getVersion DiskHandlegetDiskReadWrite getDiskFree getDiskHandleDiskH$fPollModuleDiskH startLoopT startLoop openMPDSocketbaseSystem.Posix.TypesFdMPDSockreadText rethrowSExcpt trySExcptrecoverableCon tryConnect doMPDConnInit recvMessage sendMessage getAudioTuplegetStateparseStatusRecparseSongInfoRec parseStatus parseSongInfo getSignal attrToStatuDecode uGetWord32 getBssAttrs getStationmemcpyhtonlntohlc_ntopc_ptonshowIPIOshowIP parseIPIO showIP6IOshowIP6cRTNLGRP_IPV4_IFADDRcRTNLGRP_IPV6_IFADDR linkQuerygetInterfaceID addressQueryPortc_socketConnHSockaddrSockahtons c_connectc_closetryConn updateLoopuname _uSysName _uNodeName _uRelease _uVersion _uMachinec_unamec_strlen peekCString$fStorableUNameTimeHdoTime convertUnitTFTHTH timeToXBMWH getFunctiongetEventOutputdoMBM getCombiFun getFromDir pollToEvt getExtFungetExtFunctionshowConPEEPECCdoOut doSegmentWOi3Full makeColorgetOut outputLineGOOutputTerminalProcessOther networkOutsfdToPath getProcFdshasPipe pickCandidate getOutputTypechooseProcessOutMHIOMHgetPlayingSong extractTitle getSongTitlegetEventgetFd printSink startLoopMghc-prim GHC.TypesIntreadStringLines readBSLines FileReadablehGetFile LineReadable hGetReadableBtrfsH fsBasePath sectorSizegetSizegetUsedgetBtrfsHandle' checkTypethermalGuesserguessThermalZones calculateWork getNumaHandleFHCPUHpathStat pathCPUBase thermalBasePpathTemppathMaxScalingpathCurScaling pathNumaBasegetCPUFreqsCurgetCPUFreqsMaxcalculatePercentreadVals getPercentgetMax getCPUFreqsgetCPUs getHandleRawNumaRawCPUNUHCPHcpuColorprintBarprintXbmprintFrequency printThemp getNumaNodeformatNumaNodeMemoryHpathgetValMBHMFHgetUsagePercentsnewBar getNMemoryOutNetStateDownUpUnknownDormantNetHbasePathreadPath writePath statePathcalculateRatesgetReadWriteRealGHC.BaseNothingNetHsgetMultiReadWriteInt NetHandlefoldFgotNewlostOld requestPacket readInterface&netlink-1.1.0.0-23BjPbqOVnCKYGpBXUXLqQSystem.Linux.Netlink.Route RoutePacketgetCurrentDevsdoUpdate updaterLoopupdaterSHDHNetworkHandles'NH'formatNNetworkTextgetNNetworkTextgetNDNetworkText importLib monkyStrictltrimrtrimtrim prepareFungetNamegetType applyArrows mkFunDesc cleanName transNamegetFunQmkRet mkGetHandlemkGetFun mkTransformer mkDestroyFunGHC.PtrPtrFunPtr castFunPtrTrue ElemHandleElemSidHandleAlloc SidHandleSidMixerHandleAlloc MixerHandleMixerMClassRegOpt PollFDPtrPollFDPOLLFD liftExceptTVOLHErrLibAlsarawDL mixer_open mixer_attachmixer_register mixer_load sid_sindex sid_sname sid_allocsid_free elem_gvrange elem_gvol elem_gmute elem_findmixer_handle_events get_pdescs get_pdescc mixer_closemkFunMixerHandleIOInt#mkFunMixerHandlePollFDPtrCIntIOCIntmkFunMixerHandleIOvoid%mkFunMixerHandleSidHandleIOElemHandle mkFunElemHandleCIntPtrCIntIOCInt#mkFunElemHandlePtrCIntPtrCIntIOCIntmkFunSidHandleIOvoidmkFunSidHandleAllocIOCIntmkFunSidHandleCStringIOvoidmkFunSidHandleCIntIOvoidmkFunMixerHandleIOCInt(mkFunMixerHandlePtrRegOptPtrMClassIOCIntmkFunMixerHandleCStringIOCIntmkFunMixerHandleAllocIntIOCIntdestroyLibAlsa getLibAlsa getPollDescs openMixer mixerAttach mixerRegister mixerLoadwithSidsidSetgetElemisMutegetVolumeRange getVolumegetMixerHandle percentizegetVOLHandleIntAH getVolumeStr getVOLOutputCacheLibBlkidc_evtc_evsmkFunCStringPtrCacheIOCString$mkFunCStringCStringPtrCacheIOCStringdestroyLibBlkid getLibBlkidgetAndFreeStringmaybeGetStringgetFreegetBlockHandle'getCurrentStatusIntgetCurrentLevelIntgetTimeLeftIntcreatePowerNowHandlecreateChargeNowHandle FilesArrayPowerNow ChargeNowBatHpnowPathenowPath efullPathvnowPathcnowPathcavgPath chnowPath chfullPathadpPathgetCurrentStatusMBH batteryColor batterySymbolgetFile versionTH getBtrfsDH getBlockDHpackMod ModuleWrapperMWrappergetWrapperText doMonkyLine doCachedLinewaitTickmainLoop