-From d9963dd166d6e4687864261e0ca31de2a2c7ffa8 Mon Sep 17 00:00:00 2001
+From 2bcfa978e94562f798886a12f86141c9e4a15458 Mon Sep 17 00:00:00 2001
From: Stephan Hilb <stephan@ecshi.net>
Date: Sat, 19 Feb 2011 14:06:28 +0100
-Subject: [PATCH] Add option to bind Control modifier to <CAPS> key while preserving the keysym
+Subject: [PATCH] Add option to bind Control modifier to <CAPS> key while preserving the Caps_Lock keysym
-Allows the <CAPS> key to act as a Control modifier while still being
-recognized as the caps lock key through its keysym (CapsLock). See
+Allows the <CAPS> key to act as a Control modifier while still being recognized as the caps lock key through its keysym (CapsLock).
+See #30898 for usecases and arguments.
---
rules/base.o_s.part | 1 +
- symbols/capslock | 9 +++++++++
- 2 files changed, 10 insertions(+), 0 deletions(-)
+ rules/base.xml.in | 6 ++++++
+ symbols/capslock | 11 +++++++++++
+ 3 files changed, 18 insertions(+), 0 deletions(-)
diff --git a/rules/base.o_s.part b/rules/base.o_s.part
index 6ce87e3..5ac467a 100644
ctrl:nocaps = +ctrl(nocaps)
ctrl:lctrl_meta = +ctrl(lctrl_meta)
ctrl:swapcaps = +ctrl(swapcaps)
+diff --git a/rules/base.xml.in b/rules/base.xml.in
+index 15581b7..86aab3e 100644
+--- a/rules/base.xml.in
++++ b/rules/base.xml.in
+@@ -5272,6 +5272,12 @@
+ <_description>Caps Lock is disabled</_description>
+ </configItem>
+ </option>
++ <option>
++ <configItem>
++ <name>caps:ctrl_modifier</name>
++ <_description>Make Caps Lock an additional Control but keep the Caps_Lock keysym</_description>
++ </configItem>
++ </option>
+ </group>
+ <group allowMultipleSelection="false">
+ <!-- Using special PC keys (Win, Menu) to work as standard X keys (Super, Hyper, etc.) -->
diff --git a/symbols/capslock b/symbols/capslock
-index 415e4db..9f58c79 100644
+index 415e4db..18a4045 100644
--- a/symbols/capslock
+++ b/symbols/capslock
-@@ -63,3 +63,12 @@ xkb_symbols "numlock" {
+@@ -63,3 +63,14 @@ xkb_symbols "numlock" {
key <CAPS> { [ Num_Lock ] };
};
-+// This just changes the modifier behavior of the <CAPS> key.
-+// The keysym will be preserved (in most cases Caps_Lock)
-+partial modifier_keys xkb_symbols "ctrl_modifier" {
++// This changes the modifier behavior of the <CAPS> key.
++// The keysym will be reset to Caps_Lock
++partial hidden modifier_keys
++xkb_symbols "ctrl_modifier" {
+ replace key <CAPS> {
+ type[Group1] = "ONE_LEVEL",
++ symbols[Group1] = [ Caps_Lock ],
+ actions[Group1] = [ SetMods(modifiers=Control) ]
+ };
+ modifier_map Control { <CAPS> };
+};
--
-1.7.3.4
+1.7.4.1