summaryrefslogtreecommitdiffhomepage
path: root/src/Xmobar/Plugins
AgeCommit message (Collapse)Author
17 hourshlint warningsHEADmasterjao
10 daysAccordion - a few cleanupsEnrico Maria De Angelis
- Use `RecordWildCards` language extension - Use `concurrently_` and `mapConcurrently_` instead of `withAsync` - Use `Bool` instead of `Maybe ()` - Use `whenM` instead of `when` - Add signature to `loop`
2026-03-12Accordion: remove unnecessary context from `Exec` instanceEnrico Maria De Angelis
2026-03-09Update doc for PacmanUpdatesEnrico Maria De Angelis
This is a minor follow up to https://codeberg.org/xmobar/xmobar/pulls/764, so see that one as well if you got here because the plugin told you it's deprecated. This change consists of: - turning the deprecated constructor in a pattern synonym for the new ones (which are also pattern synonyms for calling convenience), - dropping the `PacmanUpdatesDeprecated` type entirely, - adding documentation with usage examples.
2026-03-08Improve `PacmanUpdates`Enrico Maria De Angelis
Recently, I've seen the usefulness in knowning whether one of the pending updates is a kernel update (which means we should most likely reboot after next system update), and also whether the running kernel is older than the installed kernel package (which means we've probably not rebooted yet), so I thought I should update this plugin. However, the feature of knowing whether a kernel update is contained in the available updates requires that one knows the kernel package name, so that's to be a `String` input to the plugin. But one might not want to pass it, and be happy with just the detection of whether the running kernel is older than the installed one. Since recently, I've been studying type families and also come across pattern synonyms, I thought I could leverage these, so I thought I could parametrize the plugin over kind `Bool`, and branch on it to provide the different APIs; then I could use type synonyms to lift the burden of having to use type application at the user code. Furthermore, rather than still customizing the message by asking the user to provide `String`s for the various cases (0 updates, 1 update, 2+ updates), I thought it was better to ask the caller to provide a function that accepts the relevant inputs (`Int` number of updates, `Bool` telling whether such and such) and turns them into a `String`. With this change, I'm - renaming the previous type `PacmanUpdates` to `PacmanUpdatesDeprecated` - deprecating such type (with a pragma and by printing a clickable note in the plugin text) with the intention of deleting it in a year from now, - preserving its data ctor's to avoid breaking existing code right now, - creating a new `PacmanUpdates` type that is parametrized over kind `Bool` - the `True` instance allows passing the name of the kernel package that the plugin uses to detect whether there's a pending kernel update - the `False` instance doesn't, - accordingly the two instances accept from the caller a printing function with different signature (see haddock comments for details), - hiding (i.e. not exporting) the constructor of such new type, - provided pattern synonyms to more conveniently create a `PacmanUpdates False` (for `PacmanUpdates True` is just the same as the ctor), - changing the approach with which the final `String` is produced, from asking the user to provide a bunch of some sort of template `String`, to asking them for a function that produces a `String` given the required inputs (e.g. the number of available updates).
2026-02-28Remove deprecated ArchUpdates pluginEnrico Maria De Angelis
Users should have long switched to PacmanUpdates, as communicated in #723. Furthemore, we had forgotten to list PacmanUpdates in the plugins wrappable in Runnable. Fixed now.
2025-12-24Remove unnecessary `extensible-exceptions` dependencykonsumlamm
2025-10-23Accordion: avoid spawing a process to read from pipeEnrico Maria De Angelis
The reason is that this way the issue https://codeberg.org/Aster89/xnobar/issues/15#issue-2346829 is fixed. See https://codeberg.org/Aster89/xnobar/issues/15#issuecomment-7864955 for more details.
2025-06-04MPD compilable again by default with all_extensionsjao
2025-06-02swap_enabled is not accessable in FreeBSD 15/CurrentMichal Zielonka
instead of swap_enabled in top program currently checking number of swap devices is used.
2025-06-01Accordion: new constructor to allow short version to have plugins tooEnrico Maria De Angelis
2025-06-01Accordion: some renaming and reformattingEnrico Maria De Angelis
2025-04-14feat: add new PacmanUpdates pluginAlexander 'ccntrq' Pankoff
the new PacmanUpdates plugin behaves similar to the ArchUpdates plugin while additionally allowing to pass in a custom error message for unknown pacman failures. The default error message of `pacman: Unknown cause of failure.` of the ArchUpdates plugin is too long for my taste. The ArchUpdates plugin was modified to delegate to the new PacmanUpdates plugin while providing the default error message and to show a deprecation notice in the zero updates case. The new name better represents the Plugin's compatibility with all pacman-based distributions, not just Arch. The docs have been updated to reflect the existence of the new plugin and to highlight the similarities between the ArchUpdates and PacmanUpdates plugins. The ArchUpdates plugin has been marked has deprecated there to.
2025-03-31hlintingjao
2025-03-31mpris: Read track length from Word64 tooClaudio Bley
According to the MPRIS v2 spec, the length of a track "must be given in microseconds, and be represented as a signed 64-bit integer". [1] But Spotify does not follow the spec and represents it as an unsigned 64-bit integer: ``` $ dbus-send --session --print-reply --reply-timeout=150 --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get string:org.mpris.MediaPlayer2.Player string:Metadata method return time=1743433787.301824 sender=:1.142 -> destination=:1.178 serial=1071 reply_serial=2 variant array [ dict entry( string "mpris:length" variant uint64 152000000 ) ... ``` This always made the `length` template argument end up empty, but allowing a Word64 for this attribute fixes this problem. [1]: https://specifications.freedesktop.org/mpris-spec/latest/Track_List_Interface.html#Mapping:Metadata_Map
2024-08-26fallback to weather in weatherSjao
2024-08-25wee refactoringjao
2024-08-25new template variable weatherS for WeatherXjao
2024-06-21Accordion: a plugin two wrap other plugins and collapse them to a single ↵Enrico Maria De Angelis
replacement string
2024-05-22Remove 1-arg ctor for ArchUpdatesEnrico Maria De Angelis
2024-05-18ArchUpdatesEnrico Maria De Angelis
2024-05-07Revert "Make the Kbd monitor clickable, with click selecting the next layout"jao
This reverts commit 0fec9d3fdf9bc86187f9f670dafd2ef57fe03f29. Mouse actions can already be attached to the monitor, and for instance use there invocations to setxbdmap to switch layouts. Fixes #703.
2024-03-30fix for unmet pattern matches warnings (clean build)jao
2024-03-30Add ctor for Locks plugin to accpet on/off labelsEnrico Maria De Angelis
2024-03-30Fix zombie processes left by <action> tag and low battery actionUlrik de Muelenaere
This effectively reverts c54d93e and 991a168. While those fix #687 and #688 respectively in the case where the configuration is recompiled, in all other cases they leave zombie processes, since they undo the fix for #181. However, instead of reverting to the deprecated system function, we use the newer spawnCommand and waitForProcess. And like with 991a168, the low battery action now runs in the background to avoid blocking the bar.
2024-03-17Make the Kbd monitor clickable, with click selecting the next layoutEnrico Maria De Angelis
2024-02-18battery: spawnCommand instead of system when running actions0.47.4jao
should fix for real #688 this time
2023-11-11compatibility with GHC 9.6jao
2022-11-30lintingjao
2022-09-22import clean-upsjao
2022-09-21lintingjao
2022-09-18whitespacejao
2022-08-13fix: in -W0, char 0->[0,10], char 1->[10,20]...jao
2022-05-16Fix for -W "0" spec in logarithmic barsjao
Should address issue #630.
2022-05-12Remove the now useless -DUTF8 flagjao
2022-04-18CpuFreq: new template parameters max, min and avg.jao
Fixes #166.
2022-04-18Stylistic nits for previous Batt refactoring/fixjao
2022-04-18Split up battery reading functions; fixed unitsPatrick Günther
Every quantity is now read in its own function and Maybe and pattern matching is used for dealing with absent files. On top of that all units should be fixed now.
2022-04-16Fixed unit of battery power consumptionPatrick Günther
2022-04-14Memory: new argument to scale usage unitsjao
Fixes #624
2022-04-13make small refactoring of load linux codeMichal Zielonka
Add <$> for parsing content of file.
2022-04-11add load monitor for freebsdMichal Zielonka
2022-03-30Fix: consistent use of configured nastring instead of hardcoded N/Ajao
2022-03-30Wee clean-upsjao
2022-03-30Load: honour the -d (decimal digits) monitor argumentjao
2022-03-30Load monitor: correctly colorize according to -L/-Hjao
2022-03-30Load: new load average monitorjao
Closes #208
2022-03-29Apply hlint suggestions to MultiCoreTempRob Whitaker
2022-03-29Fix MultiCoreTemp's temperature file finding logicRob Whitaker
Instead of searching for a fixed set of files and directories (numbered 0-9), which would miss anything above 9, it now searches the relevant directories for files matching the right pattern, regardless of number. Fixes #616.
2022-02-19Strip new lines from X log messages (issue #590)jao