Xfce

Subdomains
 

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.

Design your own desktop with Xfce 4.4

  • February 10, 2008
  • vincent

Xfce is just as customisable as KDE or GNOME, so I set myself a goal: make Xubuntu look like Windows Vista. Why? Because I can. :)



Though you won’t be told how to achieve the exact same end result (Microsoft™©® most likely would not appreciate that), this guide provides comprehensive instructions helping you make Xubuntu look the way you want it to. In any case, I would certainly not recommend such a setup for someone new to Xubuntu. Xubuntu is different than Windows; making it look similar is only confusing.

Panels

Since Windows comes with a total of a mere one panel, I had to remove one of Xubuntu’s two default panels. This task was easily done using Xfce’s Panel Manager, which can be opened by right clicking empty space on a panel and selecting Customise Panel, or by opening Applications->Settings->Panel Manager.



Removing the first panel was simply a matter or clicking the - while the target panel was selected in the drop-down menu. Most options in the panel manager are quite straightforward as long as your realize that they apply to the panel currently selected in the drop-down menu. For my setup, I just wanted to change the size of the panel to 30 pixels and set a background image.

Wait… Did I say “background image”? There is no option in the panel manager to set a background image for your panels! Luckily, that other Xubuntu Blog comes to the rescue.
Basically, what we will do is to override the settings of whatever GTK theme you are using to apply a background image to panels. The disadvantage of this method is that this will be applied to all panels.
The first thing you need is, obviously, a background image to use. It can be as much 1 pixel wide, if you like, because it will be tiled throughout the full width of the panel. This image needs to be saved in your home directory (e.g. /home/yourusername/). You can prepend the filename with a dot . to make it a hidden file, e.g. /home/vincent/.panelbackground.png.

Now, to apply this background image, open up a text editor like Mousepad (Applications->Accessories->Mousepad). You then have to open the file .gtkrc-2.0, but since that is a hidden file (starting with a .), it is not listed among the other files. Luckily, in the “Open” dialog, you can just enter .gtkrc-2.0 in the Location field (press Ctrl+L to make it visible if it is not) to open it. More likely than not, it is an empty file.

Now, paste the following into that file, obviously replacing .panelbackground.png with the name of your background image.

style "panel"
{

bg_pixmap[NORMAL] = “.panelbackground.png”
fg[NORMAL] = “white”
}

widget_class "*Panel*" style "panel"
widget "*Panel*" style "panel"
class "*Panel*" style "panel"

Note that the fg[NORMAL] = “white” sets the text colour to white, but you can edit that to whatever (supported) colour you like, or remove the line altogether to use your theme’s default.

And that’s it really! The next time you login, this image will be used as background image for your panel.

Wallpaper

Of course I also wanted to use a wallpaper similar to Vista’s. Setting a background image for my desktop is a breeze, luckily. All that was needed was a click on the “browse” icon next to the File input field to select the image of my preference. If you want to, you can even make a list of files, of which one will be chosen each time you log in :)



GTK theme

Next up is changing the GTK theme, which is often one of the most notable changes because it encompasses almost everything on your screen. Download a theme you like (I used Murrina Aero) and open it (with Archive Manager). Select Archive->Extract (or the equivalent option if you use another archive manager than Xubuntu 7.10’s default) and extract it to /home/yourusername/.themes (again, enter .themes in the location field if it’s invisible).

Then open Applications->Settings->User Interface Settings, where your preferred theme should now be listed in the theme list. It will be applied when you select it.



Icon theme

Using icon themes, it is possible to change the commonly used icons. For my Vista-like setup I selected the nuoveXT icon theme.

The process of installing an icon theme is similar to the process of installing a GTK theme. After you have downloaded the theme, you extract it, however, this time you extract them to /home/yourusername/.icons.

Just as when changing your GTK theme, you need Applications->Settings->User Interface Preferences to change the icon theme. This time, however, you switch to the Icon Theme tab (surprise), where you can select the preferred icon theme in the list.

Fonts

Ultimately, I also wanted to use Microsoft’s Segoe UI font. Unfortunately, it can only be obtained together with a copy of Windows Vista.

However, there are plenty of other beautiful fonts available (like Red Hat’s Liberation fonts) that can be installed easily. You just need the TTF files, which you need to place in the .fonts directory. It can then be selected, just as your GTK theme and icon theme, through Applications->Settings->User Interface Preferences. Click the button below Font, where your font should be listed under Family.

Xfwm4 themes

The theming craze isn’t over yet, because you can also theme your window borders. By default, Xubuntu’s Window Manager is xfwm4, which can be themed with xfwm4 themes.

First you need to find an xfwm4 theme you like. Once you downloaded that theme, extract it to the .themes directory in your home folder.

The theme can then be easily applied using Applications->Settings->Window Manager Settings. The theme should show up in the list on the left-hand side, selecting it will apply it.



Emerald themes

If you installed Compiz using Emerald as window manager, then changing window border themes is a little bit different.

First, you need to get yourself an Emerald theme. Emerald themes are files that end in .emerald. I picked the theme included in the Aero-clone pack, aero_blue.emerald. To install the theme, you need to open Applications->Settings->Emerald Theme Manager. Click Import… and open the .emerald file. The theme will be selected when you click it in the list.



Conclusion

Xubuntu (and open source desktops in general) offers an enormous range of options allowing you to tweak the look to your own preferences. You can make it look as ugly or as pretty as you want. Heck, if you want to, you can make it look near pixel-perfect like another operating system!





The end result might not be perfect, but you can get very close :D



Thinkpad Configuration, part 2

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

Right, I'm almost done setting up the Thinkpad.

The keyboard is still taking some getting used to -- I hate having the Fn at the far left, where the Ctrl key should be, and I hate not having the Del/Home/End keys vertically aligned with the right edge of the keyboard. I also keep forgetting I have a working middle mouse button for Firefox. Too used to having to Ctrl-click tabs on the Toshiba. And . . . I love the scroll function on the synaptics touchpad. Love it. The pad itself I don't use much; I'm too used to trackpointers. Plus it's too easy to turn a drag motion into a sudden click. I do like the IBM trackpoint more than my Toshiba; the IBM one is more accurate and has a nicer surface.

Fingerprint use: for the time being, I've uninstalled fprint, and installed thinkfinger instead. Why the switch? Because thinkfinger works out-of-the-box with SLiM, and pam_fprint doesn't work with it at all. If it worked with SLiM, I'd switch back. Also, thinkfinger's enrollment seems to work better. I'm getting far fewer rejected scans. I'd like to file a feature request bug with fprint upstream to get SLiM supported, but its bugtracker mails aren't getting through to my devmail. dsd, you reading this? :)

I still haven't bothered playing with hdaps yet or finding out why it thinks my disk is unsupported. While on the subject of disks, it occurs to me that I really should have created a /usr/portage partition and formatted it as ReiserFS. ext3 is just too slow for Portage ops.

I at least solved my networking issues by adding a couple of required modules and undoing parallel startup. I also fixed a typo in conf.d/net. I don't plan on using NetworkManager any time soon, as it requires lots of Gnome dependencies. For now, I added a second network block to wpa_supplicant.conf:

network={
        key_mgmt=NONE
        priority=-9999999
}

I haven't tested it yet, but I think this should work for unsecured public access points. Actually, I think this was probably in wpa_supplicant.conf before I deleted everything and added my own config.

My desktop and development environment are just about complete; got my keys imported and my firewall setup and everything. Still haven't setup my system for Bluetooth or audio production yet. Or games. ;)

As promised, I've made my working kernel config available. For all you Intel X3100 users, this may be of use in setting up uvesafb. Also, if you've got an IPW3945 ABG network card, this may be useful if you're using the in-kernel iwl driver. I've enabled the appropriate statistics options to use powerTOP, which is a very nice way to monitor power usage. I get about 2.8 hours doing basic wireless internet, docs work, etc. with my screen almost at full brightness. Not bad. I think I waited too long to get an Ultrabay battery; SCALE 6x is less than a week away!

Speaking of SCALE, I'm going. So I should probably get tickets & registration for me and my wife, yeah? Oh, and a hotel reservation. My new laptop has been such a distraction.

I've discovered a really unusual bug/behavior. I removed alsasound from the boot runlevel, in case I'm running on battery. Now, unless you blacklist them, your sound modules will still get loaded regardless, taking that much more power (even with aggressive soundcard power management enabled.) So what I had been doing was starting and stopping the ALSA initscript once my desktop was loaded. Here's the bug:

Starting and stopping ALSA this way actually kills all GTK theming in Xfce. The decorations revert to GTK defaults, the window colors go to their GTK defaults, the panel becomes ugly, you name it. All I have to do to re-apply the default (pretty) Xfce GTK theme is open one of Xfce's configuration utilities. Any of them. Isn't that bizarre? I have no idea why the hell that happens. Every time I stop ALSA. It's a minor nuisance, I guess.

On thinkpad_acpi and hotkeys:

It's a known bug that the brightness hotkeys don't work, but echoing values directly to /proc does. There won't be a fix for this any time soon, either. I've been in contact with upstream, submitting reports to their database, etc. Still have to go through and test the rest of my hardware (Bluetooth, etc.) and submit another report, but the outlook is not favorable for hotkeys. I still need to find a good program that will recognize the Fn-Home/Fn-End key command for brightness adjustments. xbacklight works, but I need keybinds to call it. Xfce has a built in keybind program, but it can't see Fn key combos. I'll have to find a sane xbindkeys setup (or similar app); there's probably something on ThinkWiki or the Gentoo Forums.

Signing off for now . . . maybe I'll see ya'll at SCALE? Come on by the Gentoo booth! Devs, users, groupies, etc. are all welcome. :)

Thinkpad Configuration, part 2

  • February 3, 2008
  • Josh Saddler

Right, I'm almost done setting up the Thinkpad.

The keyboard is still taking some getting used to -- I hate having the Fn at the far left, where the Ctrl key should be, and I hate not having the Del/Home/End keys vertically aligned with the right edge of the keyboard. I also keep forgetting I have a working middle mouse button for Firefox. Too used to having to Ctrl-click tabs on the Toshiba. And . . . I love the scroll function on the synaptics touchpad. Love it. The pad itself I don't use much; I'm too used to trackpointers. Plus it's too easy to turn a drag motion into a sudden click. I do like the IBM trackpoint more than my Toshiba; the IBM one is more accurate and has a nicer surface.

Fingerprint use: for the time being, I've uninstalled fprint, and installed thinkfinger instead. Why the switch? Because thinkfinger works out-of-the-box with SLiM, and pam_fprint doesn't work with it at all. If it worked with SLiM, I'd switch back. Also, thinkfinger's enrollment seems to work better. I'm getting far fewer rejected scans. I'd like to file a feature request bug with fprint upstream to get SLiM supported, but its bugtracker mails aren't getting through to my devmail. dsd, you reading this? :)

I still haven't bothered playing with hdaps yet or finding out why it thinks my disk is unsupported. While on the subject of disks, it occurs to me that I really should have created a /usr/portage partition and formatted it as ReiserFS. ext3 is just too slow for Portage ops.

I at least solved my networking issues by adding a couple of required modules and undoing parallel startup. I also fixed a typo in conf.d/net. I don't plan on using NetworkManager any time soon, as it requires lots of Gnome dependencies. For now, I added a second network block to wpa_supplicant.conf:

network={
        key_mgmt=NONE
        priority=-9999999
}

I haven't tested it yet, but I think this should work for unsecured public access points. Actually, I think this was probably in wpa_supplicant.conf before I deleted everything and added my own config.

My desktop and development environment are just about complete; got my keys imported and my firewall setup and everything. Still haven't setup my system for Bluetooth or audio production yet. Or games. ;)

As promised, I've made my working kernel config available. For all you Intel X3100 users, this may be of use in setting up uvesafb. Also, if you've got an IPW3945 ABG network card, this may be useful if you're using the in-kernel iwl driver. I've enabled the appropriate statistics options to use powerTOP, which is a very nice way to monitor power usage. I get about 2.8 hours doing basic wireless internet, docs work, etc. with my screen almost at full brightness. Not bad. I think I waited too long to get an Ultrabay battery; SCALE 6x is less than a week away!

Speaking of SCALE, I'm going. So I should probably get tickets & registration for me and my wife, yeah? Oh, and a hotel reservation. My new laptop has been such a distraction.

I've discovered a really unusual bug/behavior. I removed alsasound from the boot runlevel, in case I'm running on battery. Now, unless you blacklist them, your sound modules will still get loaded regardless, taking that much more power (even with aggressive soundcard power management enabled.) So what I had been doing was starting and stopping the ALSA initscript once my desktop was loaded. Here's the bug:

Starting and stopping ALSA this way actually kills all GTK theming in Xfce. The decorations revert to GTK defaults, the window colors go to their GTK defaults, the panel becomes ugly, you name it. All I have to do to re-apply the default (pretty) Xfce GTK theme is open one of Xfce's configuration utilities. Any of them. Isn't that bizarre? I have no idea why the hell that happens. Every time I stop ALSA. It's a minor nuisance, I guess.

On thinkpad_acpi and hotkeys:

It's a known bug that the brightness hotkeys don't work, but echoing values directly to /proc does. There won't be a fix for this any time soon, either. I've been in contact with upstream, submitting reports to their database, etc. Still have to go through and test the rest of my hardware (Bluetooth, etc.) and submit another report, but the outlook is not favorable for hotkeys. I still need to find a good program that will recognize the Fn-Home/Fn-End key command for brightness adjustments. xbacklight works, but I need keybinds to call it. Xfce has a built in keybind program, but it can't see Fn key combos. I'll have to find a sane xbindkeys setup (or similar app); there's probably something on ThinkWiki or the Gentoo Forums.

Signing off for now . . . maybe I'll see ya'll at SCALE? Come on by the Gentoo booth! Devs, users, groupies, etc. are all welcome. :)

Backups on Xubuntu with SBackup

  • January 23, 2008
  • vincent

The earth is orbited by many satellites, and every year, many more are sent up into space. Considering the amount of satellites, there is an enormous risk that one of those artificials moons suddenly decides to take a stroll and crashes into your home. I think you’ll agree with me that this would be disastrous - all your precious data would be lost! Your holiday pictures, important documents for school/work and your music collection - all gone!

Of course, you have to protect yourself against catastrophic situations like the one described above (and against hard drive failures). If you’re anything like me, you have no backup solution set up, and though you want to set it up, you keep postponing really taking that step. Well, now is the time. In order to write this guide, I set it up for myself, so now it’s your turn while reading this guide. And let me tell you, once you free up those minutes to set it up, you’ll be glad you did. Even if you’re never going to need it, it feels a lot better knowing that you’re prepared for eventual bad luck.

You need a place to store your backups though. If you create a backup on the same drive as the original files, a hard drive failure will affect that backup just as much as the original files. For out method, the destination can either be another hard drive or a remote directory (through SSH or FTP). If you don’t know what any of these mean, then you probably do not have access to it. Unfortunately, this means that you will not be able to create a backup. If you do possess one of these, read on :) .

The destination I’ll be using is an internal hard drive that used to hold a secondary and lesser-known operating system. Its capacity is a mere 20 GB, so I’ll only be backing up my most important files. Of course, if you happen to have an external 160GB hard drive laying around, be sure to use it to the fullest.

Introducing… SBackup!

A quick search using Applications->System->Add/Remove... (with “All available applications” enabled in the top right-hand corner) for backup turns up a few backup solutions. The application we will be using, which also happens to be the most popular one, is Simple Backup, or SBackup. SBackup is a complete solution, able to automatically create backups at set intervals, keeping the backup size as low as possible. Listed are Simple Backup Config and Simple Backup Restore, which allow you to backup and restore your backup respectively.



Selecting one will also select the other because, obviously, we need to create backups in order to restore them.



With both selected, click Apply Changes and finish the installation as usual.

Once the installation has finished, you can find SBackup’s configuration utility under Applications->System->Simple Backup Config.



Setting it all up

By default, SBackup is set up to only perform backups when you tell it to. However, for maximum security, we want it to automatically create a new backup every so often, and now and then delete old backups in order to save space. To make sure the backups are created exactly the way you want it, select Use custom backup settings.

The first thing to do is selecting which files you want to be included in the backup. This can be done under the Include tab on top.



SBackup comes with a few useful defaults, however, considering the size of my backup drive, I decided to only backup the /home/ directory, which contains the documents and settings of every user on the system. Do include the defaults if you have enough room, though.

Next is deciding which files you do not want to be included in the backup, which can be done under the Exclude tab. You can use the preferences in this tab to exclude any files which you do not regard of enough value to justify the amount of space they’d consume in the backup.



The Exclude tab, in turn, contains four other tabs on the left-hand side.

The first one is the Paths tab, which allows you to exclude complete directories. I left it at the defaults since I had no specific directories I wanted to exclude, and I also felt no need to include the directories listed as excluded by default.

Moving on to the File types tab, though, there were certain files I could not afford to backup. A lot of multimedia files were already excluded, which was fine to me - I cannot afford to back up my (measly little) music collection. However, I often help testing new versions of Xubuntu. This involves downloading complete CD “images” (files that can be put on a CD) which can be up to 700 MB in size. The names of these images always end in .iso, and since there is no need for me to keep them that long, I clicked Add and opted to exclude files with the iso extension.





The Regex tab is not that interesting for this guide, since those who know what it does, are able to figure it out by themselves.

The Max size tab is very useful though, because it allows you to set a maximum size for files to be backed up, which comes in very handy in preventing your backup from growing too big.

We then move on to the Destination tab on top. This tab allows you to, as its name implies, set the destination for your backup. You can set up a remote directory at the bottom - I’ll be setting a custom local backup directory.



I located my external hard drive in the /media/ folder, by the name hda1. It is also listed in my left pane in Thunar (the file browser) as 20G Volume. In there, I created a new folder (/media/hda1/gay/, with gay being the name I gave my computer during installation, but feel free to use whatever you like) to hold my backups. Then I selected Other… in the drop-down menu and selected that folder.

Next up was configuring when the backup is to be ran in the Time tab.



Since I do not have that much space I opted for weekly backups, but of course, the best way to go would be daily. Since I do not leave my computer on 24/7 I cannot set it to create a backup in the middle of the night, so I opted for “simply”, which supposedly means “as soon as the computer is running, with the previous backup being made at least one week ago”.

The last tab, Purging, allows you to configure how long you want to keep old backups.



Mostly, you’ll want to select “Logarithmic”, being the most efficient and recommended method, but if you want to select an exact number of days to keep old backups, that’s possible to.

After finishing the configuration, click “Save” to, well, save your configuration.

Let’s back things up

Of course, I immediately wanted to make my first backup. For that, SBackup comes with the extremely handy “Backup Now!” button :)

Clicking that popped up a window, saying: A backup run is initiated in the background. The process ID is: 7986.



Well, that’s it really - now you can close Simple Backup Config. The backup is being created, and the next one will be created after the period you selected ends. Opening the folder you selected as the destination (/media/hda1/gay/ in my case) will show you that a new directory has been created which will contain the backup.



If you take a look at a later time (once the backup has been completed), you will see that that directory has been filled with files containing information about the backup, and files.tgz which contains the backed-up files.



Restoring a backup

Restoring the backup is very easy, too. Open up Applications->System->Simple Backup Restore, from where you can select the location of your backups.



A drop-down menu “Available backups” provides you a list of all available backups. Selecting one of them will present you with a list of files included in that backup, clicking “Restore” will restore those files in their original location, “Restore As…” allows you to select a different location.

Conclusion

It was about time you created yourself a backup, and tell me: doesn’t it feel wonderful? Simple Backup is an excellent tool that, despite not being as good-looking as Apple’s Time Machine, definitely provides a complete solution for backing up your documents.

And by the way, with this being my first post of 2008, let me wish you all the best for the coming year. 2007 was an magnificent year for this blog, having survived into 2008 since its conception in 2007. There’s no complaining about the number of visitors, too: at the time of writing, with just 24 posts (this being the 25th), I’ve received a total of 116 798 views, with about 500 to 600 views a day recently. Furthermore, I believe it’s also been useful to a few people, which was the reason for starting this blog in the first place.
On the personal level, it also was a fantastic year. My mother’s ex, who was a massive burden to me, finally left (he lived here since I was about thirteen years old), enabling me to develop tremendously as a person, which I expect to continue in 2008. My writing style has also improved - another trend which I hope will continue in 2008.
All in all, let’s make 2008 another awesome year, and of course, if you got any further suggestions, be sure to make it known :) .

Software installation

  • December 31, 2007
  • vincent

What used to be one of the most troublesome aspects is nowadays one of the greatest advantages of almost every Linux distribution: software installation and updating. Xubuntu and Ubuntu are no different.

The problem used to be that, in order to install one application, you needed to install a lot of other software (dependencies) in order to get it to work, which meant a lot of work just to install that single application. On top of that, the installation of that application and its dependencies wasn’t a matter of double-clicking an icon - no, you had to open a terminal window, move to the location of the installation files, type ./configure, find out what software you were missing, then… Let’s just say it was a lot of work ;)

The developers of Debian, the Linux distribution on which Ubuntu is based (on which Xubuntu is based ;) ), thought of a solution: they’d bundle the application in so-called packages in which they could store a lot of information about that software, such as which other packages it needed. They then created an application called apt (Advanced Packaging Tool) which could automatically download and install the package and all the packages marked as its dependencies! This is often referred to as package management.

Along with solving the problem of dependencies, this solution had a few other advantages. For one, since apt-get would by default download the packages from one location in control of the Debian developers, you could be quite sure that they were free of viruses. The biggest advantage, however, was that apt-get could check for updates to all packages at once, meaning it takes just one action to get the latest version available of every single application you had installed!

There were downsides too, though. For example, the Debian developers are unable to create a package for every piece of software that is available for Linux (According to Wikipedia, though, Debian has over 26 000 packages, so most of the popular applications are there ;) ). Furthermore, Debian’s package management system wasn’t the only one: Red Hat’s Red Hat Package Manager is an example of another popular packaging method. Ubuntu uses Debian’s method; however, since Ubuntu’s goals differ from Debian’s, they provide the packages from a different location, which means that you cannot just install the packages made for Debian (though often it is possible). However, as Ubuntu can often copy Debian’s packages with very little modification, they offer about 23 000 packages.

As a result of these different methods in different distributions, an application cannot just offer “a Linux version” - at most they will allow you to download “the source” which you can install in the old and painful way. You can see this on the download page of Wormux where they link to a special page with instructions on installing it on many different Linux distributions.

Though there are many efforts like Autopackage, PackageKit, klik, glick, Smart Package Manager, Zero install and OBLISK, the native tools are still preferable.

As for Debian’s method, a graphical tool called Synaptic was also developed, and if that wasn’t enough, the Ubuntu developers also created the tool Add/Remove… (or gnome-app-install) which made the installation of packages even easier. As per Will’s request I’ll guide you through the basic process of package installation on Xubuntu and Ubuntu, and of course, if you have any questions you can leave a comment.

Software sources

The central place for configuring your package management is in Applications->System->Software Sources. As the name says, this application lets you configure the software sources (repositories): the place where Xubuntu downloads all the packages from. By default only a small portion of all available software is enabled. For full access to all 23 000 packages from the Ubuntu repositories you will want to enable the community maintained open source software, proprietary drivers for devices (not open source) and software restricted by copyright and legal issues (this includes e.g. support for playing MPEG videos which Xubuntu is not allowed to ship by default worldwide).



Then there’s the Third Party Software tab, which allows you to enable non-official repositories such as the Personal Package Archives by members of the Ubuntu community. Such third-party repositories often give you a line like:

deb http://ppa.launchpad.net/jani/ubuntu gutsy main

By clicking Add you can enter such a line and then you have access to all the packages provided in that third-party repository. Note that it is recommended that you stick to the official Ubuntu repositories since these repositories might install newer versions of certain packages which can break other packages, or they might not support newer versions of Ubuntu and Xubuntu which might cause problems when you want to upgrade to a newer version.



These third-party repositories often provide you with their GPG-key, which you can add in the Authentication tab in order to confirm that you trust them. Whenever you update the list of packages from that repository, Xubuntu will check whether this key is still available so as to know it is still the same person that provides the packages.



In the Updates tab you can configure which updates you want and how often you want updates to be checked for. Obviously it is highly recommended that you enable the security updates, and you’ll most likely also want the recommended updates. The proposed updates are updates that haven’t yet been thoroughly checked. Unsupported updates can provide you with newer versions of applications that also provide new features, which were only packaged for newer versions of Xubuntu.



The last tab, Statistics, might not provide direct benefit to you, but it allows you to automatically submit anonymous information about which packages you have installed and how often you use your applications. Statistics are then made available at http://popcon.ubuntu.com/ where they can help the developers and packagers.



Add/Remove…

Ubuntu’s Add/Remove… tool is a great way for you to discover new software to install (Applications->System->Add/Remove...). Applications are sorted in categories and come with an extensive description about what it does. There are also plans to expand this tool’s capabilities to show screenshots, reviews and more, but for now, you’ll have to do with this ;)

In the top corner on the right-hand side, you’ll see a drop-down menu. This menu is a quick way to configure the software sources - again, to have access to the widest available range of software, you’ll want to select “All available applications” here. Clicking Preferences in the bottom left-hand side will take you to the Software Sources configuration window.

You can easily find new applications by searching using the input field at the top. For example, a search for “Firewall” will turn up a list of Firewalls. Installation and uninstallation of applications is easy too: just check or uncheck the checkbox in front of an application’s name, and when you’ve selected all desired changes you click Apply Changes in the bottom right-hand side.



Synaptic

A more advanced tool is Synaptic (Applications->System->Synaptic Package Manager). By clicking the Search button on top you can search for applications: if you already know a package’s name I recommend you to just search on Name as it is notably faster than Description and Name.



Once you have found the package you want to install or uninstall, you can click the checkbox in front of its name. You can then “mark” a package for a certain action, which won’t be performed until you click Apply on top.





If a package has dependencies you do not yet have installed, Synaptic will ask you whether you also want to mark those packages for installation.



Once you click Apply on top, Synaptic will give you an overview of all the package it will install and uninstall. Once you click Apply again it will take care of the installation and notify you when it’s done.



Gdebi

Unfortunately, sometimes a package is just not in the repository. However, an application might still provide you with a package that you might want to install by hand. Or perhaps you want to install an application from the popular site GetDeb.net which, for example, packages a lot of games not available in the Ubuntu repositories. Or perhaps you want to install a package you downloaded from packages.ubuntu.com, which provides all the packages from the Ubuntu repositories, after you transferred them to a computer without internet connection.

For this, Xubuntu comes with the Gdebi Package Installer. Gdebi will be opened when you double-click on a .deb file (the package). It can also download and install dependencies - all it takes is a click on the Install button on top.



Conclusion

Whenever a newer version of a package is available in one of your software sources, you will be notified that an update is available and asked whether you want to install it, or perhaps it will automatically install it in the background, depending on what you set.

As you can see, software installation in Xubuntu and Ubuntu is extremely user-friendly. After having used it for a while, you start to wonder how other people get by checking the websites of every application they want to install or update ;)

Git-svn Xfce Repositories

  • December 23, 2007
  • Brian Tarricone

I recently started messing around with git, partly just to see what all the fuss is about, and partly because I want an easy way to do ‘offline commits’ when I don’t have an internet connection (I spend a decent amount of time on planes and in airports, and sometimes in wifi-less cafes with my laptop). I’ve looked at SVK, but I’m not a huge fan, and it seems ridiculously complicated for what it does (or rather, what I need it for). It also means learning another tool that’s only useful for a very small thing.

So: git. It’s been hyped like crazy since its inception, and frankly I’ve avoided it mainly because of the hype. But I’m surprised at how much I like git. Being able to have lots of little throwaway branches to do various related tasks on is really useful, and merging them back to the main branch is trivially easy. The offline operation is obviously a great bonus.

To make things even better, I was absolutely thrilled when I found out that git comes with a sub-app called ‘git-svn’. In a basic sense, it’s a ’svn2git’ script that lets you import all of your commit history from a svn repository into a git repository. But it’s so much more. It’s bidirectional, so after you create the git-svn repository (which is really just a git repository with a bunch of extra info to keep things in sync with svn), you can continually update your local repo as changes are made to the master svn repository, and you can push changes in your local repository up to the master svn server. And when pushing changes, it actually does one svn commit for each local git commit, so your local git history gets replicated on the server.

Anyhow, git-svn is a little hard to figure out at first, so I figured I’d ‘convert’ all the Xfce core core modules into git-svn repos and post them so other people don’t have to figure it out. Also, doing the conversion over a network via http or svn+ssh takes quite a long time (and wastes quite a lot of bandwidth), and I can do them locally on the svn server. You can grab them here. Please read the README in its entirety first, as these repos will not work properly with the Xfce svn repo out of the box, and there are a few extra git commands you’ll need to know to interact with the svn server.

Good luck and enjoy. If you have issues with them, please don’t comment here, and don’t email me. Email the Xfce dev list instead.