Commit dcebc9e8fc4523934a1ff7d2873085adf4636a86

Authored by mj
1 parent e4774f2033
Exists in master and in 2 other branches 02-merge, dev

Squashed 'repos/robbyrussell/oh-my-zsh/' changes from a207a38..192de6b

192de6b Merge pull request #4238 from wubaiqing/master
1605d82 Merge pull request #4234 from mcornella/fix-fbterm-autostart
7c60da9 Merge pull request #4233 from apjanke/apple-term-no-dupe-folder-in-title
2ecb17c Merge pull request #4230 from mcornella/revert-custom-early-load
20f536c Merge pull request #4228 from mcornella/fix-virtualenvwrapper-quotes
b8dbd9b Merge pull request #4217 from mcornella/standard-open-command
4c1eda1 Merge pull request #4216 from gkze/master
e3a01e5 Merge pull request #4212 from NAR8789/master
f6a2b97 Merge pull request #4203 from apjanke/title-protect-promptsubst
45d640b Merge pull request #4200 from lislon/systemd-patch
84ecc66 Merge pull request #4172 from AlexTalker/fix-typo
8c3d4a9 Merge pull request #4095 from kd35a/master
9626a36 Merge pull request #3654 from Qix-/patch-1
afc36e2 Merge pull request #2446 from fallwith/emoji_plugin
c45fff1 Merge pull request #2367 from andrew-dwyer/n98-magerun
d1ea849 Merge pull request #2106 from adepasquale/master
9caa215 Add Baidu support to web-search plugin
be10229 Exit only if the fbterm session closed correctly
be5dcb8 Check if fbterm is installed and use $TTY variable
17da983 termsupport: avoid repeated dir in window title in Terminal.app
3fe3ce8 Revert "Move custon *.zsh file sourcing up so that they can load plugins and other things that come after."
ccb0ae5 Add quotes to support folders with whitespace
b760a10 Use standard open command in fasd and lighthouse plugins
d1d06b5 Use standard open command in current plugins
2d0bfcf Implement cross-platform open function open_command()
cddfc3b style fixes
bd893ac Merge pull request #1 from dlsniper/terraform
cf78586 Update to latest Terraform release 0.6.1
7f3e614 Add terraform completion
aac5523 Additional chpwd clobbering fix for dirpersist
084792b Don't clobber chpwd
90ea67e termsupport: protect title() with `emulate -L zsh`
5554207 Add alias for "systemctl cat" and "systemctl edit"
3d5b343 Merge pull request #4122 from apjanke/venvw-treat-git-repo-as-venv-again
b3ce0f3 Update README.markdown
a3f0439 Fix little typo that makes the statement useless.
e56c898 Merge pull request #1 from apjanke/emoji_plugin_3
9a39725 Remove redundant comments from the .zsh file (since they're in README now).
6d618ef emoji plugin: generate char map from Unicode UTR51 data files
f73e642 virtualenvwrapper: treat git repos as project roots again (instead of requiring a .venv customization directory) Change error output to more conventional OMZ format, so it's clear the plugin is for oh-my-zsh and not base zsh. Use `local` variables instead of manual unsetting.
546b99a Use 'quit all' instead of counting needed quits
2449e41 Add file completion as optional argument
de76905 Fix awk command. \s only working in gawk
eb06484 added emoji plugin to make it easy to display emoji characters in the terminal
1232485 Added ssh-like mosh window title
00b2cc6 New plugin for the n98-magerun Magento command line tool

git-subtree-dir: repos/robbyrussell/oh-my-zsh
git-subtree-split: 192de6bcffb0294e19f4203f6f7dc1a7f3e427be

Showing 28 changed files with 3485 additions and 98 deletions Inline Diff

1 ![Oh My Zsh](https://s3.amazonaws.com/ohmyzsh/oh-my-zsh-logo.png) 1 ![Oh My Zsh](https://s3.amazonaws.com/ohmyzsh/oh-my-zsh-logo.png)
2 2
3 3
4 Oh My Zsh is an open source, community-driven framework for managing your [zsh](http://www.zsh.org/) configuration. That sounds boring. Let's try this again. 4 Oh My Zsh is an open source, community-driven framework for managing your [zsh](http://www.zsh.org/) configuration. That sounds boring. Let's try this again.
5 5
6 __Oh My Zsh is a way of life!__ Once installed, your terminal prompt will become the talk of the town _or your money back!_ Each time you interface with your command prompt, you'll be able take advantage of the hundreds of bundled plugins and pretty themes. Strangers will come up to you in cafés and ask you, _"that is amazing. are you some sort of genius?"_ Finally, you'll begin to get the sort of attention that you always felt that you deserved. ...or maybe you'll just use the time that you saved to start flossing more often. 6 __Oh My Zsh is a way of life!__ Once installed, your terminal prompt will become the talk of the town _or your money back!_ Each time you interact with your command prompt, you'll be able take advantage of the hundreds of bundled plugins and pretty themes. Strangers will come up to you in cafés and ask you, _"that is amazing. are you some sort of genius?"_ Finally, you'll begin to get the sort of attention that you always felt that you deserved. ...or maybe you'll just use the time that you saved to start flossing more often.
7 7
8 To learn more, visit http://ohmyz.sh and/or follow [ohmyzsh](https://twitter.com/ohmyzsh) on twitter. 8 To learn more, visit http://ohmyz.sh and/or follow [ohmyzsh](https://twitter.com/ohmyzsh) on Twitter.
9 9
10 ## Getting Started 10 ## Getting Started
11 11
12 12
13 ### Prerequisites 13 ### Prerequisites
14 14
15 __Disclaimer:__ _Oh My Zsh works best on Mac OS X and Linux._ 15 __Disclaimer:__ _Oh My Zsh works best on Mac OS X and Linux._
16 16
17 * Unix-based operating system (Mac OS X or Linux) 17 * Unix-based operating system (Mac OS X or Linux)
18 * [Zsh](http://www.zsh.org) should be installed (v4.3.9 or more recent). If not pre-installed (`zsh --version` to confirm), check the following instruction here: [Installing-ZSH](https://github.com/robbyrussell/oh-my-zsh/wiki/Installing-ZSH) 18 * [Zsh](http://www.zsh.org) should be installed (v4.3.9 or more recent). If not pre-installed (`zsh --version` to confirm), check the following instruction here: [Installing-ZSH](https://github.com/robbyrussell/oh-my-zsh/wiki/Installing-ZSH)
19 * `curl` or `wget` should be installed 19 * `curl` or `wget` should be installed
20 * `git` should be installed 20 * `git` should be installed
21 21
22 ### Basic Installation 22 ### Basic Installation
23 23
24 Oh My Zsh is installed by running one of the following commands in your terminal. You can install this via the command-line with either `curl` or `wget`. 24 Oh My Zsh is installed by running one of the following commands in your terminal. You can install this via the command-line with either `curl` or `wget`.
25 25
26 #### via curl 26 #### via curl
27 27
28 `sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"` 28 `sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"`
29 29
30 #### via wget 30 #### via wget
31 31
32 `sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"` 32 `sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"`
33 33
34 ## Using Oh My Zsh 34 ## Using Oh My Zsh
35 35
36 ### Plugins 36 ### Plugins
37 37
38 Oh My Zsh comes with a shit load of plugins to take advantage of. You can take a look in the [plugins](https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins) directory and/or the [wiki](https://github.com/robbyrussell/oh-my-zsh/wiki/Plugins) to see what's currently available. 38 Oh My Zsh comes with a shit load of plugins to take advantage of. You can take a look in the [plugins](https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins) directory and/or the [wiki](https://github.com/robbyrussell/oh-my-zsh/wiki/Plugins) to see what's currently available.
39 39
40 #### Enabling Plugins 40 #### Enabling Plugins
41 41
42 If you spot a plugin (or several) that you would like to use with Oh My Zsh, you will need to edit the `~/.zshrc` file. Once you open it with your favorite editor, you'll see a spot to list all the plugins that you'd like Oh My Zsh to load in initialization. 42 If you spot a plugin (or several) that you would like to use with Oh My Zsh, you will need to edit the `~/.zshrc` file. Once you open it with your favorite editor, you'll see a spot to list all the plugins that you'd like Oh My Zsh to load in initialization.
43 43
44 For example, this line might begin to look like... 44 For example, this line might begin to look like...
45 45
46 `plugins=(git bundler osx rake ruby)` 46 ```shell
47 plugins=(git bundler osx rake ruby)
48 ```
47 49
48 #### Using Plugins 50 #### Using Plugins
49 51
50 Most plugins (should! we're working on this) include a __README__, which documents how to use them. 52 Most plugins (should! we're working on this) include a __README__, which documents how to use them.
51 53
52 ### Themes 54 ### Themes
53 55
54 We'll admit it. Early in the Oh My Zsh world... we may have gotten far too theme happy. We have over one hundred themes now bundled. Most of them have [screenshots](https://wiki.github.com/robbyrussell/oh-my-zsh/themes) on the wiki. Check them out! 56 We'll admit it. Early in the Oh My Zsh world, we may have gotten a bit too theme happy. We have over one hundred themes now bundled. Most of them have [screenshots](https://wiki.github.com/robbyrussell/oh-my-zsh/themes) on the wiki. Check them out!
55 57
56 #### Selecting a Theme 58 #### Selecting a Theme
57 59
58 _Robby's theme is the default one. It's not the fanciest one. It's not the simplest one. It's just right (for him)._ 60 _Robby's theme is the default one. It's not the fanciest one. It's not the simplest one. It's just right (for him)._
59 61
60 Once you find a theme that you want to use, you will need to edit the `~/.zshrc` file. You'll see an environment variable (all caps) in there that looks like: 62 Once you find a theme that you want to use, you will need to edit the `~/.zshrc` file. You'll see an environment variable (all caps) in there that looks like:
61 63
62 `ZSH_THEME="robbyrussell"` 64 ```shell
65 ZSH_THEME="robbyrussell"
66 ```
63 67
64 To use a different theme, simple change the value to match the name of your desired theme. For example: 68 To use a different theme, simple change the value to match the name of your desired theme. For example:
65 69
66 `ZSH_THEME="agnoster"` (this is one of the fancy ones) 70 ```shell
71 ZSH_THEME="agnoster" # (this is one of the fancy ones)
72 ```
67 73
68 Open up a new terminal window and your prompt should look something like... 74 Open up a new terminal window and your prompt should look something like...
69 75
70 In case you did not find a suitable theme for your needs, please have a look at the wiki for [more themes](https://github.com/robbyrussell/oh-my-zsh/wiki/External-themes). 76 ![Agnoster theme](https://cloud.githubusercontent.com/assets/2618447/6316862/70f58fb6-ba03-11e4-82c9-c083bf9a6574.png)
77
78 In case you did not find a suitable theme for your needs, please have a look at the wiki for [more of them](https://github.com/robbyrussell/oh-my-zsh/wiki/External-themes).
71 79
72 ## Advanced Topics 80 ## Advanced Topics
73 81
74 If you're the type that likes to get their hands dirty... these sections might resonate. 82 If you're the type that likes to get their hands dirty, these sections might resonate.
75 83
76 ### Advanced Installation 84 ### Advanced Installation
77 85
78 For those who want to install this manually and/or set custom paths. 86 Some users may want to change the default path, or manually install Oh My Zsh.
79 87
80 #### Custom Directory 88 #### Custom Directory
81 89
82 The default location is `~/.oh-my-zsh` (hidden in your home directory) 90 The default location is `~/.oh-my-zsh` (hidden in your home directory)
83 91
84 If you'd like to change the install directory with the `ZSH` environment variable, either by running `export ZSH=/your/path` before installing, or by setting it before the end of the install pipeline like this: 92 If you'd like to change the install directory with the `ZSH` environment variable, either by running `export ZSH=/your/path` before installing, or by setting it before the end of the install pipeline like this:
85 93
86 `curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | ZSH=~/.dotfiles/zsh sh` 94 ```shell
95 curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | ZSH=~/.dotfiles/zsh sh
96 ```
87 97
88 #### Manual Installation 98 #### Manual Installation
89 99
90 ##### 1. Clone the repository: 100 ##### 1. Clone the repository:
91 101
92 `git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh` 102 ```shell
103 git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
104 ```
93 105
94 ##### 2. *Optionally*, backup your existing @~/.zshrc@ file: 106 ##### 2. *Optionally*, backup your existing `~/.zshrc` file:
95 107
96 `cp ~/.zshrc ~/.zshrc.orig` 108 ```shell
109 cp ~/.zshrc ~/.zshrc.orig
110 ```
97 111
98 ##### 3. Create a new zsh configuration file 112 ##### 3. Create a new zsh configuration file
99 113
100 You can create a new zsh config file by copying the template that we included for you. 114 You can create a new zsh config file by copying the template that we included for you.
101 115
102 `cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc` 116 ```shell
117 cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
118 ```
103 119
104 ##### 4. Change your default shell 120 ##### 4. Change your default shell
105 121
106 `chsh -s /bin/zsh` 122 ```shell
123 chsh -s /bin/zsh
124 ```
107 125
108 ##### 5. Initialize your new zsh configuration 126 ##### 5. Initialize your new zsh configuration
109 127
110 Once you open up a new terminal window, it should load zsh with Oh My Zsh's configuration. 128 Once you open up a new terminal window, it should load zsh with Oh My Zsh's configuration.
111 129
112 ### Installation Problems 130 ### Installation Problems
113 131
114 If you have any hiccups installing, here are a few common fixes. 132 If you have any hiccups installing, here are a few common fixes.
115 133
116 * You _might_ need to modify your `PATH` in `~/.zshrc` if you're not able to find some commands after switching to `oh-my-zsh`. 134 * You _might_ need to modify your `PATH` in `~/.zshrc` if you're not able to find some commands after switching to `oh-my-zsh`.
117 * If you installed manually or changed the install location, check the `ZSH` environment variable in `~/.zshrc`. 135 * If you installed manually or changed the install location, check the `ZSH` environment variable in `~/.zshrc`.
118 136
119 ### Custom Plugins and Themes 137 ### Custom Plugins and Themes
120 138
121 If you want to override any of the default behaviors, just add a new file (ending in `.zsh`) in the `custom/` directory. 139 If you want to override any of the default behaviors, just add a new file (ending in `.zsh`) in the `custom/` directory.
122 140
123 If you have many functions that go well together, you can put them as a `abcyzeae.plugin.zsh` file in the `custom/plugins/` directory and then enable this plugin. 141 If you have many functions that go well together, you can put them as a `XYZ.plugin.zsh` file in the `custom/plugins/` directory and then enable this plugin.
124 142
125 If you would like to override the functionality of a plugin distributed with Oh My Zsh, create a plugin of the same name in the `custom/plugins/` directory and it will be loaded instead of the one in `plugins/`. 143 If you would like to override the functionality of a plugin distributed with Oh My Zsh, create a plugin of the same name in the `custom/plugins/` directory and it will be loaded instead of the one in `plugins/`.
126 144
127 ## Getting Updates 145 ## Getting Updates
128 146
129 By default, you will be prompted to check for upgrades every few weeks. If you would like `oh-my-zsh` to automatically upgrade itself without prompting you, set the following in your `~/.zshrc`: 147 By default, you will be prompted to check for upgrades every few weeks. If you would like `oh-my-zsh` to automatically upgrade itself without prompting you, set the following in your `~/.zshrc`:
130 148
131 `DISABLE_UPDATE_PROMPT=true` 149 ```shell
150 DISABLE_UPDATE_PROMPT=true
151 ```
132 152
133 To disable automatic upgrades, set the following in your `~/.zshrc`: 153 To disable automatic upgrades, set the following in your `~/.zshrc`:
134 154
135 `DISABLE_AUTO_UPDATE=true` 155 ```shell
156 DISABLE_AUTO_UPDATE=true
157 ```
136 158
137 ### Manual Updates 159 ### Manual Updates
138 160
139 If you'd like to upgrade at any point in time (maybe someone just released a new plugin and you don't want to wait a week?)... you just need to run: 161 If you'd like to upgrade at any point in time (maybe someone just released a new plugin and you don't want to wait a week?) you just need to run:
140 162
141 `upgrade_oh_my_zsh` 163 ```shell
164 upgrade_oh_my_zsh
165 ```
142 166
143 Magic! 167 Magic!
144 168
145 ## Uninstalling Oh My Zsh 169 ## Uninstalling Oh My Zsh
146 170
147 Oh My Zsh isn't for everyone. We'll miss you, but we want to make this an easy breakup. 171 Oh My Zsh isn't for everyone. We'll miss you, but we want to make this an easy breakup.
148 172
149 If you want to uninstall `oh-my-zsh`, just run `uninstall_oh_my_zsh` from the command-line. It will remove itself and revert your previous `bash` or `zsh` configuration. 173 If you want to uninstall `oh-my-zsh`, just run `uninstall_oh_my_zsh` from the command-line. It will remove itself and revert your previous `bash` or `zsh` configuration.
150 174
151 ## Contributing 175 ## Contributing
152 176
153 I'm far from being a [Zsh](http://www.zsh.org/) expert and suspect there are many ways to improve – if you have ideas on how to make the configuration easier to maintain (and faster), don't hesitate to fork and send pull requests! 177 I'm far from being a [Zsh](http://www.zsh.org/) expert and suspect there are many ways to improve – if you have ideas on how to make the configuration easier to maintain (and faster), don't hesitate to fork and send pull requests!
154 178
155 We also need people to test out pull-requests. So take a look through [the open issues](https://github.com/robbyrussell/oh-my-zsh/issues) and help where you can. 179 We also need people to test out pull-requests. So take a look through [the open issues](https://github.com/robbyrussell/oh-my-zsh/issues) and help where you can.
156 180
157 ### Do NOT Send Us Themes 181 ### Do NOT send us themes
158 182
159 We have (more than) enough themes for the time being. Please add your theme to the [external themes](https://github.com/robbyrussell/oh-my-zsh/wiki/External-themes) wiki page. 183 We have (more than) enough themes for the time being. Please add your theme to the [external themes](https://github.com/robbyrussell/oh-my-zsh/wiki/External-themes) wiki page.
160 184
161 ## Contributors 185 ## Contributors
162 186
163 Oh My Zsh has a vibrant community of happy users and delightful contributors. Without all the time and help from our contributors, it wouldn't be so awesome. 187 Oh My Zsh has a vibrant community of happy users and delightful contributors. Without all the time and help from our contributors, it wouldn't be so awesome.
164 188
165 Thank you so much! 189 Thank you so much!
166 190
167 ## Follow Us 191 ## Follow Us
168 192
169 We have an [ohmyzsh](https://twitter.com/ohmyzsh) account. You should follow it. 193 We have an [@ohmyzsh](https://twitter.com/ohmyzsh) Twitter account. You should follow it.
170 194
171 ## Merchandise 195 ## Merchandise
172 196
173 We have [stickers](http://shop.planetargon.com/products/ohmyzsh-stickers-set-of-3-stickers) and [shirts](http://shop.planetargon.com/products/ohmyzsh-t-shirts) for you to show off your love of Oh My Zsh. Again, this will help you become the talk of the town! 197 We have [stickers](http://shop.planetargon.com/products/ohmyzsh-stickers-set-of-3-stickers) and [shirts](http://shop.planetargon.com/products/ohmyzsh-t-shirts) for you to show off your love of Oh My Zsh. Again, this will help you become the talk of the town!
174 198
175 ## LICENSE 199 ## License
176 200
177 Oh My Zsh is released under the [MIT license](https://github.com/robbyrussell/oh-my-zsh/blob/master/MIT-LICENSE.txt). 201 Oh My Zsh is released under the [MIT license](https://github.com/robbyrussell/oh-my-zsh/blob/master/MIT-LICENSE.txt).
178 202
1 function zsh_stats() { 1 function zsh_stats() {
2 fc -l 1 | awk '{CMD[$2]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a;}' | grep -v "./" | column -c3 -s " " -t | sort -nr | nl | head -n20 2 fc -l 1 | awk '{CMD[$2]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a;}' | grep -v "./" | column -c3 -s " " -t | sort -nr | nl | head -n20
3 } 3 }
4 4
5 function uninstall_oh_my_zsh() { 5 function uninstall_oh_my_zsh() {
6 env ZSH=$ZSH /bin/sh $ZSH/tools/uninstall.sh 6 env ZSH=$ZSH /bin/sh $ZSH/tools/uninstall.sh
7 } 7 }
8 8
9 function upgrade_oh_my_zsh() { 9 function upgrade_oh_my_zsh() {
10 env ZSH=$ZSH /bin/sh $ZSH/tools/upgrade.sh 10 env ZSH=$ZSH /bin/sh $ZSH/tools/upgrade.sh
11 } 11 }
12 12
13 function take() { 13 function take() {
14 mkdir -p $1 14 mkdir -p $1
15 cd $1 15 cd $1
16 } 16 }
17 17
18 function open_command() {
19 local open_cmd
20
21 # define the open command
22 case "$OSTYPE" in
23 darwin*) open_cmd="open" ;;
24 cygwin*) open_cmd="cygstart" ;;
25 linux*) open_cmd="xdg-open" ;;
26 *) echo "Platform $OSTYPE not supported"
27 return 1
28 ;;
29 esac
30
31 nohup $open_cmd "$@" &>/dev/null
32 }
33
18 # 34 #
19 # Get the value of an alias. 35 # Get the value of an alias.
20 # 36 #
21 # Arguments: 37 # Arguments:
22 # 1. alias - The alias to get its value from 38 # 1. alias - The alias to get its value from
23 # STDOUT: 39 # STDOUT:
24 # The value of alias $1 (if it has one). 40 # The value of alias $1 (if it has one).
25 # Return value: 41 # Return value:
26 # 0 if the alias was found, 42 # 0 if the alias was found,
27 # 1 if it does not exist 43 # 1 if it does not exist
28 # 44 #
29 function alias_value() { 45 function alias_value() {
30 alias "$1" | sed "s/^$1='\(.*\)'$/\1/" 46 alias "$1" | sed "s/^$1='\(.*\)'$/\1/"
31 test $(alias "$1") 47 test $(alias "$1")
32 } 48 }
33 49
34 # 50 #
35 # Try to get the value of an alias, 51 # Try to get the value of an alias,
36 # otherwise return the input. 52 # otherwise return the input.
37 # 53 #
38 # Arguments: 54 # Arguments:
39 # 1. alias - The alias to get its value from 55 # 1. alias - The alias to get its value from
40 # STDOUT: 56 # STDOUT:
41 # The value of alias $1, or $1 if there is no alias $1. 57 # The value of alias $1, or $1 if there is no alias $1.
42 # Return value: 58 # Return value:
43 # Always 0 59 # Always 0
44 # 60 #
45 function try_alias_value() { 61 function try_alias_value() {
46 alias_value "$1" || echo "$1" 62 alias_value "$1" || echo "$1"
47 } 63 }
48 64
49 # 65 #
50 # Set variable "$1" to default value "$2" if "$1" is not yet defined. 66 # Set variable "$1" to default value "$2" if "$1" is not yet defined.
51 # 67 #
52 # Arguments: 68 # Arguments:
53 # 1. name - The variable to set 69 # 1. name - The variable to set
54 # 2. val - The default value 70 # 2. val - The default value
55 # Return value: 71 # Return value:
56 # 0 if the variable exists, 3 if it was set 72 # 0 if the variable exists, 3 if it was set
57 # 73 #
58 function default() { 74 function default() {
59 test `typeset +m "$1"` && return 0 75 test `typeset +m "$1"` && return 0
60 typeset -g "$1"="$2" && return 3 76 typeset -g "$1"="$2" && return 3
61 } 77 }
62 78
63 # 79 #
64 # Set enviroment variable "$1" to default value "$2" if "$1" is not yet defined. 80 # Set enviroment variable "$1" to default value "$2" if "$1" is not yet defined.
65 # 81 #
66 # Arguments: 82 # Arguments:
67 # 1. name - The env variable to set 83 # 1. name - The env variable to set
68 # 2. val - The default value 84 # 2. val - The default value
69 # Return value: 85 # Return value:
70 # 0 if the env variable exists, 3 if it was set 86 # 0 if the env variable exists, 3 if it was set
71 # 87 #
72 function env_default() { 88 function env_default() {
73 env | grep -q "^$1=" && return 0 89 env | grep -q "^$1=" && return 0
74 export "$1=$2" && return 3 90 export "$1=$2" && return 3
75 } 91 }
76 92
1 # Set terminal window and tab/icon title 1 # Set terminal window and tab/icon title
2 # 2 #
3 # usage: title short_tab_title [long_window_title] 3 # usage: title short_tab_title [long_window_title]
4 # 4 #
5 # See: http://www.faqs.org/docs/Linux-mini/Xterm-Title.html#ss3.1 5 # See: http://www.faqs.org/docs/Linux-mini/Xterm-Title.html#ss3.1
6 # Fully supports screen, iterm, and probably most modern xterm and rxvt 6 # Fully supports screen, iterm, and probably most modern xterm and rxvt
7 # (In screen, only short_tab_title is used) 7 # (In screen, only short_tab_title is used)
8 # Limited support for Apple Terminal (Terminal can't set window and tab separately) 8 # Limited support for Apple Terminal (Terminal can't set window and tab separately)
9 function title { 9 function title {
10 emulate -L zsh
11 setopt prompt_subst
12
10 [[ "$EMACS" == *term* ]] && return 13 [[ "$EMACS" == *term* ]] && return
11 14
12 # if $2 is unset use $1 as default 15 # if $2 is unset use $1 as default
13 # if it is set and empty, leave it as is 16 # if it is set and empty, leave it as is
14 : ${2=$1} 17 : ${2=$1}
15 18
16 if [[ "$TERM" == screen* ]]; then 19 if [[ "$TERM" == screen* ]]; then
17 print -Pn "\ek$1:q\e\\" #set screen hardstatus, usually truncated at 20 chars 20 print -Pn "\ek$1:q\e\\" #set screen hardstatus, usually truncated at 20 chars
18 elif [[ "$TERM" == xterm* ]] || [[ "$TERM" == rxvt* ]] || [[ "$TERM" == ansi ]] || [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then 21 elif [[ "$TERM" == xterm* ]] || [[ "$TERM" == rxvt* ]] || [[ "$TERM" == ansi ]] || [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then
19 print -Pn "\e]2;$2:q\a" #set window name 22 print -Pn "\e]2;$2:q\a" #set window name
20 print -Pn "\e]1;$1:q\a" #set icon (=tab) name 23 print -Pn "\e]1;$1:q\a" #set icon (=tab) name
21 fi 24 fi
22 } 25 }
23 26
24 ZSH_THEME_TERM_TAB_TITLE_IDLE="%15<..<%~%<<" #15 char left truncated PWD 27 ZSH_THEME_TERM_TAB_TITLE_IDLE="%15<..<%~%<<" #15 char left truncated PWD
25 ZSH_THEME_TERM_TITLE_IDLE="%n@%m: %~" 28 ZSH_THEME_TERM_TITLE_IDLE="%n@%m: %~"
29 # Avoid duplication of directory in terminals with independent dir display
30 if [[ $TERM_PROGRAM == Apple_Terminal ]]; then
31 ZSH_THEME_TERM_TITLE_IDLE="%n@%m"
32 fi
26 33
27 # Runs before showing the prompt 34 # Runs before showing the prompt
28 function omz_termsupport_precmd { 35 function omz_termsupport_precmd {
29 if [[ $DISABLE_AUTO_TITLE == true ]]; then 36 if [[ $DISABLE_AUTO_TITLE == true ]]; then
30 return 37 return
31 fi 38 fi
32 39
33 title $ZSH_THEME_TERM_TAB_TITLE_IDLE $ZSH_THEME_TERM_TITLE_IDLE 40 title $ZSH_THEME_TERM_TAB_TITLE_IDLE $ZSH_THEME_TERM_TITLE_IDLE
34 } 41 }
35 42
36 # Runs before executing the command 43 # Runs before executing the command
37 function omz_termsupport_preexec { 44 function omz_termsupport_preexec {
38 if [[ $DISABLE_AUTO_TITLE == true ]]; then 45 if [[ $DISABLE_AUTO_TITLE == true ]]; then
39 return 46 return
40 fi 47 fi
41 48
42 emulate -L zsh 49 emulate -L zsh
43 setopt extended_glob 50 setopt extended_glob
44 51
45 # cmd name only, or if this is sudo or ssh, the next cmd 52 # cmd name only, or if this is sudo or ssh, the next cmd
46 local CMD=${1[(wr)^(*=*|sudo|ssh|rake|-*)]:gs/%/%%} 53 local CMD=${1[(wr)^(*=*|sudo|ssh|mosh|rake|-*)]:gs/%/%%}
47 local LINE="${2:gs/%/%%}" 54 local LINE="${2:gs/%/%%}"
48 55
49 title '$CMD' '%100>...>$LINE%<<' 56 title '$CMD' '%100>...>$LINE%<<'
50 } 57 }
51 58
52 precmd_functions+=(omz_termsupport_precmd) 59 precmd_functions+=(omz_termsupport_precmd)
53 preexec_functions+=(omz_termsupport_preexec) 60 preexec_functions+=(omz_termsupport_preexec)
54 61
55 62
56 # Runs before showing the prompt, to update the current directory in Terminal.app 63 # Runs before showing the prompt, to update the current directory in Terminal.app
57 function omz_termsupport_cwd { 64 function omz_termsupport_cwd {
58 # Notify Terminal.app of current directory using undocumented OSC sequence 65 # Notify Terminal.app of current directory using undocumented OSC sequence
59 # found in OS X 10.9 and 10.10's /etc/bashrc 66 # found in OS X 10.9 and 10.10's /etc/bashrc
60 if [[ $TERM_PROGRAM == Apple_Terminal ]] && [[ -z $INSIDE_EMACS ]]; then 67 if [[ $TERM_PROGRAM == Apple_Terminal ]] && [[ -z $INSIDE_EMACS ]]; then
61 local PWD_URL="file://$HOSTNAME${PWD// /%20}" 68 local PWD_URL="file://$HOSTNAME${PWD// /%20}"
62 printf '\e]7;%s\a' "$PWD_URL" 69 printf '\e]7;%s\a' "$PWD_URL"
63 fi 70 fi
64 } 71 }
65 72
66 precmd_functions+=(omz_termsupport_cwd) 73 precmd_functions+=(omz_termsupport_cwd)
67 74
1 # Check for updates on initial load... 1 # Check for updates on initial load...
2 if [ "$DISABLE_AUTO_UPDATE" != "true" ]; then 2 if [ "$DISABLE_AUTO_UPDATE" != "true" ]; then
3 env ZSH=$ZSH DISABLE_UPDATE_PROMPT=$DISABLE_UPDATE_PROMPT zsh -f $ZSH/tools/check_for_upgrade.sh 3 env ZSH=$ZSH DISABLE_UPDATE_PROMPT=$DISABLE_UPDATE_PROMPT zsh -f $ZSH/tools/check_for_upgrade.sh
4 fi 4 fi
5 5
6 # Initializes Oh My Zsh 6 # Initializes Oh My Zsh
7 7
8 # add a function path 8 # add a function path
9 fpath=($ZSH/functions $ZSH/completions $fpath) 9 fpath=($ZSH/functions $ZSH/completions $fpath)
10 10
11 # Set ZSH_CUSTOM to the path where your custom config files 11 # Set ZSH_CUSTOM to the path where your custom config files
12 # and plugins exists, or else we will use the default custom/ 12 # and plugins exists, or else we will use the default custom/
13 if [[ -z "$ZSH_CUSTOM" ]]; then 13 if [[ -z "$ZSH_CUSTOM" ]]; then
14 ZSH_CUSTOM="$ZSH/custom" 14 ZSH_CUSTOM="$ZSH/custom"
15 fi 15 fi
16 16
17 # Set ZSH_CACHE_DIR to the path where cache files should be created 17 # Set ZSH_CACHE_DIR to the path where cache files should be created
18 # or else we will use the default cache/ 18 # or else we will use the default cache/
19 if [[ -z "$ZSH_CACHE_DIR" ]]; then 19 if [[ -z "$ZSH_CACHE_DIR" ]]; then
20 ZSH_CACHE_DIR="$ZSH/cache/" 20 ZSH_CACHE_DIR="$ZSH/cache/"
21 fi 21 fi
22 22
23 23
24 # Load all of the config files in ~/oh-my-zsh that end in .zsh 24 # Load all of the config files in ~/oh-my-zsh that end in .zsh
25 # TIP: Add files you don't want in git to .gitignore 25 # TIP: Add files you don't want in git to .gitignore
26 for config_file ($ZSH/lib/*.zsh); do 26 for config_file ($ZSH/lib/*.zsh); do
27 custom_config_file="${ZSH_CUSTOM}/lib/${config_file:t}" 27 custom_config_file="${ZSH_CUSTOM}/lib/${config_file:t}"
28 [ -f "${custom_config_file}" ] && config_file=${custom_config_file} 28 [ -f "${custom_config_file}" ] && config_file=${custom_config_file}
29 source $config_file 29 source $config_file
30 done 30 done
31 31
32 # Load all of your custom configurations from custom/
33 for config_file ($ZSH_CUSTOM/*.zsh(N)); do
34 source $config_file
35 done
36 unset config_file
37 32
38 is_plugin() { 33 is_plugin() {
39 local base_dir=$1 34 local base_dir=$1
40 local name=$2 35 local name=$2
41 test -f $base_dir/plugins/$name/$name.plugin.zsh \ 36 test -f $base_dir/plugins/$name/$name.plugin.zsh \
42 || test -f $base_dir/plugins/$name/_$name 37 || test -f $base_dir/plugins/$name/_$name
43 } 38 }
44 # Add all defined plugins to fpath. This must be done 39 # Add all defined plugins to fpath. This must be done
45 # before running compinit. 40 # before running compinit.
46 for plugin ($plugins); do 41 for plugin ($plugins); do
47 if is_plugin $ZSH_CUSTOM $plugin; then 42 if is_plugin $ZSH_CUSTOM $plugin; then
48 fpath=($ZSH_CUSTOM/plugins/$plugin $fpath) 43 fpath=($ZSH_CUSTOM/plugins/$plugin $fpath)
49 elif is_plugin $ZSH $plugin; then 44 elif is_plugin $ZSH $plugin; then
50 fpath=($ZSH/plugins/$plugin $fpath) 45 fpath=($ZSH/plugins/$plugin $fpath)
51 fi 46 fi
52 done 47 done
53 48
54 # Figure out the SHORT hostname 49 # Figure out the SHORT hostname
55 if [[ "$OSTYPE" = darwin* ]]; then 50 if [[ "$OSTYPE" = darwin* ]]; then
56 # OS X's $HOST changes with dhcp, etc. Use ComputerName if possible. 51 # OS X's $HOST changes with dhcp, etc. Use ComputerName if possible.
57 SHORT_HOST=$(scutil --get ComputerName 2>/dev/null) || SHORT_HOST=${HOST/.*/} 52 SHORT_HOST=$(scutil --get ComputerName 2>/dev/null) || SHORT_HOST=${HOST/.*/}
58 else 53 else
59 SHORT_HOST=${HOST/.*/} 54 SHORT_HOST=${HOST/.*/}
60 fi 55 fi
61 56
62 # Save the location of the current completion dump file. 57 # Save the location of the current completion dump file.
63 if [ -z "$ZSH_COMPDUMP" ]; then 58 if [ -z "$ZSH_COMPDUMP" ]; then
64 ZSH_COMPDUMP="${ZDOTDIR:-${HOME}}/.zcompdump-${SHORT_HOST}-${ZSH_VERSION}" 59 ZSH_COMPDUMP="${ZDOTDIR:-${HOME}}/.zcompdump-${SHORT_HOST}-${ZSH_VERSION}"
65 fi 60 fi
66 61
67 # Load and run compinit 62 # Load and run compinit
68 autoload -U compinit 63 autoload -U compinit
69 compinit -i -d "${ZSH_COMPDUMP}" 64 compinit -i -d "${ZSH_COMPDUMP}"
70 65
71 # Load all of the plugins that were defined in ~/.zshrc 66 # Load all of the plugins that were defined in ~/.zshrc
72 for plugin ($plugins); do 67 for plugin ($plugins); do
73 if [ -f $ZSH_CUSTOM/plugins/$plugin/$plugin.plugin.zsh ]; then 68 if [ -f $ZSH_CUSTOM/plugins/$plugin/$plugin.plugin.zsh ]; then
74 source $ZSH_CUSTOM/plugins/$plugin/$plugin.plugin.zsh 69 source $ZSH_CUSTOM/plugins/$plugin/$plugin.plugin.zsh
75 elif [ -f $ZSH/plugins/$plugin/$plugin.plugin.zsh ]; then 70 elif [ -f $ZSH/plugins/$plugin/$plugin.plugin.zsh ]; then
76 source $ZSH/plugins/$plugin/$plugin.plugin.zsh 71 source $ZSH/plugins/$plugin/$plugin.plugin.zsh
77 fi 72 fi
78 done 73 done
79 74
75 # Load all of your custom configurations from custom/
76 for config_file ($ZSH_CUSTOM/*.zsh(N)); do
77 source $config_file
78 done
79 unset config_file
80
80 # Load the theme 81 # Load the theme
81 if [ "$ZSH_THEME" = "random" ]; then 82 if [ "$ZSH_THEME" = "random" ]; then
82 themes=($ZSH/themes/*zsh-theme) 83 themes=($ZSH/themes/*zsh-theme)
83 N=${#themes[@]} 84 N=${#themes[@]}
84 ((N=(RANDOM%N)+1)) 85 ((N=(RANDOM%N)+1))
85 RANDOM_THEME=${themes[$N]} 86 RANDOM_THEME=${themes[$N]}
86 source "$RANDOM_THEME" 87 source "$RANDOM_THEME"
87 echo "[oh-my-zsh] Random theme '$RANDOM_THEME' loaded..." 88 echo "[oh-my-zsh] Random theme '$RANDOM_THEME' loaded..."
88 else 89 else
89 if [ ! "$ZSH_THEME" = "" ]; then 90 if [ ! "$ZSH_THEME" = "" ]; then
90 if [ -f "$ZSH_CUSTOM/$ZSH_THEME.zsh-theme" ]; then 91 if [ -f "$ZSH_CUSTOM/$ZSH_THEME.zsh-theme" ]; then
91 source "$ZSH_CUSTOM/$ZSH_THEME.zsh-theme" 92 source "$ZSH_CUSTOM/$ZSH_THEME.zsh-theme"
92 elif [ -f "$ZSH_CUSTOM/themes/$ZSH_THEME.zsh-theme" ]; then 93 elif [ -f "$ZSH_CUSTOM/themes/$ZSH_THEME.zsh-theme" ]; then
93 source "$ZSH_CUSTOM/themes/$ZSH_THEME.zsh-theme" 94 source "$ZSH_CUSTOM/themes/$ZSH_THEME.zsh-theme"
94 else 95 else
plugins/dirhistory/dirhistory.plugin.zsh
1 ## 1 ##
2 # Navigate directory history using ALT-LEFT and ALT-RIGHT. ALT-LEFT moves back to directories 2 # Navigate directory history using ALT-LEFT and ALT-RIGHT. ALT-LEFT moves back to directories
3 # that the user has changed to in the past, and ALT-RIGHT undoes ALT-LEFT. 3 # that the user has changed to in the past, and ALT-RIGHT undoes ALT-LEFT.
4 # 4 #
5 5
6 dirhistory_past=($PWD) 6 dirhistory_past=($PWD)
7 dirhistory_future=() 7 dirhistory_future=()
8 export dirhistory_past 8 export dirhistory_past
9 export dirhistory_future 9 export dirhistory_future
10 10
11 export DIRHISTORY_SIZE=30 11 export DIRHISTORY_SIZE=30
12 12
13 # Pop the last element of dirhistory_past. 13 # Pop the last element of dirhistory_past.
14 # Pass the name of the variable to return the result in. 14 # Pass the name of the variable to return the result in.
15 # Returns the element if the array was not empty, 15 # Returns the element if the array was not empty,
16 # otherwise returns empty string. 16 # otherwise returns empty string.
17 function pop_past() { 17 function pop_past() {
18 eval "$1='$dirhistory_past[$#dirhistory_past]'" 18 eval "$1='$dirhistory_past[$#dirhistory_past]'"
19 if [[ $#dirhistory_past -gt 0 ]]; then 19 if [[ $#dirhistory_past -gt 0 ]]; then
20 dirhistory_past[$#dirhistory_past]=() 20 dirhistory_past[$#dirhistory_past]=()
21 fi 21 fi
22 } 22 }
23 23
24 function pop_future() { 24 function pop_future() {
25 eval "$1='$dirhistory_future[$#dirhistory_future]'" 25 eval "$1='$dirhistory_future[$#dirhistory_future]'"
26 if [[ $#dirhistory_future -gt 0 ]]; then 26 if [[ $#dirhistory_future -gt 0 ]]; then
27 dirhistory_future[$#dirhistory_future]=() 27 dirhistory_future[$#dirhistory_future]=()
28 fi 28 fi
29 } 29 }
30 30
31 # Push a new element onto the end of dirhistory_past. If the size of the array 31 # Push a new element onto the end of dirhistory_past. If the size of the array
32 # is >= DIRHISTORY_SIZE, the array is shifted 32 # is >= DIRHISTORY_SIZE, the array is shifted
33 function push_past() { 33 function push_past() {
34 if [[ $#dirhistory_past -ge $DIRHISTORY_SIZE ]]; then 34 if [[ $#dirhistory_past -ge $DIRHISTORY_SIZE ]]; then
35 shift dirhistory_past 35 shift dirhistory_past
36 fi 36 fi
37 if [[ $#dirhistory_past -eq 0 || $dirhistory_past[$#dirhistory_past] != "$1" ]]; then 37 if [[ $#dirhistory_past -eq 0 || $dirhistory_past[$#dirhistory_past] != "$1" ]]; then
38 dirhistory_past+=($1) 38 dirhistory_past+=($1)
39 fi 39 fi
40 } 40 }
41 41
42 function push_future() { 42 function push_future() {
43 if [[ $#dirhistory_future -ge $DIRHISTORY_SIZE ]]; then 43 if [[ $#dirhistory_future -ge $DIRHISTORY_SIZE ]]; then
44 shift dirhistory_future 44 shift dirhistory_future
45 fi 45 fi
46 if [[ $#dirhistory_future -eq 0 || $dirhistory_futuret[$#dirhistory_future] != "$1" ]]; then 46 if [[ $#dirhistory_future -eq 0 || $dirhistory_futuret[$#dirhistory_future] != "$1" ]]; then
47 dirhistory_future+=($1) 47 dirhistory_future+=($1)
48 fi 48 fi
49 } 49 }
50 50
51 # Called by zsh when directory changes 51 # Called by zsh when directory changes
52 function chpwd() { 52 chpwd_functions+=(chpwd_dirhistory)
53 function chpwd_dirhistory() {
53 push_past $PWD 54 push_past $PWD
54 # If DIRHISTORY_CD is not set... 55 # If DIRHISTORY_CD is not set...
55 if [[ -z "${DIRHISTORY_CD+x}" ]]; then 56 if [[ -z "${DIRHISTORY_CD+x}" ]]; then
56 # ... clear future. 57 # ... clear future.
57 dirhistory_future=() 58 dirhistory_future=()
58 fi 59 fi
59 } 60 }
60 61
61 function dirhistory_cd(){ 62 function dirhistory_cd(){
62 DIRHISTORY_CD="1" 63 DIRHISTORY_CD="1"
63 cd $1 64 cd $1
64 unset DIRHISTORY_CD 65 unset DIRHISTORY_CD
65 } 66 }
66 67
67 # Move backward in directory history 68 # Move backward in directory history
68 function dirhistory_back() { 69 function dirhistory_back() {
69 local cw="" 70 local cw=""
70 local d="" 71 local d=""
71 # Last element in dirhistory_past is the cwd. 72 # Last element in dirhistory_past is the cwd.
72 73
73 pop_past cw 74 pop_past cw
74 if [[ "" == "$cw" ]]; then 75 if [[ "" == "$cw" ]]; then
75 # Someone overwrote our variable. Recover it. 76 # Someone overwrote our variable. Recover it.
76 dirhistory_past=($PWD) 77 dirhistory_past=($PWD)
77 return 78 return
78 fi 79 fi
79 80
80 pop_past d 81 pop_past d
81 if [[ "" != "$d" ]]; then 82 if [[ "" != "$d" ]]; then
82 dirhistory_cd $d 83 dirhistory_cd $d
83 push_future $cw 84 push_future $cw
84 else 85 else
85 push_past $cw 86 push_past $cw
86 fi 87 fi
87 } 88 }
88 89
89 90
90 # Move forward in directory history 91 # Move forward in directory history
91 function dirhistory_forward() { 92 function dirhistory_forward() {
92 local d="" 93 local d=""
93 94
94 pop_future d 95 pop_future d
95 if [[ "" != "$d" ]]; then 96 if [[ "" != "$d" ]]; then
96 dirhistory_cd $d 97 dirhistory_cd $d
97 push_past $d 98 push_past $d
98 fi 99 fi
99 } 100 }
100 101
101 102
102 # Bind keys to history navigation 103 # Bind keys to history navigation
103 function dirhistory_zle_dirhistory_back() { 104 function dirhistory_zle_dirhistory_back() {
104 # Erase current line in buffer 105 # Erase current line in buffer
105 zle kill-buffer 106 zle kill-buffer
106 dirhistory_back 107 dirhistory_back
107 zle accept-line 108 zle accept-line
108 } 109 }
109 110
110 function dirhistory_zle_dirhistory_future() { 111 function dirhistory_zle_dirhistory_future() {
111 # Erase current line in buffer 112 # Erase current line in buffer
112 zle kill-buffer 113 zle kill-buffer
113 dirhistory_forward 114 dirhistory_forward
114 zle accept-line 115 zle accept-line
115 } 116 }
116 117
117 zle -N dirhistory_zle_dirhistory_back 118 zle -N dirhistory_zle_dirhistory_back
118 # xterm in normal mode 119 # xterm in normal mode
119 bindkey "\e[3D" dirhistory_zle_dirhistory_back 120 bindkey "\e[3D" dirhistory_zle_dirhistory_back
120 bindkey "\e[1;3D" dirhistory_zle_dirhistory_back 121 bindkey "\e[1;3D" dirhistory_zle_dirhistory_back
121 # Putty: 122 # Putty:
122 bindkey "\e\e[D" dirhistory_zle_dirhistory_back 123 bindkey "\e\e[D" dirhistory_zle_dirhistory_back
123 # GNU screen: 124 # GNU screen:
124 bindkey "\eO3D" dirhistory_zle_dirhistory_back 125 bindkey "\eO3D" dirhistory_zle_dirhistory_back
125 126
126 zle -N dirhistory_zle_dirhistory_future 127 zle -N dirhistory_zle_dirhistory_future
127 bindkey "\e[3C" dirhistory_zle_dirhistory_future 128 bindkey "\e[3C" dirhistory_zle_dirhistory_future
128 bindkey "\e[1;3C" dirhistory_zle_dirhistory_future 129 bindkey "\e[1;3C" dirhistory_zle_dirhistory_future
129 bindkey "\e\e[C" dirhistory_zle_dirhistory_future 130 bindkey "\e\e[C" dirhistory_zle_dirhistory_future
130 bindkey "\eO3C" dirhistory_zle_dirhistory_future 131 bindkey "\eO3C" dirhistory_zle_dirhistory_future
131 132
132 133
133 134
plugins/dirpersist/dirpersist.plugin.zsh
1 # Save dirstack history to .zdirs 1 # Save dirstack history to .zdirs
2 # adapted from: 2 # adapted from:
3 # github.com/grml/grml-etc-core/blob/master/etc/zsh/zshrc#L1547 3 # github.com/grml/grml-etc-core/blob/master/etc/zsh/zshrc#L1547
4 4
5 DIRSTACKSIZE=${DIRSTACKSIZE:-20} 5 DIRSTACKSIZE=${DIRSTACKSIZE:-20}
6 dirstack_file=${dirstack_file:-${HOME}/.zdirs} 6 dirstack_file=${dirstack_file:-${HOME}/.zdirs}
7 7
8 if [[ -f ${dirstack_file} ]] && [[ ${#dirstack[*]} -eq 0 ]] ; then 8 if [[ -f ${dirstack_file} ]] && [[ ${#dirstack[*]} -eq 0 ]] ; then
9 dirstack=( ${(f)"$(< $dirstack_file)"} ) 9 dirstack=( ${(f)"$(< $dirstack_file)"} )
10 # "cd -" won't work after login by just setting $OLDPWD, so 10 # "cd -" won't work after login by just setting $OLDPWD, so
11 [[ -d $dirstack[1] ]] && cd $dirstack[1] && cd $OLDPWD 11 [[ -d $dirstack[1] ]] && cd $dirstack[1] && cd $OLDPWD
12 fi 12 fi
13 13
14 chpwd() { 14 chpwd_functions+=(chpwd_dirpersist)
15 chpwd_dirpersist() {
15 if (( $DIRSTACKSIZE <= 0 )) || [[ -z $dirstack_file ]]; then return; fi 16 if (( $DIRSTACKSIZE <= 0 )) || [[ -z $dirstack_file ]]; then return; fi
16 local -ax my_stack 17 local -ax my_stack
17 my_stack=( ${PWD} ${dirstack} ) 18 my_stack=( ${PWD} ${dirstack} )
18 builtin print -l ${(u)my_stack} >! ${dirstack_file} 19 builtin print -l ${(u)my_stack} >! ${dirstack_file}
19 } 20 }
20 21
plugins/emoji/README.md
File was created 1 # emoji plugin
2
3 Support for conveniently working with Unicode emoji in Zsh.
4
5 ## Features
6
7 This plugin provides support for working with Unicode emoji characters in `zsh` using human-readable identifiers. It provides global variables which map emoji names to the actual characters, country names to their flags, and some named groupings of emoji. It also provides associated functions for displaying them.
8
9 #### Variables
10
11 Variable | Description
12 ----------------- | --------------------------------
13 $emoji | Maps emoji names to characters
14 $emoji_flags | Maps country names to flag characters (using region indicators)
15 $emoji_groups | Named groups of emoji. Keys are group names; values are whitespace-separated lists of character names
16
17 You may define new emoji groups at run time by modifying `$emoji_groups`. The special group name `all` is reserved for use by the plugin. You should not modify `$emoji` or `$emoji_flags`.
18
19 #### Functions
20
21 Function | Description
22 ---------------- | -------------------------------
23 random_emoji | Prints a random emoji character
24 display_emoji | Displays emoji, along with their names
25
26 ## Usage and Examples
27
28 To output a specific emoji, use:
29 ```
30 $> echo $emoji[<name>]
31 ```
32 E.g.:
33 ```
34 $> echo $emoji[mouse_face]
35 ```
36
37 To output a random emoji, use:
38 ```
39 $> random_emoji
40 ```
41 To output a random emoji from a particular group, use:
42 ```
43 $> random_emoji <group>
44 ```
45 E.g.:
46 ```
47 $> random_emoji fruits
48 $> random_emoji animals
49 $> random_emoji vehicles
50 $> random_emoji faces
51 ```
52
53 The defined group names can be found with `echo ${(k)emoji_groups}`.
54
55 To list all available emoji with their names, use:
56 ```
57 $> display_emoji
58 $> display_emoji fruits
59 $> display_emoji animals
60 $> display_emoji vehicles
61 $> display_emoji faces
62 ```
63
64 To use emoji in a prompt:
65 ```
66 PROMPT="$emoji[penguin] > ""
67 PROMPT='$(random_emoji fruits) > '
68 surfer=$emoji[surfer]
69 PROMPT="$surfer > "
70 ```
71
72 ## Technical Details
73
74 The emoji names and codes are sourced from Unicode Technical Report \#51, which provides information on emoji support in Unicode. It can be found at http://www.unicode.org/reports/tr51/index.html.
75
76 The group definitions are added by this OMZ plugin. They are not based on external definitions. (As far as I can tell. -apjanke)
77
78 The values in the `$emoji*` maps are the emoji characters themselves, not escape sequences or other forms that require interpretation. They can be used in any context and do not require escape sequence support from commands like `echo` or `print`.
79
80 The emoji in the main `$emoji` map are standalone character sequences which can all be output on their own, without worrying about combining characters. The values may actually be multi-code-point sequences, instead of a single code point, and may include combining characters in those sequences. But they're arranged so their effects do not extend beyond that sequence.
81
82 The exception to this is the skin tone variation selectors. These are included in the main `$emoji` map because they can be displayed on their own, as well as used as combining characters. (If they follow a character that is not one of the emoji characters they combine with, they are displayed as color swatches.)
83
84
85 ## Experimental Features
86
87 This defines some additional variables and functions, but these are experimental and subject to change at any time. You shouldn't rely on them being available. They're mostly for the use of emoji plugin developers to help decide what to include in future revisions.
88
89 Variables:
90
91 Variable | Description
92 ----------------- | --------------------------------
93 $emoji2 | Auxiliary and combining characters
94 $emoji_skintone | Skin tone modifiers (from Unicode 8.0)
95
96
97 #### Skin Tone Variation Selection
98
99 This includes experimental support for the skin tone Variation Selectors introduced with Unicode 8.0, which let you select different skin tones for emoji involving humans.
100
101 NOTE: This really is experimental. The skin tone selectors are a relatively new feature and may not be supported by all systems. And the support in this plugin is a work in progress. It may not work in all places. In fact, I haven't gotten it to work anywhere yet. -apjanke
102
103 The "variation selectors" are combining characters which change the appearance of the preceding character. A variation selector character can be output immediately following a human emoji to change its skin tone color. You can also output a variation selector on its own to display a color swatch of that skin tone.
104
105 The `$emoji_skintone` associative array maps skin tone IDs to the variation selector characters. To use one, output it immediately following a smiley or other human emoji.
106
107 ```
108 echo "$emoji[smiling_face_with_open_mouth]$emoji_skintone[4]"
109 ```
110
111 Note that `$emoji_skintone` is an associative array, and its keys are the *names* of "Fitzpatrick Skin Type" groups, not linear indexes into a normal array. The names are `1_2`, `3`, `4`, `5`, and `6`. (Types 1 and 2 are combined into a single color.) See the [Diversity section in Unicode TR 51](http://www.unicode.org/reports/tr51/index.html#Diversity) for details.
112
113 ## TODO
114
115 These are things that could be enhanced in future revisions of the plugin.
116
117 * Incorporate CLDR data for ordering and groupings
118 * Short :bracket: style names (from gemoji)
119 * Incorporate `gemoji` data
120 * Country codes for flags
121 * ZWJ combining function?
122
123 #### Gemoji support
124
125 The [gemoji project](https://github.com/github/gemoji) seems to be the de facto main source for short names and other emoji-related metadata that isn't included in the official Unicode reports. (I'm saying this just from looking at the google results for "emoji short names" and related searches. -apjanke)
126
127 If this plugin is updated to provide short names, CLDR sorting data, and similar stuff, it should probably be changed to use the Gemoji project, and the `update_emoji.pl` script be rewritten in Ruby so it can use the Gemoji library directly instead of parsing its data files.
128
129 This does *not* mean that it should use Gemoji at run time. None of the `zsh` plugin stuff should call Gemoji or Ruby code. Rather, the "build time" `update_emoji.pl` script should be rewritten to use Gemoji to generate a pure-native-`zsh` character definition file which would be checked in to the repo and can be called by OMZ users without having Gemoji installed.
130
131 #### ZWJ combining function
132
133 One of the newer features of Unicode emoji is the ability to use the "Zero-Width Joiner" character to compose multiple emoji characters in to a single "emoji ligature" glyph. For example, this is [how Apple supports "family" emoji with various genders and skin tones](http://www.unicode.org/reports/tr51/index.html#ZWJ_Sequences).
134
135 These are a pain to write out (and probably worse to read), and it might be convenient to have a couple functions for concisely composing them, if wider support for them appears.
136
plugins/emoji/emoji-char-definitions.zsh
File was created 1
2 # emoji-char-definitions.zsh - Emoji character definitions for oh-my-zsh emoji plugin
3 #
4 # This file is auto-generated by update_emoji.pl. Do not edit it manually.
5 #
6 # This contains the definition for:
7 # $emoji - which maps character names to Unicode characters
8 # $emoji_flags - maps country names to Unicode flag characters using region indicators
9
10 typeset -gAH emoji
11 typeset -gAH emoji_flags
12
13 emoji[copyright_sign]=$'\U00A9'
14 emoji[registered_sign]=$'\U00AE'
15 emoji[double_exclamation_mark]=$'\U203C'
16 emoji[exclamation_question_mark]=$'\U2049'
17 emoji[trade_mark_sign]=$'\U2122'
18 emoji[information_source]=$'\U2139'
19 emoji[left_right_arrow]=$'\U2194'
20 emoji[up_down_arrow]=$'\U2195'
21 emoji[north_west_arrow]=$'\U2196'
22 emoji[north_east_arrow]=$'\U2197'
23 emoji[south_east_arrow]=$'\U2198'
24 emoji[south_west_arrow]=$'\U2199'
25 emoji[leftwards_arrow_with_hook]=$'\U21A9'
26 emoji[rightwards_arrow_with_hook]=$'\U21AA'
27 emoji[watch]=$'\U231A'
28 emoji[hourglass]=$'\U231B'
29 emoji[keyboard]=$'\U2328'
30 emoji[eject_symbol]=$'\U23CF'
31 emoji[black_right_pointing_double_triangle]=$'\U23E9'
32 emoji[black_left_pointing_double_triangle]=$'\U23EA'
33 emoji[black_up_pointing_double_triangle]=$'\U23EB'
34 emoji[black_down_pointing_double_triangle]=$'\U23EC'
35 emoji[black_right_pointing_double_triangle_with_vertical_bar]=$'\U23ED'
36 emoji[black_left_pointing_double_triangle_with_vertical_bar]=$'\U23EE'
37 emoji[black_right_pointing_triangle_with_double_vertical_bar]=$'\U23EF'
38 emoji[alarm_clock]=$'\U23F0'
39 emoji[stopwatch]=$'\U23F1'
40 emoji[timer_clock]=$'\U23F2'
41 emoji[hourglass_with_flowing_sand]=$'\U23F3'
42 emoji[double_vertical_bar]=$'\U23F8'
43 emoji[black_square_for_stop]=$'\U23F9'
44 emoji[black_circle_for_record]=$'\U23FA'
45 emoji[circled_latin_capital_letter_m]=$'\U24C2'
46 emoji[black_small_square]=$'\U25AA'
47 emoji[white_small_square]=$'\U25AB'
48 emoji[black_right_pointing_triangle]=$'\U25B6'
49 emoji[black_left_pointing_triangle]=$'\U25C0'
50 emoji[white_medium_square]=$'\U25FB'
51 emoji[black_medium_square]=$'\U25FC'
52 emoji[white_medium_small_square]=$'\U25FD'
53 emoji[black_medium_small_square]=$'\U25FE'
54 emoji[black_sun_with_rays]=$'\U2600'
55 emoji[cloud]=$'\U2601'
56 emoji[umbrella]=$'\U2602'
57 emoji[snowman]=$'\U2603'
58 emoji[comet]=$'\U2604'
59 emoji[black_telephone]=$'\U260E'
60 emoji[ballot_box_with_check]=$'\U2611'
61 emoji[umbrella_with_rain_drops]=$'\U2614'
62 emoji[hot_beverage]=$'\U2615'
63 emoji[shamrock]=$'\U2618'
64 emoji[white_up_pointing_index]=$'\U261D'
65 emoji[skull_and_crossbones]=$'\U2620'
66 emoji[radioactive_sign]=$'\U2622'
67 emoji[biohazard_sign]=$'\U2623'
68 emoji[orthodox_cross]=$'\U2626'
69 emoji[star_and_crescent]=$'\U262A'
70 emoji[peace_symbol]=$'\U262E'
71 emoji[yin_yang]=$'\U262F'
72 emoji[wheel_of_dharma]=$'\U2638'
73 emoji[white_frowning_face]=$'\U2639'
74 emoji[white_smiling_face]=$'\U263A'
75 emoji[aries]=$'\U2648'
76 emoji[taurus]=$'\U2649'
77 emoji[gemini]=$'\U264A'
78 emoji[cancer]=$'\U264B'
79 emoji[leo]=$'\U264C'
80 emoji[virgo]=$'\U264D'
81 emoji[libra]=$'\U264E'
82 emoji[scorpius]=$'\U264F'
83 emoji[sagittarius]=$'\U2650'
84 emoji[capricorn]=$'\U2651'
85 emoji[aquarius]=$'\U2652'
86 emoji[pisces]=$'\U2653'
87 emoji[black_spade_suit]=$'\U2660'
88 emoji[black_club_suit]=$'\U2663'
89 emoji[black_heart_suit]=$'\U2665'
90 emoji[black_diamond_suit]=$'\U2666'
91 emoji[hot_springs]=$'\U2668'
92 emoji[black_universal_recycling_symbol]=$'\U267B'
93 emoji[wheelchair_symbol]=$'\U267F'
94 emoji[hammer_and_pick]=$'\U2692'
95 emoji[anchor]=$'\U2693'
96 emoji[crossed_swords]=$'\U2694'
97 emoji[scales]=$'\U2696'
98 emoji[alembic]=$'\U2697'
99 emoji[gear]=$'\U2699'
100 emoji[atom_symbol]=$'\U269B'
101 emoji[fleur_de_lis]=$'\U269C'
102 emoji[warning_sign]=$'\U26A0'
103 emoji[high_voltage_sign]=$'\U26A1'
104 emoji[medium_white_circle]=$'\U26AA'
105 emoji[medium_black_circle]=$'\U26AB'
106 emoji[coffin]=$'\U26B0'
107 emoji[funeral_urn]=$'\U26B1'
108 emoji[soccer_ball]=$'\U26BD'
109 emoji[baseball]=$'\U26BE'
110 emoji[snowman_without_snow]=$'\U26C4'
111 emoji[sun_behind_cloud]=$'\U26C5'
112 emoji[thunder_cloud_and_rain]=$'\U26C8'
113 emoji[ophiuchus]=$'\U26CE'
114 emoji[pick]=$'\U26CF'
115 emoji[helmet_with_white_cross]=$'\U26D1'
116 emoji[chains]=$'\U26D3'
117 emoji[no_entry]=$'\U26D4'
118 emoji[shinto_shrine]=$'\U26E9'
119 emoji[church]=$'\U26EA'
120 emoji[mountain]=$'\U26F0'
121 emoji[umbrella_on_ground]=$'\U26F1'
122 emoji[fountain]=$'\U26F2'
123 emoji[flag_in_hole]=$'\U26F3'
124 emoji[ferry]=$'\U26F4'
125 emoji[sailboat]=$'\U26F5'
126 emoji[skier]=$'\U26F7'
127 emoji[ice_skate]=$'\U26F8'
128 emoji[person_with_ball]=$'\U26F9'
129 emoji[tent]=$'\U26FA'
130 emoji[fuel_pump]=$'\U26FD'
131 emoji[black_scissors]=$'\U2702'
132 emoji[white_heavy_check_mark]=$'\U2705'
133 emoji[airplane]=$'\U2708'
134 emoji[envelope]=$'\U2709'
135 emoji[raised_fist]=$'\U270A'
136 emoji[raised_hand]=$'\U270B'
137 emoji[victory_hand]=$'\U270C'
138 emoji[writing_hand]=$'\U270D'
139 emoji[pencil]=$'\U270F'
140 emoji[black_nib]=$'\U2712'
141 emoji[heavy_check_mark]=$'\U2714'
142 emoji[heavy_multiplication_x]=$'\U2716'
143 emoji[latin_cross]=$'\U271D'
144 emoji[star_of_david]=$'\U2721'
145 emoji[sparkles]=$'\U2728'
146 emoji[eight_spoked_asterisk]=$'\U2733'
147 emoji[eight_pointed_black_star]=$'\U2734'
148 emoji[snowflake]=$'\U2744'
149 emoji[sparkle]=$'\U2747'
150 emoji[cross_mark]=$'\U274C'
151 emoji[negative_squared_cross_mark]=$'\U274E'
152 emoji[black_question_mark_ornament]=$'\U2753'
153 emoji[white_question_mark_ornament]=$'\U2754'
154 emoji[white_exclamation_mark_ornament]=$'\U2755'
155 emoji[heavy_exclamation_mark_symbol]=$'\U2757'
156 emoji[heavy_heart_exclamation_mark_ornament]=$'\U2763'
157 emoji[heavy_black_heart]=$'\U2764'
158 emoji[heavy_plus_sign]=$'\U2795'
159 emoji[heavy_minus_sign]=$'\U2796'
160 emoji[heavy_division_sign]=$'\U2797'
161 emoji[black_rightwards_arrow]=$'\U27A1'
162 emoji[curly_loop]=$'\U27B0'
163 emoji[double_curly_loop]=$'\U27BF'
164 emoji[arrow_pointing_rightwards_then_curving_upwards]=$'\U2934'
165 emoji[arrow_pointing_rightwards_then_curving_downwards]=$'\U2935'
166 emoji[leftwards_black_arrow]=$'\U2B05'
167 emoji[upwards_black_arrow]=$'\U2B06'
168 emoji[downwards_black_arrow]=$'\U2B07'
169 emoji[black_large_square]=$'\U2B1B'
170 emoji[white_large_square]=$'\U2B1C'
171 emoji[white_medium_star]=$'\U2B50'
172 emoji[heavy_large_circle]=$'\U2B55'
173 emoji[wavy_dash]=$'\U3030'
174 emoji[part_alternation_mark]=$'\U303D'
175 emoji[circled_ideograph_congratulation]=$'\U3297'
176 emoji[circled_ideograph_secret]=$'\U3299'
177 emoji[mahjong_tile_red_dragon]=$'\U1F004'
178 emoji[playing_card_black_joker]=$'\U1F0CF'
179 emoji[negative_squared_latin_capital_letter_a]=$'\U1F170'
180 emoji[negative_squared_latin_capital_letter_b]=$'\U1F171'
181 emoji[negative_squared_latin_capital_letter_o]=$'\U1F17E'
182 emoji[negative_squared_latin_capital_letter_p]=$'\U1F17F'
183 emoji[negative_squared_ab]=$'\U1F18E'
184 emoji[squared_cl]=$'\U1F191'
185 emoji[squared_cool]=$'\U1F192'
186 emoji[squared_free]=$'\U1F193'
187 emoji[squared_id]=$'\U1F194'
188 emoji[squared_new]=$'\U1F195'
189 emoji[squared_ng]=$'\U1F196'
190 emoji[squared_ok]=$'\U1F197'
191 emoji[squared_sos]=$'\U1F198'
192 emoji[squared_up_with_exclamation_mark]=$'\U1F199'
193 emoji[squared_vs]=$'\U1F19A'
194 emoji[squared_katakana_koko]=$'\U1F201'
195 emoji[squared_katakana_sa]=$'\U1F202'
196 emoji[squared_cjk_unified_ideograph_7121]=$'\U1F21A'
197 emoji[squared_cjk_unified_ideograph_6307]=$'\U1F22F'
198 emoji[squared_cjk_unified_ideograph_7981]=$'\U1F232'
199 emoji[squared_cjk_unified_ideograph_7a7a]=$'\U1F233'
200 emoji[squared_cjk_unified_ideograph_5408]=$'\U1F234'
201 emoji[squared_cjk_unified_ideograph_6e80]=$'\U1F235'
202 emoji[squared_cjk_unified_ideograph_6709]=$'\U1F236'
203 emoji[squared_cjk_unified_ideograph_6708]=$'\U1F237'
204 emoji[squared_cjk_unified_ideograph_7533]=$'\U1F238'
205 emoji[squared_cjk_unified_ideograph_5272]=$'\U1F239'
206 emoji[squared_cjk_unified_ideograph_55b6]=$'\U1F23A'
207 emoji[circled_ideograph_advantage]=$'\U1F250'
208 emoji[circled_ideograph_accept]=$'\U1F251'
209 emoji[cyclone]=$'\U1F300'
210 emoji[foggy]=$'\U1F301'
211 emoji[closed_umbrella]=$'\U1F302'
212 emoji[night_with_stars]=$'\U1F303'
213 emoji[sunrise_over_mountains]=$'\U1F304'
214 emoji[sunrise]=$'\U1F305'
215 emoji[cityscape_at_dusk]=$'\U1F306'
216 emoji[sunset_over_buildings]=$'\U1F307'
217 emoji[rainbow]=$'\U1F308'
218 emoji[bridge_at_night]=$'\U1F309'
219 emoji[water_wave]=$'\U1F30A'
220 emoji[volcano]=$'\U1F30B'
221 emoji[milky_way]=$'\U1F30C'
222 emoji[earth_globe_europe_africa]=$'\U1F30D'
223 emoji[earth_globe_americas]=$'\U1F30E'
224 emoji[earth_globe_asia_australia]=$'\U1F30F'
225 emoji[globe_with_meridians]=$'\U1F310'
226 emoji[new_moon_symbol]=$'\U1F311'
227 emoji[waxing_crescent_moon_symbol]=$'\U1F312'
228 emoji[first_quarter_moon_symbol]=$'\U1F313'
229 emoji[waxing_gibbous_moon_symbol]=$'\U1F314'
230 emoji[full_moon_symbol]=$'\U1F315'
231 emoji[waning_gibbous_moon_symbol]=$'\U1F316'
232 emoji[last_quarter_moon_symbol]=$'\U1F317'
233 emoji[waning_crescent_moon_symbol]=$'\U1F318'
234 emoji[crescent_moon]=$'\U1F319'
235 emoji[new_moon_with_face]=$'\U1F31A'
236 emoji[first_quarter_moon_with_face]=$'\U1F31B'
237 emoji[last_quarter_moon_with_face]=$'\U1F31C'
238 emoji[full_moon_with_face]=$'\U1F31D'
239 emoji[sun_with_face]=$'\U1F31E'
240 emoji[glowing_star]=$'\U1F31F'
241 emoji[shooting_star]=$'\U1F320'
242 emoji[thermometer]=$'\U1F321'
243 emoji[white_sun_with_small_cloud]=$'\U1F324'
244 emoji[white_sun_behind_cloud]=$'\U1F325'
245 emoji[white_sun_behind_cloud_with_rain]=$'\U1F326'
246 emoji[cloud_with_rain]=$'\U1F327'
247 emoji[cloud_with_snow]=$'\U1F328'
248 emoji[cloud_with_lightning]=$'\U1F329'
249 emoji[cloud_with_tornado]=$'\U1F32A'
250 emoji[fog]=$'\U1F32B'
251 emoji[wind_blowing_face]=$'\U1F32C'
252 emoji[hot_dog]=$'\U1F32D'
253 emoji[taco]=$'\U1F32E'
254 emoji[burrito]=$'\U1F32F'
255 emoji[chestnut]=$'\U1F330'
256 emoji[seedling]=$'\U1F331'
257 emoji[evergreen_tree]=$'\U1F332'
258 emoji[deciduous_tree]=$'\U1F333'
259 emoji[palm_tree]=$'\U1F334'
260 emoji[cactus]=$'\U1F335'
261 emoji[hot_pepper]=$'\U1F336'
262 emoji[tulip]=$'\U1F337'
263 emoji[cherry_blossom]=$'\U1F338'
264 emoji[rose]=$'\U1F339'
265 emoji[hibiscus]=$'\U1F33A'
266 emoji[sunflower]=$'\U1F33B'
267 emoji[blossom]=$'\U1F33C'
268 emoji[ear_of_maize]=$'\U1F33D'
269 emoji[ear_of_rice]=$'\U1F33E'
270 emoji[herb]=$'\U1F33F'
271 emoji[four_leaf_clover]=$'\U1F340'
272 emoji[maple_leaf]=$'\U1F341'
273 emoji[fallen_leaf]=$'\U1F342'
274 emoji[leaf_fluttering_in_wind]=$'\U1F343'
275 emoji[mushroom]=$'\U1F344'
276 emoji[tomato]=$'\U1F345'
277 emoji[aubergine]=$'\U1F346'
278 emoji[grapes]=$'\U1F347'
279 emoji[melon]=$'\U1F348'
280 emoji[watermelon]=$'\U1F349'
281 emoji[tangerine]=$'\U1F34A'
282 emoji[lemon]=$'\U1F34B'
283 emoji[banana]=$'\U1F34C'
284 emoji[pineapple]=$'\U1F34D'
285 emoji[red_apple]=$'\U1F34E'
286 emoji[green_apple]=$'\U1F34F'
287 emoji[pear]=$'\U1F350'
288 emoji[peach]=$'\U1F351'
289 emoji[cherries]=$'\U1F352'
290 emoji[strawberry]=$'\U1F353'
291 emoji[hamburger]=$'\U1F354'
292 emoji[slice_of_pizza]=$'\U1F355'
293 emoji[meat_on_bone]=$'\U1F356'
294 emoji[poultry_leg]=$'\U1F357'
295 emoji[rice_cracker]=$'\U1F358'
296 emoji[rice_ball]=$'\U1F359'
297 emoji[cooked_rice]=$'\U1F35A'
298 emoji[curry_and_rice]=$'\U1F35B'
299 emoji[steaming_bowl]=$'\U1F35C'
300 emoji[spaghetti]=$'\U1F35D'
301 emoji[bread]=$'\U1F35E'
302 emoji[french_fries]=$'\U1F35F'
303 emoji[roasted_sweet_potato]=$'\U1F360'
304 emoji[dango]=$'\U1F361'
305 emoji[oden]=$'\U1F362'
306 emoji[sushi]=$'\U1F363'
307 emoji[fried_shrimp]=$'\U1F364'
308 emoji[fish_cake_with_swirl_design]=$'\U1F365'
309 emoji[soft_ice_cream]=$'\U1F366'
310 emoji[shaved_ice]=$'\U1F367'
311 emoji[ice_cream]=$'\U1F368'
312 emoji[doughnut]=$'\U1F369'
313 emoji[cookie]=$'\U1F36A'
314 emoji[chocolate_bar]=$'\U1F36B'
315 emoji[candy]=$'\U1F36C'
316 emoji[lollipop]=$'\U1F36D'
317 emoji[custard]=$'\U1F36E'
318 emoji[honey_pot]=$'\U1F36F'
319 emoji[shortcake]=$'\U1F370'
320 emoji[bento_box]=$'\U1F371'
321 emoji[pot_of_food]=$'\U1F372'
322 emoji[cooking]=$'\U1F373'
323 emoji[fork_and_knife]=$'\U1F374'
324 emoji[teacup_without_handle]=$'\U1F375'
325 emoji[sake_bottle_and_cup]=$'\U1F376'
326 emoji[wine_glass]=$'\U1F377'
327 emoji[cocktail_glass]=$'\U1F378'
328 emoji[tropical_drink]=$'\U1F379'
329 emoji[beer_mug]=$'\U1F37A'
330 emoji[clinking_beer_mugs]=$'\U1F37B'
331 emoji[baby_bottle]=$'\U1F37C'
332 emoji[fork_and_knife_with_plate]=$'\U1F37D'
333 emoji[bottle_with_popping_cork]=$'\U1F37E'
334 emoji[popcorn]=$'\U1F37F'
335 emoji[ribbon]=$'\U1F380'
336 emoji[wrapped_present]=$'\U1F381'
337 emoji[birthday_cake]=$'\U1F382'
338 emoji[jack_o_lantern]=$'\U1F383'
339 emoji[christmas_tree]=$'\U1F384'
340 emoji[father_christmas]=$'\U1F385'
341 emoji[fireworks]=$'\U1F386'
342 emoji[firework_sparkler]=$'\U1F387'
343 emoji[balloon]=$'\U1F388'
344 emoji[party_popper]=$'\U1F389'
345 emoji[confetti_ball]=$'\U1F38A'
346 emoji[tanabata_tree]=$'\U1F38B'
347 emoji[crossed_flags]=$'\U1F38C'
348 emoji[pine_decoration]=$'\U1F38D'
349 emoji[japanese_dolls]=$'\U1F38E'
350 emoji[carp_streamer]=$'\U1F38F'
351 emoji[wind_chime]=$'\U1F390'
352 emoji[moon_viewing_ceremony]=$'\U1F391'
353 emoji[school_satchel]=$'\U1F392'
354 emoji[graduation_cap]=$'\U1F393'
355 emoji[military_medal]=$'\U1F396'
356 emoji[reminder_ribbon]=$'\U1F397'
357 emoji[studio_microphone]=$'\U1F399'
358 emoji[level_slider]=$'\U1F39A'
359 emoji[control_knobs]=$'\U1F39B'
360 emoji[film_frames]=$'\U1F39E'
361 emoji[admission_tickets]=$'\U1F39F'
362 emoji[carousel_horse]=$'\U1F3A0'
363 emoji[ferris_wheel]=$'\U1F3A1'
364 emoji[roller_coaster]=$'\U1F3A2'
365 emoji[fishing_pole_and_fish]=$'\U1F3A3'
366 emoji[microphone]=$'\U1F3A4'
367 emoji[movie_camera]=$'\U1F3A5'
368 emoji[cinema]=$'\U1F3A6'
369 emoji[headphone]=$'\U1F3A7'
370 emoji[artist_palette]=$'\U1F3A8'
371 emoji[top_hat]=$'\U1F3A9'
372 emoji[circus_tent]=$'\U1F3AA'
373 emoji[ticket]=$'\U1F3AB'
374 emoji[clapper_board]=$'\U1F3AC'
375 emoji[performing_arts]=$'\U1F3AD'
376 emoji[video_game]=$'\U1F3AE'
377 emoji[direct_hit]=$'\U1F3AF'
378 emoji[slot_machine]=$'\U1F3B0'
379 emoji[billiards]=$'\U1F3B1'
380 emoji[game_die]=$'\U1F3B2'
381 emoji[bowling]=$'\U1F3B3'
382 emoji[flower_playing_cards]=$'\U1F3B4'
383 emoji[musical_note]=$'\U1F3B5'
384 emoji[multiple_musical_notes]=$'\U1F3B6'
385 emoji[saxophone]=$'\U1F3B7'
386 emoji[guitar]=$'\U1F3B8'
387 emoji[musical_keyboard]=$'\U1F3B9'
388 emoji[trumpet]=$'\U1F3BA'
389 emoji[violin]=$'\U1F3BB'
390 emoji[musical_score]=$'\U1F3BC'
391 emoji[running_shirt_with_sash]=$'\U1F3BD'
392 emoji[tennis_racquet_and_ball]=$'\U1F3BE'
393 emoji[ski_and_ski_boot]=$'\U1F3BF'
394 emoji[basketball_and_hoop]=$'\U1F3C0'
395 emoji[chequered_flag]=$'\U1F3C1'
396 emoji[snowboarder]=$'\U1F3C2'
397 emoji[runner]=$'\U1F3C3'
398 emoji[surfer]=$'\U1F3C4'
399 emoji[sports_medal]=$'\U1F3C5'
400 emoji[trophy]=$'\U1F3C6'
401 emoji[horse_racing]=$'\U1F3C7'
402 emoji[american_football]=$'\U1F3C8'
403 emoji[rugby_football]=$'\U1F3C9'
404 emoji[swimmer]=$'\U1F3CA'
405 emoji[weight_lifter]=$'\U1F3CB'
406 emoji[golfer]=$'\U1F3CC'
407 emoji[racing_motorcycle]=$'\U1F3CD'
408 emoji[racing_car]=$'\U1F3CE'
409 emoji[cricket_bat_and_ball]=$'\U1F3CF'
410 emoji[volleyball]=$'\U1F3D0'
411 emoji[field_hockey_stick_and_ball]=$'\U1F3D1'
412 emoji[ice_hockey_stick_and_puck]=$'\U1F3D2'
413 emoji[table_tennis_paddle_and_ball]=$'\U1F3D3'
414 emoji[snow_capped_mountain]=$'\U1F3D4'
415 emoji[camping]=$'\U1F3D5'
416 emoji[beach_with_umbrella]=$'\U1F3D6'
417 emoji[building_construction]=$'\U1F3D7'
418 emoji[house_buildings]=$'\U1F3D8'
419 emoji[cityscape]=$'\U1F3D9'
420 emoji[derelict_house_building]=$'\U1F3DA'
421 emoji[classical_building]=$'\U1F3DB'
422 emoji[desert]=$'\U1F3DC'
423 emoji[desert_island]=$'\U1F3DD'
424 emoji[national_park]=$'\U1F3DE'
425 emoji[stadium]=$'\U1F3DF'
426 emoji[house_building]=$'\U1F3E0'
427 emoji[house_with_garden]=$'\U1F3E1'
428 emoji[office_building]=$'\U1F3E2'
429 emoji[japanese_post_office]=$'\U1F3E3'
430 emoji[european_post_office]=$'\U1F3E4'
431 emoji[hospital]=$'\U1F3E5'
432 emoji[bank]=$'\U1F3E6'
433 emoji[automated_teller_machine]=$'\U1F3E7'
434 emoji[hotel]=$'\U1F3E8'
435 emoji[love_hotel]=$'\U1F3E9'
436 emoji[convenience_store]=$'\U1F3EA'
437 emoji[school]=$'\U1F3EB'
438 emoji[department_store]=$'\U1F3EC'
439 emoji[factory]=$'\U1F3ED'
440 emoji[izakaya_lantern]=$'\U1F3EE'
441 emoji[japanese_castle]=$'\U1F3EF'
442 emoji[european_castle]=$'\U1F3F0'
443 emoji[waving_white_flag]=$'\U1F3F3'
444 emoji[waving_black_flag]=$'\U1F3F4'
445 emoji[rosette]=$'\U1F3F5'
446 emoji[label]=$'\U1F3F7'
447 emoji[badminton_racquet_and_shuttlecock]=$'\U1F3F8'
448 emoji[bow_and_arrow]=$'\U1F3F9'
449 emoji[amphora]=$'\U1F3FA'
450 emoji[emoji_modifier_fitzpatrick_type_1_2]=$'\U1F3FB'
451 emoji[emoji_modifier_fitzpatrick_type_3]=$'\U1F3FC'
452 emoji[emoji_modifier_fitzpatrick_type_4]=$'\U1F3FD'
453 emoji[emoji_modifier_fitzpatrick_type_5]=$'\U1F3FE'
454 emoji[emoji_modifier_fitzpatrick_type_6]=$'\U1F3FF'
455 emoji[rat]=$'\U1F400'
456 emoji[mouse]=$'\U1F401'
457 emoji[ox]=$'\U1F402'
458 emoji[water_buffalo]=$'\U1F403'
459 emoji[cow]=$'\U1F404'
460 emoji[tiger]=$'\U1F405'
461 emoji[leopard]=$'\U1F406'
462 emoji[rabbit]=$'\U1F407'
463 emoji[cat]=$'\U1F408'
464 emoji[dragon]=$'\U1F409'
465 emoji[crocodile]=$'\U1F40A'
466 emoji[whale]=$'\U1F40B'
467 emoji[snail]=$'\U1F40C'
468 emoji[snake]=$'\U1F40D'
469 emoji[horse]=$'\U1F40E'
470 emoji[ram]=$'\U1F40F'
471 emoji[goat]=$'\U1F410'
472 emoji[sheep]=$'\U1F411'
473 emoji[monkey]=$'\U1F412'
474 emoji[rooster]=$'\U1F413'
475 emoji[chicken]=$'\U1F414'
476 emoji[dog]=$'\U1F415'
477 emoji[pig]=$'\U1F416'
478 emoji[boar]=$'\U1F417'
479 emoji[elephant]=$'\U1F418'
480 emoji[octopus]=$'\U1F419'
481 emoji[spiral_shell]=$'\U1F41A'
482 emoji[bug]=$'\U1F41B'
483 emoji[ant]=$'\U1F41C'
484 emoji[honeybee]=$'\U1F41D'
485 emoji[lady_beetle]=$'\U1F41E'
486 emoji[fish]=$'\U1F41F'
487 emoji[tropical_fish]=$'\U1F420'
488 emoji[blowfish]=$'\U1F421'
489 emoji[turtle]=$'\U1F422'
490 emoji[hatching_chick]=$'\U1F423'
491 emoji[baby_chick]=$'\U1F424'
492 emoji[front_facing_baby_chick]=$'\U1F425'
493 emoji[bird]=$'\U1F426'
494 emoji[penguin]=$'\U1F427'
495 emoji[koala]=$'\U1F428'
496 emoji[poodle]=$'\U1F429'
497 emoji[dromedary_camel]=$'\U1F42A'
498 emoji[bactrian_camel]=$'\U1F42B'
499 emoji[dolphin]=$'\U1F42C'
500 emoji[mouse_face]=$'\U1F42D'
501 emoji[cow_face]=$'\U1F42E'
502 emoji[tiger_face]=$'\U1F42F'
503 emoji[rabbit_face]=$'\U1F430'
504 emoji[cat_face]=$'\U1F431'
505 emoji[dragon_face]=$'\U1F432'
506 emoji[spouting_whale]=$'\U1F433'
507 emoji[horse_face]=$'\U1F434'
508 emoji[monkey_face]=$'\U1F435'
509 emoji[dog_face]=$'\U1F436'
510 emoji[pig_face]=$'\U1F437'
511 emoji[frog_face]=$'\U1F438'
512 emoji[hamster_face]=$'\U1F439'
513 emoji[wolf_face]=$'\U1F43A'
514 emoji[bear_face]=$'\U1F43B'
515 emoji[panda_face]=$'\U1F43C'
516 emoji[pig_nose]=$'\U1F43D'
517 emoji[paw_prints]=$'\U1F43E'
518 emoji[chipmunk]=$'\U1F43F'
519 emoji[eyes]=$'\U1F440'
520 emoji[eye]=$'\U1F441'
521 emoji[ear]=$'\U1F442'
522 emoji[nose]=$'\U1F443'
523 emoji[mouth]=$'\U1F444'
524 emoji[tongue]=$'\U1F445'
525 emoji[white_up_pointing_backhand_index]=$'\U1F446'
526 emoji[white_down_pointing_backhand_index]=$'\U1F447'
527 emoji[white_left_pointing_backhand_index]=$'\U1F448'
528 emoji[white_right_pointing_backhand_index]=$'\U1F449'
529 emoji[fisted_hand_sign]=$'\U1F44A'
530 emoji[waving_hand_sign]=$'\U1F44B'
531 emoji[ok_hand_sign]=$'\U1F44C'
532 emoji[thumbs_up_sign]=$'\U1F44D'
533 emoji[thumbs_down_sign]=$'\U1F44E'
534 emoji[clapping_hands_sign]=$'\U1F44F'
535 emoji[open_hands_sign]=$'\U1F450'
536 emoji[crown]=$'\U1F451'
537 emoji[womans_hat]=$'\U1F452'
538 emoji[eyeglasses]=$'\U1F453'
539 emoji[necktie]=$'\U1F454'
540 emoji[t_shirt]=$'\U1F455'
541 emoji[jeans]=$'\U1F456'
542 emoji[dress]=$'\U1F457'
543 emoji[kimono]=$'\U1F458'
544 emoji[bikini]=$'\U1F459'
545 emoji[womans_clothes]=$'\U1F45A'
546 emoji[purse]=$'\U1F45B'
547 emoji[handbag]=$'\U1F45C'
548 emoji[pouch]=$'\U1F45D'
549 emoji[mans_shoe]=$'\U1F45E'
550 emoji[athletic_shoe]=$'\U1F45F'
551 emoji[high_heeled_shoe]=$'\U1F460'
552 emoji[womans_sandal]=$'\U1F461'
553 emoji[womans_boots]=$'\U1F462'
554 emoji[footprints]=$'\U1F463'
555 emoji[bust_in_silhouette]=$'\U1F464'
556 emoji[busts_in_silhouette]=$'\U1F465'
557 emoji[boy]=$'\U1F466'
558 emoji[girl]=$'\U1F467'
559 emoji[man]=$'\U1F468'
560 emoji[woman]=$'\U1F469'
561 emoji[family]=$'\U1F46A'
562 emoji[man_and_woman_holding_hands]=$'\U1F46B'
563 emoji[two_men_holding_hands]=$'\U1F46C'
564 emoji[two_women_holding_hands]=$'\U1F46D'
565 emoji[police_officer]=$'\U1F46E'
566 emoji[woman_with_bunny_ears]=$'\U1F46F'
567 emoji[bride_with_veil]=$'\U1F470'
568 emoji[person_with_blond_hair]=$'\U1F471'
569 emoji[man_with_gua_pi_mao]=$'\U1F472'
570 emoji[man_with_turban]=$'\U1F473'
571 emoji[older_man]=$'\U1F474'
572 emoji[older_woman]=$'\U1F475'
573 emoji[baby]=$'\U1F476'
574 emoji[construction_worker]=$'\U1F477'
575 emoji[princess]=$'\U1F478'
576 emoji[japanese_ogre]=$'\U1F479'
577 emoji[japanese_goblin]=$'\U1F47A'
578 emoji[ghost]=$'\U1F47B'
579 emoji[baby_angel]=$'\U1F47C'
580 emoji[extraterrestrial_alien]=$'\U1F47D'
581 emoji[alien_monster]=$'\U1F47E'
582 emoji[imp]=$'\U1F47F'
583 emoji[skull]=$'\U1F480'
584 emoji[information_desk_person]=$'\U1F481'
585 emoji[guardsman]=$'\U1F482'
586 emoji[dancer]=$'\U1F483'
587 emoji[lipstick]=$'\U1F484'
588 emoji[nail_polish]=$'\U1F485'
589 emoji[face_massage]=$'\U1F486'
590 emoji[haircut]=$'\U1F487'
591 emoji[barber_pole]=$'\U1F488'
592 emoji[syringe]=$'\U1F489'
593 emoji[pill]=$'\U1F48A'
594 emoji[kiss_mark]=$'\U1F48B'
595 emoji[love_letter]=$'\U1F48C'
596 emoji[ring]=$'\U1F48D'
597 emoji[gem_stone]=$'\U1F48E'
598 emoji[kiss]=$'\U1F48F'
599 emoji[bouquet]=$'\U1F490'
600 emoji[couple_with_heart]=$'\U1F491'
601 emoji[wedding]=$'\U1F492'
602 emoji[beating_heart]=$'\U1F493'
603 emoji[broken_heart]=$'\U1F494'
604 emoji[two_hearts]=$'\U1F495'
605 emoji[sparkling_heart]=$'\U1F496'
606 emoji[growing_heart]=$'\U1F497'
607 emoji[heart_with_arrow]=$'\U1F498'
608 emoji[blue_heart]=$'\U1F499'
609 emoji[green_heart]=$'\U1F49A'
610 emoji[yellow_heart]=$'\U1F49B'
611 emoji[purple_heart]=$'\U1F49C'
612 emoji[heart_with_ribbon]=$'\U1F49D'
613 emoji[revolving_hearts]=$'\U1F49E'
614 emoji[heart_decoration]=$'\U1F49F'
615 emoji[diamond_shape_with_a_dot_inside]=$'\U1F4A0'
616 emoji[electric_light_bulb]=$'\U1F4A1'
617 emoji[anger_symbol]=$'\U1F4A2'
618 emoji[bomb]=$'\U1F4A3'
619 emoji[sleeping_symbol]=$'\U1F4A4'
620 emoji[collision_symbol]=$'\U1F4A5'
621 emoji[splashing_sweat_symbol]=$'\U1F4A6'
622 emoji[droplet]=$'\U1F4A7'
623 emoji[dash_symbol]=$'\U1F4A8'
624 emoji[pile_of_poo]=$'\U1F4A9'
625 emoji[flexed_biceps]=$'\U1F4AA'
626 emoji[dizzy_symbol]=$'\U1F4AB'
627 emoji[speech_balloon]=$'\U1F4AC'
628 emoji[thought_balloon]=$'\U1F4AD'
629 emoji[white_flower]=$'\U1F4AE'
630 emoji[hundred_points_symbol]=$'\U1F4AF'
631 emoji[money_bag]=$'\U1F4B0'
632 emoji[currency_exchange]=$'\U1F4B1'
633 emoji[heavy_dollar_sign]=$'\U1F4B2'
634 emoji[credit_card]=$'\U1F4B3'
635 emoji[banknote_with_yen_sign]=$'\U1F4B4'
636 emoji[banknote_with_dollar_sign]=$'\U1F4B5'
637 emoji[banknote_with_euro_sign]=$'\U1F4B6'
638 emoji[banknote_with_pound_sign]=$'\U1F4B7'
639 emoji[money_with_wings]=$'\U1F4B8'
640 emoji[chart_with_upwards_trend_and_yen_sign]=$'\U1F4B9'
641 emoji[seat]=$'\U1F4BA'
642 emoji[personal_computer]=$'\U1F4BB'
643 emoji[briefcase]=$'\U1F4BC'
644 emoji[minidisc]=$'\U1F4BD'
645 emoji[floppy_disk]=$'\U1F4BE'
646 emoji[optical_disc]=$'\U1F4BF'
647 emoji[dvd]=$'\U1F4C0'
648 emoji[file_folder]=$'\U1F4C1'
649 emoji[open_file_folder]=$'\U1F4C2'
650 emoji[page_with_curl]=$'\U1F4C3'
651 emoji[page_facing_up]=$'\U1F4C4'
652 emoji[calendar]=$'\U1F4C5'
653 emoji[tear_off_calendar]=$'\U1F4C6'
654 emoji[card_index]=$'\U1F4C7'
655 emoji[chart_with_upwards_trend]=$'\U1F4C8'
656 emoji[chart_with_downwards_trend]=$'\U1F4C9'
657 emoji[bar_chart]=$'\U1F4CA'
658 emoji[clipboard]=$'\U1F4CB'
659 emoji[pushpin]=$'\U1F4CC'
660 emoji[round_pushpin]=$'\U1F4CD'
661 emoji[paperclip]=$'\U1F4CE'
662 emoji[straight_ruler]=$'\U1F4CF'
663 emoji[triangular_ruler]=$'\U1F4D0'
664 emoji[bookmark_tabs]=$'\U1F4D1'
665 emoji[ledger]=$'\U1F4D2'
666 emoji[notebook]=$'\U1F4D3'
667 emoji[notebook_with_decorative_cover]=$'\U1F4D4'
668 emoji[closed_book]=$'\U1F4D5'
669 emoji[open_book]=$'\U1F4D6'
670 emoji[green_book]=$'\U1F4D7'
671 emoji[blue_book]=$'\U1F4D8'
672 emoji[orange_book]=$'\U1F4D9'
673 emoji[books]=$'\U1F4DA'
674 emoji[name_badge]=$'\U1F4DB'
675 emoji[scroll]=$'\U1F4DC'
676 emoji[memo]=$'\U1F4DD'
677 emoji[telephone_receiver]=$'\U1F4DE'
678 emoji[pager]=$'\U1F4DF'
679 emoji[fax_machine]=$'\U1F4E0'
680 emoji[satellite_antenna]=$'\U1F4E1'
681 emoji[public_address_loudspeaker]=$'\U1F4E2'
682 emoji[cheering_megaphone]=$'\U1F4E3'
683 emoji[outbox_tray]=$'\U1F4E4'
684 emoji[inbox_tray]=$'\U1F4E5'
685 emoji[package]=$'\U1F4E6'
686 emoji[e_mail_symbol]=$'\U1F4E7'
687 emoji[incoming_envelope]=$'\U1F4E8'
688 emoji[envelope_with_downwards_arrow_above]=$'\U1F4E9'
689 emoji[closed_mailbox_with_lowered_flag]=$'\U1F4EA'
690 emoji[closed_mailbox_with_raised_flag]=$'\U1F4EB'
691 emoji[open_mailbox_with_raised_flag]=$'\U1F4EC'
692 emoji[open_mailbox_with_lowered_flag]=$'\U1F4ED'
693 emoji[postbox]=$'\U1F4EE'
694 emoji[postal_horn]=$'\U1F4EF'
695 emoji[newspaper]=$'\U1F4F0'
696 emoji[mobile_phone]=$'\U1F4F1'
697 emoji[mobile_phone_with_rightwards_arrow_at_left]=$'\U1F4F2'
698 emoji[vibration_mode]=$'\U1F4F3'
699 emoji[mobile_phone_off]=$'\U1F4F4'
700 emoji[no_mobile_phones]=$'\U1F4F5'
701 emoji[antenna_with_bars]=$'\U1F4F6'
702 emoji[camera]=$'\U1F4F7'
703 emoji[camera_with_flash]=$'\U1F4F8'
704 emoji[video_camera]=$'\U1F4F9'
705 emoji[television]=$'\U1F4FA'
706 emoji[radio]=$'\U1F4FB'
707 emoji[videocassette]=$'\U1F4FC'
708 emoji[film_projector]=$'\U1F4FD'
709 emoji[prayer_beads]=$'\U1F4FF'
710 emoji[twisted_rightwards_arrows]=$'\U1F500'
711 emoji[clockwise_rightwards_and_leftwards_open_circle_arrows]=$'\U1F501'
712 emoji[clockwise_rightwards_and_leftwards_open_circle_arrows_with_circled_one_overlay]=$'\U1F502'
713 emoji[clockwise_downwards_and_upwards_open_circle_arrows]=$'\U1F503'
714 emoji[anticlockwise_downwards_and_upwards_open_circle_arrows]=$'\U1F504'
715 emoji[low_brightness_symbol]=$'\U1F505'
716 emoji[high_brightness_symbol]=$'\U1F506'
717 emoji[speaker_with_cancellation_stroke]=$'\U1F507'
718 emoji[speaker]=$'\U1F508'
719 emoji[speaker_with_one_sound_wave]=$'\U1F509'
720 emoji[speaker_with_three_sound_waves]=$'\U1F50A'
721 emoji[battery]=$'\U1F50B'
722 emoji[electric_plug]=$'\U1F50C'
723 emoji[left_pointing_magnifying_glass]=$'\U1F50D'
724 emoji[right_pointing_magnifying_glass]=$'\U1F50E'
725 emoji[lock_with_ink_pen]=$'\U1F50F'
726 emoji[closed_lock_with_key]=$'\U1F510'
727 emoji[key]=$'\U1F511'
728 emoji[lock]=$'\U1F512'
729 emoji[open_lock]=$'\U1F513'
730 emoji[bell]=$'\U1F514'
731 emoji[bell_with_cancellation_stroke]=$'\U1F515'
732 emoji[bookmark]=$'\U1F516'
733 emoji[link_symbol]=$'\U1F517'
734 emoji[radio_button]=$'\U1F518'
735 emoji[back_with_leftwards_arrow_above]=$'\U1F519'
736 emoji[end_with_leftwards_arrow_above]=$'\U1F51A'
737 emoji[on_with_exclamation_mark_with_left_right_arrow_above]=$'\U1F51B'
738 emoji[soon_with_rightwards_arrow_above]=$'\U1F51C'
739 emoji[top_with_upwards_arrow_above]=$'\U1F51D'
740 emoji[no_one_under_eighteen_symbol]=$'\U1F51E'
741 emoji[keycap_ten]=$'\U1F51F'
742 emoji[input_symbol_for_latin_capital_letters]=$'\U1F520'
743 emoji[input_symbol_for_latin_small_letters]=$'\U1F521'
744 emoji[input_symbol_for_numbers]=$'\U1F522'
745 emoji[input_symbol_for_symbols]=$'\U1F523'
746 emoji[input_symbol_for_latin_letters]=$'\U1F524'
747 emoji[fire]=$'\U1F525'
748 emoji[electric_torch]=$'\U1F526'
749 emoji[wrench]=$'\U1F527'
750 emoji[hammer]=$'\U1F528'
751 emoji[nut_and_bolt]=$'\U1F529'
752 emoji[hocho]=$'\U1F52A'
753 emoji[pistol]=$'\U1F52B'
754 emoji[microscope]=$'\U1F52C'
755 emoji[telescope]=$'\U1F52D'
756 emoji[crystal_ball]=$'\U1F52E'
757 emoji[six_pointed_star_with_middle_dot]=$'\U1F52F'
758 emoji[japanese_symbol_for_beginner]=$'\U1F530'
759 emoji[trident_emblem]=$'\U1F531'
760 emoji[black_square_button]=$'\U1F532'
761 emoji[white_square_button]=$'\U1F533'
762 emoji[large_red_circle]=$'\U1F534'
763 emoji[large_blue_circle]=$'\U1F535'
764 emoji[large_orange_diamond]=$'\U1F536'
765 emoji[large_blue_diamond]=$'\U1F537'
766 emoji[small_orange_diamond]=$'\U1F538'
767 emoji[small_blue_diamond]=$'\U1F539'
768 emoji[up_pointing_red_triangle]=$'\U1F53A'
769 emoji[down_pointing_red_triangle]=$'\U1F53B'
770 emoji[up_pointing_small_red_triangle]=$'\U1F53C'
771 emoji[down_pointing_small_red_triangle]=$'\U1F53D'
772 emoji[om_symbol]=$'\U1F549'
773 emoji[dove_of_peace]=$'\U1F54A'
774 emoji[kaaba]=$'\U1F54B'
775 emoji[mosque]=$'\U1F54C'
776 emoji[synagogue]=$'\U1F54D'
777 emoji[menorah_with_nine_branches]=$'\U1F54E'
778 emoji[clock_face_one_oclock]=$'\U1F550'
779 emoji[clock_face_two_oclock]=$'\U1F551'
780 emoji[clock_face_three_oclock]=$'\U1F552'
781 emoji[clock_face_four_oclock]=$'\U1F553'
782 emoji[clock_face_five_oclock]=$'\U1F554'
783 emoji[clock_face_six_oclock]=$'\U1F555'
784 emoji[clock_face_seven_oclock]=$'\U1F556'
785 emoji[clock_face_eight_oclock]=$'\U1F557'
786 emoji[clock_face_nine_oclock]=$'\U1F558'
787 emoji[clock_face_ten_oclock]=$'\U1F559'
788 emoji[clock_face_eleven_oclock]=$'\U1F55A'
789 emoji[clock_face_twelve_oclock]=$'\U1F55B'
790 emoji[clock_face_one_thirty]=$'\U1F55C'
791 emoji[clock_face_two_thirty]=$'\U1F55D'
792 emoji[clock_face_three_thirty]=$'\U1F55E'
793 emoji[clock_face_four_thirty]=$'\U1F55F'
794 emoji[clock_face_five_thirty]=$'\U1F560'
795 emoji[clock_face_six_thirty]=$'\U1F561'
796 emoji[clock_face_seven_thirty]=$'\U1F562'
797 emoji[clock_face_eight_thirty]=$'\U1F563'
798 emoji[clock_face_nine_thirty]=$'\U1F564'
799 emoji[clock_face_ten_thirty]=$'\U1F565'
800 emoji[clock_face_eleven_thirty]=$'\U1F566'
801 emoji[clock_face_twelve_thirty]=$'\U1F567'
802 emoji[candle]=$'\U1F56F'
803 emoji[mantelpiece_clock]=$'\U1F570'
804 emoji[hole]=$'\U1F573'
805 emoji[man_in_business_suit_levitating]=$'\U1F574'
806 emoji[sleuth_or_spy]=$'\U1F575'
807 emoji[dark_sunglasses]=$'\U1F576'
808 emoji[spider]=$'\U1F577'
809 emoji[spider_web]=$'\U1F578'
810 emoji[joystick]=$'\U1F579'
811 emoji[linked_paperclips]=$'\U1F587'
812 emoji[lower_left_ballpoint_pen]=$'\U1F58A'
813 emoji[lower_left_fountain_pen]=$'\U1F58B'
814 emoji[lower_left_paintbrush]=$'\U1F58C'
815 emoji[lower_left_crayon]=$'\U1F58D'
816 emoji[raised_hand_with_fingers_splayed]=$'\U1F590'
817 emoji[reversed_hand_with_middle_finger_extended]=$'\U1F595'
818 emoji[raised_hand_with_part_between_middle_and_ring_fingers]=$'\U1F596'
819 emoji[desktop_computer]=$'\U1F5A5'
820 emoji[printer]=$'\U1F5A8'
821 emoji[three_button_mouse]=$'\U1F5B1'
822 emoji[trackball]=$'\U1F5B2'
823 emoji[frame_with_picture]=$'\U1F5BC'
824 emoji[card_index_dividers]=$'\U1F5C2'
825 emoji[card_file_box]=$'\U1F5C3'
826 emoji[file_cabinet]=$'\U1F5C4'
827 emoji[wastebasket]=$'\U1F5D1'
828 emoji[spiral_note_pad]=$'\U1F5D2'
829 emoji[spiral_calendar_pad]=$'\U1F5D3'
830 emoji[compression]=$'\U1F5DC'
831 emoji[old_key]=$'\U1F5DD'
832 emoji[rolled_up_newspaper]=$'\U1F5DE'
833 emoji[dagger_knife]=$'\U1F5E1'
834 emoji[speaking_head_in_silhouette]=$'\U1F5E3'
835 emoji[right_anger_bubble]=$'\U1F5EF'
836 emoji[ballot_box_with_ballot]=$'\U1F5F3'
837 emoji[world_map]=$'\U1F5FA'
838 emoji[mount_fuji]=$'\U1F5FB'
839 emoji[tokyo_tower]=$'\U1F5FC'
840 emoji[statue_of_liberty]=$'\U1F5FD'
841 emoji[silhouette_of_japan]=$'\U1F5FE'
842 emoji[moyai]=$'\U1F5FF'
843 emoji[grinning_face]=$'\U1F600'
844 emoji[grinning_face_with_smiling_eyes]=$'\U1F601'
845 emoji[face_with_tears_of_joy]=$'\U1F602'
846 emoji[smiling_face_with_open_mouth]=$'\U1F603'
847 emoji[smiling_face_with_open_mouth_and_smiling_eyes]=$'\U1F604'
848 emoji[smiling_face_with_open_mouth_and_cold_sweat]=$'\U1F605'
849 emoji[smiling_face_with_open_mouth_and_tightly_closed_eyes]=$'\U1F606'
850 emoji[smiling_face_with_halo]=$'\U1F607'
851 emoji[smiling_face_with_horns]=$'\U1F608'
852 emoji[winking_face]=$'\U1F609'
853 emoji[smiling_face_with_smiling_eyes]=$'\U1F60A'
854 emoji[face_savouring_delicious_food]=$'\U1F60B'
855 emoji[relieved_face]=$'\U1F60C'
856 emoji[smiling_face_with_heart_shaped_eyes]=$'\U1F60D'
857 emoji[smiling_face_with_sunglasses]=$'\U1F60E'
858 emoji[smirking_face]=$'\U1F60F'
859 emoji[neutral_face]=$'\U1F610'
860 emoji[expressionless_face]=$'\U1F611'
861 emoji[unamused_face]=$'\U1F612'
862 emoji[face_with_cold_sweat]=$'\U1F613'
863 emoji[pensive_face]=$'\U1F614'
864 emoji[confused_face]=$'\U1F615'
865 emoji[confounded_face]=$'\U1F616'
866 emoji[kissing_face]=$'\U1F617'
867 emoji[face_throwing_a_kiss]=$'\U1F618'
868 emoji[kissing_face_with_smiling_eyes]=$'\U1F619'
869 emoji[kissing_face_with_closed_eyes]=$'\U1F61A'
870 emoji[face_with_stuck_out_tongue]=$'\U1F61B'
871 emoji[face_with_stuck_out_tongue_and_winking_eye]=$'\U1F61C'
872 emoji[face_with_stuck_out_tongue_and_tightly_closed_eyes]=$'\U1F61D'
873 emoji[disappointed_face]=$'\U1F61E'
874 emoji[worried_face]=$'\U1F61F'
875 emoji[angry_face]=$'\U1F620'
876 emoji[pouting_face]=$'\U1F621'
877 emoji[crying_face]=$'\U1F622'
878 emoji[persevering_face]=$'\U1F623'
879 emoji[face_with_look_of_triumph]=$'\U1F624'
880 emoji[disappointed_but_relieved_face]=$'\U1F625'
881 emoji[frowning_face_with_open_mouth]=$'\U1F626'
882 emoji[anguished_face]=$'\U1F627'
883 emoji[fearful_face]=$'\U1F628'
884 emoji[weary_face]=$'\U1F629'
885 emoji[sleepy_face]=$'\U1F62A'
886 emoji[tired_face]=$'\U1F62B'
887 emoji[grimacing_face]=$'\U1F62C'
888 emoji[loudly_crying_face]=$'\U1F62D'
889 emoji[face_with_open_mouth]=$'\U1F62E'
890 emoji[hushed_face]=$'\U1F62F'
891 emoji[face_with_open_mouth_and_cold_sweat]=$'\U1F630'
892 emoji[face_screaming_in_fear]=$'\U1F631'
893 emoji[astonished_face]=$'\U1F632'
894 emoji[flushed_face]=$'\U1F633'
895 emoji[sleeping_face]=$'\U1F634'
896 emoji[dizzy_face]=$'\U1F635'
897 emoji[face_without_mouth]=$'\U1F636'
898 emoji[face_with_medical_mask]=$'\U1F637'
899 emoji[grinning_cat_face_with_smiling_eyes]=$'\U1F638'
900 emoji[cat_face_with_tears_of_joy]=$'\U1F639'
901 emoji[smiling_cat_face_with_open_mouth]=$'\U1F63A'
902 emoji[smiling_cat_face_with_heart_shaped_eyes]=$'\U1F63B'
903 emoji[cat_face_with_wry_smile]=$'\U1F63C'
904 emoji[kissing_cat_face_with_closed_eyes]=$'\U1F63D'
905 emoji[pouting_cat_face]=$'\U1F63E'
906 emoji[crying_cat_face]=$'\U1F63F'
907 emoji[weary_cat_face]=$'\U1F640'
908 emoji[slightly_frowning_face]=$'\U1F641'
909 emoji[slightly_smiling_face]=$'\U1F642'
910 emoji[upside_down_face]=$'\U1F643'
911 emoji[face_with_rolling_eyes]=$'\U1F644'
912 emoji[face_with_no_good_gesture]=$'\U1F645'
913 emoji[face_with_ok_gesture]=$'\U1F646'
914 emoji[person_bowing_deeply]=$'\U1F647'
915 emoji[see_no_evil_monkey]=$'\U1F648'
916 emoji[hear_no_evil_monkey]=$'\U1F649'
917 emoji[speak_no_evil_monkey]=$'\U1F64A'
918 emoji[happy_person_raising_one_hand]=$'\U1F64B'
919 emoji[person_raising_both_hands_in_celebration]=$'\U1F64C'
920 emoji[person_frowning]=$'\U1F64D'
921 emoji[person_with_pouting_face]=$'\U1F64E'
922 emoji[person_with_folded_hands]=$'\U1F64F'
923 emoji[rocket]=$'\U1F680'
924 emoji[helicopter]=$'\U1F681'
925 emoji[steam_locomotive]=$'\U1F682'
926 emoji[railway_car]=$'\U1F683'
927 emoji[high_speed_train]=$'\U1F684'
928 emoji[high_speed_train_with_bullet_nose]=$'\U1F685'
929 emoji[train]=$'\U1F686'
930 emoji[metro]=$'\U1F687'
931 emoji[light_rail]=$'\U1F688'
932 emoji[station]=$'\U1F689'
933 emoji[tram]=$'\U1F68A'
934 emoji[tram_car]=$'\U1F68B'
935 emoji[bus]=$'\U1F68C'
936 emoji[oncoming_bus]=$'\U1F68D'
937 emoji[trolleybus]=$'\U1F68E'
938 emoji[bus_stop]=$'\U1F68F'
939 emoji[minibus]=$'\U1F690'
940 emoji[ambulance]=$'\U1F691'
941 emoji[fire_engine]=$'\U1F692'
942 emoji[police_car]=$'\U1F693'
943 emoji[oncoming_police_car]=$'\U1F694'
944 emoji[taxi]=$'\U1F695'
945 emoji[oncoming_taxi]=$'\U1F696'
946 emoji[automobile]=$'\U1F697'
947 emoji[oncoming_automobile]=$'\U1F698'
948 emoji[recreational_vehicle]=$'\U1F699'
949 emoji[delivery_truck]=$'\U1F69A'
950 emoji[articulated_lorry]=$'\U1F69B'
951 emoji[tractor]=$'\U1F69C'
952 emoji[monorail]=$'\U1F69D'
953 emoji[mountain_railway]=$'\U1F69E'
954 emoji[suspension_railway]=$'\U1F69F'
955 emoji[mountain_cableway]=$'\U1F6A0'
956 emoji[aerial_tramway]=$'\U1F6A1'
957 emoji[ship]=$'\U1F6A2'
958 emoji[rowboat]=$'\U1F6A3'
959 emoji[speedboat]=$'\U1F6A4'
960 emoji[horizontal_traffic_light]=$'\U1F6A5'
961 emoji[vertical_traffic_light]=$'\U1F6A6'
962 emoji[construction_sign]=$'\U1F6A7'
963 emoji[police_cars_revolving_light]=$'\U1F6A8'
964 emoji[triangular_flag_on_post]=$'\U1F6A9'
965 emoji[door]=$'\U1F6AA'
966 emoji[no_entry_sign]=$'\U1F6AB'
967 emoji[smoking_symbol]=$'\U1F6AC'
968 emoji[no_smoking_symbol]=$'\U1F6AD'
969 emoji[put_litter_in_its_place_symbol]=$'\U1F6AE'
970 emoji[do_not_litter_symbol]=$'\U1F6AF'
971 emoji[potable_water_symbol]=$'\U1F6B0'
972 emoji[non_potable_water_symbol]=$'\U1F6B1'
973 emoji[bicycle]=$'\U1F6B2'
974 emoji[no_bicycles]=$'\U1F6B3'
975 emoji[bicyclist]=$'\U1F6B4'
976 emoji[mountain_bicyclist]=$'\U1F6B5'
977 emoji[pedestrian]=$'\U1F6B6'
978 emoji[no_pedestrians]=$'\U1F6B7'
979 emoji[children_crossing]=$'\U1F6B8'
980 emoji[mens_symbol]=$'\U1F6B9'
981 emoji[womens_symbol]=$'\U1F6BA'
982 emoji[restroom]=$'\U1F6BB'
983 emoji[baby_symbol]=$'\U1F6BC'
984 emoji[toilet]=$'\U1F6BD'
985 emoji[water_closet]=$'\U1F6BE'
986 emoji[shower]=$'\U1F6BF'
987 emoji[bath]=$'\U1F6C0'
988 emoji[bathtub]=$'\U1F6C1'
989 emoji[passport_control]=$'\U1F6C2'
990 emoji[customs]=$'\U1F6C3'
991 emoji[baggage_claim]=$'\U1F6C4'
992 emoji[left_luggage]=$'\U1F6C5'
993 emoji[couch_and_lamp]=$'\U1F6CB'
994 emoji[sleeping_accommodation]=$'\U1F6CC'
995 emoji[shopping_bags]=$'\U1F6CD'
996 emoji[bellhop_bell]=$'\U1F6CE'
997 emoji[bed]=$'\U1F6CF'
998 emoji[place_of_worship]=$'\U1F6D0'
999 emoji[hammer_and_wrench]=$'\U1F6E0'
1000 emoji[shield]=$'\U1F6E1'
1001 emoji[oil_drum]=$'\U1F6E2'
1002 emoji[motorway]=$'\U1F6E3'
1003 emoji[railway_track]=$'\U1F6E4'
1004 emoji[motor_boat]=$'\U1F6E5'
1005 emoji[small_airplane]=$'\U1F6E9'
1006 emoji[airplane_departure]=$'\U1F6EB'
1007 emoji[airplane_arriving]=$'\U1F6EC'
1008 emoji[satellite]=$'\U1F6F0'
1009 emoji[passenger_ship]=$'\U1F6F3'
1010 emoji[zipper_mouth_face]=$'\U1F910'
1011 emoji[money_mouth_face]=$'\U1F911'
1012 emoji[face_with_thermometer]=$'\U1F912'
1013 emoji[nerd_face]=$'\U1F913'
1014 emoji[thinking_face]=$'\U1F914'
1015 emoji[face_with_head_bandage]=$'\U1F915'
1016 emoji[robot_face]=$'\U1F916'
1017 emoji[hugging_face]=$'\U1F917'
1018 emoji[sign_of_the_horns]=$'\U1F918'
1019 emoji[crab]=$'\U1F980'
1020 emoji[lion_face]=$'\U1F981'
1021 emoji[scorpion]=$'\U1F982'
1022 emoji[turkey]=$'\U1F983'
1023 emoji[unicorn_face]=$'\U1F984'
1024 emoji[cheese_wedge]=$'\U1F9C0'
1025 emoji[keycap_number_sign]=$'\U0023\U20E3'
1026 emoji[keycap_asterisk]=$'\U002A\U20E3'
1027 emoji[keycap_digit_zero]=$'\U0030\U20E3'
1028 emoji[keycap_digit_one]=$'\U0031\U20E3'
1029 emoji[keycap_digit_two]=$'\U0032\U20E3'
1030 emoji[keycap_digit_three]=$'\U0033\U20E3'
1031 emoji[keycap_digit_four]=$'\U0034\U20E3'
1032 emoji[keycap_digit_five]=$'\U0035\U20E3'
1033 emoji[keycap_digit_six]=$'\U0036\U20E3'
1034 emoji[keycap_digit_seven]=$'\U0037\U20E3'
1035 emoji[keycap_digit_eight]=$'\U0038\U20E3'
1036 emoji[keycap_digit_nine]=$'\U0039\U20E3'
1037 emoji_flags[Ascension_Island]=$'\U1F1E6\U1F1E8'
1038 emoji_flags[Andorra]=$'\U1F1E6\U1F1E9'
1039 emoji_flags[United_Arab_Emirates]=$'\U1F1E6\U1F1EA'
1040 emoji_flags[Afghanistan]=$'\U1F1E6\U1F1EB'
1041 emoji_flags[Antigua___Barbuda]=$'\U1F1E6\U1F1EC'
1042 emoji_flags[Anguilla]=$'\U1F1E6\U1F1EE'
1043 emoji_flags[Albania]=$'\U1F1E6\U1F1F1'
1044 emoji_flags[Armenia]=$'\U1F1E6\U1F1F2'
1045 emoji_flags[Angola]=$'\U1F1E6\U1F1F4'
1046 emoji_flags[Antarctica]=$'\U1F1E6\U1F1F6'
1047 emoji_flags[Argentina]=$'\U1F1E6\U1F1F7'
1048 emoji_flags[American_Samoa]=$'\U1F1E6\U1F1F8'
1049 emoji_flags[Austria]=$'\U1F1E6\U1F1F9'
1050 emoji_flags[Australia]=$'\U1F1E6\U1F1FA'
1051 emoji_flags[Aruba]=$'\U1F1E6\U1F1FC'
1052 emoji_flags[Ã_land_Islands]=$'\U1F1E6\U1F1FD'
1053 emoji_flags[Azerbaijan]=$'\U1F1E6\U1F1FF'
1054 emoji_flags[Bosnia___Herzegovina]=$'\U1F1E7\U1F1E6'
1055 emoji_flags[Barbados]=$'\U1F1E7\U1F1E7'
1056 emoji_flags[Bangladesh]=$'\U1F1E7\U1F1E9'
1057 emoji_flags[Belgium]=$'\U1F1E7\U1F1EA'
1058 emoji_flags[Burkina_Faso]=$'\U1F1E7\U1F1EB'
1059 emoji_flags[Bulgaria]=$'\U1F1E7\U1F1EC'
1060 emoji_flags[Bahrain]=$'\U1F1E7\U1F1ED'
1061 emoji_flags[Burundi]=$'\U1F1E7\U1F1EE'
1062 emoji_flags[Benin]=$'\U1F1E7\U1F1EF'
1063 emoji_flags[St__BarthÃ_lemy]=$'\U1F1E7\U1F1F1'
1064 emoji_flags[Bermuda]=$'\U1F1E7\U1F1F2'
1065 emoji_flags[Brunei]=$'\U1F1E7\U1F1F3'
1066 emoji_flags[Bolivia]=$'\U1F1E7\U1F1F4'
1067 emoji_flags[Caribbean_Netherlands]=$'\U1F1E7\U1F1F6'
1068 emoji_flags[Brazil]=$'\U1F1E7\U1F1F7'
1069 emoji_flags[Bahamas]=$'\U1F1E7\U1F1F8'
1070 emoji_flags[Bhutan]=$'\U1F1E7\U1F1F9'
1071 emoji_flags[Bouvet_Island]=$'\U1F1E7\U1F1FB'
1072 emoji_flags[Botswana]=$'\U1F1E7\U1F1FC'
1073 emoji_flags[Belarus]=$'\U1F1E7\U1F1FE'
1074 emoji_flags[Belize]=$'\U1F1E7\U1F1FF'
1075 emoji_flags[Canada]=$'\U1F1E8\U1F1E6'
1076 emoji_flags[Cocos__Islands]=$'\U1F1E8\U1F1E8'
1077 emoji_flags[Congo___Kinshasa]=$'\U1F1E8\U1F1E9'
1078 emoji_flags[Central_African_Republic]=$'\U1F1E8\U1F1EB'
1079 emoji_flags[Congo___Brazzaville]=$'\U1F1E8\U1F1EC'
1080 emoji_flags[Switzerland]=$'\U1F1E8\U1F1ED'
1081 emoji_flags[CÃ_te_dâ__Ivoire]=$'\U1F1E8\U1F1EE'
1082 emoji_flags[Cook_Islands]=$'\U1F1E8\U1F1F0'
1083 emoji_flags[Chile]=$'\U1F1E8\U1F1F1'
1084 emoji_flags[Cameroon]=$'\U1F1E8\U1F1F2'
1085 emoji_flags[China]=$'\U1F1E8\U1F1F3'
1086 emoji_flags[Colombia]=$'\U1F1E8\U1F1F4'
1087 emoji_flags[Clipperton_Island]=$'\U1F1E8\U1F1F5'
1088 emoji_flags[Costa_Rica]=$'\U1F1E8\U1F1F7'
1089 emoji_flags[Cuba]=$'\U1F1E8\U1F1FA'
1090 emoji_flags[Cape_Verde]=$'\U1F1E8\U1F1FB'
1091 emoji_flags[CuraÃ_ao]=$'\U1F1E8\U1F1FC'
1092 emoji_flags[Christmas_Island]=$'\U1F1E8\U1F1FD'
1093 emoji_flags[Cyprus]=$'\U1F1E8\U1F1FE'
1094 emoji_flags[Czech_Republic]=$'\U1F1E8\U1F1FF'
1095 emoji_flags[Germany]=$'\U1F1E9\U1F1EA'
1096 emoji_flags[Diego_Garcia]=$'\U1F1E9\U1F1EC'
1097 emoji_flags[Djibouti]=$'\U1F1E9\U1F1EF'
1098 emoji_flags[Denmark]=$'\U1F1E9\U1F1F0'
1099 emoji_flags[Dominica]=$'\U1F1E9\U1F1F2'
1100 emoji_flags[Dominican_Republic]=$'\U1F1E9\U1F1F4'
1101 emoji_flags[Algeria]=$'\U1F1E9\U1F1FF'
1102 emoji_flags[Ceuta___Melilla]=$'\U1F1EA\U1F1E6'
1103 emoji_flags[Ecuador]=$'\U1F1EA\U1F1E8'
1104 emoji_flags[Estonia]=$'\U1F1EA\U1F1EA'
1105 emoji_flags[Egypt]=$'\U1F1EA\U1F1EC'
1106 emoji_flags[Western_Sahara]=$'\U1F1EA\U1F1ED'
1107 emoji_flags[Eritrea]=$'\U1F1EA\U1F1F7'
1108 emoji_flags[Spain]=$'\U1F1EA\U1F1F8'
1109 emoji_flags[Ethiopia]=$'\U1F1EA\U1F1F9'
1110 emoji_flags[European_Union]=$'\U1F1EA\U1F1FA'
1111 emoji_flags[Finland]=$'\U1F1EB\U1F1EE'
1112 emoji_flags[Fiji]=$'\U1F1EB\U1F1EF'
1113 emoji_flags[Falkland_Islands]=$'\U1F1EB\U1F1F0'
1114 emoji_flags[Micronesia]=$'\U1F1EB\U1F1F2'
1115 emoji_flags[Faroe_Islands]=$'\U1F1EB\U1F1F4'
1116 emoji_flags[France]=$'\U1F1EB\U1F1F7'
1117 emoji_flags[Gabon]=$'\U1F1EC\U1F1E6'
1118 emoji_flags[United_Kingdom]=$'\U1F1EC\U1F1E7'
1119 emoji_flags[Grenada]=$'\U1F1EC\U1F1E9'
1120 emoji_flags[Georgia]=$'\U1F1EC\U1F1EA'
1121 emoji_flags[French_Guiana]=$'\U1F1EC\U1F1EB'
1122 emoji_flags[Guernsey]=$'\U1F1EC\U1F1EC'
1123 emoji_flags[Ghana]=$'\U1F1EC\U1F1ED'
1124 emoji_flags[Gibraltar]=$'\U1F1EC\U1F1EE'
1125 emoji_flags[Greenland]=$'\U1F1EC\U1F1F1'
1126 emoji_flags[Gambia]=$'\U1F1EC\U1F1F2'
1127 emoji_flags[Guinea]=$'\U1F1EC\U1F1F3'
1128 emoji_flags[Guadeloupe]=$'\U1F1EC\U1F1F5'
1129 emoji_flags[Equatorial_Guinea]=$'\U1F1EC\U1F1F6'
1130 emoji_flags[Greece]=$'\U1F1EC\U1F1F7'
1131 emoji_flags[South_Georgia___South_Sandwich_Islands]=$'\U1F1EC\U1F1F8'
1132 emoji_flags[Guatemala]=$'\U1F1EC\U1F1F9'
1133 emoji_flags[Guam]=$'\U1F1EC\U1F1FA'
1134 emoji_flags[Guinea_Bissau]=$'\U1F1EC\U1F1FC'
1135 emoji_flags[Guyana]=$'\U1F1EC\U1F1FE'
1136 emoji_flags[Hong_Kong]=$'\U1F1ED\U1F1F0'
1137 emoji_flags[Heard___McDonald_Islands]=$'\U1F1ED\U1F1F2'
1138 emoji_flags[Honduras]=$'\U1F1ED\U1F1F3'
1139 emoji_flags[Croatia]=$'\U1F1ED\U1F1F7'
1140 emoji_flags[Haiti]=$'\U1F1ED\U1F1F9'
1141 emoji_flags[Hungary]=$'\U1F1ED\U1F1FA'
1142 emoji_flags[Canary_Islands]=$'\U1F1EE\U1F1E8'
1143 emoji_flags[Indonesia]=$'\U1F1EE\U1F1E9'
1144 emoji_flags[Ireland]=$'\U1F1EE\U1F1EA'
1145 emoji_flags[Israel]=$'\U1F1EE\U1F1F1'
1146 emoji_flags[Isle_of_Man]=$'\U1F1EE\U1F1F2'
1147 emoji_flags[India]=$'\U1F1EE\U1F1F3'
1148 emoji_flags[British_Indian_Ocean_Territory]=$'\U1F1EE\U1F1F4'
1149 emoji_flags[Iraq]=$'\U1F1EE\U1F1F6'
1150 emoji_flags[Iran]=$'\U1F1EE\U1F1F7'
1151 emoji_flags[Iceland]=$'\U1F1EE\U1F1F8'
1152 emoji_flags[Italy]=$'\U1F1EE\U1F1F9'
1153 emoji_flags[Jersey]=$'\U1F1EF\U1F1EA'
1154 emoji_flags[Jamaica]=$'\U1F1EF\U1F1F2'
1155 emoji_flags[Jordan]=$'\U1F1EF\U1F1F4'
1156 emoji_flags[Japan]=$'\U1F1EF\U1F1F5'
1157 emoji_flags[Kenya]=$'\U1F1F0\U1F1EA'
1158 emoji_flags[Kyrgyzstan]=$'\U1F1F0\U1F1EC'
1159 emoji_flags[Cambodia]=$'\U1F1F0\U1F1ED'
1160 emoji_flags[Kiribati]=$'\U1F1F0\U1F1EE'
1161 emoji_flags[Comoros]=$'\U1F1F0\U1F1F2'
1162 emoji_flags[St__Kitts___Nevis]=$'\U1F1F0\U1F1F3'
1163 emoji_flags[North_Korea]=$'\U1F1F0\U1F1F5'
1164 emoji_flags[South_Korea]=$'\U1F1F0\U1F1F7'
1165 emoji_flags[Kuwait]=$'\U1F1F0\U1F1FC'
1166 emoji_flags[Cayman_Islands]=$'\U1F1F0\U1F1FE'
1167 emoji_flags[Kazakhstan]=$'\U1F1F0\U1F1FF'
1168 emoji_flags[Laos]=$'\U1F1F1\U1F1E6'
1169 emoji_flags[Lebanon]=$'\U1F1F1\U1F1E7'
1170 emoji_flags[St__Lucia]=$'\U1F1F1\U1F1E8'
1171 emoji_flags[Liechtenstein]=$'\U1F1F1\U1F1EE'
1172 emoji_flags[Sri_Lanka]=$'\U1F1F1\U1F1F0'
1173 emoji_flags[Liberia]=$'\U1F1F1\U1F1F7'
1174 emoji_flags[Lesotho]=$'\U1F1F1\U1F1F8'
1175 emoji_flags[Lithuania]=$'\U1F1F1\U1F1F9'
1176 emoji_flags[Luxembourg]=$'\U1F1F1\U1F1FA'
1177 emoji_flags[Latvia]=$'\U1F1F1\U1F1FB'
1178 emoji_flags[Libya]=$'\U1F1F1\U1F1FE'
1179 emoji_flags[Morocco]=$'\U1F1F2\U1F1E6'
1180 emoji_flags[Monaco]=$'\U1F1F2\U1F1E8'
1181 emoji_flags[Moldova]=$'\U1F1F2\U1F1E9'
1182 emoji_flags[Montenegro]=$'\U1F1F2\U1F1EA'
1183 emoji_flags[St__Martin]=$'\U1F1F2\U1F1EB'
1184 emoji_flags[Madagascar]=$'\U1F1F2\U1F1EC'
1185 emoji_flags[Marshall_Islands]=$'\U1F1F2\U1F1ED'
1186 emoji_flags[Macedonia]=$'\U1F1F2\U1F1F0'
1187 emoji_flags[Mali]=$'\U1F1F2\U1F1F1'
1188 emoji_flags[Myanmar]=$'\U1F1F2\U1F1F2'
1189 emoji_flags[Mongolia]=$'\U1F1F2\U1F1F3'
1190 emoji_flags[Macau]=$'\U1F1F2\U1F1F4'
1191 emoji_flags[Northern_Mariana_Islands]=$'\U1F1F2\U1F1F5'
1192 emoji_flags[Martinique]=$'\U1F1F2\U1F1F6'
1193 emoji_flags[Mauritania]=$'\U1F1F2\U1F1F7'
1194 emoji_flags[Montserrat]=$'\U1F1F2\U1F1F8'
1195 emoji_flags[Malta]=$'\U1F1F2\U1F1F9'
1196 emoji_flags[Mauritius]=$'\U1F1F2\U1F1FA'
1197 emoji_flags[Maldives]=$'\U1F1F2\U1F1FB'
1198 emoji_flags[Malawi]=$'\U1F1F2\U1F1FC'
1199 emoji_flags[Mexico]=$'\U1F1F2\U1F1FD'
1200 emoji_flags[Malaysia]=$'\U1F1F2\U1F1FE'
1201 emoji_flags[Mozambique]=$'\U1F1F2\U1F1FF'
1202 emoji_flags[Namibia]=$'\U1F1F3\U1F1E6'
1203 emoji_flags[New_Caledonia]=$'\U1F1F3\U1F1E8'
1204 emoji_flags[Niger]=$'\U1F1F3\U1F1EA'
1205 emoji_flags[Norfolk_Island]=$'\U1F1F3\U1F1EB'
1206 emoji_flags[Nigeria]=$'\U1F1F3\U1F1EC'
1207 emoji_flags[Nicaragua]=$'\U1F1F3\U1F1EE'
1208 emoji_flags[Netherlands]=$'\U1F1F3\U1F1F1'
1209 emoji_flags[Norway]=$'\U1F1F3\U1F1F4'
1210 emoji_flags[Nepal]=$'\U1F1F3\U1F1F5'
1211 emoji_flags[Nauru]=$'\U1F1F3\U1F1F7'
1212 emoji_flags[Niue]=$'\U1F1F3\U1F1FA'
1213 emoji_flags[New_Zealand]=$'\U1F1F3\U1F1FF'
1214 emoji_flags[Oman]=$'\U1F1F4\U1F1F2'
1215 emoji_flags[Panama]=$'\U1F1F5\U1F1E6'
1216 emoji_flags[Peru]=$'\U1F1F5\U1F1EA'
1217 emoji_flags[French_Polynesia]=$'\U1F1F5\U1F1EB'
1218 emoji_flags[Papua_New_Guinea]=$'\U1F1F5\U1F1EC'
1219 emoji_flags[Philippines]=$'\U1F1F5\U1F1ED'
1220 emoji_flags[Pakistan]=$'\U1F1F5\U1F1F0'
1221 emoji_flags[Poland]=$'\U1F1F5\U1F1F1'
1222 emoji_flags[St__Pierre___Miquelon]=$'\U1F1F5\U1F1F2'
1223 emoji_flags[Pitcairn_Islands]=$'\U1F1F5\U1F1F3'
1224 emoji_flags[Puerto_Rico]=$'\U1F1F5\U1F1F7'
1225 emoji_flags[Palestinian_Territories]=$'\U1F1F5\U1F1F8'
1226 emoji_flags[Portugal]=$'\U1F1F5\U1F1F9'
1227 emoji_flags[Palau]=$'\U1F1F5\U1F1FC'
1228 emoji_flags[Paraguay]=$'\U1F1F5\U1F1FE'
1229 emoji_flags[Qatar]=$'\U1F1F6\U1F1E6'
1230 emoji_flags[RÃ_union]=$'\U1F1F7\U1F1EA'
1231 emoji_flags[Romania]=$'\U1F1F7\U1F1F4'
1232 emoji_flags[Serbia]=$'\U1F1F7\U1F1F8'
1233 emoji_flags[Russia]=$'\U1F1F7\U1F1FA'
1234 emoji_flags[Rwanda]=$'\U1F1F7\U1F1FC'
1235 emoji_flags[Saudi_Arabia]=$'\U1F1F8\U1F1E6'
1236 emoji_flags[Solomon_Islands]=$'\U1F1F8\U1F1E7'
1237 emoji_flags[Seychelles]=$'\U1F1F8\U1F1E8'
1238 emoji_flags[Sudan]=$'\U1F1F8\U1F1E9'
1239 emoji_flags[Sweden]=$'\U1F1F8\U1F1EA'
1240 emoji_flags[Singapore]=$'\U1F1F8\U1F1EC'
1241 emoji_flags[St__Helena]=$'\U1F1F8\U1F1ED'
1242 emoji_flags[Slovenia]=$'\U1F1F8\U1F1EE'
1243 emoji_flags[Svalbard___Jan_Mayen]=$'\U1F1F8\U1F1EF'
1244 emoji_flags[Slovakia]=$'\U1F1F8\U1F1F0'
1245 emoji_flags[Sierra_Leone]=$'\U1F1F8\U1F1F1'
1246 emoji_flags[San_Marino]=$'\U1F1F8\U1F1F2'
1247 emoji_flags[Senegal]=$'\U1F1F8\U1F1F3'
1248 emoji_flags[Somalia]=$'\U1F1F8\U1F1F4'
1249 emoji_flags[Suriname]=$'\U1F1F8\U1F1F7'
1250 emoji_flags[South_Sudan]=$'\U1F1F8\U1F1F8'
1251 emoji_flags[SÃ_o_TomÃ____PrÃ_ncipe]=$'\U1F1F8\U1F1F9'
1252 emoji_flags[El_Salvador]=$'\U1F1F8\U1F1FB'
1253 emoji_flags[Sint_Maarten]=$'\U1F1F8\U1F1FD'
1254 emoji_flags[Syria]=$'\U1F1F8\U1F1FE'
1255 emoji_flags[Swaziland]=$'\U1F1F8\U1F1FF'
1256 emoji_flags[Tristan_da_Cunha]=$'\U1F1F9\U1F1E6'
1257 emoji_flags[Turks___Caicos_Islands]=$'\U1F1F9\U1F1E8'
1258 emoji_flags[Chad]=$'\U1F1F9\U1F1E9'
1259 emoji_flags[French_Southern_Territories]=$'\U1F1F9\U1F1EB'
1260 emoji_flags[Togo]=$'\U1F1F9\U1F1EC'
1261 emoji_flags[Thailand]=$'\U1F1F9\U1F1ED'
1262 emoji_flags[Tajikistan]=$'\U1F1F9\U1F1EF'
1263 emoji_flags[Tokelau]=$'\U1F1F9\U1F1F0'
1264 emoji_flags[Timor_Leste]=$'\U1F1F9\U1F1F1'
1265 emoji_flags[Turkmenistan]=$'\U1F1F9\U1F1F2'
1266 emoji_flags[Tunisia]=$'\U1F1F9\U1F1F3'
1267 emoji_flags[Tonga]=$'\U1F1F9\U1F1F4'
1268 emoji_flags[Turkey]=$'\U1F1F9\U1F1F7'
1269 emoji_flags[Trinidad___Tobago]=$'\U1F1F9\U1F1F9'
1270 emoji_flags[Tuvalu]=$'\U1F1F9\U1F1FB'
1271 emoji_flags[Taiwan]=$'\U1F1F9\U1F1FC'
1272 emoji_flags[Tanzania]=$'\U1F1F9\U1F1FF'
1273 emoji_flags[Ukraine]=$'\U1F1FA\U1F1E6'
1274 emoji_flags[Uganda]=$'\U1F1FA\U1F1EC'
1275 emoji_flags[U_S__Outlying_Islands]=$'\U1F1FA\U1F1F2'
1276 emoji_flags[United_States]=$'\U1F1FA\U1F1F8'
1277 emoji_flags[Uruguay]=$'\U1F1FA\U1F1FE'
1278 emoji_flags[Uzbekistan]=$'\U1F1FA\U1F1FF'
1279 emoji_flags[Vatican_City]=$'\U1F1FB\U1F1E6'
1280 emoji_flags[St__Vincent___Grenadines]=$'\U1F1FB\U1F1E8'
1281 emoji_flags[Venezuela]=$'\U1F1FB\U1F1EA'
1282 emoji_flags[British_Virgin_Islands]=$'\U1F1FB\U1F1EC'
1283 emoji_flags[U_S__Virgin_Islands]=$'\U1F1FB\U1F1EE'
1284 emoji_flags[Vietnam]=$'\U1F1FB\U1F1F3'
1285 emoji_flags[Vanuatu]=$'\U1F1FB\U1F1FA'
1286 emoji_flags[Wallis___Futuna]=$'\U1F1FC\U1F1EB'
1287 emoji_flags[Samoa]=$'\U1F1FC\U1F1F8'
1288 emoji_flags[Kosovo]=$'\U1F1FD\U1F1F0'
1289 emoji_flags[Yemen]=$'\U1F1FE\U1F1EA'
1290 emoji_flags[Mayotte]=$'\U1F1FE\U1F1F9'
1291 emoji_flags[South_Africa]=$'\U1F1FF\U1F1E6'
1292 emoji_flags[Zambia]=$'\U1F1FF\U1F1F2'
1293 emoji_flags[Zimbabwe]=$'\U1F1FF\U1F1FC'
1294
1295
plugins/emoji/emoji-data.txt
File was created 1 # DRAFT emoji-data.txt
2 # For details about the format and other information, see /../../../reports/tr51/index.html#Data_Files.
3 #
4 # Format: Code ; Default_Emoji_Style ; Emoji_Level ; Emoji_Modifier_Status ; Emoji_Sources # Comment
5 #
6 # Field 1 — Default_Emoji_Style:
7 # text: default text presentation
8 # emoji: default emoji presentation
9 # Field 2 — Emoji_Level:
10 # L1: level 1 emoji
11 # L2: level 2 emoji
12 # NA: not applicable
13 # Field 3 — Emoji_Modifier_Status:
14 # modifier: an emoji modifier
15 # primary: a primary emoji modifier base
16 # secondary: a secondary emoji modifier base
17 # none: not applicable
18 # Field 4 — Emoji_Sources:
19 # one or more values from {z, a, j, w, x}
20 # see the key in http://www.unicode.org/draft/reports/tr51/tr51.html#Major_Sources
21 # NA: not applicable
22 # Comment — currently contains the version where the character was first encoded,
23 # followed by:
24 # - a character name in uppercase (for a single character),
25 # - a keycap name,
26 # - an associated flag, where is associated with value unicode region code
27 #
28 00A9 ; text ; L1 ; none ; j # V1.1 (©) COPYRIGHT SIGN
29 00AE ; text ; L1 ; none ; j # V1.1 (®) REGISTERED SIGN
30 203C ; text ; L1 ; none ; a j # V1.1 (‼) DOUBLE EXCLAMATION MARK
31 2049 ; text ; L1 ; none ; a j # V3.0 (⁉) EXCLAMATION QUESTION MARK
32 2122 ; text ; L1 ; none ; j # V1.1 (™) TRADE MARK SIGN
33 2139 ; text ; L1 ; none ; j # V3.0 (ℹ) INFORMATION SOURCE
34 2194 ; text ; L1 ; none ; z j # V1.1 (↔) LEFT RIGHT ARROW
35 2195 ; text ; L1 ; none ; z j # V1.1 (↕) UP DOWN ARROW
36 2196 ; text ; L1 ; none ; j # V1.1 (↖) NORTH WEST ARROW
37 2197 ; text ; L1 ; none ; j # V1.1 (↗) NORTH EAST ARROW
38 2198 ; text ; L1 ; none ; j # V1.1 (↘) SOUTH EAST ARROW
39 2199 ; text ; L1 ; none ; j # V1.1 (↙) SOUTH WEST ARROW
40 21A9 ; text ; L1 ; none ; j # V1.1 (↩) LEFTWARDS ARROW WITH HOOK
41 21AA ; text ; L1 ; none ; j # V1.1 (↪) RIGHTWARDS ARROW WITH HOOK
42 231A ; emoji ; L1 ; none ; j # V1.1 (⌚) WATCH
43 231B ; emoji ; L1 ; none ; j # V1.1 (⌛) HOURGLASS
44 2328 ; text ; L2 ; none ; x # V1.1 (⌨) KEYBOARD
45 23CF ; text ; L2 ; none ; x # V4.0 (⏏) EJECT SYMBOL
46 23E9 ; emoji ; L1 ; none ; j w # V6.0 (⏩) BLACK RIGHT-POINTING DOUBLE TRIANGLE
47 23EA ; emoji ; L1 ; none ; j w # V6.0 (⏪) BLACK LEFT-POINTING DOUBLE TRIANGLE
48 23EB ; emoji ; L1 ; none ; j # V6.0 (⏫) BLACK UP-POINTING DOUBLE TRIANGLE
49 23EC ; emoji ; L1 ; none ; j # V6.0 (⏬) BLACK DOWN-POINTING DOUBLE TRIANGLE
50 23ED ; text ; L2 ; none ; w # V6.0 (⏭) BLACK RIGHT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR
51 23EE ; text ; L2 ; none ; w # V6.0 (⏮) BLACK LEFT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR
52 23EF ; text ; L2 ; none ; x # V6.0 (⏯) BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR
53 23F0 ; emoji ; L1 ; none ; j # V6.0 (⏰) ALARM CLOCK
54 23F1 ; text ; L2 ; none ; x # V6.0 (⏱) STOPWATCH
55 23F2 ; text ; L2 ; none ; x # V6.0 (⏲) TIMER CLOCK
56 23F3 ; emoji ; L1 ; none ; j w # V6.0 (⏳) HOURGLASS WITH FLOWING SAND
57 23F8 ; text ; L2 ; none ; w # V7.0 (⏸) DOUBLE VERTICAL BAR
58 23F9 ; text ; L2 ; none ; w # V7.0 (⏹) BLACK SQUARE FOR STOP
59 23FA ; text ; L2 ; none ; w # V7.0 (⏺) BLACK CIRCLE FOR RECORD
60 24C2 ; text ; L1 ; none ; j # V1.1 (Ⓜ) CIRCLED LATIN CAPITAL LETTER M
61 25AA ; text ; L1 ; none ; j w # V1.1 (▪) BLACK SMALL SQUARE
62 25AB ; text ; L1 ; none ; j # V1.1 (▫) WHITE SMALL SQUARE
63 25B6 ; text ; L1 ; none ; a j w # V1.1 (▶) BLACK RIGHT-POINTING TRIANGLE
64 25C0 ; text ; L1 ; none ; a j w # V1.1 (◀) BLACK LEFT-POINTING TRIANGLE
65 25FB ; text ; L1 ; none ; j # V3.2 (◻) WHITE MEDIUM SQUARE
66 25FC ; text ; L1 ; none ; j w # V3.2 (◼) BLACK MEDIUM SQUARE
67 25FD ; emoji ; L1 ; none ; j # V3.2 (◽) WHITE MEDIUM SMALL SQUARE
68 25FE ; emoji ; L1 ; none ; j w # V3.2 (◾) BLACK MEDIUM SMALL SQUARE
69 2600 ; text ; L1 ; none ; a j # V1.1 (☀) BLACK SUN WITH RAYS
70 2601 ; text ; L1 ; none ; a j w # V1.1 (☁) CLOUD
71 2602 ; text ; L2 ; none ; a # V1.1 (☂) UMBRELLA
72 2603 ; text ; L2 ; none ; a # V1.1 (☃) SNOWMAN
73 2604 ; text ; L2 ; none ; x # V1.1 (☄) COMET
74 260E ; text ; L1 ; none ; z a j # V1.1 (☎) BLACK TELEPHONE
75 2611 ; text ; L1 ; none ; j w # V1.1 (☑) BALLOT BOX WITH CHECK
76 2614 ; emoji ; L1 ; none ; a j # V4.0 (☔) UMBRELLA WITH RAIN DROPS
77 2615 ; emoji ; L1 ; none ; j # V4.0 (☕) HOT BEVERAGE
78 2618 ; text ; L2 ; none ; x # V4.1 (☘) SHAMROCK
79 261D ; text ; L1 ; secondary ; j w # V1.1 (☝) WHITE UP POINTING INDEX
80 2620 ; text ; L2 ; none ; x # V1.1 (☠) SKULL AND CROSSBONES
81 2622 ; text ; L2 ; none ; x # V1.1 (☢) RADIOACTIVE SIGN
82 2623 ; text ; L2 ; none ; x # V1.1 (☣) BIOHAZARD SIGN
83 2626 ; text ; L2 ; none ; x # V1.1 (☦) ORTHODOX CROSS
84 262A ; text ; L2 ; none ; w # V1.1 (☪) STAR AND CRESCENT
85 262E ; text ; L2 ; none ; x # V1.1 (☮) PEACE SYMBOL
86 262F ; text ; L2 ; none ; w # V1.1 (☯) YIN YANG
87 2638 ; text ; L2 ; none ; w # V1.1 (☸) WHEEL OF DHARMA
88 2639 ; text ; L2 ; secondary ; w # V1.1 (☹) WHITE FROWNING FACE
89 263A ; text ; L1 ; secondary ; j w # V1.1 (☺) WHITE SMILING FACE
90 2648 ; emoji ; L1 ; none ; j w # V1.1 (♈) ARIES
91 2649 ; emoji ; L1 ; none ; j w # V1.1 (♉) TAURUS
92 264A ; emoji ; L1 ; none ; j w # V1.1 (♊) GEMINI
93 264B ; emoji ; L1 ; none ; j w # V1.1 (♋) CANCER
94 264C ; emoji ; L1 ; none ; j w # V1.1 (♌) LEO
95 264D ; emoji ; L1 ; none ; j w # V1.1 (♍) VIRGO
96 264E ; emoji ; L1 ; none ; j w # V1.1 (♎) LIBRA
97 264F ; emoji ; L1 ; none ; j w # V1.1 (♏) SCORPIUS
98 2650 ; emoji ; L1 ; none ; j w # V1.1 (♐) SAGITTARIUS
99 2651 ; emoji ; L1 ; none ; j w # V1.1 (♑) CAPRICORN
100 2652 ; emoji ; L1 ; none ; j w # V1.1 (♒) AQUARIUS
101 2653 ; emoji ; L1 ; none ; j w # V1.1 (♓) PISCES
102 2660 ; text ; L1 ; none ; z a j # V1.1 (♠) BLACK SPADE SUIT
103 2663 ; text ; L1 ; none ; z a j # V1.1 (♣) BLACK CLUB SUIT
104 2665 ; text ; L1 ; none ; z a j # V1.1 (♥) BLACK HEART SUIT
105 2666 ; text ; L1 ; none ; z a j # V1.1 (♦) BLACK DIAMOND SUIT
106 2668 ; text ; L1 ; none ; a j # V1.1 (♨) HOT SPRINGS
107 267B ; text ; L1 ; none ; j # V3.2 (♻) BLACK UNIVERSAL RECYCLING SYMBOL
108 267F ; emoji ; L1 ; none ; j w # V4.1 (♿) WHEELCHAIR SYMBOL
109 2692 ; text ; L2 ; none ; x # V4.1 (⚒) HAMMER AND PICK
110 2693 ; emoji ; L1 ; none ; a j # V4.1 (⚓) ANCHOR
111 2694 ; text ; L2 ; none ; x # V4.1 (⚔) CROSSED SWORDS
112 2696 ; text ; L2 ; none ; x # V4.1 (⚖) SCALES
113 2697 ; text ; L2 ; none ; x # V4.1 (⚗) ALEMBIC
114 2699 ; text ; L2 ; none ; x # V4.1 (⚙) GEAR
115 269B ; text ; L2 ; none ; x # V4.1 (⚛) ATOM SYMBOL
116 269C ; text ; L2 ; none ; x # V4.1 (⚜) FLEUR-DE-LIS
117 26A0 ; text ; L1 ; none ; j # V4.0 (⚠) WARNING SIGN
118 26A1 ; emoji ; L1 ; none ; a j # V4.0 (⚡) HIGH VOLTAGE SIGN
119 26AA ; emoji ; L1 ; none ; j # V4.1 (⚪) MEDIUM WHITE CIRCLE
120 26AB ; emoji ; L1 ; none ; j w # V4.1 (⚫) MEDIUM BLACK CIRCLE
121 26B0 ; text ; L2 ; none ; x # V4.1 (⚰) COFFIN
122 26B1 ; text ; L2 ; none ; x # V4.1 (⚱) FUNERAL URN
123 26BD ; emoji ; L1 ; none ; j # V5.2 (⚽) SOCCER BALL
124 26BE ; emoji ; L1 ; none ; a j # V5.2 (⚾) BASEBALL
125 26C4 ; emoji ; L1 ; none ; a j # V5.2 (⛄) SNOWMAN WITHOUT SNOW
126 26C5 ; emoji ; L1 ; none ; a j # V5.2 (⛅) SUN BEHIND CLOUD
127 26C8 ; text ; L2 ; none ; a # V5.2 (⛈) THUNDER CLOUD AND RAIN
128 26CE ; emoji ; L1 ; none ; a j # V6.0 (⛎) OPHIUCHUS
129 26CF ; text ; L2 ; none ; a # V5.2 (⛏) PICK
130 26D1 ; text ; L2 ; none ; a # V5.2 (⛑) HELMET WITH WHITE CROSS
131 26D3 ; text ; L2 ; none ; a # V5.2 (⛓) CHAINS
132 26D4 ; emoji ; L1 ; none ; a j # V5.2 (⛔) NO ENTRY
133 26E9 ; text ; L2 ; none ; a # V5.2 (⛩) SHINTO SHRINE
134 26EA ; emoji ; L1 ; none ; a j # V5.2 (⛪) CHURCH
135 26F0 ; text ; L2 ; none ; a # V5.2 (⛰) MOUNTAIN
136 26F1 ; text ; L2 ; none ; a # V5.2 (⛱) UMBRELLA ON GROUND
137 26F2 ; emoji ; L1 ; none ; a j # V5.2 (⛲) FOUNTAIN
138 26F3 ; emoji ; L1 ; none ; a j w # V5.2 (⛳) FLAG IN HOLE
139 26F4 ; text ; L2 ; none ; a # V5.2 (⛴) FERRY
140 26F5 ; emoji ; L1 ; none ; a j # V5.2 (⛵) SAILBOAT
141 26F7 ; text ; L2 ; none ; a w # V5.2 (⛷) SKIER
142 26F8 ; text ; L2 ; none ; a # V5.2 (⛸) ICE SKATE
143 26F9 ; text ; L2 ; none ; a # V5.2 (⛹) PERSON WITH BALL
144 26FA ; emoji ; L1 ; none ; a j # V5.2 (⛺) TENT
145 26FD ; emoji ; L1 ; none ; a j # V5.2 (⛽) FUEL PUMP
146 2702 ; text ; L1 ; none ; z j w # V1.1 (✂) BLACK SCISSORS
147 2705 ; emoji ; L1 ; none ; j # V6.0 (✅) WHITE HEAVY CHECK MARK
148 2708 ; text ; L1 ; none ; z a j w # V1.1 (✈) AIRPLANE
149 2709 ; text ; L1 ; none ; z j # V1.1 (✉) ENVELOPE
150 270A ; emoji ; L1 ; secondary ; j # V6.0 (✊) RAISED FIST
151 270B ; emoji ; L1 ; secondary ; j # V6.0 (✋) RAISED HAND
152 270C ; text ; L1 ; secondary ; z j w # V1.1 (✌) VICTORY HAND
153 270D ; text ; L2 ; secondary ; z w # V1.1 (✍) WRITING HAND
154 270F ; text ; L1 ; none ; z j # V1.1 (✏) PENCIL
155 2712 ; text ; L1 ; none ; z j # V1.1 (✒) BLACK NIB
156 2714 ; text ; L1 ; none ; z j w # V1.1 (✔) HEAVY CHECK MARK
157 2716 ; text ; L1 ; none ; z j # V1.1 (✖) HEAVY MULTIPLICATION X
158 271D ; text ; L2 ; none ; w # V1.1 (✝) LATIN CROSS
159 2721 ; text ; L2 ; none ; w # V1.1 (✡) STAR OF DAVID
160 2728 ; emoji ; L1 ; none ; j # V6.0 (✨) SPARKLES
161 2733 ; text ; L1 ; none ; z j # V1.1 (✳) EIGHT SPOKED ASTERISK
162 2734 ; text ; L1 ; none ; z j # V1.1 (✴) EIGHT POINTED BLACK STAR
163 2744 ; text ; L1 ; none ; z j w # V1.1 (❄) SNOWFLAKE
164 2747 ; text ; L1 ; none ; z j # V1.1 (❇) SPARKLE
165 274C ; emoji ; L1 ; none ; j # V6.0 (❌) CROSS MARK
166 274E ; emoji ; L1 ; none ; j # V6.0 (❎) NEGATIVE SQUARED CROSS MARK
167 2753 ; emoji ; L1 ; none ; j w # V6.0 (❓) BLACK QUESTION MARK ORNAMENT
168 2754 ; emoji ; L1 ; none ; j # V6.0 (❔) WHITE QUESTION MARK ORNAMENT
169 2755 ; emoji ; L1 ; none ; j # V6.0 (❕) WHITE EXCLAMATION MARK ORNAMENT
170 2757 ; emoji ; L1 ; none ; j # V5.2 (❗) HEAVY EXCLAMATION MARK SYMBOL
171 2763 ; text ; L2 ; none ; z # V1.1 (❣) HEAVY HEART EXCLAMATION MARK ORNAMENT
172 2764 ; text ; L1 ; none ; z j # V1.1 (❤) HEAVY BLACK HEART
173 2795 ; emoji ; L1 ; none ; j # V6.0 (➕) HEAVY PLUS SIGN
174 2796 ; emoji ; L1 ; none ; j # V6.0 (➖) HEAVY MINUS SIGN
175 2797 ; emoji ; L1 ; none ; j # V6.0 (➗) HEAVY DIVISION SIGN
176 27A1 ; text ; L1 ; none ; z a j # V1.1 (➡) BLACK RIGHTWARDS ARROW
177 27B0 ; emoji ; L1 ; none ; j # V6.0 (➰) CURLY LOOP
178 27BF ; emoji ; L1 ; none ; x # V6.0 (➿) DOUBLE CURLY LOOP
179 2934 ; text ; L1 ; none ; j # V3.2 (⤴) ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS
180 2935 ; text ; L1 ; none ; j # V3.2 (⤵) ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS
181 2B05 ; text ; L1 ; none ; a j # V4.0 (⬅) LEFTWARDS BLACK ARROW
182 2B06 ; text ; L1 ; none ; a j # V4.0 (⬆) UPWARDS BLACK ARROW
183 2B07 ; text ; L1 ; none ; a j # V4.0 (⬇) DOWNWARDS BLACK ARROW
184 2B1B ; emoji ; L1 ; none ; a j w # V5.1 (⬛) BLACK LARGE SQUARE
185 2B1C ; emoji ; L1 ; none ; j w # V5.1 (⬜) WHITE LARGE SQUARE
186 2B50 ; emoji ; L1 ; none ; j # V5.1 (⭐) WHITE MEDIUM STAR
187 2B55 ; emoji ; L1 ; none ; j # V5.2 (⭕) HEAVY LARGE CIRCLE
188 3030 ; text ; L1 ; none ; j # V1.1 (〰) WAVY DASH
189 303D ; text ; L1 ; none ; j # V3.2 (〽) PART ALTERNATION MARK
190 3297 ; text ; L1 ; none ; j # V1.1 (㊗) CIRCLED IDEOGRAPH CONGRATULATION
191 3299 ; text ; L1 ; none ; a j # V1.1 (㊙) CIRCLED IDEOGRAPH SECRET
192 1F004 ; emoji ; L1 ; none ; j # V5.1 (🀄) MAHJONG TILE RED DRAGON
193 1F0CF ; emoji ; L1 ; none ; j # V6.0 (🃏) PLAYING CARD BLACK JOKER
194 1F170 ; text ; L1 ; none ; j # V6.0 (🅰) NEGATIVE SQUARED LATIN CAPITAL LETTER A
195 1F171 ; text ; L1 ; none ; j # V6.0 (🅱) NEGATIVE SQUARED LATIN CAPITAL LETTER B
196 1F17E ; text ; L1 ; none ; j # V6.0 (🅾) NEGATIVE SQUARED LATIN CAPITAL LETTER O
197 1F17F ; text ; L1 ; none ; a j # V5.2 (🅿) NEGATIVE SQUARED LATIN CAPITAL LETTER P
198 1F18E ; emoji ; L1 ; none ; j # V6.0 (🆎) NEGATIVE SQUARED AB
199 1F191 ; emoji ; L1 ; none ; j # V6.0 (🆑) SQUARED CL
200 1F192 ; emoji ; L1 ; none ; j # V6.0 (🆒) SQUARED COOL
201 1F193 ; emoji ; L1 ; none ; j # V6.0 (🆓) SQUARED FREE
202 1F194 ; emoji ; L1 ; none ; j # V6.0 (🆔) SQUARED ID
203 1F195 ; emoji ; L1 ; none ; j # V6.0 (🆕) SQUARED NEW
204 1F196 ; emoji ; L1 ; none ; j # V6.0 (🆖) SQUARED NG
205 1F197 ; emoji ; L1 ; none ; j # V6.0 (🆗) SQUARED OK
206 1F198 ; emoji ; L1 ; none ; j # V6.0 (🆘) SQUARED SOS
207 1F199 ; emoji ; L1 ; none ; j # V6.0 (🆙) SQUARED UP WITH EXCLAMATION MARK
208 1F19A ; emoji ; L1 ; none ; j # V6.0 (🆚) SQUARED VS
209 1F201 ; emoji ; L1 ; none ; j # V6.0 (🈁) SQUARED KATAKANA KOKO
210 1F202 ; text ; L1 ; none ; j # V6.0 (🈂) SQUARED KATAKANA SA
211 1F21A ; emoji ; L1 ; none ; a j # V5.2 (🈚) SQUARED CJK UNIFIED IDEOGRAPH-7121
212 1F22F ; emoji ; L1 ; none ; a j # V5.2 (🈯) SQUARED CJK UNIFIED IDEOGRAPH-6307
213 1F232 ; emoji ; L1 ; none ; j # V6.0 (🈲) SQUARED CJK UNIFIED IDEOGRAPH-7981
214 1F233 ; emoji ; L1 ; none ; j # V6.0 (🈳) SQUARED CJK UNIFIED IDEOGRAPH-7A7A
215 1F234 ; emoji ; L1 ; none ; j # V6.0 (🈴) SQUARED CJK UNIFIED IDEOGRAPH-5408
216 1F235 ; emoji ; L1 ; none ; j # V6.0 (🈵) SQUARED CJK UNIFIED IDEOGRAPH-6E80
217 1F236 ; emoji ; L1 ; none ; j # V6.0 (🈶) SQUARED CJK UNIFIED IDEOGRAPH-6709
218 1F237 ; text ; L1 ; none ; j # V6.0 (🈷) SQUARED CJK UNIFIED IDEOGRAPH-6708
219 1F238 ; emoji ; L1 ; none ; j # V6.0 (🈸) SQUARED CJK UNIFIED IDEOGRAPH-7533
220 1F239 ; emoji ; L1 ; none ; j # V6.0 (🈹) SQUARED CJK UNIFIED IDEOGRAPH-5272
221 1F23A ; emoji ; L1 ; none ; j # V6.0 (🈺) SQUARED CJK UNIFIED IDEOGRAPH-55B6
222 1F250 ; emoji ; L1 ; none ; j # V6.0 (🉐) CIRCLED IDEOGRAPH ADVANTAGE
223 1F251 ; emoji ; L1 ; none ; j # V6.0 (🉑) CIRCLED IDEOGRAPH ACCEPT
224 1F300 ; emoji ; L1 ; none ; j # V6.0 (🌀) CYCLONE
225 1F301 ; emoji ; L1 ; none ; j # V6.0 (🌁) FOGGY
226 1F302 ; emoji ; L1 ; none ; j # V6.0 (🌂) CLOSED UMBRELLA
227 1F303 ; emoji ; L1 ; none ; j # V6.0 (🌃) NIGHT WITH STARS
228 1F304 ; emoji ; L1 ; none ; j # V6.0 (🌄) SUNRISE OVER MOUNTAINS
229 1F305 ; emoji ; L1 ; none ; j # V6.0 (🌅) SUNRISE
230 1F306 ; emoji ; L1 ; none ; j # V6.0 (🌆) CITYSCAPE AT DUSK
231 1F307 ; emoji ; L1 ; none ; j # V6.0 (🌇) SUNSET OVER BUILDINGS
232 1F308 ; emoji ; L1 ; none ; j # V6.0 (🌈) RAINBOW
233 1F309 ; emoji ; L1 ; none ; j # V6.0 (🌉) BRIDGE AT NIGHT
234 1F30A ; emoji ; L1 ; none ; j # V6.0 (🌊) WATER WAVE
235 1F30B ; emoji ; L1 ; none ; j # V6.0 (🌋) VOLCANO
236 1F30C ; emoji ; L1 ; none ; j # V6.0 (🌌) MILKY WAY
237 1F30D ; emoji ; L1 ; none ; w # V6.0 (🌍) EARTH GLOBE EUROPE-AFRICA
238 1F30E ; emoji ; L1 ; none ; w # V6.0 (🌎) EARTH GLOBE AMERICAS
239 1F30F ; emoji ; L1 ; none ; j w # V6.0 (🌏) EARTH GLOBE ASIA-AUSTRALIA
240 1F310 ; emoji ; L1 ; none ; x # V6.0 (🌐) GLOBE WITH MERIDIANS
241 1F311 ; emoji ; L1 ; none ; j # V6.0 (🌑) NEW MOON SYMBOL
242 1F312 ; emoji ; L1 ; none ; x # V6.0 (🌒) WAXING CRESCENT MOON SYMBOL
243 1F313 ; emoji ; L1 ; none ; j # V6.0 (🌓) FIRST QUARTER MOON SYMBOL
244 1F314 ; emoji ; L1 ; none ; j # V6.0 (🌔) WAXING GIBBOUS MOON SYMBOL
245 1F315 ; emoji ; L1 ; none ; j w # V6.0 (🌕) FULL MOON SYMBOL
246 1F316 ; emoji ; L1 ; none ; x # V6.0 (🌖) WANING GIBBOUS MOON SYMBOL
247 1F317 ; emoji ; L1 ; none ; x # V6.0 (🌗) LAST QUARTER MOON SYMBOL
248 1F318 ; emoji ; L1 ; none ; x # V6.0 (🌘) WANING CRESCENT MOON SYMBOL
249 1F319 ; emoji ; L1 ; none ; j # V6.0 (🌙) CRESCENT MOON
250 1F31A ; emoji ; L1 ; none ; x # V6.0 (🌚) NEW MOON WITH FACE
251 1F31B ; emoji ; L1 ; none ; j # V6.0 (🌛) FIRST QUARTER MOON WITH FACE
252 1F31C ; emoji ; L1 ; none ; w # V6.0 (🌜) LAST QUARTER MOON WITH FACE
253 1F31D ; emoji ; L1 ; none ; x # V6.0 (🌝) FULL MOON WITH FACE
254 1F31E ; emoji ; L1 ; none ; x # V6.0 (🌞) SUN WITH FACE
255 1F31F ; emoji ; L1 ; none ; j # V6.0 (🌟) GLOWING STAR
256 1F320 ; emoji ; L1 ; none ; j # V6.0 (🌠) SHOOTING STAR
257 1F321 ; text ; L2 ; none ; w # V7.0 (🌡) THERMOMETER
258 1F324 ; text ; L2 ; none ; w # V7.0 (🌤) WHITE SUN WITH SMALL CLOUD
259 1F325 ; text ; L2 ; none ; w # V7.0 (🌥) WHITE SUN BEHIND CLOUD
260 1F326 ; text ; L2 ; none ; w # V7.0 (🌦) WHITE SUN BEHIND CLOUD WITH RAIN
261 1F327 ; text ; L2 ; none ; w # V7.0 (🌧) CLOUD WITH RAIN
262 1F328 ; text ; L2 ; none ; w # V7.0 (🌨) CLOUD WITH SNOW
263 1F329 ; text ; L2 ; none ; w # V7.0 (🌩) CLOUD WITH LIGHTNING
264 1F32A ; text ; L2 ; none ; w # V7.0 (🌪) CLOUD WITH TORNADO
265 1F32B ; text ; L2 ; none ; w # V7.0 (🌫) FOG
266 1F32C ; text ; L2 ; none ; w # V7.0 (🌬) WIND BLOWING FACE
267 1F32D ; emoji ; L2 ; none ; x # V8.0 (🌭) HOT DOG
268 1F32E ; emoji ; L2 ; none ; x # V8.0 (🌮) TACO
269 1F32F ; emoji ; L2 ; none ; x # V8.0 (🌯) BURRITO
270 1F330 ; emoji ; L1 ; none ; j # V6.0 (🌰) CHESTNUT
271 1F331 ; emoji ; L1 ; none ; j # V6.0 (🌱) SEEDLING
272 1F332 ; emoji ; L1 ; none ; x # V6.0 (🌲) EVERGREEN TREE
273 1F333 ; emoji ; L1 ; none ; x # V6.0 (🌳) DECIDUOUS TREE
274 1F334 ; emoji ; L1 ; none ; j # V6.0 (🌴) PALM TREE
275 1F335 ; emoji ; L1 ; none ; j # V6.0 (🌵) CACTUS
276 1F336 ; text ; L2 ; none ; w # V7.0 (🌶) HOT PEPPER
277 1F337 ; emoji ; L1 ; none ; j # V6.0 (🌷) TULIP
278 1F338 ; emoji ; L1 ; none ; j # V6.0 (🌸) CHERRY BLOSSOM
279 1F339 ; emoji ; L1 ; none ; j # V6.0 (🌹) ROSE
280 1F33A ; emoji ; L1 ; none ; j # V6.0 (🌺) HIBISCUS
281 1F33B ; emoji ; L1 ; none ; j # V6.0 (🌻) SUNFLOWER
282 1F33C ; emoji ; L1 ; none ; j # V6.0 (🌼) BLOSSOM
283 1F33D ; emoji ; L1 ; none ; j # V6.0 (🌽) EAR OF MAIZE
284 1F33E ; emoji ; L1 ; none ; j # V6.0 (🌾) EAR OF RICE
285 1F33F ; emoji ; L1 ; none ; j # V6.0 (🌿) HERB
286 1F340 ; emoji ; L1 ; none ; j # V6.0 (🍀) FOUR LEAF CLOVER
287 1F341 ; emoji ; L1 ; none ; j # V6.0 (🍁) MAPLE LEAF
288 1F342 ; emoji ; L1 ; none ; j # V6.0 (🍂) FALLEN LEAF
289 1F343 ; emoji ; L1 ; none ; j # V6.0 (🍃) LEAF FLUTTERING IN WIND
290 1F344 ; emoji ; L1 ; none ; j # V6.0 (🍄) MUSHROOM
291 1F345 ; emoji ; L1 ; none ; j # V6.0 (🍅) TOMATO
292 1F346 ; emoji ; L1 ; none ; j # V6.0 (🍆) AUBERGINE
293 1F347 ; emoji ; L1 ; none ; j # V6.0 (🍇) GRAPES
294 1F348 ; emoji ; L1 ; none ; j # V6.0 (🍈) MELON
295 1F349 ; emoji ; L1 ; none ; j # V6.0 (🍉) WATERMELON
296 1F34A ; emoji ; L1 ; none ; j # V6.0 (🍊) TANGERINE
297 1F34B ; emoji ; L1 ; none ; x # V6.0 (🍋) LEMON
298 1F34C ; emoji ; L1 ; none ; j # V6.0 (🍌) BANANA
299 1F34D ; emoji ; L1 ; none ; j # V6.0 (🍍) PINEAPPLE
300 1F34E ; emoji ; L1 ; none ; j # V6.0 (🍎) RED APPLE
301 1F34F ; emoji ; L1 ; none ; j # V6.0 (🍏) GREEN APPLE
302 1F350 ; emoji ; L1 ; none ; x # V6.0 (🍐) PEAR
303 1F351 ; emoji ; L1 ; none ; j # V6.0 (🍑) PEACH
304 1F352 ; emoji ; L1 ; none ; j # V6.0 (🍒) CHERRIES
305 1F353 ; emoji ; L1 ; none ; j # V6.0 (🍓) STRAWBERRY
306 1F354 ; emoji ; L1 ; none ; j # V6.0 (🍔) HAMBURGER
307 1F355 ; emoji ; L1 ; none ; j # V6.0 (🍕) SLICE OF PIZZA
308 1F356 ; emoji ; L1 ; none ; j # V6.0 (🍖) MEAT ON BONE
309 1F357 ; emoji ; L1 ; none ; j # V6.0 (🍗) POULTRY LEG
310 1F358 ; emoji ; L1 ; none ; j # V6.0 (🍘) RICE CRACKER
311 1F359 ; emoji ; L1 ; none ; j # V6.0 (🍙) RICE BALL
312 1F35A ; emoji ; L1 ; none ; j # V6.0 (🍚) COOKED RICE
313 1F35B ; emoji ; L1 ; none ; j # V6.0 (🍛) CURRY AND RICE
314 1F35C ; emoji ; L1 ; none ; j # V6.0 (🍜) STEAMING BOWL
315 1F35D ; emoji ; L1 ; none ; j # V6.0 (🍝) SPAGHETTI
316 1F35E ; emoji ; L1 ; none ; j # V6.0 (🍞) BREAD
317 1F35F ; emoji ; L1 ; none ; j # V6.0 (🍟) FRENCH FRIES
318 1F360 ; emoji ; L1 ; none ; j # V6.0 (🍠) ROASTED SWEET POTATO
319 1F361 ; emoji ; L1 ; none ; j # V6.0 (🍡) DANGO
320 1F362 ; emoji ; L1 ; none ; j # V6.0 (🍢) ODEN
321 1F363 ; emoji ; L1 ; none ; j # V6.0 (🍣) SUSHI
322 1F364 ; emoji ; L1 ; none ; j # V6.0 (🍤) FRIED SHRIMP
323 1F365 ; emoji ; L1 ; none ; j # V6.0 (🍥) FISH CAKE WITH SWIRL DESIGN
324 1F366 ; emoji ; L1 ; none ; j # V6.0 (🍦) SOFT ICE CREAM
325 1F367 ; emoji ; L1 ; none ; j # V6.0 (🍧) SHAVED ICE
326 1F368 ; emoji ; L1 ; none ; j # V6.0 (🍨) ICE CREAM
327 1F369 ; emoji ; L1 ; none ; j # V6.0 (🍩) DOUGHNUT
328 1F36A ; emoji ; L1 ; none ; j # V6.0 (🍪) COOKIE
329 1F36B ; emoji ; L1 ; none ; j # V6.0 (🍫) CHOCOLATE BAR
330 1F36C ; emoji ; L1 ; none ; j # V6.0 (🍬) CANDY
331 1F36D ; emoji ; L1 ; none ; j # V6.0 (🍭) LOLLIPOP
332 1F36E ; emoji ; L1 ; none ; j # V6.0 (🍮) CUSTARD
333 1F36F ; emoji ; L1 ; none ; j # V6.0 (🍯) HONEY POT
334 1F370 ; emoji ; L1 ; none ; j # V6.0 (🍰) SHORTCAKE
335 1F371 ; emoji ; L1 ; none ; j # V6.0 (🍱) BENTO BOX
336 1F372 ; emoji ; L1 ; none ; j # V6.0 (🍲) POT OF FOOD
337 1F373 ; emoji ; L1 ; none ; j # V6.0 (🍳) COOKING
338 1F374 ; emoji ; L1 ; none ; j # V6.0 (🍴) FORK AND KNIFE
339 1F375 ; emoji ; L1 ; none ; j # V6.0 (🍵) TEACUP WITHOUT HANDLE
340 1F376 ; emoji ; L1 ; none ; j # V6.0 (🍶) SAKE BOTTLE AND CUP
341 1F377 ; emoji ; L1 ; none ; j # V6.0 (🍷) WINE GLASS
342 1F378 ; emoji ; L1 ; none ; j w # V6.0 (🍸) COCKTAIL GLASS
343 1F379 ; emoji ; L1 ; none ; j # V6.0 (🍹) TROPICAL DRINK
344 1F37A ; emoji ; L1 ; none ; j # V6.0 (🍺) BEER MUG
345 1F37B ; emoji ; L1 ; none ; j # V6.0 (🍻) CLINKING BEER MUGS
346 1F37C ; emoji ; L1 ; none ; x # V6.0 (🍼) BABY BOTTLE
347 1F37D ; text ; L2 ; none ; w # V7.0 (🍽) FORK AND KNIFE WITH PLATE
348 1F37E ; emoji ; L2 ; none ; x # V8.0 (🍾) BOTTLE WITH POPPING CORK
349 1F37F ; emoji ; L2 ; none ; x # V8.0 (🍿) POPCORN
350 1F380 ; emoji ; L1 ; none ; j # V6.0 (🎀) RIBBON
351 1F381 ; emoji ; L1 ; none ; j # V6.0 (🎁) WRAPPED PRESENT
352 1F382 ; emoji ; L1 ; none ; j # V6.0 (🎂) BIRTHDAY CAKE
353 1F383 ; emoji ; L1 ; none ; j # V6.0 (🎃) JACK-O-LANTERN
354 1F384 ; emoji ; L1 ; none ; j # V6.0 (🎄) CHRISTMAS TREE
355 1F385 ; emoji ; L1 ; primary ; j # V6.0 (🎅) FATHER CHRISTMAS
356 1F386 ; emoji ; L1 ; none ; j # V6.0 (🎆) FIREWORKS
357 1F387 ; emoji ; L1 ; none ; j # V6.0 (🎇) FIREWORK SPARKLER
358 1F388 ; emoji ; L1 ; none ; j # V6.0 (🎈) BALLOON
359 1F389 ; emoji ; L1 ; none ; j # V6.0 (🎉) PARTY POPPER
360 1F38A ; emoji ; L1 ; none ; j # V6.0 (🎊) CONFETTI BALL
361 1F38B ; emoji ; L1 ; none ; j # V6.0 (🎋) TANABATA TREE
362 1F38C ; emoji ; L1 ; none ; j # V6.0 (🎌) CROSSED FLAGS
363 1F38D ; emoji ; L1 ; none ; j # V6.0 (🎍) PINE DECORATION
364 1F38E ; emoji ; L1 ; none ; j # V6.0 (🎎) JAPANESE DOLLS
365 1F38F ; emoji ; L1 ; none ; j # V6.0 (🎏) CARP STREAMER
366 1F390 ; emoji ; L1 ; none ; j # V6.0 (🎐) WIND CHIME
367 1F391 ; emoji ; L1 ; none ; j # V6.0 (🎑) MOON VIEWING CEREMONY
368 1F392 ; emoji ; L1 ; none ; j # V6.0 (🎒) SCHOOL SATCHEL
369 1F393 ; emoji ; L1 ; none ; j w # V6.0 (🎓) GRADUATION CAP
370 1F396 ; text ; L2 ; none ; w # V7.0 (🎖) MILITARY MEDAL
371 1F397 ; text ; L2 ; none ; w # V7.0 (🎗) REMINDER RIBBON
372 1F399 ; text ; L2 ; none ; w # V7.0 (🎙) STUDIO MICROPHONE
373 1F39A ; text ; L2 ; none ; w # V7.0 (🎚) LEVEL SLIDER
374 1F39B ; text ; L2 ; none ; w # V7.0 (🎛) CONTROL KNOBS
375 1F39E ; text ; L2 ; none ; w # V7.0 (🎞) FILM FRAMES
376 1F39F ; text ; L2 ; none ; w # V7.0 (🎟) ADMISSION TICKETS
377 1F3A0 ; emoji ; L1 ; none ; j # V6.0 (🎠) CAROUSEL HORSE
378 1F3A1 ; emoji ; L1 ; none ; j # V6.0 (🎡) FERRIS WHEEL
379 1F3A2 ; emoji ; L1 ; none ; j # V6.0 (🎢) ROLLER COASTER
380 1F3A3 ; emoji ; L1 ; none ; j # V6.0 (🎣) FISHING POLE AND FISH
381 1F3A4 ; emoji ; L1 ; none ; j # V6.0 (🎤) MICROPHONE
382 1F3A5 ; emoji ; L1 ; none ; j # V6.0 (🎥) MOVIE CAMERA
383 1F3A6 ; emoji ; L1 ; none ; j # V6.0 (🎦) CINEMA
384 1F3A7 ; emoji ; L1 ; none ; j w # V6.0 (🎧) HEADPHONE
385 1F3A8 ; emoji ; L1 ; none ; j # V6.0 (🎨) ARTIST PALETTE
386 1F3A9 ; emoji ; L1 ; none ; j # V6.0 (🎩) TOP HAT
387 1F3AA ; emoji ; L1 ; none ; j # V6.0 (🎪) CIRCUS TENT
388 1F3AB ; emoji ; L1 ; none ; j # V6.0 (🎫) TICKET
389 1F3AC ; emoji ; L1 ; none ; j w # V6.0 (🎬) CLAPPER BOARD
390 1F3AD ; emoji ; L1 ; none ; j w # V6.0 (🎭) PERFORMING ARTS
391 1F3AE ; emoji ; L1 ; none ; j w # V6.0 (🎮) VIDEO GAME
392 1F3AF ; emoji ; L1 ; none ; j # V6.0 (🎯) DIRECT HIT
393 1F3B0 ; emoji ; L1 ; none ; j # V6.0 (🎰) SLOT MACHINE
394 1F3B1 ; emoji ; L1 ; none ; j # V6.0 (🎱) BILLIARDS
395 1F3B2 ; emoji ; L1 ; none ; j # V6.0 (🎲) GAME DIE
396 1F3B3 ; emoji ; L1 ; none ; j # V6.0 (🎳) BOWLING
397 1F3B4 ; emoji ; L1 ; none ; j # V6.0 (🎴) FLOWER PLAYING CARDS
398 1F3B5 ; emoji ; L1 ; none ; j # V6.0 (🎵) MUSICAL NOTE
399 1F3B6 ; emoji ; L1 ; none ; j # V6.0 (🎶) MULTIPLE MUSICAL NOTES
400 1F3B7 ; emoji ; L1 ; none ; j # V6.0 (🎷) SAXOPHONE
401 1F3B8 ; emoji ; L1 ; none ; j # V6.0 (🎸) GUITAR
402 1F3B9 ; emoji ; L1 ; none ; j # V6.0 (🎹) MUSICAL KEYBOARD
403 1F3BA ; emoji ; L1 ; none ; j # V6.0 (🎺) TRUMPET
404 1F3BB ; emoji ; L1 ; none ; j # V6.0 (🎻) VIOLIN
405 1F3BC ; emoji ; L1 ; none ; j # V6.0 (🎼) MUSICAL SCORE
406 1F3BD ; emoji ; L1 ; none ; j # V6.0 (🎽) RUNNING SHIRT WITH SASH
407 1F3BE ; emoji ; L1 ; none ; j # V6.0 (🎾) TENNIS RACQUET AND BALL
408 1F3BF ; emoji ; L1 ; none ; j # V6.0 (🎿) SKI AND SKI BOOT
409 1F3C0 ; emoji ; L1 ; none ; j # V6.0 (🏀) BASKETBALL AND HOOP
410 1F3C1 ; emoji ; L1 ; none ; j # V6.0 (🏁) CHEQUERED FLAG
411 1F3C2 ; emoji ; L1 ; secondary ; j w # V6.0 (🏂) SNOWBOARDER
412 1F3C3 ; emoji ; L1 ; secondary ; j # V6.0 (🏃) RUNNER
413 1F3C4 ; emoji ; L1 ; secondary ; j w # V6.0 (🏄) SURFER
414 1F3C5 ; emoji ; L2 ; none ; x # V7.0 (🏅) SPORTS MEDAL
415 1F3C6 ; emoji ; L1 ; none ; j w # V6.0 (🏆) TROPHY
416 1F3C7 ; emoji ; L1 ; secondary ; x # V6.0 (🏇) HORSE RACING
417 1F3C8 ; emoji ; L1 ; none ; j # V6.0 (🏈) AMERICAN FOOTBALL
418 1F3C9 ; emoji ; L1 ; none ; x # V6.0 (🏉) RUGBY FOOTBALL
419 1F3CA ; emoji ; L1 ; secondary ; j w # V6.0 (🏊) SWIMMER
420 1F3CB ; text ; L2 ; none ; w # V7.0 (🏋) WEIGHT LIFTER
421 1F3CC ; text ; L2 ; none ; w # V7.0 (🏌) GOLFER
422 1F3CD ; text ; L2 ; none ; w # V7.0 (🏍) RACING MOTORCYCLE
423 1F3CE ; text ; L2 ; none ; w # V7.0 (🏎) RACING CAR
424 1F3CF ; emoji ; L2 ; none ; x # V8.0 (🏏) CRICKET BAT AND BALL
425 1F3D0 ; emoji ; L2 ; none ; x # V8.0 (🏐) VOLLEYBALL
426 1F3D1 ; emoji ; L2 ; none ; x # V8.0 (🏑) FIELD HOCKEY STICK AND BALL
427 1F3D2 ; emoji ; L2 ; none ; x # V8.0 (🏒) ICE HOCKEY STICK AND PUCK
428 1F3D3 ; emoji ; L2 ; none ; x # V8.0 (🏓) TABLE TENNIS PADDLE AND BALL
429 1F3D4 ; text ; L2 ; none ; w # V7.0 (🏔) SNOW CAPPED MOUNTAIN
430 1F3D5 ; text ; L2 ; none ; w # V7.0 (🏕) CAMPING
431 1F3D6 ; text ; L2 ; none ; w # V7.0 (🏖) BEACH WITH UMBRELLA
432 1F3D7 ; text ; L2 ; none ; w # V7.0 (🏗) BUILDING CONSTRUCTION
433 1F3D8 ; text ; L2 ; none ; w # V7.0 (🏘) HOUSE BUILDINGS
434 1F3D9 ; text ; L2 ; none ; w # V7.0 (🏙) CITYSCAPE
435 1F3DA ; text ; L2 ; none ; w # V7.0 (🏚) DERELICT HOUSE BUILDING
436 1F3DB ; text ; L2 ; none ; w # V7.0 (🏛) CLASSICAL BUILDING
437 1F3DC ; text ; L2 ; none ; w # V7.0 (🏜) DESERT
438 1F3DD ; text ; L2 ; none ; w # V7.0 (🏝) DESERT ISLAND
439 1F3DE ; text ; L2 ; none ; w # V7.0 (🏞) NATIONAL PARK
440 1F3DF ; text ; L2 ; none ; w # V7.0 (🏟) STADIUM
441 1F3E0 ; emoji ; L1 ; none ; j w # V6.0 (🏠) HOUSE BUILDING
442 1F3E1 ; emoji ; L1 ; none ; j # V6.0 (🏡) HOUSE WITH GARDEN
443 1F3E2 ; emoji ; L1 ; none ; j # V6.0 (🏢) OFFICE BUILDING
444 1F3E3 ; emoji ; L1 ; none ; j # V6.0 (🏣) JAPANESE POST OFFICE
445 1F3E4 ; emoji ; L1 ; none ; x # V6.0 (🏤) EUROPEAN POST OFFICE
446 1F3E5 ; emoji ; L1 ; none ; j # V6.0 (🏥) HOSPITAL
447 1F3E6 ; emoji ; L1 ; none ; j # V6.0 (🏦) BANK
448 1F3E7 ; emoji ; L1 ; none ; j # V6.0 (🏧) AUTOMATED TELLER MACHINE
449 1F3E8 ; emoji ; L1 ; none ; j # V6.0 (🏨) HOTEL
450 1F3E9 ; emoji ; L1 ; none ; j # V6.0 (🏩) LOVE HOTEL
451 1F3EA ; emoji ; L1 ; none ; j # V6.0 (🏪) CONVENIENCE STORE
452 1F3EB ; emoji ; L1 ; none ; j # V6.0 (🏫) SCHOOL
453 1F3EC ; emoji ; L1 ; none ; j # V6.0 (🏬) DEPARTMENT STORE
454 1F3ED ; emoji ; L1 ; none ; j w # V6.0 (🏭) FACTORY
455 1F3EE ; emoji ; L1 ; none ; j # V6.0 (🏮) IZAKAYA LANTERN
456 1F3EF ; emoji ; L1 ; none ; j # V6.0 (🏯) JAPANESE CASTLE
457 1F3F0 ; emoji ; L1 ; none ; j # V6.0 (🏰) EUROPEAN CASTLE
458 1F3F3 ; text ; L2 ; none ; w # V7.0 (🏳) WAVING WHITE FLAG
459 1F3F4 ; emoji ; L2 ; none ; x # V7.0 (🏴) WAVING BLACK FLAG
460 1F3F5 ; text ; L2 ; none ; w # V7.0 (🏵) ROSETTE
461 1F3F7 ; text ; L2 ; none ; w # V7.0 (🏷) LABEL
462 1F3F8 ; emoji ; L2 ; none ; x # V8.0 (🏸) BADMINTON RACQUET AND SHUTTLECOCK
463 1F3F9 ; emoji ; L2 ; none ; x # V8.0 (🏹) BOW AND ARROW
464 1F3FA ; emoji ; L2 ; none ; x # V8.0 (🏺) AMPHORA
465 1F3FB ; emoji ; L2 ; modifier ; x # V8.0 (🏻) EMOJI MODIFIER FITZPATRICK TYPE-1-2
466 1F3FC ; emoji ; L2 ; modifier ; x # V8.0 (🏼) EMOJI MODIFIER FITZPATRICK TYPE-3
467 1F3FD ; emoji ; L2 ; modifier ; x # V8.0 (🏽) EMOJI MODIFIER FITZPATRICK TYPE-4
468 1F3FE ; emoji ; L2 ; modifier ; x # V8.0 (🏾) EMOJI MODIFIER FITZPATRICK TYPE-5
469 1F3FF ; emoji ; L2 ; modifier ; x # V8.0 (🏿) EMOJI MODIFIER FITZPATRICK TYPE-6
470 1F400 ; emoji ; L1 ; none ; x # V6.0 (🐀) RAT
471 1F401 ; emoji ; L1 ; none ; x # V6.0 (🐁) MOUSE
472 1F402 ; emoji ; L1 ; none ; x # V6.0 (🐂) OX
473 1F403 ; emoji ; L1 ; none ; x # V6.0 (🐃) WATER BUFFALO
474 1F404 ; emoji ; L1 ; none ; x # V6.0 (🐄) COW
475 1F405 ; emoji ; L1 ; none ; x # V6.0 (🐅) TIGER
476 1F406 ; emoji ; L1 ; none ; x # V6.0 (🐆) LEOPARD
477 1F407 ; emoji ; L1 ; none ; x # V6.0 (🐇) RABBIT
478 1F408 ; emoji ; L1 ; none ; w # V6.0 (🐈) CAT
479 1F409 ; emoji ; L1 ; none ; x # V6.0 (🐉) DRAGON
480 1F40A ; emoji ; L1 ; none ; x # V6.0 (🐊) CROCODILE
481 1F40B ; emoji ; L1 ; none ; x # V6.0 (🐋) WHALE
482 1F40C ; emoji ; L1 ; none ; j # V6.0 (🐌) SNAIL
483 1F40D ; emoji ; L1 ; none ; j # V6.0 (🐍) SNAKE
484 1F40E ; emoji ; L1 ; none ; j # V6.0 (🐎) HORSE
485 1F40F ; emoji ; L1 ; none ; x # V6.0 (🐏) RAM
486 1F410 ; emoji ; L1 ; none ; x # V6.0 (🐐) GOAT
487 1F411 ; emoji ; L1 ; none ; j # V6.0 (🐑) SHEEP
488 1F412 ; emoji ; L1 ; none ; j # V6.0 (🐒) MONKEY
489 1F413 ; emoji ; L1 ; none ; x # V6.0 (🐓) ROOSTER
490 1F414 ; emoji ; L1 ; none ; j # V6.0 (🐔) CHICKEN
491 1F415 ; emoji ; L1 ; none ; w # V6.0 (🐕) DOG
492 1F416 ; emoji ; L1 ; none ; x # V6.0 (🐖) PIG
493 1F417 ; emoji ; L1 ; none ; j # V6.0 (🐗) BOAR
494 1F418 ; emoji ; L1 ; none ; j # V6.0 (🐘) ELEPHANT
495 1F419 ; emoji ; L1 ; none ; j # V6.0 (🐙) OCTOPUS
496 1F41A ; emoji ; L1 ; none ; j # V6.0 (🐚) SPIRAL SHELL
497 1F41B ; emoji ; L1 ; none ; j # V6.0 (🐛) BUG
498 1F41C ; emoji ; L1 ; none ; j # V6.0 (🐜) ANT
499 1F41D ; emoji ; L1 ; none ; j # V6.0 (🐝) HONEYBEE
500 1F41E ; emoji ; L1 ; none ; j # V6.0 (🐞) LADY BEETLE
501 1F41F ; emoji ; L1 ; none ; j w # V6.0 (🐟) FISH
502 1F420 ; emoji ; L1 ; none ; j # V6.0 (🐠) TROPICAL FISH
503 1F421 ; emoji ; L1 ; none ; j # V6.0 (🐡) BLOWFISH
504 1F422 ; emoji ; L1 ; none ; j # V6.0 (🐢) TURTLE
505 1F423 ; emoji ; L1 ; none ; j # V6.0 (🐣) HATCHING CHICK
506 1F424 ; emoji ; L1 ; none ; j # V6.0 (🐤) BABY CHICK
507 1F425 ; emoji ; L1 ; none ; j # V6.0 (🐥) FRONT-FACING BABY CHICK
508 1F426 ; emoji ; L1 ; none ; j w # V6.0 (🐦) BIRD
509 1F427 ; emoji ; L1 ; none ; j # V6.0 (🐧) PENGUIN
510 1F428 ; emoji ; L1 ; none ; j # V6.0 (🐨) KOALA
511 1F429 ; emoji ; L1 ; none ; j # V6.0 (🐩) POODLE
512 1F42A ; emoji ; L1 ; none ; x # V6.0 (🐪) DROMEDARY CAMEL
513 1F42B ; emoji ; L1 ; none ; j # V6.0 (🐫) BACTRIAN CAMEL
514 1F42C ; emoji ; L1 ; none ; j # V6.0 (🐬) DOLPHIN
515 1F42D ; emoji ; L1 ; none ; j # V6.0 (🐭) MOUSE FACE
516 1F42E ; emoji ; L1 ; none ; j # V6.0 (🐮) COW FACE
517 1F42F ; emoji ; L1 ; none ; j # V6.0 (🐯) TIGER FACE
518 1F430 ; emoji ; L1 ; none ; j # V6.0 (🐰) RABBIT FACE
519 1F431 ; emoji ; L1 ; none ; j # V6.0 (🐱) CAT FACE
520 1F432 ; emoji ; L1 ; none ; j # V6.0 (🐲) DRAGON FACE
521 1F433 ; emoji ; L1 ; none ; j # V6.0 (🐳) SPOUTING WHALE
522 1F434 ; emoji ; L1 ; none ; j # V6.0 (🐴) HORSE FACE
523 1F435 ; emoji ; L1 ; none ; j # V6.0 (🐵) MONKEY FACE
524 1F436 ; emoji ; L1 ; none ; j # V6.0 (🐶) DOG FACE
525 1F437 ; emoji ; L1 ; none ; j # V6.0 (🐷) PIG FACE
526 1F438 ; emoji ; L1 ; none ; j # V6.0 (🐸) FROG FACE
527 1F439 ; emoji ; L1 ; none ; j # V6.0 (🐹) HAMSTER FACE
528 1F43A ; emoji ; L1 ; none ; j # V6.0 (🐺) WOLF FACE
529 1F43B ; emoji ; L1 ; none ; j # V6.0 (🐻) BEAR FACE
530 1F43C ; emoji ; L1 ; none ; j # V6.0 (🐼) PANDA FACE
531 1F43D ; emoji ; L1 ; none ; j # V6.0 (🐽) PIG NOSE
532 1F43E ; emoji ; L1 ; none ; j # V6.0 (🐾) PAW PRINTS
533 1F43F ; text ; L2 ; none ; w # V7.0 (🐿) CHIPMUNK
534 1F440 ; emoji ; L1 ; none ; j # V6.0 (👀) EYES
535 1F441 ; text ; L2 ; none ; w # V7.0 (👁) EYE
536 1F442 ; emoji ; L1 ; secondary ; j w # V6.0 (👂) EAR
537 1F443 ; emoji ; L1 ; secondary ; j # V6.0 (👃) NOSE
538 1F444 ; emoji ; L1 ; none ; j # V6.0 (👄) MOUTH
539 1F445 ; emoji ; L1 ; none ; j # V6.0 (👅) TONGUE
540 1F446 ; emoji ; L1 ; secondary ; j w # V6.0 (👆) WHITE UP POINTING BACKHAND INDEX
541 1F447 ; emoji ; L1 ; secondary ; j w # V6.0 (👇) WHITE DOWN POINTING BACKHAND INDEX
542 1F448 ; emoji ; L1 ; secondary ; j w # V6.0 (👈) WHITE LEFT POINTING BACKHAND INDEX
543 1F449 ; emoji ; L1 ; secondary ; j w # V6.0 (👉) WHITE RIGHT POINTING BACKHAND INDEX
544 1F44A ; emoji ; L1 ; secondary ; j # V6.0 (👊) FISTED HAND SIGN
545 1F44B ; emoji ; L1 ; secondary ; j # V6.0 (👋) WAVING HAND SIGN
546 1F44C ; emoji ; L1 ; secondary ; j # V6.0 (👌) OK HAND SIGN
547 1F44D ; emoji ; L1 ; secondary ; j w # V6.0 (👍) THUMBS UP SIGN
548 1F44E ; emoji ; L1 ; secondary ; j w # V6.0 (👎) THUMBS DOWN SIGN
549 1F44F ; emoji ; L1 ; secondary ; j # V6.0 (👏) CLAPPING HANDS SIGN
550 1F450 ; emoji ; L1 ; secondary ; j # V6.0 (👐) OPEN HANDS SIGN
551 1F451 ; emoji ; L1 ; none ; j # V6.0 (👑) CROWN
552 1F452 ; emoji ; L1 ; none ; j # V6.0 (👒) WOMANS HAT
553 1F453 ; emoji ; L1 ; none ; j w # V6.0 (👓) EYEGLASSES
554 1F454 ; emoji ; L1 ; none ; j # V6.0 (👔) NECKTIE
555 1F455 ; emoji ; L1 ; none ; j # V6.0 (👕) T-SHIRT
556 1F456 ; emoji ; L1 ; none ; j # V6.0 (👖) JEANS
557 1F457 ; emoji ; L1 ; none ; j # V6.0 (👗) DRESS
558 1F458 ; emoji ; L1 ; none ; j # V6.0 (👘) KIMONO
559 1F459 ; emoji ; L1 ; none ; j # V6.0 (👙) BIKINI
560 1F45A ; emoji ; L1 ; none ; j # V6.0 (👚) WOMANS CLOTHES
561 1F45B ; emoji ; L1 ; none ; j # V6.0 (👛) PURSE
562 1F45C ; emoji ; L1 ; none ; j # V6.0 (👜) HANDBAG
563 1F45D ; emoji ; L1 ; none ; j # V6.0 (👝) POUCH
564 1F45E ; emoji ; L1 ; none ; j # V6.0 (👞) MANS SHOE
565 1F45F ; emoji ; L1 ; none ; j # V6.0 (👟) ATHLETIC SHOE
566 1F460 ; emoji ; L1 ; none ; j # V6.0 (👠) HIGH-HEELED SHOE
567 1F461 ; emoji ; L1 ; none ; j # V6.0 (👡) WOMANS SANDAL
568 1F462 ; emoji ; L1 ; none ; j # V6.0 (👢) WOMANS BOOTS
569 1F463 ; emoji ; L1 ; none ; j # V6.0 (👣) FOOTPRINTS
570 1F464 ; emoji ; L1 ; none ; j # V6.0 (👤) BUST IN SILHOUETTE
571 1F465 ; emoji ; L1 ; none ; x # V6.0 (👥) BUSTS IN SILHOUETTE
572 1F466 ; emoji ; L1 ; primary ; j # V6.0 (👦) BOY
573 1F467 ; emoji ; L1 ; primary ; j # V6.0 (👧) GIRL
574 1F468 ; emoji ; L1 ; primary ; j # V6.0 (👨) MAN
575 1F469 ; emoji ; L1 ; primary ; j # V6.0 (👩) WOMAN
576 1F46A ; emoji ; L1 ; none ; j w # V6.0 (👪) FAMILY
577 1F46B ; emoji ; L1 ; none ; j # V6.0 (👫) MAN AND WOMAN HOLDING HANDS
578 1F46C ; emoji ; L1 ; none ; x # V6.0 (👬) TWO MEN HOLDING HANDS
579 1F46D ; emoji ; L1 ; none ; x # V6.0 (👭) TWO WOMEN HOLDING HANDS
580 1F46E ; emoji ; L1 ; primary ; j # V6.0 (👮) POLICE OFFICER
581 1F46F ; emoji ; L1 ; none ; j # V6.0 (👯) WOMAN WITH BUNNY EARS
582 1F470 ; emoji ; L1 ; primary ; j # V6.0 (👰) BRIDE WITH VEIL
583 1F471 ; emoji ; L1 ; primary ; j # V6.0 (👱) PERSON WITH BLOND HAIR
584 1F472 ; emoji ; L1 ; primary ; j # V6.0 (👲) MAN WITH GUA PI MAO
585 1F473 ; emoji ; L1 ; primary ; j # V6.0 (👳) MAN WITH TURBAN
586 1F474 ; emoji ; L1 ; primary ; j # V6.0 (👴) OLDER MAN
587 1F475 ; emoji ; L1 ; primary ; j # V6.0 (👵) OLDER WOMAN
588 1F476 ; emoji ; L1 ; primary ; j # V6.0 (👶) BABY
589 1F477 ; emoji ; L1 ; primary ; j # V6.0 (👷) CONSTRUCTION WORKER
590 1F478 ; emoji ; L1 ; primary ; j # V6.0 (👸) PRINCESS
591 1F479 ; emoji ; L1 ; none ; j # V6.0 (👹) JAPANESE OGRE
592 1F47A ; emoji ; L1 ; none ; j # V6.0 (👺) JAPANESE GOBLIN
593 1F47B ; emoji ; L1 ; none ; j # V6.0 (👻) GHOST
594 1F47C ; emoji ; L1 ; primary ; j # V6.0 (👼) BABY ANGEL
595 1F47D ; emoji ; L1 ; none ; j w # V6.0 (👽) EXTRATERRESTRIAL ALIEN
596 1F47E ; emoji ; L1 ; none ; j # V6.0 (👾) ALIEN MONSTER
597 1F47F ; emoji ; L1 ; secondary ; j # V6.0 (👿) IMP
598 1F480 ; emoji ; L1 ; none ; j # V6.0 (💀) SKULL
599 1F481 ; emoji ; L1 ; primary ; j # V6.0 (💁) INFORMATION DESK PERSON
600 1F482 ; emoji ; L1 ; primary ; j # V6.0 (💂) GUARDSMAN
601 1F483 ; emoji ; L1 ; secondary ; j # V6.0 (💃) DANCER
602 1F484 ; emoji ; L1 ; none ; j # V6.0 (💄) LIPSTICK
603 1F485 ; emoji ; L1 ; secondary ; j # V6.0 (💅) NAIL POLISH
604 1F486 ; emoji ; L1 ; primary ; j # V6.0 (💆) FACE MASSAGE
605 1F487 ; emoji ; L1 ; primary ; j # V6.0 (💇) HAIRCUT
606 1F488 ; emoji ; L1 ; none ; j # V6.0 (💈) BARBER POLE
607 1F489 ; emoji ; L1 ; none ; j # V6.0 (💉) SYRINGE
608 1F48A ; emoji ; L1 ; none ; j # V6.0 (💊) PILL
609 1F48B ; emoji ; L1 ; none ; j # V6.0 (💋) KISS MARK
610 1F48C ; emoji ; L1 ; none ; j # V6.0 (💌) LOVE LETTER
611 1F48D ; emoji ; L1 ; none ; j # V6.0 (💍) RING
612 1F48E ; emoji ; L1 ; none ; j # V6.0 (💎) GEM STONE
613 1F48F ; emoji ; L1 ; none ; j # V6.0 (💏) KISS
614 1F490 ; emoji ; L1 ; none ; j # V6.0 (💐) BOUQUET
615 1F491 ; emoji ; L1 ; none ; j # V6.0 (💑) COUPLE WITH HEART
616 1F492 ; emoji ; L1 ; none ; j # V6.0 (💒) WEDDING
617 1F493 ; emoji ; L1 ; none ; j # V6.0 (💓) BEATING HEART
618 1F494 ; emoji ; L1 ; none ; j # V6.0 (💔) BROKEN HEART
619 1F495 ; emoji ; L1 ; none ; j # V6.0 (💕) TWO HEARTS
620 1F496 ; emoji ; L1 ; none ; j # V6.0 (💖) SPARKLING HEART
621 1F497 ; emoji ; L1 ; none ; j # V6.0 (💗) GROWING HEART
622 1F498 ; emoji ; L1 ; none ; j # V6.0 (💘) HEART WITH ARROW
623 1F499 ; emoji ; L1 ; none ; j # V6.0 (💙) BLUE HEART
624 1F49A ; emoji ; L1 ; none ; j # V6.0 (💚) GREEN HEART
625 1F49B ; emoji ; L1 ; none ; j # V6.0 (💛) YELLOW HEART
626 1F49C ; emoji ; L1 ; none ; j # V6.0 (💜) PURPLE HEART
627 1F49D ; emoji ; L1 ; none ; j # V6.0 (💝) HEART WITH RIBBON
628 1F49E ; emoji ; L1 ; none ; j # V6.0 (💞) REVOLVING HEARTS
629 1F49F ; emoji ; L1 ; none ; j # V6.0 (💟) HEART DECORATION
630 1F4A0 ; emoji ; L1 ; none ; j # V6.0 (💠) DIAMOND SHAPE WITH A DOT INSIDE
631 1F4A1 ; emoji ; L1 ; none ; j # V6.0 (💡) ELECTRIC LIGHT BULB
632 1F4A2 ; emoji ; L1 ; none ; j # V6.0 (💢) ANGER SYMBOL
633 1F4A3 ; emoji ; L1 ; none ; j w # V6.0 (💣) BOMB
634 1F4A4 ; emoji ; L1 ; none ; j # V6.0 (💤) SLEEPING SYMBOL
635 1F4A5 ; emoji ; L1 ; none ; j # V6.0 (💥) COLLISION SYMBOL
636 1F4A6 ; emoji ; L1 ; none ; j # V6.0 (💦) SPLASHING SWEAT SYMBOL
637 1F4A7 ; emoji ; L1 ; none ; j # V6.0 (💧) DROPLET
638 1F4A8 ; emoji ; L1 ; none ; j # V6.0 (💨) DASH SYMBOL
639 1F4A9 ; emoji ; L1 ; none ; j # V6.0 (💩) PILE OF POO
640 1F4AA ; emoji ; L1 ; secondary ; j # V6.0 (💪) FLEXED BICEPS
641 1F4AB ; emoji ; L1 ; none ; j # V6.0 (💫) DIZZY SYMBOL
642 1F4AC ; emoji ; L1 ; none ; j # V6.0 (💬) SPEECH BALLOON
643 1F4AD ; emoji ; L1 ; none ; x # V6.0 (💭) THOUGHT BALLOON
644 1F4AE ; emoji ; L1 ; none ; j # V6.0 (💮) WHITE FLOWER
645 1F4AF ; emoji ; L1 ; none ; j # V6.0 (💯) HUNDRED POINTS SYMBOL
646 1F4B0 ; emoji ; L1 ; none ; j w # V6.0 (💰) MONEY BAG
647 1F4B1 ; emoji ; L1 ; none ; j # V6.0 (💱) CURRENCY EXCHANGE
648 1F4B2 ; emoji ; L1 ; none ; j # V6.0 (💲) HEAVY DOLLAR SIGN
649 1F4B3 ; emoji ; L1 ; none ; j w # V6.0 (💳) CREDIT CARD
650 1F4B4 ; emoji ; L1 ; none ; j # V6.0 (💴) BANKNOTE WITH YEN SIGN
651 1F4B5 ; emoji ; L1 ; none ; j # V6.0 (💵) BANKNOTE WITH DOLLAR SIGN
652 1F4B6 ; emoji ; L1 ; none ; x # V6.0 (💶) BANKNOTE WITH EURO SIGN
653 1F4B7 ; emoji ; L1 ; none ; x # V6.0 (💷) BANKNOTE WITH POUND SIGN
654 1F4B8 ; emoji ; L1 ; none ; j # V6.0 (💸) MONEY WITH WINGS
655 1F4B9 ; emoji ; L1 ; none ; j # V6.0 (💹) CHART WITH UPWARDS TREND AND YEN SIGN
656 1F4BA ; emoji ; L1 ; none ; j # V6.0 (💺) SEAT
657 1F4BB ; emoji ; L1 ; none ; j w # V6.0 (💻) PERSONAL COMPUTER
658 1F4BC ; emoji ; L1 ; none ; j # V6.0 (💼) BRIEFCASE
659 1F4BD ; emoji ; L1 ; none ; j # V6.0 (💽) MINIDISC
660 1F4BE ; emoji ; L1 ; none ; j # V6.0 (💾) FLOPPY DISK
661 1F4BF ; emoji ; L1 ; none ; j w # V6.0 (💿) OPTICAL DISC
662 1F4C0 ; emoji ; L1 ; none ; j # V6.0 (📀) DVD
663 1F4C1 ; emoji ; L1 ; none ; j # V6.0 (📁) FILE FOLDER
664 1F4C2 ; emoji ; L1 ; none ; j # V6.0 (📂) OPEN FILE FOLDER
665 1F4C3 ; emoji ; L1 ; none ; j # V6.0 (📃) PAGE WITH CURL
666 1F4C4 ; emoji ; L1 ; none ; j # V6.0 (📄) PAGE FACING UP
667 1F4C5 ; emoji ; L1 ; none ; j # V6.0 (📅) CALENDAR
668 1F4C6 ; emoji ; L1 ; none ; j # V6.0 (📆) TEAR-OFF CALENDAR
669 1F4C7 ; emoji ; L1 ; none ; j # V6.0 (📇) CARD INDEX
670 1F4C8 ; emoji ; L1 ; none ; j # V6.0 (📈) CHART WITH UPWARDS TREND
671 1F4C9 ; emoji ; L1 ; none ; j # V6.0 (📉) CHART WITH DOWNWARDS TREND
672 1F4CA ; emoji ; L1 ; none ; j # V6.0 (📊) BAR CHART
673 1F4CB ; emoji ; L1 ; none ; j w # V6.0 (📋) CLIPBOARD
674 1F4CC ; emoji ; L1 ; none ; j # V6.0 (📌) PUSHPIN
675 1F4CD ; emoji ; L1 ; none ; j # V6.0 (📍) ROUND PUSHPIN
676 1F4CE ; emoji ; L1 ; none ; j # V6.0 (📎) PAPERCLIP
677 1F4CF ; emoji ; L1 ; none ; j # V6.0 (📏) STRAIGHT RULER
678 1F4D0 ; emoji ; L1 ; none ; j # V6.0 (📐) TRIANGULAR RULER
679 1F4D1 ; emoji ; L1 ; none ; j # V6.0 (📑) BOOKMARK TABS
680 1F4D2 ; emoji ; L1 ; none ; j # V6.0 (📒) LEDGER
681 1F4D3 ; emoji ; L1 ; none ; j # V6.0 (📓) NOTEBOOK
682 1F4D4 ; emoji ; L1 ; none ; j # V6.0 (📔) NOTEBOOK WITH DECORATIVE COVER
683 1F4D5 ; emoji ; L1 ; none ; j # V6.0 (📕) CLOSED BOOK
684 1F4D6 ; emoji ; L1 ; none ; j # V6.0 (📖) OPEN BOOK
685 1F4D7 ; emoji ; L1 ; none ; j # V6.0 (📗) GREEN BOOK
686 1F4D8 ; emoji ; L1 ; none ; j # V6.0 (📘) BLUE BOOK
687 1F4D9 ; emoji ; L1 ; none ; j # V6.0 (📙) ORANGE BOOK
688 1F4DA ; emoji ; L1 ; none ; j w # V6.0 (📚) BOOKS
689 1F4DB ; emoji ; L1 ; none ; j # V6.0 (📛) NAME BADGE
690 1F4DC ; emoji ; L1 ; none ; j # V6.0 (📜) SCROLL
691 1F4DD ; emoji ; L1 ; none ; j # V6.0 (📝) MEMO
692 1F4DE ; emoji ; L1 ; none ; j # V6.0 (📞) TELEPHONE RECEIVER
693 1F4DF ; emoji ; L1 ; none ; j w # V6.0 (📟) PAGER
694 1F4E0 ; emoji ; L1 ; none ; j # V6.0 (📠) FAX MACHINE
695 1F4E1 ; emoji ; L1 ; none ; j # V6.0 (📡) SATELLITE ANTENNA
696 1F4E2 ; emoji ; L1 ; none ; j # V6.0 (📢) PUBLIC ADDRESS LOUDSPEAKER
697 1F4E3 ; emoji ; L1 ; none ; j # V6.0 (📣) CHEERING MEGAPHONE
698 1F4E4 ; emoji ; L1 ; none ; j w # V6.0 (📤) OUTBOX TRAY
699 1F4E5 ; emoji ; L1 ; none ; j w # V6.0 (📥) INBOX TRAY
700 1F4E6 ; emoji ; L1 ; none ; j w # V6.0 (📦) PACKAGE
701 1F4E7 ; emoji ; L1 ; none ; j # V6.0 (📧) E-MAIL SYMBOL
702 1F4E8 ; emoji ; L1 ; none ; j # V6.0 (📨) INCOMING ENVELOPE
703 1F4E9 ; emoji ; L1 ; none ; j # V6.0 (📩) ENVELOPE WITH DOWNWARDS ARROW ABOVE
704 1F4EA ; emoji ; L1 ; none ; j w # V6.0 (📪) CLOSED MAILBOX WITH LOWERED FLAG
705 1F4EB ; emoji ; L1 ; none ; j w # V6.0 (📫) CLOSED MAILBOX WITH RAISED FLAG
706 1F4EC ; emoji ; L1 ; none ; w # V6.0 (📬) OPEN MAILBOX WITH RAISED FLAG
707 1F4ED ; emoji ; L1 ; none ; w # V6.0 (📭) OPEN MAILBOX WITH LOWERED FLAG
708 1F4EE ; emoji ; L1 ; none ; j # V6.0 (📮) POSTBOX
709 1F4EF ; emoji ; L1 ; none ; x # V6.0 (📯) POSTAL HORN
710 1F4F0 ; emoji ; L1 ; none ; j # V6.0 (📰) NEWSPAPER
711 1F4F1 ; emoji ; L1 ; none ; j # V6.0 (📱) MOBILE PHONE
712 1F4F2 ; emoji ; L1 ; none ; j # V6.0 (📲) MOBILE PHONE WITH RIGHTWARDS ARROW AT LEFT
713 1F4F3 ; emoji ; L1 ; none ; j # V6.0 (📳) VIBRATION MODE
714 1F4F4 ; emoji ; L1 ; none ; j # V6.0 (📴) MOBILE PHONE OFF
715 1F4F5 ; emoji ; L1 ; none ; x # V6.0 (📵) NO MOBILE PHONES
716 1F4F6 ; emoji ; L1 ; none ; j # V6.0 (📶) ANTENNA WITH BARS
717 1F4F7 ; emoji ; L1 ; none ; j w # V6.0 (📷) CAMERA
718 1F4F8 ; emoji ; L2 ; none ; x # V7.0 (📸) CAMERA WITH FLASH
719 1F4F9 ; emoji ; L1 ; none ; j w # V6.0 (📹) VIDEO CAMERA
720 1F4FA ; emoji ; L1 ; none ; j w # V6.0 (📺) TELEVISION
721 1F4FB ; emoji ; L1 ; none ; j w # V6.0 (📻) RADIO
722 1F4FC ; emoji ; L1 ; none ; j # V6.0 (📼) VIDEOCASSETTE
723 1F4FD ; text ; L2 ; none ; w # V7.0 (📽) FILM PROJECTOR
724 1F4FF ; emoji ; L2 ; none ; x # V8.0 (📿) PRAYER BEADS
725 1F500 ; emoji ; L1 ; none ; x # V6.0 (🔀) TWISTED RIGHTWARDS ARROWS
726 1F501 ; emoji ; L1 ; none ; x # V6.0 (🔁) CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS
727 1F502 ; emoji ; L1 ; none ; x # V6.0 (🔂) CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS WITH CIRCLED ONE OVERLAY
728 1F503 ; emoji ; L1 ; none ; j # V6.0 (🔃) CLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS
729 1F504 ; emoji ; L1 ; none ; x # V6.0 (🔄) ANTICLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS
730 1F505 ; emoji ; L1 ; none ; x # V6.0 (🔅) LOW BRIGHTNESS SYMBOL
731 1F506 ; emoji ; L1 ; none ; x # V6.0 (🔆) HIGH BRIGHTNESS SYMBOL
732 1F507 ; emoji ; L1 ; none ; x # V6.0 (🔇) SPEAKER WITH CANCELLATION STROKE
733 1F508 ; emoji ; L1 ; none ; w # V6.0 (🔈) SPEAKER
734 1F509 ; emoji ; L1 ; none ; x # V6.0 (🔉) SPEAKER WITH ONE SOUND WAVE
735 1F50A ; emoji ; L1 ; none ; j # V6.0 (🔊) SPEAKER WITH THREE SOUND WAVES
736 1F50B ; emoji ; L1 ; none ; j # V6.0 (🔋) BATTERY
737 1F50C ; emoji ; L1 ; none ; j # V6.0 (🔌) ELECTRIC PLUG
738 1F50D ; emoji ; L1 ; none ; j w # V6.0 (🔍) LEFT-POINTING MAGNIFYING GLASS
739 1F50E ; emoji ; L1 ; none ; j # V6.0 (🔎) RIGHT-POINTING MAGNIFYING GLASS
740 1F50F ; emoji ; L1 ; none ; j # V6.0 (🔏) LOCK WITH INK PEN
741 1F510 ; emoji ; L1 ; none ; j # V6.0 (🔐) CLOSED LOCK WITH KEY
742 1F511 ; emoji ; L1 ; none ; j # V6.0 (🔑) KEY
743 1F512 ; emoji ; L1 ; none ; j w # V6.0 (🔒) LOCK
744 1F513 ; emoji ; L1 ; none ; j w # V6.0 (🔓) OPEN LOCK
745 1F514 ; emoji ; L1 ; none ; j # V6.0 (🔔) BELL
746 1F515 ; emoji ; L1 ; none ; x # V6.0 (🔕) BELL WITH CANCELLATION STROKE
747 1F516 ; emoji ; L1 ; none ; j # V6.0 (🔖) BOOKMARK
748 1F517 ; emoji ; L1 ; none ; j # V6.0 (🔗) LINK SYMBOL
749 1F518 ; emoji ; L1 ; none ; j # V6.0 (🔘) RADIO BUTTON
750 1F519 ; emoji ; L1 ; none ; j # V6.0 (🔙) BACK WITH LEFTWARDS ARROW ABOVE
751 1F51A ; emoji ; L1 ; none ; j # V6.0 (🔚) END WITH LEFTWARDS ARROW ABOVE
752 1F51B ; emoji ; L1 ; none ; j # V6.0 (🔛) ON WITH EXCLAMATION MARK WITH LEFT RIGHT ARROW ABOVE
753 1F51C ; emoji ; L1 ; none ; j # V6.0 (🔜) SOON WITH RIGHTWARDS ARROW ABOVE
754 1F51D ; emoji ; L1 ; none ; j # V6.0 (🔝) TOP WITH UPWARDS ARROW ABOVE
755 1F51E ; emoji ; L1 ; none ; j # V6.0 (🔞) NO ONE UNDER EIGHTEEN SYMBOL
756 1F51F ; emoji ; L1 ; none ; j # V6.0 (🔟) KEYCAP TEN
757 1F520 ; emoji ; L1 ; none ; j # V6.0 (🔠) INPUT SYMBOL FOR LATIN CAPITAL LETTERS
758 1F521 ; emoji ; L1 ; none ; j # V6.0 (🔡) INPUT SYMBOL FOR LATIN SMALL LETTERS
759 1F522 ; emoji ; L1 ; none ; j # V6.0 (🔢) INPUT SYMBOL FOR NUMBERS
760 1F523 ; emoji ; L1 ; none ; j # V6.0 (🔣) INPUT SYMBOL FOR SYMBOLS
761 1F524 ; emoji ; L1 ; none ; j # V6.0 (🔤) INPUT SYMBOL FOR LATIN LETTERS
762 1F525 ; emoji ; L1 ; none ; j # V6.0 (🔥) FIRE
763 1F526 ; emoji ; L1 ; none ; j # V6.0 (🔦) ELECTRIC TORCH
764 1F527 ; emoji ; L1 ; none ; j # V6.0 (🔧) WRENCH
765 1F528 ; emoji ; L1 ; none ; j # V6.0 (🔨) HAMMER
766 1F529 ; emoji ; L1 ; none ; j # V6.0 (🔩) NUT AND BOLT
767 1F52A ; emoji ; L1 ; none ; j # V6.0 (🔪) HOCHO
768 1F52B ; emoji ; L1 ; none ; j # V6.0 (🔫) PISTOL
769 1F52C ; emoji ; L1 ; none ; x # V6.0 (🔬) MICROSCOPE
770 1F52D ; emoji ; L1 ; none ; x # V6.0 (🔭) TELESCOPE
771 1F52E ; emoji ; L1 ; none ; j # V6.0 (🔮) CRYSTAL BALL
772 1F52F ; emoji ; L1 ; none ; j # V6.0 (🔯) SIX POINTED STAR WITH MIDDLE DOT
773 1F530 ; emoji ; L1 ; none ; j # V6.0 (🔰) JAPANESE SYMBOL FOR BEGINNER
774 1F531 ; emoji ; L1 ; none ; j # V6.0 (🔱) TRIDENT EMBLEM
775 1F532 ; emoji ; L1 ; none ; j # V6.0 (🔲) BLACK SQUARE BUTTON
776 1F533 ; emoji ; L1 ; none ; j # V6.0 (🔳) WHITE SQUARE BUTTON
777 1F534 ; emoji ; L1 ; none ; j # V6.0 (🔴) LARGE RED CIRCLE
778 1F535 ; emoji ; L1 ; none ; j # V6.0 (🔵) LARGE BLUE CIRCLE
779 1F536 ; emoji ; L1 ; none ; j # V6.0 (🔶) LARGE ORANGE DIAMOND
780 1F537 ; emoji ; L1 ; none ; j # V6.0 (🔷) LARGE BLUE DIAMOND
781 1F538 ; emoji ; L1 ; none ; j # V6.0 (🔸) SMALL ORANGE DIAMOND
782 1F539 ; emoji ; L1 ; none ; j # V6.0 (🔹) SMALL BLUE DIAMOND
783 1F53A ; emoji ; L1 ; none ; j # V6.0 (🔺) UP-POINTING RED TRIANGLE
784 1F53B ; emoji ; L1 ; none ; j # V6.0 (🔻) DOWN-POINTING RED TRIANGLE
785 1F53C ; emoji ; L1 ; none ; j # V6.0 (🔼) UP-POINTING SMALL RED TRIANGLE
786 1F53D ; emoji ; L1 ; none ; j # V6.0 (🔽) DOWN-POINTING SMALL RED TRIANGLE
787 1F549 ; text ; L2 ; none ; w # V7.0 (🕉) OM SYMBOL
788 1F54A ; text ; L2 ; none ; w # V7.0 (🕊) DOVE OF PEACE
789 1F54B ; emoji ; L2 ; none ; x # V8.0 (🕋) KAABA
790 1F54C ; emoji ; L2 ; none ; x # V8.0 (🕌) MOSQUE
791 1F54D ; emoji ; L2 ; none ; x # V8.0 (🕍) SYNAGOGUE
792 1F54E ; emoji ; L2 ; none ; x # V8.0 (🕎) MENORAH WITH NINE BRANCHES
793 1F550 ; emoji ; L1 ; none ; j w # V6.0 (🕐) CLOCK FACE ONE OCLOCK
794 1F551 ; emoji ; L1 ; none ; j w # V6.0 (🕑) CLOCK FACE TWO OCLOCK
795 1F552 ; emoji ; L1 ; none ; j w # V6.0 (🕒) CLOCK FACE THREE OCLOCK
796 1F553 ; emoji ; L1 ; none ; j w # V6.0 (🕓) CLOCK FACE FOUR OCLOCK
797 1F554 ; emoji ; L1 ; none ; j w # V6.0 (🕔) CLOCK FACE FIVE OCLOCK
798 1F555 ; emoji ; L1 ; none ; j w # V6.0 (🕕) CLOCK FACE SIX OCLOCK
799 1F556 ; emoji ; L1 ; none ; j w # V6.0 (🕖) CLOCK FACE SEVEN OCLOCK
800 1F557 ; emoji ; L1 ; none ; j w # V6.0 (🕗) CLOCK FACE EIGHT OCLOCK
801 1F558 ; emoji ; L1 ; none ; j w # V6.0 (🕘) CLOCK FACE NINE OCLOCK
802 1F559 ; emoji ; L1 ; none ; j w # V6.0 (🕙) CLOCK FACE TEN OCLOCK
803 1F55A ; emoji ; L1 ; none ; j w # V6.0 (🕚) CLOCK FACE ELEVEN OCLOCK
804 1F55B ; emoji ; L1 ; none ; j w # V6.0 (🕛) CLOCK FACE TWELVE OCLOCK
805 1F55C ; emoji ; L1 ; none ; w # V6.0 (🕜) CLOCK FACE ONE-THIRTY
806 1F55D ; emoji ; L1 ; none ; w # V6.0 (🕝) CLOCK FACE TWO-THIRTY
807 1F55E ; emoji ; L1 ; none ; w # V6.0 (🕞) CLOCK FACE THREE-THIRTY
808 1F55F ; emoji ; L1 ; none ; w # V6.0 (🕟) CLOCK FACE FOUR-THIRTY
809 1F560 ; emoji ; L1 ; none ; w # V6.0 (🕠) CLOCK FACE FIVE-THIRTY
810 1F561 ; emoji ; L1 ; none ; w # V6.0 (🕡) CLOCK FACE SIX-THIRTY
811 1F562 ; emoji ; L1 ; none ; w # V6.0 (🕢) CLOCK FACE SEVEN-THIRTY
812 1F563 ; emoji ; L1 ; none ; w # V6.0 (🕣) CLOCK FACE EIGHT-THIRTY
813 1F564 ; emoji ; L1 ; none ; w # V6.0 (🕤) CLOCK FACE NINE-THIRTY
814 1F565 ; emoji ; L1 ; none ; w # V6.0 (🕥) CLOCK FACE TEN-THIRTY
815 1F566 ; emoji ; L1 ; none ; w # V6.0 (🕦) CLOCK FACE ELEVEN-THIRTY
816 1F567 ; emoji ; L1 ; none ; w # V6.0 (🕧) CLOCK FACE TWELVE-THIRTY
817 1F56F ; text ; L2 ; none ; w # V7.0 (🕯) CANDLE
818 1F570 ; text ; L2 ; none ; w # V7.0 (🕰) MANTELPIECE CLOCK
819 1F573 ; text ; L2 ; none ; w # V7.0 (🕳) HOLE
820 1F574 ; text ; L2 ; none ; w # V7.0 (🕴) MAN IN BUSINESS SUIT LEVITATING
821 1F575 ; text ; L2 ; none ; w # V7.0 (🕵) SLEUTH OR SPY
822 1F576 ; text ; L2 ; none ; w # V7.0 (🕶) DARK SUNGLASSES
823 1F577 ; text ; L2 ; none ; w # V7.0 (🕷) SPIDER
824 1F578 ; text ; L2 ; none ; w # V7.0 (🕸) SPIDER WEB
825 1F579 ; text ; L2 ; none ; w # V7.0 (🕹) JOYSTICK
826 1F587 ; text ; L2 ; none ; w # V7.0 (🖇) LINKED PAPERCLIPS
827 1F58A ; text ; L2 ; none ; w # V7.0 (🖊) LOWER LEFT BALLPOINT PEN
828 1F58B ; text ; L2 ; none ; w # V7.0 (🖋) LOWER LEFT FOUNTAIN PEN
829 1F58C ; text ; L2 ; none ; w # V7.0 (🖌) LOWER LEFT PAINTBRUSH
830 1F58D ; text ; L2 ; none ; w # V7.0 (🖍) LOWER LEFT CRAYON
831 1F590 ; text ; L2 ; secondary ; w # V7.0 (🖐) RAISED HAND WITH FINGERS SPLAYED
832 1F595 ; emoji ; L2 ; secondary ; x # V7.0 (🖕) REVERSED HAND WITH MIDDLE FINGER EXTENDED
833 1F596 ; emoji ; L2 ; secondary ; x # V7.0 (🖖) RAISED HAND WITH PART BETWEEN MIDDLE AND RING FINGERS
834 1F5A5 ; text ; L2 ; none ; w # V7.0 (🖥) DESKTOP COMPUTER
835 1F5A8 ; text ; L2 ; none ; w # V7.0 (🖨) PRINTER
836 1F5B1 ; text ; L2 ; none ; w # V7.0 (🖱) THREE BUTTON MOUSE
837 1F5B2 ; text ; L2 ; none ; w # V7.0 (🖲) TRACKBALL
838 1F5BC ; text ; L2 ; none ; w # V7.0 (🖼) FRAME WITH PICTURE
839 1F5C2 ; text ; L2 ; none ; w # V7.0 (🗂) CARD INDEX DIVIDERS
840 1F5C3 ; text ; L2 ; none ; w # V7.0 (🗃) CARD FILE BOX
841 1F5C4 ; text ; L2 ; none ; w # V7.0 (🗄) FILE CABINET
842 1F5D1 ; text ; L2 ; none ; w # V7.0 (🗑) WASTEBASKET
843 1F5D2 ; text ; L2 ; none ; w # V7.0 (🗒) SPIRAL NOTE PAD
844 1F5D3 ; text ; L2 ; none ; w # V7.0 (🗓) SPIRAL CALENDAR PAD
845 1F5DC ; text ; L2 ; none ; w # V7.0 (🗜) COMPRESSION
846 1F5DD ; text ; L2 ; none ; w # V7.0 (🗝) OLD KEY
847 1F5DE ; text ; L2 ; none ; w # V7.0 (🗞) ROLLED-UP NEWSPAPER
848 1F5E1 ; text ; L2 ; none ; w # V7.0 (🗡) DAGGER KNIFE
849 1F5E3 ; text ; L2 ; none ; w # V7.0 (🗣) SPEAKING HEAD IN SILHOUETTE
850 1F5EF ; text ; L2 ; none ; w # V7.0 (🗯) RIGHT ANGER BUBBLE
851 1F5F3 ; text ; L2 ; none ; w # V7.0 (🗳) BALLOT BOX WITH BALLOT
852 1F5FA ; text ; L2 ; none ; w # V7.0 (🗺) WORLD MAP
853 1F5FB ; emoji ; L1 ; none ; j # V6.0 (🗻) MOUNT FUJI
854 1F5FC ; emoji ; L1 ; none ; j # V6.0 (🗼) TOKYO TOWER
855 1F5FD ; emoji ; L1 ; none ; j # V6.0 (🗽) STATUE OF LIBERTY
856 1F5FE ; emoji ; L1 ; none ; j # V6.0 (🗾) SILHOUETTE OF JAPAN
857 1F5FF ; emoji ; L1 ; none ; j # V6.0 (🗿) MOYAI
858 1F600 ; emoji ; L1 ; secondary ; x # V6.1 (😀) GRINNING FACE
859 1F601 ; emoji ; L1 ; secondary ; j # V6.0 (😁) GRINNING FACE WITH SMILING EYES
860 1F602 ; emoji ; L1 ; secondary ; j # V6.0 (😂) FACE WITH TEARS OF JOY
861 1F603 ; emoji ; L1 ; secondary ; j # V6.0 (😃) SMILING FACE WITH OPEN MOUTH
862 1F604 ; emoji ; L1 ; secondary ; j # V6.0 (😄) SMILING FACE WITH OPEN MOUTH AND SMILING EYES
863 1F605 ; emoji ; L1 ; secondary ; j # V6.0 (😅) SMILING FACE WITH OPEN MOUTH AND COLD SWEAT
864 1F606 ; emoji ; L1 ; secondary ; j # V6.0 (😆) SMILING FACE WITH OPEN MOUTH AND TIGHTLY-CLOSED EYES
865 1F607 ; emoji ; L1 ; secondary ; x # V6.0 (😇) SMILING FACE WITH HALO
866 1F608 ; emoji ; L1 ; secondary ; x # V6.0 (😈) SMILING FACE WITH HORNS
867 1F609 ; emoji ; L1 ; secondary ; j # V6.0 (😉) WINKING FACE
868 1F60A ; emoji ; L1 ; secondary ; j # V6.0 (😊) SMILING FACE WITH SMILING EYES
869 1F60B ; emoji ; L1 ; secondary ; j # V6.0 (😋) FACE SAVOURING DELICIOUS FOOD
870 1F60C ; emoji ; L1 ; secondary ; j # V6.0 (😌) RELIEVED FACE
871 1F60D ; emoji ; L1 ; secondary ; j # V6.0 (😍) SMILING FACE WITH HEART-SHAPED EYES
872 1F60E ; emoji ; L1 ; secondary ; x # V6.0 (😎) SMILING FACE WITH SUNGLASSES
873 1F60F ; emoji ; L1 ; secondary ; j # V6.0 (😏) SMIRKING FACE
874 1F610 ; emoji ; L1 ; secondary ; w # V6.0 (😐) NEUTRAL FACE
875 1F611 ; emoji ; L1 ; secondary ; x # V6.1 (😑) EXPRESSIONLESS FACE
876 1F612 ; emoji ; L1 ; secondary ; j # V6.0 (😒) UNAMUSED FACE
877 1F613 ; emoji ; L1 ; secondary ; j # V6.0 (😓) FACE WITH COLD SWEAT
878 1F614 ; emoji ; L1 ; secondary ; j # V6.0 (😔) PENSIVE FACE
879 1F615 ; emoji ; L1 ; secondary ; x # V6.1 (😕) CONFUSED FACE
880 1F616 ; emoji ; L1 ; secondary ; j # V6.0 (😖) CONFOUNDED FACE
881 1F617 ; emoji ; L1 ; secondary ; x # V6.1 (😗) KISSING FACE
882 1F618 ; emoji ; L1 ; secondary ; j # V6.0 (😘) FACE THROWING A KISS
883 1F619 ; emoji ; L1 ; secondary ; x # V6.1 (😙) KISSING FACE WITH SMILING EYES
884 1F61A ; emoji ; L1 ; secondary ; j # V6.0 (😚) KISSING FACE WITH CLOSED EYES
885 1F61B ; emoji ; L1 ; secondary ; x # V6.1 (😛) FACE WITH STUCK-OUT TONGUE
886 1F61C ; emoji ; L1 ; secondary ; j # V6.0 (😜) FACE WITH STUCK-OUT TONGUE AND WINKING EYE
887 1F61D ; emoji ; L1 ; secondary ; j # V6.0 (😝) FACE WITH STUCK-OUT TONGUE AND TIGHTLY-CLOSED EYES
888 1F61E ; emoji ; L1 ; secondary ; j # V6.0 (😞) DISAPPOINTED FACE
889 1F61F ; emoji ; L1 ; secondary ; x # V6.1 (😟) WORRIED FACE
890 1F620 ; emoji ; L1 ; secondary ; j # V6.0 (😠) ANGRY FACE
891 1F621 ; emoji ; L1 ; secondary ; j # V6.0 (😡) POUTING FACE
892 1F622 ; emoji ; L1 ; secondary ; j # V6.0 (😢) CRYING FACE
893 1F623 ; emoji ; L1 ; secondary ; j # V6.0 (😣) PERSEVERING FACE
894 1F624 ; emoji ; L1 ; secondary ; j # V6.0 (😤) FACE WITH LOOK OF TRIUMPH
895 1F625 ; emoji ; L1 ; secondary ; j # V6.0 (😥) DISAPPOINTED BUT RELIEVED FACE
896 1F626 ; emoji ; L1 ; secondary ; x # V6.1 (😦) FROWNING FACE WITH OPEN MOUTH
897 1F627 ; emoji ; L1 ; secondary ; x # V6.1 (😧) ANGUISHED FACE
898 1F628 ; emoji ; L1 ; secondary ; j # V6.0 (😨) FEARFUL FACE
899 1F629 ; emoji ; L1 ; secondary ; j # V6.0 (😩) WEARY FACE
900 1F62A ; emoji ; L1 ; secondary ; j # V6.0 (😪) SLEEPY FACE
901 1F62B ; emoji ; L1 ; secondary ; j # V6.0 (😫) TIRED FACE
902 1F62C ; emoji ; L1 ; secondary ; x # V6.1 (😬) GRIMACING FACE
903 1F62D ; emoji ; L1 ; secondary ; j # V6.0 (😭) LOUDLY CRYING FACE
904 1F62E ; emoji ; L1 ; secondary ; x # V6.1 (😮) FACE WITH OPEN MOUTH
905 1F62F ; emoji ; L1 ; secondary ; x # V6.1 (😯) HUSHED FACE
906 1F630 ; emoji ; L1 ; secondary ; j # V6.0 (😰) FACE WITH OPEN MOUTH AND COLD SWEAT
907 1F631 ; emoji ; L1 ; secondary ; j # V6.0 (😱) FACE SCREAMING IN FEAR
908 1F632 ; emoji ; L1 ; secondary ; j # V6.0 (😲) ASTONISHED FACE
909 1F633 ; emoji ; L1 ; secondary ; j # V6.0 (😳) FLUSHED FACE
910 1F634 ; emoji ; L1 ; secondary ; x # V6.1 (😴) SLEEPING FACE
911 1F635 ; emoji ; L1 ; secondary ; j # V6.0 (😵) DIZZY FACE
912 1F636 ; emoji ; L1 ; secondary ; x # V6.0 (😶) FACE WITHOUT MOUTH
913 1F637 ; emoji ; L1 ; secondary ; j # V6.0 (😷) FACE WITH MEDICAL MASK
914 1F638 ; emoji ; L1 ; none ; j # V6.0 (😸) GRINNING CAT FACE WITH SMILING EYES
915 1F639 ; emoji ; L1 ; none ; j # V6.0 (😹) CAT FACE WITH TEARS OF JOY
916 1F63A ; emoji ; L1 ; none ; j # V6.0 (😺) SMILING CAT FACE WITH OPEN MOUTH
917 1F63B ; emoji ; L1 ; none ; j # V6.0 (😻) SMILING CAT FACE WITH HEART-SHAPED EYES
918 1F63C ; emoji ; L1 ; none ; j # V6.0 (😼) CAT FACE WITH WRY SMILE
919 1F63D ; emoji ; L1 ; none ; j # V6.0 (😽) KISSING CAT FACE WITH CLOSED EYES
920 1F63E ; emoji ; L1 ; none ; j # V6.0 (😾) POUTING CAT FACE
921 1F63F ; emoji ; L1 ; none ; j # V6.0 (😿) CRYING CAT FACE
922 1F640 ; emoji ; L1 ; none ; j # V6.0 (🙀) WEARY CAT FACE
923 1F641 ; emoji ; L2 ; secondary ; x # V7.0 (🙁) SLIGHTLY FROWNING FACE
924 1F642 ; emoji ; L2 ; secondary ; x # V7.0 (🙂) SLIGHTLY SMILING FACE
925 1F643 ; emoji ; L2 ; secondary ; x # V8.0 (🙃) UPSIDE-DOWN FACE
926 1F644 ; emoji ; L2 ; secondary ; x # V8.0 (🙄) FACE WITH ROLLING EYES
927 1F645 ; emoji ; L1 ; primary ; j # V6.0 (🙅) FACE WITH NO GOOD GESTURE
928 1F646 ; emoji ; L1 ; primary ; j # V6.0 (🙆) FACE WITH OK GESTURE
929 1F647 ; emoji ; L1 ; primary ; j # V6.0 (🙇) PERSON BOWING DEEPLY
930 1F648 ; emoji ; L1 ; none ; j # V6.0 (🙈) SEE-NO-EVIL MONKEY
931 1F649 ; emoji ; L1 ; none ; j # V6.0 (🙉) HEAR-NO-EVIL MONKEY
932 1F64A ; emoji ; L1 ; none ; j # V6.0 (🙊) SPEAK-NO-EVIL MONKEY
933 1F64B ; emoji ; L1 ; primary ; j # V6.0 (🙋) HAPPY PERSON RAISING ONE HAND
934 1F64C ; emoji ; L1 ; secondary ; j # V6.0 (🙌) PERSON RAISING BOTH HANDS IN CELEBRATION
935 1F64D ; emoji ; L1 ; primary ; j # V6.0 (🙍) PERSON FROWNING
936 1F64E ; emoji ; L1 ; primary ; j # V6.0 (🙎) PERSON WITH POUTING FACE
937 1F64F ; emoji ; L1 ; secondary ; j # V6.0 (🙏) PERSON WITH FOLDED HANDS
938 1F680 ; emoji ; L1 ; none ; j # V6.0 (🚀) ROCKET
939 1F681 ; emoji ; L1 ; none ; x # V6.0 (🚁) HELICOPTER
940 1F682 ; emoji ; L1 ; none ; x # V6.0 (🚂) STEAM LOCOMOTIVE
941 1F683 ; emoji ; L1 ; none ; j # V6.0 (🚃) RAILWAY CAR
942 1F684 ; emoji ; L1 ; none ; j # V6.0 (🚄) HIGH-SPEED TRAIN
943 1F685 ; emoji ; L1 ; none ; j # V6.0 (🚅) HIGH-SPEED TRAIN WITH BULLET NOSE
944 1F686 ; emoji ; L1 ; none ; x # V6.0 (🚆) TRAIN
945 1F687 ; emoji ; L1 ; none ; j w # V6.0 (🚇) METRO
946 1F688 ; emoji ; L1 ; none ; x # V6.0 (🚈) LIGHT RAIL
947 1F689 ; emoji ; L1 ; none ; j # V6.0 (🚉) STATION
948 1F68A ; emoji ; L1 ; none ; x # V6.0 (🚊) TRAM
949 1F68B ; emoji ; L1 ; none ; x # V6.0 (🚋) TRAM CAR
950 1F68C ; emoji ; L1 ; none ; j # V6.0 (🚌) BUS
951 1F68D ; emoji ; L1 ; none ; w # V6.0 (🚍) ONCOMING BUS
952 1F68E ; emoji ; L1 ; none ; x # V6.0 (🚎) TROLLEYBUS
953 1F68F ; emoji ; L1 ; none ; j # V6.0 (🚏) BUS STOP
954 1F690 ; emoji ; L1 ; none ; x # V6.0 (🚐) MINIBUS
955 1F691 ; emoji ; L1 ; none ; j w # V6.0 (🚑) AMBULANCE
956 1F692 ; emoji ; L1 ; none ; j # V6.0 (🚒) FIRE ENGINE
957 1F693 ; emoji ; L1 ; none ; j # V6.0 (🚓) POLICE CAR
958 1F694 ; emoji ; L1 ; none ; w # V6.0 (🚔) ONCOMING POLICE CAR
959 1F695 ; emoji ; L1 ; none ; j # V6.0 (🚕) TAXI
960 1F696 ; emoji ; L1 ; none ; x # V6.0 (🚖) ONCOMING TAXI
961 1F697 ; emoji ; L1 ; none ; j # V6.0 (🚗) AUTOMOBILE
962 1F698 ; emoji ; L1 ; none ; w # V6.0 (🚘) ONCOMING AUTOMOBILE
963 1F699 ; emoji ; L1 ; none ; j # V6.0 (🚙) RECREATIONAL VEHICLE
964 1F69A ; emoji ; L1 ; none ; j # V6.0 (🚚) DELIVERY TRUCK
965 1F69B ; emoji ; L1 ; none ; x # V6.0 (🚛) ARTICULATED LORRY
966 1F69C ; emoji ; L1 ; none ; x # V6.0 (🚜) TRACTOR
967 1F69D ; emoji ; L1 ; none ; x # V6.0 (🚝) MONORAIL
968 1F69E ; emoji ; L1 ; none ; x # V6.0 (🚞) MOUNTAIN RAILWAY
969 1F69F ; emoji ; L1 ; none ; x # V6.0 (🚟) SUSPENSION RAILWAY
970 1F6A0 ; emoji ; L1 ; none ; x # V6.0 (🚠) MOUNTAIN CABLEWAY
971 1F6A1 ; emoji ; L1 ; none ; x # V6.0 (🚡) AERIAL TRAMWAY
972 1F6A2 ; emoji ; L1 ; none ; j # V6.0 (🚢) SHIP
973 1F6A3 ; emoji ; L1 ; secondary ; x # V6.0 (🚣) ROWBOAT
974 1F6A4 ; emoji ; L1 ; none ; j # V6.0 (🚤) SPEEDBOAT
975 1F6A5 ; emoji ; L1 ; none ; j # V6.0 (🚥) HORIZONTAL TRAFFIC LIGHT
976 1F6A6 ; emoji ; L1 ; none ; x # V6.0 (🚦) VERTICAL TRAFFIC LIGHT
977 1F6A7 ; emoji ; L1 ; none ; j # V6.0 (🚧) CONSTRUCTION SIGN
978 1F6A8 ; emoji ; L1 ; none ; j # V6.0 (🚨) POLICE CARS REVOLVING LIGHT
979 1F6A9 ; emoji ; L1 ; none ; j # V6.0 (🚩) TRIANGULAR FLAG ON POST
980 1F6AA ; emoji ; L1 ; none ; j # V6.0 (🚪) DOOR
981 1F6AB ; emoji ; L1 ; none ; j # V6.0 (🚫) NO ENTRY SIGN
982 1F6AC ; emoji ; L1 ; none ; j # V6.0 (🚬) SMOKING SYMBOL
983 1F6AD ; emoji ; L1 ; none ; j w # V6.0 (🚭) NO SMOKING SYMBOL
984 1F6AE ; emoji ; L1 ; none ; x # V6.0 (🚮) PUT LITTER IN ITS PLACE SYMBOL
985 1F6AF ; emoji ; L1 ; none ; x # V6.0 (🚯) DO NOT LITTER SYMBOL
986 1F6B0 ; emoji ; L1 ; none ; x # V6.0 (🚰) POTABLE WATER SYMBOL
987 1F6B1 ; emoji ; L1 ; none ; x # V6.0 (🚱) NON-POTABLE WATER SYMBOL
988 1F6B2 ; emoji ; L1 ; none ; j w # V6.0 (🚲) BICYCLE
989 1F6B3 ; emoji ; L1 ; none ; x # V6.0 (🚳) NO BICYCLES
990 1F6B4 ; emoji ; L1 ; secondary ; x # V6.0 (🚴) BICYCLIST
991 1F6B5 ; emoji ; L1 ; secondary ; x # V6.0 (🚵) MOUNTAIN BICYCLIST
992 1F6B6 ; emoji ; L1 ; secondary ; j # V6.0 (🚶) PEDESTRIAN
993 1F6B7 ; emoji ; L1 ; none ; x # V6.0 (🚷) NO PEDESTRIANS
994 1F6B8 ; emoji ; L1 ; none ; x # V6.0 (🚸) CHILDREN CROSSING
995 1F6B9 ; emoji ; L1 ; none ; j w # V6.0 (🚹) MENS SYMBOL
996 1F6BA ; emoji ; L1 ; none ; j w # V6.0 (🚺) WOMENS SYMBOL
997 1F6BB ; emoji ; L1 ; none ; j # V6.0 (🚻) RESTROOM
998 1F6BC ; emoji ; L1 ; none ; j w # V6.0 (🚼) BABY SYMBOL
999 1F6BD ; emoji ; L1 ; none ; j # V6.0 (🚽) TOILET
1000 1F6BE ; emoji ; L1 ; none ; j # V6.0 (🚾) WATER CLOSET
1001 1F6BF ; emoji ; L1 ; none ; x # V6.0 (🚿) SHOWER
1002 1F6C0 ; emoji ; L1 ; secondary ; j # V6.0 (🛀) BATH
1003 1F6C1 ; emoji ; L1 ; none ; x # V6.0 (🛁) BATHTUB
1004 1F6C2 ; emoji ; L1 ; none ; x # V6.0 (🛂) PASSPORT CONTROL
1005 1F6C3 ; emoji ; L1 ; none ; x # V6.0 (🛃) CUSTOMS
1006 1F6C4 ; emoji ; L1 ; none ; x # V6.0 (🛄) BAGGAGE CLAIM
1007 1F6C5 ; emoji ; L1 ; none ; x # V6.0 (🛅) LEFT LUGGAGE
1008 1F6CB ; text ; L2 ; none ; w # V7.0 (🛋) COUCH AND LAMP
1009 1F6CC ; emoji ; L2 ; none ; x # V7.0 (🛌) SLEEPING ACCOMMODATION
1010 1F6CD ; text ; L2 ; none ; w # V7.0 (🛍) SHOPPING BAGS
1011 1F6CE ; text ; L2 ; none ; w # V7.0 (🛎) BELLHOP BELL
1012 1F6CF ; text ; L2 ; none ; w # V7.0 (🛏) BED
1013 1F6D0 ; emoji ; L2 ; none ; x # V8.0 (🛐) PLACE OF WORSHIP
1014 1F6E0 ; text ; L2 ; none ; w # V7.0 (🛠) HAMMER AND WRENCH
1015 1F6E1 ; text ; L2 ; none ; w # V7.0 (🛡) SHIELD
1016 1F6E2 ; text ; L2 ; none ; w # V7.0 (🛢) OIL DRUM
1017 1F6E3 ; text ; L2 ; none ; w # V7.0 (🛣) MOTORWAY
1018 1F6E4 ; text ; L2 ; none ; w # V7.0 (🛤) RAILWAY TRACK
1019 1F6E5 ; text ; L2 ; none ; w # V7.0 (🛥) MOTOR BOAT
1020 1F6E9 ; text ; L2 ; none ; w # V7.0 (🛩) SMALL AIRPLANE
1021 1F6EB ; emoji ; L2 ; none ; x # V7.0 (🛫) AIRPLANE DEPARTURE
1022 1F6EC ; emoji ; L2 ; none ; x # V7.0 (🛬) AIRPLANE ARRIVING
1023 1F6F0 ; text ; L2 ; none ; w # V7.0 (🛰) SATELLITE
1024 1F6F3 ; text ; L2 ; none ; w # V7.0 (🛳) PASSENGER SHIP
1025 1F910 ; emoji ; L2 ; secondary ; x # V8.0 (🤐) ZIPPER-MOUTH FACE
1026 1F911 ; emoji ; L2 ; secondary ; x # V8.0 (🤑) MONEY-MOUTH FACE
1027 1F912 ; emoji ; L2 ; secondary ; x # V8.0 (🤒) FACE WITH THERMOMETER
1028 1F913 ; emoji ; L2 ; secondary ; x # V8.0 (🤓) NERD FACE
1029 1F914 ; emoji ; L2 ; secondary ; x # V8.0 (🤔) THINKING FACE
1030 1F915 ; emoji ; L2 ; secondary ; x # V8.0 (🤕) FACE WITH HEAD-BANDAGE
1031 1F916 ; emoji ; L2 ; none ; x # V8.0 (🤖) ROBOT FACE
1032 1F917 ; emoji ; L2 ; secondary ; x # V8.0 (🤗) HUGGING FACE
1033 1F918 ; emoji ; L2 ; secondary ; x # V8.0 (🤘) SIGN OF THE HORNS
1034 1F980 ; emoji ; L2 ; none ; x # V8.0 (🦀) CRAB
1035 1F981 ; emoji ; L2 ; none ; x # V8.0 (🦁) LION FACE
1036 1F982 ; emoji ; L2 ; none ; x # V8.0 (🦂) SCORPION
1037 1F983 ; emoji ; L2 ; none ; x # V8.0 (🦃) TURKEY
1038 1F984 ; emoji ; L2 ; none ; x # V8.0 (🦄) UNICORN FACE
1039 1F9C0 ; emoji ; L2 ; none ; x # V8.0 (🧀) CHEESE WEDGE
1040 0023 20E3 ; text ; L1 ; none ; j # V3.0 (#⃣) keycap NUMBER SIGN
1041 002A 20E3 ; text ; L2 ; none ; x # V3.0 (*⃣) keycap ASTERISK
1042 0030 20E3 ; text ; L1 ; none ; j # V3.0 (0⃣) keycap DIGIT ZERO
1043 0031 20E3 ; text ; L1 ; none ; j # V3.0 (1⃣) keycap DIGIT ONE
1044 0032 20E3 ; text ; L1 ; none ; j # V3.0 (2⃣) keycap DIGIT TWO
1045 0033 20E3 ; text ; L1 ; none ; j # V3.0 (3⃣) keycap DIGIT THREE
1046 0034 20E3 ; text ; L1 ; none ; j # V3.0 (4⃣) keycap DIGIT FOUR
1047 0035 20E3 ; text ; L1 ; none ; j # V3.0 (5⃣) keycap DIGIT FIVE
1048 0036 20E3 ; text ; L1 ; none ; j # V3.0 (6⃣) keycap DIGIT SIX
1049 0037 20E3 ; text ; L1 ; none ; j # V3.0 (7⃣) keycap DIGIT SEVEN
1050 0038 20E3 ; text ; L1 ; none ; j # V3.0 (8⃣) keycap DIGIT EIGHT
1051 0039 20E3 ; text ; L1 ; none ; j # V3.0 (9⃣) keycap DIGIT NINE
1052 1F1E6 1F1E8 ; emoji ; L2 ; none ; x # V6.0 (🇦🇨) flag for Ascension Island
1053 1F1E6 1F1E9 ; emoji ; L2 ; none ; x # V6.0 (🇦🇩) flag for Andorra
1054 1F1E6 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇦🇪) flag for United Arab Emirates
1055 1F1E6 1F1EB ; emoji ; L2 ; none ; x # V6.0 (🇦🇫) flag for Afghanistan
1056 1F1E6 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇦🇬) flag for Antigua & Barbuda
1057 1F1E6 1F1EE ; emoji ; L2 ; none ; x # V6.0 (🇦🇮) flag for Anguilla
1058 1F1E6 1F1F1 ; emoji ; L2 ; none ; x # V6.0 (🇦🇱) flag for Albania
1059 1F1E6 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇦🇲) flag for Armenia
1060 1F1E6 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇦🇴) flag for Angola
1061 1F1E6 1F1F6 ; emoji ; L2 ; none ; x # V6.0 (🇦🇶) flag for Antarctica
1062 1F1E6 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇦🇷) flag for Argentina
1063 1F1E6 1F1F8 ; emoji ; L2 ; none ; x # V6.0 (🇦🇸) flag for American Samoa
1064 1F1E6 1F1F9 ; emoji ; L2 ; none ; x # V6.0 (🇦🇹) flag for Austria
1065 1F1E6 1F1FA ; emoji ; L2 ; none ; x # V6.0 (🇦🇺) flag for Australia
1066 1F1E6 1F1FC ; emoji ; L2 ; none ; x # V6.0 (🇦🇼) flag for Aruba
1067 1F1E6 1F1FD ; emoji ; L2 ; none ; x # V6.0 (🇦🇽) flag for Åland Islands
1068 1F1E6 1F1FF ; emoji ; L2 ; none ; x # V6.0 (🇦🇿) flag for Azerbaijan
1069 1F1E7 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇧🇦) flag for Bosnia & Herzegovina
1070 1F1E7 1F1E7 ; emoji ; L2 ; none ; x # V6.0 (🇧🇧) flag for Barbados
1071 1F1E7 1F1E9 ; emoji ; L2 ; none ; x # V6.0 (🇧🇩) flag for Bangladesh
1072 1F1E7 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇧🇪) flag for Belgium
1073 1F1E7 1F1EB ; emoji ; L2 ; none ; x # V6.0 (🇧🇫) flag for Burkina Faso
1074 1F1E7 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇧🇬) flag for Bulgaria
1075 1F1E7 1F1ED ; emoji ; L2 ; none ; x # V6.0 (🇧🇭) flag for Bahrain
1076 1F1E7 1F1EE ; emoji ; L2 ; none ; x # V6.0 (🇧🇮) flag for Burundi
1077 1F1E7 1F1EF ; emoji ; L2 ; none ; x # V6.0 (🇧🇯) flag for Benin
1078 1F1E7 1F1F1 ; emoji ; L2 ; none ; x # V6.0 (🇧🇱) flag for St. Barthélemy
1079 1F1E7 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇧🇲) flag for Bermuda
1080 1F1E7 1F1F3 ; emoji ; L2 ; none ; x # V6.0 (🇧🇳) flag for Brunei
1081 1F1E7 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇧🇴) flag for Bolivia
1082 1F1E7 1F1F6 ; emoji ; L2 ; none ; x # V6.0 (🇧🇶) flag for Caribbean Netherlands
1083 1F1E7 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇧🇷) flag for Brazil
1084 1F1E7 1F1F8 ; emoji ; L2 ; none ; x # V6.0 (🇧🇸) flag for Bahamas
1085 1F1E7 1F1F9 ; emoji ; L2 ; none ; x # V6.0 (🇧🇹) flag for Bhutan
1086 1F1E7 1F1FB ; emoji ; L2 ; none ; x # V6.0 (🇧🇻) flag for Bouvet Island
1087 1F1E7 1F1FC ; emoji ; L2 ; none ; x # V6.0 (🇧🇼) flag for Botswana
1088 1F1E7 1F1FE ; emoji ; L2 ; none ; x # V6.0 (🇧🇾) flag for Belarus
1089 1F1E7 1F1FF ; emoji ; L2 ; none ; x # V6.0 (🇧🇿) flag for Belize
1090 1F1E8 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇨🇦) flag for Canada
1091 1F1E8 1F1E8 ; emoji ; L2 ; none ; x # V6.0 (🇨🇨) flag for Cocos Islands
1092 1F1E8 1F1E9 ; emoji ; L2 ; none ; x # V6.0 (🇨🇩) flag for Congo - Kinshasa
1093 1F1E8 1F1EB ; emoji ; L2 ; none ; x # V6.0 (🇨🇫) flag for Central African Republic
1094 1F1E8 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇨🇬) flag for Congo - Brazzaville
1095 1F1E8 1F1ED ; emoji ; L2 ; none ; x # V6.0 (🇨🇭) flag for Switzerland
1096 1F1E8 1F1EE ; emoji ; L2 ; none ; x # V6.0 (🇨🇮) flag for Côte d’Ivoire
1097 1F1E8 1F1F0 ; emoji ; L2 ; none ; x # V6.0 (🇨🇰) flag for Cook Islands
1098 1F1E8 1F1F1 ; emoji ; L2 ; none ; x # V6.0 (🇨🇱) flag for Chile
1099 1F1E8 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇨🇲) flag for Cameroon
1100 1F1E8 1F1F3 ; emoji ; L1 ; none ; j # V6.0 (🇨🇳) flag for China
1101 1F1E8 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇨🇴) flag for Colombia
1102 1F1E8 1F1F5 ; emoji ; L2 ; none ; x # V6.0 (🇨🇵) flag for Clipperton Island
1103 1F1E8 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇨🇷) flag for Costa Rica
1104 1F1E8 1F1FA ; emoji ; L2 ; none ; x # V6.0 (🇨🇺) flag for Cuba
1105 1F1E8 1F1FB ; emoji ; L2 ; none ; x # V6.0 (🇨🇻) flag for Cape Verde
1106 1F1E8 1F1FC ; emoji ; L2 ; none ; x # V6.0 (🇨🇼) flag for Curaçao
1107 1F1E8 1F1FD ; emoji ; L2 ; none ; x # V6.0 (🇨🇽) flag for Christmas Island
1108 1F1E8 1F1FE ; emoji ; L2 ; none ; x # V6.0 (🇨🇾) flag for Cyprus
1109 1F1E8 1F1FF ; emoji ; L2 ; none ; x # V6.0 (🇨🇿) flag for Czech Republic
1110 1F1E9 1F1EA ; emoji ; L1 ; none ; j # V6.0 (🇩🇪) flag for Germany
1111 1F1E9 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇩🇬) flag for Diego Garcia
1112 1F1E9 1F1EF ; emoji ; L2 ; none ; x # V6.0 (🇩🇯) flag for Djibouti
1113 1F1E9 1F1F0 ; emoji ; L2 ; none ; x # V6.0 (🇩🇰) flag for Denmark
1114 1F1E9 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇩🇲) flag for Dominica
1115 1F1E9 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇩🇴) flag for Dominican Republic
1116 1F1E9 1F1FF ; emoji ; L2 ; none ; x # V6.0 (🇩🇿) flag for Algeria
1117 1F1EA 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇪🇦) flag for Ceuta & Melilla
1118 1F1EA 1F1E8 ; emoji ; L2 ; none ; x # V6.0 (🇪🇨) flag for Ecuador
1119 1F1EA 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇪🇪) flag for Estonia
1120 1F1EA 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇪🇬) flag for Egypt
1121 1F1EA 1F1ED ; emoji ; L2 ; none ; x # V6.0 (🇪🇭) flag for Western Sahara
1122 1F1EA 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇪🇷) flag for Eritrea
1123 1F1EA 1F1F8 ; emoji ; L1 ; none ; j # V6.0 (🇪🇸) flag for Spain
1124 1F1EA 1F1F9 ; emoji ; L2 ; none ; x # V6.0 (🇪🇹) flag for Ethiopia
1125 1F1EA 1F1FA ; emoji ; L2 ; none ; x # V6.0 (🇪🇺) flag for European Union
1126 1F1EB 1F1EE ; emoji ; L2 ; none ; x # V6.0 (🇫🇮) flag for Finland
1127 1F1EB 1F1EF ; emoji ; L2 ; none ; x # V6.0 (🇫🇯) flag for Fiji
1128 1F1EB 1F1F0 ; emoji ; L2 ; none ; x # V6.0 (🇫🇰) flag for Falkland Islands
1129 1F1EB 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇫🇲) flag for Micronesia
1130 1F1EB 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇫🇴) flag for Faroe Islands
1131 1F1EB 1F1F7 ; emoji ; L1 ; none ; j # V6.0 (🇫🇷) flag for France
1132 1F1EC 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇬🇦) flag for Gabon
1133 1F1EC 1F1E7 ; emoji ; L1 ; none ; j # V6.0 (🇬🇧) flag for United Kingdom
1134 1F1EC 1F1E9 ; emoji ; L2 ; none ; x # V6.0 (🇬🇩) flag for Grenada
1135 1F1EC 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇬🇪) flag for Georgia
1136 1F1EC 1F1EB ; emoji ; L2 ; none ; x # V6.0 (🇬🇫) flag for French Guiana
1137 1F1EC 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇬🇬) flag for Guernsey
1138 1F1EC 1F1ED ; emoji ; L2 ; none ; x # V6.0 (🇬🇭) flag for Ghana
1139 1F1EC 1F1EE ; emoji ; L2 ; none ; x # V6.0 (🇬🇮) flag for Gibraltar
1140 1F1EC 1F1F1 ; emoji ; L2 ; none ; x # V6.0 (🇬🇱) flag for Greenland
1141 1F1EC 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇬🇲) flag for Gambia
1142 1F1EC 1F1F3 ; emoji ; L2 ; none ; x # V6.0 (🇬🇳) flag for Guinea
1143 1F1EC 1F1F5 ; emoji ; L2 ; none ; x # V6.0 (🇬🇵) flag for Guadeloupe
1144 1F1EC 1F1F6 ; emoji ; L2 ; none ; x # V6.0 (🇬🇶) flag for Equatorial Guinea
1145 1F1EC 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇬🇷) flag for Greece
1146 1F1EC 1F1F8 ; emoji ; L2 ; none ; x # V6.0 (🇬🇸) flag for South Georgia & South Sandwich Islands
1147 1F1EC 1F1F9 ; emoji ; L2 ; none ; x # V6.0 (🇬🇹) flag for Guatemala
1148 1F1EC 1F1FA ; emoji ; L2 ; none ; x # V6.0 (🇬🇺) flag for Guam
1149 1F1EC 1F1FC ; emoji ; L2 ; none ; x # V6.0 (🇬🇼) flag for Guinea-Bissau
1150 1F1EC 1F1FE ; emoji ; L2 ; none ; x # V6.0 (🇬🇾) flag for Guyana
1151 1F1ED 1F1F0 ; emoji ; L2 ; none ; x # V6.0 (🇭🇰) flag for Hong Kong
1152 1F1ED 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇭🇲) flag for Heard & McDonald Islands
1153 1F1ED 1F1F3 ; emoji ; L2 ; none ; x # V6.0 (🇭🇳) flag for Honduras
1154 1F1ED 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇭🇷) flag for Croatia
1155 1F1ED 1F1F9 ; emoji ; L2 ; none ; x # V6.0 (🇭🇹) flag for Haiti
1156 1F1ED 1F1FA ; emoji ; L2 ; none ; x # V6.0 (🇭🇺) flag for Hungary
1157 1F1EE 1F1E8 ; emoji ; L2 ; none ; x # V6.0 (🇮🇨) flag for Canary Islands
1158 1F1EE 1F1E9 ; emoji ; L2 ; none ; x # V6.0 (🇮🇩) flag for Indonesia
1159 1F1EE 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇮🇪) flag for Ireland
1160 1F1EE 1F1F1 ; emoji ; L2 ; none ; x # V6.0 (🇮🇱) flag for Israel
1161 1F1EE 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇮🇲) flag for Isle of Man
1162 1F1EE 1F1F3 ; emoji ; L2 ; none ; x # V6.0 (🇮🇳) flag for India
1163 1F1EE 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇮🇴) flag for British Indian Ocean Territory
1164 1F1EE 1F1F6 ; emoji ; L2 ; none ; x # V6.0 (🇮🇶) flag for Iraq
1165 1F1EE 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇮🇷) flag for Iran
1166 1F1EE 1F1F8 ; emoji ; L2 ; none ; x # V6.0 (🇮🇸) flag for Iceland
1167 1F1EE 1F1F9 ; emoji ; L1 ; none ; j # V6.0 (🇮🇹) flag for Italy
1168 1F1EF 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇯🇪) flag for Jersey
1169 1F1EF 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇯🇲) flag for Jamaica
1170 1F1EF 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇯🇴) flag for Jordan
1171 1F1EF 1F1F5 ; emoji ; L1 ; none ; j # V6.0 (🇯🇵) flag for Japan
1172 1F1F0 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇰🇪) flag for Kenya
1173 1F1F0 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇰🇬) flag for Kyrgyzstan
1174 1F1F0 1F1ED ; emoji ; L2 ; none ; x # V6.0 (🇰🇭) flag for Cambodia
1175 1F1F0 1F1EE ; emoji ; L2 ; none ; x # V6.0 (🇰🇮) flag for Kiribati
1176 1F1F0 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇰🇲) flag for Comoros
1177 1F1F0 1F1F3 ; emoji ; L2 ; none ; x # V6.0 (🇰🇳) flag for St. Kitts & Nevis
1178 1F1F0 1F1F5 ; emoji ; L2 ; none ; x # V6.0 (🇰🇵) flag for North Korea
1179 1F1F0 1F1F7 ; emoji ; L1 ; none ; j # V6.0 (🇰🇷) flag for South Korea
1180 1F1F0 1F1FC ; emoji ; L2 ; none ; x # V6.0 (🇰🇼) flag for Kuwait
1181 1F1F0 1F1FE ; emoji ; L2 ; none ; x # V6.0 (🇰🇾) flag for Cayman Islands
1182 1F1F0 1F1FF ; emoji ; L2 ; none ; x # V6.0 (🇰🇿) flag for Kazakhstan
1183 1F1F1 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇱🇦) flag for Laos
1184 1F1F1 1F1E7 ; emoji ; L2 ; none ; x # V6.0 (🇱🇧) flag for Lebanon
1185 1F1F1 1F1E8 ; emoji ; L2 ; none ; x # V6.0 (🇱🇨) flag for St. Lucia
1186 1F1F1 1F1EE ; emoji ; L2 ; none ; x # V6.0 (🇱🇮) flag for Liechtenstein
1187 1F1F1 1F1F0 ; emoji ; L2 ; none ; x # V6.0 (🇱🇰) flag for Sri Lanka
1188 1F1F1 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇱🇷) flag for Liberia
1189 1F1F1 1F1F8 ; emoji ; L2 ; none ; x # V6.0 (🇱🇸) flag for Lesotho
1190 1F1F1 1F1F9 ; emoji ; L2 ; none ; x # V6.0 (🇱🇹) flag for Lithuania
1191 1F1F1 1F1FA ; emoji ; L2 ; none ; x # V6.0 (🇱🇺) flag for Luxembourg
1192 1F1F1 1F1FB ; emoji ; L2 ; none ; x # V6.0 (🇱🇻) flag for Latvia
1193 1F1F1 1F1FE ; emoji ; L2 ; none ; x # V6.0 (🇱🇾) flag for Libya
1194 1F1F2 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇲🇦) flag for Morocco
1195 1F1F2 1F1E8 ; emoji ; L2 ; none ; x # V6.0 (🇲🇨) flag for Monaco
1196 1F1F2 1F1E9 ; emoji ; L2 ; none ; x # V6.0 (🇲🇩) flag for Moldova
1197 1F1F2 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇲🇪) flag for Montenegro
1198 1F1F2 1F1EB ; emoji ; L2 ; none ; x # V6.0 (🇲🇫) flag for St. Martin
1199 1F1F2 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇲🇬) flag for Madagascar
1200 1F1F2 1F1ED ; emoji ; L2 ; none ; x # V6.0 (🇲🇭) flag for Marshall Islands
1201 1F1F2 1F1F0 ; emoji ; L2 ; none ; x # V6.0 (🇲🇰) flag for Macedonia
1202 1F1F2 1F1F1 ; emoji ; L2 ; none ; x # V6.0 (🇲🇱) flag for Mali
1203 1F1F2 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇲🇲) flag for Myanmar
1204 1F1F2 1F1F3 ; emoji ; L2 ; none ; x # V6.0 (🇲🇳) flag for Mongolia
1205 1F1F2 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇲🇴) flag for Macau
1206 1F1F2 1F1F5 ; emoji ; L2 ; none ; x # V6.0 (🇲🇵) flag for Northern Mariana Islands
1207 1F1F2 1F1F6 ; emoji ; L2 ; none ; x # V6.0 (🇲🇶) flag for Martinique
1208 1F1F2 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇲🇷) flag for Mauritania
1209 1F1F2 1F1F8 ; emoji ; L2 ; none ; x # V6.0 (🇲🇸) flag for Montserrat
1210 1F1F2 1F1F9 ; emoji ; L2 ; none ; x # V6.0 (🇲🇹) flag for Malta
1211 1F1F2 1F1FA ; emoji ; L2 ; none ; x # V6.0 (🇲🇺) flag for Mauritius
1212 1F1F2 1F1FB ; emoji ; L2 ; none ; x # V6.0 (🇲🇻) flag for Maldives
1213 1F1F2 1F1FC ; emoji ; L2 ; none ; x # V6.0 (🇲🇼) flag for Malawi
1214 1F1F2 1F1FD ; emoji ; L2 ; none ; x # V6.0 (🇲🇽) flag for Mexico
1215 1F1F2 1F1FE ; emoji ; L2 ; none ; x # V6.0 (🇲🇾) flag for Malaysia
1216 1F1F2 1F1FF ; emoji ; L2 ; none ; x # V6.0 (🇲🇿) flag for Mozambique
1217 1F1F3 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇳🇦) flag for Namibia
1218 1F1F3 1F1E8 ; emoji ; L2 ; none ; x # V6.0 (🇳🇨) flag for New Caledonia
1219 1F1F3 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇳🇪) flag for Niger
1220 1F1F3 1F1EB ; emoji ; L2 ; none ; x # V6.0 (🇳🇫) flag for Norfolk Island
1221 1F1F3 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇳🇬) flag for Nigeria
1222 1F1F3 1F1EE ; emoji ; L2 ; none ; x # V6.0 (🇳🇮) flag for Nicaragua
1223 1F1F3 1F1F1 ; emoji ; L2 ; none ; x # V6.0 (🇳🇱) flag for Netherlands
1224 1F1F3 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇳🇴) flag for Norway
1225 1F1F3 1F1F5 ; emoji ; L2 ; none ; x # V6.0 (🇳🇵) flag for Nepal
1226 1F1F3 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇳🇷) flag for Nauru
1227 1F1F3 1F1FA ; emoji ; L2 ; none ; x # V6.0 (🇳🇺) flag for Niue
1228 1F1F3 1F1FF ; emoji ; L2 ; none ; x # V6.0 (🇳🇿) flag for New Zealand
1229 1F1F4 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇴🇲) flag for Oman
1230 1F1F5 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇵🇦) flag for Panama
1231 1F1F5 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇵🇪) flag for Peru
1232 1F1F5 1F1EB ; emoji ; L2 ; none ; x # V6.0 (🇵🇫) flag for French Polynesia
1233 1F1F5 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇵🇬) flag for Papua New Guinea
1234 1F1F5 1F1ED ; emoji ; L2 ; none ; x # V6.0 (🇵🇭) flag for Philippines
1235 1F1F5 1F1F0 ; emoji ; L2 ; none ; x # V6.0 (🇵🇰) flag for Pakistan
1236 1F1F5 1F1F1 ; emoji ; L2 ; none ; x # V6.0 (🇵🇱) flag for Poland
1237 1F1F5 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇵🇲) flag for St. Pierre & Miquelon
1238 1F1F5 1F1F3 ; emoji ; L2 ; none ; x # V6.0 (🇵🇳) flag for Pitcairn Islands
1239 1F1F5 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇵🇷) flag for Puerto Rico
1240 1F1F5 1F1F8 ; emoji ; L2 ; none ; x # V6.0 (🇵🇸) flag for Palestinian Territories
1241 1F1F5 1F1F9 ; emoji ; L2 ; none ; x # V6.0 (🇵🇹) flag for Portugal
1242 1F1F5 1F1FC ; emoji ; L2 ; none ; x # V6.0 (🇵🇼) flag for Palau
1243 1F1F5 1F1FE ; emoji ; L2 ; none ; x # V6.0 (🇵🇾) flag for Paraguay
1244 1F1F6 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇶🇦) flag for Qatar
1245 1F1F7 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇷🇪) flag for Réunion
1246 1F1F7 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇷🇴) flag for Romania
1247 1F1F7 1F1F8 ; emoji ; L2 ; none ; x # V6.0 (🇷🇸) flag for Serbia
1248 1F1F7 1F1FA ; emoji ; L1 ; none ; j # V6.0 (🇷🇺) flag for Russia
1249 1F1F7 1F1FC ; emoji ; L2 ; none ; x # V6.0 (🇷🇼) flag for Rwanda
1250 1F1F8 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇸🇦) flag for Saudi Arabia
1251 1F1F8 1F1E7 ; emoji ; L2 ; none ; x # V6.0 (🇸🇧) flag for Solomon Islands
1252 1F1F8 1F1E8 ; emoji ; L2 ; none ; x # V6.0 (🇸🇨) flag for Seychelles
1253 1F1F8 1F1E9 ; emoji ; L2 ; none ; x # V6.0 (🇸🇩) flag for Sudan
1254 1F1F8 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇸🇪) flag for Sweden
1255 1F1F8 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇸🇬) flag for Singapore
1256 1F1F8 1F1ED ; emoji ; L2 ; none ; x # V6.0 (🇸🇭) flag for St. Helena
1257 1F1F8 1F1EE ; emoji ; L2 ; none ; x # V6.0 (🇸🇮) flag for Slovenia
1258 1F1F8 1F1EF ; emoji ; L2 ; none ; x # V6.0 (🇸🇯) flag for Svalbard & Jan Mayen
1259 1F1F8 1F1F0 ; emoji ; L2 ; none ; x # V6.0 (🇸🇰) flag for Slovakia
1260 1F1F8 1F1F1 ; emoji ; L2 ; none ; x # V6.0 (🇸🇱) flag for Sierra Leone
1261 1F1F8 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇸🇲) flag for San Marino
1262 1F1F8 1F1F3 ; emoji ; L2 ; none ; x # V6.0 (🇸🇳) flag for Senegal
1263 1F1F8 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇸🇴) flag for Somalia
1264 1F1F8 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇸🇷) flag for Suriname
1265 1F1F8 1F1F8 ; emoji ; L2 ; none ; x # V6.0 (🇸🇸) flag for South Sudan
1266 1F1F8 1F1F9 ; emoji ; L2 ; none ; x # V6.0 (🇸🇹) flag for São Tomé & Príncipe
1267 1F1F8 1F1FB ; emoji ; L2 ; none ; x # V6.0 (🇸🇻) flag for El Salvador
1268 1F1F8 1F1FD ; emoji ; L2 ; none ; x # V6.0 (🇸🇽) flag for Sint Maarten
1269 1F1F8 1F1FE ; emoji ; L2 ; none ; x # V6.0 (🇸🇾) flag for Syria
1270 1F1F8 1F1FF ; emoji ; L2 ; none ; x # V6.0 (🇸🇿) flag for Swaziland
1271 1F1F9 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇹🇦) flag for Tristan da Cunha
1272 1F1F9 1F1E8 ; emoji ; L2 ; none ; x # V6.0 (🇹🇨) flag for Turks & Caicos Islands
1273 1F1F9 1F1E9 ; emoji ; L2 ; none ; x # V6.0 (🇹🇩) flag for Chad
1274 1F1F9 1F1EB ; emoji ; L2 ; none ; x # V6.0 (🇹🇫) flag for French Southern Territories
1275 1F1F9 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇹🇬) flag for Togo
1276 1F1F9 1F1ED ; emoji ; L2 ; none ; x # V6.0 (🇹🇭) flag for Thailand
1277 1F1F9 1F1EF ; emoji ; L2 ; none ; x # V6.0 (🇹🇯) flag for Tajikistan
1278 1F1F9 1F1F0 ; emoji ; L2 ; none ; x # V6.0 (🇹🇰) flag for Tokelau
1279 1F1F9 1F1F1 ; emoji ; L2 ; none ; x # V6.0 (🇹🇱) flag for Timor-Leste
1280 1F1F9 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇹🇲) flag for Turkmenistan
1281 1F1F9 1F1F3 ; emoji ; L2 ; none ; x # V6.0 (🇹🇳) flag for Tunisia
1282 1F1F9 1F1F4 ; emoji ; L2 ; none ; x # V6.0 (🇹🇴) flag for Tonga
1283 1F1F9 1F1F7 ; emoji ; L2 ; none ; x # V6.0 (🇹🇷) flag for Turkey
1284 1F1F9 1F1F9 ; emoji ; L2 ; none ; x # V6.0 (🇹🇹) flag for Trinidad & Tobago
1285 1F1F9 1F1FB ; emoji ; L2 ; none ; x # V6.0 (🇹🇻) flag for Tuvalu
1286 1F1F9 1F1FC ; emoji ; L2 ; none ; x # V6.0 (🇹🇼) flag for Taiwan
1287 1F1F9 1F1FF ; emoji ; L2 ; none ; x # V6.0 (🇹🇿) flag for Tanzania
1288 1F1FA 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇺🇦) flag for Ukraine
1289 1F1FA 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇺🇬) flag for Uganda
1290 1F1FA 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇺🇲) flag for U.S. Outlying Islands
1291 1F1FA 1F1F8 ; emoji ; L1 ; none ; j # V6.0 (🇺🇸) flag for United States
1292 1F1FA 1F1FE ; emoji ; L2 ; none ; x # V6.0 (🇺🇾) flag for Uruguay
1293 1F1FA 1F1FF ; emoji ; L2 ; none ; x # V6.0 (🇺🇿) flag for Uzbekistan
1294 1F1FB 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇻🇦) flag for Vatican City
1295 1F1FB 1F1E8 ; emoji ; L2 ; none ; x # V6.0 (🇻🇨) flag for St. Vincent & Grenadines
1296 1F1FB 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇻🇪) flag for Venezuela
1297 1F1FB 1F1EC ; emoji ; L2 ; none ; x # V6.0 (🇻🇬) flag for British Virgin Islands
1298 1F1FB 1F1EE ; emoji ; L2 ; none ; x # V6.0 (🇻🇮) flag for U.S. Virgin Islands
1299 1F1FB 1F1F3 ; emoji ; L2 ; none ; x # V6.0 (🇻🇳) flag for Vietnam
1300 1F1FB 1F1FA ; emoji ; L2 ; none ; x # V6.0 (🇻🇺) flag for Vanuatu
1301 1F1FC 1F1EB ; emoji ; L2 ; none ; x # V6.0 (🇼🇫) flag for Wallis & Futuna
1302 1F1FC 1F1F8 ; emoji ; L2 ; none ; x # V6.0 (🇼🇸) flag for Samoa
1303 1F1FD 1F1F0 ; emoji ; L2 ; none ; x # V6.0 (🇽🇰) flag for Kosovo
1304 1F1FE 1F1EA ; emoji ; L2 ; none ; x # V6.0 (🇾🇪) flag for Yemen
1305 1F1FE 1F1F9 ; emoji ; L2 ; none ; x # V6.0 (🇾🇹) flag for Mayotte
1306 1F1FF 1F1E6 ; emoji ; L2 ; none ; x # V6.0 (🇿🇦) flag for South Africa
1307 1F1FF 1F1F2 ; emoji ; L2 ; none ; x # V6.0 (🇿🇲) flag for Zambia
1308 1F1FF 1F1FC ; emoji ; L2 ; none ; x # V6.0 (🇿🇼) flag for Zimbabwe
1309
plugins/emoji/emoji.plugin.zsh
File was created 1 # emoji plugin
2 #
3 # Makes emoji support available within ZSH
4 #
5 # See the README for documentation.
6
7 _omz_emoji_plugin_dir="${0:h}"
8
9 () {
10
11 local LC_ALL=en_US.UTF-8
12
13 typeset -gAH emoji_groups
14 typeset -gAH emoji_con
15 typeset -gAH emoji2
16 typeset -gAH emoji_skintone
17
18 source "$_omz_emoji_plugin_dir/emoji-char-definitions.zsh"
19 unset _omz_emoji_plugin_dir
20
21 # These additional emoji are not in the definition file, but are useful in conjunction with it
22
23 # This is a combinin character that can be placed after any other character to surround
24 # it in a "keycap" symbol.
25 # The digits 0-9 are already in the emoji table as keycap_digit_<N>, keycap_ten, etc.
26 # It's unclear whether this should be in the $emoji array, because those characters are all ones
27 # which can be displayed on their own.
28 #emoji[combining_enclosing_keycap]="\U20E3"
29
30 emoji[regional_indicator_symbol_letter_d_regional_indicator_symbol_letter_e]=$'\xF0\x9F\x87\xA9\xF0\x9F\x87\xAA'
31 emoji[regional_indicator_symbol_letter_g_regional_indicator_symbol_letter_b]=$'\xF0\x9F\x87\xAC\xF0\x9F\x87\xA7'
32 emoji[regional_indicator_symbol_letter_c_regional_indicator_symbol_letter_n]=$'\xF0\x9F\x87\xA8\xF0\x9F\x87\xB3'
33 emoji[regional_indicator_symbol_letter_j_regional_indicator_symbol_letter_p]=$'\xF0\x9F\x87\xAF\xF0\x9F\x87\xB5'
34 emoji[regional_indicator_symbol_letter_k_regional_indicator_symbol_letter_r]=$'\xF0\x9F\x87\xB0\xF0\x9F\x87\xB7'
35 emoji[regional_indicator_symbol_letter_f_regional_indicator_symbol_letter_r]=$'\xF0\x9F\x87\xAB\xF0\x9F\x87\xB7'
36 emoji[regional_indicator_symbol_letter_e_regional_indicator_symbol_letter_s]=$'\xF0\x9F\x87\xAA\xF0\x9F\x87\xB8'
37 emoji[regional_indicator_symbol_letter_i_regional_indicator_symbol_letter_t]=$'\xF0\x9F\x87\xAE\xF0\x9F\x87\xB9'
38 emoji[regional_indicator_symbol_letter_u_regional_indicator_symbol_letter_s]=$'\xF0\x9F\x87\xBA\xF0\x9F\x87\xB8'
39 emoji[regional_indicator_symbol_letter_r_regional_indicator_symbol_letter_u]=$'\xF0\x9F\x87\xB7\xF0\x9F\x87\xBA'
40
41 # Nonstandard alias names
42 emoji[vulcan_salute]=$'\U1F596'
43
44
45 # Emoji combining and auxiliary characters
46
47 # "Variation Selectors" for controlling text vs emoji style presentation
48 # These apply to the immediately preceding character
49 emoji2[text_style]=$'\UFE0E'
50 emoji2[emoji_style]=$'\UFE0F'
51 # Joiner that indicates a single combined-form glyph (ligature) should be used
52 emoji2[zero_width_joiner]=$'\U200D'
53 # Skin tone modifiers
54 emoji2[emoji_modifier_fitzpatrick_type_1_2]=$'\U1F3FB'
55 emoji2[emoji_modifier_fitzpatrick_type_3]=$'\U1F3FC'
56 emoji2[emoji_modifier_fitzpatrick_type_4]=$'\U1F3FD'
57 emoji2[emoji_modifier_fitzpatrick_type_5]=$'\U1F3FE'
58 emoji2[emoji_modifier_fitzpatrick_type_6]=$'\U1F3FF'
59 # Various other combining characters. (Incomplete list; I selected ones that sound useful)
60 emoji2[combining_enclosing_circle]=$'\U20DD'
61 emoji2[combining_enclosing_square]=$'\U20DE'
62 emoji2[combining_enclosing_diamond]=$'\U20DF'
63 emoji2[combining_enclosing_circle_backslash]=$'\U20E0'
64 emoji2[combining_enclosing_screen]=$'\U20E2'
65 emoji2[combining_enclosing_keycap]=$'\U20E3'
66 emoji2[combining_enclosing_upward_pointing_triangle]=$'\U20E4'
67
68 # Easier access to skin tone modifiers
69 emoji_skintone[1_2]=$'\U1F3FB'
70 emoji_skintone[3]=$'\U1F3FC'
71 emoji_skintone[4]=$'\U1F3FD'
72 emoji_skintone[5]=$'\U1F3FE'
73 emoji_skintone[6]=$'\U1F3FF'
74
75 # Emoji groups
76 # These are stored in a single associative array, $emoji_groups, to avoid cluttering up the global
77 # namespace, and to allow adding additional group definitions at run time.
78 # The keys are the group names, and the values are whitespace-separated lists of emoji character names.
79 #
80 # These extra local arrays are used to allow more convenient formatting of the source code.
81
82 emoji_groups[fruits]="
83 tomato
84 aubergine
85 grapes
86 melon
87 watermelon
88 tangerine
89 banana
90 pineapple
91 red_apple
92 green_apple
93 peach
94 cherries
95 strawberry
96 lemon
97 pear
98 "
99
100 emoji_groups[vehicles]="
101 airplane
102 rocket
103 railway_car
104 high_speed_train
105 high_speed_train_with_bullet_nose
106 bus
107 ambulance
108 fire_engine
109 police_car
110 taxi
111 automobile
112 recreational_vehicle
113 delivery_truck
114 ship
115 speedboat
116 bicycle
117 helicopter
118 steam_locomotive
119 train
120 light_rail
121 tram
122 oncoming_bus
123 trolleybus
124 minibus
125 oncoming_police_car
126 oncoming_taxi
127 oncoming_automobile
128 articulated_lorry
129 tractor
130 monorail
131 mountain_railway
132 suspension_railway
133 mountain_cableway
134 aerial_tramway
135 rowboat
136 bicyclist
137 mountain_bicyclist
138 sailboat
139 "
140
141 emoji_groups[animals]="
142 snail
143 snake
144 horse
145 sheep
146 monkey
147 chicken
148 boar
149 elephant
150 octopus
151 spiral_shell
152 bug
153 ant
154 honeybee
155 lady_beetle
156 fish
157 tropical_fish
158 blowfish
159 turtle
160 hatching_chick
161 baby_chick
162 front_facing_baby_chick
163 bird
164 penguin
165 koala
166 poodle
167 bactrian_camel
168 dolphin
169 mouse_face
170 cow_face
171 tiger_face
172 rabbit_face
173 cat_face
174 dragon_face
175 spouting_whale
176 horse_face
177 monkey_face
178 dog_face
179 pig_face
180 frog_face
181 hamster_face
182 wolf_face
183 bear_face
184 panda_face
185 rat
186 mouse
187 ox
188 water_buffalo
189 cow
190 tiger
191 leopard
192 rabbit
193 cat
194 dragon
195 crocodile
196 whale
197 ram
198 goat
199 rooster
200 dog
201 pig
202 dromedary_camel
203 "
204
205 emoji_groups[faces]="
206 grinning_face_with_smiling_eyes
207 face_with_tears_of_joy
208 smiling_face_with_open_mouth
209 smiling_face_with_open_mouth_and_smiling_eyes
210 smiling_face_with_open_mouth_and_cold_sweat
211 smiling_face_with_open_mouth_and_tightly_closed_eyes
212 winking_face
213 smiling_face_with_smiling_eyes
214 face_savouring_delicious_food
215 relieved_face
216 smiling_face_with_heart_shaped_eyes
217 smirking_face
218 unamused_face
219 face_with_cold_sweat
220 pensive_face
221 confounded_face
222 face_throwing_a_kiss
223 kissing_face_with_closed_eyes
224 face_with_stuck_out_tongue_and_winking_eye
225 face_with_stuck_out_tongue_and_tightly_closed_eyes
226 disappointed_face
227 angry_face
228 pouting_face
229 crying_face
230 persevering_face
231 face_with_look_of_triumph
232 disappointed_but_relieved_face
233 fearful_face
234 weary_face
235 sleepy_face
236 tired_face
237 loudly_crying_face
238 face_with_open_mouth_and_cold_sweat
239 face_screaming_in_fear
240 astonished_face
241 flushed_face
242 dizzy_face
243 face_with_medical_mask
244 "
245
246 }
247
248 # Prints a random emoji character
249 #
250 # random_emoji [group]
251 #
252 function random_emoji() {
253 local group=$1
254 local names
255 if [[ -z "$group" || "$group" == "all" ]]; then
256 names=(${(k)emoji})
257 else
258 names=(${=emoji_groups[$group_name]})
259 fi
260 local list_size=$#names
261 local random_index=$(( ( RANDOM % $list_size ) + 1 ))
262 local name=${names[$random_index]}
263 echo ${emoji[$name]}
264 }
265
266 # Displays a listing of emoji with their names
267 #
268 # display_emoji [group]
269 #
270 function display_emoji() {
271 local group=$1
272 local names
273 if [[ -z "$group" || "$group" == "all" ]]; then
274 names=(${(k)emoji})
275 else
276 names=(${=emoji_groups[$group]})
277 fi
278 # The extra spaces in output here are a hack for readability, since some
279 # terminals treat these emoji chars as single-width.
280 for i in $names; do
281 printf '%s ' "$emoji[$i]"
282 done
283 print
284 for i in $names; do
285 echo "${emoji[$i]} = $i"
286 done
287 }
288
289
290
plugins/emoji/update_emoji.pl
File was created 1 #!/usr/bin/perl -w
2 #
3 # update_emoji.pl
4 #
5 # This script generates the emoji.plugin.zsh emoji definitions from the Unicode
6 # character data for the emoji characters.
7 #
8 # The data file can be found at http://unicode.org/Public/emoji/latest/emoji-data.txt
9 # as referenced in Unicode TR51 (http://www.unicode.org/reports/tr51/index.html).
10 #
11 # This is known to work with the data file from version 1.0. It may not work with later
12 # versions if the format changes. In particular, this reads line comments to get the
13 # emoji character name and unicode version.
14 #
15 # Country names have punctuation and other non-letter characters removed from their name,
16 # to avoid possible complications with having to escape the strings when using them as
17 # array subscripts. The definition file seems to use some combining characters like accents
18 # that get stripped during this process.
19
20 use strict;
21 use warnings;
22 use 5.010;
23 use autodie;
24
25 use Path::Class;
26 use File::Copy;
27
28 # Parse definitions out of the data file and convert
29 sub process_emoji_data_file {
30 my ( $infile, $outfilename ) = @_;
31 my $file = file($infile);
32 my $outfile = file($outfilename);
33 my $outfilebase = $outfile->basename();
34 my $tempfilename = "$outfilename.tmp";
35 my $tempfile = file($tempfilename);
36 my $outfh = $tempfile->openw();
37 $outfh->print("
38 # $outfilebase - Emoji character definitions for oh-my-zsh emoji plugin
39 #
40 # This file is auto-generated by update_emoji.pl. Do not edit it manually.
41 #
42 # This contains the definition for:
43 # \$emoji - which maps character names to Unicode characters
44 # \$emoji_flags - maps country names to Unicode flag characters using region indicators
45
46 # Main emoji
47 typeset -gAH emoji
48 # National flags
49 typeset -gAH emoji_flags
50 # Combining modifiers
51 typeset -gAH emoji_mod
52
53 ");
54
55 my $fh = $file->openr();
56 my $line_num = 0;
57 while ( my $line = $fh->getline() ) {
58 $line_num++;
59 $_ = $line;
60 # Skip all-comment lines (from the header) and blank lines
61 # (But don't strip comments on normal lines; we need to parse those for
62 # the emoji names.)
63 next if /^\s*#/ or /^\s*$/;
64
65 if (/^(\S.*?\S)\s*;\s*(\w+)\s*;\s*(\w+)\s*;\s*(\w+)\s*;\s*(\w.*?)\s*#\s*V(\S+)\s\(.*?\)\s*(\w.*\S)\s*$/) {
66 my ($code, $style, $level, $modifier_status, $sources, $version, $keycap_name)
67 = ($1, $2, $3, $4, $5, $6, $7);
68 #print "code=$code style=$style level=$level modifier_status=$modifier_status sources=$sources version=$version name=$keycap_name\n";
69 my @code_points = split /\s+/, $code;
70 my @sources = split /\s+/, $sources;
71
72 my $flag_country = "";
73 if ( $keycap_name =~ /^flag for (\S.*?)\s*$/) {
74 $flag_country = $1;
75 }
76
77 my $zsh_code = join '', map { "\\U$_" } @code_points;
78 # Convert keycap names to valid associative array names that do not require any
79 # quoting. Works fine for most stuff, but is clumsy for flags.
80 my $omz_name = lc($keycap_name);
81 $omz_name =~ s/[^A-Za-z0-9]/_/g;
82 my $zsh_flag_country = $flag_country;
83 $zsh_flag_country =~ s/[^\p{Letter}]/_/g;
84 if ($flag_country) {
85 $outfh->print("emoji_flags[$zsh_flag_country]=\$'$zsh_code'\n");
86 } else {
87 $outfh->print("emoji[$omz_name]=\$'$zsh_code'\n");
88 }
89 # Modifiers are included in both the main set and their separate map,
90 # because they have a standalone representation as a color swatch.
91 if ( $modifier_status == "modifier" ) {
92 $outfh->print("emoji_mod[$omz_name]=\$'$zsh_code'\n");
93 }
94 } else {
95 die "Failed parsing line $line_num: '$_'";
96 }
97 }
98 $fh->close();
99 $outfh->print("\n");
100 $outfh->close();
101
102 move($tempfilename, $outfilename)
103 or die "Failed moving temp file to $outfilename: $!";
104 }
105
106 my $datafile = "emoji-data.txt";
107 my $zsh_def_file = "emoji-char-definitions.zsh";
108 process_emoji_data_file($datafile, $zsh_def_file);
109
110 print "Updated definition file $zsh_def_file\n";
111
112
113
114
plugins/fasd/fasd.plugin.zsh
1 if [ $commands[fasd] ]; then # check if fasd is installed 1 if [ $commands[fasd] ]; then # check if fasd is installed
2 fasd_cache="${ZSH_CACHE_DIR}/fasd-init-cache" 2 fasd_cache="${ZSH_CACHE_DIR}/fasd-init-cache"
3 if [ "$(command -v fasd)" -nt "$fasd_cache" -o ! -s "$fasd_cache" ]; then 3 if [ "$(command -v fasd)" -nt "$fasd_cache" -o ! -s "$fasd_cache" ]; then
4 fasd --init auto >| "$fasd_cache" 4 fasd --init auto >| "$fasd_cache"
5 fi 5 fi
6 source "$fasd_cache" 6 source "$fasd_cache"
7 unset fasd_cache 7 unset fasd_cache
8
8 alias v='f -e vim' 9 alias v='f -e vim'
9 alias o='a -e open' 10 alias o='a -e open_command'
10 fi 11 fi
11
plugins/fbterm/fbterm.plugin.zsh
1 # start fbterm automatically in /dev/tty* 1 # start fbterm automatically in /dev/tty*
2 2
3 if [[ $(tty|grep -o '/dev/tty') = /dev/tty ]] ; then 3 if (( ${+commands[fbterm]} )); then
4 fbterm 4 if [[ "$TTY" = /dev/tty* ]] ; then
5 exit 5 fbterm && exit
6 fi
6 fi 7 fi
7 8
plugins/frontend-search/frontend-search.plugin.zsh
1 # frontend from terminal 1 # frontend from terminal
2 2
3 function frontend() { 3 function frontend() {
4 4
5 # get the open command
6 local open_cmd
7 if [[ $(uname -s) == 'Darwin' ]]; then
8 open_cmd='open'
9 else
10 open_cmd='xdg-open'
11 fi
12
13 # no keyword provided, simply show how call methods 5 # no keyword provided, simply show how call methods
14 if [[ $# -le 1 ]]; then 6 if [[ $# -le 1 ]]; then
15 echo "Please provide a search-content and a search-term for app.\nEx:\nfrontend <search-content> <search-term>\n" 7 echo "Please provide a search-content and a search-term for app.\nEx:\nfrontend <search-content> <search-term>\n"
16 return 1 8 return 1
17 fi 9 fi
18 10
19 # check whether the search engine is supported 11 # check whether the search engine is supported
20 if [[ ! $1 =~ '(jquery|mdn|compass|html5please|caniuse|aurajs|dartlang|qunit|fontello|bootsnipp|cssflow|codepen|unheap|bem|smacss|angularjs|reactjs|emberjs|stackoverflow)' ]]; 12 if [[ ! $1 =~ '(jquery|mdn|compass|html5please|caniuse|aurajs|dartlang|qunit|fontello|bootsnipp|cssflow|codepen|unheap|bem|smacss|angularjs|reactjs|emberjs|stackoverflow)' ]];
21 then 13 then
22 echo "Search valid search content $1 not supported." 14 echo "Search valid search content $1 not supported."
23 echo "Valid contents: (formats 'frontend <search-content>' or '<search-content>')" 15 echo "Valid contents: (formats 'frontend <search-content>' or '<search-content>')"
24 echo "* jquery" 16 echo "* jquery"
25 echo "* mdn" 17 echo "* mdn"
26 echo "* compass" 18 echo "* compass"
27 echo "* html5please" 19 echo "* html5please"
28 echo "* caniuse" 20 echo "* caniuse"
29 echo "* aurajs" 21 echo "* aurajs"
30 echo "* dartlang" 22 echo "* dartlang"
31 echo "* lodash" 23 echo "* lodash"
32 echo "* qunit" 24 echo "* qunit"
33 echo "* fontello" 25 echo "* fontello"
34 echo "* bootsnipp" 26 echo "* bootsnipp"
35 echo "* cssflow" 27 echo "* cssflow"
36 echo "* codepen" 28 echo "* codepen"
37 echo "* unheap" 29 echo "* unheap"
38 echo "* bem" 30 echo "* bem"
39 echo "* smacss" 31 echo "* smacss"
40 echo "* angularjs" 32 echo "* angularjs"
41 echo "* reactjs" 33 echo "* reactjs"
42 echo "* emberjs" 34 echo "* emberjs"
43 echo "* stackoverflow" 35 echo "* stackoverflow"
44 echo "" 36 echo ""
45 37
46 return 1 38 return 1
47 fi 39 fi
48 40
49 local url="http://" 41 local url="http://"
50 local query="" 42 local query=""
51 43
52 case "$1" in 44 case "$1" in
53 "jquery") 45 "jquery")
54 url="${url}api.jquery.com" 46 url="${url}api.jquery.com"
55 url="${url}/?s=$2" ;; 47 url="${url}/?s=$2" ;;
56 "mdn") 48 "mdn")
57 url="${url}developer.mozilla.org" 49 url="${url}developer.mozilla.org"
58 url="${url}/search?q=$2" ;; 50 url="${url}/search?q=$2" ;;
59 "compass") 51 "compass")
60 url="${url}compass-style.org" 52 url="${url}compass-style.org"
61 url="${url}/search?q=$2" ;; 53 url="${url}/search?q=$2" ;;
62 "html5please") 54 "html5please")
63 url="${url}html5please.com" 55 url="${url}html5please.com"
64 url="${url}/#$2" ;; 56 url="${url}/#$2" ;;
65 "caniuse") 57 "caniuse")
66 url="${url}caniuse.com" 58 url="${url}caniuse.com"
67 url="${url}/#search=$2" ;; 59 url="${url}/#search=$2" ;;
68 "aurajs") 60 "aurajs")
69 url="${url}aurajs.com" 61 url="${url}aurajs.com"
70 url="${url}/api/#stq=$2" ;; 62 url="${url}/api/#stq=$2" ;;
71 "dartlang") 63 "dartlang")
72 url="${url}api.dartlang.org/apidocs/channels/stable/dartdoc-viewer" 64 url="${url}api.dartlang.org/apidocs/channels/stable/dartdoc-viewer"
73 url="${url}/dart-$2" ;; 65 url="${url}/dart-$2" ;;
74 "qunit") 66 "qunit")
75 url="${url}api.qunitjs.com" 67 url="${url}api.qunitjs.com"
76 url="${url}/?s=$2" ;; 68 url="${url}/?s=$2" ;;
77 "fontello") 69 "fontello")
78 url="${url}fontello.com" 70 url="${url}fontello.com"
79 url="${url}/#search=$2" ;; 71 url="${url}/#search=$2" ;;
80 "bootsnipp") 72 "bootsnipp")
81 url="${url}bootsnipp.com" 73 url="${url}bootsnipp.com"
82 url="${url}/search?q=$2" ;; 74 url="${url}/search?q=$2" ;;
83 "cssflow") 75 "cssflow")
84 url="${url}cssflow.com" 76 url="${url}cssflow.com"
85 url="${url}/search?q=$2" ;; 77 url="${url}/search?q=$2" ;;
86 "codepen") 78 "codepen")
87 url="${url}codepen.io" 79 url="${url}codepen.io"
88 url="${url}/search?q=$2" ;; 80 url="${url}/search?q=$2" ;;
89 "unheap") 81 "unheap")
90 url="${url}www.unheap.com" 82 url="${url}www.unheap.com"
91 url="${url}/?s=$2" ;; 83 url="${url}/?s=$2" ;;
92 "bem") 84 "bem")
93 url="${url}google.com" 85 url="${url}google.com"
94 url="${url}/search?as_q=$2&as_sitesearch=bem.info" ;; 86 url="${url}/search?as_q=$2&as_sitesearch=bem.info" ;;
95 "smacss") 87 "smacss")
96 url="${url}google.com" 88 url="${url}google.com"
97 url="${url}/search?as_q=$2&as_sitesearch=smacss.com" ;; 89 url="${url}/search?as_q=$2&as_sitesearch=smacss.com" ;;
98 "angularjs") 90 "angularjs")
99 url="${url}google.com" 91 url="${url}google.com"
100 url="${url}/search?as_q=$2&as_sitesearch=angularjs.org" ;; 92 url="${url}/search?as_q=$2&as_sitesearch=angularjs.org" ;;
101 "reactjs") 93 "reactjs")
102 url="${url}google.com" 94 url="${url}google.com"
103 url="${url}/search?as_q=$2&as_sitesearch=facebook.github.io/react" ;; 95 url="${url}/search?as_q=$2&as_sitesearch=facebook.github.io/react" ;;
104 "emberjs") 96 "emberjs")
105 url="${url}emberjs.com" 97 url="${url}emberjs.com"
106 url="${url}/api/#stq=$2&stp=1" ;; 98 url="${url}/api/#stq=$2&stp=1" ;;
107 "stackoverflow") 99 "stackoverflow")
108 url="${url}stackoverflow.com" 100 url="${url}stackoverflow.com"
109 url="${url}/search?q=$2" ;; 101 url="${url}/search?q=$2" ;;
110 *) echo "INVALID PARAM!" 102 *) echo "INVALID PARAM!"
111 return ;; 103 return ;;
112 esac 104 esac
113 105
114 echo "$url" 106 echo "$url"
115 107
116 $open_cmd "$url" 108 open_command "$url"
117 109
118 } 110 }
119 111
120 # javascript 112 # javascript
121 alias jquery='frontend jquery' 113 alias jquery='frontend jquery'
122 alias mdn='frontend mdn' 114 alias mdn='frontend mdn'
123 115
124 # pre processors frameworks 116 # pre processors frameworks
125 alias compassdoc='frontend compass' 117 alias compassdoc='frontend compass'
126 118
127 # important links 119 # important links
128 alias html5please='frontend html5please' 120 alias html5please='frontend html5please'
129 alias caniuse='frontend caniuse' 121 alias caniuse='frontend caniuse'
130 122
131 # components and libraries 123 # components and libraries
132 alias aurajs='frontend aurajs' 124 alias aurajs='frontend aurajs'
133 alias dartlang='frontend dartlang' 125 alias dartlang='frontend dartlang'
134 alias lodash='frontend lodash' 126 alias lodash='frontend lodash'
135 127
136 #tests 128 #tests
137 alias qunit='frontend qunit' 129 alias qunit='frontend qunit'
138 130
139 #fonts 131 #fonts
140 alias fontello='frontend fontello' 132 alias fontello='frontend fontello'
141 133
142 # snippets 134 # snippets
143 alias bootsnipp='frontend bootsnipp' 135 alias bootsnipp='frontend bootsnipp'
144 alias cssflow='frontend cssflow' 136 alias cssflow='frontend cssflow'
145 alias codepen='frontend codepen' 137 alias codepen='frontend codepen'
146 alias unheap='frontend unheap' 138 alias unheap='frontend unheap'
147 139
148 # css architecture 140 # css architecture
149 alias bem='frontend bem' 141 alias bem='frontend bem'
150 alias smacss='frontend smacss' 142 alias smacss='frontend smacss'
151 143
152 # frameworks 144 # frameworks
153 alias angularjs='frontend angularjs' 145 alias angularjs='frontend angularjs'
154 alias reactjs='frontend reactjs' 146 alias reactjs='frontend reactjs'
155 alias emberjs='frontend emberjs' 147 alias emberjs='frontend emberjs'
156 148
157 # search websites 149 # search websites
158 alias stackoverflow='frontend stackoverflow' 150 alias stackoverflow='frontend stackoverflow'
159 151
plugins/jira/jira.plugin.zsh
1 # To use: add a .jira-url file in the base of your project 1 # To use: add a .jira-url file in the base of your project
2 # You can also set JIRA_URL in your .zshrc or put .jira-url in your home directory 2 # You can also set JIRA_URL in your .zshrc or put .jira-url in your home directory
3 # .jira-url in the current directory takes precedence 3 # .jira-url in the current directory takes precedence
4 # 4 #
5 # If you use Rapid Board, set: 5 # If you use Rapid Board, set:
6 #JIRA_RAPID_BOARD="true" 6 #JIRA_RAPID_BOARD="true"
7 # in you .zshrc 7 # in you .zshrc
8 # 8 #
9 # Setup: cd to/my/project 9 # Setup: cd to/my/project
10 # echo "https://name.jira.com" >> .jira-url 10 # echo "https://name.jira.com" >> .jira-url
11 # Usage: jira # opens a new issue 11 # Usage: jira # opens a new issue
12 # jira ABC-123 # Opens an existing issue 12 # jira ABC-123 # Opens an existing issue
13 open_jira_issue () { 13 open_jira_issue () {
14 local open_cmd
15 if [[ "$OSTYPE" = darwin* ]]; then
16 open_cmd='open'
17 else
18 open_cmd='xdg-open'
19 fi
20
21 if [ -f .jira-url ]; then 14 if [ -f .jira-url ]; then
22 jira_url=$(cat .jira-url) 15 jira_url=$(cat .jira-url)
23 elif [ -f ~/.jira-url ]; then 16 elif [ -f ~/.jira-url ]; then
24 jira_url=$(cat ~/.jira-url) 17 jira_url=$(cat ~/.jira-url)
25 elif [[ "x$JIRA_URL" != "x" ]]; then 18 elif [[ "x$JIRA_URL" != "x" ]]; then
26 jira_url=$JIRA_URL 19 jira_url=$JIRA_URL
27 else 20 else
28 echo "JIRA url is not specified anywhere." 21 echo "JIRA url is not specified anywhere."
29 return 1 22 return 1
30 fi 23 fi
31 24
32 if [ -f .jira-prefix ]; then 25 if [ -f .jira-prefix ]; then
33 jira_prefix=$(cat .jira-prefix) 26 jira_prefix=$(cat .jira-prefix)
34 elif [ -f ~/.jira-prefix ]; then 27 elif [ -f ~/.jira-prefix ]; then
35 jira_prefix=$(cat ~/.jira-prefix) 28 jira_prefix=$(cat ~/.jira-prefix)
36 else 29 else
37 jira_prefix="" 30 jira_prefix=""
38 fi 31 fi
39 32
40 if [ -z "$1" ]; then 33 if [ -z "$1" ]; then
41 echo "Opening new issue" 34 echo "Opening new issue"
42 $open_cmd "${jira_url}/secure/CreateIssue!default.jspa" 35 open_command "${jira_url}/secure/CreateIssue!default.jspa"
43 elif [[ "$1" = "assigned" || "$1" = "reported" ]]; then 36 elif [[ "$1" = "assigned" || "$1" = "reported" ]]; then
44 jira_query $@ 37 jira_query $@
45 else 38 else
46 local addcomment='' 39 local addcomment=''
47 if [[ "$2" == "m" ]]; then 40 if [[ "$2" == "m" ]]; then
48 addcomment="#add-comment" 41 addcomment="#add-comment"
49 echo "Add comment to issue #$1" 42 echo "Add comment to issue #$1"
50 else 43 else
51 echo "Opening issue #$1" 44 echo "Opening issue #$1"
52 fi 45 fi
53 46
54 if [[ "x$JIRA_RAPID_BOARD" = "xtrue" ]]; then 47 if [[ "x$JIRA_RAPID_BOARD" = "xtrue" ]]; then
55 $open_cmd "$jira_url/issues/$jira_prefix$1$addcomment" 48 open_command "$jira_url/issues/$jira_prefix$1$addcomment"
56 else 49 else
57 $open_cmd "$jira_url/browse/$jira_prefix$1$addcomment" 50 open_command "$jira_url/browse/$jira_prefix$1$addcomment"
58 fi 51 fi
59 fi 52 fi
60 } 53 }
61 54
62 jira_name () { 55 jira_name () {
63 if [[ -z "$1" ]]; then 56 if [[ -z "$1" ]]; then
64 if [[ "x${JIRA_NAME}" != "x" ]]; then 57 if [[ "x${JIRA_NAME}" != "x" ]]; then
65 jira_name=${JIRA_NAME} 58 jira_name=${JIRA_NAME}
66 else 59 else
67 echo "JIRA_NAME not specified" 60 echo "JIRA_NAME not specified"
68 return 1 61 return 1
69 fi 62 fi
70 else 63 else
71 jira_name=$@ 64 jira_name=$@
72 fi 65 fi
73 } 66 }
74 67
75 jira_query () { 68 jira_query () {
76 verb="$1" 69 verb="$1"
77 if [[ "${verb}" = "reported" ]]; then 70 if [[ "${verb}" = "reported" ]]; then
78 lookup=reporter 71 lookup=reporter
79 preposition=by 72 preposition=by
80 elif [[ "${verb}" = "assigned" ]]; then 73 elif [[ "${verb}" = "assigned" ]]; then
81 lookup=assignee 74 lookup=assignee
82 preposition=to 75 preposition=to
83 else 76 else
84 echo "not a valid lookup $verb" 77 echo "not a valid lookup $verb"
85 return 1 78 return 1
86 fi 79 fi
87 shift 1 80 shift 1
88 jira_name $@ 81 jira_name $@
89 if [[ $? = 1 ]]; then 82 if [[ $? = 1 ]]; then
90 return 1 83 return 1
91 fi 84 fi
92 echo "Browsing issues ${verb} ${preposition} ${jira_name}" 85 echo "Browsing issues ${verb} ${preposition} ${jira_name}"
93 $open_cmd "${jira_url}/secure/IssueNavigator.jspa?reset=true&jqlQuery=${lookup}+%3D+%22${jira_name}%22+AND+resolution+%3D+unresolved+ORDER+BY+priority+DESC%2C+created+ASC" 86 open_command "${jira_url}/secure/IssueNavigator.jspa?reset=true&jqlQuery=${lookup}+%3D+%22${jira_name}%22+AND+resolution+%3D+unresolved+ORDER+BY+priority+DESC%2C+created+ASC"
94 } 87 }
95 88
96 alias jira='open_jira_issue' 89 alias jira='open_jira_issue'
97 90
98 91
plugins/last-working-dir/last-working-dir.plugin.zsh
1 #!/usr/bin/env zsh 1 #!/usr/bin/env zsh
2 # Keeps track of the last used working directory and automatically jumps 2 # Keeps track of the last used working directory and automatically jumps
3 # into it for new shells. 3 # into it for new shells.
4 4
5 # Flag indicating if we've previously jumped to last directory. 5 # Flag indicating if we've previously jumped to last directory.
6 typeset -g ZSH_LAST_WORKING_DIRECTORY 6 typeset -g ZSH_LAST_WORKING_DIRECTORY
7 mkdir -p $ZSH_CACHE_DIR 7 mkdir -p $ZSH_CACHE_DIR
8 cache_file="$ZSH_CACHE_DIR/last-working-dir" 8 cache_file="$ZSH_CACHE_DIR/last-working-dir"
9 9
10 # Updates the last directory once directory is changed. 10 # Updates the last directory once directory is changed.
11 function chpwd() { 11 chpwd_functions+=(chpwd_last_working_dir)
12 function chpwd_last_working_dir() {
12 # Use >| in case noclobber is set to avoid "file exists" error 13 # Use >| in case noclobber is set to avoid "file exists" error
13 pwd >| "$cache_file" 14 pwd >| "$cache_file"
14 } 15 }
15 16
16 # Changes directory to the last working directory. 17 # Changes directory to the last working directory.
17 function lwd() { 18 function lwd() {
18 [[ ! -r "$cache_file" ]] || cd "`cat "$cache_file"`" 19 [[ ! -r "$cache_file" ]] || cd "`cat "$cache_file"`"
19 } 20 }
20 21
21 # Automatically jump to last working directory unless this isn't the first time 22 # Automatically jump to last working directory unless this isn't the first time
22 # this plugin has been loaded. 23 # this plugin has been loaded.
23 if [[ -z "$ZSH_LAST_WORKING_DIRECTORY" ]]; then 24 if [[ -z "$ZSH_LAST_WORKING_DIRECTORY" ]]; then
24 lwd 2>/dev/null && ZSH_LAST_WORKING_DIRECTORY=1 || true 25 lwd 2>/dev/null && ZSH_LAST_WORKING_DIRECTORY=1 || true
25 fi 26 fi
26 27
plugins/lighthouse/lighthouse.plugin.zsh
1 # To use: add a .lighthouse file into your directory with the URL to the 1 # To use: add a .lighthouse file into your directory with the URL to the
2 # individual project. For example: 2 # individual project. For example:
3 # https://rails.lighthouseapp.com/projects/8994 3 # https://rails.lighthouseapp.com/projects/8994
4 # Example usage: http://screencast.com/t/ZDgwNDUwNT 4 # Example usage: http://screencast.com/t/ZDgwNDUwNT
5 open_lighthouse_ticket () { 5 open_lighthouse_ticket () {
6 if [ ! -f .lighthouse-url ]; then 6 if [ ! -f .lighthouse-url ]; then
7 echo "There is no .lighthouse-url file in the current directory..." 7 echo "There is no .lighthouse-url file in the current directory..."
8 return 0; 8 return 0;
9 else 9 else
10 lighthouse_url=$(cat .lighthouse-url); 10 lighthouse_url=$(cat .lighthouse-url);
11 echo "Opening ticket #$1"; 11 echo "Opening ticket #$1";
12 `open $lighthouse_url/tickets/$1`; 12 open_command "$lighthouse_url/tickets/$1";
13 fi 13 fi
14 } 14 }
15 15
16 alias lho='open_lighthouse_ticket' 16 alias lho='open_lighthouse_ticket'
17 17
plugins/n98-magerun/n98-magerun.plugin.zsh
File was created 1 # ------------------------------------------------------------------------------
2 # FILE: n98-magerun.plugin.zsh
3 # DESCRIPTION: oh-my-zsh n98-magerun plugin file. Adapted from composer plugin
4 # AUTHOR: Andrew Dwyer (andrewrdwyer at gmail dot com)
5 # VERSION: 1.0.0
6 # ------------------------------------------------------------------------------
7
8 # n98-magerun basic command completion
9 _n98_magerun_get_command_list () {
10 $_comp_command1 --no-ansi | sed "1,/Available commands/d" | awk '/^ +[a-z\-:]+/ { print $1 }'
11 }
12
13
14 _n98_magerun () {
15 _arguments '1: :->command' '*:optional arg:_files'
16
17 case $state in
18 command)
19 compadd $(_n98_magerun_get_command_list)
20 ;;
21 *)
22 esac
23 }
24
25 compdef _n98_magerun n98-magerun.phar
26 compdef _n98_magerun n98-magerun
27
28 # Aliases
29 alias n98='n98-magerun.phar'
30 alias mage='n98-magerun.phar'
31 alias magefl='n98-magerun.phar cache:flush'
32
33 # Install n98-magerun into the current directory
34 alias mage-get='wget https://raw.github.com/netz98/n98-magerun/master/n98-magerun.phar'
35
plugins/node/node.plugin.zsh
1 # Open the node api for your current version to the optional section. 1 # Open the node api for your current version to the optional section.
2 # TODO: Make the section part easier to use. 2 # TODO: Make the section part easier to use.
3 function node-docs { 3 function node-docs {
4 # get the open command 4 open_command "http://nodejs.org/docs/$(node --version)/api/all.html#all_$1"
5 local open_cmd
6 if [[ "$OSTYPE" = darwin* ]]; then
7 open_cmd='open'
8 else
9 open_cmd='xdg-open'
10 fi
11
12 $open_cmd "http://nodejs.org/docs/$(node --version)/api/all.html#all_$1"
13 } 5 }
14 6
plugins/systemd/systemd.plugin.zsh
1 user_commands=( 1 user_commands=(
2 list-units is-active status show help list-unit-files 2 list-units is-active status show help list-unit-files
3 is-enabled list-jobs show-environment) 3 is-enabled list-jobs show-environment cat)
4 4
5 sudo_commands=( 5 sudo_commands=(
6 start stop reload restart try-restart isolate kill 6 start stop reload restart try-restart isolate kill
7 reset-failed enable disable reenable preset mask unmask 7 reset-failed enable disable reenable preset mask unmask
8 link load cancel set-environment unset-environment) 8 link load cancel set-environment unset-environment
9 edit)
9 10
10 for c in $user_commands; do; alias sc-$c="systemctl $c"; done 11 for c in $user_commands; do; alias sc-$c="systemctl $c"; done
11 for c in $sudo_commands; do; alias sc-$c="sudo systemctl $c"; done 12 for c in $sudo_commands; do; alias sc-$c="sudo systemctl $c"; done
12 13
plugins/terraform/README.md
File was created 1 ## atom
2
3 Plugin for Terraform, a tool from Hashicorp for managing infrastructure safely and efficiently.
4
5 ### Requirements
6
7 * [Terraform](https://terraform.io/)
8
9 ### Usage
10
11 * Type `terraform` into your prompt and hit `TAB` to see available completion options
12
plugins/terraform/_terraform
File was created 1 #compdef terraform
2
3 local -a _terraform_cmds
4 _terraform_cmds=(
5 'apply:Builds or changes infrastructure'
6 'destroy:Destroy Terraform-managed infrastructure'
7 'get:Download and install modules for the configuration'
8 'graph:Create a visual graph of Terraform resources'
9 'init:Initializes Terraform configuration from a module'
10 'output:Read an output from a state file'
11 'plan:Generate and show an execution plan'
12 'pull:Refreshes the local state copy from the remote server'
13 'push:Uploads the local state to the remote server'
14 'refresh:Update local state file against real resources'
15 'remote:Configures remote state management'
16 'show:Inspect Terraform state or plan'
17 'taint:Manually forcing a destroy and recreate on the next plan/apply'
18 'version:Prints the Terraform version'
19 )
20
21 __apply() {
22 _arguments \
23 '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]' \
24 '-input=[(true) Ask for input for variables if not directly set.]' \
25 '-no-color[If specified, output will not contain any color.]' \
26 '-refresh=[(true) Update state prior to checking for differences. This has no effect if a plan file is given to apply.]' \
27 '-state=[(path) Path to read and save state (unless state-out is specified). Defaults to "terraform.tfstate".]' \
28 '-state-out=[(path) Path to write state to that is different than "-state". This can be used to preserve the old state.]' \
29 '-target=[(resource) A Resource Address to target. Operation will be limited to this resource and its dependencies. This flag can be used multiple times.]' \
30 '-var[("foo=bar") Set a variable in the Terraform configuration. This flag can be set multiple times.]' \
31 '-var-file=[(path) Set variables in the Terraform configuration from a file. If "terraform.tfvars" is present, it will be automatically loaded if this flag is not specified.]'
32 }
33
34 __destroy() {
35 _arguments \
36 '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]' \
37 '-force[If set, then the destroy confirmation will not be shown.]' \
38 '-input=[(true) Ask for input for variables if not directly set.]' \
39 '-no-color[If specified, output will not contain any color.]' \
40 '-refresh=[(true) Update state prior to checking for differences. This has no effect if a plan file is given to apply.]' \
41 '-state=[(path) Path to read and save state (unless state-out is specified). Defaults to "terraform.tfstate".]' \
42 '-state-out=[(path) Path to write state to that is different than "-state". This can be used to preserve the old state.]' \
43 '-target=[(resource) Instead of affecting "dependencies" will instead also destroy any resources that depend on the target(s) specified.]' \
44 '-var[("foo=bar") Set a variable in the Terraform configuration. This flag can be set multiple times.]' \
45 '-var-file=[(path) Set variables in the Terraform configuration from a file. If "terraform.tfvars" is present, it will be automatically loaded if this flag is not specified.]'
46 }
47
48 __get() {
49 _arguments \
50 '-update=[(false) If true, modules already downloaded will be checked for updates and updated if necessary.]'
51 }
52
53 __graph() {
54 _arguments \
55 '-draw-cycles[Highlight any cycles in the graph with colored edges. This helps when diagnosing cycle errors.]' \
56 '-module-depth=[(n) The maximum depth to expand modules. By default this is zero, which will not expand modules at all.]' \
57 '-verbose[Generate a verbose, "worst-case" graph, with all nodes for potential operations in place.]'
58 }
59
60 __init() {
61 _arguments \
62 '-address=[(url) URL of the remote storage server. Required for HTTP backend, optional for Atlas and Consul.]' \
63 '-access-token=[(token) Authentication token for state storage server. Required for Atlas backend, optional for Consul.]' \
64 '-backend=[(atlas) Specifies the type of remote backend. Must be one of Atlas, Consul, or HTTP. Defaults to atlas.]' \
65 '-name=[(name) Name of the state file in the state storage server. Required for Atlas backend.]' \
66 '-path=[(path) Path of the remote state in Consul. Required for the Consul backend.]'
67 }
68
69 __output() {
70 _arguments \
71 '-state=[(path) Path to the state file to read. Defaults to "terraform.tfstate".]' \
72 '-module=[(module_name) The module path which has needed output. By default this is the root path. Other modules can be specified by a period-separated list.]'
73 }
74
75 __plan() {
76 _arguments \
77 '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with" .backup" extension. Set to "-" to disable backup.]' \
78 '-destroy[If set, a plan will be generated to destroy all resources managed by the given configuration and state.]' \
79 '-detailed-exitcode[Return a detailed exit code when the command exits. When provided, this argument changes the exit codes and their meanings to provide more granular information about what the resulting plan contains]' \
80 '-input=[(true) Ask for input for variables if not directly set.]' \
81 '-module-depth=[(n) Specifies the depth of modules to show in the output. This does not affect the plan itself, only the output shown. By default, this is zero. -1 will expand all.]' \
82 '-no-color[If specified, output will not contain any color.]' \
83 '-out=[(path) Write a plan file to the given path. This can be used as input to the "apply" command.]' \
84 '-refresh=[(true) Update state prior to checking for differences.]' \
85 '-state=[(statefile) Path to a Terraform state file to use to look up Terraform-managed resources. By default it will use the state "terraform.tfstate" if it exists.]' \
86 '-target=[(resource) A Resource Address to target. Operation will be limited to this resource and its dependencies. This flag can be used multiple times.]' \
87 '-var[("foo=bar") Set a variable in the Terraform configuration. This flag can be set multiple times.]' \
88 '-var-file=[(path) Set variables in the Terraform configuration from a file. If "terraform.tfvars" is present, it will be automatically loaded if this flag is not specified.]'
89 }
90
91 __push() {
92 _arguments \
93 '-atlas-address=[(url) An alternate address to an Atlas instance. Defaults to https://atlas.hashicorp.com.]' \
94 '-upload-modules=[(true) If true (default), then the modules being used are all locked at their current checkout and uploaded completely to Atlas. This prevents Atlas from running terraform get for you.]' \
95 '-name=[(name) Name of the infrastructure configuration in Atlas. The format of this is: "username/name" so that you can upload configurations not just to your account but to other accounts and organizations. This setting can also be set in the configuration in the Atlas section.]' \
96 '-no-color[Disables output with coloring]' \
97 '-overwrite=[(foo) Marks a specific variable to be updated on Atlas. Normally, if a variable is already set in Atlas, Terraform will not send the local value (even if it is different). This forces it to send the local value to Atlas. This flag can be repeated multiple times.]' \
98 '-token=[(token) Atlas API token to use to authorize the upload. If blank or unspecified, the ATLAS_TOKEN environmental variable will be used.]' \
99 '-var=[("foo=bar") Set the value of a variable for the Terraform configuration.]' \
100 '-var-file=[(foo) Set the value of variables using a variable file.]' \
101 '-vcs=[(true) If true (default), then Terraform will detect if a VCS is in use, such as Git, and will only upload files that are comitted to version control. If no version control system is detected, Terraform will upload all files in path (parameter to the command).]'
102 }
103
104 __refresh() {
105 _arguments \
106 '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]' \
107 '-no-color[If specified, output will not contain any color.]' \
108 '-state=[(path) Path to read and save state (unless state-out is specified). Defaults to "terraform.tfstate".]' \
109 '-state-out=[(path) Path to write state to that is different than "-state". This can be used to preserve the old state.]' \
110 '-target=[(resource) A Resource Address to target. Operation will be limited to this resource and its dependencies. This flag can be used multiple times.]' \
111 '-var[("foo=bar") Set a variable in the Terraform configuration. This flag can be set multiple times.]' \
112 '-var-file=[(path) Set variables in the Terraform configuration from a file. If "terraform.tfvars" is present, it will be automatically loaded if this flag is not specified.]'
113 }
114
115 __remote() {
116 _arguments \
117 '-address=[(url) URL of the remote storage server. Required for HTTP backend, optional for Atlas and Consul.]' \
118 '-access-token=[(token) Authentication token for state storage server. Required for Atlas backend, optional for Consul.]' \
119 '-backend=[(atlas) Specifies the type of remote backend. Must be one of Atlas, Consul, or HTTP. Defaults to atlas.]' \
120 '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]' \
121 '-disable[Disables remote state management and migrates the state to the -state path.]' \
122 '-name=[(name) Name of the state file in the state storage server. Required for Atlas backend.]' \
123 '-path=[(path) Path of the remote state in Consul. Required for the Consul backend.]' \
124 '-pull=[(true) Controls if the remote state is pulled before disabling. This defaults to true to ensure the latest state is cached before disabling.]' \
125 '-state=[(path) Path to read and save state (unless state-out is specified). Defaults to "terraform.tfstate".]'
126 }
127
128 __show() {
129 _arguments \
130 '-module-depth=[(n) The maximum depth to expand modules. By default this is zero, which will not expand modules at all.]' \
131 '-no-color[If specified, output will not contain any color.]'
132 }
133
134 __taint() {
135 _arguments \
136 '-allow-missing[If specified, the command will succeed (exit code 0) even if the resource is missing.]' \
137 '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]' \
138 '-module=[(path) The module path where the resource lives. By default this will be root. Child modules can be specified by names. Ex. "consul" or "consul.vpc" (nested modules).]' \
139 '-no-color[If specified, output will not contain any color.]' \
140 '-state=[(path) Path to read and save state (unless state-out is specified). Defaults to "terraform.tfstate".]' \
141 '-state-out=[(path) Path to write updated state file. By default, the "-state" path will be used.]'
142 }
143
144 _arguments '*:: :->command'
145
146 if (( CURRENT == 1 )); then
147 _describe -t commands "terraform command" _terraform_cmds
148 return
149 fi
150
151 local -a _command_args
152 case "$words[1]" in
153 apply)
154 __apply ;;
155 destroy)
156 __destroy ;;
157 get)
158 __get ;;
159 graph)
160 __graph ;;
161 init)
162 __init ;;
163 output)
164 __output ;;
165 plan)
166 __plan ;;
167 push)
168 __push ;;
169 refresh)
170 __refresh ;;
171 remote)
172 __remote ;;
173 show)
174 __show ;;
175 taint)
176 __taint ;;
177 esac
178
plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh
1 virtualenvwrapper='virtualenvwrapper.sh' 1 virtualenvwrapper='virtualenvwrapper.sh'
2 2
3 if (( $+commands[$virtualenvwrapper] )); then 3 if (( $+commands[$virtualenvwrapper] )); then
4 function { 4 function {
5 setopt local_options 5 setopt local_options
6 unsetopt equals 6 unsetopt equals
7 source ${${virtualenvwrapper}:c} 7 source ${${virtualenvwrapper}:c}
8 } 8 }
9 elif [[ -f "/etc/bash_completion.d/virtualenvwrapper" ]]; then 9 elif [[ -f "/etc/bash_completion.d/virtualenvwrapper" ]]; then
10 function { 10 function {
11 setopt local_options 11 setopt local_options
12 unsetopt equals 12 unsetopt equals
13 virtualenvwrapper="/etc/bash_completion.d/virtualenvwrapper" 13 virtualenvwrapper="/etc/bash_completion.d/virtualenvwrapper"
14 source "/etc/bash_completion.d/virtualenvwrapper" 14 source "/etc/bash_completion.d/virtualenvwrapper"
15 } 15 }
16 else 16 else
17 print "zsh virtualenvwrapper plugin: Cannot find ${virtualenvwrapper}.\n"\ 17 print "[oh-my-zsh] virtualenvwrapper plugin: Cannot find ${virtualenvwrapper}.\n"\
18 "Please install with \`pip install virtualenvwrapper\`" >&2 18 "Please install with \`pip install virtualenvwrapper\`" >&2
19 return 19 return
20 fi 20 fi
21 if ! type workon &>/dev/null; then 21 if ! type workon &>/dev/null; then
22 print "zsh virtualenvwrapper plugin: shell function 'workon' not defined.\n"\ 22 print "[oh-my-zsh] virtualenvwrapper plugin: shell function 'workon' not defined.\n"\
23 "Please check ${virtualenvwrapper}" >&2 23 "Please check ${virtualenvwrapper}" >&2
24 return 24 return
25 fi 25 fi
26 26
27 if [[ "$WORKON_HOME" == "" ]]; then 27 if [[ "$WORKON_HOME" == "" ]]; then
28 print "\$WORKON_HOME is not defined so ZSH plugin virtualenvwrapper will not work" >&2 28 print "[oh-my-zsh] \$WORKON_HOME is not defined so plugin virtualenvwrapper will not work" >&2
29 return 29 return
30 fi 30 fi
31 31
32 if [[ ! $DISABLE_VENV_CD -eq 1 ]]; then 32 if [[ ! $DISABLE_VENV_CD -eq 1 ]]; then
33 # Automatically activate Git projects' virtual environments based on the 33 # Automatically activate Git projects or other customized virtualenvwrapper projects based on the
34 # directory name of the project. Virtual environment name can be overridden 34 # directory name of the project. Virtual environment name can be overridden
35 # by placing a .venv file in the project root with a virtualenv name in it 35 # by placing a .venv file in the project root with a virtualenv name in it.
36 function workon_cwd { 36 function workon_cwd {
37 if [ ! $WORKON_CWD ]; then 37 if [[ -z "$WORKON_CWD" ]]; then
38 WORKON_CWD=1 38 local WORKON_CWD=1
39 # Check if this is a Git repo 39 # Check if this is a Git repo
40 local GIT_REPO_ROOT=""
41 local GIT_TOPLEVEL="$(git rev-parse --show-toplevel 2> /dev/null)"
42 if [[ $? == 0 ]]; then
43 GIT_REPO_ROOT="$GIT_TOPLEVEL"
44 fi
40 # Get absolute path, resolving symlinks 45 # Get absolute path, resolving symlinks
41 PROJECT_ROOT="${PWD:A}" 46 local PROJECT_ROOT="${PWD:A}"
42 while [[ "$PROJECT_ROOT" != "/" && ! -e "$PROJECT_ROOT/.venv" ]]; do 47 while [[ "$PROJECT_ROOT" != "/" && ! -e "$PROJECT_ROOT/.venv" \
48 && ! -d "$PROJECT_ROOT/.git" && "$PROJECT_ROOT" != "$GIT_REPO_ROOT" ]]; do
43 PROJECT_ROOT="${PROJECT_ROOT:h}" 49 PROJECT_ROOT="${PROJECT_ROOT:h}"
44 done 50 done
45 if [[ "$PROJECT_ROOT" == "/" ]]; then 51 if [[ "$PROJECT_ROOT" == "/" ]]; then
46 PROJECT_ROOT="." 52 PROJECT_ROOT="."
47 fi 53 fi
48 # Check for virtualenv name override 54 # Check for virtualenv name override
49 if [[ -f "$PROJECT_ROOT/.venv" ]]; then 55 if [[ -f "$PROJECT_ROOT/.venv" ]]; then
50 ENV_NAME=`cat "$PROJECT_ROOT/.venv"` 56 ENV_NAME="$(cat "$PROJECT_ROOT/.venv")"
51 elif [[ -f "$PROJECT_ROOT/.venv/bin/activate" ]];then 57 elif [[ -f "$PROJECT_ROOT/.venv/bin/activate" ]];then
52 ENV_NAME="$PROJECT_ROOT/.venv" 58 ENV_NAME="$PROJECT_ROOT/.venv"
53 elif [[ "$PROJECT_ROOT" != "." ]]; then 59 elif [[ "$PROJECT_ROOT" != "." ]]; then
54 ENV_NAME="${PROJECT_ROOT:t}" 60 ENV_NAME="${PROJECT_ROOT:t}"
55 else 61 else
56 ENV_NAME="" 62 ENV_NAME=""
57 fi 63 fi
58 if [[ "$ENV_NAME" != "" ]]; then 64 if [[ "$ENV_NAME" != "" ]]; then
59 # Activate the environment only if it is not already active 65 # Activate the environment only if it is not already active
60 if [[ "$VIRTUAL_ENV" != "$WORKON_HOME/$ENV_NAME" ]]; then 66 if [[ "$VIRTUAL_ENV" != "$WORKON_HOME/$ENV_NAME" ]]; then
61 if [[ -e "$WORKON_HOME/$ENV_NAME/bin/activate" ]]; then 67 if [[ -e "$WORKON_HOME/$ENV_NAME/bin/activate" ]]; then
62 workon "$ENV_NAME" && export CD_VIRTUAL_ENV="$ENV_NAME" 68 workon "$ENV_NAME" && export CD_VIRTUAL_ENV="$ENV_NAME"
63 elif [[ -e "$ENV_NAME/bin/activate" ]]; then 69 elif [[ -e "$ENV_NAME/bin/activate" ]]; then
64 source $ENV_NAME/bin/activate && export CD_VIRTUAL_ENV="$ENV_NAME" 70 source $ENV_NAME/bin/activate && export CD_VIRTUAL_ENV="$ENV_NAME"
65 fi 71 fi
66 fi 72 fi
67 elif [[ -n $CD_VIRTUAL_ENV && -n $VIRTUAL_ENV ]]; then 73 elif [[ -n $CD_VIRTUAL_ENV && -n $VIRTUAL_ENV ]]; then
68 # We've just left the repo, deactivate the environment 74 # We've just left the repo, deactivate the environment
69 # Note: this only happens if the virtualenv was activated automatically 75 # Note: this only happens if the virtualenv was activated automatically
70 deactivate && unset CD_VIRTUAL_ENV 76 deactivate && unset CD_VIRTUAL_ENV
71 fi 77 fi
72 unset PROJECT_ROOT
73 unset WORKON_CWD
74 fi 78 fi
75 } 79 }
76 80
77 # Append workon_cwd to the chpwd_functions array, so it will be called on cd 81 # Append workon_cwd to the chpwd_functions array, so it will be called on cd
78 # http://zsh.sourceforge.net/Doc/Release/Functions.html 82 # http://zsh.sourceforge.net/Doc/Release/Functions.html
79 if ! (( $chpwd_functions[(I)workon_cwd] )); then 83 if ! (( $chpwd_functions[(I)workon_cwd] )); then
80 chpwd_functions+=(workon_cwd) 84 chpwd_functions+=(workon_cwd)
81 fi 85 fi
plugins/vundle/vundle.plugin.zsh
1 function vundle-init () { 1 function vundle-init () {
2 if [ ! -d ~/.vim/bundle/vundle/ ] 2 if [ ! -d ~/.vim/bundle/vundle/ ]
3 then 3 then
4 mkdir -p ~/.vim/bundle/vundle/ 4 mkdir -p ~/.vim/bundle/vundle/
5 fi 5 fi
6 6
7 if [ ! -d ~/.vim/bundle/vundle/.git ] && [ ! -f ~/.vim/bundle/vundle/.git ] 7 if [ ! -d ~/.vim/bundle/vundle/.git ] && [ ! -f ~/.vim/bundle/vundle/.git ]
8 then 8 then
9 git clone http://github.com/gmarik/vundle.git ~/.vim/bundle/vundle 9 git clone http://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
10 echo "\n\tRead about vim configuration for vundle at https://github.com/gmarik/vundle\n" 10 echo "\n\tRead about vim configuration for vundle at https://github.com/gmarik/vundle\n"
11 fi 11 fi
12 } 12 }
13 13
14 function vundle () { 14 function vundle () {
15 vundle-init 15 vundle-init
16 vim -c "execute \"PluginInstall\" | q | q" 16 vim -c "execute \"PluginInstall\" | qa"
17 } 17 }
18 18
19 function vundle-update () { 19 function vundle-update () {
20 vundle-init 20 vundle-init
21 vim -c "execute \"PluginInstall!\" | q | q" 21 vim -c "execute \"PluginInstall!\" | qa"
22 } 22 }
23 23
24 function vundle-clean () { 24 function vundle-clean () {
25 vundle-init 25 vundle-init
26 vim -c "execute \"PluginClean!\" | q | q" 26 vim -c "execute \"PluginClean!\" | qa"
27 } 27 }
28 28
plugins/web-search/web-search.plugin.zsh
1 # web_search from terminal 1 # web_search from terminal
2 2
3 function web_search() { 3 function web_search() {
4 emulate -L zsh 4 emulate -L zsh
5 5
6 # define search engine URLS 6 # define search engine URLS
7 typeset -A urls 7 typeset -A urls
8 urls=( 8 urls=(
9 google "https://www.google.com/search?q=" 9 google "https://www.google.com/search?q="
10 bing "https://www.bing.com/search?q=" 10 bing "https://www.bing.com/search?q="
11 yahoo "https://search.yahoo.com/search?p=" 11 yahoo "https://search.yahoo.com/search?p="
12 duckduckgo "https://www.duckduckgo.com/?q=" 12 duckduckgo "https://www.duckduckgo.com/?q="
13 yandex "https://yandex.ru/yandsearch?text=" 13 yandex "https://yandex.ru/yandsearch?text="
14 github "https://github.com/search?q=" 14 github "https://github.com/search?q="
15 baidu "https://www.baidu.com/s?wd="
15 ) 16 )
16 17
17 # define the open command
18 case "$OSTYPE" in
19 darwin*) open_cmd="open" ;;
20 cygwin*) open_cmd="cygstart" ;;
21 linux*) open_cmd="xdg-open" ;;
22 *) echo "Platform $OSTYPE not supported"
23 return 1
24 ;;
25 esac
26
27 # check whether the search engine is supported 18 # check whether the search engine is supported
28 if [[ -z "$urls[$1]" ]]; then 19 if [[ -z "$urls[$1]" ]]; then
29 echo "Search engine $1 not supported." 20 echo "Search engine $1 not supported."
30 return 1 21 return 1
31 fi 22 fi
32 23
33 # search or go to main page depending on number of arguments passed 24 # search or go to main page depending on number of arguments passed
34 if [[ $# -gt 1 ]]; then 25 if [[ $# -gt 1 ]]; then
35 # build search url: 26 # build search url:
36 # join arguments passed with '+', then append to search engine URL 27 # join arguments passed with '+', then append to search engine URL
37 url="${urls[$1]}${(j:+:)@[2,-1]}" 28 url="${urls[$1]}${(j:+:)@[2,-1]}"
38 else 29 else
39 # build main page url: 30 # build main page url:
40 # split by '/', then rejoin protocol (1) and domain (2) parts with '//' 31 # split by '/', then rejoin protocol (1) and domain (2) parts with '//'
41 url="${(j://:)${(s:/:)urls[$1]}[1,2]}" 32 url="${(j://:)${(s:/:)urls[$1]}[1,2]}"
42 fi 33 fi
43 34
44 nohup $open_cmd "$url" &>/dev/null 35 open_command "$url"
45 } 36 }
46 37
47 38
48 alias bing='web_search bing' 39 alias bing='web_search bing'
49 alias google='web_search google' 40 alias google='web_search google'
50 alias yahoo='web_search yahoo' 41 alias yahoo='web_search yahoo'
51 alias ddg='web_search duckduckgo' 42 alias ddg='web_search duckduckgo'
52 alias yandex='web_search yandex' 43 alias yandex='web_search yandex'
53 alias github='web_search github' 44 alias github='web_search github'
45 alias baidu='web_search baidu'
54 46
55 #add your own !bang searches here 47 #add your own !bang searches here
56 alias wiki='web_search duckduckgo \!w' 48 alias wiki='web_search duckduckgo \!w'
57 alias news='web_search duckduckgo \!n' 49 alias news='web_search duckduckgo \!n'
58 alias youtube='web_search duckduckgo \!yt' 50 alias youtube='web_search duckduckgo \!yt'
59 alias map='web_search duckduckgo \!m' 51 alias map='web_search duckduckgo \!m'
60 alias image='web_search duckduckgo \!i' 52 alias image='web_search duckduckgo \!i'
themes/candy-kingdom.zsh-theme
1 # neuralsanwich.zsh-theme 1 # neuralsanwich.zsh-theme
2 2
3 if [ "x$OH_MY_ZSH_HG" = "x" ]; then 3 if [ "x$OH_MY_ZSH_HG" = "x" ]; then
4 OH_MY_ZSH_HG="hg" 4 OH_MY_ZSH_HG="hg"
5 fi 5 fi
6 6
7 function hg_prompt_info { 7 function hg_prompt_info {
8 $OH_MY_ZSH_HG prompt --angle-brackets "\ 8 $OH_MY_ZSH_HG prompt --angle-brackets "\
9 < on %{$fg[magenta]%}<branch>%{$reset_color%}>\ 9 < on %{$fg[magenta]%}<branch>%{$reset_color%}>\
10 < at %{$fg[yellow]%}<tags|%{$reset_color%}, %{$fg[yellow]%}>%{$reset_color%}>\ 10 < at %{$fg[yellow]%}<tags|%{$reset_color%}, %{$fg[yellow]%}>%{$reset_color%}>\
11 %{$fg[green]%}<status|modified|unknown><update>%{$reset_color%}< 11 %{$fg[green]%}<status|modified|unknown><update>%{$reset_color%}<
12 patches: <patches|join( → )|pre_applied(%{$fg[yellow]%})|post_applied(%{$reset_color%})|pre_unapplied(%{$fg_bold[black]%})|post_unapplied(%{$reset_color%})>>" 2>/dev/null 12 patches: <patches|join( → )|pre_applied(%{$fg[yellow]%})|post_applied(%{$reset_color%})|pre_unapplied(%{$fg_bold[black]%})|post_unapplied(%{$reset_color%})>>" 2>/dev/null
13 } 13 }
14 14
15 function box_name { 15 function box_name {
16 [ -f ~/.box-name ] && cat ~/.box-name || echo ${SHORT_HOST:-HOST} 16 [ -f ~/.box-name ] && cat ~/.box-name || echo ${SHORT_HOST:-$HOST}
17 } 17 }
18 18
19 PROMPT=' 19 PROMPT='
20 %{$fg[magenta]%}%n%{$reset_color%}@%{$fg[yellow]%}$(box_name)%{$reset_color%}:%{$fg_bold[green]%}${PWD/#$HOME/~}%{$reset_color%}$(hg_prompt_info)$(git_prompt_info) 20 %{$fg[magenta]%}%n%{$reset_color%}@%{$fg[yellow]%}$(box_name)%{$reset_color%}:%{$fg_bold[green]%}${PWD/#$HOME/~}%{$reset_color%}$(hg_prompt_info)$(git_prompt_info)
21 %(?,,%{${fg_bold[white]}%}[%?]%{$reset_color%} )$ ' 21 %(?,,%{${fg_bold[white]}%}[%?]%{$reset_color%} )$ '
22 22
23 ZSH_THEME_GIT_PROMPT_PREFIX=" (%{$fg[magenta]%}branch: " 23 ZSH_THEME_GIT_PROMPT_PREFIX=" (%{$fg[magenta]%}branch: "
24 ZSH_THEME_GIT_PROMPT_CLEAN="" 24 ZSH_THEME_GIT_PROMPT_CLEAN=""
25 ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[red]%}?" 25 ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[red]%}?"
26 ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[orange]%}!" 26 ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[orange]%}!"
27 ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%})" 27 ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%})"
28 28
29 local return_status="%{$fg[red]%}%(?..✘)%{$reset_color%}" 29 local return_status="%{$fg[red]%}%(?..✘)%{$reset_color%}"
30 RPROMPT='${return_status}$(battery_time_remaining) $(battery_pct_prompt)%{$reset_color%}' 30 RPROMPT='${return_status}$(battery_time_remaining) $(battery_pct_prompt)%{$reset_color%}'
31 31
themes/fino-time.zsh-theme
1 # fino-time.zsh-theme 1 # fino-time.zsh-theme
2 2
3 # Use with a dark background and 256-color terminal! 3 # Use with a dark background and 256-color terminal!
4 # Meant for people with RVM and git. Tested only on OS X 10.7. 4 # Meant for people with RVM and git. Tested only on OS X 10.7.
5 5
6 # You can set your computer name in the ~/.box-name file if you want. 6 # You can set your computer name in the ~/.box-name file if you want.
7 7
8 # Borrowing shamelessly from these oh-my-zsh themes: 8 # Borrowing shamelessly from these oh-my-zsh themes:
9 # bira 9 # bira
10 # robbyrussell 10 # robbyrussell
11 # 11 #
12 # Also borrowing from http://stevelosh.com/blog/2010/02/my-extravagant-zsh-prompt/ 12 # Also borrowing from http://stevelosh.com/blog/2010/02/my-extravagant-zsh-prompt/
13 13
14 function virtualenv_info { 14 function virtualenv_info {
15 [ $VIRTUAL_ENV ] && echo '('`basename $VIRTUAL_ENV`') ' 15 [ $VIRTUAL_ENV ] && echo '('`basename $VIRTUAL_ENV`') '
16 } 16 }
17 17
18 function prompt_char { 18 function prompt_char {
19 git branch >/dev/null 2>/dev/null && echo '⠠⠵' && return 19 git branch >/dev/null 2>/dev/null && echo '⠠⠵' && return
20 echo '○' 20 echo '○'
21 } 21 }
22 22
23 function box_name { 23 function box_name {
24 [ -f ~/.box-name ] && cat ~/.box-name || echo ${SHORT_HOST:-HOST} 24 [ -f ~/.box-name ] && cat ~/.box-name || echo ${SHORT_HOST:-$HOST}
25 } 25 }
26 26
27 27
28 local rvm_ruby='‹$(rvm-prompt i v g)›%{$reset_color%}' 28 local rvm_ruby='‹$(rvm-prompt i v g)›%{$reset_color%}'
29 local current_dir='${PWD/#$HOME/~}' 29 local current_dir='${PWD/#$HOME/~}'
30 local git_info='$(git_prompt_info)' 30 local git_info='$(git_prompt_info)'
31 31
32 32
33 PROMPT="╭─%{$FG[040]%}%n%{$reset_color%} %{$FG[239]%}at%{$reset_color%} %{$FG[033]%}$(box_name)%{$reset_color%} %{$FG[239]%}in%{$reset_color%} %{$terminfo[bold]$FG[226]%}${current_dir}%{$reset_color%}${git_info} %{$FG[239]%}using%{$FG[243]%} ${rvm_ruby} %D - %* 33 PROMPT="╭─%{$FG[040]%}%n%{$reset_color%} %{$FG[239]%}at%{$reset_color%} %{$FG[033]%}$(box_name)%{$reset_color%} %{$FG[239]%}in%{$reset_color%} %{$terminfo[bold]$FG[226]%}${current_dir}%{$reset_color%}${git_info} %{$FG[239]%}using%{$FG[243]%} ${rvm_ruby} %D - %*
34 ╰─$(virtualenv_info)$(prompt_char) " 34 ╰─$(virtualenv_info)$(prompt_char) "
35 35
36 ZSH_THEME_GIT_PROMPT_PREFIX=" %{$FG[239]%}on%{$reset_color%} %{$fg[255]%}" 36 ZSH_THEME_GIT_PROMPT_PREFIX=" %{$FG[239]%}on%{$reset_color%} %{$fg[255]%}"
37 ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" 37 ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
38 ZSH_THEME_GIT_PROMPT_DIRTY="%{$FG[202]%}✘✘✘" 38 ZSH_THEME_GIT_PROMPT_DIRTY="%{$FG[202]%}✘✘✘"
39 ZSH_THEME_GIT_PROMPT_CLEAN="%{$FG[040]%}✔" 39 ZSH_THEME_GIT_PROMPT_CLEAN="%{$FG[040]%}✔"
40 40
themes/fino.zsh-theme
1 # fino.zsh-theme 1 # fino.zsh-theme
2 2
3 # Use with a dark background and 256-color terminal! 3 # Use with a dark background and 256-color terminal!
4 # Meant for people with rbenv and git. Tested only on OS X 10.7. 4 # Meant for people with rbenv and git. Tested only on OS X 10.7.
5 5
6 # You can set your computer name in the ~/.box-name file if you want. 6 # You can set your computer name in the ~/.box-name file if you want.
7 7
8 # Borrowing shamelessly from these oh-my-zsh themes: 8 # Borrowing shamelessly from these oh-my-zsh themes:
9 # bira 9 # bira
10 # robbyrussell 10 # robbyrussell
11 # 11 #
12 # Also borrowing from http://stevelosh.com/blog/2010/02/my-extravagant-zsh-prompt/ 12 # Also borrowing from http://stevelosh.com/blog/2010/02/my-extravagant-zsh-prompt/
13 13
14 function prompt_char { 14 function prompt_char {
15 git branch >/dev/null 2>/dev/null && echo "±" && return 15 git branch >/dev/null 2>/dev/null && echo "±" && return
16 echo '○' 16 echo '○'
17 } 17 }
18 18
19 function box_name { 19 function box_name {
20 [ -f ~/.box-name ] && cat ~/.box-name || echo ${SHORT_HOST:-HOST} 20 [ -f ~/.box-name ] && cat ~/.box-name || echo ${SHORT_HOST:-$HOST}
21 } 21 }
22 22
23 local ruby_env='' 23 local ruby_env=''
24 if which rvm-prompt &> /dev/null; then 24 if which rvm-prompt &> /dev/null; then
25 ruby_env=' ‹$(rvm-prompt i v g)›%{$reset_color%}' 25 ruby_env=' ‹$(rvm-prompt i v g)›%{$reset_color%}'
26 else 26 else
27 if which rbenv &> /dev/null; then 27 if which rbenv &> /dev/null; then
28 ruby_env=' ‹$(rbenv version-name)›%{$reset_color%}' 28 ruby_env=' ‹$(rbenv version-name)›%{$reset_color%}'
29 fi 29 fi
30 fi 30 fi
31 31
32 local current_dir='${PWD/#$HOME/~}' 32 local current_dir='${PWD/#$HOME/~}'
33 local git_info='$(git_prompt_info)' 33 local git_info='$(git_prompt_info)'
34 local prompt_char='$(prompt_char)' 34 local prompt_char='$(prompt_char)'
35 35
36 36
37 PROMPT="╭─%{$FG[040]%}%n%{$reset_color%} %{$FG[239]%}at%{$reset_color%} %{$FG[033]%}$(box_name)%{$reset_color%} %{$FG[239]%}in%{$reset_color%} %{$terminfo[bold]$FG[226]%}${current_dir}%{$reset_color%}${git_info} %{$FG[239]%}using%{$FG[243]%}${ruby_env} 37 PROMPT="╭─%{$FG[040]%}%n%{$reset_color%} %{$FG[239]%}at%{$reset_color%} %{$FG[033]%}$(box_name)%{$reset_color%} %{$FG[239]%}in%{$reset_color%} %{$terminfo[bold]$FG[226]%}${current_dir}%{$reset_color%}${git_info} %{$FG[239]%}using%{$FG[243]%}${ruby_env}
38 ╰─${prompt_char}%{$reset_color%} " 38 ╰─${prompt_char}%{$reset_color%} "
39 39
40 ZSH_THEME_GIT_PROMPT_PREFIX=" %{$FG[239]%}on%{$reset_color%} %{$fg[255]%}" 40 ZSH_THEME_GIT_PROMPT_PREFIX=" %{$FG[239]%}on%{$reset_color%} %{$fg[255]%}"
41 ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" 41 ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
42 ZSH_THEME_GIT_PROMPT_DIRTY="%{$FG[202]%}✘✘✘" 42 ZSH_THEME_GIT_PROMPT_DIRTY="%{$FG[202]%}✘✘✘"
43 ZSH_THEME_GIT_PROMPT_CLEAN="%{$FG[040]%}✔" 43 ZSH_THEME_GIT_PROMPT_CLEAN="%{$FG[040]%}✔"
44 44