A simple emoji picker for rofi with multi-selection
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

rofimoji.py 42KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933
  1. #!/usr/bin/python3
  2. # -*- coding: utf-8 -*-
  3. import argparse
  4. import sys
  5. from subprocess import Popen, PIPE
  6. from typing import List
  7. emoji_list = """😀 grinning face
  8. 😃 grinning face with big eyes
  9. 😄 grinning face with smiling eyes
  10. 😁 beaming face with smiling eyes
  11. 😆 grinning squinting face
  12. 😅 grinning face with sweat
  13. 🤣 rolling on the floor laughing
  14. 😂 face with tears of joy
  15. 🙂 slightly smiling face
  16. 🙃 upside-down face
  17. 😉 winking face
  18. 😊 smiling face with smiling eyes
  19. 😇 smiling face with halo
  20. 🥰 smiling face with hearts
  21. 😍 smiling face with heart-eyes
  22. 🤩 star-struck
  23. 😘 face blowing a kiss
  24. 😗 kissing face
  25. ☺ smiling face
  26. 😚 kissing face with closed eyes
  27. 😙 kissing face with smiling eyes
  28. 😋 face savoring food
  29. 😛 face with tongue
  30. 😜 winking face with tongue
  31. 🤪 zany face
  32. 😝 squinting face with tongue
  33. 🤑 money-mouth face
  34. 🤗 hugging face
  35. 🤭 face with hand over mouth
  36. 🤫 shushing face
  37. 🤔 thinking face
  38. 🤐 zipper-mouth face
  39. 🤨 face with raised eyebrow
  40. 😐 neutral face
  41. 😑 expressionless face
  42. 😶 face without mouth
  43. 😏 smirking face
  44. 😒 unamused face
  45. 🙄 face with rolling eyes
  46. 😬 grimacing face
  47. 🤥 lying face
  48. 😌 relieved face
  49. 😔 pensive face
  50. 😪 sleepy face
  51. 🤤 drooling face
  52. 😴 sleeping face
  53. 😷 face with medical mask
  54. 🤒 face with thermometer
  55. 🤕 face with head-bandage
  56. 🤢 nauseated face
  57. 🤮 face vomiting
  58. 🤧 sneezing face
  59. 🥵 hot face
  60. 🥶 cold face
  61. 🥴 woozy face
  62. 😵 dizzy face
  63. 🤯 exploding head
  64. 🤠 cowboy hat face
  65. 🥳 partying face
  66. 😎 smiling face with sunglasses
  67. 🤓 nerd face
  68. 🧐 face with monocle
  69. 😕 confused face
  70. 😟 worried face
  71. 🙁 slightly frowning face
  72. ☹ frowning face
  73. 😮 face with open mouth
  74. 😯 hushed face
  75. 😲 astonished face
  76. 😳 flushed face
  77. 🥺 pleading face
  78. 😦 frowning face with open mouth
  79. 😧 anguished face
  80. 😨 fearful face
  81. 😰 anxious face with sweat
  82. 😥 sad but relieved face
  83. 😢 crying face
  84. 😭 loudly crying face
  85. 😱 face screaming in fear
  86. 😖 confounded face
  87. 😣 persevering face
  88. 😞 disappointed face
  89. 😓 downcast face with sweat
  90. 😩 weary face
  91. 😫 tired face
  92. 🥱 yawning face
  93. 😤 face with steam from nose
  94. 😡 pouting face
  95. 😠 angry face
  96. 🤬 face with symbols on mouth
  97. 😈 smiling face with horns
  98. 👿 angry face with horns
  99. 💀 skull
  100. ☠ skull and crossbones
  101. 💩 pile of poo
  102. 🤡 clown face
  103. 👹 ogre
  104. 👺 goblin
  105. 👻 ghost
  106. 👽 alien
  107. 👾 alien monster
  108. 🤖 robot
  109. 😺 grinning cat
  110. 😸 grinning cat with smiling eyes
  111. 😹 cat with tears of joy
  112. 😻 smiling cat with heart-eyes
  113. 😼 cat with wry smile
  114. 😽 kissing cat
  115. 🙀 weary cat
  116. 😿 crying cat
  117. 😾 pouting cat
  118. 🙈 see-no-evil monkey
  119. 🙉 hear-no-evil monkey
  120. 🙊 speak-no-evil monkey
  121. 💋 kiss mark
  122. 💌 love letter
  123. 💘 heart with arrow
  124. 💝 heart with ribbon
  125. 💖 sparkling heart
  126. 💗 growing heart
  127. 💓 beating heart
  128. 💞 revolving hearts
  129. 💕 two hearts
  130. 💟 heart decoration
  131. ❣ heart exclamation
  132. 💔 broken heart
  133. ❤ red heart
  134. 🧡 orange heart
  135. 💛 yellow heart
  136. 💚 green heart
  137. 💙 blue heart
  138. 💜 purple heart
  139. 🤎 brown heart
  140. 🖤 black heart
  141. 🤍 white heart
  142. 💯 hundred points
  143. 💢 anger symbol
  144. 💥 collision
  145. 💫 dizzy
  146. 💦 sweat droplets
  147. 💨 dashing away
  148. 🕳 hole
  149. 💣 bomb
  150. 💬 speech balloon
  151. 👁️‍🗨️ eye in speech bubble
  152. 🗨 left speech bubble
  153. 🗯 right anger bubble
  154. 💭 thought balloon
  155. 💤 zzz
  156. 👋 waving hand
  157. 🤚 raised back of hand
  158. 🖐 hand with fingers splayed
  159. ✋ raised hand
  160. 🖖 vulcan salute
  161. 👌 OK hand
  162. 🤏 pinching hand
  163. ✌ victory hand
  164. 🤞 crossed fingers
  165. 🤟 love-you gesture
  166. 🤘 sign of the horns
  167. 🤙 call me hand
  168. 👈 backhand index pointing left
  169. 👉 backhand index pointing right
  170. 👆 backhand index pointing up
  171. 🖕 middle finger
  172. 👇 backhand index pointing down
  173. ☝ index pointing up
  174. 👍 thumbs up
  175. 👎 thumbs down
  176. ✊ raised fist
  177. 👊 oncoming fist
  178. 🤛 left-facing fist
  179. 🤜 right-facing fist
  180. 👏 clapping hands
  181. 🙌 raising hands
  182. 👐 open hands
  183. 🤲 palms up together
  184. 🤝 handshake
  185. 🙏 folded hands
  186. ✍ writing hand
  187. 💅 nail polish
  188. 🤳 selfie
  189. 💪 flexed biceps
  190. 🦾 mechanical arm
  191. 🦿 mechanical leg
  192. 🦵 leg
  193. 🦶 foot
  194. 👂 ear
  195. 🦻 ear with hearing aid
  196. 👃 nose
  197. 🧠 brain
  198. 🦷 tooth
  199. 🦴 bone
  200. 👀 eyes
  201. 👁 eye
  202. 👅 tongue
  203. 👄 mouth
  204. 👶 baby
  205. 🧒 child
  206. 👦 boy
  207. 👧 girl
  208. 🧑 person
  209. 👱 person: blond hair
  210. 👨 man
  211. 🧔 man: beard
  212. 👱‍♂️ man: blond hair
  213. 👨‍🦰 man: red hair
  214. 👨‍🦱 man: curly hair
  215. 👨‍🦳 man: white hair
  216. 👨‍🦲 man: bald
  217. 👩 woman
  218. 👱‍♀️ woman: blond hair
  219. 👩‍🦰 woman: red hair
  220. 👩‍🦱 woman: curly hair
  221. 👩‍🦳 woman: white hair
  222. 👩‍🦲 woman: bald
  223. 🧓 older person
  224. 👴 old man
  225. 👵 old woman
  226. 🙍 person frowning
  227. 🙍‍♂️ man frowning
  228. 🙍‍♀️ woman frowning
  229. 🙎 person pouting
  230. 🙎‍♂️ man pouting
  231. 🙎‍♀️ woman pouting
  232. 🙅 person gesturing NO
  233. 🙅‍♂️ man gesturing NO
  234. 🙅‍♀️ woman gesturing NO
  235. 🙆 person gesturing OK
  236. 🙆‍♂️ man gesturing OK
  237. 🙆‍♀️ woman gesturing OK
  238. 💁 person tipping hand
  239. 💁‍♂️ man tipping hand
  240. 💁‍♀️ woman tipping hand
  241. 🙋 person raising hand
  242. 🙋‍♂️ man raising hand
  243. 🙋‍♀️ woman raising hand
  244. 🧏 deaf person
  245. 🧏‍♂️ deaf man
  246. 🧏‍♀️ deaf woman
  247. 🙇 person bowing
  248. 🙇‍♂️ man bowing
  249. 🙇‍♀️ woman bowing
  250. 🤦 person facepalming
  251. 🤦‍♂️ man facepalming
  252. 🤦‍♀️ woman facepalming
  253. 🤷 person shrugging
  254. 🤷‍♂️ man shrugging
  255. 🤷‍♀️ woman shrugging
  256. 👨‍⚕️ man health worker
  257. 👩‍⚕️ woman health worker
  258. 👨‍🎓 man student
  259. 👩‍🎓 woman student
  260. 👨‍🏫 man teacher
  261. 👩‍🏫 woman teacher
  262. 👨‍⚖️ man judge
  263. 👩‍⚖️ woman judge
  264. 👨‍🌾 man farmer
  265. 👩‍🌾 woman farmer
  266. 👨‍🍳 man cook
  267. 👩‍🍳 woman cook
  268. 👨‍🔧 man mechanic
  269. 👩‍🔧 woman mechanic
  270. 👨‍🏭 man factory worker
  271. 👩‍🏭 woman factory worker
  272. 👨‍💼 man office worker
  273. 👩‍💼 woman office worker
  274. 👨‍🔬 man scientist
  275. 👩‍🔬 woman scientist
  276. 👨‍💻 man technologist
  277. 👩‍💻 woman technologist
  278. 👨‍🎤 man singer
  279. 👩‍🎤 woman singer
  280. 👨‍🎨 man artist
  281. 👩‍🎨 woman artist
  282. 👨‍✈️ man pilot
  283. 👩‍✈️ woman pilot
  284. 👨‍🚀 man astronaut
  285. 👩‍🚀 woman astronaut
  286. 👨‍🚒 man firefighter
  287. 👩‍🚒 woman firefighter
  288. 👮 police officer
  289. 👮‍♂️ man police officer
  290. 👮‍♀️ woman police officer
  291. 🕵 detective
  292. 🕵️‍♂️ man detective
  293. 🕵️‍♀️ woman detective
  294. 💂 guard
  295. 💂‍♂️ man guard
  296. 💂‍♀️ woman guard
  297. 👷 construction worker
  298. 👷‍♂️ man construction worker
  299. 👷‍♀️ woman construction worker
  300. 🤴 prince
  301. 👸 princess
  302. 👳 person wearing turban
  303. 👳‍♂️ man wearing turban
  304. 👳‍♀️ woman wearing turban
  305. 👲 man with Chinese cap
  306. 🧕 woman with headscarf
  307. 🤵 man in tuxedo
  308. 👰 bride with veil
  309. 🤰 pregnant woman
  310. 🤱 breast-feeding
  311. 👼 baby angel
  312. 🎅 Santa Claus
  313. 🤶 Mrs. Claus
  314. 🦸 superhero
  315. 🦸‍♂️ man superhero
  316. 🦸‍♀️ woman superhero
  317. 🦹 supervillain
  318. 🦹‍♂️ man supervillain
  319. 🦹‍♀️ woman supervillain
  320. 🧙 mage
  321. 🧙‍♂️ man mage
  322. 🧙‍♀️ woman mage
  323. 🧚 fairy
  324. 🧚‍♂️ man fairy
  325. 🧚‍♀️ woman fairy
  326. 🧛 vampire
  327. 🧛‍♂️ man vampire
  328. 🧛‍♀️ woman vampire
  329. 🧜 merperson
  330. 🧜‍♂️ merman
  331. 🧜‍♀️ mermaid
  332. 🧝 elf
  333. 🧝‍♂️ man elf
  334. 🧝‍♀️ woman elf
  335. 🧞 genie
  336. 🧞‍♂️ man genie
  337. 🧞‍♀️ woman genie
  338. 🧟 zombie
  339. 🧟‍♂️ man zombie
  340. 🧟‍♀️ woman zombie
  341. 💆 person getting massage
  342. 💆‍♂️ man getting massage
  343. 💆‍♀️ woman getting massage
  344. 💇 person getting haircut
  345. 💇‍♂️ man getting haircut
  346. 💇‍♀️ woman getting haircut
  347. 🚶 person walking
  348. 🚶‍♂️ man walking
  349. 🚶‍♀️ woman walking
  350. 🧍 person standing
  351. 🧍‍♂️ man standing
  352. 🧍‍♀️ woman standing
  353. 🧎 person kneeling
  354. 🧎‍♂️ man kneeling
  355. 🧎‍♀️ woman kneeling
  356. 👨‍🦯 man with probing cane
  357. 👩‍🦯 woman with probing cane
  358. 👨‍🦼 man in motorized wheelchair
  359. 👩‍🦼 woman in motorized wheelchair
  360. 👨‍🦽 man in manual wheelchair
  361. 👩‍🦽 woman in manual wheelchair
  362. 🏃 person running
  363. 🏃‍♂️ man running
  364. 🏃‍♀️ woman running
  365. 💃 woman dancing
  366. 🕺 man dancing
  367. 🕴 man in suit levitating
  368. 👯 people with bunny ears
  369. 👯‍♂️ men with bunny ears
  370. 👯‍♀️ women with bunny ears
  371. 🧖 person in steamy room
  372. 🧖‍♂️ man in steamy room
  373. 🧖‍♀️ woman in steamy room
  374. 🧗 person climbing
  375. 🧗‍♂️ man climbing
  376. 🧗‍♀️ woman climbing
  377. 🤺 person fencing
  378. 🏇 horse racing
  379. ⛷ skier
  380. 🏂 snowboarder
  381. 🏌 person golfing
  382. 🏌️‍♂️ man golfing
  383. 🏌️‍♀️ woman golfing
  384. 🏄 person surfing
  385. 🏄‍♂️ man surfing
  386. 🏄‍♀️ woman surfing
  387. 🚣 person rowing boat
  388. 🚣‍♂️ man rowing boat
  389. 🚣‍♀️ woman rowing boat
  390. 🏊 person swimming
  391. 🏊‍♂️ man swimming
  392. 🏊‍♀️ woman swimming
  393. ⛹ person bouncing ball
  394. ⛹️‍♂️ man bouncing ball
  395. ⛹️‍♀️ woman bouncing ball
  396. 🏋 person lifting weights
  397. 🏋️‍♂️ man lifting weights
  398. 🏋️‍♀️ woman lifting weights
  399. 🚴 person biking
  400. 🚴‍♂️ man biking
  401. 🚴‍♀️ woman biking
  402. 🚵 person mountain biking
  403. 🚵‍♂️ man mountain biking
  404. 🚵‍♀️ woman mountain biking
  405. 🤸 person cartwheeling
  406. 🤸‍♂️ man cartwheeling
  407. 🤸‍♀️ woman cartwheeling
  408. 🤼 people wrestling
  409. 🤼‍♂️ men wrestling
  410. 🤼‍♀️ women wrestling
  411. 🤽 person playing water polo
  412. 🤽‍♂️ man playing water polo
  413. 🤽‍♀️ woman playing water polo
  414. 🤾 person playing handball
  415. 🤾‍♂️ man playing handball
  416. 🤾‍♀️ woman playing handball
  417. 🤹 person juggling
  418. 🤹‍♂️ man juggling
  419. 🤹‍♀️ woman juggling
  420. 🧘 person in lotus position
  421. 🧘‍♂️ man in lotus position
  422. 🧘‍♀️ woman in lotus position
  423. 🛀 person taking bath
  424. 🛌 person in bed
  425. 🧑‍🤝‍🧑 people holding hands
  426. 👭 women holding hands
  427. 👫 woman and man holding hands
  428. 👬 men holding hands
  429. 💏 kiss
  430. 👩‍❤️‍💋‍👨 kiss: woman, man
  431. 👨‍❤️‍💋‍👨 kiss: man, man
  432. 👩‍❤️‍💋‍👩 kiss: woman, woman
  433. 💑 couple with heart
  434. 👩‍❤️‍👨 couple with heart: woman, man
  435. 👨‍❤️‍👨 couple with heart: man, man
  436. 👩‍❤️‍👩 couple with heart: woman, woman
  437. 👪 family
  438. 👨‍👩‍👦 family: man, woman, boy
  439. 👨‍👩‍👧 family: man, woman, girl
  440. 👨‍👩‍👧‍👦 family: man, woman, girl, boy
  441. 👨‍👩‍👦‍👦 family: man, woman, boy, boy
  442. 👨‍👩‍👧‍👧 family: man, woman, girl, girl
  443. 👨‍👨‍👦 family: man, man, boy
  444. 👨‍👨‍👧 family: man, man, girl
  445. 👨‍👨‍👧‍👦 family: man, man, girl, boy
  446. 👨‍👨‍👦‍👦 family: man, man, boy, boy
  447. 👨‍👨‍👧‍👧 family: man, man, girl, girl
  448. 👩‍👩‍👦 family: woman, woman, boy
  449. 👩‍👩‍👧 family: woman, woman, girl
  450. 👩‍👩‍👧‍👦 family: woman, woman, girl, boy
  451. 👩‍👩‍👦‍👦 family: woman, woman, boy, boy
  452. 👩‍👩‍👧‍👧 family: woman, woman, girl, girl
  453. 👨‍👦 family: man, boy
  454. 👨‍👦‍👦 family: man, boy, boy
  455. 👨‍👧 family: man, girl
  456. 👨‍👧‍👦 family: man, girl, boy
  457. 👨‍👧‍👧 family: man, girl, girl
  458. 👩‍👦 family: woman, boy
  459. 👩‍👦‍👦 family: woman, boy, boy
  460. 👩‍👧 family: woman, girl
  461. 👩‍👧‍👦 family: woman, girl, boy
  462. 👩‍👧‍👧 family: woman, girl, girl
  463. 🗣 speaking head
  464. 👤 bust in silhouette
  465. 👥 busts in silhouette
  466. 👣 footprints
  467. 🦰 red hair
  468. 🦱 curly hair
  469. 🦳 white hair
  470. 🦲 bald
  471. 🐵 monkey face
  472. 🐒 monkey
  473. 🦍 gorilla
  474. 🦧 orangutan
  475. 🐶 dog face
  476. 🐕 dog
  477. 🦮 guide dog
  478. 🐕‍🦺 service dog
  479. 🐩 poodle
  480. 🐺 wolf
  481. 🦊 fox
  482. 🦝 raccoon
  483. 🐱 cat face
  484. 🐈 cat
  485. 🦁 lion
  486. 🐯 tiger face
  487. 🐅 tiger
  488. 🐆 leopard
  489. 🐴 horse face
  490. 🐎 horse
  491. 🦄 unicorn
  492. 🦓 zebra
  493. 🦌 deer
  494. 🐮 cow face
  495. 🐂 ox
  496. 🐃 water buffalo
  497. 🐄 cow
  498. 🐷 pig face
  499. 🐖 pig
  500. 🐗 boar
  501. 🐽 pig nose
  502. 🐏 ram
  503. 🐑 ewe
  504. 🐐 goat
  505. 🐪 camel
  506. 🐫 two-hump camel
  507. 🦙 llama
  508. 🦒 giraffe
  509. 🐘 elephant
  510. 🦏 rhinoceros
  511. 🦛 hippopotamus
  512. 🐭 mouse face
  513. 🐁 mouse
  514. 🐀 rat
  515. 🐹 hamster
  516. 🐰 rabbit face
  517. 🐇 rabbit
  518. 🐿 chipmunk
  519. 🦔 hedgehog
  520. 🦇 bat
  521. 🐻 bear
  522. 🐨 koala
  523. 🐼 panda
  524. 🦥 sloth
  525. 🦦 otter
  526. 🦨 skunk
  527. 🦘 kangaroo
  528. 🦡 badger
  529. 🐾 paw prints
  530. 🦃 turkey
  531. 🐔 chicken
  532. 🐓 rooster
  533. 🐣 hatching chick
  534. 🐤 baby chick
  535. 🐥 front-facing baby chick
  536. 🐦 bird
  537. 🐧 penguin
  538. 🕊 dove
  539. 🦅 eagle
  540. 🦆 duck
  541. 🦢 swan
  542. 🦉 owl
  543. 🦩 flamingo
  544. 🦚 peacock
  545. 🦜 parrot
  546. 🐸 frog
  547. 🐊 crocodile
  548. 🐢 turtle
  549. 🦎 lizard
  550. 🐍 snake
  551. 🐲 dragon face
  552. 🐉 dragon
  553. 🦕 sauropod
  554. 🦖 T-Rex
  555. 🐳 spouting whale
  556. 🐋 whale
  557. 🐬 dolphin
  558. 🐟 fish
  559. 🐠 tropical fish
  560. 🐡 blowfish
  561. 🦈 shark
  562. 🐙 octopus
  563. 🐚 spiral shell
  564. 🐌 snail
  565. 🦋 butterfly
  566. 🐛 bug
  567. 🐜 ant
  568. 🐝 honeybee
  569. 🐞 lady beetle
  570. 🦗 cricket
  571. 🕷 spider
  572. 🕸 spider web
  573. 🦂 scorpion
  574. 🦟 mosquito
  575. 🦠 microbe
  576. 💐 bouquet
  577. 🌸 cherry blossom
  578. 💮 white flower
  579. 🏵 rosette
  580. 🌹 rose
  581. 🥀 wilted flower
  582. 🌺 hibiscus
  583. 🌻 sunflower
  584. 🌼 blossom
  585. 🌷 tulip
  586. 🌱 seedling
  587. 🌲 evergreen tree
  588. 🌳 deciduous tree
  589. 🌴 palm tree
  590. 🌵 cactus
  591. 🌾 sheaf of rice
  592. 🌿 herb
  593. ☘ shamrock
  594. 🍀 four leaf clover
  595. 🍁 maple leaf
  596. 🍂 fallen leaf
  597. 🍃 leaf fluttering in wind
  598. 🍇 grapes
  599. 🍈 melon
  600. 🍉 watermelon
  601. 🍊 tangerine
  602. 🍋 lemon
  603. 🍌 banana
  604. 🍍 pineapple
  605. 🥭 mango
  606. 🍎 red apple
  607. 🍏 green apple
  608. 🍐 pear
  609. 🍑 peach
  610. 🍒 cherries
  611. 🍓 strawberry
  612. 🥝 kiwi fruit
  613. 🍅 tomato
  614. 🥥 coconut
  615. 🥑 avocado
  616. 🍆 eggplant
  617. 🥔 potato
  618. 🥕 carrot
  619. 🌽 ear of corn
  620. 🌶 hot pepper
  621. 🥒 cucumber
  622. 🥬 leafy green
  623. 🥦 broccoli
  624. 🧄 garlic
  625. 🧅 onion
  626. 🍄 mushroom
  627. 🥜 peanuts
  628. 🌰 chestnut
  629. 🍞 bread
  630. 🥐 croissant
  631. 🥖 baguette bread
  632. 🥨 pretzel
  633. 🥯 bagel
  634. 🥞 pancakes
  635. 🧇 waffle
  636. 🧀 cheese wedge
  637. 🍖 meat on bone
  638. 🍗 poultry leg
  639. 🥩 cut of meat
  640. 🥓 bacon
  641. 🍔 hamburger
  642. 🍟 french fries
  643. 🍕 pizza
  644. 🌭 hot dog
  645. 🥪 sandwich
  646. 🌮 taco
  647. 🌯 burrito
  648. 🥙 stuffed flatbread
  649. 🧆 falafel
  650. 🥚 egg
  651. 🍳 cooking
  652. 🥘 shallow pan of food
  653. 🍲 pot of food
  654. 🥣 bowl with spoon
  655. 🥗 green salad
  656. 🍿 popcorn
  657. 🧈 butter
  658. 🧂 salt
  659. 🥫 canned food
  660. 🍱 bento box
  661. 🍘 rice cracker
  662. 🍙 rice ball
  663. 🍚 cooked rice
  664. 🍛 curry rice
  665. 🍜 steaming bowl
  666. 🍝 spaghetti
  667. 🍠 roasted sweet potato
  668. 🍢 oden
  669. 🍣 sushi
  670. 🍤 fried shrimp
  671. 🍥 fish cake with swirl
  672. 🥮 moon cake
  673. 🍡 dango
  674. 🥟 dumpling
  675. 🥠 fortune cookie
  676. 🥡 takeout box
  677. 🦀 crab
  678. 🦞 lobster
  679. 🦐 shrimp
  680. 🦑 squid
  681. 🦪 oyster
  682. 🍦 soft ice cream
  683. 🍧 shaved ice
  684. 🍨 ice cream
  685. 🍩 doughnut
  686. 🍪 cookie
  687. 🎂 birthday cake
  688. 🍰 shortcake
  689. 🧁 cupcake
  690. 🥧 pie
  691. 🍫 chocolate bar
  692. 🍬 candy
  693. 🍭 lollipop
  694. 🍮 custard
  695. 🍯 honey pot
  696. 🍼 baby bottle
  697. 🥛 glass of milk
  698. ☕ hot beverage
  699. 🍵 teacup without handle
  700. 🍶 sake
  701. 🍾 bottle with popping cork
  702. 🍷 wine glass
  703. 🍸 cocktail glass
  704. 🍹 tropical drink
  705. 🍺 beer mug
  706. 🍻 clinking beer mugs
  707. 🥂 clinking glasses
  708. 🥃 tumbler glass
  709. 🥤 cup with straw
  710. 🧃 beverage box
  711. 🧉 mate
  712. 🧊 ice cube
  713. 🥢 chopsticks
  714. 🍽 fork and knife with plate
  715. 🍴 fork and knife
  716. 🥄 spoon
  717. 🔪 kitchen knife
  718. 🏺 amphora
  719. 🌍 globe showing Europe-Africa
  720. 🌎 globe showing Americas
  721. 🌏 globe showing Asia-Australia
  722. 🌐 globe with meridians
  723. 🗺 world map
  724. 🗾 map of Japan
  725. 🧭 compass
  726. 🏔 snow-capped mountain
  727. ⛰ mountain
  728. 🌋 volcano
  729. 🗻 mount fuji
  730. 🏕 camping
  731. 🏖 beach with umbrella
  732. 🏜 desert
  733. 🏝 desert island
  734. 🏞 national park
  735. 🏟 stadium
  736. 🏛 classical building
  737. 🏗 building construction
  738. 🧱 brick
  739. 🏘 houses
  740. 🏚 derelict house
  741. 🏠 house
  742. 🏡 house with garden
  743. 🏢 office building
  744. 🏣 Japanese post office
  745. 🏤 post office
  746. 🏥 hospital
  747. 🏦 bank
  748. 🏨 hotel
  749. 🏩 love hotel
  750. 🏪 convenience store
  751. 🏫 school
  752. 🏬 department store
  753. 🏭 factory
  754. 🏯 Japanese castle
  755. 🏰 castle
  756. 💒 wedding
  757. 🗼 Tokyo tower
  758. 🗽 Statue of Liberty
  759. ⛪ church
  760. 🕌 mosque
  761. 🛕 hindu temple
  762. 🕍 synagogue
  763. ⛩ shinto shrine
  764. 🕋 kaaba
  765. ⛲ fountain
  766. ⛺ tent
  767. 🌁 foggy
  768. 🌃 night with stars
  769. 🏙 cityscape
  770. 🌄 sunrise over mountains
  771. 🌅 sunrise
  772. 🌆 cityscape at dusk
  773. 🌇 sunset
  774. 🌉 bridge at night
  775. ♨ hot springs
  776. 🎠 carousel horse
  777. 🎡 ferris wheel
  778. 🎢 roller coaster
  779. 💈 barber pole
  780. 🎪 circus tent
  781. 🚂 locomotive
  782. 🚃 railway car
  783. 🚄 high-speed train
  784. 🚅 bullet train
  785. 🚆 train
  786. 🚇 metro
  787. 🚈 light rail
  788. 🚉 station
  789. 🚊 tram
  790. 🚝 monorail
  791. 🚞 mountain railway
  792. 🚋 tram car
  793. 🚌 bus
  794. 🚍 oncoming bus
  795. 🚎 trolleybus
  796. 🚐 minibus
  797. 🚑 ambulance
  798. 🚒 fire engine
  799. 🚓 police car
  800. 🚔 oncoming police car
  801. 🚕 taxi
  802. 🚖 oncoming taxi
  803. 🚗 automobile
  804. 🚘 oncoming automobile
  805. 🚙 sport utility vehicle
  806. 🚚 delivery truck
  807. 🚛 articulated lorry
  808. 🚜 tractor
  809. 🏎 racing car
  810. 🏍 motorcycle
  811. 🛵 motor scooter
  812. 🦽 manual wheelchair
  813. 🦼 motorized wheelchair
  814. 🛺 auto rickshaw
  815. 🚲 bicycle
  816. 🛴 kick scooter
  817. 🛹 skateboard
  818. 🚏 bus stop
  819. 🛣 motorway
  820. 🛤 railway track
  821. 🛢 oil drum
  822. ⛽ fuel pump
  823. 🚨 police car light
  824. 🚥 horizontal traffic light
  825. 🚦 vertical traffic light
  826. 🛑 stop sign
  827. 🚧 construction
  828. ⚓ anchor
  829. ⛵ sailboat
  830. 🛶 canoe
  831. 🚤 speedboat
  832. 🛳 passenger ship
  833. ⛴ ferry
  834. 🛥 motor boat
  835. 🚢 ship
  836. ✈ airplane
  837. 🛩 small airplane
  838. 🛫 airplane departure
  839. 🛬 airplane arrival
  840. 🪂 parachute
  841. 💺 seat
  842. 🚁 helicopter
  843. 🚟 suspension railway
  844. 🚠 mountain cableway
  845. 🚡 aerial tramway
  846. 🛰 satellite
  847. 🚀 rocket
  848. 🛸 flying saucer
  849. 🛎 bellhop bell
  850. 🧳 luggage
  851. ⌛ hourglass done
  852. ⏳ hourglass not done
  853. ⌚ watch
  854. ⏰ alarm clock
  855. ⏱ stopwatch
  856. ⏲ timer clock
  857. 🕰 mantelpiece clock
  858. 🕛 twelve o’clock
  859. 🕧 twelve-thirty
  860. 🕐 one o’clock
  861. 🕜 one-thirty
  862. 🕑 two o’clock
  863. 🕝 two-thirty
  864. 🕒 three o’clock
  865. 🕞 three-thirty
  866. 🕓 four o’clock
  867. 🕟 four-thirty
  868. 🕔 five o’clock
  869. 🕠 five-thirty
  870. 🕕 six o’clock
  871. 🕡 six-thirty
  872. 🕖 seven o’clock
  873. 🕢 seven-thirty
  874. 🕗 eight o’clock
  875. 🕣 eight-thirty
  876. 🕘 nine o’clock
  877. 🕤 nine-thirty
  878. 🕙 ten o’clock
  879. 🕥 ten-thirty
  880. 🕚 eleven o’clock
  881. 🕦 eleven-thirty
  882. 🌑 new moon
  883. 🌒 waxing crescent moon
  884. 🌓 first quarter moon
  885. 🌔 waxing gibbous moon
  886. 🌕 full moon
  887. 🌖 waning gibbous moon
  888. 🌗 last quarter moon
  889. 🌘 waning crescent moon
  890. 🌙 crescent moon
  891. 🌚 new moon face
  892. 🌛 first quarter moon face
  893. 🌜 last quarter moon face
  894. 🌡 thermometer
  895. ☀ sun
  896. 🌝 full moon face
  897. 🌞 sun with face
  898. 🪐 ringed planet
  899. ⭐ star
  900. 🌟 glowing star
  901. 🌠 shooting star
  902. 🌌 milky way
  903. ☁ cloud
  904. ⛅ sun behind cloud
  905. ⛈ cloud with lightning and rain
  906. 🌤 sun behind small cloud
  907. 🌥 sun behind large cloud
  908. 🌦 sun behind rain cloud
  909. 🌧 cloud with rain
  910. 🌨 cloud with snow
  911. 🌩 cloud with lightning
  912. 🌪 tornado
  913. 🌫 fog
  914. 🌬 wind face
  915. 🌀 cyclone
  916. 🌈 rainbow
  917. 🌂 closed umbrella
  918. ☂ umbrella
  919. ☔ umbrella with rain drops
  920. ⛱ umbrella on ground
  921. ⚡ high voltage
  922. ❄ snowflake
  923. ☃ snowman
  924. ⛄ snowman without snow
  925. ☄ comet
  926. 🔥 fire
  927. 💧 droplet
  928. 🌊 water wave
  929. 🎃 jack-o-lantern
  930. 🎄 Christmas tree
  931. 🎆 fireworks
  932. 🎇 sparkler
  933. 🧨 firecracker
  934. ✨ sparkles
  935. 🎈 balloon
  936. 🎉 party popper
  937. 🎊 confetti ball
  938. 🎋 tanabata tree
  939. 🎍 pine decoration
  940. 🎎 Japanese dolls
  941. 🎏 carp streamer
  942. 🎐 wind chime
  943. 🎑 moon viewing ceremony
  944. 🧧 red envelope
  945. 🎀 ribbon
  946. 🎁 wrapped gift
  947. 🎗 reminder ribbon
  948. 🎟 admission tickets
  949. 🎫 ticket
  950. 🎖 military medal
  951. 🏆 trophy
  952. 🏅 sports medal
  953. 🥇 1st place medal
  954. 🥈 2nd place medal
  955. 🥉 3rd place medal
  956. ⚽ soccer ball
  957. ⚾ baseball
  958. 🥎 softball
  959. 🏀 basketball
  960. 🏐 volleyball
  961. 🏈 american football
  962. 🏉 rugby football
  963. 🎾 tennis
  964. 🥏 flying disc
  965. 🎳 bowling
  966. 🏏 cricket game
  967. 🏑 field hockey
  968. 🏒 ice hockey
  969. 🥍 lacrosse
  970. 🏓 ping pong
  971. 🏸 badminton
  972. 🥊 boxing glove
  973. 🥋 martial arts uniform
  974. 🥅 goal net
  975. ⛳ flag in hole
  976. ⛸ ice skate
  977. 🎣 fishing pole
  978. 🤿 diving mask
  979. 🎽 running shirt
  980. 🎿 skis
  981. 🛷 sled
  982. 🥌 curling stone
  983. 🎯 direct hit
  984. 🪀 yo-yo
  985. 🪁 kite
  986. 🎱 pool 8 ball
  987. 🔮 crystal ball
  988. 🧿 nazar amulet
  989. 🎮 video game
  990. 🕹 joystick
  991. 🎰 slot machine
  992. 🎲 game die
  993. 🧩 puzzle piece
  994. 🧸 teddy bear
  995. ♠ spade suit
  996. ♥ heart suit
  997. ♦ diamond suit
  998. ♣ club suit
  999. ♟ chess pawn
  1000. 🃏 joker
  1001. 🀄 mahjong red dragon
  1002. 🎴 flower playing cards
  1003. 🎭 performing arts
  1004. 🖼 framed picture
  1005. 🎨 artist palette
  1006. 🧵 thread
  1007. 🧶 yarn
  1008. 👓 glasses
  1009. 🕶 sunglasses
  1010. 🥽 goggles
  1011. 🥼 lab coat
  1012. 🦺 safety vest
  1013. 👔 necktie
  1014. 👕 t-shirt
  1015. 👖 jeans
  1016. 🧣 scarf
  1017. 🧤 gloves
  1018. 🧥 coat
  1019. 🧦 socks
  1020. 👗 dress
  1021. 👘 kimono
  1022. 🥻 sari
  1023. 🩱 one-piece swimsuit
  1024. 🩲 briefs
  1025. 🩳 shorts
  1026. 👙 bikini
  1027. 👚 woman’s clothes
  1028. 👛 purse
  1029. 👜 handbag
  1030. 👝 clutch bag
  1031. 🛍 shopping bags
  1032. 🎒 backpack
  1033. 👞 man’s shoe
  1034. 👟 running shoe
  1035. 🥾 hiking boot
  1036. 🥿 flat shoe
  1037. 👠 high-heeled shoe
  1038. 👡 woman’s sandal
  1039. 🩰 ballet shoes
  1040. 👢 woman’s boot
  1041. 👑 crown
  1042. 👒 woman’s hat
  1043. 🎩 top hat
  1044. 🎓 graduation cap
  1045. 🧢 billed cap
  1046. ⛑ rescue worker’s helmet
  1047. 📿 prayer beads
  1048. 💄 lipstick
  1049. 💍 ring
  1050. 💎 gem stone
  1051. 🔇 muted speaker
  1052. 🔈 speaker low volume
  1053. 🔉 speaker medium volume
  1054. 🔊 speaker high volume
  1055. 📢 loudspeaker
  1056. 📣 megaphone
  1057. 📯 postal horn
  1058. 🔔 bell
  1059. 🔕 bell with slash
  1060. 🎼 musical score
  1061. 🎵 musical note
  1062. 🎶 musical notes
  1063. 🎙 studio microphone
  1064. 🎚 level slider
  1065. 🎛 control knobs
  1066. 🎤 microphone
  1067. 🎧 headphone
  1068. 📻 radio
  1069. 🎷 saxophone
  1070. 🎸 guitar
  1071. 🎹 musical keyboard
  1072. 🎺 trumpet
  1073. 🎻 violin
  1074. 🪕 banjo
  1075. 🥁 drum
  1076. 📱 mobile phone
  1077. 📲 mobile phone with arrow
  1078. ☎ telephone
  1079. 📞 telephone receiver
  1080. 📟 pager
  1081. 📠 fax machine
  1082. 🔋 battery
  1083. 🔌 electric plug
  1084. 💻 laptop computer
  1085. 🖥 desktop computer
  1086. 🖨 printer
  1087. ⌨ keyboard
  1088. 🖱 computer mouse
  1089. 🖲 trackball
  1090. 💽 computer disk
  1091. 💾 floppy disk
  1092. 💿 optical disk
  1093. 📀 dvd
  1094. 🧮 abacus
  1095. 🎥 movie camera
  1096. 🎞 film frames
  1097. 📽 film projector
  1098. 🎬 clapper board
  1099. 📺 television
  1100. 📷 camera
  1101. 📸 camera with flash
  1102. 📹 video camera
  1103. 📼 videocassette
  1104. 🔍 magnifying glass tilted left
  1105. 🔎 magnifying glass tilted right
  1106. 🕯 candle
  1107. 💡 light bulb
  1108. 🔦 flashlight
  1109. 🏮 red paper lantern
  1110. 🪔 diya lamp
  1111. 📔 notebook with decorative cover
  1112. 📕 closed book
  1113. 📖 open book
  1114. 📗 green book
  1115. 📘 blue book
  1116. 📙 orange book
  1117. 📚 books
  1118. 📓 notebook
  1119. 📒 ledger
  1120. 📃 page with curl
  1121. 📜 scroll
  1122. 📄 page facing up
  1123. 📰 newspaper
  1124. 🗞 rolled-up newspaper
  1125. 📑 bookmark tabs
  1126. 🔖 bookmark
  1127. 🏷 label
  1128. 💰 money bag
  1129. 💴 yen banknote
  1130. 💵 dollar banknote
  1131. 💶 euro banknote
  1132. 💷 pound banknote
  1133. 💸 money with wings
  1134. 💳 credit card
  1135. 🧾 receipt
  1136. 💹 chart increasing with yen
  1137. 💱 currency exchange
  1138. 💲 heavy dollar sign
  1139. ✉ envelope
  1140. 📧 e-mail
  1141. 📨 incoming envelope
  1142. 📩 envelope with arrow
  1143. 📤 outbox tray
  1144. 📥 inbox tray
  1145. 📦 package
  1146. 📫 closed mailbox with raised flag
  1147. 📪 closed mailbox with lowered flag
  1148. 📬 open mailbox with raised flag
  1149. 📭 open mailbox with lowered flag
  1150. 📮 postbox
  1151. 🗳 ballot box with ballot
  1152. ✏ pencil
  1153. ✒ black nib
  1154. 🖋 fountain pen
  1155. 🖊 pen
  1156. 🖌 paintbrush
  1157. 🖍 crayon
  1158. 📝 memo
  1159. 💼 briefcase
  1160. 📁 file folder
  1161. 📂 open file folder
  1162. 🗂 card index dividers
  1163. 📅 calendar
  1164. 📆 tear-off calendar
  1165. 🗒 spiral notepad
  1166. 🗓 spiral calendar
  1167. 📇 card index
  1168. 📈 chart increasing
  1169. 📉 chart decreasing
  1170. 📊 bar chart
  1171. 📋 clipboard
  1172. 📌 pushpin
  1173. 📍 round pushpin
  1174. 📎 paperclip
  1175. 🖇 linked paperclips
  1176. 📏 straight ruler
  1177. 📐 triangular ruler
  1178. ✂ scissors
  1179. 🗃 card file box
  1180. 🗄 file cabinet
  1181. 🗑 wastebasket
  1182. 🔒 locked
  1183. 🔓 unlocked
  1184. 🔏 locked with pen
  1185. 🔐 locked with key
  1186. 🔑 key
  1187. 🗝 old key
  1188. 🔨 hammer
  1189. 🪓 axe
  1190. ⛏ pick
  1191. ⚒ hammer and pick
  1192. 🛠 hammer and wrench
  1193. 🗡 dagger
  1194. ⚔ crossed swords
  1195. 🔫 pistol
  1196. 🏹 bow and arrow
  1197. 🛡 shield
  1198. 🔧 wrench
  1199. 🔩 nut and bolt
  1200. ⚙ gear
  1201. 🗜 clamp
  1202. ⚖ balance scale
  1203. 🦯 probing cane
  1204. 🔗 link
  1205. ⛓ chains
  1206. 🧰 toolbox
  1207. 🧲 magnet
  1208. ⚗ alembic
  1209. 🧪 test tube
  1210. 🧫 petri dish
  1211. 🧬 dna
  1212. 🔬 microscope
  1213. 🔭 telescope
  1214. 📡 satellite antenna
  1215. 💉 syringe
  1216. 🩸 drop of blood
  1217. 💊 pill
  1218. 🩹 adhesive bandage
  1219. 🩺 stethoscope
  1220. 🚪 door
  1221. 🛏 bed
  1222. 🛋 couch and lamp
  1223. 🪑 chair
  1224. 🚽 toilet
  1225. 🚿 shower
  1226. 🛁 bathtub
  1227. 🪒 razor
  1228. 🧴 lotion bottle
  1229. 🧷 safety pin
  1230. 🧹 broom
  1231. 🧺 basket
  1232. 🧻 roll of paper
  1233. 🧼 soap
  1234. 🧽 sponge
  1235. 🧯 fire extinguisher
  1236. 🛒 shopping cart
  1237. 🚬 cigarette
  1238. ⚰ coffin
  1239. ⚱ funeral urn
  1240. 🗿 moai
  1241. 🏧 ATM sign
  1242. 🚮 litter in bin sign
  1243. 🚰 potable water
  1244. ♿ wheelchair symbol
  1245. 🚹 men’s room
  1246. 🚺 women’s room
  1247. 🚻 restroom
  1248. 🚼 baby symbol
  1249. 🚾 water closet
  1250. 🛂 passport control
  1251. 🛃 customs
  1252. 🛄 baggage claim
  1253. 🛅 left luggage
  1254. ⚠ warning
  1255. 🚸 children crossing
  1256. ⛔ no entry
  1257. 🚫 prohibited
  1258. 🚳 no bicycles
  1259. 🚭 no smoking
  1260. 🚯 no littering
  1261. 🚱 non-potable water
  1262. 🚷 no pedestrians
  1263. 📵 no mobile phones
  1264. 🔞 no one under eighteen
  1265. ☢ radioactive
  1266. ☣ biohazard
  1267. ⬆ up arrow
  1268. ↗ up-right arrow
  1269. ➡ right arrow
  1270. ↘ down-right arrow
  1271. ⬇ down arrow
  1272. ↙ down-left arrow
  1273. ⬅ left arrow
  1274. ↖ up-left arrow
  1275. ↕ up-down arrow
  1276. ↔ left-right arrow
  1277. ↩ right arrow curving left
  1278. ↪ left arrow curving right
  1279. ⤴ right arrow curving up
  1280. ⤵ right arrow curving down
  1281. 🔃 clockwise vertical arrows
  1282. 🔄 counterclockwise arrows button
  1283. 🔙 BACK arrow
  1284. 🔚 END arrow
  1285. 🔛 ON! arrow
  1286. 🔜 SOON arrow
  1287. 🔝 TOP arrow
  1288. 🛐 place of worship
  1289. ⚛ atom symbol
  1290. 🕉 om
  1291. ✡ star of David
  1292. ☸ wheel of dharma
  1293. ☯ yin yang
  1294. ✝ latin cross
  1295. ☦ orthodox cross
  1296. ☪ star and crescent
  1297. ☮ peace symbol
  1298. 🕎 menorah
  1299. 🔯 dotted six-pointed star
  1300. ♈ Aries
  1301. ♉ Taurus
  1302. ♊ Gemini
  1303. ♋ Cancer
  1304. ♌ Leo
  1305. ♍ Virgo
  1306. ♎ Libra
  1307. ♏ Scorpio
  1308. ♐ Sagittarius
  1309. ♑ Capricorn
  1310. ♒ Aquarius
  1311. ♓ Pisces
  1312. ⛎ Ophiuchus
  1313. 🔀 shuffle tracks button
  1314. 🔁 repeat button
  1315. 🔂 repeat single button
  1316. ▶ play button
  1317. ⏩ fast-forward button
  1318. ⏭ next track button
  1319. ⏯ play or pause button
  1320. ◀ reverse button
  1321. ⏪ fast reverse button
  1322. ⏮ last track button
  1323. 🔼 upwards button
  1324. ⏫ fast up button
  1325. 🔽 downwards button
  1326. ⏬ fast down button
  1327. ⏸ pause button
  1328. ⏹ stop button
  1329. ⏺ record button
  1330. ⏏ eject button
  1331. 🎦 cinema
  1332. 🔅 dim button
  1333. 🔆 bright button
  1334. 📶 antenna bars
  1335. 📳 vibration mode
  1336. 📴 mobile phone off
  1337. ♀ female sign
  1338. ♂ male sign
  1339. ⚕ medical symbol
  1340. ♾ infinity
  1341. ♻ recycling symbol
  1342. ⚜ fleur-de-lis
  1343. 🔱 trident emblem
  1344. 📛 name badge
  1345. 🔰 Japanese symbol for beginner
  1346. ⭕ hollow red circle
  1347. ✅ check mark button
  1348. ☑ check box with check
  1349. ✔ check mark
  1350. ✖ multiplication sign
  1351. ❌ cross mark
  1352. ❎ cross mark button
  1353. ➕ plus sign
  1354. ➖ minus sign
  1355. ➗ division sign
  1356. ➰ curly loop
  1357. ➿ double curly loop
  1358. 〽 part alternation mark
  1359. ✳ eight-spoked asterisk
  1360. ✴ eight-pointed star
  1361. ❇ sparkle
  1362. ‼ double exclamation mark
  1363. ⁉ exclamation question mark
  1364. ❓ question mark
  1365. ❔ white question mark
  1366. ❕ white exclamation mark
  1367. ❗ exclamation mark
  1368. 〰 wavy dash
  1369. © copyright
  1370. ® registered
  1371. ™ trade mark
  1372. #️⃣ keycap: #
  1373. *️⃣ keycap: *
  1374. 0️⃣ keycap: 0
  1375. 1️⃣ keycap: 1
  1376. 2️⃣ keycap: 2
  1377. 3️⃣ keycap: 3
  1378. 4️⃣ keycap: 4
  1379. 5️⃣ keycap: 5
  1380. 6️⃣ keycap: 6
  1381. 7️⃣ keycap: 7
  1382. 8️⃣ keycap: 8
  1383. 9️⃣ keycap: 9
  1384. 🔟 keycap: 10
  1385. 🔠 input latin uppercase
  1386. 🔡 input latin lowercase
  1387. 🔢 input numbers
  1388. 🔣 input symbols
  1389. 🔤 input latin letters
  1390. 🅰 A button (blood type)
  1391. 🆎 AB button (blood type)
  1392. 🅱 B button (blood type)
  1393. 🆑 CL button
  1394. 🆒 COOL button
  1395. 🆓 FREE button
  1396. ℹ information
  1397. 🆔 ID button
  1398. Ⓜ circled M
  1399. 🆕 NEW button
  1400. 🆖 NG button
  1401. 🅾 O button (blood type)
  1402. 🆗 OK button
  1403. 🅿 P button
  1404. 🆘 SOS button
  1405. 🆙 UP! button
  1406. 🆚 VS button
  1407. 🈁 Japanese “here” button
  1408. 🈂 Japanese “service charge” button
  1409. 🈷 Japanese “monthly amount” button
  1410. 🈶 Japanese “not free of charge” button
  1411. 🈯 Japanese “reserved” button
  1412. 🉐 Japanese “bargain” button
  1413. 🈹 Japanese “discount” button
  1414. 🈚 Japanese “free of charge” button
  1415. 🈲 Japanese “prohibited” button
  1416. 🉑 Japanese “acceptable” button
  1417. 🈸 Japanese “application” button
  1418. 🈴 Japanese “passing grade” button
  1419. 🈳 Japanese “vacancy” button
  1420. ㊗ Japanese “congratulations” button
  1421. ㊙ Japanese “secret” button
  1422. 🈺 Japanese “open for business” button
  1423. 🈵 Japanese “no vacancy” button
  1424. 🔴 red circle
  1425. 🟠 orange circle
  1426. 🟡 yellow circle
  1427. 🟢 green circle
  1428. 🔵 blue circle
  1429. 🟣 purple circle
  1430. 🟤 brown circle
  1431. ⚫ black circle
  1432. ⚪ white circle
  1433. 🟥 red square
  1434. 🟧 orange square
  1435. 🟨 yellow square
  1436. 🟩 green square
  1437. 🟦 blue square
  1438. 🟪 purple square
  1439. 🟫 brown square
  1440. ⬛ black large square
  1441. ⬜ white large square
  1442. ◼ black medium square
  1443. ◻ white medium square
  1444. ◾ black medium-small square
  1445. ◽ white medium-small square
  1446. ▪ black small square
  1447. ▫ white small square
  1448. 🔶 large orange diamond
  1449. 🔷 large blue diamond
  1450. 🔸 small orange diamond
  1451. 🔹 small blue diamond
  1452. 🔺 red triangle pointed up
  1453. 🔻 red triangle pointed down
  1454. 💠 diamond with a dot
  1455. 🔘 radio button
  1456. 🔳 white square button
  1457. 🔲 black square button
  1458. 🏁 chequered flag
  1459. 🚩 triangular flag
  1460. 🎌 crossed flags
  1461. 🏴 black flag
  1462. 🏳 white flag
  1463. 🏳️‍🌈 rainbow flag
  1464. 🏴‍☠️ pirate flag
  1465. 🇦🇨 flag: Ascension Island
  1466. 🇦🇩 flag: Andorra
  1467. 🇦🇪 flag: United Arab Emirates
  1468. 🇦🇫 flag: Afghanistan
  1469. 🇦🇬 flag: Antigua & Barbuda
  1470. 🇦🇮 flag: Anguilla
  1471. 🇦🇱 flag: Albania
  1472. 🇦🇲 flag: Armenia
  1473. 🇦🇴 flag: Angola
  1474. 🇦🇶 flag: Antarctica
  1475. 🇦🇷 flag: Argentina
  1476. 🇦🇸 flag: American Samoa
  1477. 🇦🇹 flag: Austria
  1478. 🇦🇺 flag: Australia
  1479. 🇦🇼 flag: Aruba
  1480. 🇦🇽 flag: Åland Islands
  1481. 🇦🇿 flag: Azerbaijan
  1482. 🇧🇦 flag: Bosnia & Herzegovina
  1483. 🇧🇧 flag: Barbados
  1484. 🇧🇩 flag: Bangladesh
  1485. 🇧🇪 flag: Belgium
  1486. 🇧🇫 flag: Burkina Faso
  1487. 🇧🇬 flag: Bulgaria
  1488. 🇧🇭 flag: Bahrain
  1489. 🇧🇮 flag: Burundi
  1490. 🇧🇯 flag: Benin
  1491. 🇧🇱 flag: St. Barthélemy
  1492. 🇧🇲 flag: Bermuda
  1493. 🇧🇳 flag: Brunei
  1494. 🇧🇴 flag: Bolivia
  1495. 🇧🇶 flag: Caribbean Netherlands
  1496. 🇧🇷 flag: Brazil
  1497. 🇧🇸 flag: Bahamas
  1498. 🇧🇹 flag: Bhutan
  1499. 🇧🇻 flag: Bouvet Island
  1500. 🇧🇼 flag: Botswana
  1501. 🇧🇾 flag: Belarus
  1502. 🇧🇿 flag: Belize
  1503. 🇨🇦 flag: Canada
  1504. 🇨🇨 flag: Cocos (Keeling) Islands
  1505. 🇨🇩 flag: Congo - Kinshasa
  1506. 🇨🇫 flag: Central African Republic
  1507. 🇨🇬 flag: Congo - Brazzaville
  1508. 🇨🇭 flag: Switzerland
  1509. 🇨🇮 flag: Côte d’Ivoire
  1510. 🇨🇰 flag: Cook Islands
  1511. 🇨🇱 flag: Chile
  1512. 🇨🇲 flag: Cameroon
  1513. 🇨🇳 flag: China
  1514. 🇨🇴 flag: Colombia
  1515. 🇨🇵 flag: Clipperton Island
  1516. 🇨🇷 flag: Costa Rica
  1517. 🇨🇺 flag: Cuba
  1518. 🇨🇻 flag: Cape Verde
  1519. 🇨🇼 flag: Curaçao
  1520. 🇨🇽 flag: Christmas Island
  1521. 🇨🇾 flag: Cyprus
  1522. 🇨🇿 flag: Czechia
  1523. 🇩🇪 flag: Germany
  1524. 🇩🇬 flag: Diego Garcia
  1525. 🇩🇯 flag: Djibouti
  1526. 🇩🇰 flag: Denmark
  1527. 🇩🇲 flag: Dominica
  1528. 🇩🇴 flag: Dominican Republic
  1529. 🇩🇿 flag: Algeria
  1530. 🇪🇦 flag: Ceuta & Melilla
  1531. 🇪🇨 flag: Ecuador
  1532. 🇪🇪 flag: Estonia
  1533. 🇪🇬 flag: Egypt
  1534. 🇪🇭 flag: Western Sahara
  1535. 🇪🇷 flag: Eritrea
  1536. 🇪🇸 flag: Spain
  1537. 🇪🇹 flag: Ethiopia
  1538. 🇪🇺 flag: European Union
  1539. 🇫🇮 flag: Finland
  1540. 🇫🇯 flag: Fiji
  1541. 🇫🇰 flag: Falkland Islands
  1542. 🇫🇲 flag: Micronesia
  1543. 🇫🇴 flag: Faroe Islands
  1544. 🇫🇷 flag: France
  1545. 🇬🇦 flag: Gabon
  1546. 🇬🇧 flag: United Kingdom
  1547. 🇬🇩 flag: Grenada
  1548. 🇬🇪 flag: Georgia
  1549. 🇬🇫 flag: French Guiana
  1550. 🇬🇬 flag: Guernsey
  1551. 🇬🇭 flag: Ghana
  1552. 🇬🇮 flag: Gibraltar
  1553. 🇬🇱 flag: Greenland
  1554. 🇬🇲 flag: Gambia
  1555. 🇬🇳 flag: Guinea
  1556. 🇬🇵 flag: Guadeloupe
  1557. 🇬🇶 flag: Equatorial Guinea
  1558. 🇬🇷 flag: Greece
  1559. 🇬🇸 flag: South Georgia & South Sandwich Islands
  1560. 🇬🇹 flag: Guatemala
  1561. 🇬🇺 flag: Guam
  1562. 🇬🇼 flag: Guinea-Bissau
  1563. 🇬🇾 flag: Guyana
  1564. 🇭🇰 flag: Hong Kong SAR China
  1565. 🇭🇲 flag: Heard & McDonald Islands
  1566. 🇭🇳 flag: Honduras
  1567. 🇭🇷 flag: Croatia
  1568. 🇭🇹 flag: Haiti
  1569. 🇭🇺 flag: Hungary
  1570. 🇮🇨 flag: Canary Islands
  1571. 🇮🇩 flag: Indonesia
  1572. 🇮🇪 flag: Ireland
  1573. 🇮🇱 flag: Israel
  1574. 🇮🇲 flag: Isle of Man
  1575. 🇮🇳 flag: India
  1576. 🇮🇴 flag: British Indian Ocean Territory
  1577. 🇮🇶 flag: Iraq
  1578. 🇮🇷 flag: Iran
  1579. 🇮🇸 flag: Iceland
  1580. 🇮🇹 flag: Italy
  1581. 🇯🇪 flag: Jersey
  1582. 🇯🇲 flag: Jamaica
  1583. 🇯🇴 flag: Jordan
  1584. 🇯🇵 flag: Japan
  1585. 🇰🇪 flag: Kenya
  1586. 🇰🇬 flag: Kyrgyzstan
  1587. 🇰🇭 flag: Cambodia
  1588. 🇰🇮 flag: Kiribati
  1589. 🇰🇲 flag: Comoros
  1590. 🇰🇳 flag: St. Kitts & Nevis
  1591. 🇰🇵 flag: North Korea
  1592. 🇰🇷 flag: South Korea
  1593. 🇰🇼 flag: Kuwait
  1594. 🇰🇾 flag: Cayman Islands
  1595. 🇰🇿 flag: Kazakhstan
  1596. 🇱🇦 flag: Laos
  1597. 🇱🇧 flag: Lebanon
  1598. 🇱🇨 flag: St. Lucia
  1599. 🇱🇮 flag: Liechtenstein
  1600. 🇱🇰 flag: Sri Lanka
  1601. 🇱🇷 flag: Liberia
  1602. 🇱🇸 flag: Lesotho
  1603. 🇱🇹 flag: Lithuania
  1604. 🇱🇺 flag: Luxembourg
  1605. 🇱🇻 flag: Latvia
  1606. 🇱🇾 flag: Libya
  1607. 🇲🇦 flag: Morocco
  1608. 🇲🇨 flag: Monaco
  1609. 🇲🇩 flag: Moldova
  1610. 🇲🇪 flag: Montenegro
  1611. 🇲🇫 flag: St. Martin
  1612. 🇲🇬 flag: Madagascar
  1613. 🇲🇭 flag: Marshall Islands
  1614. 🇲🇰 flag: Macedonia
  1615. 🇲🇱 flag: Mali
  1616. 🇲🇲 flag: Myanmar (Burma)
  1617. 🇲🇳 flag: Mongolia
  1618. 🇲🇴 flag: Macao SAR China
  1619. 🇲🇵 flag: Northern Mariana Islands
  1620. 🇲🇶 flag: Martinique
  1621. 🇲🇷 flag: Mauritania
  1622. 🇲🇸 flag: Montserrat
  1623. 🇲🇹 flag: Malta
  1624. 🇲🇺 flag: Mauritius
  1625. 🇲🇻 flag: Maldives
  1626. 🇲🇼 flag: Malawi
  1627. 🇲🇽 flag: Mexico
  1628. 🇲🇾 flag: Malaysia
  1629. 🇲🇿 flag: Mozambique
  1630. 🇳🇦 flag: Namibia
  1631. 🇳🇨 flag: New Caledonia
  1632. 🇳🇪 flag: Niger
  1633. 🇳🇫 flag: Norfolk Island
  1634. 🇳🇬 flag: Nigeria
  1635. 🇳🇮 flag: Nicaragua
  1636. 🇳🇱 flag: Netherlands
  1637. 🇳🇴 flag: Norway
  1638. 🇳🇵 flag: Nepal
  1639. 🇳🇷 flag: Nauru
  1640. 🇳🇺 flag: Niue
  1641. 🇳🇿 flag: New Zealand
  1642. 🇴🇲 flag: Oman
  1643. 🇵🇦 flag: Panama
  1644. 🇵🇪 flag: Peru
  1645. 🇵🇫 flag: French Polynesia
  1646. 🇵🇬 flag: Papua New Guinea
  1647. 🇵🇭 flag: Philippines
  1648. 🇵🇰 flag: Pakistan
  1649. 🇵🇱 flag: Poland
  1650. 🇵🇲 flag: St. Pierre & Miquelon
  1651. 🇵🇳 flag: Pitcairn Islands
  1652. 🇵🇷 flag: Puerto Rico
  1653. 🇵🇸 flag: Palestinian Territories
  1654. 🇵🇹 flag: Portugal
  1655. 🇵🇼 flag: Palau
  1656. 🇵🇾 flag: Paraguay
  1657. 🇶🇦 flag: Qatar
  1658. 🇷🇪 flag: Réunion
  1659. 🇷🇴 flag: Romania
  1660. 🇷🇸 flag: Serbia
  1661. 🇷🇺 flag: Russia
  1662. 🇷🇼 flag: Rwanda
  1663. 🇸🇦 flag: Saudi Arabia
  1664. 🇸🇧 flag: Solomon Islands
  1665. 🇸🇨 flag: Seychelles
  1666. 🇸🇩 flag: Sudan
  1667. 🇸🇪 flag: Sweden
  1668. 🇸🇬 flag: Singapore
  1669. 🇸🇭 flag: St. Helena
  1670. 🇸🇮 flag: Slovenia
  1671. 🇸🇯 flag: Svalbard & Jan Mayen
  1672. 🇸🇰 flag: Slovakia
  1673. 🇸🇱 flag: Sierra Leone
  1674. 🇸🇲 flag: San Marino
  1675. 🇸🇳 flag: Senegal
  1676. 🇸🇴 flag: Somalia
  1677. 🇸🇷 flag: Suriname
  1678. 🇸🇸 flag: South Sudan
  1679. 🇸🇹 flag: São Tomé & Príncipe
  1680. 🇸🇻 flag: El Salvador
  1681. 🇸🇽 flag: Sint Maarten
  1682. 🇸🇾 flag: Syria
  1683. 🇸🇿 flag: Eswatini
  1684. 🇹🇦 flag: Tristan da Cunha
  1685. 🇹🇨 flag: Turks & Caicos Islands
  1686. 🇹🇩 flag: Chad
  1687. 🇹🇫 flag: French Southern Territories
  1688. 🇹🇬 flag: Togo
  1689. 🇹🇭 flag: Thailand
  1690. 🇹🇯 flag: Tajikistan
  1691. 🇹🇰 flag: Tokelau
  1692. 🇹🇱 flag: Timor-Leste
  1693. 🇹🇲 flag: Turkmenistan
  1694. 🇹🇳 flag: Tunisia
  1695. 🇹🇴 flag: Tonga
  1696. 🇹🇷 flag: Turkey
  1697. 🇹🇹 flag: Trinidad & Tobago
  1698. 🇹🇻 flag: Tuvalu
  1699. 🇹🇼 flag: Taiwan
  1700. 🇹🇿 flag: Tanzania
  1701. 🇺🇦 flag: Ukraine
  1702. 🇺🇬 flag: Uganda
  1703. 🇺🇲 flag: U.S. Outlying Islands
  1704. 🇺🇳 flag: United Nations
  1705. 🇺🇸 flag: United States
  1706. 🇺🇾 flag: Uruguay
  1707. 🇺🇿 flag: Uzbekistan
  1708. 🇻🇦 flag: Vatican City
  1709. 🇻🇨 flag: St. Vincent & Grenadines
  1710. 🇻🇪 flag: Venezuela
  1711. 🇻🇬 flag: British Virgin Islands
  1712. 🇻🇮 flag: U.S. Virgin Islands
  1713. 🇻🇳 flag: Vietnam
  1714. 🇻🇺 flag: Vanuatu
  1715. 🇼🇫 flag: Wallis & Futuna
  1716. 🇼🇸 flag: Samoa
  1717. 🇽🇰 flag: Kosovo
  1718. 🇾🇪 flag: Yemen
  1719. 🇾🇹 flag: Mayotte
  1720. 🇿🇦 flag: South Africa
  1721. 🇿🇲 flag: Zambia
  1722. 🇿🇼 flag: Zimbabwe
  1723. 🏴󠁧󠁢󠁥󠁮󠁧󠁿 flag: England
  1724. 🏴󠁧󠁢󠁳󠁣󠁴󠁿 flag: Scotland
  1725. 🏴󠁧󠁢󠁷󠁬󠁳󠁿 flag: Wales
  1726. """
  1727. skin_tone_selectable_emojis = {'👃', '🧑', '👇', '👨', '👋', '🏋', '👪', '🖐', '🙏', '🤜', '💅',
  1728. '🤼', '🎅', '🤦', '🙇', '🤾', '💂', '🧗', '👈', '🤹', '👵', '🤽',
  1729. '🏄', '🧛', '🧖', '👷', '💁', '🤟', '🧘', '🧏', '👳', '👱', '✊',
  1730. '👎', '👶', '🧜', '🤘', '🧔', '🕴', '🏃', '🤰', '👌', '🙎', '🧒',
  1731. '🛀', '🤲', '🧝', '👩', '💪', '🧙', '🤴', '👉', '💑', '🧎', '🧚',
  1732. '🕺', '💃', '🧍', '🙌', '🚣', '👏', '💏', '🚶', '✋', '🛌', '🏊',
  1733. '🤸', '🖖', '🧓', '🤱', '💇', '☝', '👧', '👲', '👴', '🤏', '🦹',
  1734. '🦵', '🧕', '🚴', '🤳', '✌', '💆', '🤷', '🤚', '👍', '👭', '🙆',
  1735. '🕵', '🤛', '🤶', '🦶', '🙋', '⛹', '👼', '👊', '🙅', '👰', '🦸',
  1736. '👮', '🏇', '🦻', '👐', '🤞', '✍', '🤙', '🏌', '👂', '👬', '🤵',
  1737. '🙍', '🏂', '🤝', '👫', '👦', '👸', '👆', '👯', '🖕', '🚵'}
  1738. fitzpatrick_modifiers = {
  1739. '': 'neutral',
  1740. '🏻': 'light skin',
  1741. '🏼': 'medium-light skin',
  1742. '🏽': 'moderate skin',
  1743. '🏾': 'dark brown skin',
  1744. '🏿': 'black skin'
  1745. }
  1746. fitzpatrick_modifiers_reversed = {" ".join(name.split()[:-1]): modifier for modifier, name in
  1747. fitzpatrick_modifiers.items() if name != "neutral"}
  1748. def main():
  1749. args = parse_arguments()
  1750. active_window = get_active_window()
  1751. returncode, stdout = open_main_rofi_window(args)
  1752. if returncode == 1:
  1753. sys.exit()
  1754. else:
  1755. emojis = compile_chosen_emojis(stdout.splitlines(), args.skin_tone, args.rofi_args)
  1756. if returncode == 0:
  1757. insert_emojis(emojis, active_window, args.use_clipboard)
  1758. elif returncode == 10:
  1759. copy_emojis_to_clipboard(emojis)
  1760. elif returncode == 11:
  1761. type_emojis(emojis, active_window)
  1762. elif returncode == 12:
  1763. copy_paste_emojis(emojis, active_window)
  1764. def parse_arguments() -> argparse.Namespace:
  1765. parser = argparse.ArgumentParser(description='Select, insert or copy Unicode emoji')
  1766. parser.add_argument(
  1767. '--use-clipboard',
  1768. '-c',
  1769. dest='use_clipboard',
  1770. action='store_true',
  1771. help='Do not type the emoji directly, but copy it to the clipboard, insert it from there and then restore the clipboard\'s original value'
  1772. )
  1773. parser.add_argument(
  1774. '--skin-tone',
  1775. '-s',
  1776. dest='skin_tone',
  1777. action='store',
  1778. choices=['neutral', 'light', 'medium-light', 'moderate', 'dark brown', 'black', 'ask'],
  1779. default='ask',
  1780. help='Decide on a skin-tone for all supported emojis. If nor set (or set to "ask"), you will be asked for each one'
  1781. )
  1782. parser.add_argument(
  1783. '--rofi-args',
  1784. dest='rofi_args',
  1785. action='store',
  1786. default='',
  1787. help='A string of arguments to give to rofi'
  1788. )
  1789. parsed_args = parser.parse_args()
  1790. parsed_args.rofi_args = parsed_args.rofi_args.split()
  1791. return parsed_args
  1792. def get_active_window() -> str:
  1793. xdotool = Popen(args=['xdotool', 'getactivewindow'], stdout=PIPE)
  1794. return xdotool.communicate()[0].decode("utf-8")[:-1]
  1795. def open_main_rofi_window(args):
  1796. rofi = Popen(
  1797. args=[
  1798. 'rofi',
  1799. '-dmenu',
  1800. '-i',
  1801. '-multi-select',
  1802. '-p',
  1803. ' 😀 ',
  1804. '-kb-custom-1',
  1805. 'Alt+c',
  1806. '-kb-custom-2',
  1807. 'Alt+t',
  1808. '-kb-custom-3',
  1809. 'Alt+p',
  1810. *args.rofi_args
  1811. ],
  1812. stdin=PIPE,
  1813. stdout=PIPE
  1814. )
  1815. (stdout, _) = rofi.communicate(input=emoji_list.encode('utf-8'))
  1816. return rofi.returncode, stdout
  1817. def compile_chosen_emojis(chosen_emojis: List[bytes], skin_tone: str, rofi_args: List[str]) -> str:
  1818. emojis = ""
  1819. for line in chosen_emojis:
  1820. emoji = line.decode('utf-8').split()[0]
  1821. if emoji in skin_tone_selectable_emojis:
  1822. emoji = select_skin_tone(emoji, skin_tone, rofi_args)
  1823. emojis += emoji
  1824. return emojis
  1825. def select_skin_tone(selected_emoji: chr, skin_tone: str, rofi_args: List[str]):
  1826. if skin_tone == 'neutral':
  1827. return selected_emoji
  1828. elif skin_tone != 'ask':
  1829. return selected_emoji + fitzpatrick_modifiers_reversed[skin_tone]
  1830. else:
  1831. modified_emojis = '\n'.join(map(
  1832. lambda modifier: selected_emoji + modifier + " " + fitzpatrick_modifiers[modifier],
  1833. fitzpatrick_modifiers.keys()
  1834. ))
  1835. rofi_skin = Popen(
  1836. args=[
  1837. 'rofi',
  1838. '-dmenu',
  1839. '-i',
  1840. '-p',
  1841. selected_emoji + ' ',
  1842. *rofi_args
  1843. ],
  1844. stdin=PIPE,
  1845. stdout=PIPE
  1846. )
  1847. (stdout_skin, _) = rofi_skin.communicate(input=modified_emojis.encode('utf-8'))
  1848. if rofi_skin.returncode == 1:
  1849. return ''
  1850. return stdout_skin.split()[0].decode('utf-8')
  1851. def insert_emojis(emojis: str, active_window: str, use_clipboard: bool = False):
  1852. if use_clipboard:
  1853. copy_paste_emojis(emojis, active_window)
  1854. else:
  1855. type_emojis(emojis, active_window)
  1856. def copy_paste_emojis(emojis: str, active_window: str):
  1857. xsel = Popen(args=['xsel', '-o', '-b'], stdout=PIPE)
  1858. old_clipboard_content = xsel.communicate()[0].decode("utf-8")
  1859. xsel = Popen(args=['xsel', '-o', '-p'], stdout=PIPE)
  1860. old_primary_content = xsel.communicate()[0].decode("utf-8")
  1861. xsel = Popen(args=['xsel', '-i', '-b'], stdin=PIPE)
  1862. xsel.communicate(input=emojis.encode('utf-8'))
  1863. xsel = Popen(args=['xsel', '-i', '-p'], stdin=PIPE)
  1864. xsel.communicate(input=emojis.encode('utf-8'))
  1865. Popen(args=['xdotool', 'key', '--clearmodifiers', '--window', active_window,
  1866. 'Shift+Insert']).wait()
  1867. xsel = Popen(args=['xsel', '-i', '-b'], stdin=PIPE)
  1868. xsel.communicate(input=old_clipboard_content.encode('utf-8'))
  1869. xsel = Popen(args=['xsel', '-i', '-p'], stdin=PIPE)
  1870. xsel.communicate(input=old_primary_content.encode('utf-8'))
  1871. def type_emojis(emojis: str, active_window: str):
  1872. Popen(
  1873. args=[
  1874. 'xdotool',
  1875. 'type',
  1876. '--clearmodifiers',
  1877. '--window',
  1878. active_window,
  1879. emojis
  1880. ]
  1881. )
  1882. def copy_emojis_to_clipboard(emojis: str):
  1883. xsel = Popen(
  1884. args=[
  1885. 'xsel',
  1886. '-i',
  1887. '-b'
  1888. ],
  1889. stdin=PIPE
  1890. )
  1891. xsel.communicate(input=emojis.encode('utf-8'))
  1892. if __name__ == "__main__":
  1893. main()