+
+This is a community module adaptation of [Custom Shift
+Keys](https://getreuer.info/posts/keyboards/custom-shift-keys), a light
+alternative to QMK's [Key Overrides](https://docs.qmk.fm/features/key_overrides)
+for customizing what keycode is produced when a key is shifted.
+
+Add the following to your `keymap.json` to use Custom Shift Keys:
+
+```json
+{
+ "modules": ["getreuer/custom_shift_keys"]
+}
+```
+
+Then in your `keymap.c`, define how keys are shifted with the
+`custom_shift_keys` array. Each row defines one key. The first keycode is the
+keycode as it appears in your layout and determines what is typed normally. The
+shifted_keycode is what you want the key to type when shifted. An example:
+
+```c
+const custom_shift_key_t custom_shift_keys[] = {
+ {KC_DOT , KC_QUES}, // Shift . is ?
+ {KC_COMM, KC_EXLM}, // Shift , is !
+ {KC_MINS, KC_EQL }, // Shift - is =
+ {KC_COLN, KC_SCLN}, // Shift : is ;
+};
+```
+
+For instance, the first row defines that when `KC_DOT` is pressed with Shift
+held, keycode `KC_QUES` is sent.
+
+See the [Custom Shift Keys
+documentation](https://getreuer.info/posts/keyboards/custom-shift-keys) for
+configuration options and further details.
diff --git a/modules/getreuer/custom_shift_keys/custom_shift_keys.c b/modules/getreuer/custom_shift_keys/custom_shift_keys.c
new file mode 100644
index 0000000..4c7c88a
--- /dev/null
+++ b/modules/getreuer/custom_shift_keys/custom_shift_keys.c
@@ -0,0 +1,94 @@
+// Copyright 2021-2025 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+/**
+ * @file custom_shift_keys.c
+ * @brief Custom Shift Keys community module implementation
+ *
+ * For full documentation, see
+ *