├── .gitignore ├── LICENSE.txt ├── MANIFEST.in ├── README.md ├── README.rst ├── prettype ├── fonts │ ├── Calligraphy-Bold.json │ ├── Calligraphy-Normal.json │ ├── Circled.json │ ├── Double-Struck.json │ ├── Fraktur-Bold.json │ ├── Fraktur-Normal.json │ ├── Inverse-Circled.json │ ├── Inverse-Squared.json │ ├── Monospace.json │ ├── Paranthesized.json │ ├── Sans-Serif-Bold-Italic.json │ ├── Sans-Serif-Bold.json │ ├── Sans-Serif-Italic.json │ ├── Sans-Serif-Normal.json │ ├── Serif-Bold-Italic.json │ ├── Serif-Bold.json │ ├── Serif-Italic.json │ ├── Serif-Normal.json │ └── Squared.json ├── gui.py └── prettype.py ├── requirements.txt └── setup.py /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | *.pyc 3 | /dist/ 4 | /*.egg 5 | /*.egg-info 6 | .idea/ 7 | build/ -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Nikhil Kumar Singh 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | include README.rst 2 | include prettype/fonts/* -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![PyPI](https://img.shields.io/badge/PyPi-v1.0.0-f39f37.svg)](https://pypi.python.org/pypi/clix) 2 | [![license](https://img.shields.io/github/license/mashape/apistatus.svg?maxAge=2592000)](https://github.com/nikhilkumarsingh/clix/blob/master/LICENSE.txt) 3 | 4 | # prettype 5 | 6 | An easy to use text stylizer for your desktop! 7 | 8 | ![](https://media.giphy.com/media/xWBEn6avkyGib7ynG2/giphy.gif) 9 | 10 | ## Installation 11 | 12 | - To install `prettype`, simply, 13 | 14 | ``` 15 | $ pip install prettype 16 | ``` 17 | 18 | ## Supported unicode fonts 19 | 20 | Serif-Normal PRETTYPE 21 | Serif-Bold 𝐏𝐑𝐄𝐓𝐓𝐘𝐏𝐄 22 | Serif-Italic 𝑃𝑅𝐸𝑇𝑇𝑌𝑃𝐸 23 | Serif-Bold-Italic 𝑷𝑹𝑬𝑻𝑻𝒀𝑷𝑬 24 | Sans-Serif-Normal 𝖯𝖱𝖤𝖳𝖳𝖸𝖯𝖤 25 | Sans-Serif-Bold 𝗣𝗥𝗘𝗧𝗧𝗬𝗣𝗘 26 | Sans-Serif-Italic 𝘗𝘙𝘌𝘛𝘛𝘠𝘗𝘌 27 | Sans-Serif-Bold-Italic 𝙋𝙍𝙀𝙏𝙏𝙔𝙋𝙀 28 | Calligraphy-Normal 𝒫ℛℰ𝒯𝒯𝒴𝒫ℰ 29 | Calligraphy-Bold 𝓟𝓡𝓔𝓣𝓣𝓨𝓟𝓔 30 | Fraktur-Normal 𝔓ℜ𝔈𝔗𝔗𝔜𝔓𝔈 31 | Fraktur-Bold 𝕻𝕽𝕰𝕿𝕿𝖄𝕻𝕰 32 | Monospace 𝙿𝚁𝙴𝚃𝚃𝚈𝙿𝙴 33 | Double-Struck ℙℝ𝔼𝕋𝕋𝕐ℙ𝔼 34 | Inverse-Squared 🅿🆁🅴🆃🆃🆈🅿🅴 35 | Squared 🄿🅁🄴🅃🅃🅈🄿🄴 36 | Inverse-Circled 🅟🅡🅔🅣🅣🅨🅟🅔 37 | Circled ⓅⓇⒺⓉⓉⓎⓅⒺ 38 | Paranthesized ⒫⒭⒠⒯⒯⒴⒫⒠ 39 | 40 | ## Usage 41 | 42 | - To run `prettype `, open terminal and run this command: 43 | 44 | ``` 45 | $ prettype 46 | ``` 47 | 48 | **Note:** Leave this terminal open as long as you want to use **prettype**. 49 | 50 | 51 | - To stylize any text, 52 | - select it 53 | - press the key binding (`ctrl`+`space` by default) to open font selector 54 | - select the font you want to stylize your text with using the GUI 55 | - the stylized text gets copied to your clipboard 56 | - press `ctrl`+`v` to paste the stylized text wherever you want! 57 | 58 | - To close prettype, just press the exit key (`esc` by default). 59 | 60 | 61 | - **CLI usage to configure key binding and exit key:** 62 | ``` 63 | $ prettype [-h] [-b key1 key2] [-e key] 64 | ``` 65 | 66 | You can always use `$ prettype -h` command to open this help message: 67 | 68 | ``` 69 | optional arguments: 70 | -h, --help show this help message and exit 71 | -b key1 key2, --binding key1 key2 72 | Set a key binding for triggering prettype font 73 | selector. Example: $ prettype -b ctrl space 74 | -e key, --exit_key key 75 | Specify a key which stops the keyboard listener, when 76 | pressed. Example: $ prettype -e esc 77 | 78 | ``` 79 | -------------------------------------------------------------------------------- /README.rst: -------------------------------------------------------------------------------- 1 | |PyPI| |license| 2 | 3 | prettype 4 | ======== 5 | 6 | An easy to use text stylizer for your desktop! 7 | 8 | .. figure:: https://media.giphy.com/media/xWBEn6avkyGib7ynG2/giphy.gif 9 | :alt: 10 | 11 | Installation 12 | ------------ 13 | 14 | - To install ``prettype``, simply, 15 | 16 | :: 17 | 18 | $ pip install prettype 19 | 20 | Supported unicode fonts 21 | ----------------------- 22 | 23 | :: 24 | 25 | Serif-Normal PRETTYPE 26 | Serif-Bold 𝐏𝐑𝐄𝐓𝐓𝐘𝐏𝐄 27 | Serif-Italic 𝑃𝑅𝐸𝑇𝑇𝑌𝑃𝐸 28 | Serif-Bold-Italic 𝑷𝑹𝑬𝑻𝑻𝒀𝑷𝑬 29 | Sans-Serif-Normal 𝖯𝖱𝖤𝖳𝖳𝖸𝖯𝖤 30 | Sans-Serif-Bold 𝗣𝗥𝗘𝗧𝗧𝗬𝗣𝗘 31 | Sans-Serif-Italic 𝘗𝘙𝘌𝘛𝘛𝘠𝘗𝘌 32 | Sans-Serif-Bold-Italic 𝙋𝙍𝙀𝙏𝙏𝙔𝙋𝙀 33 | Calligraphy-Normal 𝒫ℛℰ𝒯𝒯𝒴𝒫ℰ 34 | Calligraphy-Bold 𝓟𝓡𝓔𝓣𝓣𝓨𝓟𝓔 35 | Fraktur-Normal 𝔓ℜ𝔈𝔗𝔗𝔜𝔓𝔈 36 | Fraktur-Bold 𝕻𝕽𝕰𝕿𝕿𝖄𝕻𝕰 37 | Monospace 𝙿𝚁𝙴𝚃𝚃𝚈𝙿𝙴 38 | Double-Struck ℙℝ𝔼𝕋𝕋𝕐ℙ𝔼 39 | Inverse-Squared 🅿🆁🅴🆃🆃🆈🅿🅴 40 | Squared 🄿🅁🄴🅃🅃🅈🄿🄴 41 | Inverse-Circled 🅟🅡🅔🅣🅣🅨🅟🅔 42 | Circled ⓅⓇⒺⓉⓉⓎⓅⒺ 43 | Paranthesized ⒫⒭⒠⒯⒯⒴⒫⒠ 44 | 45 | Usage 46 | ----- 47 | 48 | - To run ``prettype``, open terminal and run this command: 49 | 50 | :: 51 | 52 | $ prettype 53 | 54 | **Note:** Leave this terminal open as long as you want to use 55 | **prettype**. 56 | 57 | - To stylize any text, 58 | 59 | - select it 60 | - press the key binding (``ctrl``\ +\ ``space`` by default) to open 61 | font selector 62 | - select the font you want to stylize your text with using the GUI 63 | - the stylized text gets copied to your clipboard 64 | - press ``ctrl``\ +\ ``v`` to paste the stylized text wherever you 65 | want! 66 | 67 | - To close prettype, just press the exit key (``esc`` by default). 68 | 69 | - **CLI usage to configure key binding and exit key:** 70 | 71 | :: 72 | 73 | $ prettype [-h] [-b key1 key2] [-e key] 74 | 75 | You can always use ``$ prettype -h`` command to open this help 76 | message: 77 | 78 | :: 79 | 80 | optional arguments: 81 | -h, --help show this help message and exit 82 | -b key1 key2, --binding key1 key2 83 | Set a key binding for triggering prettype font 84 | selector. Example: $ prettype -b ctrl space 85 | -e key, --exit_key key 86 | Specify a key which stops the keyboard listener, when 87 | pressed. Example: $ prettype -e esc 88 | 89 | .. |PyPI| image:: https://img.shields.io/badge/PyPi-v1.0.0-f39f37.svg 90 | :target: https://pypi.python.org/pypi/clix 91 | .. |license| image:: https://img.shields.io/github/license/mashape/apistatus.svg?maxAge=2592000 92 | :target: https://github.com/nikhilkumarsingh/clix/blob/master/LICENSE.txt 93 | -------------------------------------------------------------------------------- /prettype/fonts/Calligraphy-Bold.json: -------------------------------------------------------------------------------- 1 | { 2 | "A": "\ud835\udcd0", 3 | "B": "\ud835\udcd1", 4 | "C": "\ud835\udcd2", 5 | "D": "\ud835\udcd3", 6 | "E": "\ud835\udcd4", 7 | "F": "\ud835\udcd5", 8 | "G": "\ud835\udcd6", 9 | "H": "\ud835\udcd7", 10 | "I": "\ud835\udcd8", 11 | "J": "\ud835\udcd9", 12 | "K": "\ud835\udcda", 13 | "L": "\ud835\udcdb", 14 | "M": "\ud835\udcdc", 15 | "N": "\ud835\udcdd", 16 | "O": "\ud835\udcde", 17 | "P": "\ud835\udcdf", 18 | "Q": "\ud835\udce0", 19 | "R": "\ud835\udce1", 20 | "S": "\ud835\udce2", 21 | "T": "\ud835\udce3", 22 | "U": "\ud835\udce4", 23 | "V": "\ud835\udce5", 24 | "W": "\ud835\udce6", 25 | "X": "\ud835\udce7", 26 | "Y": "\ud835\udce8", 27 | "Z": "\ud835\udce9", 28 | "a": "\ud835\udcea", 29 | "b": "\ud835\udceb", 30 | "c": "\ud835\udcec", 31 | "d": "\ud835\udced", 32 | "e": "\ud835\udcee", 33 | "f": "\ud835\udcef", 34 | "g": "\ud835\udcf0", 35 | "h": "\ud835\udcf1", 36 | "i": "\ud835\udcf2", 37 | "j": "\ud835\udcf3", 38 | "k": "\ud835\udcf4", 39 | "l": "\ud835\udcf5", 40 | "m": "\ud835\udcf6", 41 | "n": "\ud835\udcf7", 42 | "o": "\ud835\udcf8", 43 | "p": "\ud835\udcf9", 44 | "q": "\ud835\udcfa", 45 | "r": "\ud835\udcfb", 46 | "s": "\ud835\udcfc", 47 | "t": "\ud835\udcfd", 48 | "u": "\ud835\udcfe", 49 | "v": "\ud835\udcff", 50 | "w": "\ud835\udd00", 51 | "x": "\ud835\udd01", 52 | "y": "\ud835\udd02", 53 | "z": "\ud835\udd03" 54 | } -------------------------------------------------------------------------------- /prettype/fonts/Calligraphy-Normal.json: -------------------------------------------------------------------------------- 1 | { 2 | "A": "\ud835\udc9c", 3 | "B": "\u212c", 4 | "C": "\ud835\udc9e", 5 | "D": "\ud835\udc9f", 6 | "E": "\u2130", 7 | "F": "\u2131", 8 | "G": "\ud835\udca2", 9 | "H": "\u210b", 10 | "I": "\u2110", 11 | "J": "\ud835\udca5", 12 | "K": "\ud835\udca6", 13 | "L": "\u2112", 14 | "M": "\u2133", 15 | "N": "\ud835\udca9", 16 | "O": "\ud835\udcaa", 17 | "P": "\ud835\udcab", 18 | "Q": "\ud835\udcac", 19 | "R": "\u211b", 20 | "S": "\ud835\udcae", 21 | "T": "\ud835\udcaf", 22 | "U": "\ud835\udcb0", 23 | "V": "\ud835\udcb1", 24 | "W": "\ud835\udcb2", 25 | "X": "\ud835\udcb3", 26 | "Y": "\ud835\udcb4", 27 | "Z": "\ud835\udcb5", 28 | "a": "\ud835\udcb6", 29 | "b": "\ud835\udcb7", 30 | "c": "\ud835\udcb8", 31 | "d": "\ud835\udcb9", 32 | "e": "\u212f", 33 | "f": "\ud835\udcbb", 34 | "g": "\u210a", 35 | "h": "\ud835\udcbd", 36 | "i": "\ud835\udcbe", 37 | "j": "\ud835\udcbf", 38 | "k": "\ud835\udcc0", 39 | "l": "\ud835\udcc1", 40 | "m": "\ud835\udcc2", 41 | "n": "\ud835\udcc3", 42 | "o": "\u2134", 43 | "p": "\ud835\udcc5", 44 | "q": "\ud835\udcc6", 45 | "r": "\ud835\udcc7", 46 | "s": "\ud835\udcc8", 47 | "t": "\ud835\udcc9", 48 | "u": "\ud835\udcca", 49 | "v": "\ud835\udccb", 50 | "w": "\ud835\udccc", 51 | "x": "\ud835\udccd", 52 | "y": "\ud835\udcce", 53 | "z": "\ud835\udccf" 54 | } -------------------------------------------------------------------------------- /prettype/fonts/Circled.json: -------------------------------------------------------------------------------- 1 | { 2 | "A": "\u24b6", 3 | "B": "\u24b7", 4 | "C": "\u24b8", 5 | "D": "\u24b9", 6 | "E": "\u24ba", 7 | "F": "\u24bb", 8 | "G": "\u24bc", 9 | "H": "\u24bd", 10 | "I": "\u24be", 11 | "J": "\u24bf", 12 | "K": "\u24c0", 13 | "L": "\u24c1", 14 | "M": "\u24c2", 15 | "N": "\u24c3", 16 | "O": "\u24c4", 17 | "P": "\u24c5", 18 | "Q": "\u24c6", 19 | "R": "\u24c7", 20 | "S": "\u24c8", 21 | "T": "\u24c9", 22 | "U": "\u24ca", 23 | "V": "\u24cb", 24 | "W": "\u24cc", 25 | "X": "\u24cd", 26 | "Y": "\u24ce", 27 | "Z": "\u24cf", 28 | "a": "\u24d0", 29 | "b": "\u24d1", 30 | "c": "\u24d2", 31 | "d": "\u24d3", 32 | "e": "\u24d4", 33 | "f": "\u24d5", 34 | "g": "\u24d6", 35 | "h": "\u24d7", 36 | "i": "\u24d8", 37 | "j": "\u24d9", 38 | "k": "\u24da", 39 | "l": "\u24db", 40 | "m": "\u24dc", 41 | "n": "\u24dd", 42 | "o": "\u24de", 43 | "p": "\u24df", 44 | "q": "\u24e0", 45 | "r": "\u24e1", 46 | "s": "\u24e2", 47 | "t": "\u24e3", 48 | "u": "\u24e4", 49 | "v": "\u24e5", 50 | "w": "\u24e6", 51 | "x": "\u24e7", 52 | "y": "\u24e8", 53 | "z": "\u24e9", 54 | "0": "\u24ea", 55 | "1": "\u2460", 56 | "2": "\u2461", 57 | "3": "\u2462", 58 | "4": "\u2463", 59 | "5": "\u2464", 60 | "6": "\u2465", 61 | "7": "\u2466", 62 | "8": "\u2467", 63 | "9": "\u2468" 64 | } -------------------------------------------------------------------------------- /prettype/fonts/Double-Struck.json: -------------------------------------------------------------------------------- 1 | { 2 | "A": "\ud835\udd38", 3 | "B": "\ud835\udd39", 4 | "C": "\u2102", 5 | "D": "\ud835\udd3b", 6 | "E": "\ud835\udd3c", 7 | "F": "\ud835\udd3d", 8 | "G": "\ud835\udd3e", 9 | "H": "\u210d", 10 | "I": "\ud835\udd40", 11 | "J": "\ud835\udd41", 12 | "K": "\ud835\udd42", 13 | "L": "\ud835\udd43", 14 | "M": "\ud835\udd44", 15 | "N": "\u2115", 16 | "O": "\ud835\udd46", 17 | "P": "\u2119", 18 | "Q": "\u211a", 19 | "R": "\u211d", 20 | "S": "\ud835\udd4a", 21 | "T": "\ud835\udd4b", 22 | "U": "\ud835\udd4c", 23 | "V": "\ud835\udd4d", 24 | "W": "\ud835\udd4e", 25 | "X": "\ud835\udd4f", 26 | "Y": "\ud835\udd50", 27 | "Z": "\u2124", 28 | "a": "\ud835\udd52", 29 | "b": "\ud835\udd53", 30 | "c": "\ud835\udd54", 31 | "d": "\ud835\udd55", 32 | "e": "\ud835\udd56", 33 | "f": "\ud835\udd57", 34 | "g": "\ud835\udd58", 35 | "h": "\ud835\udd59", 36 | "i": "\ud835\udd5a", 37 | "j": "\ud835\udd5b", 38 | "k": "\ud835\udd5c", 39 | "l": "\ud835\udd5d", 40 | "m": "\ud835\udd5e", 41 | "n": "\ud835\udd5f", 42 | "o": "\ud835\udd60", 43 | "p": "\ud835\udd61", 44 | "q": "\ud835\udd62", 45 | "r": "\ud835\udd63", 46 | "s": "\ud835\udd64", 47 | "t": "\ud835\udd65", 48 | "u": "\ud835\udd66", 49 | "v": "\ud835\udd67", 50 | "w": "\ud835\udd68", 51 | "x": "\ud835\udd69", 52 | "y": "\ud835\udd6a", 53 | "z": "\ud835\udd6b", 54 | "0": "\ud835\udfd8", 55 | "1": "\ud835\udfd9", 56 | "2": "\ud835\udfda", 57 | "3": "\ud835\udfdb", 58 | "4": "\ud835\udfdc", 59 | "5": "\ud835\udfdd", 60 | "6": "\ud835\udfde", 61 | "7": "\ud835\udfdf", 62 | "8": "\ud835\udfe0", 63 | "9": "\ud835\udfe1" 64 | } -------------------------------------------------------------------------------- /prettype/fonts/Fraktur-Bold.json: -------------------------------------------------------------------------------- 1 | { 2 | "A": "\ud835\udd6c", 3 | "B": "\ud835\udd6d", 4 | "C": "\ud835\udd6e", 5 | "D": "\ud835\udd6f", 6 | "E": "\ud835\udd70", 7 | "F": "\ud835\udd71", 8 | "G": "\ud835\udd72", 9 | "H": "\ud835\udd73", 10 | "I": "\ud835\udd74", 11 | "J": "\ud835\udd75", 12 | "K": "\ud835\udd76", 13 | "L": "\ud835\udd77", 14 | "M": "\ud835\udd78", 15 | "N": "\ud835\udd79", 16 | "O": "\ud835\udd7a", 17 | "P": "\ud835\udd7b", 18 | "Q": "\ud835\udd7c", 19 | "R": "\ud835\udd7d", 20 | "S": "\ud835\udd7e", 21 | "T": "\ud835\udd7f", 22 | "U": "\ud835\udd80", 23 | "V": "\ud835\udd81", 24 | "W": "\ud835\udd82", 25 | "X": "\ud835\udd83", 26 | "Y": "\ud835\udd84", 27 | "Z": "\ud835\udd85", 28 | "a": "\ud835\udd86", 29 | "b": "\ud835\udd87", 30 | "c": "\ud835\udd88", 31 | "d": "\ud835\udd89", 32 | "e": "\ud835\udd8a", 33 | "f": "\ud835\udd8b", 34 | "g": "\ud835\udd8c", 35 | "h": "\ud835\udd8d", 36 | "i": "\ud835\udd8e", 37 | "j": "\ud835\udd8f", 38 | "k": "\ud835\udd90", 39 | "l": "\ud835\udd91", 40 | "m": "\ud835\udd92", 41 | "n": "\ud835\udd93", 42 | "o": "\ud835\udd94", 43 | "p": "\ud835\udd95", 44 | "q": "\ud835\udd96", 45 | "r": "\ud835\udd97", 46 | "s": "\ud835\udd98", 47 | "t": "\ud835\udd99", 48 | "u": "\ud835\udd9a", 49 | "v": "\ud835\udd9b", 50 | "w": "\ud835\udd9c", 51 | "x": "\ud835\udd9d", 52 | "y": "\ud835\udd9e", 53 | "z": "\ud835\udd9f" 54 | } -------------------------------------------------------------------------------- /prettype/fonts/Fraktur-Normal.json: -------------------------------------------------------------------------------- 1 | { 2 | "A": "\ud835\udd04", 3 | "B": "\ud835\udd05", 4 | "C": "\u212d", 5 | "D": "\ud835\udd07", 6 | "E": "\ud835\udd08", 7 | "F": "\ud835\udd09", 8 | "G": "\ud835\udd0a", 9 | "H": "\u210c", 10 | "I": "\u2111", 11 | "J": "\ud835\udd0d", 12 | "K": "\ud835\udd0e", 13 | "L": "\ud835\udd0f", 14 | "M": "\ud835\udd10", 15 | "N": "\ud835\udd11", 16 | "O": "\ud835\udd12", 17 | "P": "\ud835\udd13", 18 | "Q": "\ud835\udd14", 19 | "R": "\u211c", 20 | "S": "\ud835\udd16", 21 | "T": "\ud835\udd17", 22 | "U": "\ud835\udd18", 23 | "V": "\ud835\udd19", 24 | "W": "\ud835\udd1a", 25 | "X": "\ud835\udd1b", 26 | "Y": "\ud835\udd1c", 27 | "Z": "\u2128", 28 | "a": "\ud835\udd1e", 29 | "b": "\ud835\udd1f", 30 | "c": "\ud835\udd20", 31 | "d": "\ud835\udd21", 32 | "e": "\ud835\udd22", 33 | "f": "\ud835\udd23", 34 | "g": "\ud835\udd24", 35 | "h": "\ud835\udd25", 36 | "i": "\ud835\udd26", 37 | "j": "\ud835\udd27", 38 | "k": "\ud835\udd28", 39 | "l": "\ud835\udd29", 40 | "m": "\ud835\udd2a", 41 | "n": "\ud835\udd2b", 42 | "o": "\ud835\udd2c", 43 | "p": "\ud835\udd2d", 44 | "q": "\ud835\udd2e", 45 | "r": "\ud835\udd2f", 46 | "s": "\ud835\udd30", 47 | "t": "\ud835\udd31", 48 | "u": "\ud835\udd32", 49 | "v": "\ud835\udd33", 50 | "w": "\ud835\udd34", 51 | "x": "\ud835\udd35", 52 | "y": "\ud835\udd36", 53 | "z": "\ud835\udd37" 54 | } -------------------------------------------------------------------------------- /prettype/fonts/Inverse-Circled.json: -------------------------------------------------------------------------------- 1 | { 2 | "A": "\ud83c\udd50", 3 | "B": "\ud83c\udd51", 4 | "C": "\ud83c\udd52", 5 | "D": "\ud83c\udd53", 6 | "E": "\ud83c\udd54", 7 | "F": "\ud83c\udd55", 8 | "G": "\ud83c\udd56", 9 | "H": "\ud83c\udd57", 10 | "I": "\ud83c\udd58", 11 | "J": "\ud83c\udd59", 12 | "K": "\ud83c\udd5a", 13 | "L": "\ud83c\udd5b", 14 | "M": "\ud83c\udd5c", 15 | "N": "\ud83c\udd5d", 16 | "O": "\ud83c\udd5e", 17 | "P": "\ud83c\udd5f", 18 | "Q": "\ud83c\udd60", 19 | "R": "\ud83c\udd61", 20 | "S": "\ud83c\udd62", 21 | "T": "\ud83c\udd63", 22 | "U": "\ud83c\udd64", 23 | "V": "\ud83c\udd65", 24 | "W": "\ud83c\udd66", 25 | "X": "\ud83c\udd67", 26 | "Y": "\ud83c\udd68", 27 | "Z": "\ud83c\udd69", 28 | "a": "\ud83c\udd50", 29 | "b": "\ud83c\udd51", 30 | "c": "\ud83c\udd52", 31 | "d": "\ud83c\udd53", 32 | "e": "\ud83c\udd54", 33 | "f": "\ud83c\udd55", 34 | "g": "\ud83c\udd56", 35 | "h": "\ud83c\udd57", 36 | "i": "\ud83c\udd58", 37 | "j": "\ud83c\udd59", 38 | "k": "\ud83c\udd5a", 39 | "l": "\ud83c\udd5b", 40 | "m": "\ud83c\udd5c", 41 | "n": "\ud83c\udd5d", 42 | "o": "\ud83c\udd5e", 43 | "p": "\ud83c\udd5f", 44 | "q": "\ud83c\udd60", 45 | "r": "\ud83c\udd61", 46 | "s": "\ud83c\udd62", 47 | "t": "\ud83c\udd63", 48 | "u": "\ud83c\udd64", 49 | "v": "\ud83c\udd65", 50 | "w": "\ud83c\udd66", 51 | "x": "\ud83c\udd67", 52 | "y": "\ud83c\udd68", 53 | "z": "\ud83c\udd69", 54 | "0": "\u24ff", 55 | "1": "\u2776", 56 | "2": "\u2777", 57 | "3": "\u2778", 58 | "4": "\u2779", 59 | "5": "\u277a", 60 | "6": "\u277b", 61 | "7": "\u277c", 62 | "8": "\u277d", 63 | "9": "\u277e" 64 | } -------------------------------------------------------------------------------- /prettype/fonts/Inverse-Squared.json: -------------------------------------------------------------------------------- 1 | { 2 | "A": "\ud83c\udd70", 3 | "B": "\ud83c\udd71", 4 | "C": "\ud83c\udd72", 5 | "D": "\ud83c\udd73", 6 | "E": "\ud83c\udd74", 7 | "F": "\ud83c\udd75", 8 | "G": "\ud83c\udd76", 9 | "H": "\ud83c\udd77", 10 | "I": "\ud83c\udd78", 11 | "J": "\ud83c\udd79", 12 | "K": "\ud83c\udd7a", 13 | "L": "\ud83c\udd7b", 14 | "M": "\ud83c\udd7c", 15 | "N": "\ud83c\udd7d", 16 | "O": "\ud83c\udd7e", 17 | "P": "\ud83c\udd7f", 18 | "Q": "\ud83c\udd80", 19 | "R": "\ud83c\udd81", 20 | "S": "\ud83c\udd82", 21 | "T": "\ud83c\udd83", 22 | "U": "\ud83c\udd84", 23 | "V": "\ud83c\udd85", 24 | "W": "\ud83c\udd86", 25 | "X": "\ud83c\udd87", 26 | "Y": "\ud83c\udd88", 27 | "Z": "\ud83c\udd89", 28 | "a": "\ud83c\udd70", 29 | "b": "\ud83c\udd71", 30 | "c": "\ud83c\udd72", 31 | "d": "\ud83c\udd73", 32 | "e": "\ud83c\udd74", 33 | "f": "\ud83c\udd75", 34 | "g": "\ud83c\udd76", 35 | "h": "\ud83c\udd77", 36 | "i": "\ud83c\udd78", 37 | "j": "\ud83c\udd79", 38 | "k": "\ud83c\udd7a", 39 | "l": "\ud83c\udd7b", 40 | "m": "\ud83c\udd7c", 41 | "n": "\ud83c\udd7d", 42 | "o": "\ud83c\udd7e", 43 | "p": "\ud83c\udd7f", 44 | "q": "\ud83c\udd80", 45 | "r": "\ud83c\udd81", 46 | "s": "\ud83c\udd82", 47 | "t": "\ud83c\udd83", 48 | "u": "\ud83c\udd84", 49 | "v": "\ud83c\udd85", 50 | "w": "\ud83c\udd86", 51 | "x": "\ud83c\udd87", 52 | "y": "\ud83c\udd88", 53 | "z": "\ud83c\udd89", 54 | "0": "0", 55 | "1": "1", 56 | "2": "2", 57 | "3": "3", 58 | "4": "4", 59 | "5": "5", 60 | "6": "6", 61 | "7": "7", 62 | "8": "8", 63 | "9": "9" 64 | } -------------------------------------------------------------------------------- /prettype/fonts/Monospace.json: -------------------------------------------------------------------------------- 1 | { 2 | "A": "\ud835\ude70", 3 | "B": "\ud835\ude71", 4 | "C": "\ud835\ude72", 5 | "D": "\ud835\ude73", 6 | "E": "\ud835\ude74", 7 | "F": "\ud835\ude75", 8 | "G": "\ud835\ude76", 9 | "H": "\ud835\ude77", 10 | "I": "\ud835\ude78", 11 | "J": "\ud835\ude79", 12 | "K": "\ud835\ude7a", 13 | "L": "\ud835\ude7b", 14 | "M": "\ud835\ude7c", 15 | "N": "\ud835\ude7d", 16 | "O": "\ud835\ude7e", 17 | "P": "\ud835\ude7f", 18 | "Q": "\ud835\ude80", 19 | "R": "\ud835\ude81", 20 | "S": "\ud835\ude82", 21 | "T": "\ud835\ude83", 22 | "U": "\ud835\ude84", 23 | "V": "\ud835\ude85", 24 | "W": "\ud835\ude86", 25 | "X": "\ud835\ude87", 26 | "Y": "\ud835\ude88", 27 | "Z": "\ud835\ude89", 28 | "a": "\ud835\ude8a", 29 | "b": "\ud835\ude8b", 30 | "c": "\ud835\ude8c", 31 | "d": "\ud835\ude8d", 32 | "e": "\ud835\ude8e", 33 | "f": "\ud835\ude8f", 34 | "g": "\ud835\ude90", 35 | "h": "\ud835\ude91", 36 | "i": "\ud835\ude92", 37 | "j": "\ud835\ude93", 38 | "k": "\ud835\ude94", 39 | "l": "\ud835\ude95", 40 | "m": "\ud835\ude96", 41 | "n": "\ud835\ude97", 42 | "o": "\ud835\ude98", 43 | "p": "\ud835\ude99", 44 | "q": "\ud835\ude9a", 45 | "r": "\ud835\ude9b", 46 | "s": "\ud835\ude9c", 47 | "t": "\ud835\ude9d", 48 | "u": "\ud835\ude9e", 49 | "v": "\ud835\ude9f", 50 | "w": "\ud835\udea0", 51 | "x": "\ud835\udea1", 52 | "y": "\ud835\udea2", 53 | "z": "\ud835\udea3", 54 | "0": "\ud835\udff6", 55 | "1": "\ud835\udff7", 56 | "2": "\ud835\udff8", 57 | "3": "\ud835\udff9", 58 | "4": "\ud835\udffa", 59 | "5": "\ud835\udffb", 60 | "6": "\ud835\udffc", 61 | "7": "\ud835\udffd", 62 | "8": "\ud835\udffe", 63 | "9": "\ud835\udfff" 64 | } -------------------------------------------------------------------------------- /prettype/fonts/Paranthesized.json: -------------------------------------------------------------------------------- 1 | { 2 | "A": "\u249c", 3 | "B": "\u249d", 4 | "C": "\u249e", 5 | "D": "\u249f", 6 | "E": "\u24a0", 7 | "F": "\u24a1", 8 | "G": "\u24a2", 9 | "H": "\u24a3", 10 | "I": "\u24a4", 11 | "J": "\u24a5", 12 | "K": "\u24a6", 13 | "L": "\u24a7", 14 | "M": "\u24a8", 15 | "N": "\u24a9", 16 | "O": "\u24aa", 17 | "P": "\u24ab", 18 | "Q": "\u24ac", 19 | "R": "\u24ad", 20 | "S": "\u24ae", 21 | "T": "\u24af", 22 | "U": "\u24b0", 23 | "V": "\u24b1", 24 | "W": "\u24b2", 25 | "X": "\u24b3", 26 | "Y": "\u24b4", 27 | "Z": "\u24b5", 28 | "a": "\u249c", 29 | "b": "\u249d", 30 | "c": "\u249e", 31 | "d": "\u249f", 32 | "e": "\u24a0", 33 | "f": "\u24a1", 34 | "g": "\u24a2", 35 | "h": "\u24a3", 36 | "i": "\u24a4", 37 | "j": "\u24a5", 38 | "k": "\u24a6", 39 | "l": "\u24a7", 40 | "m": "\u24a8", 41 | "n": "\u24a9", 42 | "o": "\u24aa", 43 | "p": "\u24ab", 44 | "q": "\u24ac", 45 | "r": "\u24ad", 46 | "s": "\u24ae", 47 | "t": "\u24af", 48 | "u": "\u24b0", 49 | "v": "\u24b1", 50 | "w": "\u24b2", 51 | "x": "\u24b3", 52 | "y": "\u24b4", 53 | "z": "\u24b5", 54 | "0": "\u24aa", 55 | "1": "\u2474", 56 | "2": "\u2475", 57 | "3": "\u2476", 58 | "4": "\u2477", 59 | "5": "\u2478", 60 | "6": "\u2479", 61 | "7": "\u247a", 62 | "8": "\u247b", 63 | "9": "\u247c" 64 | } -------------------------------------------------------------------------------- /prettype/fonts/Sans-Serif-Bold-Italic.json: -------------------------------------------------------------------------------- 1 | { 2 | "A": "\ud835\ude3c", 3 | "B": "\ud835\ude3d", 4 | "C": "\ud835\ude3e", 5 | "D": "\ud835\ude3f", 6 | "E": "\ud835\ude40", 7 | "F": "\ud835\ude41", 8 | "G": "\ud835\ude42", 9 | "H": "\ud835\ude43", 10 | "I": "\ud835\ude44", 11 | "J": "\ud835\ude45", 12 | "K": "\ud835\ude46", 13 | "L": "\ud835\ude47", 14 | "M": "\ud835\ude48", 15 | "N": "\ud835\ude49", 16 | "O": "\ud835\ude4a", 17 | "P": "\ud835\ude4b", 18 | "Q": "\ud835\ude4c", 19 | "R": "\ud835\ude4d", 20 | "S": "\ud835\ude4e", 21 | "T": "\ud835\ude4f", 22 | "U": "\ud835\ude50", 23 | "V": "\ud835\ude51", 24 | "W": "\ud835\ude52", 25 | "X": "\ud835\ude53", 26 | "Y": "\ud835\ude54", 27 | "Z": "\ud835\ude55", 28 | "a": "\ud835\ude56", 29 | "b": "\ud835\ude57", 30 | "c": "\ud835\ude58", 31 | "d": "\ud835\ude59", 32 | "e": "\ud835\ude5a", 33 | "f": "\ud835\ude5b", 34 | "g": "\ud835\ude5c", 35 | "h": "\ud835\ude5d", 36 | "i": "\ud835\ude5e", 37 | "j": "\ud835\ude5f", 38 | "k": "\ud835\ude60", 39 | "l": "\ud835\ude61", 40 | "m": "\ud835\ude62", 41 | "n": "\ud835\ude63", 42 | "o": "\ud835\ude64", 43 | "p": "\ud835\ude65", 44 | "q": "\ud835\ude66", 45 | "r": "\ud835\ude67", 46 | "s": "\ud835\ude68", 47 | "t": "\ud835\ude69", 48 | "u": "\ud835\ude6a", 49 | "v": "\ud835\ude6b", 50 | "w": "\ud835\ude6c", 51 | "x": "\ud835\ude6d", 52 | "y": "\ud835\ude6e", 53 | "z": "\ud835\ude6f" 54 | } -------------------------------------------------------------------------------- /prettype/fonts/Sans-Serif-Bold.json: -------------------------------------------------------------------------------- 1 | { 2 | "A": "\ud835\uddd4", 3 | "B": "\ud835\uddd5", 4 | "C": "\ud835\uddd6", 5 | "D": "\ud835\uddd7", 6 | "E": "\ud835\uddd8", 7 | "F": "\ud835\uddd9", 8 | "G": "\ud835\uddda", 9 | "H": "\ud835\udddb", 10 | "I": "\ud835\udddc", 11 | "J": "\ud835\udddd", 12 | "K": "\ud835\uddde", 13 | "L": "\ud835\udddf", 14 | "M": "\ud835\udde0", 15 | "N": "\ud835\udde1", 16 | "O": "\ud835\udde2", 17 | "P": "\ud835\udde3", 18 | "Q": "\ud835\udde4", 19 | "R": "\ud835\udde5", 20 | "S": "\ud835\udde6", 21 | "T": "\ud835\udde7", 22 | "U": "\ud835\udde8", 23 | "V": "\ud835\udde9", 24 | "W": "\ud835\uddea", 25 | "X": "\ud835\uddeb", 26 | "Y": "\ud835\uddec", 27 | "Z": "\ud835\udded", 28 | "a": "\ud835\uddee", 29 | "b": "\ud835\uddef", 30 | "c": "\ud835\uddf0", 31 | "d": "\ud835\uddf1", 32 | "e": "\ud835\uddf2", 33 | "f": "\ud835\uddf3", 34 | "g": "\ud835\uddf4", 35 | "h": "\ud835\uddf5", 36 | "i": "\ud835\uddf6", 37 | "j": "\ud835\uddf7", 38 | "k": "\ud835\uddf8", 39 | "l": "\ud835\uddf9", 40 | "m": "\ud835\uddfa", 41 | "n": "\ud835\uddfb", 42 | "o": "\ud835\uddfc", 43 | "p": "\ud835\uddfd", 44 | "q": "\ud835\uddfe", 45 | "r": "\ud835\uddff", 46 | "s": "\ud835\ude00", 47 | "t": "\ud835\ude01", 48 | "u": "\ud835\ude02", 49 | "v": "\ud835\ude03", 50 | "w": "\ud835\ude04", 51 | "x": "\ud835\ude05", 52 | "y": "\ud835\ude06", 53 | "z": "\ud835\ude07", 54 | "0": "\ud835\udfec", 55 | "1": "\ud835\udfed", 56 | "2": "\ud835\udfee", 57 | "3": "\ud835\udfef", 58 | "4": "\ud835\udff0", 59 | "5": "\ud835\udff1", 60 | "6": "\ud835\udff2", 61 | "7": "\ud835\udff3", 62 | "8": "\ud835\udff4", 63 | "9": "\ud835\udff5" 64 | } -------------------------------------------------------------------------------- /prettype/fonts/Sans-Serif-Italic.json: -------------------------------------------------------------------------------- 1 | { 2 | "A": "\ud835\ude08", 3 | "B": "\ud835\ude09", 4 | "C": "\ud835\ude0a", 5 | "D": "\ud835\ude0b", 6 | "E": "\ud835\ude0c", 7 | "F": "\ud835\ude0d", 8 | "G": "\ud835\ude0e", 9 | "H": "\ud835\ude0f", 10 | "I": "\ud835\ude10", 11 | "J": "\ud835\ude11", 12 | "K": "\ud835\ude12", 13 | "L": "\ud835\ude13", 14 | "M": "\ud835\ude14", 15 | "N": "\ud835\ude15", 16 | "O": "\ud835\ude16", 17 | "P": "\ud835\ude17", 18 | "Q": "\ud835\ude18", 19 | "R": "\ud835\ude19", 20 | "S": "\ud835\ude1a", 21 | "T": "\ud835\ude1b", 22 | "U": "\ud835\ude1c", 23 | "V": "\ud835\ude1d", 24 | "W": "\ud835\ude1e", 25 | "X": "\ud835\ude1f", 26 | "Y": "\ud835\ude20", 27 | "Z": "\ud835\ude21", 28 | "a": "\ud835\ude22", 29 | "b": "\ud835\ude23", 30 | "c": "\ud835\ude24", 31 | "d": "\ud835\ude25", 32 | "e": "\ud835\ude26", 33 | "f": "\ud835\ude27", 34 | "g": "\ud835\ude28", 35 | "h": "\ud835\ude29", 36 | "i": "\ud835\ude2a", 37 | "j": "\ud835\ude2b", 38 | "k": "\ud835\ude2c", 39 | "l": "\ud835\ude2d", 40 | "m": "\ud835\ude2e", 41 | "n": "\ud835\ude2f", 42 | "o": "\ud835\ude30", 43 | "p": "\ud835\ude31", 44 | "q": "\ud835\ude32", 45 | "r": "\ud835\ude33", 46 | "s": "\ud835\ude34", 47 | "t": "\ud835\ude35", 48 | "u": "\ud835\ude36", 49 | "v": "\ud835\ude37", 50 | "w": "\ud835\ude38", 51 | "x": "\ud835\ude39", 52 | "y": "\ud835\ude3a", 53 | "z": "\ud835\ude3b" 54 | } -------------------------------------------------------------------------------- /prettype/fonts/Sans-Serif-Normal.json: -------------------------------------------------------------------------------- 1 | { 2 | "A": "\ud835\udda0", 3 | "B": "\ud835\udda1", 4 | "C": "\ud835\udda2", 5 | "D": "\ud835\udda3", 6 | "E": "\ud835\udda4", 7 | "F": "\ud835\udda5", 8 | "G": "\ud835\udda6", 9 | "H": "\ud835\udda7", 10 | "I": "\ud835\udda8", 11 | "J": "\ud835\udda9", 12 | "K": "\ud835\uddaa", 13 | "L": "\ud835\uddab", 14 | "M": "\ud835\uddac", 15 | "N": "\ud835\uddad", 16 | "O": "\ud835\uddae", 17 | "P": "\ud835\uddaf", 18 | "Q": "\ud835\uddb0", 19 | "R": "\ud835\uddb1", 20 | "S": "\ud835\uddb2", 21 | "T": "\ud835\uddb3", 22 | "U": "\ud835\uddb4", 23 | "V": "\ud835\uddb5", 24 | "W": "\ud835\uddb6", 25 | "X": "\ud835\uddb7", 26 | "Y": "\ud835\uddb8", 27 | "Z": "\ud835\uddb9", 28 | "a": "\ud835\uddba", 29 | "b": "\ud835\uddbb", 30 | "c": "\ud835\uddbc", 31 | "d": "\ud835\uddbd", 32 | "e": "\ud835\uddbe", 33 | "f": "\ud835\uddbf", 34 | "g": "\ud835\uddc0", 35 | "h": "\ud835\uddc1", 36 | "i": "\ud835\uddc2", 37 | "j": "\ud835\uddc3", 38 | "k": "\ud835\uddc4", 39 | "l": "\ud835\uddc5", 40 | "m": "\ud835\uddc6", 41 | "n": "\ud835\uddc7", 42 | "o": "\ud835\uddc8", 43 | "p": "\ud835\uddc9", 44 | "q": "\ud835\uddca", 45 | "r": "\ud835\uddcb", 46 | "s": "\ud835\uddcc", 47 | "t": "\ud835\uddcd", 48 | "u": "\ud835\uddce", 49 | "v": "\ud835\uddcf", 50 | "w": "\ud835\uddd0", 51 | "x": "\ud835\uddd1", 52 | "y": "\ud835\uddd2", 53 | "z": "\ud835\uddd3", 54 | "0": "\ud835\udfe2", 55 | "1": "\ud835\udfe3", 56 | "2": "\ud835\udfe4", 57 | "3": "\ud835\udfe5", 58 | "4": "\ud835\udfe6", 59 | "5": "\ud835\udfe7", 60 | "6": "\ud835\udfe8", 61 | "7": "\ud835\udfe9", 62 | "8": "\ud835\udfea", 63 | "9": "\ud835\udfeb" 64 | } -------------------------------------------------------------------------------- /prettype/fonts/Serif-Bold-Italic.json: -------------------------------------------------------------------------------- 1 | { 2 | "A": "\ud835\udc68", 3 | "B": "\ud835\udc69", 4 | "C": "\ud835\udc6a", 5 | "D": "\ud835\udc6b", 6 | "E": "\ud835\udc6c", 7 | "F": "\ud835\udc6d", 8 | "G": "\ud835\udc6e", 9 | "H": "\ud835\udc6f", 10 | "I": "\ud835\udc70", 11 | "J": "\ud835\udc71", 12 | "K": "\ud835\udc72", 13 | "L": "\ud835\udc73", 14 | "M": "\ud835\udc74", 15 | "N": "\ud835\udc75", 16 | "O": "\ud835\udc76", 17 | "P": "\ud835\udc77", 18 | "Q": "\ud835\udc78", 19 | "R": "\ud835\udc79", 20 | "S": "\ud835\udc7a", 21 | "T": "\ud835\udc7b", 22 | "U": "\ud835\udc7c", 23 | "V": "\ud835\udc7d", 24 | "W": "\ud835\udc7e", 25 | "X": "\ud835\udc7f", 26 | "Y": "\ud835\udc80", 27 | "Z": "\ud835\udc81", 28 | "a": "\ud835\udc82", 29 | "b": "\ud835\udc83", 30 | "c": "\ud835\udc84", 31 | "d": "\ud835\udc85", 32 | "e": "\ud835\udc86", 33 | "f": "\ud835\udc87", 34 | "g": "\ud835\udc88", 35 | "h": "\ud835\udc89", 36 | "i": "\ud835\udc8a", 37 | "j": "\ud835\udc8b", 38 | "k": "\ud835\udc8c", 39 | "l": "\ud835\udc8d", 40 | "m": "\ud835\udc8e", 41 | "n": "\ud835\udc8f", 42 | "o": "\ud835\udc90", 43 | "p": "\ud835\udc91", 44 | "q": "\ud835\udc92", 45 | "r": "\ud835\udc93", 46 | "s": "\ud835\udc94", 47 | "t": "\ud835\udc95", 48 | "u": "\ud835\udc96", 49 | "v": "\ud835\udc97", 50 | "w": "\ud835\udc98", 51 | "x": "\ud835\udc99", 52 | "y": "\ud835\udc9a", 53 | "z": "\ud835\udc9b" 54 | } -------------------------------------------------------------------------------- /prettype/fonts/Serif-Bold.json: -------------------------------------------------------------------------------- 1 | { 2 | "A": "\ud835\udc00", 3 | "B": "\ud835\udc01", 4 | "C": "\ud835\udc02", 5 | "D": "\ud835\udc03", 6 | "E": "\ud835\udc04", 7 | "F": "\ud835\udc05", 8 | "G": "\ud835\udc06", 9 | "H": "\ud835\udc07", 10 | "I": "\ud835\udc08", 11 | "J": "\ud835\udc09", 12 | "K": "\ud835\udc0a", 13 | "L": "\ud835\udc0b", 14 | "M": "\ud835\udc0c", 15 | "N": "\ud835\udc0d", 16 | "O": "\ud835\udc0e", 17 | "P": "\ud835\udc0f", 18 | "Q": "\ud835\udc10", 19 | "R": "\ud835\udc11", 20 | "S": "\ud835\udc12", 21 | "T": "\ud835\udc13", 22 | "U": "\ud835\udc14", 23 | "V": "\ud835\udc15", 24 | "W": "\ud835\udc16", 25 | "X": "\ud835\udc17", 26 | "Y": "\ud835\udc18", 27 | "Z": "\ud835\udc19", 28 | "a": "\ud835\udc1a", 29 | "b": "\ud835\udc1b", 30 | "c": "\ud835\udc1c", 31 | "d": "\ud835\udc1d", 32 | "e": "\ud835\udc1e", 33 | "f": "\ud835\udc1f", 34 | "g": "\ud835\udc20", 35 | "h": "\ud835\udc21", 36 | "i": "\ud835\udc22", 37 | "j": "\ud835\udc23", 38 | "k": "\ud835\udc24", 39 | "l": "\ud835\udc25", 40 | "m": "\ud835\udc26", 41 | "n": "\ud835\udc27", 42 | "o": "\ud835\udc28", 43 | "p": "\ud835\udc29", 44 | "q": "\ud835\udc2a", 45 | "r": "\ud835\udc2b", 46 | "s": "\ud835\udc2c", 47 | "t": "\ud835\udc2d", 48 | "u": "\ud835\udc2e", 49 | "v": "\ud835\udc2f", 50 | "w": "\ud835\udc30", 51 | "x": "\ud835\udc31", 52 | "y": "\ud835\udc32", 53 | "z": "\ud835\udc33", 54 | "0": "\ud835\udfce", 55 | "1": "\ud835\udfcf", 56 | "2": "\ud835\udfd0", 57 | "3": "\ud835\udfd1", 58 | "4": "\ud835\udfd2", 59 | "5": "\ud835\udfd3", 60 | "6": "\ud835\udfd4", 61 | "7": "\ud835\udfd5", 62 | "8": "\ud835\udfd6", 63 | "9": "\ud835\udfd7" 64 | } -------------------------------------------------------------------------------- /prettype/fonts/Serif-Italic.json: -------------------------------------------------------------------------------- 1 | { 2 | "A": "\ud835\udc34", 3 | "B": "\ud835\udc35", 4 | "C": "\ud835\udc36", 5 | "D": "\ud835\udc37", 6 | "E": "\ud835\udc38", 7 | "F": "\ud835\udc39", 8 | "G": "\ud835\udc3a", 9 | "H": "\ud835\udc3b", 10 | "I": "\ud835\udc3c", 11 | "J": "\ud835\udc3d", 12 | "K": "\ud835\udc3e", 13 | "L": "\ud835\udc3f", 14 | "M": "\ud835\udc40", 15 | "N": "\ud835\udc41", 16 | "O": "\ud835\udc42", 17 | "P": "\ud835\udc43", 18 | "Q": "\ud835\udc44", 19 | "R": "\ud835\udc45", 20 | "S": "\ud835\udc46", 21 | "T": "\ud835\udc47", 22 | "U": "\ud835\udc48", 23 | "V": "\ud835\udc49", 24 | "W": "\ud835\udc4a", 25 | "X": "\ud835\udc4b", 26 | "Y": "\ud835\udc4c", 27 | "Z": "\ud835\udc4d", 28 | "a": "\ud835\udc4e", 29 | "b": "\ud835\udc4f", 30 | "c": "\ud835\udc50", 31 | "d": "\ud835\udc51", 32 | "e": "\ud835\udc52", 33 | "f": "\ud835\udc53", 34 | "g": "\ud835\udc54", 35 | "h": "\u210e", 36 | "i": "\ud835\udc56", 37 | "j": "\ud835\udc57", 38 | "k": "\ud835\udc58", 39 | "l": "\ud835\udc59", 40 | "m": "\ud835\udc5a", 41 | "n": "\ud835\udc5b", 42 | "o": "\ud835\udc5c", 43 | "p": "\ud835\udc5d", 44 | "q": "\ud835\udc5e", 45 | "r": "\ud835\udc5f", 46 | "s": "\ud835\udc60", 47 | "t": "\ud835\udc61", 48 | "u": "\ud835\udc62", 49 | "v": "\ud835\udc63", 50 | "w": "\ud835\udc64", 51 | "x": "\ud835\udc65", 52 | "y": "\ud835\udc66", 53 | "z": "\ud835\udc67" 54 | } -------------------------------------------------------------------------------- /prettype/fonts/Serif-Normal.json: -------------------------------------------------------------------------------- 1 | { 2 | "A": "A", 3 | "B": "B", 4 | "C": "C", 5 | "D": "D", 6 | "E": "E", 7 | "F": "F", 8 | "G": "G", 9 | "H": "H", 10 | "I": "I", 11 | "J": "J", 12 | "K": "K", 13 | "L": "L", 14 | "M": "M", 15 | "N": "N", 16 | "O": "O", 17 | "P": "P", 18 | "Q": "Q", 19 | "R": "R", 20 | "S": "S", 21 | "T": "T", 22 | "U": "U", 23 | "V": "V", 24 | "W": "W", 25 | "X": "X", 26 | "Y": "Y", 27 | "Z": "Z", 28 | "a": "a", 29 | "b": "b", 30 | "c": "c", 31 | "d": "d", 32 | "e": "e", 33 | "f": "f", 34 | "g": "g", 35 | "h": "h", 36 | "i": "i", 37 | "j": "j", 38 | "k": "k", 39 | "l": "l", 40 | "m": "m", 41 | "n": "n", 42 | "o": "o", 43 | "p": "p", 44 | "q": "q", 45 | "r": "r", 46 | "s": "s", 47 | "t": "t", 48 | "u": "u", 49 | "v": "v", 50 | "w": "w", 51 | "x": "x", 52 | "y": "y", 53 | "z": "z", 54 | "0": "0", 55 | "1": "1", 56 | "2": "2", 57 | "3": "3", 58 | "4": "4", 59 | "5": "5", 60 | "6": "6", 61 | "7": "7", 62 | "8": "8", 63 | "9": "9" 64 | } -------------------------------------------------------------------------------- /prettype/fonts/Squared.json: -------------------------------------------------------------------------------- 1 | { 2 | "A": "\ud83c\udd30", 3 | "B": "\ud83c\udd31", 4 | "C": "\ud83c\udd32", 5 | "D": "\ud83c\udd33", 6 | "E": "\ud83c\udd34", 7 | "F": "\ud83c\udd35", 8 | "G": "\ud83c\udd36", 9 | "H": "\ud83c\udd37", 10 | "I": "\ud83c\udd38", 11 | "J": "\ud83c\udd39", 12 | "K": "\ud83c\udd3a", 13 | "L": "\ud83c\udd3b", 14 | "M": "\ud83c\udd3c", 15 | "N": "\ud83c\udd3d", 16 | "O": "\ud83c\udd3e", 17 | "P": "\ud83c\udd3f", 18 | "Q": "\ud83c\udd40", 19 | "R": "\ud83c\udd41", 20 | "S": "\ud83c\udd42", 21 | "T": "\ud83c\udd43", 22 | "U": "\ud83c\udd44", 23 | "V": "\ud83c\udd45", 24 | "W": "\ud83c\udd46", 25 | "X": "\ud83c\udd47", 26 | "Y": "\ud83c\udd48", 27 | "Z": "\ud83c\udd49", 28 | "a": "\ud83c\udd30", 29 | "b": "\ud83c\udd31", 30 | "c": "\ud83c\udd32", 31 | "d": "\ud83c\udd33", 32 | "e": "\ud83c\udd34", 33 | "f": "\ud83c\udd35", 34 | "g": "\ud83c\udd36", 35 | "h": "\ud83c\udd37", 36 | "i": "\ud83c\udd38", 37 | "j": "\ud83c\udd39", 38 | "k": "\ud83c\udd3a", 39 | "l": "\ud83c\udd3b", 40 | "m": "\ud83c\udd3c", 41 | "n": "\ud83c\udd3d", 42 | "o": "\ud83c\udd3e", 43 | "p": "\ud83c\udd3f", 44 | "q": "\ud83c\udd40", 45 | "r": "\ud83c\udd41", 46 | "s": "\ud83c\udd42", 47 | "t": "\ud83c\udd43", 48 | "u": "\ud83c\udd44", 49 | "v": "\ud83c\udd45", 50 | "w": "\ud83c\udd46", 51 | "x": "\ud83c\udd47", 52 | "y": "\ud83c\udd48", 53 | "z": "\ud83c\udd49", 54 | "0": "0", 55 | "1": "1", 56 | "2": "2", 57 | "3": "3", 58 | "4": "4", 59 | "5": "5", 60 | "6": "6", 61 | "7": "7", 62 | "8": "8", 63 | "9": "9" 64 | } -------------------------------------------------------------------------------- /prettype/gui.py: -------------------------------------------------------------------------------- 1 | import glob 2 | import os 3 | import tkinter as tk 4 | 5 | 6 | class HoverButton(tk.Button): 7 | """ 8 | Utility class for button which changes color on hovering 9 | """ 10 | def __init__(self, master, **kw): 11 | tk.Button.__init__(self, master=master, **kw) 12 | self.defaultBackground = self['background'] 13 | self.bind('', self.on_enter) 14 | self.bind('', self.on_leave) 15 | 16 | def on_enter(self, _): 17 | self['background'] = self['activebackground'] 18 | 19 | def on_leave(self, _): 20 | self['background'] = self.defaultBackground 21 | 22 | 23 | class FontSelectorGUI: 24 | """ 25 | Implementation of tk based GUI for selection of font type 26 | """ 27 | def __init__(self, on_select=None): 28 | # root (top level element) config 29 | h, w = 250, 220 30 | self.root = tk.Tk() 31 | self.root.title("prettype") 32 | self.root.minsize(width=w, height=h) 33 | self.position_window() 34 | 35 | # when 'X' button is clicked 36 | self.root.protocol('WM_DELETE_WINDOW', self.quit) 37 | 38 | # canvas to hold main scrollbar 39 | self.canvas = tk.Canvas(self.root, height=h - 10, width=w - 20) 40 | self.canvas.pack(side=tk.RIGHT, expand=True) 41 | 42 | # scrollbar config 43 | scrollbar = tk.Scrollbar(self.root, command=self.canvas.yview) 44 | scrollbar.pack(side=tk.RIGHT, fill='y') 45 | self.canvas.configure(yscrollcommand=scrollbar.set) 46 | 47 | # main frame (inside root) config 48 | self.mainframe = tk.Frame(self.root, padx=1, pady=1) 49 | self.mainframe.pack(fill=tk.BOTH, expand=True, side=tk.TOP) 50 | 51 | # canvas window over mainframe 52 | self.canvas.create_window((0, 0), window=self.mainframe, anchor='nw') 53 | self.mainframe.bind('', self.on_configure) 54 | 55 | # button list display 56 | colors = ['orange', 'tomato', 'gold'] 57 | items = [font_path.split('/')[-1].split('.')[0] for font_path in 58 | glob.glob(os.path.join(os.path.dirname(__file__), 'fonts/*.json'))] 59 | 60 | for i, item in enumerate(sorted(items)): 61 | button = HoverButton(self.mainframe, text=item, command=lambda x=item: self.callback(x), width=20, 62 | bg=colors[i % 3], activebackground='light green') 63 | button.grid(row=i, column=0) 64 | 65 | # child function to execute on button click 66 | self.on_select = on_select 67 | 68 | # call mainloop of Tk object 69 | self.root.mainloop() 70 | self.root.quit() 71 | 72 | def callback(self, font): 73 | """ 74 | Callback function for button click 75 | :param font: selected font type 76 | """ 77 | if self.on_select: 78 | self.on_select(font) 79 | self.quit() 80 | 81 | def position_window(self): 82 | """ 83 | function to position window to current mouse position 84 | """ 85 | x, y = self.root.winfo_pointerxy() 86 | self.root.geometry('+{}+{}'.format(x, y)) 87 | 88 | def on_configure(self, _): 89 | """ 90 | utility function to enable scrolling over canvas window 91 | """ 92 | self.canvas.configure(scrollregion=self.canvas.bbox('all')) 93 | 94 | def quit(self): 95 | """ 96 | Quit the tk window 97 | """ 98 | print("Closing \"Font Selector GUI\" Window") 99 | self.root.destroy() 100 | 101 | 102 | if __name__ == '__main__': 103 | FontSelectorGUI() 104 | -------------------------------------------------------------------------------- /prettype/prettype.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | import glob 3 | import json 4 | import os 5 | 6 | import xerox 7 | from pynput import keyboard 8 | 9 | from .gui import FontSelectorGUI 10 | 11 | default_key_binding = (keyboard.Key.ctrl, keyboard.Key.space) 12 | default_exit_key = keyboard.Key.esc 13 | 14 | 15 | class Prettype: 16 | """ 17 | Master class for prettype which: 18 | 1. listens for a key binding 19 | 2. open font selector GUI when key binding is pressed 20 | 3. Paste the currently selected text in the clipboard with selected font 21 | """ 22 | 23 | def __init__(self, key_binding, exit_key): 24 | self.fonts_dict = {} 25 | self.load_fonts() 26 | self.key_binding = key_binding 27 | self.exit_key = exit_key 28 | self.prev_key = None 29 | 30 | print("Starting 🅿🆁🅴🆃🆃🆈🅿🅴 with key-binding \"{}+{}\" and exit-key \"{}\".".format( 31 | self.key_binding[0], 32 | self.key_binding[1], 33 | self.exit_key) 34 | ) 35 | self.run() 36 | 37 | def run(self): 38 | """ 39 | pynput keyboard listener 40 | """ 41 | with keyboard.Listener(on_press=self.on_press) as listener: 42 | listener.join() 43 | 44 | def on_press(self, key): 45 | """ 46 | Callback function for keyboard listener when a key is pressed 47 | :param key: pynput.keyboard.Key instance 48 | :return: True/False. Keyboard listener stops listening when False is returned 49 | """ 50 | if key == self.exit_key: 51 | return False 52 | 53 | if (self.prev_key, key) == self.key_binding: 54 | FontSelectorGUI(on_select=self.paste_formatted_text) 55 | 56 | self.prev_key = key 57 | return True 58 | 59 | def paste_formatted_text(self, font_type): 60 | """ 61 | Paste the currently selected text in the clipboard with the input font type 62 | :param font_type: name of font 63 | """ 64 | font = self.fonts_dict.get(font_type, 'Serif-Normal') 65 | text = xerox.paste(xsel=True) 66 | ftext = ''.join(list(map(lambda ch: font.get(ch, ch), text))) 67 | xerox.copy(ftext) 68 | 69 | def load_fonts(self): 70 | """ 71 | Utility function to load all available fonts in a dictionary 72 | """ 73 | font_paths = glob.glob(os.path.join(os.path.dirname(__file__), 'fonts/*.json')) 74 | for font_path in font_paths: 75 | font_name = font_path.split('/')[-1].split('.')[0] 76 | with open(font_path, 'r') as f: 77 | self.fonts_dict[font_name] = json.loads(f.read()) 78 | 79 | 80 | def main(): 81 | parser = argparse.ArgumentParser() 82 | 83 | key_binding_help_text = """Set a key binding for triggering prettype font selector. 84 | Example: $ prettype -b ctrl space 85 | """ 86 | 87 | exit_key_help_text = """Specify a key which stops the keyboard listener, when pressed. 88 | Example: $ prettype -e esc 89 | """ 90 | 91 | parser.add_argument('-b', '--binding', type=str, nargs=2, default=None, 92 | metavar=('key1', 'key2'), help=key_binding_help_text) 93 | 94 | parser.add_argument('-e', '--exit_key', type=str, default=None, 95 | metavar='key', help=exit_key_help_text) 96 | 97 | args = parser.parse_args() 98 | 99 | key_binding = default_key_binding 100 | exit_key = default_exit_key 101 | 102 | if args.binding is not None: 103 | try: 104 | key1 = getattr(keyboard.Key, args.binding[0]) 105 | except AttributeError: 106 | key1 = keyboard.KeyCode.from_char(args.binding[0]) 107 | 108 | try: 109 | key2 = getattr(keyboard.Key, args.binding[1]) 110 | except AttributeError: 111 | key2 = keyboard.KeyCode.from_char(args.binding[1]) 112 | key_binding = (key1, key2) 113 | 114 | if args.exit_key is not None: 115 | try: 116 | exit_key = getattr(keyboard.Key, args.exit_key) 117 | except AttributeError: 118 | exit_key = keyboard.KeyCode.from_char(args.exit_key) 119 | 120 | Prettype(key_binding, exit_key) 121 | 122 | 123 | if __name__ == '__main__': 124 | main() 125 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | pynput 2 | xerox -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from setuptools import setup 3 | 4 | 5 | def readme(): 6 | try: 7 | with open('README.rst') as f: 8 | return f.read() 9 | except Exception as e: 10 | print(e) 11 | 12 | 13 | setup(name='prettype', 14 | version='1.0.0', 15 | classifiers=[ 16 | 'Development Status :: 4 - Beta', 17 | 'License :: OSI Approved :: MIT License', 18 | 'Programming Language :: Python', 19 | 'Programming Language :: Python :: 3', 20 | 'Programming Language :: Python :: 3.1', 21 | 'Programming Language :: Python :: 3.2', 22 | 'Programming Language :: Python :: 3.3', 23 | 'Programming Language :: Python :: 3.4', 24 | 'Programming Language :: Python :: 3.5', 25 | 'Programming Language :: Python :: 3.6', 26 | 'Programming Language :: Python :: 3.7', 27 | ], 28 | keywords='unicode styled text keyboard typing tkinter copy paste', 29 | description='An easy to use text stylizer for your desktop!', 30 | long_description=readme(), 31 | url='https://github.com/nikhilkumarsingh/prettype', 32 | author='Nikhil Kumar Singh', 33 | author_email='nikhilksingh97@gmail.com', 34 | license='MIT', 35 | packages=['prettype'], 36 | install_requires=['xerox', 'pynput'], 37 | entry_points=""" 38 | [console_scripts] 39 | prettype = prettype.prettype:main 40 | """, 41 | include_package_data=True, 42 | zip_safe=False) 43 | --------------------------------------------------------------------------------