+From d9963dd166d6e4687864261e0ca31de2a2c7ffa8 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
+
+Allows the <CAPS> key to act as a Control modifier while still being
+recognized as the caps lock key through its keysym (CapsLock). See
+---
+ rules/base.o_s.part | 1 +
+ symbols/capslock | 9 +++++++++
+ 2 files changed, 10 insertions(+), 0 deletions(-)
+
+diff --git a/rules/base.o_s.part b/rules/base.o_s.part
+index 6ce87e3..5ac467a 100644
+--- a/rules/base.o_s.part
++++ b/rules/base.o_s.part
+@@ -59,6 +59,7 @@
+ caps:super = +capslock(super)
+ caps:hyper = +capslock(hyper)
+ caps:none = +capslock(none)
++ caps:ctrl_modifier = +capslock(ctrl_modifier)
+ ctrl:nocaps = +ctrl(nocaps)
+ ctrl:lctrl_meta = +ctrl(lctrl_meta)
+ ctrl:swapcaps = +ctrl(swapcaps)
+diff --git a/symbols/capslock b/symbols/capslock
+index 415e4db..9f58c79 100644
+--- a/symbols/capslock
++++ b/symbols/capslock
+@@ -63,3 +63,12 @@ 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" {
++ replace key <CAPS> {
++ type[Group1] = "ONE_LEVEL",
++ actions[Group1] = [ SetMods(modifiers=Control) ]
++ };
++ modifier_map Control { <CAPS> };
++};
+--
+1.7.3.4
+