+37
README.md
+37
README.md
···
1
+
# kaomoji
2
+
3
+
select from a tiny database of cute little kaomojis, powered by [skate](https://github.com/charmbracelet/skate) and [gum](https://github.com/charmbracelet/gum)!
4
+
5
+
this project was inspired by me wanting to take the AI out of [this charm CLI recipe](https://charm.sh/blog/kamoji-generator/) and instead use their `skate` key-value store.
6
+
7
+
## install
8
+
9
+
install dependencies:
10
+
- [skate](https://github.com/charmbracelet/skate)
11
+
- [gum](https://github.com/charmbracelet/gum)
12
+
13
+
clone this repo and move to it:
14
+
15
+
```bash
16
+
git clone https://bytes.4-walls.net/kat/kaomoji
17
+
cd kaomoji
18
+
```
19
+
make both scripts executable:
20
+
21
+
```bash
22
+
chmod a+x install-db.sh
23
+
chmod a+x kaomoji.sh
24
+
```
25
+
then run the `install` command, or `kaomoji.sh` will fail:
26
+
27
+
```bash
28
+
./kaomoji.sh install
29
+
```
30
+
31
+
## usage
32
+
33
+
just run `./kaomoji.sh`! you will be given a list of kaomojis in the database to choose from. you can also search it :) navigate with the arrow keys.
34
+
35
+
once you've found your desired kaomoji, hit `enter`, and it will copy to your keyboard and print to the terminal, or if `xsel` or `pbcopy` are unavailable, it will only print.
36
+
37
+
and you have your kaomoji :)
+35
install-db.sh
+35
install-db.sh
···
1
+
#!/bin/bash
2
+
#
3
+
# requires charmbracelet/skate
4
+
5
+
skate set bear@kaomoji "ʕ •ᴥ•ʔ"
6
+
skate set cat1@kaomoji "(=^・ω・^=)"
7
+
skate set cat2@kaomoji "(Φ ω Φ)"
8
+
skate set cat3@kaomoji "=^._.^="
9
+
skate set dog1@kaomoji "▼・ᴥ・▼"
10
+
skate set dog2@kaomoji "૮ ・ﻌ・ა"
11
+
skate set bat1@kaomoji "⎛⎝(ʘ ⱅ ʘ)⎠⎞"
12
+
skate set bat2@kaomoji "(㇏(♡ ᢍ ♡)ノ)blood…"
13
+
skate set bunny1@kaomoji "₍ᐢ・ × ・ᐢ₎"
14
+
skate set bird1@kaomoji "( ̄Θ ̄)"
15
+
skate set bird2@kaomoji "(・θ・)"
16
+
skate set fish1@kaomoji "(°)#))<<"
17
+
skate set frog1@kaomoji "₍°= ̮ =°₎"
18
+
skate set mouse1@kaomoji "ᘛ⁐̤ᕐᐷ"
19
+
skate set pig1@kaomoji "(´・(oo)・`)"
20
+
skate set angel1@kaomoji "ଘ( ˊωˋ )ଓ"
21
+
skate set angel2@kaomoji "ᜊ( ‘ ⩊ ‘𖦹)ᜊ"
22
+
skate set fairy1@kaomoji "ଘ(∩^o^)⊃━☆゜"
23
+
skate set fairy2@kaomoji "ଘ( ・ω・)_/゚・:*:・。☆"
24
+
skate set rilakkuma1@kaomoji "•(ㅅ)•"
25
+
skate set hellokitty1@kaomoji "ミ・◦・ミ"
26
+
skate set miffy1@kaomoji "⋆ ˚。⋆₍ᐢ. ༝ .ᐢ₎⋆ ˚。⋆"
27
+
skate set spiderman1@kaomoji "(ᕒ◺⁞⁞◿ᓬ)"
28
+
skate set batman1@kaomoji "ᐞ⊳៴⊲ᐞ"
29
+
skate set batman2@kaomoji "(◣_◢)"
30
+
skate set happy1@kaomoji "(≧▽≦)/"
31
+
skate set happy2@kaomoji "(°▽°)/"
32
+
skate set greeting1@kaomoji "(*・ω・)ノ"
33
+
skate set greeting2@kaomoji "(*・ω・)ノ"
34
+
skate set happy3@kaomoji "(^‿^)"
35
+
skate set happy4@kaomoji "( ̄ε ̄@)"
+53
kaomoji.sh
+53
kaomoji.sh
···
1
+
#!/usr/bin/env bash
2
+
#
3
+
# adapted from this charm CLI blog post:
4
+
#
5
+
# https://charm.sh/blog/kamoji-generator/
6
+
7
+
# print basic help
8
+
case "$1" in
9
+
"-h" | "--help" | "help")
10
+
printf 'pick from a list of kaomojis! \n\n'
11
+
printf 'Usage: %s [kind]\n' "$(basename "$0")"
12
+
exit 1
13
+
;;
14
+
"install" | "add")
15
+
echo "installing skate DB" | lolcat -p 0.5
16
+
source install-db.sh
17
+
clear
18
+
;;
19
+
esac
20
+
21
+
# check for existing DB
22
+
check="$(skate list @kaomoji)"
23
+
24
+
if [[ $check == "" ]]; then
25
+
echo "please install kaomojis: kaomoji install"
26
+
exit 1
27
+
fi
28
+
29
+
# print list to select or search for a kaomoji by name
30
+
kaomoji="$(skate list @kaomoji | gum filter)"
31
+
if [[ $kaomoji == "" ]]; then
32
+
exit 1
33
+
fi
34
+
35
+
choice="$(echo $kaomoji)"
36
+
if [[ $choice == "" ]]; then
37
+
exit 1
38
+
fi
39
+
40
+
# If xsel (X11) or pbcopy (macOS) exists, copy to the clipboard. If not, just
41
+
# print the Kaomoji.
42
+
if command -v xsel &> /dev/null; then
43
+
printf '%s' "$choice" | xclip -sel clip # X11
44
+
elif command -v pbcopy &> /dev/null; then
45
+
printf '%s' "$choice" | pbcopy # macOS
46
+
else
47
+
# We can't copy, so just print it out.
48
+
printf 'Here you go: %s\n' "$choice" | lolcat -p 0.5
49
+
exit 0
50
+
fi
51
+
52
+
# We're done!
53
+
printf 'Copied %s to the clipboard\n' "$choice" | lolcat -p 0.5