751a6b5bc4404e8398b360a925cb95e17be848d8

Author
Amir <amir77mafi@gmail.com>
Committer
GitHub <noreply@github.com>
Date

Message

add farsi keymap extras (#23650)

Diff

This diff is truncated to protect this page.

  1diff --git a/data/constants/keycodes/extras/keycodes_farsi_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_farsi_0.0.1.hjson
  2new file mode 100644
  3index 0000000000000000000000000000000000000000..d59b6fab2642cfee4310b3955c44d99bf3b740a8
  4--- /dev/null
  5+++ b/data/constants/keycodes/extras/keycodes_farsi_0.0.1.hjson
  6@@ -0,0 +1,616 @@
  7+{
  8+    "aliases": {
  9+/*
 10+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
 11+ * │   │ ۱ │ ۲ │ ۳ │ ۴ │ ۵ │ ۶ │ ۷ │ ۸ │ ۹ │ ۰ │ - │ = │       │
 12+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
 13+ * │     │ ض │ ص │ ث │ ق │ ف │ غ │ ع │ ه │ خ │ ح │ ج │ چ │     │
 14+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    │
 15+ * │      │ ش │ س │ ی │ ب │ ل │ ا │ ت │ ن │ م │ ک │ گ │ \ │    │
 16+ * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
 17+ * │    │ < │ ظ │ ط │ ز │ ر │ ذ │ د │ پ │ و │ . │ / │          │
 18+ * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
 19+ * │    │    │    │                        │    │    │    │    │
 20+ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
 21+ */
 22+        "KC_GRV": {
 23+            "key": "FA_ZWJ",
 24+            "label": "(zero-width joiner)",
 25+        }
 26+        "KC_1": {
 27+            "key": "FA_1A",
 28+            "label": "۱",
 29+        }
 30+        "KC_2": {
 31+            "key": "FA_2A",
 32+            "label": "۲",
 33+        }
 34+        "KC_3": {
 35+            "key": "FA_3A",
 36+            "label": "۳",
 37+        }
 38+        "KC_4": {
 39+            "key": "FA_4A",
 40+            "label": "۴",
 41+        }
 42+        "KC_5": {
 43+            "key": "FA_5A",
 44+            "label": "۵",
 45+        }
 46+        "KC_6": {
 47+            "key": "FA_6A",
 48+            "label": "۶",
 49+        }
 50+        "KC_7": {
 51+            "key": "FA_7A",
 52+            "label": "۷",
 53+        }
 54+        "KC_8": {
 55+            "key": "FA_8A",
 56+            "label": "۸",
 57+        }
 58+        "KC_9": {
 59+            "key": "FA_9A",
 60+            "label": "۹",
 61+        }
 62+        "KC_0": {
 63+            "key": "FA_0A",
 64+            "label": "۰",
 65+        }
 66+        "KC_MINS": {
 67+            "key": "FA_MINS",
 68+            "label": "-",
 69+        }
 70+        "KC_EQL": {
 71+            "key": "FA_EQL",
 72+            "label": "=",
 73+        }
 74+        "KC_Q": {
 75+            "key": "FA_ZAD",
 76+            "label": "ض",
 77+        }
 78+        "KC_W": {
 79+            "key": "FA_SAD",
 80+            "label": "ص",
 81+        }
 82+        "KC_E": {
 83+            "key": "FA_SE",
 84+            "label": "ث",
 85+        }
 86+        "KC_R": {
 87+            "key": "FA_QAF",
 88+            "label": "ق",
 89+        }
 90+        "KC_T": {
 91+            "key": "FA_FE",
 92+            "label": "ف",
 93+        }
 94+        "KC_Y": {
 95+            "key": "FA_GHYN",
 96+            "label": "غ",
 97+        }
 98+        "KC_U": {
 99+            "key": "FA_EYN",
100+            "label": "ع",
101+        }
102+        "KC_I": {
103+            "key": "FA_HE",
104+            "label": "ه",
105+        }
106diff --git a/docs/reference_keymap_extras.md b/docs/reference_keymap_extras.md
107index 191e0d4ea8deb1948dfbe6b73efbf4b64ff6c81c..d45183b6c6a17cfc8524c1ebb478192d9011f59d 100644
108--- a/docs/reference_keymap_extras.md
109+++ b/docs/reference_keymap_extras.md
110@@ -33,6 +33,7 @@ These headers are located in [`quantum/keymap_extras/`](https://github.com/qmk/q
111 |English (US International)       |`keymap_us_international.h`      |`sendstring_us_international.h`     |
112 |English (US International, Linux)|`keymap_us_international_linux.h`|                                    |
113 |Estonian                         |`keymap_estonian.h`              |`sendstring_estonian.h`             |
114+|Farsi                            |`keymap_farsi.h`                 |                                    |
115 |Finnish                          |`keymap_finnish.h`               |`sendstring_finnish.h`              |
116 |French                           |`keymap_french.h`                |`sendstring_french.h`               |
117 |French (AFNOR)                   |`keymap_french_afnor.h`          |`sendstring_french_afnor.h`         |
118diff --git a/quantum/keymap_extras/keymap_farsi.h b/quantum/keymap_extras/keymap_farsi.h
119new file mode 100644
120index 0000000000000000000000000000000000000000..d2689175131536c3007a239fd8778744b9030b8e
121--- /dev/null
122+++ b/quantum/keymap_extras/keymap_farsi.h
123@@ -0,0 +1,171 @@
124+// Copyright 2024 QMK
125+// SPDX-License-Identifier: GPL-2.0-or-later
126+
127+/*******************************************************************************
128+  88888888888 888      d8b                .d888 d8b 888               d8b
129+      888     888      Y8P               d88P"  Y8P 888               Y8P
130+      888     888                        888        888
131+      888     88888b.  888 .d8888b       888888 888 888  .d88b.       888 .d8888b
132+      888     888 "88b 888 88K           888    888 888 d8P  Y8b      888 88K
133+      888     888  888 888 "Y8888b.      888    888 888 88888888      888 "Y8888b.
134+      888     888  888 888      X88      888    888 888 Y8b.          888      X88
135+      888     888  888 888  88888P'      888    888 888  "Y8888       888  88888P'
136+                                                        888                 888
137+                                                        888                 888
138+                                                        888                 888
139+     .d88b.   .d88b.  88888b.   .d88b.  888d888 8888b.  888888 .d88b.   .d88888
140+    d88P"88b d8P  Y8b 888 "88b d8P  Y8b 888P"      "88b 888   d8P  Y8b d88" 888
141+    888  888 88888888 888  888 88888888 888    .d888888 888   88888888 888  888
142+    Y88b 888 Y8b.     888  888 Y8b.     888    888  888 Y88b. Y8b.     Y88b 888
143+     "Y88888  "Y8888  888  888  "Y8888  888    "Y888888  "Y888 "Y8888   "Y88888
144+         888
145+    Y8b d88P
146+     "Y88P"
147+*******************************************************************************/
148+
149+#pragma once
150+#include "keycodes.h"
151+// clang-format off
152+
153+// Aliases
154+#define FA_ZWJ  KC_GRV  // (zero-width joiner)
155+#define FA_1A   KC_1    // ۱
156+#define FA_2A   KC_2    // ۲
157+#define FA_3A   KC_3    // ۳
158+#define FA_4A   KC_4    // ۴
159+#define FA_5A   KC_5    // ۵
160+#define FA_6A   KC_6    // ۶
161+#define FA_7A   KC_7    // ۷
162+#define FA_8A   KC_8    // ۸
163+#define FA_9A   KC_9    // ۹
164+#define FA_0A   KC_0    // ۰
165+#define FA_MINS KC_MINS // -
166+#define FA_EQL  KC_EQL  // =
167+#define FA_ZAD  KC_Q    // ض
168+#define FA_SAD  KC_W    // ص
169+#define FA_SE   KC_E    // ث
170+#define FA_QAF  KC_R    // ق
171+#define FA_FE   KC_T    // ف
172+#define FA_GHYN KC_Y    // غ
173+#define FA_EYN  KC_U    // ع
174+#define FA_HE   KC_I    // ه
175+#define FA_KHE  KC_O    // خ
176+#define FA_HEJ  KC_P    // ح
177+#define FA_JIM  KC_LBRC // ج
178+#define FA_CHE  KC_RBRC // چ
179+#define FA_SHIN KC_A    // ش
180+#define FA_SIN  KC_S    // س
181+#define FA_YE   KC_D    // ی
182+#define FA_BE   KC_F    // ب
183+#define FA_LAM  KC_G    // ل
184+#define FA_ALEF KC_H    // ا
185+#define FA_TE   KC_J    // ت
186+#define FA_NOON KC_K    // ن
187+#define FA_MIM  KC_L    // م
188+#define FA_KAF  KC_SCLN // ک
189+#define FA_GAF  KC_QUOT // گ
190+#define FA_BSLS KC_BSLS // (backslash)
191+#define FA_LT   KC_LT   // <
192+#define FA_ZA   KC_Z    // ظ
193+#define FA_TA   KC_X    // ط
194+#define FA_ZE   KC_C    // ز
195+#define FA_RE   KC_V    // ر
196+#define FA_ZAL  KC_B    // ذ
197+#define FA_DAL  KC_N    // د
198+#define FA_PE   KC_M    // پ
199+#define FA_WAW  KC_COMM // و
200+#define FA_DOT  KC_DOT  // .
201+#define FA_SLSH KC_SLSH // /
202+#define FA_SPC  KC_SPC  //  
203+#define FA_DIV  S(FA_ZWJ)  // ÷
204+#define FA_EXLM S(FA_1A)   // !
205+#define FA_THS  S(FA_2A)   // ٬
206+#define FA_DECS S(FA_3A)   // ٫
207+#define FA_RIAL S(FA_4A)   // ﷼
208+#define FA_PRCA S(FA_5A)   // ٪
209+#define FA_MUL  S(FA_6A)   // ×
210+#define FA_COMA S(FA_7A)   // ،
211+#define FA_ASTR S(FA_8A)   // *
212+#define FA_RPRN S(FA_9A)   // )
213+#define FA_LPRN S(FA_0A)   // (
214+#define FA_TATW S(FA_MINS) // ـ
215+#define FA_PLUS S(FA_EQL)  // +
216+#define FA_SUK  S(FA_ZAD)  // ْ
217+#define FA_DMTN S(FA_SAD)  // ٌ
218+#define FA_KSTN S(FA_SE)   // ٍ
219+#define FA_FTHN S(FA_QAF)  // ً
220+#define FA_DMM  S(FA_FE)   // ُ
221+#define FA_KAS  S(FA_GHYN) // ِ
222+#define FA_FAT  S(FA_EYN)  // َ