Revert commit "bd9c18d"
[org-tag-beautify.git] / org-tag-beautify.el
blob4d9cd3a97d0b4f191a829222ba2f3f27037ca76d
1 ;;; org-tag-beautify.el --- Beautify Org mode tags -*- lexical-binding: t; -*-
2 ;; -*- coding: utf-8 -*-
4 ;; Authors: stardiviner <numbchild@gmail.com>
5 ;; Package-Requires: ((emacs "26.1") (nerd-icons "0.0.1"))
6 ;; Version: 0.1.0
7 ;; Keywords: hypermedia
8 ;; homepage: https://repo.or.cz/org-tag-beautify.git
10 ;; Copyright (C) 2020-2021 Free Software Foundation, Inc.
11 ;; The source code is licensed under GPLv3.
12 ;; The image data is NOT licensed under GPLv3.
14 ;; org-tag-beautify is free software; you can redistribute it and/or modify it
15 ;; under the terms of the GNU General Public License as published by
16 ;; the Free Software Foundation; either version 3, or (at your option)
17 ;; any later version.
19 ;; org-tag-beautify is distributed in the hope that it will be useful, but WITHOUT
20 ;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
21 ;; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
22 ;; License for more details.
25 ;; You should have received a copy of the GNU General Public License
26 ;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
28 ;;; Commentary:
30 ;; Usage:
32 ;; (org-tag-beautify-mode 1)
34 ;;; Code:
36 (require 'nerd-icons)
38 (require 'org)
39 (require 'org-macs)
40 ;; (declare-function 'org-set-tags "org" (_fn _file &rest _args))
41 ;; (declare-function 'org-get-tags "org" (&optional epom local))
42 ;; (declare-function 'org-back-to-heading "org" (&optional invisible-ok))
43 ;; (declare-function 'org-at-heading-p "org" (&optional invisible-not-ok))
44 ;; (declare-function 'org-with-point-at "org-macs" (epom &rest body))
45 ;; (declare-function 'org-match-line "org-macs" (regexp))
46 ;; (declare-function 'outline-next-heading "outline" ())
47 ;; (defvar 'org-tag-alist)
48 ;; (defvar 'org-complex-heading-regexp)
50 (defvar org-pretty-tags-surrogate-strings) ; variable from package "org-pretty-tags"
52 (defgroup org-tag-beautify nil
53 "Customize group of `org-tag-beautify-mode'."
54 :prefix "org-tag-beautify-"
55 :group 'org)
57 (defcustom org-tag-beautify-data-dir (file-name-directory
58 (or load-file-name (buffer-file-name)))
59 "The org-tag-beautify data directory."
60 :type 'string
61 :safe #'stringp
62 :group 'org-tag-beautify)
64 (defcustom org-tag-beautify-icon-height (* (default-font-height) 1)
65 "Specify the tag icon height."
66 :type 'number
67 :safe #'numberp
68 :group 'org-tag-beautify)
70 (defcustom org-tag-beautify-icon-width (* (default-font-width) 4.5)
71 "Specify the tag icon width."
72 :type 'number
73 :safe #'numberp
74 :group 'org-tag-beautify)
76 (defcustom org-tag-beautify-auto-add-tags t
77 "Whether auto add tags to heading."
78 :type 'boolean
79 :safe #'booleanp
80 :group 'org-tag-beautify)
82 (defcustom org-tag-beautify-tag-icons-alist nil
83 "An custom option to store user defined hard-coded (tag . icon) alist."
84 :type '(alist :key-type string :value-type text-property)
85 :safe #'listp
86 :group 'org-tag-beautify)
88 ;;; ----------------------------------------------------------------------------
89 ;;; find the available suitable icon for tag.
91 (defvar org-tag-beautify--nerd-icons-icons-list (nerd-icons--read-candidates)
92 "Store all nerd-icons list into a variable to avoid repeatedly computing.")
94 (defun org-tag-beautify--nerd-icons-get-icon-name (icon-plist) ; (#("<icon>" ...))
95 "Extract only icon name string from ICON-PLIST structure."
96 (let ((icon-name-glyph-set ; -> "nf-md-access_point [mdicon]"
97 ;; strip out text-property from icon name -> "nf-md-access_point [mdicon]"
98 (substring-no-properties (car icon-plist))))
99 (when (string-match "\\([[:alnum:]]*-[[:alnum:]]*\\)-\\([[:alnum:]_]*\\)"
100 icon-name-glyph-set)
101 (cons (match-string 1 icon-name-glyph-set)
102 (match-string 2 icon-name-glyph-set)))))
104 ;; (seq-drop (split-string "nf-md-access_point" "-") 2) ; -> "access_point"
105 ;; (seq-drop (split-string "nf-md-access_point" "[-_]") 2) ; -> "access" "point"
107 (defvar org-tag-beautify--nerd-icons-icon-pairs-list
108 (mapcar 'org-tag-beautify--nerd-icons-get-icon-name
109 org-tag-beautify--nerd-icons-icons-list)
110 "Store all icon glyph and icon name into a variable to avoid repeatedly computing.")
112 (defvar org-tag-beautify--nerd-icons-icon-names-list
113 (mapcar 'cdr org-tag-beautify--nerd-icons-icon-pairs-list)
114 "Store all icon names list into a variable to avoid repeatedly computing.")
116 (defvar org-tag-beautify-tag-icon-cache-alist nil
117 "A cache list to store already search found tag and icon pair by `org-tag-beautify--find-tag-icon'.")
119 (defun org-tag-beautify--find-tag-icon (&optional tag)
120 "Fuzzy find TAG text in icon names then return icon."
121 (interactive)
122 (if tag
123 ;; try to get tag associated icon from cache list at first to improve performance.
124 (or (cdr (assoc tag org-tag-beautify-tag-icon-cache-alist))
125 (let* (;; TODO: improve the tag name matching algorithm.
126 (tag-regexp-matching-f (apply-partially 'string-match-p
127 (regexp-opt (list (substring-no-properties (downcase tag))))))
128 ;; -> "archlinux"
129 (icon-name (seq-find
130 tag-regexp-matching-f
131 org-tag-beautify--nerd-icons-icon-names-list))
132 ;; reverse query alist: "archlinux" -> ("nf-linux" . "archlinux")
133 (icon-pair (rassoc icon-name org-tag-beautify--nerd-icons-icon-pairs-list))
134 (icon-symbol (concat (car icon-pair) "-" (cdr icon-pair)))
135 (icon-f (cl-find-if
136 (lambda (f) (ignore-errors (funcall f icon-symbol)))
137 (mapcar 'nerd-icons--function-name nerd-icons-glyph-sets)))
138 (icon (if-let ((found-icon (cdr (assoc tag org-tag-beautify-tag-icons-alist))))
139 found-icon
140 (ignore-errors (funcall icon-f icon-symbol)))))
141 ;; cache already search found icon name.
142 (when icon ; push to list only when found icon.
143 (push `(,tag . ,icon) org-tag-beautify-tag-icon-cache-alist))
144 icon))
145 (org-tag-beautify--nerd-icons-get-icon-name
146 ;; (#("<icon>" ...))
147 (list (completing-read "Tag: " org-tag-beautify--nerd-icons-icons-list)))))
149 ;; ("Arch_Linux" . ,(nerd-icons-flicon "nf-linux-archlinux" :face 'nerd-icons-blue))
150 ;;; TEST:
151 ;; (org-tag-beautify--find-tag-icon "archlinux")
152 ;; (org-tag-beautify--find-tag-icon "steam")
153 ;; (org-tag-beautify--find-tag-icon "heart")
154 ;; (org-tag-beautify--find-tag-icon "wikipedia")
155 ;; (org-tag-beautify--find-tag-icon "LaTeX")
157 ;; Testing no icon associated defined tag.
158 ;; (org-tag-beautify--find-tag-icon "alpha_c_circle")
159 ;; (org-tag-beautify--find-tag-icon "ATTACH")
161 (defvar org-tag-beautify-overlays nil
162 "A list of overlays of org-tag-beautify.")
164 (defun org-tag-beautify-display-icon-refresh-headline ()
165 "Prettify Org mode headline tags with icons."
166 ;; (cl-assert (org-at-heading-p))
167 (org-match-line org-complex-heading-regexp)
168 (if (match-beginning 5)
169 (let ((tags-end (match-end 5)))
170 ;; move to next tag
171 (goto-char (1+ (match-beginning 5)))
172 ;; loop over current headline tags.
173 (while (re-search-forward (concat "\\(.+?\\):") tags-end t)
174 (push (make-overlay (match-beginning 1) (match-end 1))
175 org-tag-beautify-overlays)
176 ;; replace tag with icon
177 (overlay-put (car org-tag-beautify-overlays)
178 'display (list (org-tag-beautify--find-tag-icon
179 ;; the found tag
180 (buffer-substring-no-properties
181 (match-beginning 1) (match-end 1)))))))))
183 (defun org-tag-beautify-display-icon-refresh-all-headlines ()
184 "Prettify Org mode buffer tags with icons."
185 (when (eq major-mode 'org-mode)
186 (org-with-point-at 1
187 (unless (org-at-heading-p)
188 (outline-next-heading))
189 (while (not (eobp))
190 (org-tag-beautify-display-icon-refresh-headline)
191 (outline-next-heading)))))
193 (defun org-tag-beautify-delete-overlays ()
194 "Delete all icon tags overlays created."
195 (while org-tag-beautify-overlays
196 (delete-overlay (pop org-tag-beautify-overlays))))
198 ;;; ----------------------------------------------------------------------------
200 (defun org-tag-beautify--add-common-tag-icons ()
201 "Display most common tag as icon."
202 (setq org-tag-beautify-tag-icons-alist
203 (append org-tag-beautify-tag-icons-alist
204 `(("ARCHIVE" . ,(nerd-icons-mdicon "nf-md-archive" :face 'nerd-icons-silver))
205 ("export" . ,(nerd-icons-mdicon "nf-md-file_export_outline" :face 'nerd-icons-blue))
206 ("noexport" . ,(nerd-icons-faicon "nf-fa-eye_slash" :face 'nerd-icons-dblue))
207 ("on" . ,(nerd-icons-faicon "nf-fa-toggle_on" :face 'nerd-icons-blue))
208 ("off" . ,(nerd-icons-faicon "nf-fa-toggle_off" :face 'nerd-icons-dsilver))
209 ("deprecated" . ,(nerd-icons-mdicon "nf-md-format_strikethrough_variant" :face 'nerd-icons-dsilver))
210 ("block" . ,(nerd-icons-mdicon "nf-md-block_helper" :face 'nerd-icons-red))
211 ("lock" . ,(nerd-icons-mdicon "nf-md-lock_outline" :face 'nerd-icons-dorange))
212 ("unlock" . ,(nerd-icons-mdicon "nf-md-lock_open_variant_outline" :face 'nerd-icons-green))
213 ("key" . ,(nerd-icons-codicon "nf-cod-key" :face 'nerd-icons-green))
214 ("encrypted" . ,(nerd-icons-mdicon "nf-md-lock_outline" :face 'nerd-icons-blue))
215 ("decrypted" . ,(nerd-icons-mdicon "nf-md-lock_open_variant_outline" :face 'nerd-icons-green))
216 ("certificate" . ,(nerd-icons-mdicon "nf-md-certificate_outline" :face 'nerd-icons-green))
217 ("fingerprint" . ,(nerd-icons-mdicon "nf-md-fingerprint" :face 'nerd-icons-green))
218 ("private" . ,(nerd-icons-mdicon "nf-md-folder_heart_outline" :face 'nerd-icons-pink))
219 ("privacy" . ,(nerd-icons-mdicon "nf-md-folder_hidden" :face 'nerd-icons-purple-alt))
220 ("face" . ,(nerd-icons-mdicon "nf-md-face_man" :face 'nerd-icons-blue))
221 ("filter" . ,(nerd-icons-mdicon "nf-md-filter_outline" :face 'nerd-icons-silver))
222 ("sort" . ,(nerd-icons-mdicon "nf-md-sort" :face 'nerd-icons-silver))
223 ("like" . ,(nerd-icons-mdicon "nf-md-thumb_up_outline" :face 'nerd-icons-blue))
224 ("thumbs_up" . ,(nerd-icons-mdicon "nf-md-thumb_up_outline" :face 'nerd-icons-blue))
225 ("thumbs_down" . ,(nerd-icons-mdicon "nf-md-thumb_down_outline" :face 'nerd-icons-blue))
226 ("suggested" . ,(nerd-icons-mdicon "nf-md-star_circle_outline" :face 'nerd-icons-blue))
227 ("recommended" . ,(nerd-icons-mdicon "nf-md-thumb_up_outline" :face 'nerd-icons-yellow))
228 ("favorite" . ,(nerd-icons-sucicon "nf-seti-favicon" :face 'nerd-icons-yellow))
229 ("idea" . ,(nerd-icons-mdicon "nf-md-lightbulb_on" :face 'nerd-icons-yellow))
230 ("encyclopedia" . ,(nerd-icons-mdicon "nf-md-wikipedia" :face 'nerd-icons-silver))
231 ("wiki" . ,(nerd-icons-mdicon "nf-md-wikipedia" :face 'nerd-icons-silver))
232 ("language" . ,(nerd-icons-faicon "nf-fa-language" :face 'nerd-icons-silver))
233 ("translate" . ,(nerd-icons-faicon "nf-fa-language" :face 'nerd-icons-blue))
234 ("schedule" . ,(nerd-icons-mdicon "nf-md-calendar_clock_outline" :face 'nerd-icons-red))
235 ("clock" . ,(nerd-icons-mdicon "nf-md-clock_outline" :face 'nerd-icons-blue-alt))
236 ("timer" . ,(nerd-icons-mdicon "nf-md-timer_outline" :face 'nerd-icons-blue-alt))
237 ("snooze" . ,(nerd-icons-mdicon "nf-md-alarm_snooze" :face 'nerd-icons-orange))
238 ("notify" . ,(nerd-icons-mdicon "nf-md-bell_ring_outline" :face 'nerd-icons-yellow))
239 ("notification" . ,(nerd-icons-mdicon "nf-md-bell_circle_outline" :face 'nerd-icons-yellow))
240 ("alarm" . ,(nerd-icons-mdicon "nf-md-alarm_light_outline" :face 'nerd-icons-yellow))
241 ("LOG" . ,(nerd-icons-octicon "nf-oct-log" :face 'nerd-icons-yellow))
242 ("log" . ,(nerd-icons-octicon "nf-oct-log" :face 'nerd-icons-yellow))
243 ("comment" . ,(nerd-icons-mdicon "nf-md-comment_text_outline" :face 'nerd-icons-orange))
244 ("today" . ,(nerd-icons-mdicon "nf-md-calendar_today_outline" :face 'nerd-icons-green))
245 ("event" . ,(nerd-icons-mdicon "nf-md-calendar_text_outline" :face 'nerd-icons-blue))
246 ("event_available" . ,(nerd-icons-mdicon "nf-md-calendar_multiselect" :face 'nerd-icons-green))
247 ("event_busy" . ,(nerd-icons-mdicon "nf-md-calendar_month_outline" :face 'nerd-icons-orange))
248 ("task" . ,(nerd-icons-octicon "nf-oct-tasklist" :face 'nerd-icons-yellow))
249 ("check" . ,(nerd-icons-mdicon "nf-md-checkbox_marked_outline" :face 'nerd-icons-green))
250 ("alert" . ,(nerd-icons-mdicon "nf-md-alert_outline" :face 'nerd-icons-red-alt))
251 ("important" . ,(nerd-icons-faicon "nf-fa-exclamation_circle" :face 'nerd-icons-red-alt))
252 ("flag" . ,(nerd-icons-mdicon "nf-md-flag_outline" :face 'nerd-icons-red))
253 ("label" . ,(nerd-icons-mdicon "nf-md-label_outline" :face 'nerd-icons-blue))
254 ("info" . ,(nerd-icons-faicon "nf-fa-info_circle" :face 'nerd-icons-blue))
255 ("question" . ,(nerd-icons-mdicon "nf-md-comment_question_outline" :face 'nerd-icons-purple-alt))
256 ("answer" . ,(nerd-icons-mdicon "nf-md-comment_text_outline" :face 'nerd-icons-blue-alt))
257 ("example" . ,(nerd-icons-mdicon "nf-md-information_outline" :face 'nerd-icons-blue))
258 ("error" . ,(nerd-icons-codicon "nf-cod-error" :face 'nerd-icons-red-alt))
259 ("warning" . ,(nerd-icons-faicon "nf-fa-exclamation_triangle" :face 'nerd-icons-red-alt))
260 ("bolt" . ,(nerd-icons-mdicon "nf-md-lightning_bolt" :face 'nerd-icons-yellow))
261 ("bomb" . ,(nerd-icons-mdicon "nf-md-bomb" :face 'nerd-icons-red-alt))
262 ("thunder" . ,(nerd-icons-mdicon "nf-md-lightning_bolt" :face 'nerd-icons-yellow))
263 ("quote" . ,(nerd-icons-mdicon "nf-md-comment_quote_outline" :face 'nerd-icons-orange))
264 ("history" . ,(nerd-icons-mdicon "nf-md-history" :face 'nerd-icons-orange))
265 ("refresh" . ,(nerd-icons-mdicon "nf-md-refresh" :face 'nerd-icons-orange))
266 ("repeat" . ,(nerd-icons-mdicon "nf-md-repeat" :face 'nerd-icons-blue))
267 ("shuffle" . ,(nerd-icons-mdicon "nf-md-shuffle" :face 'nerd-icons-blue))
268 ("random" . ,(nerd-icons-mdicon "nf-md-shuffle_variant" :face 'nerd-icons-blue))
269 ("star" . ,(nerd-icons-mdicon "nf-md-star" :face 'nerd-icons-yellow))
270 ("heart" . ,(nerd-icons-mdicon "nf-md-heart_outline" :face 'nerd-icons-red-alt))
271 ("heart_beat" . ,(nerd-icons-mdicon "nf-md-heart_pulse" :face 'nerd-icons-red-alt))
272 ("brain" . ,(nerd-icons-faicon "nf-fae-brain" :face 'nerd-icons-yellow))
273 ("mind" . ,(nerd-icons-mdicon "nf-md-brain" :face 'nerd-icons-blue-alt))
274 ("thought" . ,(nerd-icons-mdicon "nf-md-head_cog_outline" :face 'nerd-icons-blue))
275 ("smile" . ,(nerd-icons-faicon "nf-fa-smile_o" :face 'nerd-icons-yellow))
276 ("ticket" . ,(nerd-icons-faicon "nf-fa-ticket" :face 'nerd-icons-orange))
277 ("trash" . , (nerd-icons-mdicon "nf-md-trash_can_outline" :face 'nerd-icons-orange))
278 ("delete" . ,(nerd-icons-mdicon "nf-md-delete_forever_outline" :face 'nerd-icons-red))
279 ("clear" . ,(nerd-icons-codicon "nf-cod-clear_all" :face 'nerd-icons-red))
280 ("cancel" . ,(nerd-icons-mdicon "nf-md-cancel" :face 'nerd-icons-orange))
281 ("inprogress" . ,(nerd-icons-mdicon "nf-md-progress_clock" :face 'nerd-icons-cyan))
282 ("screenshot" . ,(nerd-icons-mdicon "nf-md-monitor_screenshot" :face 'nerd-icons-cyan-alt))
283 ("1" . ,(nerd-icons-mdicon "nf-md-numeric_1_box_outline" :face 'nerd-icons-green))
284 ("2" . ,(nerd-icons-mdicon "nf-md-numeric_2_box_outline" :face 'nerd-icons-green))
285 ("3" . ,(nerd-icons-mdicon "nf-md-numeric_3_box_outline" :face 'nerd-icons-green))
286 ("4" . ,(nerd-icons-mdicon "nf-md-numeric_4_box_outline" :face 'nerd-icons-green))
287 ("5" . ,(nerd-icons-mdicon "nf-md-numeric_5_box_outline" :face 'nerd-icons-green))
288 ("6" . ,(nerd-icons-mdicon "nf-md-numeric_6_box_outline" :face 'nerd-icons-green))
289 ("7" . ,(nerd-icons-mdicon "nf-md-numeric_7_box_outline" :face 'nerd-icons-green))
290 ("8" . ,(nerd-icons-mdicon "nf-md-numeric_8_box_outline" :face 'nerd-icons-green))
291 ("9" . ,(nerd-icons-mdicon "nf-md-numeric_9_box_outline" :face 'nerd-icons-green))
292 ("10" . ,(nerd-icons-mdicon "nf-md-numeric_10_box_outline" :face 'nerd-icons-green))
294 ;; -----------------------------------------------------
295 ;; Life
296 ("forum" . ,(nerd-icons-mdicon "nf-md-forum_outline" :face 'nerd-icons-blue))
297 ("talk" . ,(nerd-icons-mdicon "nf-md-chat_processing_outline" :face 'nerd-icons-blue))
298 ("call" . ,(nerd-icons-mdicon "nf-md-phone_in_talk_outline" :face 'nerd-icons-green))
299 ("voice_chat" . ,(nerd-icons-mdicon "nf-md-account_voice" :face 'nerd-icons-green))
300 ("contact" . ,(nerd-icons-mdicon "nf-md-contacts_outline" :face 'nerd-icons-blue))
301 ("person" . ,(nerd-icons-codicon "nf-cod-person" :face 'nerd-icons-blue))
302 ("pin" . ,(nerd-icons-codicon "nf-cod-pinned" :face 'nerd-icons-cyan))
303 ("user" . ,(nerd-icons-faicon "nf-fa-user_circle" :face 'nerd-icons-blue))
304 ("users" . ,(nerd-icons-faicon "nf-fa-users" :face 'nerd-icons-blue))
305 ("group" . ,(nerd-icons-faicon "nf-fa-group" :face 'nerd-icons-orange))
306 ("gift" . ,(nerd-icons-mdicon "nf-md-gift_outline" :face 'nerd-icons-blue-alt))
308 ("girl" . ,(propertize "㊛" 'face '(:foreground "LightPink")))
309 ("boy" . ,(propertize "㊚" 'face '(:foreground "DeepSkyBlue")))
310 ("male" . ,(nerd-icons-mdicon "nf-md-gender_male" :face 'nerd-icons-blue))
311 ("female" . ,(nerd-icons-mdicon "nf-md-gender_female" :face 'nerd-icons-pink))
312 ("beauty" . ,(nerd-icons-mdicon "nf-md-human_female" :face 'nerd-icons-pink))
314 ("love" . ,(nerd-icons-mdicon "nf-md-heart_box_outline" :face 'nerd-icons-pink))
316 ;; Sexual orientation: https://en.wikipedia.org/wiki/Sexual_orientation
317 ;; LGBTQ symbols: https://en.wikipedia.org/wiki/LGBT_symbols
318 ;; ("heterosexual" . ,(nerd-icons-mdicon "nf-md-gender_male_female" :face 'nerd-icons-blue))
319 ;; ("gender_female" . ,(nerd-icons-mdicon "nf-md-gender_female" :face 'nerd-icons-pink))
320 ;; ("gender_man" . ,(nerd-icons-mdicon "nf-md-gender_male" :face 'nerd-icons-blue))
321 ;; ("female_homosexual" . ,(nerd-icons-mdicon "nf-md-human_female_female" :face 'nerd-icons-pink))
322 ;; ("male_homosexual" . ,(nerd-icons-mdicon "nf-md-human_male_male" :face 'nerd-icons-blue))
323 ;; ("lesbian" . ,(nerd-icons-mdicon "nf-md-human_female_female" :face 'nerd-icons-pink))
324 ;; ("gay" . ,(nerd-icons-mdicon "nf-md-human_male_male" :face 'nerd-icons-blue))
326 ("heterosexual" . ,(propertize "⚥" 'face '(:foreground "purple")))
327 ("gender_female" . ,(propertize "♀" 'face '(:foreground "purple")))
328 ("gender_man" . ,(propertize "♂" 'face '(:foreground "purple")))
329 ("female_homosexual" . ,(propertize "⚢" 'face '(:foreground "purple")))
330 ("male_homosexual" . ,(propertize "⚣" 'face '(:foreground "purple")))
331 ("lesbian" . ,(propertize "⚢" 'face '(:foreground "purple")))
332 ("gay" . ,(propertize "⚣" 'face '(:foreground "purple")))
333 ("BL" . ,(propertize "⚣" 'face '(:foreground "purple")))
334 ("asexuality" . ,(propertize "○" 'face '(:foreground "purple"))) ; 无性取向
335 ("bisexuality" . ,(propertize "⚤" 'face '(:foreground "purple"))) ; 双性恋取向
336 ("intersexuality" . ,(propertize "☿" 'face '(:foreground "purple"))) ; 中间性
337 ("transsexual" . ,(propertize "⚧" 'face '(:foreground "purple"))) ; 变性取向
339 ;; Gender:
340 ;; ("genderless" . ,(nerd-icons-faicon "nf-fa-genderless" :face 'nerd-icons-purple)) ; 无性别者
341 ("genderless" . ,(propertize "○" 'face '(:foreground "purple"))) ; 无性别者
342 ("agender" . ,(propertize "○" 'face '(:foreground "purple")))
343 ("sexless" . ,(propertize "○" 'face '(:foreground "purple"))) ; 无性别者
344 ("neuter" . ,(propertize "⚲" 'face '(:foreground "purple"))) ; 中性
345 ("intersex" . ,(propertize "⚥" 'face '(:foreground "purple"))) ; 双性者
346 ("transgender" . ,(propertize "⚧" 'face '(:foreground "purple"))) ; 变性者
347 ("bigender" . ,(propertize "⚥" 'face '(:foreground "purple")))
348 ("transgender-female" . ,(propertize "⧬" 'face '(:foreground "purple")))
349 ;; ("transgender-male" . ,(propertize "" 'face '(:foreground "purple")))
351 ("sleep" . ,(nerd-icons-mdicon "nf-md-sleep" :face 'nerd-icons-silver))
352 ("dining" . ,(nerd-icons-mdicon "nf-md-food_variant" :face 'nerd-icons-green))
353 ("home" . ,(nerd-icons-mdicon "nf-md-home" :face 'nerd-icons-blue))
354 ("weekend" . ,(nerd-icons-mdicon "nf-md-calendar_weekend_outline" :face 'nerd-icons-blue-alt))
355 ("birthday" . ,(nerd-icons-faicon "nf-fa-birthday_cake" :face 'nerd-icons-yellow))
356 ("party" . ,(nerd-icons-mdicon "nf-md-party_popper" :face 'nerd-icons-yellow))
357 ("build" . ,(nerd-icons-mdicon "nf-md-office_building_cog_outline" :face 'nerd-icons-silver))
358 ("repair" . ,(nerd-icons-mdicon "nf-md-wrench" :face 'nerd-icons-dsilver))
359 ("store" . ,(nerd-icons-mdicon "nf-md-store" :face 'nerd-icons-blue))
360 ("shopping" . ,(nerd-icons-mdicon "nf-md-shopping_outline" :face 'nerd-icons-orange))
361 ("coupon" . ,(nerd-icons-mdicon "nf-md-ticket_percent" :face 'nerd-icons-orange))
362 ("express" . ,(nerd-icons-mdicon "nf-md-truck_cargo_container" :face 'nerd-icons-silver))
363 ("diamond" . ,(nerd-icons-mdicon "nf-md-diamond_stone" :face 'nerd-icons-silver))
364 ("tag" . ,(nerd-icons-mdicon "nf-md-tag_outline" :face 'nerd-icons-blue))
365 ("tags" . ,(nerd-icons-mdicon "nf-md-tag_multiple" :face 'nerd-icons-blue))
366 ("capital" . ,(nerd-icons-faicon "nf-fa-money" :face 'nerd-icons-silver))
367 ("money" . ,(nerd-icons-faicon "nf-fa-money" :face 'nerd-icons-green))
368 ("usd" . ,(nerd-icons-mdicon "nf-md-currency_usd" :face 'nerd-icons-green))
369 ("eur" . ,(nerd-icons-mdicon "nf-md-currency_eur" :face 'nerd-icons-blue))
370 ("jpy" . ,(nerd-icons-mdicon "nf-md-currency_jpy" :face 'nerd-icons-green))
371 ("rmb" . ,(nerd-icons-mdicon "nf-md-currency_cny" :face 'nerd-icons-green))
372 ("cny" . ,(nerd-icons-mdicon "nf-md-currency_cny" :face 'nerd-icons-green))
373 ("payment" . ,(nerd-icons-mdicon "nf-md-contactless_payment" :face 'nerd-icons-blue))
374 ("donation" . ,(nerd-icons-mdicon "nf-md-charity" :face 'nerd-icons-pink))
375 ("CC" . ,(nerd-icons-faicon "nf-fae-cc_cc" :face 'nerd-icons-silver))
376 ("credit_card" . ,(nerd-icons-faicon "nf-fa-credit_card" :face 'nerd-icons-blue))
377 ("credit_card_visa" . ,(nerd-icons-faicon "nf-fa-cc_visa" :face 'nerd-icons-blue))
378 ("credit_card_mastercard" . ,(nerd-icons-faicon "nf-fa-cc_mastercard" :face 'nerd-icons-blue))
379 ("credit_card_PayPal" . ,(nerd-icons-faicon "nf-fa-paypal" :face 'nerd-icons-blue))
380 ("credit_card_stripe" . ,(nerd-icons-faicon "nf-fa-cc_stripe" :face 'nerd-icons-blue))
381 ("credit_card_amex" . ,(nerd-icons-faicon "nf-fa-cc_amex" :face 'nerd-icons-blue))
382 ("credit_card_jcb" . ,(nerd-icons-faicon "nf-fa-cc_jcb" :face 'nerd-icons-blue))
383 ("credit_card_discover" . ,(nerd-icons-faicon "nf-fa-cc_discover" :face 'nerd-icons-blue))
384 ("gratipay" . ,(nerd-icons-faicon "nf-fa-gratipay" :face 'nerd-icons-blue))
385 ("digital_currency" . ,(nerd-icons-mdicon "nf-md-currency_usd" :face 'nerd-icons-green))
386 ("cryptocurrency" . ,(nerd-icons-mdicon "nf-md-currency_usd" :face 'nerd-icons-yellow))
387 ("bitcoin" . ,(nerd-icons-mdicon "nf-md-currency_btc" :face 'nerd-icons-yellow))
388 ("BTC" . ,(nerd-icons-mdicon "nf-md-currency_btc" :face 'nerd-icons-yellow))
389 ("ethereum" . ,(nerd-icons-sucicon "nf-seti-ethereum" :face 'nerd-icons-blue))
390 ("ETH" . ,(nerd-icons-mdicon "nf-md-ethereum" :face 'nerd-icons-blue-alt))
391 ("watch" . ,(nerd-icons-mdicon "nf-md-eye" :face 'nerd-icons-blue))
392 ("hospital" . ,(nerd-icons-mdicon "nf-md-hospital_building" :face 'nerd-icons-silver))
393 ("university" . ,(nerd-icons-faicon "nf-fa-university" :face 'nerd-icons-silver))
394 ("student" . ,(nerd-icons-faicon "nf-fa-graduation_cap" :face 'nerd-icons-dpurple))
395 ("library" . ,(nerd-icons-codicon "nf-cod-library" :face 'nerd-icons-orange))
396 ("bank" . ,(nerd-icons-mdicon "nf-md-bank_outline" :face 'nerd-icons-silver))
397 ("ATM" . ,(nerd-icons-mdicon "nf-md-atm" :face 'nerd-icons-green))
398 ("hotel" . ,(nerd-icons-faicon "nf-fa-hotel" :face 'nerd-icons-green))
399 ("spa" . ,(nerd-icons-mdicon "nf-md-spa_outline" :face 'nerd-icons-green))
400 ("laundry" . ,(nerd-icons-mdicon "nf-md-washing_machine" :face 'nerd-icons-blue))
401 ("pets" . ,(nerd-icons-mdicon "nf-md-dog" :face 'nerd-icons-orange))
402 ("flower" . ,(nerd-icons-mdicon "nf-md-flower" :face 'nerd-icons-pink))
403 ("florist" . ,(nerd-icons-mdicon "nf-md-flower_tulip_outline" :face 'nerd-icons-pink))
404 ("city" . ,(nerd-icons-mdicon "nf-md-city_variant_outline" :face 'nerd-icons-silver))
405 ("industry" . ,(nerd-icons-faicon "nf-fa-industry" :face 'nerd-icons-silver))
406 ("see_doctor" . ,(nerd-icons-mdicon "nf-md-hospital_box" :face 'nerd-icons-red-alt))
407 ("doctor" . ,(nerd-icons-mdicon "nf-md-doctor" :face 'nerd-icons-silver))
408 ("medical" . ,(nerd-icons-faicon "nf-fa-medkit" :face 'nerd-icons-silver))
409 ("medicine" . ,(nerd-icons-faicon "nf-fae-medicine" :face 'nerd-icons-blue))
410 ("health" . ,(nerd-icons-mdicon "nf-md-medical_cotton_swab" :face 'nerd-icons-green))
411 ("law" . ,(nerd-icons-codicon "nf-cod-law" :face 'nerd-icons-silver))
412 ("court" . ,(nerd-icons-codicon "nf-cod-law" :face 'nerd-icons-silver))
413 ("lawyer" . ,(nerd-icons-mdicon "nf-md-account_tie_hat_outline" :face 'nerd-icons-silver))
414 ("building" . ,(nerd-icons-mdicon "nf-md-office_building_outline" :face 'nerd-icons-silver))
415 ("government" . ,(nerd-icons-mdicon "nf-md-office_building_marker_outline" :face 'nerd-icons-blue))
416 ("school" . ,(nerd-icons-mdicon "nf-md-school_outline" :face 'nerd-icons-silver))
417 ("censorship" . ,(nerd-icons-mdicon "nf-md-monitor_eye" :face 'nerd-icons-red-alt))
418 ("map" . ,(nerd-icons-mdicon "nf-md-map" :face 'nerd-icons-blue))
419 ("map_pin" . ,(nerd-icons-mdicon "nf-md-map_marker" :face 'nerd-icons-blue))
420 ("map_signs" . ,(nerd-icons-faicon "nf-fa-map_signs" :face 'nerd-icons-orange))
421 ("street_view" . ,(nerd-icons-faicon "nf-fa-street_view" :face 'nerd-icons-orange))
422 ("location" . ,(nerd-icons-octicon "nf-oct-location" :face 'nerd-icons-blue))
423 ("navigation" . ,(nerd-icons-faicon "nf-fa-location_arrow" :face 'nerd-icons-blue))
424 ("bar" . ,(nerd-icons-faicon "nf-fa-beer" :face 'nerd-icons-orange))
425 ("drink" . ,(nerd-icons-mdicon "nf-md-beer_outline" :face 'nerd-icons-orange))
426 ("coffee" . ,(nerd-icons-mdicon "nf-md-coffee" :face 'nerd-icons-silver))
427 ("bicycle" . ,(nerd-icons-mdicon "nf-md-bicycle" :face 'nerd-icons-blue))
428 ("motorcycle" . ,(nerd-icons-mdicon "nf-md-motorbike" :face 'nerd-icons-blue))
429 ("car" . ,(nerd-icons-mdicon "nf-md-car" :face 'nerd-icons-silver))
430 ("traffic" . ,(nerd-icons-mdicon "nf-md-traffic_light_outline" :face 'nerd-icons-blue))
431 ("road" . ,(nerd-icons-mdicon "nf-md-road_variant" :face 'nerd-icons-silver))
432 ("parking" . ,(nerd-icons-mdicon "nf-md-car_brake_parking" :face 'nerd-icons-red))
433 ("bus" . ,(nerd-icons-mdicon "nf-md-bus" :face 'nerd-icons-orange))
434 ("taxi" . ,(nerd-icons-mdicon "nf-md-taxi" :face 'nerd-icons-orange))
435 ("railway" . ,(nerd-icons-mdicon "nf-md-subway" :face 'nerd-icons-silver))
436 ("subway" . ,(nerd-icons-mdicon "nf-md-subway_variant" :face 'nerd-icons-silver))
437 ("highway" . ,(nerd-icons-mdicon "nf-md-highway" :face 'nerd-icons-blue))
438 ("train" . ,(nerd-icons-mdicon "nf-md-train" :face 'nerd-icons-green))
439 ("plane" . ,(nerd-icons-mdicon "nf-md-airplane" :face 'nerd-icons-silver))
440 ("rocket" . ,(nerd-icons-mdicon "nf-md-rocket_launch_outline" :face 'nerd-icons-red))
441 ("tram" . ,(nerd-icons-mdicon "nf-md-tram" :face 'nerd-icons-silver))
442 ("ship" . ,(nerd-icons-faicon "nf-fa-ship" :face 'nerd-icons-silver))
443 ("magic" . ,(nerd-icons-mdicon "nf-md-magic_staff" :face 'nerd-icons-green))
444 ("magnet" . ,(nerd-icons-codicon "nf-cod-magnet" :face 'nerd-icons-silver))
445 ("power_off" . ,(nerd-icons-faicon "nf-fa-power_off" :face 'nerd-icons-silver))
446 ("run" . ,(nerd-icons-mdicon "nf-md-run_fast" :face 'nerd-icons-green))
447 ("walk" . ,(nerd-icons-mdicon "nf-md-walk" :face 'nerd-icons-silver))
448 ("travel" . ,(nerd-icons-mdicon "nf-md-wallet_travel" :face 'nerd-icons-silver))
449 ("recycle" . ,(nerd-icons-mdicon "nf-md-recycle_variant" :face 'nerd-icons-green))
451 ;; weather
452 ("sun" . ,(nerd-icons-wicon "nf-weather-day_sunny" :face 'nerd-icons-yellow))
453 ("moon" . ,(nerd-icons-wicon "nf-weather-moon_waxing_crescent_3" :face 'nerd-icons-silver))
455 ;; -----------------------------------------------------
456 ;; computer
457 ("clone" . ,(nerd-icons-faicon "nf-fa-clone" :face 'nerd-icons-blue))
458 ("clipboard" . ,(nerd-icons-mdicon "nf-md-clipboard_file_outline" :face 'nerd-icons-silver))
459 ("file" . ,(nerd-icons-faicon "nf-fa-file_text" :face 'nerd-icons-silver))
460 ("archive_file" . ,(nerd-icons-codicon "nf-cod-archive" :face 'nerd-icons-orange))
461 ("document" . ,(nerd-icons-mdicon "nf-md-file_document_multiple_outline" :face 'nerd-icons-silver))
462 ("Markdown" . ,(nerd-icons-mdicon "nf-md-language_markdown_outline" :face 'nerd-icons-purple))
463 ("AsciiDoc" . ,(nerd-icons-faicon "nf-fa-file_text_o" :face 'nerd-icons-silver))
464 ("reStructure" . ,(nerd-icons-faicon "nf-fa-file_text_o" :face 'nerd-icons-silver))
465 ("office" . ,(nerd-icons-mdicon "nf-md-microsoft_office" :face 'nerd-icons-red))
466 ("OneNote" . ,(nerd-icons-mdicon "nf-md-microsoft_onenote" :face 'nerd-icons-purple-alt))
467 ("slideshow" . ,(nerd-icons-faicon "nf-fa-slideshare" :face 'nerd-icons-blue))
468 ("Word" . ,(nerd-icons-mdicon "nf-md-microsoft_word" :face 'nerd-icons-dblue))
469 ("Excel" . ,(nerd-icons-mdicon "nf-md-microsoft_excel" :face 'nerd-icons-dgreen))
470 ("PowerPoint" . ,(nerd-icons-mdicon "nf-md-microsoft_powerpoint" :face 'nerd-icons-red))
471 ("Access" . ,(nerd-icons-mdicon "nf-md-microsoft_access" :face 'nerd-icons-red))
472 ("Azure" . ,(nerd-icons-mdicon "nf-md-microsoft_azure" :face 'nerd-icons-silver))
473 ("Visual_Studio" . ,(nerd-icons-mdicon "nf-md-microsoft_visual_studio" :face 'nerd-icons-silver))
474 ("Visual_Studio_Code" . ,(nerd-icons-mdicon "nf-md-microsoft_visual_studio_code" :face 'nerd-icons-silver))
475 ("WordPress" . ,(nerd-icons-mdicon "nf-md-wordpress" :face 'nerd-icons-silver))
476 ("pdf" . ,(nerd-icons-faicon "nf-fa-file_pdf_o" :face 'nerd-icons-red))
477 ("image" . ,(nerd-icons-mdicon "nf-md-image" :face 'nerd-icons-green))
478 ("video" . ,(nerd-icons-mdicon "nf-md-video_box" :face 'nerd-icons-silver))
479 ("audio" . ,(nerd-icons-sucicon "nf-seti-audio" :face 'nerd-icons-blue))
480 ("movie" . ,(nerd-icons-mdicon "nf-md-movie_open_outline" :face 'nerd-icons-silver))
481 ("subtitle" . ,(nerd-icons-mdicon "nf-md-subtitles_outline" :face 'nerd-icons-silver))
482 ("book" . ,(nerd-icons-mdicon "nf-md-book_outline" :face 'nerd-icons-silver))
483 ("ebook" . ,(nerd-icons-mdicon "nf-md-book_outline" :face 'nerd-icons-blue))
484 ("magazine" . ,(nerd-icons-mdicon "nf-md-book_open_page_variant_outline" :face 'nerd-icons-blue))
485 ("Ezine" . ,(nerd-icons-mdicon "nf-md-book_open" :face 'nerd-icons-purple))
486 ("comic" . ,(nerd-icons-mdicon "nf-md-book_open_variant" :face 'nerd-icons-orange))
487 ("manga" . ,(nerd-icons-mdicon "nf-md-book_open_variant" :face 'nerd-icons-orange))
488 ("course" . ,(nerd-icons-mdicon "nf-md-google_classroom" :face 'nerd-icons-green))
489 ("classroom" . ,(nerd-icons-mdicon "nf-md-google_classroom" :face 'nerd-icons-green))
490 ("bookmark" . ,(nerd-icons-mdicon "nf-md-bookmark_outline" :face 'nerd-icons-blue))
491 ("plot" . ,(nerd-icons-mdicon "nf-md-chart_bell_curve" :face 'nerd-icons-blue))
492 ("diagram" . ,(nerd-icons-octicon "nf-oct-graph" :face 'nerd-icons-blue))
493 ("line_chart" . ,(nerd-icons-mdicon "nf-md-chart_line" :face 'nerd-icons-blue))
494 ("bar_chart" . ,(nerd-icons-mdicon "nf-md-chart_bar" :face 'nerd-icons-blue))
495 ("bar_stacked_chart" . ,(nerd-icons-mdicon "nf-md-chart_bar_stacked" :face 'nerd-icons-blue))
496 ("area_chart" . ,(nerd-icons-mdicon "nf-md-chart_areaspline" :face 'nerd-icons-blue))
497 ("pie_chart" . ,(nerd-icons-mdicon "nf-md-chart_pie" :face 'nerd-icons-green))
498 ("bell_curve_chart" . ,(nerd-icons-mdicon "nf-md-chart_bell_curve" :face 'nerd-icons-blue))
499 ("gantt_chart" . ,(nerd-icons-mdicon "nf-md-chart_gantt" :face 'nerd-icons-blue))
500 ("histogram_chart" . ,(nerd-icons-mdicon "nf-md-chart_histogram" :face 'nerd-icons-blue))
501 ("scatter_chart" . ,(nerd-icons-mdicon "nf-md-chart_scatter_plot" :face 'nerd-icons-blue))
502 ("timeline_chart" . ,(nerd-icons-mdicon "nf-md-chart_timeline" :face 'nerd-icons-blue))
503 ("tree_chart" . ,(nerd-icons-mdicon "nf-md-chart_tree" :face 'nerd-icons-blue))
504 ("waterfall_chart" . ,(nerd-icons-mdicon "nf-md-chart_waterfall" :face 'nerd-icons-blue))
505 ("sankey_chart" . ,(nerd-icons-mdicon "nf-md-chart_sankey" :face 'nerd-icons-blue))
506 ("ppf_chart" . ,(nerd-icons-mdicon "nf-md-chart_ppf" :face 'nerd-icons-blue))
507 ("box_chart" . ,(nerd-icons-mdicon "nf-md-chart_box_outline" :face 'nerd-icons-blue))
508 ("arc_chart" . ,(nerd-icons-mdicon "nf-md-chart_arc" :face 'nerd-icons-blue))
509 ("areaspline_chart" . ,(nerd-icons-mdicon "nf-md-chart_areaspline" :face 'nerd-icons-blue))
510 ("note" . ,(nerd-icons-codicon "nf-cod-note" :face 'nerd-icons-green))
511 ("notebook" . ,(nerd-icons-mdicon "nf-md-notebook" :face 'nerd-icons-green))
512 ("paperclip" . ,(nerd-icons-mdicon "nf-md-paperclip" :face 'nerd-icons-blue))
513 ("mindmap" . ,(nerd-icons-mdicon "nf-md-brain" :face 'nerd-icons-orange))
514 ("search" . ,(nerd-icons-mdicon "nf-md-search_web" :face 'nerd-icons-blue))
515 ("download" . ,(nerd-icons-mdicon "nf-md-download_outline" :face 'nerd-icons-blue))
516 ("upload" . ,(nerd-icons-mdicon "nf-md-upload_outline" :face 'nerd-icons-green))
517 ("link" . ,(nerd-icons-mdicon "nf-md-link_variant" :face 'nerd-icons-cyan-alt))
518 ("at" . ,(nerd-icons-mdicon "nf-md-at" :face 'nerd-icons-cyan))
519 ("mention" . ,(nerd-icons-octicon "nf-oct-mention" :face 'nerd-icons-cyan-alt))
520 ("email" . ,(nerd-icons-mdicon "nf-md-email_outline" :face 'nerd-icons-blue))
521 ("inbox" . ,(nerd-icons-mdicon "nf-md-inbox_full_outline" :face 'nerd-icons-blue))
522 ("reply" . ,(nerd-icons-mdicon "nf-md-reply" :face 'nerd-icons-silver))
523 ("reply_all" . ,(nerd-icons-mdicon "nf-md-reply_all" :face 'nerd-icons-silver))
524 ("share" . ,(nerd-icons-mdicon "nf-md-share_variant_outline" :face 'nerd-icons-blue))
525 ("screen_share" . ,(nerd-icons-mdicon "nf-md-monitor_share" :face 'nerd-icons-green))
526 ("cast" . ,(nerd-icons-mdicon "nf-md-cast" :face 'nerd-icons-green))
527 ("send" . ,(nerd-icons-mdicon "nf-md-send" :face 'nerd-icons-blue))
528 ("rss" . ,(nerd-icons-mdicon "nf-md-rss_box" :face 'nerd-icons-orange))
529 ("picture" . ,(nerd-icons-faicon "nf-fa-picture_o" :face 'nerd-icons-green))
530 ("photo" . ,(nerd-icons-faicon "nf-fa-photo" :face 'nerd-icons-green))
531 ("music" . ,(nerd-icons-mdicon "nf-md-music_box_outline" :face 'nerd-icons-green))
532 ("headphone" . ,(nerd-icons-mdicon "nf-md-headphones" :face 'nerd-icons-blue))
533 ("hearing" . ,(nerd-icons-mdicon "nf-md-ear_hearing" :face 'nerd-icons-blue))
534 ("film" . ,(nerd-icons-mdicon "nf-md-film" :face 'nerd-icons-blue))
535 ("game" . ,(nerd-icons-mdicon "nf-md-gamepad_variant_outline" :face 'nerd-icons-blue))
536 ("steam" . ,(nerd-icons-mdicon "nf-md-steam" :face 'nerd-icons-dblue))
537 ("camera" . ,(nerd-icons-mdicon "nf-md-camera_outline" :face 'nerd-icons-blue))
538 ("vlog" . ,(nerd-icons-codicon "nf-cod-device_camera_video" :face 'nerd-icons-blue))
539 ("podcast" . ,(nerd-icons-mdicon "nf-md-podcast" :face 'nerd-icons-purple))
540 ("mic" . ,(nerd-icons-mdicon "nf-md-microphone_outline" :face 'nerd-icons-blue))
541 ("mute" . ,(nerd-icons-mdicon "nf-md-volume_mute" :face 'nerd-icons-red))
542 ("play" . ,(nerd-icons-mdicon "nf-md-play_circle_outline" :face 'nerd-icons-blue))
543 ("pause" . ,(nerd-icons-mdicon "nf-md-pause_circle_outline" :face 'nerd-icons-red))
544 ("record" . ,(nerd-icons-mdicon "nf-md-record_circle_outline" :face 'nerd-icons-red))
545 ("news" . ,(nerd-icons-mdicon "nf-md-newspaper_variant_outline" :face 'nerd-icons-silver))
547 ;; human body
548 ("eye" . ,(nerd-icons-codicon "nf-cod-eye" :face 'nerd-icons-blue))
549 ("eye_slash" . ,(nerd-icons-codicon "nf-cod-eye_closed" :face 'nerd-icons-red))
550 ("deaf" . ,(nerd-icons-faicon "nf-fa-deaf" :face 'nerd-icons-red))
551 ("blind" . ,(nerd-icons-faicon "nf-fa-blind" :face 'nerd-icons-red))
552 ("low-vision" . ,(nerd-icons-faicon "nf-fa-low_vision" :face 'nerd-icons-blue))
553 ("braille" . ,(nerd-icons-mdicon "nf-md-braille" :face 'nerd-icons-blue))
554 ("wheelchair" . ,(nerd-icons-mdicon "nf-md-wheelchair" :face 'nerd-icons-blue))
556 ;; create
557 ("design" . ,(nerd-icons-mdicon "nf-md-palette" :face 'nerd-icons-blue))
558 ("paint" . ,(nerd-icons-faicon "nf-fa-paint_brush" :face 'nerd-icons-blue))
559 ("edit" . ,(nerd-icons-mdicon "nf-md-lead_pencil" :face 'nerd-icons-blue))
560 ("write" . ,(nerd-icons-mdicon "nf-md-lead_pencil" :face 'nerd-icons-blue))
561 ("writer" . ,(nerd-icons-mdicon "nf-md-typewriter" :face 'nerd-icons-blue))
563 ;; Family
564 ("@family" . ,(nerd-icons-mdicon "nf-md-family_tree" :face 'nerd-icons-green))
566 ;; Work
567 ("work" . ,(nerd-icons-faicon "nf-fa-black_tie" :face 'nerd-icons-dblue))
568 ("print" . ,(nerd-icons-mdicon "nf-md-printer" :face 'nerd-icons-blue))
569 ("business_trip" . ,(nerd-icons-mdicon "nf-md-bag_suitcase" :face 'nerd-icons-blue))
570 ("business_trip_briefcase" . ,(nerd-icons-codicon "nf-cod-briefcase" :face 'nerd-icons-blue))
571 ("business_trip_suitcase" . ,(nerd-icons-faicon "nf-fa-suitcase" :face 'nerd-icons-blue))
573 ;; People
574 ("child" . ,(nerd-icons-mdicon "nf-md-account_child" :face 'nerd-icons-silver))
575 ("programmer" . ,(nerd-icons-codicon "nf-cod-code" :face 'nerd-icons-blue-alt))
576 ("coder" . ,(nerd-icons-codicon "nf-cod-code" :face 'nerd-icons-blue-alt))
577 ("photographer" . ,(nerd-icons-mdicon "nf-md-camera_outline" :face 'nerd-icons-green))
578 ("worker" . ,(nerd-icons-mdicon "nf-md-account_hard_hat_outline" :face 'nerd-icons-blue))
579 ("accountant" . ,(nerd-icons-mdicon "nf-md-account_cash_outline" :face 'nerd-icons-green))
580 ("student" . ,(nerd-icons-mdicon "nf-md-account_school_outline" :face 'nerd-icons-blue))
581 ("supervisor" . ,(nerd-icons-mdicon "nf-md-account_supervisor_circle_outline" :face 'nerd-icons-blue))
582 ("white_collar" . ,(nerd-icons-mdicon "nf-md-account_tie" :face 'nerd-icons-blue))
583 ("driver" . ,(nerd-icons-mdicon "nf-md-account_tie_hat" :face 'nerd-icons-blue-alt))
584 ("woman" . ,(nerd-icons-mdicon "nf-md-account_tie_woman" :face 'nerd-icons-pink))
585 ("repairman" . ,(nerd-icons-mdicon "nf-md-account_wrench" :face 'nerd-icons-purple))
587 ;; Company
588 ("users" . ,(nerd-icons-faicon "nf-fa-users" :face 'nerd-icons-blue))
589 ("marketing" . ,(nerd-icons-mdicon "nf-md-bullhorn" :face 'nerd-icons-blue))
591 ;; Investing & Finance
592 ("accounting" . ,(nerd-icons-mdicon "nf-md-wallet_outline" :face 'nerd-icons-green))
593 ("finance" . ,(nerd-icons-mdicon "nf-md-calculator_variant" :face 'nerd-icons-blue))
594 ("stock" . ,(nerd-icons-mdicon "nf-md-chart_timeline_variant_shimmer" :face 'nerd-icons-blue))
596 ;; Philosophy
597 ("daoism" . ,(nerd-icons-mdicon "nf-md-yin_yang" :face 'nerd-icons-blue))
599 ;; Science
600 ("chemistry" . ,(nerd-icons-mdicon "nf-md-chemical_weapon" :face 'nerd-icons-green))
601 ("bacteria" . ,(nerd-icons-mdicon "nf-md-bacteria_outline" :face 'nerd-icons-green))
602 ("gene" . ,(nerd-icons-faicon "nf-fae-dna" :face 'nerd-icons-blue))
603 ("DNA" . ,(nerd-icons-faicon "nf-fae-dna" :face 'nerd-icons-blue))
604 ("RNA" . ,(nerd-icons-faicon "nf-fae-dna" :face 'nerd-icons-blue))
606 ;; Society
607 ("forest" . ,(nerd-icons-mdicon "nf-md-tree" :face 'nerd-icons-lgreen))
608 ("empire" . ,(nerd-icons-faicon "nf-fa-empire" :face 'nerd-icons-yellow))
609 ("global" . ,(nerd-icons-faicon "nf-fa-globe" :face 'nerd-icons-blue))))))
611 (defun org-tag-beautify--add-programming-tag-icons ()
612 "Display programming tag as icon."
613 (setq org-tag-beautify-tag-icons-alist
614 (append org-tag-beautify-tag-icons-alist
615 `(;; programming
616 ("programming" . ,(nerd-icons-mdicon "nf-md-developer_board" :face 'nerd-icons-lblue))
617 ("code" . ,(nerd-icons-codicon "nf-cod-code" :face 'nerd-icons-cyan-alt))
618 ("source_code" . ,(nerd-icons-codicon "nf-cod-file_code" :face 'nerd-icons-cyan))
619 ("bug" . ,(nerd-icons-codicon "nf-cod-bug" :face 'nerd-icons-red-alt))
620 ("vulnerability" . ,(nerd-icons-mdicon "nf-md-bug_check_outline" :face 'nerd-icons-red))
621 ("patch" . ,(nerd-icons-octicon "nf-oct-diff" :face 'nerd-icons-green))
622 ("diff" . ,(nerd-icons-codicon "nf-cod-diff" :face 'nerd-icons-red))
623 ("coding" . ,(nerd-icons-faicon "nf-fa-keyboard_o" :face 'nerd-icons-cyan-alt))
624 ("object_group" . ,(nerd-icons-faicon "nf-fa-object_group" :face 'nerd-icons-blue))
625 ("object_ungroup" . ,(nerd-icons-faicon "nf-fa-object_ungroup" :face 'nerd-icons-blue))
626 ("regex" . ,(nerd-icons-codicon "nf-cod-regex" :face 'nerd-icons-cyan-alt))
627 ("regexp" . ,(nerd-icons-codicon "nf-cod-regex" :face 'nerd-icons-cyan-alt))
628 ("extension" . ,(nerd-icons-codicon "nf-cod-extensions" :face 'nerd-icons-blue))
629 ("plugin" . ,(nerd-icons-codicon "nf-cod-extensions" :face 'nerd-icons-blue))
630 ("vcs" . ,(nerd-icons-codicon "nf-cod-source_control" :face 'nerd-icons-blue))
631 ("vcs_branch" . ,(nerd-icons-mdicon "nf-md-source_branch" :face 'nerd-icons-blue))
632 ("vcs_commit" . ,(nerd-icons-mdicon "nf-md-source_commit" :face 'nerd-icons-blue))
633 ("vcs_fork" . ,(nerd-icons-mdicon "nf-md-source_fork" :face 'nerd-icons-blue))
634 ("vcs_merge" . ,(nerd-icons-mdicon "nf-md-source_merge" :face 'nerd-icons-blue))
635 ("vcs_pull" . ,(nerd-icons-mdicon "nf-md-source_pull" :face 'nerd-icons-blue))
636 ("vcs_branch_sync" . ,(nerd-icons-mdicon "nf-md-source_branch_sync" :face 'nerd-icons-blue))
637 ("git" . ,(nerd-icons-mdicon "nf-md-git" :face 'nerd-icons-orange))
638 ("compile" . ,(nerd-icons-mdicon "nf-md-cog_box" :face 'nerd-icons-blue))
639 ("command" . ,(nerd-icons-codicon "nf-cod-terminal_bash" :face 'nerd-icons-cyan))
640 ("debug" . ,(nerd-icons-codicon "nf-cod-debug_alt" :face 'nerd-icons-blue))
641 ("troubleshooting" . ,(nerd-icons-faicon "nf-fa-crosshairs" :face 'nerd-icons-blue-alt))
642 ("help" . ,(nerd-icons-mdicon "nf-md-help_circle_outline" :face 'nerd-icons-blue-alt))
644 ;; database
645 ("database" . ,(nerd-icons-mdicon "nf-md-database" :face 'nerd-icons-blue))
646 ("database_schema" . ,(nerd-icons-mdicon "nf-md-file_table_box_outline" :face 'nerd-icons-blue))
647 ("database_catalog" . ,(nerd-icons-mdicon "nf-md-grid_large" :face 'nerd-icons-blue))
648 ("database_table" . ,(nerd-icons-mdicon "nf-md-table_large" :face 'nerd-icons-green))
649 ("database_view" . ,(nerd-icons-faicon "nf-fa-th" :face 'nerd-icons-blue))
650 ("database_index" . ,(nerd-icons-faicon "nf-fa-th_list" :face 'nerd-icons-blue))
651 ("database_sort" . ,(nerd-icons-mdicon "nf-md-sort_bool_ascending_variant" :face 'nerd-icons-blue-alt))
653 ;; computer etc hardware
654 ("computer" . ,(nerd-icons-mdicon "nf-md-desktop_mac" :face 'nerd-icons-blue))
655 ("laptop" . ,(nerd-icons-mdicon "nf-md-laptop" :face 'nerd-icons-blue))
656 ("tablet" . ,(nerd-icons-mdicon "nf-md-tablet" :face 'nerd-icons-blue))
657 ("mobile" . ,(nerd-icons-octicon "nf-oct-device_mobile" :face 'nerd-icons-blue))
658 ("smartphone" . ,(nerd-icons-mdicon "nf-md-cellphone" :face 'nerd-icons-blue))
659 ("phone" . ,(nerd-icons-mdicon "nf-md-phone" :face 'nerd-icons-blue))
660 ("iPhone" . ,(nerd-icons-mdicon "nf-md-cellphone" :face 'nerd-icons-blue))
661 ("keyboard" . ,(nerd-icons-mdicon "nf-md-keyboard" :face 'nerd-icons-blue))
662 ("mouse" . ,(nerd-icons-mdicon "nf-md-mouse" :face 'nerd-icons-blue))
663 ("Arduino" . ,(nerd-icons-flicon "nf-linux-arduino" :face 'nerd-icons-green))
664 ("Raspberry_Pi" . ,(nerd-icons-flicon "nf-linux-raspberry_pi" :face 'nerd-icons-lred))
665 ("PlatformIO" . ,(nerd-icons-sucicon "nf-seti-platformio" :face 'nerd-icons-orange))
666 ("hardware" . ,(nerd-icons-mdicon "nf-md-devices" :face 'nerd-icons-blue))
667 ("desktop_pc" . ,(nerd-icons-mdicon "nf-md-desktop_tower_monitor" :face 'nerd-icons-blue))
668 ("server" . ,(nerd-icons-mdicon "nf-md-server_network" :face 'nerd-icons-blue))
669 ("IoT" . ,(nerd-icons-mdicon "nf-md-network_pos" :face 'nerd-icons-blue))
670 ("NAS" . ,(nerd-icons-mdicon "nf-md-nas" :face 'nerd-icons-blue))
671 ("robot" . ,(nerd-icons-mdicon "nf-md-robot_outline" :face 'nerd-icons-blue))
672 ("USB" . ,(nerd-icons-mdicon "nf-md-usb" :face 'nerd-icons-blue))
673 ("WiFi" . ,(nerd-icons-mdicon "nf-md-wifi" :face 'nerd-icons-blue))
674 ("bluetooth" . ,(nerd-icons-mdicon "nf-md-bluetooth" :face 'nerd-icons-blue))
675 ("microphone" . ,(nerd-icons-mdicon "nf-md-microphone" :face 'nerd-icons-blue))
676 ("router" . ,(nerd-icons-mdicon "nf-md-router_network" :face 'nerd-icons-blue))
677 ("TV" . ,(nerd-icons-mdicon "nf-md-television_classic" :face 'nerd-icons-blue))
678 ("scanner" . ,(nerd-icons-mdicon "nf-md-scanner" :face 'nerd-icons-blue))
679 ("fax" . ,(nerd-icons-mdicon "nf-md-fax" :face 'nerd-icons-blue))
680 ("disk" . ,(nerd-icons-mdicon "nf-md-harddisk" :face 'nerd-icons-blue))
681 ("microscope" . ,(nerd-icons-mdicon "nf-md-microscope" :face 'nerd-icons-blue))
682 ("telescope" . ,(nerd-icons-codicon "nf-cod-telescope" :face 'nerd-icons-blue))
683 ("save" . ,(nerd-icons-mdicon "nf-md-content_save_outline" :face 'nerd-icons-blue))
684 ("sync" . ,(nerd-icons-mdicon "nf-md-sync" :face 'nerd-icons-blue))
685 ("backup" . ,(nerd-icons-mdicon "nf-md-backup_restore" :face 'nerd-icons-blue))
686 ("restore" . ,(nerd-icons-mdicon "nf-md-backup_restore" :face 'nerd-icons-red))
687 ("undo" . ,(nerd-icons-mdicon "nf-md-undo_variant" :face 'nerd-icons-green))
689 ;; network
690 ("network" . ,(nerd-icons-mdicon "nf-md-ip_network" :face 'nerd-icons-blue))
691 ("IP" . ,(nerd-icons-mdicon "nf-md-ip_outline" :face 'nerd-icons-blue))
692 ("online" . ,(nerd-icons-mdicon "nf-md-check_network" :face 'nerd-icons-green))
693 ("offline" . ,(nerd-icons-mdicon "nf-md-close_network" :face 'nerd-icons-red))
694 ("CMCC" . ,(nerd-icons-codicon "nf-cod-radio_tower" :face 'nerd-icons-blue))
696 ;; technology
697 ("virtual_reality" . ,(nerd-icons-mdicon "nf-md-virtual_reality" :face 'nerd-icons-blue))
699 ;; system
700 ("shortcut" . ,(nerd-icons-mdicon "nf-md-keyboard_variant" :face 'nerd-icons-green))
701 ("keybinding" . ,(nerd-icons-mdicon "nf-md-keyboard_settings_outline" :face 'nerd-icons-blue))
702 ("universal-access" . ,(nerd-icons-faicon "nf-fa-universal_access" :face 'nerd-icons-blue))
704 ;; softwares & applications
705 ("Emacs" . ,(nerd-icons-sucicon "nf-custom-emacs" :face 'nerd-icons-purple-alt))
706 ("Org_mode" . ,(nerd-icons-sucicon "nf-custom-orgmode" :face 'nerd-icons-dgreen))
707 ("Vim" . ,(nerd-icons-devicon "nf-dev-vim" :face 'nerd-icons-green))
708 ("VSCode" . ,(nerd-icons-mdicon "nf-md-microsoft_visual_studio_code" :face 'nerd-icons-blue-alt))
709 ("Firefox" . ,(nerd-icons-mdicon "nf-md-firefox" :face 'nerd-icons-orange))
710 ("Chromium" . ,(nerd-icons-faicon "nf-fa-chrome" :face 'nerd-icons-blue-alt))
711 ("Chrome" . ,(nerd-icons-faicon "nf-fa-chrome" :face 'nerd-icons-red))
712 ("Microsoft_Edge" . ,(nerd-icons-mdicon "nf-md-microsoft_edge" :face 'nerd-icons-blue))
713 ("Safari" . ,(nerd-icons-mdicon "nf-md-apple_safari" :face 'nerd-icons-blue))
714 ("terminal" . ,(nerd-icons-devicon "nf-dev-terminal" :face 'nerd-icons-green))
715 ("tmux" . ,(nerd-icons-codicon "nf-cod-terminal_tmux" :face 'nerd-icons-green))
716 ("command_line" . ,(nerd-icons-devicon "nf-dev-terminal" :face 'nerd-icons-blue))
717 ("REPL" . ,(nerd-icons-devicon "nf-dev-terminal_badge" :face 'nerd-icons-blue))
718 ("SSH" . ,(nerd-icons-mdicon "nf-md-ssh" :face 'nerd-icons-green))
719 ("powershell" . ,(nerd-icons-mdicon "nf-md-powershell" :face 'nerd-icons-blue))
720 ("dylib" . ,(nerd-icons-codicon "nf-cod-folder_library" :face 'nerd-icons-blue))
721 ("GDB" . ,(nerd-icons-codicon "nf-cod-debug_console" :face 'nerd-icons-orange))
722 ("Make" . ,(nerd-icons-sucicon "nf-seti-makefile" :face 'nerd-icons-red))
723 ("Finder" . ,(nerd-icons-mdicon "nf-md-apple_finder" :face 'nerd-icons-blue))
724 ("cloud" . ,(nerd-icons-mdicon "nf-md-cloud" :face 'nerd-icons-silver))
725 ("DevOps" . ,(nerd-icons-sucicon "nf-seti-pipeline" :face 'nerd-icons-blue))
726 ("package" . ,(nerd-icons-codicon "nf-cod-package" :face 'nerd-icons-orange))
727 ("container" . ,(nerd-icons-flicon "nf-linux-docker" :face 'nerd-icons-blue))
728 ("Docker" . ,(nerd-icons-flicon "nf-linux-docker" :face 'nerd-icons-blue))
729 ("Dockerfile" . ,(nerd-icons-devicon "nf-dev-docker" :face 'nerd-icons-cyan))
730 ("Ansible" . ,(nerd-icons-mdicon "nf-md-ansible" :face 'nerd-icons-red))
731 ("Puppet" . ,(nerd-icons-sucicon "nf-custom-puppet" :face 'nerd-icons-purple))
732 ("Terraform" . ,(nerd-icons-sucicon "nf-seti-terraform" :face 'nerd-icons-blue))
733 ("Nix" . ,(nerd-icons-mdicon "nf-md-nix" :face 'nerd-icons-blue))
734 ("settings" . ,(nerd-icons-codicon "nf-cod-settings" :face 'nerd-icons-blue))
735 ("security" . ,(nerd-icons-mdicon "nf-md-security" :face 'nerd-icons-green))
736 ("hacker" . ,(nerd-icons-faicon "nf-fa-user_secret" :face 'nerd-icons-dsilver))
737 ("reverse_engineering" . ,(nerd-icons-octicon "nf-oct-file_binary" :face 'nerd-icons-green))
738 ("cracker" . ,(nerd-icons-faicon "nf-fa-user_secret" :face 'nerd-icons-red-alt))
739 ("forensic" . ,(nerd-icons-mdicon "nf-md-loupe" :face 'nerd-icons-blue))
740 ("computer_forensic" . ,(nerd-icons-mdicon "nf-md-text_box_search_outline" :face 'nerd-icons-blue))
741 ("Godot" . ,(nerd-icons-sucicon "nf-seti-godot" :face 'nerd-icons-blue))
742 ("Nginx" . ,(nerd-icons-devicon "nf-dev-nginx" :face 'nerd-icons-green))
743 ("font" . ,(nerd-icons-faicon "nf-fa-font" :face 'nerd-icons-dsilver))
744 ("Electron" . ,(nerd-icons-mdicon "nf-md-electron_framework" :face 'nerd-icons-green))
745 ("Xamarin" . ,(nerd-icons-mdicon "nf-md-xamarin" :face 'nerd-icons-blue))
746 ("Ionic" . ,(nerd-icons-sucicon "nf-seti-ionic" :face 'nerd-icons-blue))
747 ;; Adobe softwares
748 ("Adobe_Photoshop" . ,(nerd-icons-devicon "nf-dev-photoshop" :face 'nerd-icons-blue))
749 ("Adobe_Illustrator" . ,(nerd-icons-devicon "nf-dev-illustrator" :face 'nerd-icons-orange))
750 ("Blender" . ,(nerd-icons-mdicon "nf-md-blender_software" :face 'nerd-icons-orange))
751 ("CAD" . ,(nerd-icons-mdicon "nf-md-file_cad_box" :face 'nerd-icons-blue))
753 ;; Systems
754 ("Linux" . ,(nerd-icons-flicon "nf-linux-tux" :face 'nerd-icons-silver))
755 ("Ubuntu_Linux" . ,(nerd-icons-flicon "nf-linux-ubuntu_inverse" :face 'nerd-icons-orange))
756 ("Debian_Linux" . ,(nerd-icons-flicon "nf-linux-debian" :face 'nerd-icons-red))
757 ("Fedora_Linux" . ,(nerd-icons-flicon "nf-linux-fedora_inverse" :face 'nerd-icons-blue))
758 ("RedHat_Linux" . ,(nerd-icons-flicon "nf-linux-redhat" :face 'nerd-icons-dred))
759 ("Arch_Linux" . ,(nerd-icons-flicon "nf-linux-archlinux" :face 'nerd-icons-blue))
760 ("Manjaro_Linux" . ,(nerd-icons-flicon "nf-linux-manjaro" :face 'nerd-icons-green))
761 ("Kali_Linux" . ,(nerd-icons-flicon "nf-linux-kali_linux" :face 'nerd-icons-blue))
762 ("Alpine_Linux" . ,(nerd-icons-flicon "nf-linux-alpine" :face 'nerd-icons-blue))
763 ("Gentoo_Linux" . ,(nerd-icons-flicon "nf-linux-gentoo" :face 'nerd-icons-blue-alt))
764 ("CentOS_Linux" . ,(nerd-icons-flicon "nf-linux-centos" :face 'nerd-icons-purple))
765 ("Deepin_Linux" . ,(nerd-icons-flicon "nf-linux-deepin" :face 'nerd-icons-blue-alt))
766 ("OpenSUSE_Linux" . ,(nerd-icons-flicon "nf-linux-opensuse" :face 'nerd-icons-lgreen))
767 ("NixOS" . ,(nerd-icons-flicon "nf-linux-nixos" :face 'nerd-icons-lblue))
768 ("OpenBSD" . ,(nerd-icons-flicon "nf-linux-openbsd" :face 'nerd-icons-dred))
769 ("Apple" . ,(nerd-icons-mdicon "nf-md-apple" :face 'nerd-icons-silver))
770 ("macOS" . ,(nerd-icons-mdicon "nf-md-apple_finder" :face 'nerd-icons-blue))
771 ("Windows" . ,(nerd-icons-mdicon "nf-md-microsoft_windows" :face 'nerd-icons-blue))
772 ("Android" . ,(nerd-icons-devicon "nf-dev-android" :face 'nerd-icons-green))
773 ("iOS" . ,(nerd-icons-mdicon "nf-md-apple_ios" :face 'nerd-icons-silver))
774 ("adb" . ,(nerd-icons-mdicon "nf-md-android" :face 'nerd-icons-green))
776 ;; Programming Languages
777 ("shell" . ,(nerd-icons-codicon "nf-cod-terminal_bash" :face 'nerd-icons-blue))
778 ("shell_script" . ,(nerd-icons-mdicon "nf-md-bash" :face 'nerd-icons-blue))
779 ("shebang" . ,(nerd-icons-mdicon "nf-md-bash" :face 'nerd-icons-blue))
780 ;; ("LISP" . ,())
781 ;; ("Common_Lisp" . ,())
782 ("Emacs_Lisp" . ,(nerd-icons-icon-for-mode 'emacs-lisp-mode))
783 ("Clojure" . ,(nerd-icons-devicon "nf-dev-clojure" :face 'nerd-icons-green))
784 ("ClojureScript" . ,(nerd-icons-devicon "nf-dev-clojure_alt" :face 'nerd-icons-blue))
785 ;; ("Scheme" . ,())
786 ;; ("Racket" . ,())
787 ("Python" . ,(nerd-icons-mdicon "nf-md-language_python" :face 'nerd-icons-orange))
788 ("Haskell" . ,(nerd-icons-mdicon "nf-md-language_haskell" :face 'nerd-icons-purple))
789 ("Julia" . ,(nerd-icons-sucicon "nf-seti-julia" :face 'nerd-icons-red))
790 ("C" . ,(nerd-icons-mdicon "nf-md-language_c" :face 'nerd-icons-blue))
791 ("C++" . ,(nerd-icons-mdicon "nf-md-language_cpp" :face 'nerd-icons-blue))
792 ("C#" . ,(nerd-icons-mdicon "nf-md-language_csharp" :face 'nerd-icons-blue))
793 ("F#" . ,(nerd-icons-devicon "nf-dev-fsharp" :face 'nerd-icons-blue))
794 ("Java" . ,(nerd-icons-mdicon "nf-md-language_java" :face 'nerd-icons-blue))
795 ("Scala" . ,(nerd-icons-devicon "nf-dev-scala" :face 'nerd-icons-red))
796 ("Kotlin" . ,(nerd-icons-mdicon "nf-md-language_kotlin" :face 'nerd-icons-blue))
797 ("Go" . ,(nerd-icons-mdicon "nf-md-language_go" :face 'nerd-icons-blue))
798 ("Rust" . ,(nerd-icons-mdicon "nf-md-language_rust" :face 'nerd-icons-dsilver))
799 ("Swift" . ,(nerd-icons-mdicon "nf-md-language_swift" :face 'nerd-icons-orange))
800 ("R" . ,(nerd-icons-mdicon "nf-md-language_r" :face 'nerd-icons-blue))
801 ;; ("Octave" . ,())
802 ;; ("Matlab" . ,())
803 ;; ("Mathematica" . ,())
804 ;; ("Delphi" . ,())
805 ("OCaml" . ,(nerd-icons-sucicon "nf-seti-ocaml" :face 'nerd-icons-orange))
806 ("ReasonML" . ,(nerd-icons-sucicon "nf-seti-reasonml" :face 'nerd-icons-orange))
807 ("Elixir" . ,(nerd-icons-sucicon "nf-custom-elixir" :face 'nerd-icons-purple))
808 ("Fortran" . ,(nerd-icons-mdicon "nf-md-language_fortran" :face 'nerd-icons-orange))
809 ("Prolog" . ,(nerd-icons-devicon "nf-dev-prolog" :face 'nerd-icons-blue))
810 ("Erlang" . ,(nerd-icons-devicon "nf-dev-erlang" :face 'nerd-icons-blue))
811 ("Ruby" . ,(nerd-icons-mdicon "nf-md-language_ruby" :face 'nerd-icons-red-alt))
812 ("Ruby_on_Rails" . ,(nerd-icons-mdicon "nf-md-language_ruby_on_rails" :face 'nerd-icons-red))
813 ("PHP" . ,(nerd-icons-mdicon "nf-md-language_php" :face 'nerd-icons-blue))
814 ("Perl" . ,(nerd-icons-sucicon "nf-seti-perl" :face 'nerd-icons-blue))
815 ("Lua" . ,(nerd-icons-mdicon "nf-md-language_lua" :face 'nerd-icons-dblue))
816 ("Web" . ,(nerd-icons-mdicon "nf-md-web" :face 'nerd-icons-blue))
817 ("webpage" . ,(nerd-icons-codicon "nf-cod-preview" :face 'nerd-icons-blue))
818 ("UserScript" . ,(nerd-icons-mdicon "nf-md-script_text_outline" :face 'nerd-icons-blue))
819 ("JavaScript" . ,(nerd-icons-mdicon "nf-md-language_javascript" :face 'nerd-icons-orange))
820 ("nodejs" . ,(nerd-icons-mdicon "nf-md-nodejs" :face 'nerd-icons-green))
821 ("npm" . ,(nerd-icons-mdicon "nf-md-npm" :face 'nerd-icons-red))
822 ("TypeScript" . ,(nerd-icons-mdicon "nf-md-language_typescript" :face 'nerd-icons-blue))
823 ;; ("WebAssembly" . ,())
824 ("HTML" . ,(nerd-icons-mdicon "nf-md-language_html5" :face 'nerd-icons-orange))
825 ("HTML5" . ,(nerd-icons-mdicon "nf-md-language_html5" :face 'nerd-icons-orange))
826 ("CSS" . ,(nerd-icons-mdicon "nf-md-language_css3" :face 'nerd-icons-blue))
827 ("CSS3" . ,(nerd-icons-mdicon "nf-md-language_css3" :face 'nerd-icons-blue))
828 ("SVG" . ,(nerd-icons-mdicon "nf-md-svg" :face 'nerd-icons-blue))
829 ("SQL" . ,(nerd-icons-mdicon "nf-md-database_search_outline" :face 'nerd-icons-blue))
830 ("SQLite" . ,(nerd-icons-devicon "nf-dev-sqllite" :face 'nerd-icons-blue))
831 ("PostgreSQL" . ,(nerd-icons-devicon "nf-dev-postgresql" :face 'nerd-icons-blue))
832 ("Firebase" . ,(nerd-icons-mdicon "nf-md-firebase" :face 'nerd-icons-red))
833 ("TeX" . ,(nerd-icons-sucicon "nf-seti-tex" :face 'nerd-icons-blue))
834 ("LaTeX" . ,(nerd-icons-sucicon "nf-seti-tex" :face 'nerd-icons-dorange))
835 ("Hacklang" . ,(nerd-icons-sucicon "nf-seti-hacklang" :face 'nerd-icons-blue))
836 ;; ("Assembly" . ,())
837 ;; ("VHDL" . ,())
838 ;; ("Verilog" . ,())
840 ;; Development
841 ("API" . ,(nerd-icons-mdicon "nf-md-api" :face 'nerd-icons-lorange))
842 ("AWS" . ,(nerd-icons-mdicon "nf-md-aws" :face 'nerd-icons-orange))
843 ("JSON" . ,(nerd-icons-mdicon "nf-md-code_json" :face 'nerd-icons-yellow))
844 ("GraphQL" . ,(nerd-icons-mdicon "nf-md-graphql" :face 'nerd-icons-lred))
845 ("Flask" . ,(nerd-icons-mdicon "nf-md-flask" :face 'nerd-icons-blue))
846 ("webpack" . ,(nerd-icons-mdicon "nf-md-webpack" :face 'nerd-icons-lblue))
847 ("React" . ,(nerd-icons-devicon "nf-dev-react" :face 'nerd-icons-lblue))
848 ("Vue" . ,(nerd-icons-mdicon "nf-md-vuejs" :face 'nerd-icons-green))
849 ("Svelte" . ,(nerd-icons-sucicon "nf-seti-svelte" :face 'nerd-icons-lred))
850 ("qrcode" . ,(nerd-icons-mdicon "nf-md-qrcode" :face 'nerd-icons-blue))
851 ("barcode" . ,(nerd-icons-mdicon "nf-md-barcode" :face 'nerd-icons-blue))
852 ("AI" . ,(nerd-icons-mdicon "nf-md-head_snowflake_outline" :face 'nerd-icons-blue))
854 ;; Testing
855 ("testing" . ,(nerd-icons-mdicon "nf-md-test_tube" :face 'nerd-icons-blue))
856 ("ab_testing" . ,(nerd-icons-mdicon "nf-md-ab_testing" :face 'nerd-icons-blue))
858 ;; Project
859 ("@project" . ,(nerd-icons-codicon "nf-cod-project" :face 'nerd-icons-blue))
861 ;; Open Source
862 ("GNU" . ,(nerd-icons-devicon "nf-dev-gnu" :face 'nerd-icons-silver))
863 ("license" . ,(nerd-icons-mdicon "nf-md-license" :face 'nerd-icons-green))
864 ("open_source" . ,(nerd-icons-mdicon "nf-md-open_source_initiative" :face 'nerd-icons-green))
865 ("creative-commons" . ,(nerd-icons-mdicon "nf-md-creative_commons" :face 'nerd-icons-silver))
867 ;; Business
868 ("copyright" . ,(nerd-icons-mdicon "nf-md-copyright" :face 'nerd-icons-blue))
869 ("trademark" . ,(nerd-icons-mdicon "nf-md-trademark" :face 'nerd-icons-blue))
870 ("registered" . ,(nerd-icons-mdicon "nf-md-registered_trademark" :face 'nerd-icons-blue))
871 ("DRM" . ,(nerd-icons-mdicon "nf-md-copyright" :face 'nerd-icons-silver))
872 ))))
874 (defun org-tag-beautify--add-internet-company-tag-icons ()
875 "Display internet company name tag as icon."
876 (setq org-tag-beautify-tag-icons-alist
877 (append org-tag-beautify-tag-icons-alist
878 `(("Internet" . ,(nerd-icons-codicon "nf-cod-globe" :face 'nerd-icons-blue))
879 ("Google" . ,(nerd-icons-mdicon "nf-md-google" :face 'nerd-icons-red))
880 ("Microsoft" . ,(nerd-icons-mdicon "nf-md-microsoft" :face 'nerd-icons-lblue))
881 ("Meta" . ,(nerd-icons-faicon "nf-fa-facebook_official" :face 'nerd-icons-dblue))
882 ("Facebook" . ,(nerd-icons-faicon "nf-fa-facebook_official" :face 'nerd-icons-dblue))
883 ("Twitter" . ,(nerd-icons-mdicon "nf-md-twitter" :face 'nerd-icons-lblue))
884 ("Amazon" . ,(nerd-icons-faicon "nf-fa-amazon" :face 'nerd-icons-orange))
885 ("Yahoo" . ,(nerd-icons-mdicon "nf-md-yahoo" :face 'nerd-icons-orange))
886 ("Reddit" . ,(nerd-icons-mdicon "nf-md-reddit" :face 'nerd-icons-red))
887 ("Mozilla" . ,(nerd-icons-devicon "nf-dev-mozilla" :face 'nerd-icons-red))
888 ("GitHub" . ,(nerd-icons-mdicon "nf-md-github" :face 'nerd-icons-dsilver))
889 ("GitLab" . ,(nerd-icons-mdicon "nf-md-gitlab" :face 'nerd-icons-orange))
890 ("Bitbucket" . ,(nerd-icons-mdicon "nf-md-bitbucket" :face 'nerd-icons-blue))
891 ("stack_exchange" . ,(nerd-icons-mdicon "nf-md-stack_exchange" :face 'nerd-icons-lblue))
892 ("stack_overflow" . ,(nerd-icons-mdicon "nf-md-stack_overflow" :face 'nerd-icons-orange))
893 ("wikipedia" . ,(nerd-icons-mdicon "nf-md-wikipedia" :face 'nerd-icons-dsilver))
894 ("mediawiki" . ,(nerd-icons-mdicon "nf-md-library_outline" :face 'nerd-icons-silver))
895 ("YouTube" . ,(nerd-icons-mdicon "nf-md-youtube" :face 'nerd-icons-red-alt))
896 ("LinkedIn" . ,(nerd-icons-mdicon "nf-md-linkedin" :face 'nerd-icons-blue))
897 ("Instagram" . ,(nerd-icons-mdicon "nf-md-instagram" :face 'nerd-icons-orange))
898 ("Dribbble" . ,(nerd-icons-faicon "nf-fa-dribbble" :face 'nerd-icons-dpink))
899 ("Dropbox" . ,(nerd-icons-mdicon "nf-md-dropbox" :face 'nerd-icons-lblue))
900 ("Baidu" . ,(nerd-icons-mdicon "nf-md-paw" :face 'nerd-icons-blue))
901 ("Tencent" . ,(nerd-icons-mdicon "nf-md-qqchat" :face 'nerd-icons-blue))
902 ("QQ" . ,(nerd-icons-mdicon "nf-md-qqchat" :face 'nerd-icons-blue))
903 ("weixin" . ,(nerd-icons-mdicon "nf-md-wechat" :face 'nerd-icons-green))
904 ("wechat" . ,(nerd-icons-mdicon "nf-md-wechat" :face 'nerd-icons-green))
905 ("weibo" . ,(nerd-icons-mdicon "nf-md-sina_weibo" :face 'nerd-icons-red))
906 ("whatsapp" . ,(nerd-icons-mdicon "nf-md-whatsapp" :face 'nerd-icons-green))
907 ("pocket" . ,(nerd-icons-faicon "nf-fa-get_pocket" :face 'nerd-icons-red))))))
909 (defun org-tag-beautify--add-countries-tag-icons ()
910 "Display countries name tag as flag icon."
911 (if-let ((dir (concat org-tag-beautify-data-dir "countries/"))
912 (available? (file-exists-p dir)))
913 (setq org-tag-beautify-tag-icons-alist
914 (append org-tag-beautify-tag-icons-alist
915 `(("afghanistan" . ,(create-image (concat dir "afghanistan.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
916 ("aland_islands" . ,(create-image (concat dir "aland-islands.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
917 ("albania" . ,(create-image (concat dir "albania.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
918 ("algeria" . ,(create-image (concat dir "algeria.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
919 ("american_samoa" . ,(create-image (concat dir "american-samoa.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
920 ("andorra" . ,(create-image (concat dir "andorra.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
921 ("angola" . ,(create-image (concat dir "angola.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
922 ("anguilla" . ,(create-image (concat dir "anguilla.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
923 ("antigua_and_barbuda" . ,(create-image (concat dir "antigua-and-barbuda.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
924 ("argentina" . ,(create-image (concat dir "argentina.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
925 ("armenia" . ,(create-image (concat dir "armenia.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
926 ("aruba" . ,(create-image (concat dir "aruba.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
927 ("australia" . ,(create-image (concat dir "australia.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
928 ("austria" . ,(create-image (concat dir "austria.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
929 ("azerbaijan" . ,(create-image (concat dir "azerbaijan.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
930 ("azores_islands" . ,(create-image (concat dir "azores-islands.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
931 ("bahamas" . ,(create-image (concat dir "bahamas.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
932 ("bahrain" . ,(create-image (concat dir "bahrain.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
933 ("balearic_islands" . ,(create-image (concat dir "balearic-islands.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
934 ("bangladesh" . ,(create-image (concat dir "bangladesh.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
935 ("barbados" . ,(create-image (concat dir "barbados.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
936 ("basque_country" . ,(create-image (concat dir "basque-country.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
937 ("belarus" . ,(create-image (concat dir "belarus.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
938 ("belgium" . ,(create-image (concat dir "belgium.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
939 ("belize" . ,(create-image (concat dir "belize.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
940 ("benin" . ,(create-image (concat dir "benin.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
941 ("bermuda" . ,(create-image (concat dir "bermuda.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
942 ("bhutan" . ,(create-image (concat dir "bhutan.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
943 ("bolivia" . ,(create-image (concat dir "bolivia.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
944 ("bonaire" . ,(create-image (concat dir "bonaire.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
945 ("bosnia_and_herzegovina" . ,(create-image (concat dir "bosnia-and-herzegovina.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
946 ("botswana" . ,(create-image (concat dir "botswana.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
947 ("brazil" . ,(create-image (concat dir "brazil.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
948 ("brunei" . ,(create-image (concat dir "brunei.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
949 ("bulgaria" . ,(create-image (concat dir "bulgaria.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
950 ("burkina_faso" . ,(create-image (concat dir "burkina-faso.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
951 ("burundi" . ,(create-image (concat dir "burundi.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
952 ("cambodia" . ,(create-image (concat dir "cambodia.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
953 ("cameroon" . ,(create-image (concat dir "cameroon.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
954 ("canada" . ,(create-image (concat dir "canada.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
955 ("canary_islands" . ,(create-image (concat dir "canary-islands.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
956 ("cape_verde" . ,(create-image (concat dir "cape-verde.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
957 ("cayman_islands" . ,(create-image (concat dir "cayman-islands.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
958 ("central_african_republic" . ,(create-image (concat dir "central-african-republic.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
959 ("ceuta" . ,(create-image (concat dir "ceuta.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
960 ("chad" . ,(create-image (concat dir "chad.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
961 ("chile" . ,(create-image (concat dir "chile.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
962 ("china" . ,(create-image (concat dir "china.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
963 ("christmas_island" . ,(create-image (concat dir "christmas-island.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
964 ("cocos_island" . ,(create-image (concat dir "cocos-island.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
965 ("colombia" . ,(create-image (concat dir "colombia.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
966 ("comoros" . ,(create-image (concat dir "comoros.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
967 ("cook_islands" . ,(create-image (concat dir "cook-islands.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
968 ("corsica" . ,(create-image (concat dir "corsica.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
969 ("costa_rica" . ,(create-image (concat dir "costa-rica.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
970 ("croatia" . ,(create-image (concat dir "croatia.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
971 ("cuba" . ,(create-image (concat dir "cuba.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
972 ("curacao" . ,(create-image (concat dir "curacao.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
973 ("cyprus" . ,(create-image (concat dir "cyprus.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
974 ("czech_republic" . ,(create-image (concat dir "czech-republic.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
975 ("democratic_republic_of_congo" . ,(create-image (concat dir "democratic-republic-of-congo.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
976 ("denmark" . ,(create-image (concat dir "denmark.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
977 ("djibouti" . ,(create-image (concat dir "djibouti.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
978 ("dominica" . ,(create-image (concat dir "dominica.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
979 ("dominican_republic" . ,(create-image (concat dir "dominican-republic.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
980 ("east_timor" . ,(create-image (concat dir "east-timor.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
981 ("ecuador" . ,(create-image (concat dir "ecuador.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
982 ("egypt" . ,(create-image (concat dir "egypt.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
983 ("el_salvador" . ,(create-image (concat dir "el-salvador.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
984 ("england" . ,(create-image (concat dir "england.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
985 ("equatorial_guinea" . ,(create-image (concat dir "equatorial-guinea.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
986 ("eritrea" . ,(create-image (concat dir "eritrea.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
987 ("estonia" . ,(create-image (concat dir "estonia.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
988 ("ethiopia" . ,(create-image (concat dir "ethiopia.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
989 ("european_union" . ,(create-image (concat dir "european-union.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
990 ("falkland_islands" . ,(create-image (concat dir "falkland-islands.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
991 ("faroe_islands" . ,(create-image (concat dir "faroe-islands.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
992 ("fiji" . ,(create-image (concat dir "fiji.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
993 ("finland" . ,(create-image (concat dir "finland.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
994 ("france" . ,(create-image (concat dir "france.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
995 ("french_polynesia" . ,(create-image (concat dir "french-polynesia.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
996 ("gabon" . ,(create-image (concat dir "gabon.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
997 ("galapagos_islands" . ,(create-image (concat dir "galapagos-islands.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
998 ("gambia" . ,(create-image (concat dir "gambia.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
999 ("georgia" . ,(create-image (concat dir "georgia.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1000 ("germany" . ,(create-image (concat dir "germany.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1001 ("ghana" . ,(create-image (concat dir "ghana.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1002 ("gibraltar" . ,(create-image (concat dir "gibraltar.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1003 ("greece" . ,(create-image (concat dir "greece.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1004 ("greenland" . ,(create-image (concat dir "greenland.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1005 ("grenada" . ,(create-image (concat dir "grenada.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1006 ("guam" . ,(create-image (concat dir "guam.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1007 ("guatemala" . ,(create-image (concat dir "guatemala.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1008 ("guernsey" . ,(create-image (concat dir "guernsey.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1009 ("guinea_bissau" . ,(create-image (concat dir "guinea-bissau.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1010 ("guinea" . ,(create-image (concat dir "guinea.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1011 ("haiti" . ,(create-image (concat dir "haiti.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1012 ("hawaii" . ,(create-image (concat dir "hawaii.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1013 ("honduras" . ,(create-image (concat dir "honduras.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1014 ("hong_kong" . ,(create-image (concat dir "hong-kong.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1015 ("hungary" . ,(create-image (concat dir "hungary.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1016 ("iceland" . ,(create-image (concat dir "iceland.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1017 ("india" . ,(create-image (concat dir "india.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1018 ("indonesia" . ,(create-image (concat dir "indonesia.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1019 ("iran" . ,(create-image (concat dir "iran.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1020 ("iraq" . ,(create-image (concat dir "iraq.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1021 ("ireland" . ,(create-image (concat dir "ireland.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1022 ("isle_of_man" . ,(create-image (concat dir "isle-of-man.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1023 ("israel" . ,(create-image (concat dir "israel.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1024 ("italy" . ,(create-image (concat dir "italy.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1025 ("ivory_coast" . ,(create-image (concat dir "ivory-coast.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1026 ("jamaica" . ,(create-image (concat dir "jamaica.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1027 ("japan" . ,(create-image (concat dir "japan.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1028 ("jersey" . ,(create-image (concat dir "jersey.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1029 ("jordan" . ,(create-image (concat dir "jordan.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1030 ("kazakhstan" . ,(create-image (concat dir "kazakhstan.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1031 ("kenya" . ,(create-image (concat dir "kenya.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1032 ("kiribati" . ,(create-image (concat dir "kiribati.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1033 ("kosovo" . ,(create-image (concat dir "kosovo.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1034 ("kuwait" . ,(create-image (concat dir "kuwait.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1035 ("kyrgyzstan" . ,(create-image (concat dir "kyrgyzstan.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1036 ("laos" . ,(create-image (concat dir "laos.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1037 ("latvia" . ,(create-image (concat dir "latvia.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1038 ("lebanon" . ,(create-image (concat dir "lebanon.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1039 ("lesotho" . ,(create-image (concat dir "lesotho.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1040 ("liberia" . ,(create-image (concat dir "liberia.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1041 ("libya" . ,(create-image (concat dir "libya.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1042 ("liechtenstein" . ,(create-image (concat dir "liechtenstein.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1043 ("lithuania" . ,(create-image (concat dir "lithuania.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1044 ("luxembourg" . ,(create-image (concat dir "luxembourg.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1045 ("macao" . ,(create-image (concat dir "macao.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1046 ("madagascar" . ,(create-image (concat dir "madagascar.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1047 ("madeira" . ,(create-image (concat dir "madeira.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1048 ("malawi" . ,(create-image (concat dir "malawi.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1049 ("malaysia" . ,(create-image (concat dir "malaysia.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1050 ("maldives" . ,(create-image (concat dir "maldives.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1051 ("mali" . ,(create-image (concat dir "mali.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1052 ("malta" . ,(create-image (concat dir "malta.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1053 ("marshall_island" . ,(create-image (concat dir "marshall-island.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1054 ("martinique" . ,(create-image (concat dir "martinique.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1055 ("mauritania" . ,(create-image (concat dir "mauritania.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1056 ("mauritius" . ,(create-image (concat dir "mauritius.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1057 ("melilla" . ,(create-image (concat dir "melilla.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1058 ("mexico" . ,(create-image (concat dir "mexico.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1059 ("micronesia" . ,(create-image (concat dir "micronesia.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1060 ("moldova" . ,(create-image (concat dir "moldova.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1061 ("monaco" . ,(create-image (concat dir "monaco.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1062 ("mongolia" . ,(create-image (concat dir "mongolia.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1063 ("montenegro" . ,(create-image (concat dir "montenegro.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1064 ("montserrat" . ,(create-image (concat dir "montserrat.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1065 ("morocco" . ,(create-image (concat dir "morocco.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1066 ("mozambique" . ,(create-image (concat dir "mozambique.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1067 ("myanmar" . ,(create-image (concat dir "myanmar.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1068 ("namibia" . ,(create-image (concat dir "namibia.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1069 ("nauru" . ,(create-image (concat dir "nauru.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1070 ("nepal" . ,(create-image (concat dir "nepal.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1071 ("netherlands" . ,(create-image (concat dir "netherlands.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1072 ("new_zealand" . ,(create-image (concat dir "new-zealand.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1073 ("nicaragua" . ,(create-image (concat dir "nicaragua.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1074 ("niger" . ,(create-image (concat dir "niger.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1075 ("nigeria" . ,(create-image (concat dir "nigeria.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1076 ("niue" . ,(create-image (concat dir "niue.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1077 ("norfolk_island" . ,(create-image (concat dir "norfolk-island.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1078 ("north_korea" . ,(create-image (concat dir "north-korea.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1079 ("northen_cyprus" . ,(create-image (concat dir "northen-cyprus.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1080 ("northern_marianas_islands" . ,(create-image (concat dir "northern-marianas-islands.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1081 ("norway" . ,(create-image (concat dir "norway.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1082 ("oman" . ,(create-image (concat dir "oman.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1083 ("orkney_islands" . ,(create-image (concat dir "orkney-islands.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1084 ("ossetia" . ,(create-image (concat dir "ossetia.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1085 ("otan" . ,(create-image (concat dir "otan.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1086 ("pakistan" . ,(create-image (concat dir "pakistan.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1087 ("palau" . ,(create-image (concat dir "palau.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1088 ("palestine" . ,(create-image (concat dir "palestine.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1089 ("panama" . ,(create-image (concat dir "panama.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1090 ("papua_new_guinea" . ,(create-image (concat dir "papua-new-guinea.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1091 ("peru" . ,(create-image (concat dir "peru.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1092 ("philippines" . ,(create-image (concat dir "philippines.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1093 ("pitcairn_islands" . ,(create-image (concat dir "pitcairn-islands.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1094 ("poland" . ,(create-image (concat dir "poland.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1095 ("portugal" . ,(create-image (concat dir "portugal.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1096 ("puerto_rico" . ,(create-image (concat dir "puerto-rico.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1097 ("qatar" . ,(create-image (concat dir "qatar.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1098 ("rapa_nui" . ,(create-image (concat dir "rapa-nui.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1099 ("republic_of_macedonia" . ,(create-image (concat dir "republic-of-macedonia.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1100 ("republic_of_the_congo" . ,(create-image (concat dir "republic-of-the-congo.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1101 ("romania" . ,(create-image (concat dir "romania.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1102 ("russia" . ,(create-image (concat dir "russia.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1103 ("rwanda" . ,(create-image (concat dir "rwanda.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1104 ("saba_island" . ,(create-image (concat dir "saba-island.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1105 ("sahrawi_arab_democratic_republic" . ,(create-image (concat dir "sahrawi-arab-democratic-republic.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1106 ("saint_kitts_and_nevis" . ,(create-image (concat dir "saint-kitts-and-nevis.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1107 ("samoa" . ,(create-image (concat dir "samoa.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1108 ("san_marino" . ,(create-image (concat dir "san-marino.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1109 ("sao_tome_and_principe" . ,(create-image (concat dir "sao-tome-and-principe.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1110 ("sardinia" . ,(create-image (concat dir "sardinia.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1111 ("saudi_arabia" . ,(create-image (concat dir "saudi-arabia.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1112 ("scotland" . ,(create-image (concat dir "scotland.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1113 ("senegal" . ,(create-image (concat dir "senegal.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1114 ("serbia" . ,(create-image (concat dir "serbia.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1115 ("seychelles" . ,(create-image (concat dir "seychelles.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1116 ("sicily" . ,(create-image (concat dir "sicily.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1117 ("sierra_leone" . ,(create-image (concat dir "sierra-leone.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1118 ("singapore" . ,(create-image (concat dir "singapore.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1119 ("sint_eustatius" . ,(create-image (concat dir "sint-eustatius.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1120 ("sint_maarten" . ,(create-image (concat dir "sint-maarten.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1121 ("slovakia" . ,(create-image (concat dir "slovakia.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1122 ("slovenia" . ,(create-image (concat dir "slovenia.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1123 ("solomon_islands" . ,(create-image (concat dir "solomon-islands.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1124 ("somalia" . ,(create-image (concat dir "somalia.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1125 ("somaliland" . ,(create-image (concat dir "somaliland.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1126 ("south_africa" . ,(create-image (concat dir "south-africa.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1127 ("south_korea" . ,(create-image (concat dir "south-korea.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1128 ("south_sudan" . ,(create-image (concat dir "south-sudan.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1129 ("spain" . ,(create-image (concat dir "spain.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1130 ("sri_lanka" . ,(create-image (concat dir "sri-lanka.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1131 ("st_barts" . ,(create-image (concat dir "st-barts.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1132 ("st_lucia" . ,(create-image (concat dir "st-lucia.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1133 ("st_vincent_and_the_grenadines" . ,(create-image (concat dir "st-vincent-and-the-grenadines.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1134 ("sudan" . ,(create-image (concat dir "sudan.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1135 ("suriname" . ,(create-image (concat dir "suriname.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1136 ("swaziland" . ,(create-image (concat dir "swaziland.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1137 ("sweden" . ,(create-image (concat dir "sweden.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1138 ("switzerland" . ,(create-image (concat dir "switzerland.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1139 ("syria" . ,(create-image (concat dir "syria.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1140 ("taiwan" . ,(create-image (concat dir "taiwan.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1141 ("tajikistan" . ,(create-image (concat dir "tajikistan.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1142 ("tanzania" . ,(create-image (concat dir "tanzania.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1143 ("thailand" . ,(create-image (concat dir "thailand.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1144 ("tibet" . ,(create-image (concat dir "tibet.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1145 ("togo" . ,(create-image (concat dir "togo.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1146 ("tokelau" . ,(create-image (concat dir "tokelau.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1147 ("tonga" . ,(create-image (concat dir "tonga.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1148 ("transnistria" . ,(create-image (concat dir "transnistria.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1149 ("trinidad_and_tobago" . ,(create-image (concat dir "trinidad-and-tobago.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1150 ("tubalu" . ,(create-image (concat dir "tubalu.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1151 ("tunisia" . ,(create-image (concat dir "tunisia.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1152 ("turkey" . ,(create-image (concat dir "turkey.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1153 ("turkmenistan" . ,(create-image (concat dir "turkmenistan.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1154 ("turks_and_caicos" . ,(create-image (concat dir "turks-and-caicos.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1155 ("uganda" . ,(create-image (concat dir "uganda.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1156 ("ukraine" . ,(create-image (concat dir "ukraine.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1157 ("united_arab_emirates" . ,(create-image (concat dir "united-arab-emirates.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1158 ("united_kingdom" . ,(create-image (concat dir "united-kingdom.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1159 ("united_nations" . ,(create-image (concat dir "united-nations.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1160 ("united_states_of_america" . ,(create-image (concat dir "united-states-of-america.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1161 ("uruguay" . ,(create-image (concat dir "uruguay.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1162 ("uzbekistan" . ,(create-image (concat dir "uzbekistn.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1163 ("vanuatu" . ,(create-image (concat dir "vanuatu.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1164 ("vatican_city" . ,(create-image (concat dir "vatican-city.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1165 ("venezuela" . ,(create-image (concat dir "venezuela.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1166 ("vietnam" . ,(create-image (concat dir "vietnam.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1167 ("virgin_islands" . ,(create-image (concat dir "virgin-islands.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1168 ("singapore" . ,(create-image (concat dir "singapore.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1169 ("yemen" . ,(create-image (concat dir "yemen.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1170 ("zambia" . ,(create-image (concat dir "zambia.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width))
1171 ("zimbabwe" . ,(create-image (concat dir "zimbabwe.png") nil nil :ascent 'center :height org-tag-beautify-icon-height :width org-tag-beautify-icon-width)))))))
1173 (defun org-tag-beautify--add-unicode-tag-icons ()
1174 "Display tag as Unicode emoji."
1175 (setq org-tag-beautify-tag-icons-alist
1176 (append org-tag-beautify-tag-icons-alist
1177 `(("DIY" . "🧰")))))
1179 ;;======================== auto add tags based on `org-attach' file types. ========================
1180 (defvar org-tag-beautify--org-attach--auto-tags-alist
1181 '(;; video formats
1182 ("mp4" ("video")) ("mkv" ("video")) ("mov" ("video")) ("webm" ("video")) ("flv" ("video")) ("rmvb" ("video")) ("avi" ("video"))
1183 ;; audio formats
1184 ("mp3" ("audio")) ("m4a" ("audio")) ("opus" ("audio"))
1185 ;; image formats
1186 ;; ("png" ("image")) ("jpg" ("image")) ("jpeg" ("image")) ("webp" ("image"))
1187 ("gif" ("gif"))
1188 ;; document file types
1189 ("org" ("Org_mode")) ("md" ("Markdown")) ("txt" ("document"))
1190 ("pdf" ("pdf")) ("doc" ("word")) ("docx" ("word")) ("xls" ("excel")) ("ppt" ("powerpoint"))
1191 ("epub" ("book")) ("mobi" ("book")) ("azw3" ("book")) ("djvu" ("book")) ("fb2" ("book"))
1192 ("cbr" ("comic")) ("cbz" ("comic")) ("cb7" ("comic"))
1193 ("zip" ("archive_file")) ("rar" ("archive_file")) ("tar" ("archive_file")) ("tar.gz" ("archive_file")) ("tar.bz2" ("archive_file"))
1194 ;; source code file formats
1195 ("py" ("Python")) ("rb" ("Ruby"))
1196 ("el" ("Emacs_Lisp")) ("cl" ("Common_Lisp")) ("clj" ("Clojure")) ("cljs" ("ClojureScript"))
1197 ("js" ("JavaScript")) ("html" ("HTML")) ("css" ("CSS"))
1198 ("java" ("Java")) ("c" ("C")) ("cpp" ("cpp"))
1200 "An alist of file extension and tag name pairs.")
1202 (defun org-tag-beautify--org-attach--auto-tags (origin-func file &optional visit-dir method)
1203 "Advice function on ORIGIN-FUNC to auto add tags for `org-attach' FILE format."
1204 (apply origin-func file visit-dir (list method))
1205 (let* ((file (substring-no-properties file))
1206 (extension (downcase (file-name-extension file)))
1207 (tags-list (cadr (assoc extension org-tag-beautify--org-attach--auto-tags-alist))))
1208 (save-excursion
1209 (org-back-to-heading)
1210 (let* ((original-tags-list (mapcar 'substring-no-properties (org-get-tags (point) 'local)))) ; get original existing tags list
1211 (org-set-tags
1212 (cl-remove-duplicates
1213 ;; Avoid duplicated tags. e.g. If existing tag is "book", don't add tag "pdf".
1214 (if (seq-intersection
1215 '("book" "document" "comic" "magazine" "paper")
1216 original-tags-list)
1217 original-tags-list
1218 ;; append `tags-list' to original tags list and set the new Org tags list.
1219 (append tags-list original-tags-list))
1220 :test (lambda (x y) (or (null y) (equal x y)))
1221 :from-end t))))))
1223 (defun org-tag-beautify-toggle--auto-add-tag-after-org-attach ()
1224 "Toggle auto add tags based on `org-attach-commands' attached file types."
1225 (if org-tag-beautify-mode
1226 (when org-tag-beautify-auto-add-tags
1227 ;; for [C-c C-a] `org-attach-commands'
1228 (advice-add 'org-attach-attach :around #'org-tag-beautify--org-attach--auto-tags))
1229 (advice-remove 'org-attach-attach #'org-tag-beautify--org-attach--auto-tags)))
1231 ;;==================================== `org-tag-alist' ===================================
1232 (defun org-tag-beautify-append-tags--with-hardcode-icons ()
1233 "Append hardcoded `org-tag-beautify-tag-icons-alist' icon tags to `org-tag-alist'.
1234 For `org-set-tags-command' completion."
1235 ;; Add hardcoded tags to `org-pretty-tags-surrogate-strings'.
1236 (setq org-pretty-tags-surrogate-strings nil) ; initialize original prettified tags.
1237 (org-tag-beautify--add-common-tag-icons)
1238 (org-tag-beautify--add-programming-tag-icons)
1239 (org-tag-beautify--add-internet-company-tag-icons)
1240 (org-tag-beautify--add-countries-tag-icons)
1241 (org-tag-beautify--add-unicode-tag-icons)
1242 (let ((icon-names (mapcar 'car org-tag-beautify-tag-icons-alist)))
1243 (setq org-tag-alist
1244 (append org-tag-alist
1245 `((:startgrouptag) ("@icons")
1246 (:grouptags) ,@(mapcar 'list icon-names)
1247 (:endgrouptag))))))
1249 (defun org-tag-beautify-append-tags--with-nerd-icons ()
1250 "Append `nerd-icons' icon names as tags into the `org-tag-alist'."
1251 (let ((icon-names (mapcar 'cdr (mapcar
1252 'org-tag-beautify--nerd-icons-get-icon-name
1253 org-tag-beautify--nerd-icons-icons-list))))
1254 (setq org-tag-alist
1255 (append org-tag-alist
1256 `((:startgrouptag) ("@nerd-icons")
1257 (:grouptags) ,@(mapcar 'list icon-names)
1258 (:endgrouptag))))))
1260 ;;============================================ minor mode ===========================================
1261 (defvar org-tag-beautify--org-tag-persistent-alist--original nil
1262 "A variable to store `org-tag-alist' value before enable `org-tag-beautify-mode'.")
1264 ;;;###autoload
1265 (defun org-tag-beautify-enable ()
1266 "Enable `org-tag-beautify'."
1267 ;; store current value of `org-tag-alist'.
1268 (setq org-tag-beautify--org-tag-persistent-alist--original org-tag-alist)
1269 ;; add extra tags to `org-tag-alist'
1270 ;; FIXME: caused [C-c C-q] can't complete Org buffer local tags.
1271 (org-tag-beautify-append-tags--with-hardcode-icons)
1272 (org-tag-beautify-append-tags--with-nerd-icons)
1273 ;; refresh Org headline tags on first loading.
1274 (org-tag-beautify-display-icon-refresh-all-headlines) ; initial run on mode enabled.
1275 ;; auto add tags on `org-attach'
1276 (org-tag-beautify-toggle--auto-add-tag-after-org-attach)
1277 (add-hook 'org-mode-hook #'org-tag-beautify-display-icon-refresh-all-headlines)
1278 (add-hook 'org-after-tags-change-hook #'org-tag-beautify-display-icon-refresh-headline))
1280 ;;;###autoload
1281 (defun org-tag-beautify-disable ()
1282 "Disable `org-tag-beautify'."
1283 ;; revert `org-tag-alist' value
1284 (setq org-tag-alist org-tag-beautify--org-tag-persistent-alist--original)
1285 (org-tag-beautify-delete-overlays)
1286 (org-tag-beautify-toggle--auto-add-tag-after-org-attach)
1287 (remove-hook 'org-mode-hook #'org-tag-beautify-display-icon-refresh-all-headlines)
1288 (remove-hook 'org-after-tags-change-hook #'org-tag-beautify-display-icon-refresh-headline))
1290 ;;;###autoload
1291 (define-minor-mode org-tag-beautify-mode
1292 "A minor mode that beautify Org tags with icons and images."
1293 :init-value nil
1294 :lighter nil
1295 :group 'org-tag-beautify
1296 :global t
1297 (if org-tag-beautify-mode
1298 (org-tag-beautify-enable)
1299 (org-tag-beautify-disable)))
1303 (provide 'org-tag-beautify)
1305 ;;; org-tag-beautify.el ends here