pbranch curiosities

I've started using pbranch extension for hg more seriously. It works nicely but is a little rough around the edges, in particular:

No hg qpop/push equivalent

I really miss this. I find myself constantly doing hg pgraph to figure out where I am and then typing the patch above or below.

No way to shelve a patch

With MQ, I can easily guard a patch to temporarily remove it from the queue. There doesn't seem to be a simple way to do that with pbranch.

Editing patch messages.

You use peditmessage, but because this modifies the repository, you then have to always hg pmerge -all. This pops to the top and causes a bunch of extra changesets, and it gets annoying quickly. And frustratingly, these patch messages do *not* appear in the repo history. So your code reviews of the main repo are just showered in useless merge messages, instead of the actual commit message you care about.

No pfinish

I don't know why, but there's no way to automatically commit a patch as a single changeset on the root default tip, then close the patch branch.

Inserting and deleting patches is horrible

Yuck - I really hope this gets easier soon.

Showing the current patch history

A little tip not mentioned on the pbranch site: the way to show the changelog history of the current patch is to do hg log -b patchname.

Re-enable Ctrl-Alt-Backspace in Xorg

Create the following as /etc/hal/fdi/policy/30user/10-x11-zap.fdi:

<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
Default X.org input configuration is defined in:
Settings here modify or override the default configuration.
See comment in the file above for more information.

To see the currently active hal X.org input configuration
run lshal or hal-device(1m) and search for "input.x11*" keys.

Hal and X must be restarted for changes here to take any effect
<match key="info.capabilities" contains="input.keys">
<merge key="input.x11_options.XkbOptions" type="string">terminate:ctrl_alt_bksp</merge>

and then restart hald and Xorg.

Disabling that goddamn GTK bell

echo 'gtk-error-bell = 0' >>$HOME/.gtkrc-2.0


Changing liferea keyboard shortcuts

Liferea has no keyboard shortcut editor itself, but "Toggle unread status" demands the wrist-breaking chord action of Control-U. It expects you to be able to edit the shortcuts via the editable menu feature of GTK+.

Unfortunately that's disabled on all modern GNOME installs, and there's no UI for re-enabling it. As usual, gconf-editor to the rescue. The key you need to change is /desktop/gnome/interface/can_change_accels. After re-starting Liferea, you can then edit via hovering over the menu item and pressing the combination. Of course, this in itself is buggy: if it clashes with a menu accelerator (as 'r' is), it will perform that action instead.

It's simpler to directly edit the accels file in your Liferea dot dir.


Epson all-in-ones: avoid like the plague

Browsing the net, you might get the impression that Epson Stylus All-in-ones are well supported under Linux. Unfortunately this is not the case. The pipslite driver you have to install is extremely flaky, and Fedora SELinux doesn't work properly with it. There's no "draft" mode for some bizarre reason; printing is extremely slow and often randomly cancels half-printed jobs due to USB resets

The scanner doesn't work at all with the iscan software, despite claims to the contrary.

Setting up JACK on Fedora 12

Audacity is somewhat of a broken joke these days, so I needed to use Ardour to record. And that meant setting up JACK. Since JACK insists on exclusivity, I also needed to route pulseaudio through JACK so I could use other apps at the same time. Unfortunately, this is a bit of a pig to figure out. I hacked it as follows:

First edit /etc/pulse/default.pa, you need to add two lines:

load-module module-jack-sink
load-module module-jack-source

In theory now, a restart of pulseaudio should start using JACK for recording and playback, if jackd is running. However, it tends not to work very well: you might find PA hanging and you have to kill -9 it.

This isn't enough of course, now when you log in again, gnome-session will try to start pulseaudio, but not jackd, so nothing works. It's far from the right way, but I edited /usr/bin/start-pulseaudio-x11 (which is started from a /etc/xdg/autostart/ script), as follows:

amixer -c 0 sset 'Input Source' 'Line'

nohup jackd -d alsa &

sleep 5

/usr/bin/pulseaudio --start "$@"

Note that I have to set the input source by hand: something in desktop start up used to do this for me, but now I'm going through JACK it has to be done by hand.


Liferea strict feed validation tip

New versions of Liferea refuse to parse any feed that fails to validate, even for relatively "minor" problems (the libxml2 recovery facility is no longer used; besides, it abandons the rest of the feed when it hits such problems). I don't want to use Google Reader, since I don't like the interface.

Typically bad feeds have things like high-bit chars or bare ampersands. Thankfully, there's a "conversion filter" feature that you can use to work around the bad feeds. On the two bad feeds, I run this filter:

[moz@pent ~]$ cat bin/fix-ampersands

sed 's/\o226/&amp;/g' | sed 's/& /\&amp;/g' | sed 's/\o243/GBP/g'