Xfce

Subdomains
 

Drivel and Keyboard

  • April 21, 2008
  • Josh Saddler - Category: Xfce

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.

whaawmp 0.2.10

  • April 15, 2008
  • Mark Trompell
Jeff just released a bugfix release for whaawmp. It doesn't lockup anymore, if xvideo isn't available and it works with other imagesinks too now.
I hope to put out an alpha of Foresight Linux Xfce Edition this week eventually.
We will see. Get latest whaawmp while waiting :-)

No GSoC

  • March 19, 2008
  • Brian Tarricone

Sadly, we didn’t get accepted into Google’s Summer of Code this year. It’s a shame, but I’m glad I went through the effort to apply. If nothing else, we got some potentially-useful ideas and possibly some developer interest. Obviously we can’t fund any of these people, but it would be great if they still want to contribute.

Update: The coordinator got back to me, and said our ideas page wasn’t very fleshed out, and that we should look at other accepted applicants and the program guidelines for help on how to do this right… never mind that I actually *did* look at some older accepted projects, and their ideas lists were at times even more sparse than ours (though many were much more formally written up as well). Also she gave the usual “we can’t accept every great project” excuse, which at least gives some hope for next year. I’m not particularly sure I want to go through the work to apply again, but maybe someone else will.

whaawmp 0.2.8

  • March 11, 2008
  • Mark Trompell
Today Jeff, released whaawmp 0.2.8.
Check it out here.
There is a release for Python 2.4 too.
On to Xfce Edition. I still hope to get an iso out this week.
I'm thinking about replacing OO.o with abiword/gnumeric on default installation, if it reduces the iso size enough to fit on one CD.
But there are still things missing, so I will probably end up with a bigger image anyway.
Let's get it out for testing...

Xfce and Google’s Summer of Code

  • March 4, 2008
  • Brian Tarricone

While we haven’t been accepted into the program yet, we (Xfce) are applying to participate in the 2008 Google Summer of Code as a mentoring organisation. Please see our wiki page for more information, and add your name to the students list if you’d like to work on one of the projects. Feel free to add to the project ideas list as well.

If you’d like to act as a mentor, you still have a few more days before I submit the application. Add your name to the mentors list and email me to let me know.

Ristretto, a ‘lightweight’ image viewer

  • March 4, 2008
  • Stephan Arts

From the moment I started developing ristretto, I mentioned that it was a simple lightweight image viewer. This is a statement which is bound to be disputed by some, and here is the reason why: ‘There is no such thing as a lightweight image viewer‘. And they are right, decompressing an image requires a lot of CPU-power, and a fully decompressed image requires the presence of enough RAM memory in order to do anything usefull with it at any acceptable speed. No image viewer has been able to surpass this limitation, ristretto is no exception to that rule.

So, why do I say ristretto is lightweight? — Because there is more to an image viewer then the two constants I mentioned before, a basic image viewer should:

  • Navigate between images in an entire folder
  • Display image thumbnails
  • Run a slideshow
  • Flip / Rotate images
  • Read (and interpret) EXIF meta-data, for jpeg images taken by digital camera’s.
  • Have well-documented comprehensible code

At this moment, a rudimentary implementation of these features have found their way inside ristretto. Rudimentary, because each component is being looked after if it needs refactoring. The goal is to improve these features until ristretto is a stable and fast image viewer using as little memory as possible (making it relatively lightweight), considering it’s purpose.

I’ve just summed up the first priority of ristretto development; to write a simple and fast image viewer, which does just that: show images.

Any additional features, like importing images from a digital camera (using libgphoto2) or printing images to paper could probably be added through a plugin interface or something. Keeping the basic application simple while allowing individual users to add features they like. If, when and how this is going to be implemented is still a question though ;).

It’s getting there…

  • February 28, 2008
  • Mark Trompell
Fosdem is over. I heard some talkes, investigated some booths, but the fun thing was meeting Michael, Ken, Antonio, and some other guys there.
I guess there are better organized events and meetings out there, but it was worth going there (at least if it's only a 2,5h ride). Unfortunatly I didn't run into any Xfce developer, but a few of them have been there. Hope next time they will have a booths or a devroom (even if they would have to share with Gnome).
I did some improvments to Xfce Edition, added a lot of "unimportant" packages I just forgot (network-manager-applet, gimp, inkscape, evince, brasero).
So biggest issue now is to make gdm start Xfce as default, for new users.
Whaawmp is now working with python 2.4, I added a svn snapshot to Xfce Edition.
Unfortunatly due to gst dvdnav bugginess, it doesn't support dvd menus. C'est la vi.
So long...

SCALE, ebuilds, burning apps, and gtk

  • February 23, 2008
  • Josh Saddler - Category: Xfce

SCALE

It's been a coupla weeks now since SCALE 6x, so it's about time for an after-action report.

My wife and I arrived Friday night after suffering a two-hour delay because of heavy traffic. The 405 was the worst. LA traffic always gives me nightmares.

Saturday morning came far too early, but at least we were already registered. We got there the same time as omp, who'd brought a Windows-using friend along as a booth slave--er, volunteer.

Our booth setup included a giant Gentoo poster, omp's desktop rig, and one (occasionally both) of my laptops, displaying Xfce. It was more popular than the extremely minimal openbox desktop, so HAH! We gave out lots of bribes--snacks--and even more LiveCDs. It's too bad we didn't have flyers, business cards, shirts, or other Gentoo swag this year. Lots of folks were asking for them. At least we gave out snacks'n'luv.

Wireless internet sucked throughout the weekend. Apparently it was the same for everyone. Spotty, minuscule bandwidth, and nameservers couldn't be reached. Made it hard to demo things that needed internet access, such as emerging packages, looking up our homepage, or highlighting documentation.

One of our users, calculus, was around much of the time to help out; was nice to see him at SCALE again this year. And wormo made an incognito appearance, too. To all the users and everyone else who stopped by and asked questions, gave feedback, or just chatted -- thank you. You're terrific. I'm always excited to meet a Gentoo user in person. It's like "Really? you use Gentoo? No way!" We were possibly the least-known distro there (tied with Foresight and Damn Small Linux?), certainly the least commercial one. The other distros were all heavyweights: Ubuntu, Red Hat, Suse, Fedora, etc.

Still, we had lots of traffic. Several people wanted to know what's up with Gentoo in regards to our recent legal status issues, so I provided the news in-person, and that seemed to go over well. Curiously, none of the enterprise-level folks were much interested in our legal status. They pretty much all said the same thing: "We're not worried. All the technical development is still there; nothing's changing." It was only the individual users who had all kinds of worries and needed the explanation. The corporate sector wasn't worried at all: "As long as it's still being developed."

There are plenty of pictures of our booth around the 'net in reviews and photo sites; you just have to look for 'em.

I had a blast at SCALE. I plan to attend next year, too.

ebuilds

Lately I've been poking random ebuilds from the tree, posting updates to Bugzilla, creating new local ebuilds, asking for keywords/stabling, and so on. It's a lot of fun. A fair amount of edgy experimentation, but that's what my new laptop is for. Things like wicd that I'd like to see in the tree, or the latest version of brasero.

burning apps

Speaking of burning software . . . brasero seems to be the only actively developed gtk+-based application. Everything else hasn't had a release in years. Xfburn, gnomebaker, graveman, xcdroast....you name it. That's not good news. Brasero is a good choice for my Gnome desktop workstation, but I wouldn't even think of putting Gnome on my laptop, which is a pure Xfce machine. And yet I hate the idea of putting K3B on my laptop even more, because of the ugly, ugly Qt and kdelibs dependencies.

I went ahead and installed brasero on my laptop anyway, since it's gtk+, and it can work with DVDs. None of the other apps I mentioned support 'em. That added 33 huge Gnome deps, including (ugh) nautilus. The irony? K3B only wanted 18 total packages. Still, it's uglier. That's what counts, right?

So thinking about this sad state of affairs for gtk+-based burning apps got me thinking . . . what would it take to create a new one? Something fast, with minimal dependencies, and gtk-based.

gtk

I've skimmed the gtk tutorial and the reference manual before, but only as a passing curiosity. Today I really took a shot at figuring 'em out. This is where I ran into the cliff known as "C programming."

I'm not a programmer. I can do markup languages, I can do some bash, some javascript, little things like that. But I've never been trained in OOP. Or any kind of programming, except some BASIC in elementary school and college. My degree is in theatre, not computer science!

Still, I'm determined to make what headway I can with these gtk+ guides. I've started to see what does what, and why. And some of the necessary parts of an app. Now I need to find out how to get that button press to do something, like . . . burn a CD. Copy a disc. Save an iso. And so on. For that, I've been poking at the source code for Xfburn, libburn, and brasero. This is all still just a bit over my head, but I'm trying, at least.

I've already partly answered my own question of "Why aren't there more up-to-date gtk+ burning apps available?" because I created a sample task list.

Writing a graphical app is a huge undertaking. What burning backend will be used? cdrtools, cdrkit, libburn/libisofs, dvd+rwtools are all possibilities. Same goes for the media types used in writing audio discs. The app has to handle notification (possibly via dbus), disc drive status/detection, set/get write speed, and a dozen other critical tasks. Oh, and it needs to be translatable (those pesky .po files that take up space), and it really should make use of autotools. What other libraries will it use? Will any of its features be optional compile-time switches? Got to add those too. Where will the project be hosted? What VCS? And so on.

Lots of stuff to do. No wonder brasero's the only active gtk+ burning app. And that's too bad, too. It has a ton of dependencies that folks using Xfce or just a WM don't care to install. I'd like to see the huge gap between "brasero" and "nothing" filled by a low-dependency, fast, capable application. I just don't think I'm up to the task of creating it all by myself. ;)

SCALE, ebuilds, burning apps, and gtk

  • February 23, 2008
  • Josh Saddler

SCALE

It's been a coupla weeks now since SCALE 6x, so it's about time for an after-action report.

My wife and I arrived Friday night after suffering a two-hour delay because of heavy traffic. The 405 was the worst. LA traffic always gives me nightmares.

Saturday morning came far too early, but at least we were already registered. We got there the same time as omp, who'd brought a Windows-using friend along as a booth slave--er, volunteer.

Our booth setup included a giant Gentoo poster, omp's desktop rig, and one (occasionally both) of my laptops, displaying Xfce. It was more popular than the extremely minimal openbox desktop, so HAH! We gave out lots of bribes--snacks--and even more LiveCDs. It's too bad we didn't have flyers, business cards, shirts, or other Gentoo swag this year. Lots of folks were asking for them. At least we gave out snacks'n'luv.

Wireless internet sucked throughout the weekend. Apparently it was the same for everyone. Spotty, minuscule bandwidth, and nameservers couldn't be reached. Made it hard to demo things that needed internet access, such as emerging packages, looking up our homepage, or highlighting documentation.

One of our users, calculus, was around much of the time to help out; was nice to see him at SCALE again this year. And wormo made an incognito appearance, too. To all the users and everyone else who stopped by and asked questions, gave feedback, or just chatted -- thank you. You're terrific. I'm always excited to meet a Gentoo user in person. It's like "Really? you use Gentoo? No way!" We were possibly the least-known distro there (tied with Foresight and Damn Small Linux?), certainly the least commercial one. The other distros were all heavyweights: Ubuntu, Red Hat, Suse, Fedora, etc.

Still, we had lots of traffic. Several people wanted to know what's up with Gentoo in regards to our recent legal status issues, so I provided the news in-person, and that seemed to go over well. Curiously, none of the enterprise-level folks were much interested in our legal status. They pretty much all said the same thing: "We're not worried. All the technical development is still there; nothing's changing." It was only the individual users who had all kinds of worries and needed the explanation. The corporate sector wasn't worried at all: "As long as it's still being developed."

There are plenty of pictures of our booth around the 'net in reviews and photo sites; you just have to look for 'em.

I had a blast at SCALE. I plan to attend next year, too.

ebuilds

Lately I've been poking random ebuilds from the tree, posting updates to Bugzilla, creating new local ebuilds, asking for keywords/stabling, and so on. It's a lot of fun. A fair amount of edgy experimentation, but that's what my new laptop is for. Things like wicd that I'd like to see in the tree, or the latest version of brasero.

burning apps

Speaking of burning software . . . brasero seems to be the only actively developed gtk+-based application. Everything else hasn't had a release in years. Xfburn, gnomebaker, graveman, xcdroast....you name it. That's not good news. Brasero is a good choice for my Gnome desktop workstation, but I wouldn't even think of putting Gnome on my laptop, which is a pure Xfce machine. And yet I hate the idea of putting K3B on my laptop even more, because of the ugly, ugly Qt and kdelibs dependencies.

I went ahead and installed brasero on my laptop anyway, since it's gtk+, and it can work with DVDs. None of the other apps I mentioned support 'em. That added 33 huge Gnome deps, including (ugh) nautilus. The irony? K3B only wanted 18 total packages. Still, it's uglier. That's what counts, right?

So thinking about this sad state of affairs for gtk+-based burning apps got me thinking . . . what would it take to create a new one? Something fast, with minimal dependencies, and gtk-based.

gtk

I've skimmed the gtk tutorial and the reference manual before, but only as a passing curiosity. Today I really took a shot at figuring 'em out. This is where I ran into the cliff known as "C programming."

I'm not a programmer. I can do markup languages, I can do some bash, some javascript, little things like that. But I've never been trained in OOP. Or any kind of programming, except some BASIC in elementary school and college. My degree is in theatre, not computer science!

Still, I'm determined to make what headway I can with these gtk+ guides. I've started to see what does what, and why. And some of the necessary parts of an app. Now I need to find out how to get that button press to do something, like . . . burn a CD. Copy a disc. Save an iso. And so on. For that, I've been poking at the source code for Xfburn, libburn, and brasero. This is all still just a bit over my head, but I'm trying, at least.

I've already partly answered my own question of "Why aren't there more up-to-date gtk+ burning apps available?" because I created a sample task list.

Writing a graphical app is a huge undertaking. What burning backend will be used? cdrtools, cdrkit, libburn/libisofs, dvd+rwtools are all possibilities. Same goes for the media types used in writing audio discs. The app has to handle notification (possibly via dbus), disc drive status/detection, set/get write speed, and a dozen other critical tasks. Oh, and it needs to be translatable (those pesky .po files that take up space), and it really should make use of autotools. What other libraries will it use? Will any of its features be optional compile-time switches? Got to add those too. Where will the project be hosted? What VCS? And so on.

Lots of stuff to do. No wonder brasero's the only active gtk+ burning app. And that's too bad, too. It has a ton of dependencies that folks using Xfce or just a WM don't care to install. I'd like to see the huge gap between "brasero" and "nothing" filled by a low-dependency, fast, capable application. I just don't think I'm up to the task of creating it all by myself. ;)

Design your own desktop with Xfce 4.4 – part 2

  • February 15, 2008
  • vincent

By popular demand, I decided to push the limits of Xfce’s customisability even further. This time, I would make it look like Mac OS X 10.5 “Leopard”.



Despite efforts like Mac4Lin, this task proved more difficult than trying to make it look like Windows Vista. Though I haven’t achieved the same degree of perfection as I did when replicating Vista, I still think I came pretty close.

First of all, you will need to download Mac4Lin and extract it somewhere. There’s a lot of material to use in there, but since I have already discussed it in part 1, I won’t elaborate here on how to change your wallpaper, font (to Lucida Grande), GTK theme, icon theme and xfwm4 theme or, for those who use Compiz, Emerald theme. Removing the bottom panel, setting a background image and resizing the top panel have also been discussed. In order to replicate the looks of OS X as close as possible, though, there still is a lot to be done.

Dock

One of the most noticeable things about OS X is its dock. Unfortunately, by default Xubuntu does not include such a dock by default. To have this functionality provided for, we will install Avant Window Navigator (AWN). Luckily, excellent instructions for installing AWN on Ubuntu 7.10 are already available, with the only difference being that we use Xubuntu and thus need to look in Applications->System instead of System->Administration.
Do note that, in order to use AWN, you need to have Compiz installed or have enabled Xfce’s own display compositing by checking “Enable display compositing” under the Compositor tab in Applications->Settings->Window Manager Tweaks.



You can run AWN through Applications->Accessories->Avant Window Navigator. In order to have AWN ran every time you log in, you will also want to add AWN in Applications->Settings->Autostarted Applications.



The next step is making AWN replicate the OS X dock, which can be done through Applications->Settings->Awn Manager. If you click “Themes” on the left-hand side, you will get an overview of installed themes. By clicking “Add” you can install the AWN Dock Theme included in the Mac4Lin package you downloaded earlier, which you can then select and apply.

We then click “General” on the left-hand side to configure the looks in the Bar Appearance tab. I disabled round corners, set an angle of 26°, a height of 52 pixels and an offset of 14 pixels.

With that set, you can start adding applets to the dock by clicking “Applets” on the left-hand side. There are a whole range of applets to choose from, but for my OS X-like setup I opted for “Launcher/Taskmanager”, “Shiny Switcher” and “Stacks Trasher”.



The next step was adding program launchers to the dock (well, technically, to the “Launcher/Taskmanager”). This can be done easily by opening a Thunar window (Applications->Accessories->Thunar File Manager) and browsing to /usr/share/applications. You can then drag applications to the dock to add them. Right-clicking on a launcher allows you to change its icon.

Firefox

Also included in the Mac4Lin package is a Firefox theme, to make the Firefox experience similar to that of Safari. To install this, you open up the Add-ons window in Firefox from Tools->Add-ons, then click “Themes” on top. You can then drag the file FireFox Safari Theme - Vfox2.jar from the Firefox Addons folder into the Add-ons window. Another window pops up allowing you to install the theme. After the installation is finished, you will be asked to restart Firefox. After you have restarted, you can select “Use Theme” through the Add-ons window, after which you have to restart it once again.

To install the extensions, you just select the extension file, copy it (Edit->Copy), then paste it in Firefox’s address bar on top (Edit->Paste). Again, an installation window will pop up, and you will be asked to restart Firefox when the installation has finished. Upon the next start, the extension will be installed.

Cursor theme

An interesting option which we didn’t explore in part 1 was the ability to change cursor themes. Conveniently, the Mac4Lin package also contains a folder named GTK Cursor Theme. Similar to how you installed icon themes, you extract the theme archive to /home/yourusername/.icons.

You can then open Mouse Settings (Applications->Settings->Mouse Settings), where the cursor should be located in the Cursor tab. Selecting the theme will warn you that the theme might not be applied until the next time you login.





Final thoughts

During the process of making my desktop look like OS X, I slowly started to appreciate the approach Apple has taken with its operating system. Instead of replicating the steps of the industry leader, they dare to be different. According to some, this has even led the industry leader to follow in Apple’s footsteps!

Unfortunately, all this innovating does not make creating a lookalike any easier. The most noticeable inaccuracy is in the GTK theme: because of its use of the pixmap engine, button images need to be stretched both horizontally and vertically, so they often look very odd compared to their OS X counterparts. Other themes such as Leopardish also come close, but no cigar.

That said, the result ended up quite nice. When compared to the Vista “clone”, a world of difference can be found. Clearly, an extensive range of customisation options is available to Xfce users, which emphasizes that Xfce really does not lag behind GNOME nor KDE when it comes to customisability.







Those interested in moving application menus to their panel will be interested to know that it is possible, with support for Xfce’s panel. However, this is a very hackish solution and therefore strongly discouraged! As you’ll understand, I take absolutely no responsibility if it happens to end up in a disaster.