Bug#501654: Bug#501590: PrintScreen key causes many apps to suddenly die if you are running in Linux text mode
On Thu, Oct 09, 2008 at 12:59:35PM +0300, Anton Zinoviev wrote:
> On Thu, Oct 09, 2008 at 06:39:59AM +0200, Christian Perrier wrote:
> > Quoting Jason Spiro (jasonspiro4@gmail.com):
> > > I assigned it to console-data because it I assume that the bug is
> > > caused by the line "keycode 99 = Control_backslash" in
> > > console-data/keymaps/i386/include/linux-keys-bare.inc. I didn't try
> > > changing the line and rebooting, so I might be wrong. If I am wrong,
> > > then just reassign to the pseudo-package "general".
>
> I agree that the only practical way to fix this bug is to change the the
> console keymaps. Thats why I am reassigning a clone to console-setup
> and if Christian doesn't object I intend to fix the keymaps at least
> there.
>
> I will try to make Control+PrintScreen=Control_backslash and
> plain PrintScreen=VoidSymbol.
>
> > I think you're asking for a change that:
> > - will change establisehd behaviour for ages
>
> This is true but I don't think anybody will be agains the change in the
> behaviour. It is not difficult to press Control+PrintScreen instead of
> plain PrintScreen if one needs the old behaviour.
I strongly agree, and to be honest I have real trouble seeing
Christian's argument here (well, at least not post-lenny). Putting a
fatal signal on a surprising key that people might quite reasonably
expect from the engraving to have completely different semantics is not
compatibility worth preserving.
Alt+PrintScreen (i.e. SysRq) might be slightly more reasonably mapped to
Ctrl+\ in the event that the kernel doesn't handle it already.
How about this patch?
Index: Keyboard/ckbcomp
===================================================================
--- Keyboard/ckbcomp (revision 56753)
+++ Keyboard/ckbcomp (working copy)
@@ -3679,6 +3679,10 @@
@vector = ('Last_Console') x 64;
} elsif ($kernel_code == 99) {
@vector = ('Control_backslash') x 64;
+ for my $coord (0, 16, 32, 48) {
+ $vector[$coord] = 'VoidSymbol';
+ $vector[$coord + 1] = 'VoidSymbol';
+ }
} elsif ($kernel_code == 101) {
@vector = ('Break') x 64;
} elsif ($kernel_code == 119) {
--
Colin Watson [cjwatson@ubuntu.com]
Reply to: