How to type "Full Width" characters?
I would like to be able to type with the "full width" characters, such as
abcdefghijklmnopqrstuvwxyz
and
ABCDEFGHIJKLMNOPQRSTUVWXYZ
or
0123456789
or even
!#$&*+-<=>?@[\]^_{|}~⦅⦆¢£¬ ̄¦¥₩
without having to resort to "hunting and pecking" via the Symbols and Emoji
dialog..
Is this possible without laboriously assigning macros for each character via OS X
's "shortcuts" (or BetterTouchTool
, etc)?
• Open system preferences
• Select ‘Keyboard’
• Go to the ‘Input sources’ tab
• Click on the plus button at the bottom to add a keyboard format
• Select a keyboard format that supports full-width text (e.g. Japanese)
• Make sure that the full-width input mode is enabled. (For the Japanese keyboard menu you will need to tick the box next to ‘Full-width Romaji’)
• Make sure that the ‘Show Input menu in menu bar’ box is ticked
• Select the full-width mode in the menu bar
• You should then be able to type in full-width text
Screenshots: https://imgur.com/a/eHqyl
DefaultKeyBinding.dict
Create ~/Library/KeyBindings/DefaultKeyBinding.dict
and enter
{"$^A"=(insertText:,"A");"$^B"=(insertText:,"B");"$^C"=(insertText:,"C");"$^D"=(insertText:,"D");"$^E"=(insertText:,"E");"$^F"=(insertText:,"F");"$^G"=(insertText:,"G");"$^H"=(insertText:,"H");"$^I"=(insertText:,"I");"$^J"=(insertText:,"J");"$^K"=(insertText:,"K");"$^L"=(insertText:,"L");"$^M"=(insertText:,"M");"$^N"=(insertText:,"N");"$^O"=(insertText:,"O");"$^P"=(insertText:,"P");"$^Q"=(insertText:,"Q");"$^R"=(insertText:,"R");"$^S"=(insertText:,"S");"$^T"=(insertText:,"T");"$^U"=(insertText:,"U");"$^V"=(insertText:,"V");"$^W"=(insertText:,"W");"$^X"=(insertText:,"X");"$^Y"=(insertText:,"Y");"$^Z"=(insertText:,"Z");"^a"=(insertText:,"a");"^b"=(insertText:,"b");"^c"=(insertText:,"c");"^d"=(insertText:,"d");"^e"=(insertText:,"e");"^f"=(insertText:,"f");"^g"=(insertText:,"g");"^h"=(insertText:,"h");"^i"=(insertText:,"i");"^j"=(insertText:,"j");"^k"=(insertText:,"k");"^l"=(insertText:,"l");"^m"=(insertText:,"m");"^n"=(insertText:,"n");"^o"=(insertText:,"o");"^p"=(insertText:,"p");"^q"=(insertText:,"q");"^r"=(insertText:,"r");"^s"=(insertText:,"s");"^t"=(insertText:,"t");"^u"=(insertText:,"u");"^v"=(insertText:,"v");"^w"=(insertText:,"w");"^x"=(insertText:,"x");"^y"=(insertText:,"y");"^z"=(insertText:,"z");"^0"=(insertText:,"0");"^1"=(insertText:,"1");"^2"=(insertText:,"2");"^3"=(insertText:,"3");"^4"=(insertText:,"4");"^5"=(insertText:,"5");"^6"=(insertText:,"6");"^7"=(insertText:,"7");"^8"=(insertText:,"8");"^9"=(insertText:,"9");"$^1"=(insertText:,"!");}
This rebinds
- ^a (ctrl-a) to insert a
- ⇧^a (shift-ctrl-a) to insert A
- ^0 to insert 0
- ⇧^1 to insert !
I only implemented one punctuation mark as it depends on your keyboard layout. I think you get the idea if you want to implement the others yourself.
Make sure you don't have any other apps intercepting these keyboard shortcuts (e.g. Keyboard Maestro), but if one doesn't work, you can change the modifier with a find & replace.
In DefaultKeyBinding.dict, $
= ⇧ (shift), ^
= ^ (ctrl)
Quit and reopen applications for the change to take effect.
The full width characters are at Unicode FF01--FF5E. You could make a custom keyboard layout for these with Ukekele. Character Viewer has a category for them called Full Width Form Variant under Customize/East Asian Scripts.
There are also online converters like this.