XMoBar Question

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

XMoBar Question

Dominik Bruhn
Hy,
I tried to switch from dzen2 to xmobar as statusbar for my xmonad but
ran into these three problems:

1. I want my Mailcount (how many new mails are there in my Maildir on my
harddisk) to be displayed. How can I achieve this? Should I run a
external program? Im searching for a solution which needs the less cpu
(and io) as possible, as xmonad is running on my notebook. An external
shellscript would do a big overhead, so is there a better solution?

2. I wanted to draw a progressbar (oder a rectangle) for the
battery-status and the volume. How can this be done?

3. Is there a posilibity to draw icons like dzen2? I just wanted a green
envelope for "no new mails" and a red one for "new mails". Is this
posible?

I know this might not be the right place to ask the question, but
perhaps someone can help me.

Thanks
--
Dominik Bruhn
mailto: [hidden email]
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : http://www.haskell.org/pipermail/xmonad/attachments/20071213/5e8ecd5a/attachment.bin
Reply | Threaded
Open this post in threaded view
|

XMoBar Question

Hans Philipp Annen
Hi!

On Thu, Dec 13, 2007 at 12:14:03AM +0100, Dominik Bruhn wrote:
> Hy,
> I tried to switch from dzen2 to xmobar as statusbar for my xmonad but
> ran into these three problems:
>
> 1. I want my Mailcount (how many new mails are there in my Maildir on my
> harddisk) to be displayed. How can I achieve this? Should I run a
> external program? Im searching for a solution which needs the less cpu
> (and io) as possible, as xmonad is running on my notebook. An external
> shellscript would do a big overhead, so is there a better solution?

Well, I think a shell script is ok if you don't need to check your email
account every few seconds...

I use the following quick-and-dirty script for my Maildir: It shows "M 0"
in white if there are no new mails, "M 4" (4 being the total number of new
mails) if there is at least one new mail in the INBOX and the whole thing
in green if there is new mail but nothing in the inbox (just new mails in
subfolders for mailing lists or spam):

#!/bin/sh

nnewmail=`find $MAILDIR/ -wholename "*new/*" |wc -l`
nnewinterestingmail=`ls $MAILDIR/new`

#for xmobar
if [[ $nnewmail == 0 ]]; then
        echo "M 0"
elif [[ $nnewinterestingmail != "" ]]; then
        echo "<fc=#FF3030>M $nnewmail</fc>"
else
        echo "<fc=#00FF00>M $nnewmail</fc>"
fi


I execute it every 3 minutes, so the overhead is not that big

As for the battery status and icons: I think xmobar is strictly
text-based, but I wrote a small C Program to generate a battery status
bar like this:

charing [########-----]

It's just a few lines, if you are interested I will send them to you.


Hans Philipp Annen
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://www.haskell.org/pipermail/xmonad/attachments/20071213/ebc64b45/attachment.bin
Reply | Threaded
Open this post in threaded view
|

XMoBar Question

Trevor Elliott-3
On Thu, 13 Dec 2007 01:19:58 +0100
Hans Philipp Annen <[hidden email]> wrote:

> Hi!
>
> On Thu, Dec 13, 2007 at 12:14:03AM +0100, Dominik Bruhn wrote:
> > Hy,
> > I tried to switch from dzen2 to xmobar as statusbar for my xmonad
> > but ran into these three problems:
> >
> > 1. I want my Mailcount (how many new mails are there in my Maildir
> > on my harddisk) to be displayed. How can I achieve this? Should I
> > run a external program? Im searching for a solution which needs the
> > less cpu (and io) as possible, as xmonad is running on my notebook.
> > An external shellscript would do a big overhead, so is there a
> > better solution?

So, I've written a program that does something similar to this, for
dzen2.  Basically, it takes the output from xmonad, and adds in the
date, battery status, and whatever else you can think of to the actuall
input to dzen, thus allowing you to customize the output a bit more.

You can write new things to have it output via a simple plugin api (in
haskell, of course).  If you're interested, I would be happy to
cabalize it, and put it up somewhere.

--trevor
Reply | Threaded
Open this post in threaded view
|

XMoBar Question

Dominik Bruhn
In reply to this post by Dominik Bruhn
Hy,
I thought about using some unicode-charaters instead of the images, but
there is a problem: XMoBar doesnt support Unicode. Even the german
umlauts written in UTF-8 appear wrong in the bar.
Is this a haskelllimitation and how hard is it to change this?

Thanks
--
Dominik Bruhn
mailto: [hidden email]
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : http://www.haskell.org/pipermail/xmonad/attachments/20071213/abe9e28b/attachment.bin
Reply | Threaded
Open this post in threaded view
|

XMoBar Question

Brent Yorgey
In reply to this post by Trevor Elliott-3
On Dec 12, 2007 7:34 PM, Trevor Elliott <[hidden email]> wrote:

> On Thu, 13 Dec 2007 01:19:58 +0100
> Hans Philipp Annen <[hidden email]> wrote:
>
> > Hi!
> >
> > On Thu, Dec 13, 2007 at 12:14:03AM +0100, Dominik Bruhn wrote:
> > > Hy,
> > > I tried to switch from dzen2 to xmobar as statusbar for my xmonad
> > > but ran into these three problems:
> > >
> > > 1. I want my Mailcount (how many new mails are there in my Maildir
> > > on my harddisk) to be displayed. How can I achieve this? Should I
> > > run a external program? Im searching for a solution which needs the
> > > less cpu (and io) as possible, as xmonad is running on my notebook.
> > > An external shellscript would do a big overhead, so is there a
> > > better solution?
>
> So, I've written a program that does something similar to this, for
> dzen2.  Basically, it takes the output from xmonad, and adds in the
> date, battery status, and whatever else you can think of to the actuall
> input to dzen, thus allowing you to customize the output a bit more.
>
> You can write new things to have it output via a simple plugin api (in
> haskell, of course).  If you're interested, I would be happy to
> cabalize it, and put it up somewhere.
>

I think this would be a fantastic tool for the xmonad community.  (I have a
similar program, but it's not at all modular or extensible.)  Cabalizing it
and putting it up somewhere would be great -- or even better, set up a
public darcs repo so people can contribute new plugins. =)

-Brent
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/xmonad/attachments/20071213/b32f4ddf/attachment.htm
Reply | Threaded
Open this post in threaded view
|

XMoBar Question

Don Stewart-2
In reply to this post by Dominik Bruhn
dominik:
> Hy,
> I thought about using some unicode-charaters instead of the images, but
> there is a problem: XMoBar doesnt support Unicode. Even the german
> umlauts written in UTF-8 appear wrong in the bar.
> Is this a haskelllimitation and how hard is it to change this?

It should be easy to support uft8 (just use the utf8-string IO package).
We have utf8-friendly code in XMonadContrib, so I imagine it
should be easy to add to xmobar if its missing.
Reply | Threaded
Open this post in threaded view
|

UTF-8 (Was: XMoBar Question)

Roman Cheplyaka-2
* Don Stewart <[hidden email]> [2007-12-13 10:49:52-0800]
> It should be easy to support uft8 (just use the utf8-string IO package).
> We have utf8-friendly code in XMonadContrib, so I imagine it
> should be easy to add to xmobar if its missing.

Not all the modules is utf8-friendly, e.g. Xmonad.Prompt.
All I've found in XMC is 'decode' function in XMonad.Util.XSelection
borrowed from utf8-string. Is 'decode' sufficient for Unicode support in
other modules?

--
Roman I. Cheplyaka
http://ro-che.info/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 307 bytes
Desc: Digital signature
Url : http://www.haskell.org/pipermail/xmonad/attachments/20071219/732e6dcc/attachment.bin
Reply | Threaded
Open this post in threaded view
|

UTF-8 (Was: XMoBar Question)

Andrea Rossato
Il Wed, Dec 19, 2007 at 02:06:35PM +0200, Roman Cheplyaka ebbe a scrivere:
> * Don Stewart <[hidden email]> [2007-12-13 10:49:52-0800]
> > It should be easy to support uft8 (just use the utf8-string IO package).
> > We have utf8-friendly code in XMonadContrib, so I imagine it
> > should be easy to add to xmobar if its missing.
>
> Not all the modules is utf8-friendly, e.g. Xmonad.Prompt.
> All I've found in XMC is 'decode' function in XMonad.Util.XSelection
> borrowed from utf8-string. Is 'decode' sufficient for Unicode support in
> other modules?

The issue is not so simple... First I'm reporting an answer I sent to
the original message at the beginning, message that I sent privately
for an error of mine...

---- original private msg -------
xmobar doesn't handle multi-byte character yet. it shouldn't be
difficult to do it, by the way. I'm really sorry but I've been
terribly busy in the last few days, and I think it is not going to be
better for another week or so (till the Christmas break (20 of
December for me): after that it will be hacking time!

And I'll take care of this issue too. If you want to have a try
yourself, it is just a matter of using a FontSet instead of a
FontStruct, and using XwcDrawImageString instead of XDrawImageString
(but I may be missing something right now). If you look in the list
archive I've sent some version of xprompt with wide character support
in the past. That could be used as an example.
---- end original msg -----------------------------

So, the same is true for every other module in xmonad: since we need
to talk to the xserver through xlib, we must call setlocale and use
locale aware functions (XwcDrawImageString, etc).

Then we can properly deal with the user locale (which can be utf-8).
AFAIR we do not need to specifically convert from a given locale,
since iconv can do everything for us - but I need to go back to when I
was doing that i18n work for xprompt and see if now I'm missing
something, which is actually quite probable at the present time. BTW,
as Don suggested, the Haskell part should be easy. The Xlib/C part a
bit less.

As I said originally, in the list archive there are some messages of
mine analyzing the issue. Maybe there are still useful, somehow.

Today it is my last lecture day. I'll have some more stuff to do
tomorrow, but after that I'll be back enjoying some Haskell hacking.
Moreover, now that the contrib extension is packaged as a library,
doing this i18n stuff should be relatively easier...;)

Hope this helps for now.

Andrea