From: michael@gandalf.moria (Michael Haardt) Subject: [patch] Re: swapping Ctrl/Caps ?? Date: Tue, 06 Apr 1993 10:45:44 +0100
lok@cs.tu-berlin.de (Andreas Stang) writes:
> I spend the afternoon trying to get `Ctrl' on the `Caps Lock' key, but it
> didn't work. Is there anybody who has an Idea how to modify keyboard.c?
> (0.99pl6 and US-Keyboard)
The following patch works for me (German keyboard and 0.99.7). It swaps
the left control key with the caps lock key:
Michael (u31b3hs@pool.informatik.rwth-aachen.de)
==============================
*** kernel/chr_drv/keyboard.c~ Sun Apr 4 14:19:24 1993
--- kernel/chr_drv/keyboard.c Sun Apr 4 17:49:03 1993
***************
*** 26,31 ****
--- 26,33 ----
#endif
#endif
+ #define SWAP_CTRL_CAPS
+
/*
* The default IO slowdown is doing 'inb()'s from 0x61, which should be
* safe. But as that is the keyboard controller chip address, we do our
***************
*** 190,196 ****
--- 192,207 ----
if (kbd_dead(KGD_E0))
set_kbd_flag(KG_RCTRL);
else
+ #ifdef SWAP_CTRL_CAPS
+ {
+ if (kbd_flag(KG_CAPSLOCK))
+ return; /* key already pressed: defeat repeat */
+ set_kbd_flag(KG_CAPSLOCK);
+ chg_vc_kbd_flag(kbd,VC_CAPSLOCK);
+ }
+ #else
set_kbd_flag(KG_LCTRL);
+ #endif
}
static void alt(int sc)
***************
*** 206,212 ****
--- 217,227 ----
if (kbd_dead(KGD_E0))
clr_kbd_flag(KG_RCTRL);
else
+ #ifdef SWAP_CTRL_CAPS
+ clr_kbd_flag(KG_CAPSLOCK);
+ #else
clr_kbd_flag(KG_LCTRL);
+ #endif
}
static void unalt(int sc)
***************
*** 244,258 ****
--- 259,281 ----
static void caps(int sc)
{
+ #ifdef SWAP_CTRL_CAPS
+ set_kbd_flag(KG_LCTRL);
+ #else
if (kbd_flag(KG_CAPSLOCK))
return; /* key already pressed: defeat repeat */
set_kbd_flag(KG_CAPSLOCK);
chg_vc_kbd_flag(kbd,VC_CAPSLOCK);
+ #endif
}
static void uncaps(int sc)
{
+ #ifdef SWAP_CTRL_CAPS
+ clr_kbd_flag(KG_LCTRL);
+ #else
clr_kbd_flag(KG_CAPSLOCK);
+ #endif
}
static void show_ptregs(void)