From 532e2ed43117b4f101d36779b9ffd2e371385ab1 Mon Sep 17 00:00:00 2001 From: RGBCube Date: Mon, 20 May 2024 14:15:43 +0300 Subject: [PATCH] Add swap-i blog post --- site/assets/turkish-q-i.webp | Bin 0 -> 12884 bytes site/blog/swap-i.md | 140 +++++++++++++++++++++++++++++++++++ 2 files changed, 140 insertions(+) create mode 100644 site/assets/turkish-q-i.webp create mode 100644 site/blog/swap-i.md diff --git a/site/assets/turkish-q-i.webp b/site/assets/turkish-q-i.webp new file mode 100644 index 0000000000000000000000000000000000000000..f780d5fcdce1da484b0018bdf4884a846ced29a2 GIT binary patch literal 12884 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 There is `tr(us)` in the `xkeyboard_config` package that does something similar to this: +> +> ```cpp +> // The basic Turkish layout with "i" and "ı" swapped. +> // Originally by Ali Riza KESKIN , 2021. +> partial +> xkb_symbols "us" { +> +> include "tr(basic)" +> +> name[Group1]="Turkish (i and ı swapped)"; +> +> key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", +> [ i, I, paragraph, none ]}; +> key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", +> [ idotless, Iabovedot, apostrophe, dead_caron ]}; +> }; +> ``` +> +> However, this only swaps the uppercase letters, so the `i` key is unchanged but +> the uppercase of that key is `I` like in English. However, this is usually not +> desired as this still reduces your typing speed (as the `iI` key is too far). + +Let's create our own layout that does something similar but swaps the lowercase +letters instead. Here is the code for that: + +```cpp +default partial +xkb_symbols "basic" { + include "tr(basic)" + + name[Group1]="Turkish (i and ı swapped correctly)"; + + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", + [ idotless, Iabovedot, paragraph , none ]}; + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", + [ i , I , apostrophe, dead_caron ]}; +}; +``` + +The `default` key is needed because we are going to make this a standalone file. +Save this to `~/.config/xkb/symbols/tr-swapped-i` and you can tell your WM/DE +to use the `tr-swapped-i` XKB layout. + +In Hyprland (The WM I use) you can do it like this: + +```cpp +# In ~/.config/hypr/hyprland.conf +input { + kb_layout = "tr-swapped-i" +} +``` + +That should swap the `ı` and `i` keys on your WM/DE successfully. However, we are not done +yet. + +The TTY (swap to TTY 2 by doing `CTRL-ALT-F2`) still doesn't use this layout, which is a problem. +And it seems that the format the TTY uses is a little different. +Looking at the `kbd` package, it uses a format called `.map`. + +Here is a `.map` file that overrides the `trq` layout and swaps the `ı` and `i` keys: + +```cpp +include "/usr/share/keymaps/i386/qwerty/trq.map" + +keycode 23 = i + altgr keycode 23 = +icircumflex + altgr shift keycode 23 = +Icircumflex + +keycode 40 = +dotlessi +Idotabove +``` + +Save it to the directory where you store your maps. + +Note that the path `/usr/share/keymaps` might differ based on your distro. You +can check what it is it by doing `man loadkeys` and scrolling to the bottom. + +After that, consult your distro's docs on how to change the system keyboard locale. + +This is how it is done on NixOS: + +```nix +{ pkgs, ... }: { + console.keyMap = pkgs.writeText "trq-swapped-i.map" '' + include "${pkgs.kbd}/share/keymaps/i386/qwerty/trq.map" + + keycode 23 = i + altgr keycode 23 = +icircumflex + altgr shift keycode 23 = +Icircumflex + + keycode 40 = +dotlessi +Idotabove + ''; +} +``` + +And this is how it is done on Arch: + +```shell +cat << :end +include "/usr/share/kbd/keymaps/i386/qwerty/trq.map" + +keycode 23 = i + altgr keycode 23 = +icircumflex + altgr shift keycode 23 = +Icircumflex + +keycode 40 = +dotlessi +Idotabove +:end > /usr/share/kbd/keymaps/i386/qwerty/trq-swapped-i.map + +localectl set-keymap --no-convert tr-swapped-i +``` + +After that, your TTY should also use this locale. + +Gotta love having to mess with deep parts of your system because the Turkish-Q +layout did the big mistake of reusing the `i` key as `ı`! + +At least I'll type and edit faster now... + +[Here is the commit where I implemented this, might be worth a look if you use NixOS.](https://github.com/RGBCube/NCC/commit/6d18066eb5ccefa4539205f3d6721e4a8ff8b97e)