Linux
Gnome Power Manager Hides Do Nothing
Found this rather handy post that tells you what to do in newer versions of Gnome Power Manager, which for some reason hide the Do Nothing options as default.
Personally I find it irritating as the battery readout in all the distros of Linux I’ve used on my Eee report the battery at 0% over half an hour before the battery is actually dead. No amount of conditioning or software modification seems to fix it, so I’m living with it.
However, with the newer versions of Gnome Power Manager, Do Nothing is hidden! So my machine would go to sleep, despite the fact I know there’s at least 30 more minutes of battery life going to waste. So annoying!
To fix it (albeit temporarily), you need to edit the gconf values for the settings you’re interested in to “nothing”.
The easiest way to do this is to use an application like gconf-editor and edit the values through that:
- Run gconf-editor.
- If you don’t have it installed, go to your favourite package manager and install it through that.
- Using the column on the left side, navigate to apps > gnome-power-manager.
- In my case, I wanted to change the critical battery behaviour to Do Nothing. So I navigated in to actions and set the value of critical_battery to nothing.
- If you want to change, say, the behaviour of a power button press, navigate to buttons instead of actions.
- Repeat this step for each value you want to change.
- Close gconf-editor.
That’s it! One thing you need to keep in mind is that if you later change the setting away from Do Nothing to something else, the Do Nothing option will disappear.
Hope this works for you as it has me.
(I’m typing this post with 0% battery left! What I crazy daredevil I am.)
Update 19:58: Forgot to mention that Do Nothing will disappear if deselected. Fixed.
Take Control of Your Settings — Configuring Synaptics Touchpads and Making GNOME Respect Them
Update 2010-05-28: If you’re using Fedora 13, then the configuration for synaptics touchpads is done through what is practically the old xorg.conf method. (This is as udev now handles devices instead of HAL.) Check out the Fedora Wiki for more information.
The Problem
Today I’ve been trying to configure the touchpad on my Eee PC 901 to my liking. It’s a Synaptics touchpad, and supports tracking multiple fingers, and I wanted to take more advantage of that.
GNOME does have support for configuring multiple finger gestures out of the box, with gnome-mouse-properties (or System » Preferences » Mouse) and then selecting the Touchpad tab. This is all good and works fine — if you’re satisfied with what GNOME gives you.
Unfortunately I wasn’t. When you enable clicking on the touchpad, GNOME sets one finger taps to left-click, two to right, and three to middle. I tend to use middle-click more often than right-click, thanks to browsing the web and liking making new tabs, plus I already have a dedicated right-click button.
So I set off to change it. After reading material courteousy of Arch Linux’s wiki, I found (and remembered from attempting the same thing ages ago) that configuration is done through the HAL using fdi policies, which are just specifically formatted XML files. (The old xorg.conf way is deprecated and isn’t as flexible, not that it matters for configuring the trackpad.)
It sounds scary and involves more typing, but in the end it’s just as simple a process as it used to be, even if it involves jumping through an extra hoop or two.
Configuration
First you have to create a file with the fdi extension in /etc/hal/fdi/policy/. I’ve named my file 99-synaptics.fdi, following example from /usr/share/hal/fdi/policy/10osvendor/, but you can name yours whatever you like.
sudo gedit /etc/hal/fdi/policy/99-synaptics.fdi
Note: You need root permissions to be able to create and edit this file. If you run Ubuntu (or are in the /etc/sudoers file), this can be accomplished using the sudo command as shown above. You can use whatever editor you like, too. vi, emacs, nano, kate…
Once the file is created, it’s time to get messy! The fdi file contains a match rule, which tells HAL which device you want to configure, and then a series of merge rules which apply your desired configuration into the HAL. The easiest way to show this is by example, so here’s my prospective configuration:
<?xml version="1.0" encoding="utf-8"?>
<deviceinfo version="0.2">
<device>
<match key="info.product" contains="Elantech Touchpad">
<merge type="string" key="input.x11_driver">synaptics</merge>
<merge type="string" key="input.x11_options.VertTwoFingerScroll">true</merge>
<merge type="string" key="input.x11_options.HorizTwoFingerScroll">true</merge>
<merge type="string" key="input.x11_options.TapButton1">1</merge>
<merge type="string" key="input.x11_options.TapButton2">2</merge>
<merge type="string" key="input.x11_options.TapButton3">3</merge>
<merge type="string" key="input.x11_options.ClickFinger1">1</merge>
<merge type="string" key="input.x11_options.ClickFinger2">3</merge>
<merge type="string" key="input.x11_options.ClickFinger3">2</merge>
</match>
</device>
</deviceinfo>
Starting from the top, here’s a quick description of each part:
- The <?xml part is the XML declaration required in any valid XML file. Nothing interesting here.
- The <deviceinfo> and <device> are just boilerplate code that tell the HAL to expect rules relating to devices. Again, nothing interesting here.
- Now things start getting good! The <match> line describes how to find the device you want to configure:
- Simply put, the HAL searches for the contains string inside the key field. Whatever matches that search it’ll apply the merge rules to.
- There are other ways to match aside from contains, but this is all you need to know to get things working.
- The <merge> lines are the meat of the file, describing each and every configuration change you want to make.
You’re probably thinking this is all good and well, but how did I come up with this stuff in the first place? Well, the answer lies in the HAL itself.
The lshal command lists all the devices the HAL can detect (that’s “ls hal”, get it?). You might want to pipe the contents to less, to be able to scroll and search through the large amount of text that’s returned:
lshal | less
In less, type /synaptics to search for the string “synaptics”. less should automatically scroll to the point we’re interested in; your touchpad. If it cannot be found, you either don’t have a Synaptics touchpad or the synaptics driver isn’t being loaded. Try searching for Touchpad or similar words, but anything more than that is beyond the scope of this article.
Once you have found the device on your list, you’ll be able to see a list of keys and their values. You want to pick one of these fields that will not change between boots to place as the match rule inside your fdi file. I chose info.product, but you can choose something else like input.product if it strikes your fancy. Either way, fill in the <match> line with the key that you chose and the string that’ll match it. Ideally this search will only match your touchpad and nothing else.
Next is the fun part — configuration. To do this simply open up the man page for synaptics:
man synaptics
This’ll give a detailed list of everything that can be changed within the synaptics driver. For each value that you want to change, find its name on the manpage, and add a new merge rule with the appropriate key. Note that every key in the fdi begins with “input.x11_options.” followed by the synaptics key you want to change. (The exception to this in my file is the first merge rule, which just makes sure that the synaptics driver has been loaded for my touchpad.)
If you want to test an option before making it permanent, use the synclient key=value command, filling in key and value with the option you want to change.
Once you’ve added all the merge rules you like, close all the tags and save the file. Now just restart the HAL (or your computer) and your settings will be applied. Almost.
GNOME Respect
Now that you have your configuration all set up, you need to stop GNOME from changing your carefully crafted settings to ones of its choosing.
To do this, simply run the following command:
gconftool-2 --type bool --set /apps/gnome_settings_daemon/plugins/mouse/active false
If you get cold feet and want to enable GNOME’s control over mouse and trackpad settings, run this command:
gconftool-2 --type bool --set /apps/gnome_settings_daemon/plugins/mouse/active true
That’s really it. Thanks to jan for finding this value.
I’ve written this to be as generalised as possible, so it should work for many different distros so long as they are using the latest HAL/Xorg/kernel. I’m running Fedora 11 and have added my name to the /etc/sudoers file, allowing me to run sudo.
If you have any questions or just want to say thanks, feel free to leave a comment or contact me!
<deviceinfo version=”0.2″>
<device>
<match key=”info.product” contains=”Elantech Touchpad”>
<merge type=”string” key=”input.x11_driver”>synaptics</merge>
<merge type=”string” key=”input.x11_options.VertTwoFingerScroll”>true</merge>
<merge type=”string” key=”input.x11_options.HorizTwoFingerScroll”>true</merge>
<merge type=”string” key=”input.x11_options.TapButton1″>1</merge>
<merge type=”string” key=”input.x11_options.TapButton2″>2</merge>
<merge type=”string” key=”input.x11_options.TapButton3″>3</merge>
<merge type=”string” key=”input.x11_options.ClickFinger1″>1</merge>
<merge type=”string” key=”input.x11_options.ClickFinger2″>3</merge>
<merge type=”string” key=”input.x11_options.ClickFinger3″>2</merge>
</match>
</device>
</deviceinfo>
Adding your most recent Twitter tweet to your Pidgin status
This guide is intended to be a more up-to-date mirror of the guide you can find at Tech Jawa. All credit to them for the original instructions!
Basically nothing changes, but I just like to be comprehensive.
- Download the TwitterStatus plugin. It’ll be a file ending in .pl.
- Move this file to your Pidgin plugins folder. If any folders don’t exist, create them:
- Linux: ~/.purple/plugins/
- Windows Vista/7: C:\Users\<Username>\AppData\Roaming\.purple\plugins
- Install Perl:
- Linux: It’s probably already installed.
- Windows: Use the most recent Strawberry Perl installation:
- Install the XML::XPath module into perl:
- Open a command line.
- Run
perl -MCPAN -e shell. - Type
install XML::XPathand then hit Return. Wait for the install to finish. - Type
quitand hit Return, then close your command line
- Start (or restart) Pidgin.
- From the contact list, go to Help > About. At the very bottom of the textbox that appears it should say “Perl: Enabled”. If it does not, repeat steps 3 and 4.
- From the contact list, go to Tools > Plug-ins. Find Twitter Status on the list, check the checkbox next to it, and then click Configure Plug-in.
- In the configuration window that appears, type in your username in the top textbox (labelled Username, surprise surprise). Configure anything else you want to your liking.
That’s it! You do not need to set this up again, it is a one-off set up for the computer. Of course, you will need to go through this procedure again if you have multiple computers you use Pidgin on, or if you format and reinstall your OS.
Strip ID3v1 Tags from MP3s in Linux
For kicks I decided to remove all the ID3v1 tags from my music files today. They were just getting in the way and served no useful purpose — since I had perfectly fine ID3v2 tags — so they just had to go.
I cooked up a little command to help out here! But first, we need to make sure you have the command that we’re going to need here, id3v2. Install it from the official repositories using your distribution’s package manager. For example, on Ubuntu:
sudo apt-get install id3v2
This command is used to view and manipulate ID3 tags inside of music files. One argument in particular is of use to us, -s, which strips ID3v1 tags out of the specified file(s).
With that in mind the task is just getting a list of the files that you want to remove ID3v1 tags from. I’ve managed to solve that and fit it all in one line — don’t forget to replace the path with the correct one:
find /path/to/music -name \*.mp3 -type f -print0 | xargs -0 id3v2 -s
That’s it! After testing I ran it on my whole music library and it appears to have survived just fine. Just be patient (and careful) if you’re stripping tags out of hundreds or thousands of files.
Let me know how it works out for you, and any improvements you may have!





