Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
We are now—in case the user specified a Haskell file as their xmobar
configuration—threading the command line arguments that xmobar receives
to the relevant execv() call. However, we simply shove in all arguments
originally given to xmobar, including the path to the configuration
file. As main is now defined within that very file, this seems
unneccessary.
By filtering out that part of the arguments, the pattern that a lot of
users seem to follow for easy setting of certain options becomes a
little bit nicer. For example:
main :: IO ()
main = getArgs >>= \case
["-x", n, _] -> xmobar . config $ read n
_ -> xmobar $ config 0
becomes
main :: IO ()
main = getArgs >>= \case
["-x", n] -> xmobar . config $ read n
_ -> xmobar $ config 0
Related: https://github.com/jaor/xmobar/pull/553
|
|
|
|
|
|
|
|
|
|
|
|
Ever since d51b9d5dd6537e5369e13a9a11ae98aeadce50dd we can't specify a
MailItem via the record syntax anymore. This could conceivably be added
back in by being part of the Read instance, but that would make it more
complicated for perhaps little gain.
Related: https://github.com/jaor/xmobar/issues/547
|
|
The automatically derived read instance expects the type to be given in
record syntax; this is not what most users want. In order to simply
specify the type via
Run NotmuchMail "mail" [MailItem "name" "" "tag:unread"] 3000
we have to write our own Read instance.
Related: https://github.com/jaor/xmobar/issues/547
|
|
This is needed for the plugin to parse properly in non-Haskell based
configurations.
Related: https://github.com/jaor/xmobar/issues/547
|
|
programmatically
|
|
|
|
|
|
|
|
The existing support for the coretemp kernel driver only works with
Intel CPUs.
This commit extends support for temperature monitoring to AMD CPUs.
k10temp is a kernel driver for monitoring the temperature of AMD
processors. It supports everything from AMD's 10h (Opteron/Athlon)
family of processors to the latest 19h (Zen 3) family.
Reference: https://www.kernel.org/doc/html/latest/hwmon/k10temp.html
The meaning of the various temperatures made available has changed over
the years and only `Tctl` is available on processors prior to the 17h
family.
Labels for these temperatures are present but as Tctl and Tdie do not
contain a number I could not find a way to use these as
`checkedDataRetrieval` expects an integer label.
It is a PCI device and so an address needs to be supplied as part of the
configuration.
Example configuration:
`Run K10Temp "0000:00:18.3" ["--template", "T: <Tdie>C | <Tccd1>C"] 60`
|
|
|
|
While using xmobar to reproduce/fix a bug in xmonad I noticed that
xmobar doesn't react immediately to the signals to reposition or change
screen.
Apparently none of the Xlib functions called from `repositionWin` flush
the Xlib output buffer (XMoveResizeWindow is known to not flush,
although it's unfortunately not documented), so when compiled with the
threaded runtime that runs XNextEvent in a separate thread, the
reposition is sent to the X server only later when other stuff happens.
With all monitors set to refresh once a minute, this can take a looong
time.
(It's entirely possible this happens even without the threaded runtime,
I didn't test that, sorry.)
The fix is to call XSync at the end of `repositionWin`.
While at it, I spotted that drawInWin calls XSync with discard=true,
which seems like a mistake. We don't want to discard any events, do we?
(In practice, I'd expect the `eventer` thread to read all events even
before the drawing thread manages to discard them, so even if this
discarding XSync ever had any reason to be there, I don't think it does
anything meaningful these days. I may be wrong, though.)
|
|
Fix a link to an example.
|
|
This reverts commits c6669e26e1 (partially; changelog entry kept),
73e02934d6, 78efa5900a.
These commits were introduced as a workaround for a double UTF-8
encoding bug in xmonad-contrib which itself was meant to be a
fix/workaround for another issue. We have now identified the underlying
issue and fixed it right at the root, so this entire cascade of hacky
(and wrong) workarounds can be safely reverted. Thankfully, none of the
xmonad-contrib hacks made it into a release, so there's no backward
compat to worry about.
Should anyone be interested in the details,
https://github.com/xmonad/xmonad-contrib/commit/63e31ccd8d2865863778207b679f806941bf2788
provides a summary and links to all the related issues and PRs.
Related: https://github.com/jaor/xmobar/pull/482
Related: https://github.com/jaor/xmobar/issues/476
Related: https://github.com/xmonad/xmonad-contrib/commit/63e31ccd8d2865863778207b679f806941bf2788
Related: https://github.com/xmonad/xmonad-contrib/pull/471
Related: https://github.com/xmonad/xmonad-contrib/issues/377
|
|
|
|
hlint started failing recently:
src/Xmobar/X11/Text.hs:121:32: Error: Parse error: on input `-'
Found:
textExtents (Utf8 fs) s = do
let (_,rl) = wcTextExtents fs s
> ascent = fromIntegral $ - (rect_y rl)
descent = fromIntegral $ rect_height rl + fromIntegral (rect_y rl)
return (ascent, descent)
It's probably a change in the parser or something, didn't really look
into it, just changed it to something that's parsable.
|
|
Pixel intervals in _NET_WM_STRUT_PARTIAL are closed, not open [1], so
xmobar of width 1920 at x=0 needs to be encoded as ⟨0, 1919⟩, not ⟨0,
1920). The code already does this for Top/Bottom positioning, but Static
has been buggy for years.
[1]: https://specifications.freedesktop.org/wm-spec/1.5/ar01s05.html#idm46075117229424
Fixes: https://old.reddit.com/r/xmonad/comments/mynegr/xmobar_dual_monitor_bug/
Fixes: https://github.com/jaor/xmobar/issues/530
|
|
|
|
The cpp option `-DRTSOPTS` results in `RTSOPTS` being defined.
|
|
|
|
|
|
Exposing Common.Types and Common.Run is now redundant, but we could
break configurations out there, so i'm not sure if we should remove them.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The contributing.org file also contains information on how to write a
new monitor for xmobar.
The quick-start guide got reworked a bit to inline similar parts.
|
|
|
|
This also moves Date and DateZone to the monitors section (as they are
monitors themselves). A little bit of documentation was also
added/updated.
|
|
Mostly updating links and old (i.e. outdated) information
|
|
|
|
|