!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ [ \ ] ^ _!`!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'{'|'}(~(()))))))))******++++,,,,,,,,,,,,,,,,,,,,,------.........////00000111122263Provides C utility functionsongytestingLinuxNone+The haskell type for Cs utsname (man uname),Get a UName structure for the current kernel .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)A Get a new ?B Get the raw  from the ? for eventing apiCJSend 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 thoughD1Get the OK sent by mpd after idle out of the pipeE Go into MPDs idleY mode, this does return, but MPD wont time us out and will notify us if something happensF6Get the current status or an error from the MPD serverGNGet the information about the song currently beeing player from the MPD serverW  !"#$%&'()*+,-./0123456789:;<=>?@AThe host the server is onThe port the server listens onBCDE=The string that should be send with idle (list of subsystems)FGF   !"#$%&'()*+,-./0123456789:;=<>?@ABCDEFGF?;<=>%&'()*+,-./0123456789: !"#$ FGA@BDEC   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFG@Provides helper functions for output generators that use unicodeongytestingLinuxSafeP*Unicode block char for vertical bar (in %)Q6Horizontalblock char for horizontal bar (in % of char)PQPQPQPQLowlevel IP interfacesongy experimentalLinuxNoneR%AddressFamilies support for librariesV/Datatype for IP addresses, abstracts over v4/v6YIPv6 addressesZIPv4 addresses[Parse an IP4 from a String\SRead an IP from a ByteString. The type is determined by the size of the ByteString.]YGet the number associated with the family address. This is for interfacing with libraries^-Get the address family for a given ip addressRSTUVWXYZ[\]^_`abc RSTUVWXYZ[\]^ VWXZY[\]RSTU^RSTUVWXYZ[\]^_`abc IP information collection moduleongy experimentalLinuxNoneLg8Handle to access information about the IPs on the systemh>Get an IPHandle to gather information about IPs on the system.iEGet all addresses on the system (filtered by interface and type, see h)j Get the raw H used by this handle. This can be used to block in RTS controlled mannerkWSubscribe to the multicast group(s) for this handle. This has to be called ONCE before l can be used.l"Handle the next event from NetlinkWThis will handle the next event reported by the handle. Before this ever does anything kp 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. ghThe interface to monitorThe AddressFamily to useijklThe handle to use&Function to call with new ip addresses'Function to call with removed addresses RSTUVWXghijkl ghiRSTUVWXjkl ghijklGives access to wifi statusongy experimentalLinuxNonem#Wifi network connection informationt Signal type: Ahttp://lxr.free-electrons.com/source/net/wireless/nl80211.c#L6944u Signal MBMvStrength 0-100 4http://lxr.mein.io/source/iwinfo/api/nl80211.h#L3388wEnum for connection changex-Nothing changed, connection unrelated messagey#The current network was disconnectdz A new connection was established{The socket type for this module|The interface identifierConvert raw values from netlink"Get WifiStats from netlink message}3Get the stats of a currently connected wifi network~1Get only the name of the currently connected wifiGet the interface id by nameget the raw fd for eventing.This should be called when the fd returned by  got readableSubscribe to multicast groupMGet a netlink socket bound to nl80211 Before this is used event based, call mnopqrstuvwxyz{|}~mnopqrstuvwxyz{|}~~}|{tuvmnopqrswxyzmnopqrstuvwxyz{|}~(Allows the user to get a connected stateongy experimentalLinuxNone[!The handle exposed by this module*The Haskell type for the C struct sockaddrRaw 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) Provides utility functions ongy, moepitestingLinuxNone9;7type alias to distinguish system functions from utility Find a line in a list of Strings7Read 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 sRead 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 linesopen a file read onlyClose a file opened by !Split ys at every occurence of xs6fmap fopen would give Maybe (IO File), this fixes that.0 save divide, uses maxbound for default value!0 save divide, uses default valueGet the kernel nameversionrelease and so forth(Get the kernel version as (major, minor)          77DAllows 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 out2Create a power handle that uses the power_now file3Create a power handle that uses the charge_now file Create a Version which defaults to BAT0 7The name of the wall socket adapter used by the batteryThe name of the battery   7Allows access to information about they systems networkongytestingLinuxNone 2Internal handle represanting exactly one interface!Current state of network device"It is down, consider off#It is up, consider on$(Unknown, kernel docu says to consider on%Dormant, consider off&1Get 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 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 comparision/The 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 active0,Logic for adding a new device to our Handles1DLogic for removing a handle form Handles after we lost the interface24The packet used to drump all current network devices3'Read the interface name and index from 45*Get all current interfaces from our system6Get the # wrapper for all current interfaces7;Handle an incomming rtneltink message and update the handle8EUpdater loop, it blocks on the netlink socker until it gets a message94Start the update loop for adding/removing interfacesAGet the new handle this module exports and start its updater loop.:/012356789Will be given the name of the handle, only add interface if this returns true (think of it as filter over all possible interfaces).:/012356789 #Provides the common disk interfacesmoepi experimentalLinuxNoneAT Existential datatype to wrap  instances>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.%Get the bytes free on the file system%Get the total size of the file system%Get the bytes used by the file system9Get all data, might be more efficient (Size, Free, Used)Wrap a  into an ,The base path of block devices on the system5Get the physical block devices supporting some deviceAGet the "top most" virtual device(s) based on the physical device  /Allows access to information about a btrfs poolongy experimentalLinuxNone"The FsInfo exported by this moduleZGet the block devices used by a btrfs FileSystem. This resolves mappers as far as possible)Try to create a btfshanlde given the UUIDThis will create a _ 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. ;<=>?@&The UUID of the file system to monitor ;<=>?@4EThis module provides a template haskell splice for including librarys ongy, moepitestingLinuxNoneAImport a libraryBCDEFGHIJKLMNOPQRA!The name of the library data typeThe name of the library7The functions in the library (Name, CName, Declaration)STUABCDEFGHIJKLMNOPQRA 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 V 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 failsKWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~The audio-card to use 6WXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~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.54The TemplateHaskell splice required by Monky.VersionongytestingLinuxNoneBGet the version string from monky.cabal and convert it to a 4tupel>The current version of the package, this updates from monky.hsongytestingLinuxNoneThe current version as 4tupel7Allows 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;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  2Allows access to information about the systems cpuongytestingLinuxNone-Which values should be returned by getCPUFreq"Use the maximum frequencie allowedUse the current frequencie used%Don't open any files for scaling typeNuma aware version of The handle for cpu frequencyThe handle for themperature"The handle exported by this module%Check if thermal zone is x86_pkg_temp3Get the filter function for the thermal zone getterTry to guess the thermal zones-Tries to guess the thermal zone based on type1Calcualate the work done by the cores (all, work)3Get the cpu usage in percent for each (virtual) cpuRead node informationget current CPU temperature0This function returns a frequency according the  of the handle.OThe returned valued will be the max of all (virtual) proceessors on the system.Get a frequency handle by type?Get a frequency handle limited to the cpus the numa handle usesSRaw-ish access to numa handle, this can be (ab)used to make your own filter on cpus Create an Get the CPUs thermal zoneHGet the CPUs thermal zones, will be same order as numa nodes (hopefully)Get the Numa aware handle./CPU "names" to include ([cpu0, cpu1, cpu2, ..])%!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 formatThe 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 implement ACreate one tick of output from a list of collection module output *A data type to encode general output types Plaintext output A 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                The main module for monky ongy, moepitestingLinuxNone=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  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 string 9Create 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 s The String to prepend The refresh rate for this moduleThe function to get the moduleThe returned handle!The String to prepend The refresh rate for this moduleThe function to get the moduleThe returned handle"#$%&'  !"#  !"#  !"#$%&'Simple Connectivity exampleongytestingLinuxNoneAT(The handle type for this module)=Get a handle that allows testing for connectivity to a server()(The Host to use for connectivity probing7Which port to use for connecivity probing (drop is bad)*())(()**Display the first line in a file each tickongytestingLinuxNone+The handle type for this module,Get the file handle+,Path to the file-+,+,+,-5Provides utility functions for module implementationsongytestingLinuxNone.%Utility Function for eventing modules/,Convert a number into a fixed length strings09Convert a number into a reasonable scale for binary units15Convert a number into a reasonable scale for SI units.Some kind of module handleThe FD to block onThe update consume function#The function to generate the outputThis will loop for you/01./01./01./011An example module instance for the network moduleongytestingLinuxNone9;22HAndle for a staticly configured network interface3#Handle for dynamic network handling4Actually get the network handle5+Get a handle for a static network interface6IGet a handle that will update with new or disappearing network interfaces2342The string to use when the network is disconnectedThe Network adapters to monitor5.The string to use when network is disconnectedName of the network interface6.The string to use when network is disconnected*The filter function for the dynamic handle7892345645632 23456789.An example module instance for the wifi moduleongy experimentalLinuxNoneT :%A typesafe version of a format string;"Print the current networks channel<EPrint the current network max supported rate (always 54Mbit/s for me)=HPrint the ESSID of the current network, may look weird because SSIDs are>EPrint the frequency the current network sends on (related to channel)?Print link quality (0-100)@Print a plaintext stringAThe handle type for this module=Do the calculation for MBM This is taken from NetworkManagerBGet a wifi handle:;<=>?@ABFormat String for output generation7Text that should be displayed when wifi is disconnectedName of the interfaceCD :;<=>?@AB BA:;<=>?@ :;<=>?@ABCD.An example module instance for the alsa moduleongytestingLinuxNoneEThe handle type for this moduleFFGet a handle which allows access to audio (alsa) subsystem informationEFThe audio-card to useGHEFFEEFGH6@Proxy module for backwards compat. See Monky.Examples.Sound.AlsaongytestingLinuxNoneEFFE7Combine multiple modules into one (to avoid seperators)ongytestinglinuxNone9;ATI#Wrapper type for mixed combination.J#Wrapper type for mixed combination.KWrapper type for sLWrapper type for sM Combine two 3s. The first arguments output will be printed firstN Combine two ,s. The first argument will be printed first.O Combine a  with a . This will alwasy create a J. |Event updates will not be displayed until the poll modules ticks once.PLook at O for documentationIJKLMNOPQRSTIJKLMNOPLMKNJOIP IJKLMNOPQRSTPrint some constant valuesongytestinglinuxNoneUThe type for this functionalityWGet a U for familiar syntaxUVWXYUVWUVWUVWXY Output module for dzen2ongytestingLinuxNoneZ The output handle for dzen2 pipe[3Get 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 formattingZ[AThe 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.Divider^Z[\]Z[\]Z[\]^!Output module for AsciiongytestingLinuxNone_"The output handle for a ascii pipe`?Get an output handle for ascii formatting. Divider Defaults to " | "a)Get an output handle for ascii formatting_`a The Dividerb_`a_`a_`ab"Output module for utf8ongytestingLinuxNonec!The output handle for a utf8 piped>Get an output handle for utf8 formatting. Divider defaults to " | "e)Get an output handle for utf8 formatting.cdeThe divider between segmentsfcdecdecdef#Output module for storingongytestingLinuxNoneg)The output handle for using show instancei(Get an output handle for show formattingghijghiighghij$&Output module for doing a "best guess"ongytestingLinuxNoneATk(The datatype for wrapping outher outputslMLowerlevel access to guess which terminal out to use based on system encodingm=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 localeklm'The output to use for non-terminal modenklmkmlklmn%Output module for storingongytestingLinuxNoneo)The output handle for using show instanceq(Get an output handle for show formattingopqropqqopopqr&Output module for i3-barongytestingLinuxNonesOutput handle for i3-bartNGet output handle for i3-bar. This initializes the communication on generation stustststu'2Guess the output that should be used based on pipeongytestingLinuxNoneATvType wrapper for this to workw<Guess output based on isatty and other side of the stdout fdx<Guess output based on isatty and other side of the stdout fdvw Dzen height Dzen xbm pathx Dzen height Dzen xbm pathThe Divider to useyvwxwvx vwxy(2Monky 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}~}~}~}~)/Monky module that modifies other modules outputongytestingLinuxNone'Handle for modifying output in IO monad3Handle for duing pure modification of module output4Get a handle to purely modify another modules outputCGet a handle that can modify another handles output in the IO monadvChange the replacemant char in an monky image (if your font doesn't support it), returns initial value if not an image  *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+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   ,-An example module instance for the cpu moduleongytestingLinuxNone2The handle type for the default setup (numa aware)%The handle type for the default setup(Handle to acces thermal zone information*Handle to access cpu frequency information (Numa aware handle to get cpu usage stats !Handle to get the cpu usage stats)Get a handle to access max node frequencyNuma away version of Get the ) for the system (tries to guess CPU zone)Get a f for each cpu termal zone on the system. will be infinite list, with invalidated zones for convinienceGet a  for the specified thermal zoneGet a raw CPU handleGet raw numa aware cpu handlesGet a FThis is a shiny combination of the raw handles exported by this moduleSame as $ but tries to guess the thermal zoneNuma aware version of Same as $ but tries to guess the thermal zone$  5The type of scaling frequency that should be reportedThe thermal zone of the cpu5The type of scaling frequency that should be reported,A list of thermal zones for our numa handles  -.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.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!"#  !"#/-An example module instance for the MPD moduleongytestingLinuxNone/The handle for this exampleGet an 1 (server has to be running when this is executed) $%&'()The host to connect toThe port to connect to $%&'()0+Integration example for pulseaudio library.ongy experimentalLinuxNoneLPulse 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 handler'Try to start pulse loop. silently fail!GConnect to pulse server and try to start the main loop for this module.%Get the handle for pulse integration.,*+$The continuation if everything fails!Sink to use (Nothing for default)Output function6The servername (Nothing will use environment variable),*+1/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 handle-./0-./02.An example module instance for the disk modulemoepitestingLinuxNoneThe handle type for this moduleGet a disk handle1IThe UUID of the device to monitor. It has to be mounted at monky startup!127893:;;<=>?@ABCDEFGHIJKLMNOPQRRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~                !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     !!!!""""####$$$$%%%%&&&'''''''((()))))))))******++++,, ,,,&,',,,,,,(,,+,,,,,,,---/---.........////00000111122233:333333333u      !"#$%&'()*+,-./0123456789:;<=> ? @ A B C  D E F G H I J K L M N O PQRS T  U V W K X Y Z [ \ ]4^4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4opqprps#$t u v w x y z { | } ~                                                       [5[   !!!"""$&&&&&&' ' ' ' ' '''''''())+++,,,,,,,,,,, ,!,",#,$-%--&.'.(..).*.+//,/-/.///00102011Z131425$monky-2.1.3.0-7ZFjGoseg8I95Lpi026DdM Monky.Utility Monky.MPDMonky.Outputs.Unicode Monky.IP.RawMonky.IP Monky.WifiMonky.Connectivity Monky.BatteryMonky.Network.StaticMonky.Network.DynamicMonky.Disk.CommonMonky.Disk.Btrfs Monky.Alsa Monky.BlkidMonky.Disk.Device Monky.Version Monky.Network Monky.Memory Monky.CPU Monky.Time Monky.ModulesMonkyMonky.Examples.PrependMonky.Examples.ConnectivityMonky.Examples.FileMonky.Examples.UtilityMonky.Examples.NetworkMonky.Examples.WifiMonky.Examples.Sound.AlsaMonky.Examples.CombineMonky.Examples.PlainMonky.Outputs.Dzen2Monky.Outputs.AsciiMonky.Outputs.Utf8Monky.Outputs.ShowMonky.Outputs.FallbackMonky.Outputs.SerializeMonky.Outputs.I3Monky.Outputs.GuessMonky.Outputs.ModifyMonky.Examples.ModifyMonky.Examples.ImagesMonky.Examples.BatteryMonky.Examples.CPUMonky.Examples.TimeMonky.Examples.MemoryMonky.Examples.MPDMonky.Examples.Sound.Pulse Monky.DiskMonky.Examples.Disk Monky.CUtilMonky.TemplateMonky.VersionTHMonky.Examples.Alsadirectory-1.2.6.2System.Directory listDirectoryUNameStatusvolumerepeatsrandomsingleconsumeplaylistplaylistLengthstate 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 AddressFamily AF_UNSPECAF_INETAF_INET6IPIPv4IPv6IP6IP4parseIPipFromBS familyToNum getAddrFamily $fShowIP4 $fShowIP6$fShowIP $fStorableIP6 $fStorableIP4$fEqIP4$fEqIP6$fEqIPIPHandle getSocket getAddressesgetRawFdsubscribeToEvents handleNext WifiStats wifiChannel wifiRateswifiNamewifiFreqwifiSigSignalSigMBM SigUNSPECWifiConnWifiNoneWifiDisconnect WifiConnect SSIDSocket InterfacegetCurrentWifiStatsgetCurrentWifi getInterface getWifiFd gotReadable prepareEvents getSSIDSocket ConnHandlehasConngetConnH$fStorableSockaddr$fEqPort $fShowPort $fEqSockaddr$fShowSockaddrFilefindLine readValue readValuesreadLine readContentfopenfclose splitAtEvery maybeOpenFile sdivBound sdivUBoundgetUnamegetKernelVersion$fFileReadableByteString$fFileReadable[]$fLineReadableByteString$fLineReadable[] $fShowFile$fEqFile BatteryStateBatFull BatLoading BatDraining BatteryHandlegetCurrentStatusgetCurrentLevel getLoading getTimeLeftgetBatteryHandlegetBatteryHandle'$fShowFilesArray NetworkHandle getReadWritegetNetworkHandlecloseNetworkHandleUHandlesHandlesgetMultiReadWrite getUHandles$fShowNetHandleFSIFsInfo getFsFree getFsSize getFsUsedgetFsAllfsToFSI blBasePath mapperToDev devToMapper BtrfsHandle getFSDevicesgetBtrfsHandle$fFsInfoBtrfsHandle$fStorablePollFD VOLHandle updateVOLH getVolumeRawgetVolumePercentgetMuteisLoaded getPollFDsdestroyVOLHandle getVOLHandle evaluateTag' evaluateSpec' evaluateTag evaluateSpec withLibBlkid BlockHandleBlockH devToMountgetBlockHandle$fFsInfoBlockHandle getVersionNetworkHandlesgetReadWriteMultigetNetworkHandles MemoryHandlegetMemoryAvailablegetMemoryTotal getMemoryFree getMemoryUsedgetMemoryStatsgetMemoryHandle ScalingType ScalingMax ScalingCur ScalingNone NumaHandlenumaCpus numaHandle FreqHandle TempHandle CPUHandleguessThermalZone getCPUPercentgetNumaPercent getCPUTempgetCPUMaxScalingFreq getFreqHandle getFreqNuma getCPUHandlegetThermalZonegetThermalZonesgetNumaHandles TimeHandlegetTimegetHM getTimeHandleModulesPollEvt EvtModulesDW PollModulesNMW EvtModule startEvtLoop PollModule getOutput initialize MonkyOutputdoLineMonkyOut MonkyPlainMonkyBar MonkyHBar MonkyColor MonkyImagepollPackevtPack$fSerializeMonkyOut$fShowMonkyOut$fReadMonkyOut startLoopT startLoop EvtPostHandleEvtPost EvtPrepHandleEvtPrep PostHandlePost PrepHandlePrep packPrepend packAppend evtPrepend evtAppend$fEvtModuleEvtPostHandle$fEvtModuleEvtPrepHandle$fPollModulePostHandle$fPollModulePrepHandleConn$fPollModuleConn FileHandle getFileHandle$fPollModuleFileHandleloopFd convertUnit convertUnitB convertUnitSINetworkStaticHandleNetworkDynHandlegetNetworkHandles'getStaticHandlegetDynamicHandle$fPollModuleNetworkStaticHandle$fPollModuleNetworkHandles'$fPollModuleNetworkDynHandle WifiFormat FormatChannel FormatRates FormatName FormatFreq FormatSignal FormatText WifiHandle getWifiHandle$fPollModuleWifiHandle$fEvtModuleWifiHandleAlsaH$fEvtModuleAlsaH$fPollModuleAlsaHPECombiEPCombiEvtCombi CombiHandlecombinecombineEcombineFcombineD$fPollModulePECombi$fPollModuleEPCombi$fEvtModuleEvtCombi$fPollModuleCombiHandle MonkyListgetPlain$fEvtModuleMonkyList$fPollModuleMonkyList DzenOutput getDzenOut getDzenOut' getDzenOutDiv$fMonkyOutputDzenOutput AsciiOutput getAsciiOutgetAsciiOutDiv$fMonkyOutputAsciiOutput Utf8Output getUtf8Out getUtf8OutDiv$fMonkyOutputUtf8Output ShowOutput getShowOut$fMonkyOutputShowOutputWrapOutschooseTerminalOutgetFallbackOut$fMonkyOutputWrapOutsSerializeOutputgetSerializeOut$fMonkyOutputSerializeOutputI3Output getI3Output$fMonkyOutputI3OutputGuessOut guessOutputguessOutputDiv$fMonkyOutputGuessOut $fEqOutput $fOrdOutput $fShowOutput ModifyOutputgetModifyOutput$fMonkyOutputModifyOutputIOModifyHandle ModifyHandlegetModifyHandlegetIOModifyHandle changeImage$fEvtModuleIOModifyHandle$fPollModuleIOModifyHandle$fEvtModuleModifyHandle$fPollModuleModifyHandle diskImage memoryImagefancyTimeImage timeImage batteryImagecpuImageBatteryH$fPollModuleBatteryHgetTempHandle'getTempHandles getTempHandle getRawCPU getRawNumas getCPUHandle'getNumaHandles'$fPollModuleNumaHandle$fPollModuleCPUHandle$fPollModuleTempHandle$fPollModuleFreqHandle$fPollModuleRawNuma$fPollModuleRawCPUFTHandleTHandlegetFancyTimeHandle$fPollModuleFTHandle$fPollModuleTHandleMBHandleMFHandleMHandlegetMemoryFreeHandlegetMemoryBarHandle$fPollModuleMBHandle$fPollModuleMFHandle$fPollModuleMHandle MPDHandle getMPDHandle$fEvtModuleMPDHandle$fPollModuleMPDHandlePulseH startPulsestartPulseMaybegetPulseHandle$fEvtModulePulseH DiskHandlegetDiskReadWrite getDiskFree getDiskHandleDiskH$fPollModuleDiskHuname _uSysName _uNodeName _uRelease _uVersion _uMachinec_unamec_strlen peekCString$fStorableUName openMPDSocketbaseSystem.Posix.TypesFdMPDSockreadText rethrowSExcpt trySExcptrecoverableCon tryConnect doMPDConnInit recvMessage sendMessage getAudioTuplegetStateparseStatusRecparseSongInfoRec parseStatus parseSongInfomemcpyhtonlntohlc_ntopc_ptonshowIPIOshowIP parseIPIO showIP6IOshowIP6cRTNLGRP_IPV4_IFADDRcRTNLGRP_IPV6_IFADDR linkQuerygetInterfaceID addressQuery getSignal attrToStatuDecode uGetWord32 getBssAttrsPortc_socketConnHSockaddrSockahtons c_connectc_closetryConn updateLoopghc-prim GHC.TypesIntreadStringLines readBSLines FileReadablehGetFile LineReadable hGetReadablegetCurrentStatusIntgetCurrentLevelIntgetTimeLeftIntcreatePowerNowHandlecreateChargeNowHandle FilesArrayPowerNow ChargeNowBatHpnowPathenowPath efullPathvnowPathcnowPathcavgPath chnowPath chfullPathadpPathgetCurrentStatusMNetStateDownUpUnknownDormantNetHbasePathreadPath writePath statePathcalculateRatesgetReadWriteReal NetHandlefoldFgotNewlostOld requestPacket readInterface&netlink-1.0.0.4-6wFrz2QGO5bGR9WgG2HE2cSystem.Linux.Netlink.Route RoutePacketgetCurrentDevsdoUpdate updaterLoopupdaterBtrfsH fsBasePath sectorSizegetSizegetUsedgetBtrfsHandle' 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 percentizegetVOLHandleIntCacheLibBlkidc_evtc_evsmkFunCStringPtrCacheIOCString$mkFunCStringCStringPtrCacheIOCStringdestroyLibBlkid getLibBlkidgetAndFreeStringmaybeGetStringgetFreegetBlockHandle' versionTHGHC.BaseNothingNetHsgetMultiReadWriteIntMemoryHpathgetVal checkTypethermalGuesserguessThermalZones calculateWork getNumaHandleFHTHCPUHpathStat pathCPUBase thermalBasePpathTemppathMaxScalingpathCurScaling pathNumaBasegetCPUFreqsCurgetCPUFreqsMaxcalculatePercentreadVals getPercentgetMax getCPUFreqsgetCPUs getHandleTimeHdoTimepackMod ModuleWrapperMWrappergetWrapperText doMonkyLine doCachedLinewaitTickmainLoopshowCongetFile convertUnitTSHDHNetworkHandles'NH'formatNNetworkTextgetNNetworkTextgetNDNetworkTextdoMBMWHgetFun getFunction doStrengthgetEventOutputAH getVolumeStr getVOLOutputPEEPECCdoOut doSegmentWOi3Full makeColorgetOut outputLineGOOutputTerminalProcessOther networkOutsfdToPath getProcFdshasPipe pickCandidate getOutputTypechooseProcessOutMHIOMHBH batteryColor batterySymbolRawNumaRawCPUNUHCPHcpuColorprintBarprintXbmprintFrequency printThemp getNumaNodeformatNumaNodeFTH timeToXBMMBHMFHgetUsagePercentsnewBar getNMemoryOutgetPlayingSong extractTitle getSongTitlegetEventgetFd printSink startLoopM getBtrfsDH getBlockDH