More docs, apps, and tweaks
Over a month since my last entry. Anyway.
The Work
I've been busy churning out the August issue of the Gentoo Monthly Newsletter, as well as a GMN Howto. This is a guide that details the process for creating the GMN, from start to finish. Over the last couple of months, it's gone from a simple 15-line cheat sheet to something a lot more useful for future GMN staff and any interested contributors.
A fair amount of documentation updates for the GDP, too. I was curiously unmotivated most of the month of August, though that's in part because of my health; I spent the first bit of it in the emergency room trying to figure out why my insides were coming apart. Still no idea.
And I've updated my devspace. Lots of changes. Lots of new stuff added and rearranged; I expect I broke some old links, but oh well. All that stuff in misc/
really needed organization.
I also poked aballier to get the new version of Decibel into the tree. Oh yeah. Upgrade to 0.11; it adds album cover art, among other things.
The Apps and the Machine
I've also been hacking up various ebuilds for packages not yet in the tree, such as tint2. This is all for my laptop, which I'm trying to slim down even more. Been removing various applications and making it much more of a minimal Xfce environment. Plus, I like pseudo-transparency. Apps like stalonetray, tint2 (ebuild available here), netwmpager, dzen2, and conky are all curiously appealing. I'm trying to find lightweight, useful, complementary apps to Xfce, in my perpetual quest to create the perfect Xfce environment.
I discovered many of these applications by reading urukrama's blog and kmandla's blog. Both are excellent sources of information on small, light apps, and setting up clean, minimal, functional environments. Quite tasty; be sure to give 'em a read. Especially urukrama's Openbox guide. It's loaded with configuration info, application tips, and much more.
The Environment
I've replaced most of my Xfce panel with stalonetray, conky, and a couple of instances of tint. I just installed dzen, and will be investigating it as a possible replacement for conky. Dzen, however, seems to need a lot of initial time-consuming configuration. And it doesn't seem to do transparency. And it doesn't look like it can even do useful fonts like Verdana.
What I'd really like to do is get rid of all but the start button on the panel, but first I need to find an icon launcher bar that does pseudo-transparency. Why not real transparency? Because compositing with the Intel X3100 graphics chip doesn't seem to be too friendly on my battery life. Actually, I'd be happy if tint had launcher capability now; I hear it's going to be in a future release. I'll just use it when that time comes.
Here's my current desktop: 1 and 2. I've managed to find a nice-looking level of transparency regardless of light or dark background, so everything's fairly clear. Too bad conky can't provide transparency and shade, similar to everything else. That left-hand panel will be going shortly; all I really need are the launchers and the start menu button. Must find a way to slim it down; it takes up too much space. Plus I don't care for vertical panel arrangements.
Since folks are always curious about what's what in any given screenshot:
Left to right: Xfce panel, stalonetray, tint, conky, and tint (just date/time). The wicd applet is anchored in the tray, and a few terminals and gtk+ apps are open in tint.
Background: (1) Liquid Crystal, (2) VSE Grass Flow.
Screen: 14.1", resolution of 1280x800. I notice that when viewing it on my 19" 1440x900 desktop monitor, the fonts look extra-large. Well, they're much smaller on the laptop. The laptop resolution is so high that I have to enlarge things considerably; my eyes aren't what they used to be.
Restoring the Xfce panels
One question that people looking for help with Xubuntu often have is some form of “my panels/taskbar/menu disappeared”. Unfortunately, this is something that happens quite frequently.
The good news is that this is fixed easily. All that’s required is to press Alt
+F2
to bring forward the Run program window, and run the command xfce4-panel
.
Not only is this a quick fix for the problem, it also makes for a quick blog post that might still help quite a few people
Update: Xubuntu 9.04 will include Xfce 4.6 which should be able to automatically restore the panel in the event of a crash. Hooray
Update to that: According to willerlite, the panels do not automatically re-appear. Hmm :S

Mount remote file systems (Tape #2)
I once wrote about sshfs.sh, a shell script to mount a remote file system with sshfs. This is now deprecated!Now I'm giving a try to gvfs-mount. Currently I can mount a volume and list it with gvfs-mount --list, but I cannot browse inside it because it isn't mounted. I played with the --mountable argument, but it must be a joke. I think I need a something fuse daemon from gvfs... I'll keep this up to date.
Update: Everything is alright now. The output of
ps ax | grep gvfs
shows the following process: /usr/lib/gvfs/gvfs-fuse-daemon
. All your mount operations will be available at $HOME/.gvfs.The recent GTK+2.14 release introduces a widget to ask a password thats called GtkMountOperation (have a look at the GTK+ blog). It might be interesting to start a Thunar plugin, and release it officially with Xfce 4.8.
Update 2: And on a fresh Debian install (or in general anyway) don't forget to install the fuse-utils package (
/usr/bin/fusermount
)!Signals
I meant to write about this a while ago, but I forgot, and it just popped into my head for some reason.
If you’re ever using POSIX signals as a means of primitive IPC, and SIGUSR1 and SIGUSR2 aren’t enough for you, never, ever, EVER make use of SIGRTMIN and/or SIGRTMIN plus some offset. Always use SIGRTMAX and SIGRTMAX minus some offset.
Why?
(Disclaimer: this might only be a problem on Linux, but if you want your app to be portable, blah blah blah…) Depending on what C library you’re using, and what pthreads implementation you’re using, the actual numerical value of SIGRTMIN may not be the same in different applications, depending on — get this — whether or not the app links with libpthread. In my case, the pthread impl makes use of the first 3 SIGRT slots, and so when you use the SIGRTMIN macro, you actually call __libc_current_sigrtmin(), and you get a number that’s 3 higher than what you get when you use SIGRTMIN in an app that doesn’t link against libpthread.
Fortunately, SIGRTMAX (which actually expands to a call to __libc_current_sigrtmax()) seems to be a bit more stable. That is, even if SIGRTMIN gets shifted up 3 slots, SIGRTMAX is still the same.
So, the moral of the story is: I never want to see the SIGRTMIN macro ever appear in your code, unless you really know what you’re doing. Instead, use things like SIGRTMAX, SIGRTMAX-4, etc. It may just save you 4 hours of debugging.
xfce trunk
Some of you may have recognized that xfce-4.6 alpha (aka pinkie) still isn't released.I just decided to pack xfce directly from trunk.
It's available at xfce.rpath.org@xfce:devel.
there are some minor problems when updating to group-xfce=xfce.rpath.org@xfce:devel, so that you probably need to remove some packages not needed anymore.
It's not build automaticly from trunk (yet) and I still use the xfce goodies from fl:2.
using trunk for xfce-goodies would be a next step though.
Here are 2 screnshots:

This is xfce with thunar and a "rolled in" Terminal

But thunar hides the mouse, so I closed it
I paid for Xfce
Yesterday I caved in and bought myself one of those cute little laptop devices: an Acer Aspire One.
Note that the giant machine on the left is my previously considered smallish 14.1″ laptop from Dell.
It comes with a Taiwanese distribution, Linpus Linux, based on Fedora 8. More specifically, it comes with the ‘Lite’ variant of the distribution which features Xfce as its desktop environment. Well, actually, it is part modified Xfce, part Easy(tm) interface created by Acer for this device (they call it xfdesktop2, a bit strange if you ask me).
Wow. A commercial offering available from a store for regular people, with software that I helped create. Awesome. Maybe I should have asked for a discount ;-)
I’ve just started playing with it and I think they did a pretty good job. The interface is really easy, but can only access a few predefined applications. I have wanted to write such a full screen launcher/control center interface for a long time, but never got around to actually doing anything about it. It would be perfect for my parents, who have a very hard time working with their Windows XP.
They use a modified Thunar (My Disk://, Removable://, indication of disk usage in the side bar) that seems to work fairly well.
They don’t provide easy access to changing the configuration, since they disabled the right mouse menu on the panel. However Alt-F2 brings up xfrun as in a regular Xfce installation and Terminal is installed.
There’s xfce-setting-show to bring up our own settings dialog. It doesn’t fit on the screen (1024×600), but this is partly due to the very big icon they added for screen settings, making all buttons in the dialog much bigger than they need to be. I got rid of the XP window decorations and used the Xfce theme instead of RedHat’s Nodoko. Now that looks better!
xfce4-panel -a gives you the add item menu, where you can add for instance the xfdesktop menu. Also in edit mode some right-click menus do become available (not all). I’ve added a menu and a pager to get a bit more functionality.
Since it’s based on fedora you can use yum to install more software. I’ve just installed gimp to be able to create a decently sized picture for this post.
It has an 8GB SSD for storage and two card reader slots for possible extensions. The one thing where the SSD really shows its advantage is boot time. It boots in about 15 seconds, maybe a bit less (although some daemons are still being started in the background), very nice indeed.
Oh, and it weighs slightly less than 1 kg.
So, now I’ll go back to playing with this thing ;-)
update:
Screenshot
Future of Foresight Linux – Xfce Edition
There haven't been much updates on Xfce Edition for a while, becauseI was busy with re{decorating,novating} my apartment, planning my upcoming wedding, my job and so on.
Here are some News, I have changed Plans for Xfce Edition a little bit. So read on.
When I had a look at the plans for Xfce 4.6, I realized, that Xfce 4.6 might be closer than I thought (there will probably be delay, as it is software (think of gnu/hurd or dnf)). Anyways here is the new plan. It's pretty simple: "Concentrate on 4.6. Go with the Milestones and have a final shortly after Xfce 4.6 is released".
Some development will take place on xfce.rpath.org, to not break all the Xfce 4.4 things wie already have on foresight.rpath.org. There is a mailinglist too. Helping hands are welcome.
Xfce Edition alpha1
We eventually put out the long promised alpha1 of Foresight Xfce Edition.It's not perfect (that's why we call it alpha1), but works for me since a long time.
We're still missing some applications, and xfce goodies.
Openoffice is replaced by abiword and gnumeric. And there is no compiz in the default install (that's a feature).
Get it here
Feedback and Comments (and helping hands) are welcome.
Drivel and Keyboard
What have I been doing lately?
Patching Drivel, that's what!
I like using Drivel. I never lose a blog entry with this thing, which is more than can be said when Planet Gentoo suddenly crashes when I'm submitting an entry. (Side note: are there any good graphical clients that work with b2evolution? I've yet to find anything in Portage.)
Even though Drivel upstream seems mostly dead, there are still patches to fix problems or add features floating around Bugzilla, so I've been grabbing them and testing, and if they check out, adding them to the ebuild I use in my local overlay.
So far, I've added patches & fixes to my ebuild that fix a memory leak, fix compiling with gtksourceview-2 (Thanks ecatmur! one fewer app that needs 1.x), update the Blogger login URL, and add tag support for LiveJournal. Upstream left a weird version in ltmain.sh
; it was giving libtool version mismatch fits. Some judicious sed usage killed it. With extreme prejudice.
Anyway, Drivel's now much more usable. I haven't been through all the open bugs yet, but there's probably another patch or two that can be made presentable. One thing I discovered is that Drivel is using a few deprecated libraries and functions. It's got several deprecated uses of libegg (which has been replaced by equivalent functionality in gtk+), and it still relies on GnomeVFS.
Fortunately, the open bug for libegg has some info on porting to the appropriate gtk+ code, and there's also the guide to Migrating from GnomeVFS to GIO. I'm actually going to give it a shot. It's well documented, and it looks like it's nothing more than an long, intensive search-and-replace session. Right? Right? Guys? Guys?
Even if I fail utterly, well, it'll be fun to try it. Will follow up on this later.
In the meantime, you can get the updated Drivel ebuild and patches here. Just untar it in your ${PORTDIR_OVERLAY}/net-misc/
directory.
* * *
In other news, my new keyboard arrived in the mail a couple of days ago. It's much cleaner, slightly less resonant, and more interesting than the old keyboard. The Delete key got moved up near Backspace (what's the use in that?!?), so some judicious Xmodmap usage shoved the Insert key left, replacing Control_R, and I changed Ins to Del. I need my Del key right next to the arrowpad when working on documents.
The keyboard isn't as quiet as I'd hoped, but it's less squeaky than the old one, and it masses more, so it sponges up some of the resonance when hammering keys. Also, it's got 17 hotkeys, and every single one of them are correctly detected in Linux, no drivers needed (take that, included Windows XP driver CD!). More productivity, whoo!
Gnome's keyboard utility picked up the hotkeys and allowed me to assign them to various standard media key behaviors, but I chose to forgo that and use Xmodmap, since it works for both Gnome and Xfce. Xfce initially couldn't see the hotkeys, but it recognized them after I setup my /etc/X11/Xmodmap
. Interestingly, Xfce correctly executes Xmodmap at login with no further setup needed, but Gnome doesn't. I had to go into the Sessions dialog and create an "Xmodmap" startup program entry.
This is weird, because GDM is supposed to execute any Xmodmaps found, whether in the user's home or systemwide in /etc/
, and if it finds both, it's supposed to combine 'em. Poke around in /etc/X11
, and you'll see that multiple files try to execute Xmodmap. However, GDM and Gnome have utterly failed here. They're weird like that sometimes.
Drivel and Keyboard
What have I been doing lately?
Patching Drivel, that's what!
I like using Drivel. I never lose a blog entry with this thing, which is more than can be said when Planet Gentoo suddenly crashes when I'm submitting an entry. (Side note: are there any good graphical clients that work with b2evolution? I've yet to find anything in Portage.)
Even though Drivel upstream seems mostly dead, there are still patches to fix problems or add features floating around Bugzilla, so I've been grabbing them and testing, and if they check out, adding them to the ebuild I use in my local overlay.
So far, I've added patches & fixes to my ebuild that fix a memory leak, fix compiling with gtksourceview-2 (Thanks ecatmur! one fewer app that needs 1.x), update the Blogger login URL, and add tag support for LiveJournal. Upstream left a weird version in ltmain.sh
; it was giving libtool version mismatch fits. Some judicious sed usage killed it. With extreme prejudice.
Anyway, Drivel's now much more usable. I haven't been through all the open bugs yet, but there's probably another patch or two that can be made presentable. One thing I discovered is that Drivel is using a few deprecated libraries and functions. It's got several deprecated uses of libegg (which has been replaced by equivalent functionality in gtk+), and it still relies on GnomeVFS.
Fortunately, the open bug for libegg has some info on porting to the appropriate gtk+ code, and there's also the guide to Migrating from GnomeVFS to GIO. I'm actually going to give it a shot. It's well documented, and it looks like it's nothing more than an long, intensive search-and-replace session. Right? Right? Guys? Guys?
Even if I fail utterly, well, it'll be fun to try it. Will follow up on this later.
In the meantime, you can get the updated Drivel ebuild and patches here. Just untar it in your ${PORTDIR_OVERLAY}/net-misc/
directory.
* * *
In other news, my new keyboard arrived in the mail a couple of days ago. It's much cleaner, slightly less resonant, and more interesting than the old keyboard. The Delete key got moved up near Backspace (what's the use in that?!?), so some judicious Xmodmap usage shoved the Insert key left, replacing Control_R, and I changed Ins to Del. I need my Del key right next to the arrowpad when working on documents.
The keyboard isn't as quiet as I'd hoped, but it's less squeaky than the old one, and it masses more, so it sponges up some of the resonance when hammering keys. Also, it's got 17 hotkeys, and every single one of them are correctly detected in Linux, no drivers needed (take that, included Windows XP driver CD!). More productivity, whoo!
Gnome's keyboard utility picked up the hotkeys and allowed me to assign them to various standard media key behaviors, but I chose to forgo that and use Xmodmap, since it works for both Gnome and Xfce. Xfce initially couldn't see the hotkeys, but it recognized them after I setup my /etc/X11/Xmodmap
. Interestingly, Xfce correctly executes Xmodmap at login with no further setup needed, but Gnome doesn't. I had to go into the Sessions dialog and create an "Xmodmap" startup program entry.
This is weird, because GDM is supposed to execute any Xmodmaps found, whether in the user's home or systemwide in /etc/
, and if it finds both, it's supposed to combine 'em. Poke around in /etc/X11
, and you'll see that multiple files try to execute Xmodmap. However, GDM and Gnome have utterly failed here. They're weird like that sometimes. Fortunately, Xfce saves the day yet again.