[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: