Archive for the ‘GNOME’ Category

So lately I’ve been devoting my time in Igalia around the GNU/Linux graphics stack focusing, more specifically, in Mesa, the most popular open-source implementation of the OpenGL specification.

When working in Mesa and piglit, its testing suite, quite often you would like to compare the results obtained when running a specific OpenGL code with one driver or another.

In the case of nVIDIA graphic cards we have the chance of comparing the default open source driver provided by Mesa, nouveau, or the proprietary driver provided by nVIDIA. For installing the nVIDIA driver you will have to run something like:

Changing from one driver to another involves several steps so I decided to create a dirty script for helping with this.

The actions done by this script are:

Instruct your X Server to use the adequate X driver.

These instructions apply to the X.org server only.

When using the default nouveau driver in Debian, the X.org server is able to configure itself automatically. However, when using the nVIDIA driver you most probably will have to instruct the proper settings to X.org.

nVIDIA provides the package nvidia-xconfig. This package provides a tool of the same name that will generate a X.org configuration file suitable to work with the nVIDIA X driver:

Shell

1

2

3

4

5

6

7

8

9

root$nvidia-xconfig

WARNING:Unable tolocate/openXconfiguration file.

Packagexorg-server was notfound inthe pkg-config search path.

Perhaps you should add the directory containing`xorg-server.pc'

tothe PKG_CONFIG_PATH environment variable

No package'xorg-server'found

NewXconfiguration filewritten to'/etc/X11/xorg.conf'

I have embedded this generated file into the provided custom script since it is suitable for my system:

Alternate nouveau and nVIDIA proprietary OpenGL driver

Shell

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

echo'Section"ServerLayout"

Identifier"Layout0"

Screen0"Screen0"

InputDevice"Keyboard0""CoreKeyboard"

InputDevice"Mouse0""CorePointer"

EndSection

Section"Files"

EndSection

Section"InputDevice"

# generated from default

Identifier"Mouse0"

Driver"mouse"

Option"Protocol""auto"

Option"Device""/dev/psaux"

Option"Emulate3Buttons""no"

Option"ZAxisMapping""4 5"

EndSection

Section"InputDevice"

# generated from default

Identifier"Keyboard0"

Driver"kbd"

EndSection

Section"Monitor"

Identifier"Monitor0"

VendorName"Unknown"

ModelName"Unknown"

HorizSync28.0-33.0

VertRefresh43.0-72.0

Option"DPMS"

EndSection

Section"Device"

Identifier"Device0"

Driver"nvidia"

VendorName"NVIDIA Corporation"

EndSection

Section"Screen"

Identifier"Screen0"

Device"Device0"

Monitor"Monitor0"

DefaultDepth24

SubSection"Display"

Depth24

EndSubSection

EndSection

'>/etc/X11/xorg.conf

I would recommend you to substitute this with another configuration file generated with nvidia-xconfig on your system.

Select the proper GLX library.

Fortunately, Debian provides the alternatives mechanism to select between one or the other.

Alternate nouveau and nVIDIA proprietary OpenGL driver

Shell

1

ALTERNATIVE=""

…

Alternate nouveau and nVIDIA proprietary OpenGL driver

Shell

1

ALTERNATIVE="/usr/lib/mesa-diverted"

…

Alternate nouveau and nVIDIA proprietary OpenGL driver

Shell

1

ALTERNATIVE="/usr/lib/nvidia"

…

Alternate nouveau and nVIDIA proprietary OpenGL driver

Shell

1

update-alternatives--set glx"${ALTERNATIVE}"

Black list the module we don’t want the Linux kernel to load on start up.

Again, in Debian, the nVIDIA driver package installs the file /etc/nvidia/nvidia-blacklists-nouveau.conf that is linked, then, from /etc/modprobe.d/nvidia-blacklists-nouveau.conf instructing that the open source nouveau kernel driver for the graphic card should be avoided.

When selecting nouveau, this script removes the soft link creating a new file which, instead of black listing nouveau’s driver, does it for the nVIDIA proprietary one:

Alternate nouveau and nVIDIA proprietary OpenGL driver

Shell

1

2

rm-f/etc/modprobe.d/nvidia-blacklists-nouveau.conf

echo"blacklist nvidia">/etc/modprobe.d/nouveau-blacklists-nvidia.conf

When selecting nVIDIA, the previous file is removed and the soft link is restored.

Re-generate the image used in the inital booting.

This will ensure that we are using the proper kernel driver from the beginning of the booting of the system:

Alternate nouveau and nVIDIA proprietary OpenGL driver

Shell

1

update-initramfs-u

With these actions you will be already able to switch your running graphic driver.

It is recommended to reboot the system although theoretically you could unload the kernel driver and restart the X.org server. The reason is that it has been reported that unloading the nVIDIA kernel driver and loading a different one is not always working correctly.

Motivation

I’m a long time user of Jabber and Empathy. I use it for every day’s communications and, in Igalia, we have several internal rooms in which we coordinate ourselves. Because of the amount of rooms in which I am as a regular basis, Empathy’s chat window is unable to display the tabs of each of them in the top bar of the conversations.

This forces me either to split in different windows or just to navigate among them every now and then to check if there is any interesting update. Quite annoying .

Some time ago, #586145 was filed requesting the possibility of having the chat room tabs not only displayed on top but also in other positions, specially in the side.

Hence, I decided to take the existing patch and perform some small changes to the work done by Neil Roberts in order to be able to have these side tabs.

With this new feature, you can change the position of the tabs just by changing a setting, as the position property is bond to it. If you want to set the tabs at ‘top’, ‘left’, ‘bottom’ or ‘right’, you should run, respectively:

Now, I’ve uploaded a new version of the patch and I’m waiting to pass the review process and land it.

This is a tiny enhancement on top of the great work that several GNOME developers have done in Empathy over the years. However, it is really making a difference to me so I’ve decided to share it quickly in case someone else would find it useful since it will take a while to come into the main distributions. Hence, I’ve ported it to the Empathy version I’m using in the Ubuntu Saucy 13.10 running on my desktop.

If you want to give it a try, just follow the instructions I’ve written at the beginning of this post.

Final notes

In addition to Empathy, you will be able to find in my PPAs:

A working (and custom) version of the faulty official icecc package with patches fixing LP#1182491.

A custom version of webkitgtk with patches fixing WK#115650 which will speed up opening new tabs in Web.

First, it was Ubuntu which innovated in the scrollbars creating a nice overlay, but making them unusable for those like me using a track pointer or a mouse without wheel.

Now, with GTK-3.0, the scrollbars have also changed their default behavior and when clicking above or below, the scrollbar moves immediately to that position.

Again, this makes it unusable unless you have a wheel in your mouse or have another fancy way of scrolling, like a touch pad.

I’m nowadays a proud owner of a Lenovo X220 and I use the track pointer included disabling the annoying touch pad thanks to the Touchpad Indicator GNOME extension. I say “annoying” because, when using the track pointer, I tend to touch every now and the the touch pad with unpredictable results.

So, with the new behavior and without the possibility of scrolling with a mouse wheel or a touch pad, viewports with a long extension are really difficult to browse with the pointer. This is the case for several of my mail folders in Evolution. As a result, I was getting nuts.

Therefore, I wanted to go back to the old behavior. This is: when clicking above the bar it would mean “PgUp” and when clicking below “PgDown”.

Fortunately, GTK-3.0 provides a way of tuning this. You have to add an option to its “settings.ini” file. If you want to apply it system wide, you will do it in “/etc/gtk-3.0/settings.ini” while if you want only to affect an user, you will do it in “~/.config/gtk-3.0/settings.ini”.

Going quickly to the “ham”, if you are running Ubuntu Precise on your machine and want to have Grilo support including its UPnP plugin in totem and rhythmbox just add Grilo Team‘s PPA:

Shell

1

~# sudo add-apt-repository ppa:grilo-team/ppa

Then, pull down the latest list of software including the PPA you just added:

Shell

1

~# sudo apt-get update

Install the needed packages and upgrate any old one:

Shell

1

2

~# sudo apt-get install totem rhythmbox grilo-plugins-0.1

~# sudo apt-get upgrade

That’s it! Enjoy your Grilo powered totem and rhythmbox!

Now, the long boring story

Last weekend I found some time to resurrect my dear NSLU2 which passed away some months ago when its attached USB hard drive started failing. I have reports from several USB hard drives dying while being attached to a NSLU2 so I may have to take a look to that at some point, but that would be in another moment.

Thanks to good Martin Michlmayr I only had to follow quickly his installation guide and I could have the Debian Squeeze firmware image he provides running smoothly in a matter of minutes.

Afterwards, I followed the counsels of Juan and Mario to tweak my Slug.

The customization to highlight was adding a MediaTomb server since one of the main features that I wanted to add to my Slug was the possibility of serving audio and video through UPnP.

Everything seemed in place but, when I checked in my desktop running Ubuntu Precise how to access my music from rhythmbox and my videos from totem I had a sad surprise. None of them have UPnP support and, what is worse, none of them have Grilo support out of the box in Precise. And I say worse because, among other plugins, Grilo already provides UPnP support and AFAIK, totem and rhythmbox have upstream Grilo plugins for quite some time already.

So, what was the problem? Why weren’t they in Precise?

Well, in the case of rhythmbox it seems just a small mistake in the debian packaging, as it is pointed in this report in Launchpad’s bug 973295. Astonishingly, it has not yet been fixed!

Hence, I downloaded the sources for the precise-proposed rhythmbox’s package and I did the proper changes and uploaded it to the Grilo Team PPA.

“Rhythmbox and Grilo 0.1″

In the case of totem what happened was that Grilo’s plugin was removed as for the version that was packaged for Precise, in the road to add a new and better plugin for Grilo 0.2. Which is what it is in totem upstream nowadays.

Therefore, I re-took the old patch for totem’s Grilo 0.1 plugin in GNOME’s bug 628648, downloaded the sources for the precise-proposed totem’s package, patched and uploaded it to the Grilo Team PPA.

Now I can enjoy my UPnP served music and videos from my favorite applications in GNOME!!!

Hopefully, for the next Ubuntu’s release we will have Grilo 0.2 already integrated and totem will come with its plugin out of the box. By now, rhythmbox’s Grilo plugin has yet not been migrated.

Grilo 0.2 is a great library for accessing the media content from several resources. Juan, the Grilo master, has been working in Igalia writing a new, clean, easily extendable and powerful API that is ready for use and which keeps enhancing everyday. However, Grilo’s adoption is coming surprisingly slow. Out of GNOME other projects have shown quite some interest as it was the case of Media Explorer, but in GNOME I only know of its support by the 0.2 version in totem. Anyone willing to bring the power of Grilo to Music, rhythmbox, banshee and the like?

GUADEC’s core days finished on Sunday. Some people departed then but still quite a lot of hackers have stayed for the three days of BoF, workshops and hacking.

If you are one of those, you may have already taken a good taste of what Galicia and Coruña can offer.

Therefore, I’m posting this entry to suggest a new option for the ones wanting to try new things from the vast offer os Spanish products.

Coruña is holding these days one of its most important annual festivals and because of that other regions of Spain have set a small town representing them and their typical food and products in the city center. This town has been placed in the “Jardines de Méndez Núñez” (Méndez Núñez’s gardens):

Let’s go quickly to the important stuff: I’ve been helping the great team that is organizing GUADEC 2012 in A Coruña. I cannot count myself among this amazing group of people since I’ve scarcely devoted any time to the tasks they needed from me but this is the result out of it, in the shape of a t-shirt

This last model is the one that holds the final sorting of the back logos that was printed for all the t-shirts. Actually, Xulia Barros, from FreeWear did a small modification to the final design leaving some space among the lines for the “7” in the back.

Again, you can find all the material in this public git repository hosted at Igalia.

2006

Even before 2010 I found myself tangled with The Gimp, Sodipodi and Inkscape, later. In 2006 I did a small design for that year’s GUADEC-ES which consisted on the header:

You can find all the material in this public git repository hosted at Igalia.

And finally getting to the end … or maybe better the beginning.

2005

In 2005 Coruña was hosting for the first of several times the GUADEC-ES. For that event I did most of the artwork that was used. Web page, printed banners, badges, talks’ book, but one of the things that I was most proud of was the animated banners that were featuring for some time in Barrapunto, the Spanish version of Slashdot:

And I learn to do it the hard way. You cannot imagine how difficult was by the time to do a GIF animation with The GIMP!

Also, that year was a great one for the t-shirts. Most of the attendants liked them and we had them in several colors: red, green, blue, orange and, as always (or almost ), black. I think that was once in a lifetime for a hacker’s conference

Even, with Chema‘s help, the master of organizing events, I was experimenting with some sketches done directly in the sand, from which I got inspired to do the rest of the material:

Of course, you can find all the material in this public git repository hosted at Igalia.

BTW, if you have been able to read this boring post until here, you are my hero

Finally, this year the event comes home but, funnily enough, I moved to Helsinki some months ago so I’m again a visitor. Now in A Coruña

Honestly, I can’t wait to attend some of the talks and meet again the GNOME folks. Also, my mates Igalians are featuring quite some talks in the program meanwhile Igalia itself has been doing quite an effort to host some of the hackfests and meetings that are happening during these days.

And not only that!. As I was saying, I’m a visitor again so I only have pending to thank Igalia again for sponsoring my trip!

I’ve added a helper to launch a certain application and send the fullscreen key event some time afterwards.
This is specially useful for launching an application through the DSME watchdog daemon in Maemo4.x. Using this helper as a wrapper, the application will receive the fullscreen event some time after being launched while the watchdog keeps track of the helper. In this case, if either the helper or the application dies, both die and, hence, the DSME will relaunch them both.

You can, also, check the complete ChangeLog for Applications Fullscreener.

The most important changes for Automatic Skype Launcher are:

I’ve added a Control Panel plugin for setting several behaviors of the application: starting an init service, using a watchdog for keeping it alive, trying to fullscreen Skype after launching it as a service and the time at which the service will be restarted, if so.

I’ve added a Home Desktop applet for making it easier to launch manually Skype, not having to get into the applications menu.

The Automatic Skype Launcher service was not stopping when the N8x0 was turned off while charging. Now this is corrected.

In the previous version, I added a cron.daily script to restart Skype (and the service). Actually, the N8x0 doesn’t have a cron daemon, by default. This is now corrected through the usage of an alarm triggered by the alarmd daemon.