first

+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
··· 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
··· 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