I ran into this bug today and did a bit of digging. Thought I'd pass that along.
First note that this bug effects all of the rxvt-unicode variants, not just rxvt-unicode-ml. Also note that killing X11 isn't required, Ctrl-Alt-F1 still works to switch to the console where you can kill urxvt and un-freeze X11. First a resource dump. Corresponding Ubuntu bug. https://bugs.launchpad.net/archlinux/+source/rxvt-unicode/+bug/317366 rxvt-unicode ml threads (2 threads; links to first posts) http://lists.schmorp.de/pipermail/rxvt-unicode/2009q3/001035.html http://lists.schmorp.de/pipermail/rxvt-unicode/2009q3/001042.html According to urxvt ml thread this is an xorg bug. Ubuntu applied the patch from the second ml thread listed above, but upstream decided against it as it was an xorg bug. They considered a compile time option for the workaround but decided it 'broke' things and didn't belong in the urxvt codebase. The dev I spoke to on irc (schmorp) said he thought it was a decent enough "temporary workaround" as long as it was removed once the xorg bug was fixed. So I have attached the patch to this as a possible fix. If you're looking to just prevent the hang you can disable the popup menus via an .Xresources tweak. URxvt*perl-ext-common: default,-option-popup,-selection-popup -- John Eikenberry [...@zhar.net - http://zhar.net] [PGP public key @ http://zhar.net/jae_at_zhar_net.gpg] ______________________________________________________________ "Perfection is attained, not when no more can be added, but when no more can be removed." -- Antoine de Saint-Exupery
Index: src/perl/urxvt-popup =================================================================== RCS file: /schmorpforge/rxvt-unicode/src/perl/urxvt-popup,v retrieving revision 1.15 diff -u -r1.15 urxvt-popup --- src/perl/urxvt-popup 24 Dec 2007 08:21:40 -0000 1.15 +++ src/perl/urxvt-popup 2 Aug 2009 08:22:52 -0000 @@ -120,7 +120,7 @@ $self->refresh; # might fail, but try anyways - $self->grab ($self->{data}{event}{time}, 1) + $self->grab ($self->{data}{event}{time}) and $self->allow_events_async; on_button_press $self, $self->{data}{event} if $self->{data}{event}{button}; @@ -132,7 +132,7 @@ my ($self, $event) = @_; # should definitely not fail - $self->grab ($self->{data}{event}{time}, 1) + $self->grab ($self->{data}{event}{time}) and $self->allow_events_async; }
signature.asc
Description: Digital signature