diff --git a/.local/libexec/cron/checkup b/.local/libexec/cron/checkup
index 0033ebc5..a79f466e 100755
--- a/.local/libexec/cron/checkup
+++ b/.local/libexec/cron/checkup
@@ -1,6 +1,6 @@
#!/bin/sh
-pkill -RTMIN+8 dwmblocks
+pkill -RTMIN+1 dwmblocks
askupgrade() {
[ "$(notify-send -c updates --action=Yes=Yes --action=No=No " Repository Sync" "Updates available. Update now?")" = 'Yes' ] && $TERMCMD upgrades
diff --git a/.local/libexec/daemons/sbd-battery b/.local/libexec/daemons/sbd-battery
index ce8c80ce..2f04cb36 100755
--- a/.local/libexec/daemons/sbd-battery
+++ b/.local/libexec/daemons/sbd-battery
@@ -2,6 +2,6 @@
# battery status file is sent in as an argument from sb-battery
upower --monitor-detail -i "$1" | while read -r _; do
- pkill -RTMIN+3 dwmblocks
- timeout 5 cat >/dev/null
+ pkill -RTMIN+4 dwmblocks
+ sleep 5
done
diff --git a/.local/libexec/daemons/sbd-playerctl b/.local/libexec/daemons/sbd-playerctl
index 280c4fea..3e09eec3 100755
--- a/.local/libexec/daemons/sbd-playerctl
+++ b/.local/libexec/daemons/sbd-playerctl
@@ -1,4 +1,5 @@
#!/bin/sh
playerctl status -F | while read -r _; do
- pkill -RTMIN+11 dwmblocks
+ # WARN: Not currently used in dwmblocks
+ pkill -RTMIN+11 dwmblocks
done
diff --git a/.local/libexec/dwm/dmenurecord b/.local/libexec/dwm/dmenurecord
index a6c75508..e57b78f8 100755
--- a/.local/libexec/dwm/dmenurecord
+++ b/.local/libexec/dwm/dmenurecord
@@ -11,6 +11,7 @@
updateicon() {
echo "$1" >/tmp/recordingicon
+ # WARN: Not currently used in dwmblocks
pkill -RTMIN+9 "${STATUSBAR:-dwmblocks}"
}
@@ -20,6 +21,7 @@ killrecording() {
kill -15 "$recpid"
rm -f /tmp/recordingpid
updateicon ""
+ # WARN: Not currently used in dwmblocks
pkill -RTMIN+9 "${STATUSBAR:-dwmblocks}"
# even after SIGTERM, ffmpeg may still run, so SIGKILL it.
sleep 3
diff --git a/.local/libexec/statusbar/sb-battery b/.local/libexec/statusbar/sb-battery
index 338311e5..1cb7e700 100755
--- a/.local/libexec/statusbar/sb-battery
+++ b/.local/libexec/statusbar/sb-battery
@@ -1,66 +1,66 @@
#!/bin/sh
-. "$HOME/.local/libexec/statusbar/colors"
+. "colors"
[ -z "$(ls /sys/class/power_supply)" ] && exit 0
for battery in /sys/class/power_supply/BAT?*; do
- pidof -x sbd-battery >/dev/null 2>&1 || "$HOME/.local/libexec/daemons/sbd-battery" "$battery" >/dev/null 2>&1 &
- [ -n "${capacity+x}" ] && printf " "
- capacity="$(cat "$battery/capacity" 2>&1)"
- case "$(cat "$battery/status" 2>&1)" in
- "Full")
- icon=""
- color="$fggreen"
- ;;
- "Not charging")
- icon=""
- color="$fgwhite"
- ;;
- "Unknown")
- icon=""
- color="$fgorange"
- ;;
- "Charging")
- icon=""
- color="$fgcyan"
- ;;
- "Discharging")
- if [ "$capacity" -le 10 ]; then
- icon=""
- color="$fgred"
- elif [ "$capacity" -le 20 ]; then
- icon=""
- color="$fgred"
- elif [ "$capacity" -le 30 ]; then
- icon=""
- color="$fgwhite"
- elif [ "$capacity" -le 40 ]; then
- icon=""
- color="$fgwhite"
- elif [ "$capacity" -le 50 ]; then
- icon=""
- color="$fgwhite"
- elif [ "$capacity" -le 60 ]; then
- icon=""
- color="$fgwhite"
- elif [ "$capacity" -le 70 ]; then
- icon=""
- color="$fgwhite"
- elif [ "$capacity" -le 80 ]; then
- icon=""
- color="$fgwhite"
- elif [ "$capacity" -le 90 ]; then
- icon=""
- color="$fgwhite"
- elif [ "$capacity" -le 100 ]; then
- icon=""
- color="$fgwhite"
- else
- icon=""
- color="$fgwhite"
- fi
- ;;
- *) exit 1 ;;
- esac
- printf "%b" "$icon $capacity"
+ pidof -x sbd-battery >/dev/null 2>&1 || "$HOME/.local/libexec/daemons/sbd-battery" "$battery" >/dev/null 2>&1 &
+ [ -n "${capacity+x}" ] && printf " "
+ capacity="$(cat "$battery/capacity" 2>&1)"
+ case "$(cat "$battery/status" 2>&1)" in
+ "Full")
+ icon=""
+ color="$fggreen"
+ ;;
+ "Not charging")
+ icon=""
+ color="$fggreen"
+ ;;
+ "Unknown")
+ icon=""
+ color="$fgorange"
+ ;;
+ "Charging")
+ icon=""
+ color="$fgcyan"
+ ;;
+ "Discharging")
+ if [ "$capacity" -le 10 ]; then
+ icon=""
+ color="$fgred"
+ elif [ "$capacity" -le 20 ]; then
+ icon=""
+ color="$fgred"
+ elif [ "$capacity" -le 30 ]; then
+ icon=""
+ color="$fgwhite"
+ elif [ "$capacity" -le 40 ]; then
+ icon=""
+ color="$fgwhite"
+ elif [ "$capacity" -le 50 ]; then
+ icon=""
+ color="$fgwhite"
+ elif [ "$capacity" -le 60 ]; then
+ icon=""
+ color="$fgwhite"
+ elif [ "$capacity" -le 70 ]; then
+ icon=""
+ color="$fgwhite"
+ elif [ "$capacity" -le 80 ]; then
+ icon=""
+ color="$fgwhite"
+ elif [ "$capacity" -le 90 ]; then
+ icon=""
+ color="$fgwhite"
+ elif [ "$capacity" -le 100 ]; then
+ icon=""
+ color="$fgwhite"
+ else
+ icon=""
+ color="$fgwhite"
+ fi
+ ;;
+ *) exit 1 ;;
+ esac
+ printf "%b" "$icon $capacity"
done && printf "\\n"
diff --git a/.local/libexec/statusbar/sb-cpu b/.local/libexec/statusbar/sb-cpu
index 1e867fe0..e0598e88 100755
--- a/.local/libexec/statusbar/sb-cpu
+++ b/.local/libexec/statusbar/sb-cpu
@@ -1,5 +1,5 @@
#!/bin/sh
-. "$HOME/.local/libexec/statusbar/colors"
+. "colors"
cache=$XDG_RUNTIME_DIR/cpubarscache
@@ -13,23 +13,23 @@ printf "%b" " $temp"
first=true
echo "$stats" | while read -r row; do
- id=${row%% *}
- rest=${row#* }
- total=${rest%% *}
- idle=${rest##* }
- case "$(
- echo "$old" |
- awk '{if ($1 == id) printf "%d\n", (1 - (idle - $3) / (total - $2))*100 /12.5}' \
- id="$id" total="$total" idle="$idle" 2>/dev/null
- )" in
- "0") col=$fggreen icon=▁ ;;
- "1") col=$fggreen icon=▂ ;;
- "2") col=$fggreen icon=▃ ;;
- "3") col=$fgorange icon=▄ ;;
- "4") col=$fgorange icon=▅ ;;
- "5") col=$fgorange icon=▆ ;;
- "6" | "7" | "8") col=$fgred icon=▇ ;;
- esac
+ id=${row%% *}
+ rest=${row#* }
+ total=${rest%% *}
+ idle=${rest##* }
+ case "$(
+ echo "$old" |
+ awk '{if ($1 == id) printf "%d\n", (1 - (idle - $3) / (total - $2))*100 /12.5}' \
+ id="$id" total="$total" idle="$idle" 2>/dev/null
+ )" in
+ "0") col=$fggreen icon=▁ ;;
+ "1") col=$fggreen icon=▂ ;;
+ "2") col=$fggreen icon=▃ ;;
+ "3") col=$fgorange icon=▄ ;;
+ "4") col=$fgorange icon=▅ ;;
+ "5") col=$fgorange icon=▆ ;;
+ "6" | "7" | "8") col=$fgred icon=▇ ;;
+ esac
if [ "$col" != "$prevcol" ]; then
[ "$first" != "true" ] && printf "%b" ""
printf "%b" ""
diff --git a/.local/libexec/statusbar/sb-disk b/.local/libexec/statusbar/sb-disk
index 4347c544..ea834c0f 100755
--- a/.local/libexec/statusbar/sb-disk
+++ b/.local/libexec/statusbar/sb-disk
@@ -1,4 +1,5 @@
#!/bin/sh
+. "colors"
IFS='
'
@@ -15,7 +16,7 @@ for mnt in $(findmnt -Py -t "$types"); do
*) icon="" ;;
esac
$first || printf " "
- echo "${icon} $(df -h "$TARGET" | awk ' /[0-9]/ {print $3 "/" $2}')"
+ printf "%b" "${icon} $(df -h "$TARGET" | awk ' /[0-9]/ {print $3 "/" $2}')"
first=false
done
printf "\n"
diff --git a/.local/libexec/statusbar/sb-forecast b/.local/libexec/statusbar/sb-forecast
index c9940023..cc389762 100755
--- a/.local/libexec/statusbar/sb-forecast
+++ b/.local/libexec/statusbar/sb-forecast
@@ -1,5 +1,5 @@
#!/bin/sh
-. "$HOME/.local/libexec/statusbar/colors"
+. "colors"
# NOTE: This script takes its dwmblocks update signal as an argument so that it can refresh itself (defaults to 5)
# Options can be found at https://wttr.in/:help
@@ -11,26 +11,27 @@ weatheropts="?FA"
emojiopts="?FA&format=%c"
getforecast() {
- curl -sfL --retry 5 "$url$weatheropts" >"$weatherfile" || return 1
- curl -sfL "$url$emojiopts" --retry 5 | sed 's/☀️//;s/☁️//;s/⛅️//;s/⛈//;s/✨//;s/❄️//;s/🌦//;s/🌧//;s/🌨//;s/🌩//;s/🌫//;' | cut -d ' ' -f 1 >"$emojifile" || return 1
+ curl -sfL --retry 5 "$url$weatheropts" >"$weatherfile" || return 1
+ curl -sfL "$url$emojiopts" --retry 5 | sed 's/☀️//;s/☁️//;s/⛅️//;s/⛈//;s/✨//;s/❄️//;s/🌦//;s/🌧//;s/🌨//;s/🌩//;s/🌫//;' | cut -d ' ' -f 1 >"$emojifile" || return 1
}
fresh() {
- [ -s "$weatherfile" ] && [ "$(stat -c %y "$weatherfile" 2>/dev/null | cut -d' ' -f1)" = "$(date '+%Y-%m-%d')" ]
+ [ -s "$weatherfile" ] && [ "$(stat -c %y "$weatherfile" 2>/dev/null | cut -d' ' -f1)" = "$(date '+%Y-%m-%d')" ]
}
readfile() {
- weather="$(cat "$weatherfile")"
- precipitation="$(echo "$weather" | sed '16q;d' | grep -wo "[0-9]*%" | sort -rn | head -1q)"
- highlow="$(echo "$weather" | sed '13q;d' | grep -o "m\\([-+]\\)*[0-9]\\+" | sed 's/[+m]//g' | sort -g | sed -e 1b -e '$!d')"
- emoji="$(cat "$emojifile")"
+ weather="$(cat "$weatherfile")"
+ precipitation="$(echo "$weather" | sed '16q;d' | grep -wo "[0-9]*%" | sort -rn | head -1q)"
+ highlow="$(echo "$weather" | sed '13q;d' | grep -o "m\\([-+]\\)*[0-9]\\+" | sed 's/[+m]//g' | sort -g | sed -e 1b -e '$!d')"
+ emoji="$(cat "$emojifile")"
}
output() {
- readfile
- printf "%b" "$emoji $precipitation $(echo "$highlow" | cut -d" " -f1)° $(echo "$highlow" | cut -d" " -f2)°\n"
+ readfile
+ printf "%b" "$emoji $precipitation $(echo "$highlow" | cut -d" " -f1)° $(echo "$highlow" | cut -d" " -f2)°\n"
}
if fresh; then
- output
+ output
else
- getforecast && pkill "-RTMIN+${1:-5}" dwmblocks &
- printf "%b" " Getting Weather\n"
+ # WARN: Not currently used in dwmblocks
+ getforecast && pkill "-RTMIN+5" dwmblocks &
+ printf "%b" " Getting Weather\n"
fi
diff --git a/.local/libexec/statusbar/sb-internet b/.local/libexec/statusbar/sb-internet
index a73be159..5c95287a 100755
--- a/.local/libexec/statusbar/sb-internet
+++ b/.local/libexec/statusbar/sb-internet
@@ -1,4 +1,5 @@
#!/bin/sh
+. "colors"
shift=""
diff --git a/.local/libexec/statusbar/sb-ip b/.local/libexec/statusbar/sb-ip
index 6bb353ed..4f9aa090 100755
--- a/.local/libexec/statusbar/sb-ip
+++ b/.local/libexec/statusbar/sb-ip
@@ -1,6 +1,16 @@
#!/bin/sh
-# https://www.maketecheasier.com/ip-address-geolocation-lookups-linux/
-loc_addr="$(ip route get 9.9.9.9 | head -1 | cut -d ' ' -f7)"
-pub_addr="$(curl ipv4.icanhazip.com 2>/dev/null)" || exit
-# flag="$(grep "flag: " "${XDG_DATA_HOME:-$HOME/.local/share}/emoji" | grep "$(geoiplookup "$addr" | sed 's/.*, //')" | sed 's/ flag: .*//')"
-printf "%s %s\n" "$loc_addr" "$pub_addr"
+. "colors"
+
+cache="${XDG_CACHE_HOME:-$HOME/.cache}/geoip"
+
+# loc_addr="$(ip route get 9.9.9.9 | awk 'NR==1 {print $7}')"
+pub_addr="$(curl -s ipv4.icanhazip.com 2>/dev/null)"
+
+location="$(awk -F: -v ip="$pub_addr" '$1==ip {print $2}' "$cache")"
+[ -z "$location" ] && {
+ location="$(curl -s "https://reallyfreegeoip.org/json/${pub_addr}" | jq -r '.country_name')"
+ echo "${pub_addr}:${location}" >>"$cache"
+}
+flag="$(awk -v loc="$location" '$0 ~ loc {print $1}' "${XDG_DATA_HOME:-$HOME/.local/share}/emoji")"
+
+echo "${flag} ${pub_addr}"
diff --git a/.local/libexec/statusbar/sb-memory b/.local/libexec/statusbar/sb-memory
index 25088c83..b5cb3c78 100755
--- a/.local/libexec/statusbar/sb-memory
+++ b/.local/libexec/statusbar/sb-memory
@@ -1,3 +1,5 @@
#!/bin/sh
+. "colors"
+
printf "%b" " "
free -m | awk 'NR==2 { printf ("%2.2fG/%2.2fG\n", ($3 / 1024), ($2 / 1024)) }'
diff --git a/.local/libexec/statusbar/sb-music b/.local/libexec/statusbar/sb-music
index 848f6d0a..66cd4f71 100755
--- a/.local/libexec/statusbar/sb-music
+++ b/.local/libexec/statusbar/sb-music
@@ -1,15 +1,17 @@
#!/bin/sh
+. "colors"
+
filter() {
- if mpc 1>/dev/null 2>&1 && [ "$(mpc | wc -l)" -eq 3 ]; then
- song=$(mpc current -f "%artist% - %title%" | xargs -0)
- [ ${#song} -gt 35 ] && song="$(printf %.35s "$song")…"
- mpc | awk 'NR==2' | grep -q playing && icon="" || icon=""
- echo "$icon $song"
- elif mpc 1>/dev/null 2>&1 && [ "$(mpc | wc -l)" -eq 1 ]; then
- echo ""
- else
- exit 1
- fi
+ if mpc 1>/dev/null 2>&1 && [ "$(mpc | wc -l)" -eq 3 ]; then
+ song=$(mpc current -f "%artist% - %title%" | xargs -0)
+ [ ${#song} -gt 35 ] && song="$(printf %.35s "$song")…"
+ mpc | awk 'NR==2' | grep -q playing && icon="" || icon=""
+ echo "$icon $song"
+ elif mpc 1>/dev/null 2>&1 && [ "$(mpc | wc -l)" -eq 1 ]; then
+ echo ""
+ else
+ exit 1
+ fi
}
pidof -x sbd-music >/dev/null 2>&1 || "$HOME/.local/libexec/daemons/sbd-music" >/dev/null 2>&1 &
filter
diff --git a/.local/libexec/statusbar/sb-nettraf b/.local/libexec/statusbar/sb-nettraf
index b1a239fa..3ea644c2 100755
--- a/.local/libexec/statusbar/sb-nettraf
+++ b/.local/libexec/statusbar/sb-nettraf
@@ -1,17 +1,17 @@
#!/bin/sh
-# . "$HOME/.local/libexec/statusbar/colors"
+. "colors"
# TODO: Coloring based on speed
update() {
- sum=0
- for arg; do
- read -r i <"$arg"
- sum=$((sum + i))
- done
- cache=$XDG_RUNTIME_DIR/${1##*/}
- [ -f "$cache" ] && read -r old <"$cache" || old=0
- printf "%b" "$sum\n" >"$cache"
- printf "%b" "$((sum - old))\n"
+ sum=0
+ for arg; do
+ read -r i <"$arg"
+ sum=$((sum + i))
+ done
+ cache=$XDG_RUNTIME_DIR/${1##*/}
+ [ -f "$cache" ] && read -r old <"$cache" || old=0
+ printf "%b" "$sum\n" >"$cache"
+ printf "%b" "$((sum - old))\n"
}
rx=$(update /sys/class/net/[ew]*/statistics/rx_bytes)
diff --git a/.local/libexec/statusbar/sb-packages b/.local/libexec/statusbar/sb-packages
index 61ae0988..a715a369 100755
--- a/.local/libexec/statusbar/sb-packages
+++ b/.local/libexec/statusbar/sb-packages
@@ -1,4 +1,5 @@
#!/bin/sh
+. "colors"
icon=""
diff --git a/.local/libexec/statusbar/sb-playerctl b/.local/libexec/statusbar/sb-playerctl
index 81054027..dd3d2fb2 100755
--- a/.local/libexec/statusbar/sb-playerctl
+++ b/.local/libexec/statusbar/sb-playerctl
@@ -1,4 +1,5 @@
#!/bin/sh
+. "colors"
pidof -x sbd-playerctl >/dev/null 2>&1 || "$HOME/.local/libexec/daemons/sbd-playerctl" >/dev/null 2>&1 &
[ "$(playerctl status 2>&1)" = "No players found" ] && printf "%b" "" && exit 1
diff --git a/.local/share/chars/emoji b/.local/share/chars/emoji
deleted file mode 100644
index ec6318d8..00000000
--- a/.local/share/chars/emoji
+++ /dev/null
@@ -1,1631 +0,0 @@
-😀 grinning face
-😃 grinning face with big eyes
-😄 grinning face with smiling eyes
-😁 beaming face with smiling eyes
-😆 grinning squinting face
-😅 grinning face with sweat
-🤣 rolling on the floor laughing
-😂 face with tears of joy
-🙂 slightly smiling face
-🙃 upside-down face
-🫠 melting face
-😉 winking face
-😊 smiling face with smiling eyes
-😇 smiling face with halo
-🥰 smiling face with hearts
-😍 smiling face with heart-eyes
-🤩 star-struck
-😘 face blowing a kiss
-😗 kissing face
-☺️ smiling face
-😚 kissing face with closed eyes
-😙 kissing face with smiling eyes
-🥲 smiling face with tear
-😋 face savoring food
-😛 face with tongue
-😜 winking face with tongue
-🤪 zany face
-😝 squinting face with tongue
-🤑 money-mouth face
-🤗 smiling face with open hands
-🤭 face with hand over mouth
-🫢 face with open eyes and hand over mouth
-🫣 face with peeking eye
-🤫 shushing face
-🤔 thinking face
-🫡 saluting face
-🤐 zipper-mouth face
-🤨 face with raised eyebrow
-😐 neutral face
-😑 expressionless face
-😶 face without mouth
-🫥 dotted line face
-😏 smirking face
-😒 unamused face
-🙄 face with rolling eyes
-😬 grimacing face
-🤥 lying face
-😌 relieved face
-😔 pensive face
-😪 sleepy face
-🤤 drooling face
-😴 sleeping face
-😷 face with medical mask
-🤒 face with thermometer
-🤕 face with head-bandage
-🤢 nauseated face
-🤮 face vomiting
-🤧 sneezing face
-🥵 hot face
-🥶 cold face
-🥴 woozy face
-😵 face with crossed-out eyes
-🤯 exploding head
-🤠 cowboy hat face
-🥳 partying face
-🥸 disguised face
-😎 smiling face with sunglasses
-🤓 nerd face
-🧐 face with monocle
-😕 confused face
-🫤 face with diagonal mouth
-😟 worried face
-🙁 slightly frowning face
-☹️ frowning face
-😮 face with open mouth
-😯 hushed face
-😲 astonished face
-😳 flushed face
-🥺 pleading face
-🥹 face holding back tears
-😦 frowning face with open mouth
-😧 anguished face
-😨 fearful face
-😰 anxious face with sweat
-😥 sad but relieved face
-😢 crying face
-😭 loudly crying face
-😱 face screaming in fear
-😖 confounded face
-😣 persevering face
-😞 disappointed face
-😓 downcast face with sweat
-😩 weary face
-😫 tired face
-🥱 yawning face
-😤 face with steam from nose
-😡 pouting face
-😠 angry face
-🤬 face with symbols on mouth
-😈 smiling face with horns
-👿 angry face with horns
-💀 skull
-☠️ skull and crossbones
-💩 pile of poo
-🤡 clown face
-👹 ogre
-👺 goblin
-👻 ghost
-👽 alien
-👾 alien monster
-🤖 robot
-😺 grinning cat
-😸 grinning cat with smiling eyes
-😹 cat with tears of joy
-😻 smiling cat with heart-eyes
-😼 cat with wry smile
-😽 kissing cat
-🙀 weary cat
-😿 crying cat
-😾 pouting cat
-🙈 see-no-evil monkey
-🙉 hear-no-evil monkey
-🙊 speak-no-evil monkey
-💋 kiss mark
-💌 love letter
-💘 heart with arrow
-💝 heart with ribbon
-💖 sparkling heart
-💗 growing heart
-💓 beating heart
-💞 revolving hearts
-💕 two hearts
-💟 heart decoration
-❣️ heart exclamation
-💔 broken heart
-❤️ red heart
-🧡 orange heart
-💛 yellow heart
-💚 green heart
-💙 blue heart
-💜 purple heart
-🤎 brown heart
-🖤 black heart
-🤍 white heart
-💯 hundred points
-💢 anger symbol
-💥 collision
-💫 dizzy
-💦 sweat droplets
-💨 dashing away
-🕳️ hole
-💣 bomb
-💬 speech balloon
-🗨️ left speech bubble
-🗯️ right anger bubble
-💭 thought balloon
-💤 zzz
-👋 waving hand
-🤚 raised back of hand
-🖐️ hand with fingers splayed
-✋ raised hand
-🖖 vulcan salute
-🫱 rightwards hand
-🫲 leftwards hand
-🫳 palm down hand
-🫴 palm up hand
-👌 OK hand
-🤌 pinched fingers
-🤏 pinching hand
-✌️ victory hand
-🤞 crossed fingers
-🫰 hand with index finger and thumb crossed
-🤟 love-you gesture
-🤘 sign of the horns
-🤙 call me hand
-👈 backhand index pointing left
-👉 backhand index pointing right
-👆 backhand index pointing up
-🖕 middle finger
-👇 backhand index pointing down
-☝️ index pointing up
-🫵 index pointing at the viewer
-👍 thumbs up
-👎 thumbs down
-✊ raised fist
-👊 oncoming fist
-🤛 left-facing fist
-🤜 right-facing fist
-👏 clapping hands
-🙌 raising hands
-🫶 heart hands
-👐 open hands
-🤲 palms up together
-🤝 handshake
-🙏 folded hands
-✍️ writing hand
-💅 nail polish
-🤳 selfie
-💪 flexed biceps
-🦾 mechanical arm
-🦿 mechanical leg
-🦵 leg
-🦶 foot
-👂 ear
-🦻 ear with hearing aid
-👃 nose
-🧠 brain
-🫀 anatomical heart
-🫁 lungs
-🦷 tooth
-🦴 bone
-👀 eyes
-👁️ eye
-👅 tongue
-👄 mouth
-🫦 biting lip
-👶 baby
-🧒 child
-👦 boy
-👧 girl
-🧑 person
-👱 person: blond hair
-👨 man
-🧔 person: beard
-👩 woman
-🧓 older person
-👴 old man
-👵 old woman
-🙍 person frowning
-🙎 person pouting
-🙅 person gesturing NO
-🙆 person gesturing OK
-💁 person tipping hand
-🙋 person raising hand
-🧏 deaf person
-🙇 person bowing
-🤦 person facepalming
-🤷 person shrugging
-👮 police officer
-🕵️ detective
-💂 guard
-🥷 ninja
-👷 construction worker
-🫅 person with crown
-🤴 prince
-👸 princess
-👳 person wearing turban
-👲 person with skullcap
-🧕 woman with headscarf
-🤵 person in tuxedo
-👰 person with veil
-🤰 pregnant woman
-🫃 pregnant man
-🫄 pregnant person
-🤱 breast-feeding
-👼 baby angel
-🎅 Santa Claus
-🤶 Mrs. Claus
-🦸 superhero
-🦹 supervillain
-🧙 mage
-🧚 fairy
-🧛 vampire
-🧜 merperson
-🧝 elf
-🧞 genie
-🧟 zombie
-🧌 troll
-💆 person getting massage
-💇 person getting haircut
-🚶 person walking
-🧍 person standing
-🧎 person kneeling
-🏃 person running
-💃 woman dancing
-🕺 man dancing
-🕴️ person in suit levitating
-👯 people with bunny ears
-🧖 person in steamy room
-🧗 person climbing
-🤺 person fencing
-🏇 horse racing
-⛷️ skier
-🏂 snowboarder
-🏌️ person golfing
-🏄 person surfing
-🚣 person rowing boat
-🏊 person swimming
-⛹️ person bouncing ball
-🏋️ person lifting weights
-🚴 person biking
-🚵 person mountain biking
-🤸 person cartwheeling
-🤼 people wrestling
-🤽 person playing water polo
-🤾 person playing handball
-🤹 person juggling
-🧘 person in lotus position
-🛀 person taking bath
-🛌 person in bed
-👭 women holding hands
-👫 woman and man holding hands
-👬 men holding hands
-💏 kiss
-💑 couple with heart
-👪 family
-🗣️ speaking head
-👤 bust in silhouette
-👥 busts in silhouette
-🫂 people hugging
-👣 footprints
-🐵 monkey face
-🐒 monkey
-🦍 gorilla
-🦧 orangutan
-🐶 dog face
-🐕 dog
-🦮 guide dog
-🐩 poodle
-🐺 wolf
-🦊 fox
-🦝 raccoon
-🐱 cat face
-🐈 cat
-🦁 lion
-🐯 tiger face
-🐅 tiger
-🐆 leopard
-🐴 horse face
-🐎 horse
-🦄 unicorn
-🦓 zebra
-🦌 deer
-🦬 bison
-🐮 cow face
-🐂 ox
-🐃 water buffalo
-🐄 cow
-🐷 pig face
-🐖 pig
-🐗 boar
-🐽 pig nose
-🐏 ram
-🐑 ewe
-🐐 goat
-🐪 camel
-🐫 two-hump camel
-🦙 llama
-🦒 giraffe
-🐘 elephant
-🦣 mammoth
-🦏 rhinoceros
-🦛 hippopotamus
-🐭 mouse face
-🐁 mouse
-🐀 rat
-🐹 hamster
-🐰 rabbit face
-🐇 rabbit
-🐿️ chipmunk
-🦫 beaver
-🦔 hedgehog
-🦇 bat
-🐻 bear
-🐨 koala
-🐼 panda
-🦥 sloth
-🦦 otter
-🦨 skunk
-🦘 kangaroo
-🦡 badger
-🐾 paw prints
-🦃 turkey
-🐔 chicken
-🐓 rooster
-🐣 hatching chick
-🐤 baby chick
-🐥 front-facing baby chick
-🐦 bird
-🐧 penguin
-🕊️ dove
-🦅 eagle
-🦆 duck
-🦢 swan
-🦉 owl
-🦤 dodo
-🪶 feather
-🦩 flamingo
-🦚 peacock
-🦜 parrot
-🐸 frog
-🐊 crocodile
-🐢 turtle
-🦎 lizard
-🐍 snake
-🐲 dragon face
-🐉 dragon
-🦕 sauropod
-🦖 T-Rex
-🐳 spouting whale
-🐋 whale
-🐬 dolphin
-🦭 seal
-🐟 fish
-🐠 tropical fish
-🐡 blowfish
-🦈 shark
-🐙 octopus
-🐚 spiral shell
-🪸 coral
-🐌 snail
-🦋 butterfly
-🐛 bug
-🐜 ant
-🐝 honeybee
-🪲 beetle
-🐞 lady beetle
-🦗 cricket
-🪳 cockroach
-🕷️ spider
-🕸️ spider web
-🦂 scorpion
-🦟 mosquito
-🪰 fly
-🪱 worm
-🦠 microbe
-💐 bouquet
-🌸 cherry blossom
-💮 white flower
-🪷 lotus
-🏵️ rosette
-🌹 rose
-🥀 wilted flower
-🌺 hibiscus
-🌻 sunflower
-🌼 blossom
-🌷 tulip
-🌱 seedling
-🪴 potted plant
-🌲 evergreen tree
-🌳 deciduous tree
-🌴 palm tree
-🌵 cactus
-🌾 sheaf of rice
-🌿 herb
-☘️ shamrock
-🍀 four leaf clover
-🍁 maple leaf
-🍂 fallen leaf
-🍃 leaf fluttering in wind
-🪹 empty nest
-🪺 nest with eggs
-🍇 grapes
-🍈 melon
-🍉 watermelon
-🍊 tangerine
-🍋 lemon
-🍌 banana
-🍍 pineapple
-🥭 mango
-🍎 red apple
-🍏 green apple
-🍐 pear
-🍑 peach
-🍒 cherries
-🍓 strawberry
-🫐 blueberries
-🥝 kiwi fruit
-🍅 tomato
-🫒 olive
-🥥 coconut
-🥑 avocado
-🍆 eggplant
-🥔 potato
-🥕 carrot
-🌽 ear of corn
-🌶️ hot pepper
-🫑 bell pepper
-🥒 cucumber
-🥬 leafy green
-🥦 broccoli
-🧄 garlic
-🧅 onion
-🍄 mushroom
-🥜 peanuts
-🫘 beans
-🌰 chestnut
-🍞 bread
-🥐 croissant
-🥖 baguette bread
-🫓 flatbread
-🥨 pretzel
-🥯 bagel
-🥞 pancakes
-🧇 waffle
-🧀 cheese wedge
-🍖 meat on bone
-🍗 poultry leg
-🥩 cut of meat
-🥓 bacon
-🍔 hamburger
-🍟 french fries
-🍕 pizza
-🌭 hot dog
-🥪 sandwich
-🌮 taco
-🌯 burrito
-🫔 tamale
-🥙 stuffed flatbread
-🧆 falafel
-🥚 egg
-🍳 cooking
-🥘 shallow pan of food
-🍲 pot of food
-🫕 fondue
-🥣 bowl with spoon
-🥗 green salad
-🍿 popcorn
-🧈 butter
-🧂 salt
-🥫 canned food
-🍱 bento box
-🍘 rice cracker
-🍙 rice ball
-🍚 cooked rice
-🍛 curry rice
-🍜 steaming bowl
-🍝 spaghetti
-🍠 roasted sweet potato
-🍢 oden
-🍣 sushi
-🍤 fried shrimp
-🍥 fish cake with swirl
-🥮 moon cake
-🍡 dango
-🥟 dumpling
-🥠 fortune cookie
-🥡 takeout box
-🦀 crab
-🦞 lobster
-🦐 shrimp
-🦑 squid
-🦪 oyster
-🍦 soft ice cream
-🍧 shaved ice
-🍨 ice cream
-🍩 doughnut
-🍪 cookie
-🎂 birthday cake
-🍰 shortcake
-🧁 cupcake
-🥧 pie
-🍫 chocolate bar
-🍬 candy
-🍭 lollipop
-🍮 custard
-🍯 honey pot
-🍼 baby bottle
-🥛 glass of milk
-☕ hot beverage
-🫖 teapot
-🍵 teacup without handle
-🍶 sake
-🍾 bottle with popping cork
-🍷 wine glass
-🍸 cocktail glass
-🍹 tropical drink
-🍺 beer mug
-🍻 clinking beer mugs
-🥂 clinking glasses
-🥃 tumbler glass
-🫗 pouring liquid
-🥤 cup with straw
-🧋 bubble tea
-🧃 beverage box
-🧉 mate
-🧊 ice
-🥢 chopsticks
-🍽️ fork and knife with plate
-🍴 fork and knife
-🥄 spoon
-🔪 kitchen knife
-🫙 jar
-🏺 amphora
-🌍 globe showing Europe-Africa
-🌎 globe showing Americas
-🌏 globe showing Asia-Australia
-🌐 globe with meridians
-🗺️ world map
-🗾 map of Japan
-🧭 compass
-🏔️ snow-capped mountain
-⛰️ mountain
-🌋 volcano
-🗻 mount fuji
-🏕️ camping
-🏖️ beach with umbrella
-🏜️ desert
-🏝️ desert island
-🏞️ national park
-🏟️ stadium
-🏛️ classical building
-🏗️ building construction
-🧱 brick
-🪨 rock
-🪵 wood
-🛖 hut
-🏘️ houses
-🏚️ derelict house
-🏠 house
-🏡 house with garden
-🏢 office building
-🏣 Japanese post office
-🏤 post office
-🏥 hospital
-🏦 bank
-🏨 hotel
-🏩 love hotel
-🏪 convenience store
-🏫 school
-🏬 department store
-🏭 factory
-🏯 Japanese castle
-🏰 castle
-💒 wedding
-🗼 Tokyo tower
-🗽 Statue of Liberty
-⛪ church
-🕌 mosque
-🛕 hindu temple
-🕍 synagogue
-⛩️ shinto shrine
-🕋 kaaba
-⛲ fountain
-⛺ tent
-🌁 foggy
-🌃 night with stars
-🏙️ cityscape
-🌄 sunrise over mountains
-🌅 sunrise
-🌆 cityscape at dusk
-🌇 sunset
-🌉 bridge at night
-♨️ hot springs
-🎠 carousel horse
-🛝 playground slide
-🎡 ferris wheel
-🎢 roller coaster
-💈 barber pole
-🎪 circus tent
-🚂 locomotive
-🚃 railway car
-🚄 high-speed train
-🚅 bullet train
-🚆 train
-🚇 metro
-🚈 light rail
-🚉 station
-🚊 tram
-🚝 monorail
-🚞 mountain railway
-🚋 tram car
-🚌 bus
-🚍 oncoming bus
-🚎 trolleybus
-🚐 minibus
-🚑 ambulance
-🚒 fire engine
-🚓 police car
-🚔 oncoming police car
-🚕 taxi
-🚖 oncoming taxi
-🚗 automobile
-🚘 oncoming automobile
-🚙 sport utility vehicle
-🛻 pickup truck
-🚚 delivery truck
-🚛 articulated lorry
-🚜 tractor
-🏎️ racing car
-🏍️ motorcycle
-🛵 motor scooter
-🦽 manual wheelchair
-🦼 motorized wheelchair
-🛺 auto rickshaw
-🚲 bicycle
-🛴 kick scooter
-🛹 skateboard
-🛼 roller skate
-🚏 bus stop
-🛣️ motorway
-🛤️ railway track
-🛢️ oil drum
-⛽ fuel pump
-🛞 wheel
-🚨 police car light
-🚥 horizontal traffic light
-🚦 vertical traffic light
-🛑 stop sign
-🚧 construction
-⚓ anchor
-🛟 ring buoy
-⛵ sailboat
-🛶 canoe
-🚤 speedboat
-🛳️ passenger ship
-⛴️ ferry
-🛥️ motor boat
-🚢 ship
-✈️ airplane
-🛩️ small airplane
-🛫 airplane departure
-🛬 airplane arrival
-🪂 parachute
-💺 seat
-🚁 helicopter
-🚟 suspension railway
-🚠 mountain cableway
-🚡 aerial tramway
-🛰️ satellite
-🚀 rocket
-🛸 flying saucer
-🛎️ bellhop bell
-🧳 luggage
-⌛ hourglass done
-⏳ hourglass not done
-⌚ watch
-⏰ alarm clock
-⏱️ stopwatch
-⏲️ timer clock
-🕰️ mantelpiece clock
-🕛 twelve o’clock
-🕧 twelve-thirty
-🕐 one o’clock
-🕜 one-thirty
-🕑 two o’clock
-🕝 two-thirty
-🕒 three o’clock
-🕞 three-thirty
-🕓 four o’clock
-🕟 four-thirty
-🕔 five o’clock
-🕠 five-thirty
-🕕 six o’clock
-🕡 six-thirty
-🕖 seven o’clock
-🕢 seven-thirty
-🕗 eight o’clock
-🕣 eight-thirty
-🕘 nine o’clock
-🕤 nine-thirty
-🕙 ten o’clock
-🕥 ten-thirty
-🕚 eleven o’clock
-🕦 eleven-thirty
-🌑 new moon
-🌒 waxing crescent moon
-🌓 first quarter moon
-🌔 waxing gibbous moon
-🌕 full moon
-🌖 waning gibbous moon
-🌗 last quarter moon
-🌘 waning crescent moon
-🌙 crescent moon
-🌚 new moon face
-🌛 first quarter moon face
-🌜 last quarter moon face
-🌡️ thermometer
-☀️ sun
-🌝 full moon face
-🌞 sun with face
-🪐 ringed planet
-⭐ star
-🌟 glowing star
-🌠 shooting star
-🌌 milky way
-☁️ cloud
-⛅ sun behind cloud
-⛈️ cloud with lightning and rain
-🌤️ sun behind small cloud
-🌥️ sun behind large cloud
-🌦️ sun behind rain cloud
-🌧️ cloud with rain
-🌨️ cloud with snow
-🌩️ cloud with lightning
-🌪️ tornado
-🌫️ fog
-🌬️ wind face
-🌀 cyclone
-🌈 rainbow
-🌂 closed umbrella
-☂️ umbrella
-☔ umbrella with rain drops
-⛱️ umbrella on ground
-⚡ high voltage
-❄️ snowflake
-☃️ snowman
-⛄ snowman without snow
-☄️ comet
-🔥 fire
-💧 droplet
-🌊 water wave
-🎃 jack-o-lantern
-🎄 Christmas tree
-🎆 fireworks
-🎇 sparkler
-🧨 firecracker
-✨ sparkles
-🎈 balloon
-🎉 party popper
-🎊 confetti ball
-🎋 tanabata tree
-🎍 pine decoration
-🎎 Japanese dolls
-🎏 carp streamer
-🎐 wind chime
-🎑 moon viewing ceremony
-🧧 red envelope
-🎀 ribbon
-🎁 wrapped gift
-🎗️ reminder ribbon
-🎟️ admission tickets
-🎫 ticket
-🎖️ military medal
-🏆 trophy
-🏅 sports medal
-🥇 1st place medal
-🥈 2nd place medal
-🥉 3rd place medal
-⚽ soccer ball
-⚾ baseball
-🥎 softball
-🏀 basketball
-🏐 volleyball
-🏈 american football
-🏉 rugby football
-🎾 tennis
-🥏 flying disc
-🎳 bowling
-🏏 cricket game
-🏑 field hockey
-🏒 ice hockey
-🥍 lacrosse
-🏓 ping pong
-🏸 badminton
-🥊 boxing glove
-🥋 martial arts uniform
-🥅 goal net
-⛳ flag in hole
-⛸️ ice skate
-🎣 fishing pole
-🤿 diving mask
-🎽 running shirt
-🎿 skis
-🛷 sled
-🥌 curling stone
-🎯 bullseye
-🪀 yo-yo
-🪁 kite
-🎱 pool 8 ball
-🔮 crystal ball
-🪄 magic wand
-🧿 nazar amulet
-🪬 hamsa
-🎮 video game
-🕹️ joystick
-🎰 slot machine
-🎲 game die
-🧩 puzzle piece
-🧸 teddy bear
-🪅 piñata
-🪩 mirror ball
-🪆 nesting dolls
-♠️ spade suit
-♥️ heart suit
-♦️ diamond suit
-♣️ club suit
-♟️ chess pawn
-🃏 joker
-🀄 mahjong red dragon
-🎴 flower playing cards
-🎭 performing arts
-🖼️ framed picture
-🎨 artist palette
-🧵 thread
-🪡 sewing needle
-🧶 yarn
-🪢 knot
-👓 glasses
-🕶️ sunglasses
-🥽 goggles
-🥼 lab coat
-🦺 safety vest
-👔 necktie
-👕 t-shirt
-👖 jeans
-🧣 scarf
-🧤 gloves
-🧥 coat
-🧦 socks
-👗 dress
-👘 kimono
-🥻 sari
-🩱 one-piece swimsuit
-🩲 briefs
-🩳 shorts
-👙 bikini
-👚 woman’s clothes
-👛 purse
-👜 handbag
-👝 clutch bag
-🛍️ shopping bags
-🎒 backpack
-🩴 thong sandal
-👞 man’s shoe
-👟 running shoe
-🥾 hiking boot
-🥿 flat shoe
-👠 high-heeled shoe
-👡 woman’s sandal
-🩰 ballet shoes
-👢 woman’s boot
-👑 crown
-👒 woman’s hat
-🎩 top hat
-🎓 graduation cap
-🧢 billed cap
-🪖 military helmet
-⛑️ rescue worker’s helmet
-📿 prayer beads
-💄 lipstick
-💍 ring
-💎 gem stone
-🔇 muted speaker
-🔈 speaker low volume
-🔉 speaker medium volume
-🔊 speaker high volume
-📢 loudspeaker
-📣 megaphone
-📯 postal horn
-🔔 bell
-🔕 bell with slash
-🎼 musical score
-🎵 musical note
-🎶 musical notes
-🎙️ studio microphone
-🎚️ level slider
-🎛️ control knobs
-🎤 microphone
-🎧 headphone
-📻 radio
-🎷 saxophone
-🪗 accordion
-🎸 guitar
-🎹 musical keyboard
-🎺 trumpet
-🎻 violin
-🪕 banjo
-🥁 drum
-🪘 long drum
-📱 mobile phone
-📲 mobile phone with arrow
-☎️ telephone
-📞 telephone receiver
-📟 pager
-📠 fax machine
-🔋 battery
-🪫 low battery
-🔌 electric plug
-💻 laptop
-🖥️ desktop computer
-🖨️ printer
-⌨️ keyboard
-🖱️ computer mouse
-🖲️ trackball
-💽 computer disk
-💾 floppy disk
-💿 optical disk
-📀 dvd
-🧮 abacus
-🎥 movie camera
-🎞️ film frames
-📽️ film projector
-🎬 clapper board
-📺 television
-📷 camera
-📸 camera with flash
-📹 video camera
-📼 videocassette
-🔍 magnifying glass tilted left
-🔎 magnifying glass tilted right
-🕯️ candle
-💡 light bulb
-🔦 flashlight
-🏮 red paper lantern
-🪔 diya lamp
-📔 notebook with decorative cover
-📕 closed book
-📖 open book
-📗 green book
-📘 blue book
-📙 orange book
-📚 books
-📓 notebook
-📒 ledger
-📃 page with curl
-📜 scroll
-📄 page facing up
-📰 newspaper
-🗞️ rolled-up newspaper
-📑 bookmark tabs
-🔖 bookmark
-🏷️ label
-💰 money bag
-🪙 coin
-💴 yen banknote
-💵 dollar banknote
-💶 euro banknote
-💷 pound banknote
-💸 money with wings
-💳 credit card
-🧾 receipt
-💹 chart increasing with yen
-✉️ envelope
-📧 e-mail
-📨 incoming envelope
-📩 envelope with arrow
-📤 outbox tray
-📥 inbox tray
-📦 package
-📫 closed mailbox with raised flag
-📪 closed mailbox with lowered flag
-📬 open mailbox with raised flag
-📭 open mailbox with lowered flag
-📮 postbox
-🗳️ ballot box with ballot
-✏️ pencil
-✒️ black nib
-🖋️ fountain pen
-🖊️ pen
-🖌️ paintbrush
-🖍️ crayon
-📝 memo
-💼 briefcase
-📁 file folder
-📂 open file folder
-🗂️ card index dividers
-📅 calendar
-📆 tear-off calendar
-🗒️ spiral notepad
-🗓️ spiral calendar
-📇 card index
-📈 chart increasing
-📉 chart decreasing
-📊 bar chart
-📋 clipboard
-📌 pushpin
-📍 round pushpin
-📎 paperclip
-🖇️ linked paperclips
-📏 straight ruler
-📐 triangular ruler
-✂️ scissors
-🗃️ card file box
-🗄️ file cabinet
-🗑️ wastebasket
-🔒 locked
-🔓 unlocked
-🔏 locked with pen
-🔐 locked with key
-🔑 key
-🗝️ old key
-🔨 hammer
-🪓 axe
-⛏️ pick
-⚒️ hammer and pick
-🛠️ hammer and wrench
-🗡️ dagger
-⚔️ crossed swords
-🔫 water pistol
-🪃 boomerang
-🏹 bow and arrow
-🛡️ shield
-🪚 carpentry saw
-🔧 wrench
-🪛 screwdriver
-🔩 nut and bolt
-⚙️ gear
-🗜️ clamp
-⚖️ balance scale
-🦯 white cane
-🔗 link
-⛓️ chains
-🪝 hook
-🧰 toolbox
-🧲 magnet
-🪜 ladder
-⚗️ alembic
-🧪 test tube
-🧫 petri dish
-🧬 dna
-🔬 microscope
-🔭 telescope
-📡 satellite antenna
-💉 syringe
-🩸 drop of blood
-💊 pill
-🩹 adhesive bandage
-🩼 crutch
-🩺 stethoscope
-🩻 x-ray
-🚪 door
-🛗 elevator
-🪞 mirror
-🪟 window
-🛏️ bed
-🛋️ couch and lamp
-🪑 chair
-🚽 toilet
-🪠 plunger
-🚿 shower
-🛁 bathtub
-🪤 mouse trap
-🪒 razor
-🧴 lotion bottle
-🧷 safety pin
-🧹 broom
-🧺 basket
-🧻 roll of paper
-🪣 bucket
-🧼 soap
-🫧 bubbles
-🪥 toothbrush
-🧽 sponge
-🧯 fire extinguisher
-🛒 shopping cart
-🚬 cigarette
-⚰️ coffin
-🪦 headstone
-⚱️ funeral urn
-🗿 moai
-🪧 placard
-🪪 identification card
-🏧 ATM sign
-🚮 litter in bin sign
-🚰 potable water
-♿ wheelchair symbol
-🚹 men’s room
-🚺 women’s room
-🚻 restroom
-🚼 baby symbol
-🚾 water closet
-🛂 passport control
-🛃 customs
-🛄 baggage claim
-🛅 left luggage
-⚠️ warning
-🚸 children crossing
-⛔ no entry
-🚫 prohibited
-🚳 no bicycles
-🚭 no smoking
-🚯 no littering
-🚱 non-potable water
-🚷 no pedestrians
-📵 no mobile phones
-🔞 no one under eighteen
-☢️ radioactive
-☣️ biohazard
-⬆️ up arrow
-↗️ up-right arrow
-➡️ right arrow
-↘️ down-right arrow
-⬇️ down arrow
-↙️ down-left arrow
-⬅️ left arrow
-↖️ up-left arrow
-↕️ up-down arrow
-↔️ left-right arrow
-↩️ right arrow curving left
-↪️ left arrow curving right
-⤴️ right arrow curving up
-⤵️ right arrow curving down
-🔃 clockwise vertical arrows
-🔄 counterclockwise arrows button
-🔙 BACK arrow
-🔚 END arrow
-🔛 ON! arrow
-🔜 SOON arrow
-🔝 TOP arrow
-🛐 place of worship
-⚛️ atom symbol
-🕉️ om
-✡️ star of David
-☸️ wheel of dharma
-☯️ yin yang
-✝️ latin cross
-☦️ orthodox cross
-☪️ star and crescent
-☮️ peace symbol
-🕎 menorah
-🔯 dotted six-pointed star
-♈ Aries
-♉ Taurus
-♊ Gemini
-♋ Cancer
-♌ Leo
-♍ Virgo
-♎ Libra
-♏ Scorpio
-♐ Sagittarius
-♑ Capricorn
-♒ Aquarius
-♓ Pisces
-⛎ Ophiuchus
-🔀 shuffle tracks button
-🔁 repeat button
-🔂 repeat single button
-▶️ play button
-⏩ fast-forward button
-⏭️ next track button
-⏯️ play or pause button
-◀️ reverse button
-⏪ fast reverse button
-⏮️ last track button
-🔼 upwards button
-⏫ fast up button
-🔽 downwards button
-⏬ fast down button
-⏸️ pause button
-⏹️ stop button
-⏺️ record button
-⏏️ eject button
-🎦 cinema
-🔅 dim button
-🔆 bright button
-📶 antenna bars
-📳 vibration mode
-📴 mobile phone off
-♀️ female sign
-♂️ male sign
-⚧️ transgender symbol
-✖️ multiply
-➕ plus
-➖ minus
-➗ divide
-🟰 heavy equals sign
-♾️ infinity
-‼️ double exclamation mark
-⁉️ exclamation question mark
-❓ red question mark
-❔ white question mark
-❕ white exclamation mark
-❗ red exclamation mark
-〰️ wavy dash
-💱 currency exchange
-💲 heavy dollar sign
-⚕️ medical symbol
-♻️ recycling symbol
-⚜️ fleur-de-lis
-🔱 trident emblem
-📛 name badge
-🔰 Japanese symbol for beginner
-⭕ hollow red circle
-✅ check mark button
-☑️ check box with check
-✔️ check mark
-❌ cross mark
-❎ cross mark button
-➰ curly loop
-➿ double curly loop
-〽️ part alternation mark
-✳️ eight-spoked asterisk
-✴️ eight-pointed star
-❇️ sparkle
-©️ copyright
-®️ registered
-™️ trade mark
-#️⃣ keycap: #
-*️⃣ keycap: *
-0️⃣ keycap: 0
-1️⃣ keycap: 1
-2️⃣ keycap: 2
-3️⃣ keycap: 3
-4️⃣ keycap: 4
-5️⃣ keycap: 5
-6️⃣ keycap: 6
-7️⃣ keycap: 7
-8️⃣ keycap: 8
-9️⃣ keycap: 9
-🔟 keycap: 10
-🔠 input latin uppercase
-🔡 input latin lowercase
-🔢 input numbers
-🔣 input symbols
-🔤 input latin letters
-🅰️ A button (blood type)
-🆎 AB button (blood type)
-🅱️ B button (blood type)
-🆑 CL button
-🆒 COOL button
-🆓 FREE button
-ℹ️ information
-🆔 ID button
-Ⓜ️ circled M
-🆕 NEW button
-🆖 NG button
-🅾️ O button (blood type)
-🆗 OK button
-🅿️ P button
-🆘 SOS button
-🆙 UP! button
-🆚 VS button
-🈁 Japanese “here” button
-🈂️ Japanese “service charge” button
-🈷️ Japanese “monthly amount” button
-🈶 Japanese “not free of charge” button
-🈯 Japanese “reserved” button
-🉐 Japanese “bargain” button
-🈹 Japanese “discount” button
-🈚 Japanese “free of charge” button
-🈲 Japanese “prohibited” button
-🉑 Japanese “acceptable” button
-🈸 Japanese “application” button
-🈴 Japanese “passing grade” button
-🈳 Japanese “vacancy” button
-㊗️ Japanese “congratulations” button
-㊙️ Japanese “secret” button
-🈺 Japanese “open for business” button
-🈵 Japanese “no vacancy” button
-🔴 red circle
-🟠 orange circle
-🟡 yellow circle
-🟢 green circle
-🔵 blue circle
-🟣 purple circle
-🟤 brown circle
-⚫ black circle
-⚪ white circle
-🟥 red square
-🟧 orange square
-🟨 yellow square
-🟩 green square
-🟦 blue square
-🟪 purple square
-🟫 brown square
-⬛ black large square
-⬜ white large square
-◼️ black medium square
-◻️ white medium square
-◾ black medium-small square
-◽ white medium-small square
-▪️ black small square
-▫️ white small square
-🔶 large orange diamond
-🔷 large blue diamond
-🔸 small orange diamond
-🔹 small blue diamond
-🔺 red triangle pointed up
-🔻 red triangle pointed down
-💠 diamond with a dot
-🔘 radio button
-🔳 white square button
-🔲 black square button
-🏁 chequered flag
-🚩 triangular flag
-🎌 crossed flags
-🏴 black flag
-🏳️ white flag
-🇦🇨 flag: Ascension Island
-🇦🇩 flag: Andorra
-🇦🇪 flag: United Arab Emirates
-🇦🇫 flag: Afghanistan
-🇦🇬 flag: Antigua & Barbuda
-🇦🇮 flag: Anguilla
-🇦🇱 flag: Albania
-🇦🇲 flag: Armenia
-🇦🇴 flag: Angola
-🇦🇶 flag: Antarctica
-🇦🇷 flag: Argentina
-🇦🇸 flag: American Samoa
-🇦🇹 flag: Austria
-🇦🇺 flag: Australia
-🇦🇼 flag: Aruba
-🇦🇽 flag: Åland Islands
-🇦🇿 flag: Azerbaijan
-🇧🇦 flag: Bosnia & Herzegovina
-🇧🇧 flag: Barbados
-🇧🇩 flag: Bangladesh
-🇧🇪 flag: Belgium
-🇧🇫 flag: Burkina Faso
-🇧🇬 flag: Bulgaria
-🇧🇭 flag: Bahrain
-🇧🇮 flag: Burundi
-🇧🇯 flag: Benin
-🇧🇱 flag: St. Barthélemy
-🇧🇲 flag: Bermuda
-🇧🇳 flag: Brunei
-🇧🇴 flag: Bolivia
-🇧🇶 flag: Caribbean Netherlands
-🇧🇷 flag: Brazil
-🇧🇸 flag: Bahamas
-🇧🇹 flag: Bhutan
-🇧🇻 flag: Bouvet Island
-🇧🇼 flag: Botswana
-🇧🇾 flag: Belarus
-🇧🇿 flag: Belize
-🇨🇦 flag: Canada
-🇨🇨 flag: Cocos (Keeling) Islands
-🇨🇩 flag: Congo - Kinshasa
-🇨🇫 flag: Central African Republic
-🇨🇬 flag: Congo - Brazzaville
-🇨🇭 flag: Switzerland
-🇨🇮 flag: Côte d’Ivoire
-🇨🇰 flag: Cook Islands
-🇨🇱 flag: Chile
-🇨🇲 flag: Cameroon
-🇨🇳 flag: China
-🇨🇴 flag: Colombia
-🇨🇵 flag: Clipperton Island
-🇨🇷 flag: Costa Rica
-🇨🇺 flag: Cuba
-🇨🇻 flag: Cape Verde
-🇨🇼 flag: Curaçao
-🇨🇽 flag: Christmas Island
-🇨🇾 flag: Cyprus
-🇨🇿 flag: Czechia
-🇩🇪 flag: Germany
-🇩🇬 flag: Diego Garcia
-🇩🇯 flag: Djibouti
-🇩🇰 flag: Denmark
-🇩🇲 flag: Dominica
-🇩🇴 flag: Dominican Republic
-🇩🇿 flag: Algeria
-🇪🇦 flag: Ceuta & Melilla
-🇪🇨 flag: Ecuador
-🇪🇪 flag: Estonia
-🇪🇬 flag: Egypt
-🇪🇭 flag: Western Sahara
-🇪🇷 flag: Eritrea
-🇪🇸 flag: Spain
-🇪🇹 flag: Ethiopia
-🇪🇺 flag: European Union
-🇫🇮 flag: Finland
-🇫🇯 flag: Fiji
-🇫🇰 flag: Falkland Islands
-🇫🇲 flag: Micronesia
-🇫🇴 flag: Faroe Islands
-🇫🇷 flag: France
-🇬🇦 flag: Gabon
-🇬🇧 flag: United Kingdom
-🇬🇩 flag: Grenada
-🇬🇪 flag: Georgia
-🇬🇫 flag: French Guiana
-🇬🇬 flag: Guernsey
-🇬🇭 flag: Ghana
-🇬🇮 flag: Gibraltar
-🇬🇱 flag: Greenland
-🇬🇲 flag: Gambia
-🇬🇳 flag: Guinea
-🇬🇵 flag: Guadeloupe
-🇬🇶 flag: Equatorial Guinea
-🇬🇷 flag: Greece
-🇬🇸 flag: South Georgia & South Sandwich Islands
-🇬🇹 flag: Guatemala
-🇬🇺 flag: Guam
-🇬🇼 flag: Guinea-Bissau
-🇬🇾 flag: Guyana
-🇭🇰 flag: Hong Kong SAR China
-🇭🇲 flag: Heard & McDonald Islands
-🇭🇳 flag: Honduras
-🇭🇷 flag: Croatia
-🇭🇹 flag: Haiti
-🇭🇺 flag: Hungary
-🇮🇨 flag: Canary Islands
-🇮🇩 flag: Indonesia
-🇮🇪 flag: Ireland
-🇮🇱 flag: Israel
-🇮🇲 flag: Isle of Man
-🇮🇳 flag: India
-🇮🇴 flag: British Indian Ocean Territory
-🇮🇶 flag: Iraq
-🇮🇷 flag: Iran
-🇮🇸 flag: Iceland
-🇮🇹 flag: Italy
-🇯🇪 flag: Jersey
-🇯🇲 flag: Jamaica
-🇯🇴 flag: Jordan
-🇯🇵 flag: Japan
-🇰🇪 flag: Kenya
-🇰🇬 flag: Kyrgyzstan
-🇰🇭 flag: Cambodia
-🇰🇮 flag: Kiribati
-🇰🇲 flag: Comoros
-🇰🇳 flag: St. Kitts & Nevis
-🇰🇵 flag: North Korea
-🇰🇷 flag: South Korea
-🇰🇼 flag: Kuwait
-🇰🇾 flag: Cayman Islands
-🇰🇿 flag: Kazakhstan
-🇱🇦 flag: Laos
-🇱🇧 flag: Lebanon
-🇱🇨 flag: St. Lucia
-🇱🇮 flag: Liechtenstein
-🇱🇰 flag: Sri Lanka
-🇱🇷 flag: Liberia
-🇱🇸 flag: Lesotho
-🇱🇹 flag: Lithuania
-🇱🇺 flag: Luxembourg
-🇱🇻 flag: Latvia
-🇱🇾 flag: Libya
-🇲🇦 flag: Morocco
-🇲🇨 flag: Monaco
-🇲🇩 flag: Moldova
-🇲🇪 flag: Montenegro
-🇲🇫 flag: St. Martin
-🇲🇬 flag: Madagascar
-🇲🇭 flag: Marshall Islands
-🇲🇰 flag: North Macedonia
-🇲🇱 flag: Mali
-🇲🇲 flag: Myanmar (Burma)
-🇲🇳 flag: Mongolia
-🇲🇴 flag: Macao SAR China
-🇲🇵 flag: Northern Mariana Islands
-🇲🇶 flag: Martinique
-🇲🇷 flag: Mauritania
-🇲🇸 flag: Montserrat
-🇲🇹 flag: Malta
-🇲🇺 flag: Mauritius
-🇲🇻 flag: Maldives
-🇲🇼 flag: Malawi
-🇲🇽 flag: Mexico
-🇲🇾 flag: Malaysia
-🇲🇿 flag: Mozambique
-🇳🇦 flag: Namibia
-🇳🇨 flag: New Caledonia
-🇳🇪 flag: Niger
-🇳🇫 flag: Norfolk Island
-🇳🇬 flag: Nigeria
-🇳🇮 flag: Nicaragua
-🇳🇱 flag: Netherlands
-🇳🇴 flag: Norway
-🇳🇵 flag: Nepal
-🇳🇷 flag: Nauru
-🇳🇺 flag: Niue
-🇳🇿 flag: New Zealand
-🇴🇲 flag: Oman
-🇵🇦 flag: Panama
-🇵🇪 flag: Peru
-🇵🇫 flag: French Polynesia
-🇵🇬 flag: Papua New Guinea
-🇵🇭 flag: Philippines
-🇵🇰 flag: Pakistan
-🇵🇱 flag: Poland
-🇵🇲 flag: St. Pierre & Miquelon
-🇵🇳 flag: Pitcairn Islands
-🇵🇷 flag: Puerto Rico
-🇵🇸 flag: Palestinian Territories
-🇵🇹 flag: Portugal
-🇵🇼 flag: Palau
-🇵🇾 flag: Paraguay
-🇶🇦 flag: Qatar
-🇷🇪 flag: Réunion
-🇷🇴 flag: Romania
-🇷🇸 flag: Serbia
-🇷🇺 flag: Russia
-🇷🇼 flag: Rwanda
-🇸🇦 flag: Saudi Arabia
-🇸🇧 flag: Solomon Islands
-🇸🇨 flag: Seychelles
-🇸🇩 flag: Sudan
-🇸🇪 flag: Sweden
-🇸🇬 flag: Singapore
-🇸🇭 flag: St. Helena
-🇸🇮 flag: Slovenia
-🇸🇯 flag: Svalbard & Jan Mayen
-🇸🇰 flag: Slovakia
-🇸🇱 flag: Sierra Leone
-🇸🇲 flag: San Marino
-🇸🇳 flag: Senegal
-🇸🇴 flag: Somalia
-🇸🇷 flag: Suriname
-🇸🇸 flag: South Sudan
-🇸🇹 flag: São Tomé & Príncipe
-🇸🇻 flag: El Salvador
-🇸🇽 flag: Sint Maarten
-🇸🇾 flag: Syria
-🇸🇿 flag: Eswatini
-🇹🇦 flag: Tristan da Cunha
-🇹🇨 flag: Turks & Caicos Islands
-🇹🇩 flag: Chad
-🇹🇫 flag: French Southern Territories
-🇹🇬 flag: Togo
-🇹🇭 flag: Thailand
-🇹🇯 flag: Tajikistan
-🇹🇰 flag: Tokelau
-🇹🇱 flag: Timor-Leste
-🇹🇲 flag: Turkmenistan
-🇹🇳 flag: Tunisia
-🇹🇴 flag: Tonga
-🇹🇷 flag: Turkey
-🇹🇹 flag: Trinidad & Tobago
-🇹🇻 flag: Tuvalu
-🇹🇼 flag: Taiwan
-🇹🇿 flag: Tanzania
-🇺🇦 flag: Ukraine
-🇺🇬 flag: Uganda
-🇺🇲 flag: U.S. Outlying Islands
-🇺🇳 flag: United Nations
-🇺🇸 flag: United States
-🇺🇾 flag: Uruguay
-🇺🇿 flag: Uzbekistan
-🇻🇦 flag: Vatican City
-🇻🇨 flag: St. Vincent & Grenadines
-🇻🇪 flag: Venezuela
-🇻🇬 flag: British Virgin Islands
-🇻🇮 flag: U.S. Virgin Islands
-🇻🇳 flag: Vietnam
-🇻🇺 flag: Vanuatu
-🇼🇫 flag: Wallis & Futuna
-🇼🇸 flag: Samoa
-🇽🇰 flag: Kosovo
-🇾🇪 flag: Yemen
-🇾🇹 flag: Mayotte
-🇿🇦 flag: South Africa
-🇿🇲 flag: Zambia
-🇿🇼 flag: Zimbabwe
-🏴 flag: England
-🏴 flag: Scotland
-🏴 flag: Wales
-
diff --git a/.local/share/emoji b/.local/share/emoji
new file mode 100644
index 00000000..9d26cf65
--- /dev/null
+++ b/.local/share/emoji
@@ -0,0 +1,261 @@
+🇦🇨 Ascension Island
+🇦🇩 Andorra
+🇦🇪 United Arab Emirates
+🇦🇫 Afghanistan
+🇦🇬 Antigua & Barbuda
+🇦🇮 Anguilla
+🇦🇱 Albania
+🇦🇲 Armenia
+🇦🇴 Angola
+🇦🇶 Antarctica
+🇦🇷 Argentina
+🇦🇸 American Samoa
+🇦🇹 Austria
+🇦🇺 Australia
+🇦🇼 Aruba
+🇦🇽 Åland Islands
+🇦🇿 Azerbaijan
+🇧🇦 Bosnia & Herzegovina
+🇧🇧 Barbados
+🇧🇩 Bangladesh
+🇧🇪 Belgium
+🇧🇫 Burkina Faso
+🇧🇬 Bulgaria
+🇧🇭 Bahrain
+🇧🇮 Burundi
+🇧🇯 Benin
+🇧🇱 St. Barthélemy
+🇧🇲 Bermuda
+🇧🇳 Brunei
+🇧🇴 Bolivia
+🇧🇶 Caribbean Netherlands
+🇧🇷 Brazil
+🇧🇸 Bahamas
+🇧🇹 Bhutan
+🇧🇻 Bouvet Island
+🇧🇼 Botswana
+🇧🇾 Belarus
+🇧🇿 Belize
+🇨🇦 Canada
+🇨🇨 Cocos (Keeling) Islands
+🇨🇩 Congo - Kinshasa
+🇨🇫 Central African Republic
+🇨🇬 Congo - Brazzaville
+🇨🇭 Switzerland
+🇨🇮 Côte d’Ivoire
+🇨🇰 Cook Islands
+🇨🇱 Chile
+🇨🇲 Cameroon
+🇨🇳 China
+🇨🇴 Colombia
+🇨🇵 Clipperton Island
+🇨🇷 Costa Rica
+🇨🇺 Cuba
+🇨🇻 Cape Verde
+🇨🇼 Curaçao
+🇨🇽 Christmas Island
+🇨🇾 Cyprus
+🇨🇿 Czechia
+🇩🇪 Germany
+🇩🇬 Diego Garcia
+🇩🇯 Djibouti
+🇩🇰 Denmark
+🇩🇲 Dominica
+🇩🇴 Dominican Republic
+🇩🇿 Algeria
+🇪🇦 Ceuta & Melilla
+🇪🇨 Ecuador
+🇪🇪 Estonia
+🇪🇬 Egypt
+🇪🇭 Western Sahara
+🇪🇷 Eritrea
+🇪🇸 Spain
+🇪🇹 Ethiopia
+🇪🇺 European Union
+🇫🇮 Finland
+🇫🇯 Fiji
+🇫🇰 Falkland Islands
+🇫🇲 Micronesia
+🇫🇴 Faroe Islands
+🇫🇷 France
+🇬🇦 Gabon
+🇬🇧 United Kingdom
+🇬🇩 Grenada
+🇬🇪 Georgia
+🇬🇫 French Guiana
+🇬🇬 Guernsey
+🇬🇭 Ghana
+🇬🇮 Gibraltar
+🇬🇱 Greenland
+🇬🇲 Gambia
+🇬🇳 Guinea
+🇬🇵 Guadeloupe
+🇬🇶 Equatorial Guinea
+🇬🇷 Greece
+🇬🇸 South Georgia & South Sandwich Islands
+🇬🇹 Guatemala
+🇬🇺 Guam
+🇬🇼 Guinea-Bissau
+🇬🇾 Guyana
+🇭🇰 Hong Kong SAR China
+🇭🇲 Heard & McDonald Islands
+🇭🇳 Honduras
+🇭🇷 Croatia
+🇭🇹 Haiti
+🇭🇺 Hungary
+🇮🇨 Canary Islands
+🇮🇩 Indonesia
+🇮🇪 Ireland
+🇮🇱 Israel
+🇮🇲 Isle of Man
+🇮🇳 India
+🇮🇴 British Indian Ocean Territory
+🇮🇶 Iraq
+🇮🇷 Iran
+🇮🇸 Iceland
+🇮🇹 Italy
+🇯🇪 Jersey
+🇯🇲 Jamaica
+🇯🇴 Jordan
+🇯🇵 Japan
+🇰🇪 Kenya
+🇰🇬 Kyrgyzstan
+🇰🇭 Cambodia
+🇰🇮 Kiribati
+🇰🇲 Comoros
+🇰🇳 St. Kitts & Nevis
+🇰🇵 North Korea
+🇰🇷 South Korea
+🇰🇼 Kuwait
+🇰🇾 Cayman Islands
+🇰🇿 Kazakhstan
+🇱🇦 Laos
+🇱🇧 Lebanon
+🇱🇨 St. Lucia
+🇱🇮 Liechtenstein
+🇱🇰 Sri Lanka
+🇱🇷 Liberia
+🇱🇸 Lesotho
+🇱🇹 Lithuania
+🇱🇺 Luxembourg
+🇱🇻 Latvia
+🇱🇾 Libya
+🇲🇦 Morocco
+🇲🇨 Monaco
+🇲🇩 Moldova
+🇲🇪 Montenegro
+🇲🇫 St. Martin
+🇲🇬 Madagascar
+🇲🇭 Marshall Islands
+🇲🇰 North Macedonia
+🇲🇱 Mali
+🇲🇲 Myanmar (Burma)
+🇲🇳 Mongolia
+🇲🇴 Macao SAR China
+🇲🇵 Northern Mariana Islands
+🇲🇶 Martinique
+🇲🇷 Mauritania
+🇲🇸 Montserrat
+🇲🇹 Malta
+🇲🇺 Mauritius
+🇲🇻 Maldives
+🇲🇼 Malawi
+🇲🇽 Mexico
+🇲🇾 Malaysia
+🇲🇿 Mozambique
+🇳🇦 Namibia
+🇳🇨 New Caledonia
+🇳🇪 Niger
+🇳🇫 Norfolk Island
+🇳🇬 Nigeria
+🇳🇮 Nicaragua
+🇳🇱 Netherlands
+🇳🇴 Norway
+🇳🇵 Nepal
+🇳🇷 Nauru
+🇳🇺 Niue
+🇳🇿 New Zealand
+🇴🇲 Oman
+🇵🇦 Panama
+🇵🇪 Peru
+🇵🇫 French Polynesia
+🇵🇬 Papua New Guinea
+🇵🇭 Philippines
+🇵🇰 Pakistan
+🇵🇱 Poland
+🇵🇲 St. Pierre & Miquelon
+🇵🇳 Pitcairn Islands
+🇵🇷 Puerto Rico
+🇵🇸 Palestinian Territories
+🇵🇹 Portugal
+🇵🇼 Palau
+🇵🇾 Paraguay
+🇶🇦 Qatar
+🇷🇪 Réunion
+🇷🇴 Romania
+🇷🇸 Serbia
+🇷🇺 Russia
+🇷🇼 Rwanda
+🇸🇦 Saudi Arabia
+🇸🇧 Solomon Islands
+🇸🇨 Seychelles
+🇸🇩 Sudan
+🇸🇪 Sweden
+🇸🇬 Singapore
+🇸🇭 St. Helena
+🇸🇮 Slovenia
+🇸🇯 Svalbard & Jan Mayen
+🇸🇰 Slovakia
+🇸🇱 Sierra Leone
+🇸🇲 San Marino
+🇸🇳 Senegal
+🇸🇴 Somalia
+🇸🇷 Suriname
+🇸🇸 South Sudan
+🇸🇹 São Tomé & Príncipe
+🇸🇻 El Salvador
+🇸🇽 Sint Maarten
+🇸🇾 Syria
+🇸🇿 Eswatini
+🇹🇦 Tristan da Cunha
+🇹🇨 Turks & Caicos Islands
+🇹🇩 Chad
+🇹🇫 French Southern Territories
+🇹🇬 Togo
+🇹🇭 Thailand
+🇹🇯 Tajikistan
+🇹🇰 Tokelau
+🇹🇱 Timor-Leste
+🇹🇲 Turkmenistan
+🇹🇳 Tunisia
+🇹🇴 Tonga
+🇹🇷 Turkey
+🇹🇹 Trinidad & Tobago
+🇹🇻 Tuvalu
+🇹🇼 Taiwan
+🇹🇿 Tanzania
+🇺🇦 Ukraine
+🇺🇬 Uganda
+🇺🇲 U.S. Outlying Islands
+🇺🇳 United Nations
+🇺🇸 United States
+🇺🇾 Uruguay
+🇺🇿 Uzbekistan
+🇻🇦 Vatican City
+🇻🇨 St. Vincent & Grenadines
+🇻🇪 Venezuela
+🇻🇬 British Virgin Islands
+🇻🇮 U.S. Virgin Islands
+🇻🇳 Vietnam
+🇻🇺 Vanuatu
+🇼🇫 Wallis & Futuna
+🇼🇸 Samoa
+🇽🇰 Kosovo
+🇾🇪 Yemen
+🇾🇹 Mayotte
+🇿🇦 South Africa
+🇿🇲 Zambia
+🇿🇼 Zimbabwe
+🏴 England
+🏴 Scotland
+🏴 Wales