dotfiles/bin/choose-emoji-menu
Gabriel Arazas 0681d1fd7c Structure the project with NixOS-styled distros
It's been a while but I've been using NixOS (or anything styled like it
like GuixSD, for example) and distro-hopped from Arch Linux.
I think it's high noon for making the structure of this setup to be
truer to one of the big objectives which is how easy to transfer this
between different setups.
Which means I removed some things such as the package lists, systemd
config files, and package manager-specific configs.
While the solution is easy (which is to simply ignore the
system-specific files) but I'm not going with the pragmatic solution not
because I'm a dumbass but because I'm so smart that I want to create a
challenge for myself to solve a puzzle on figuring out a way on how to
structure my dotfiles. :)

Such a productive use of my time, that's for sure.
2020-09-11 03:12:26 +08:00

27 lines
942 B
Bash
Executable File

#!/usr/bin/env sh
# Simply create a universal emoji selection list.
# The emoji list should be the following file:
# https://unicode.org/Public/emoji/13.0/emoji-test.txt
# Dependencies:
# * mktemp - GNU coreutils 8.31
# * wget - GNU Wget 1.20.3 built on linux-gnu
# * sed - GNU sed 4.8
# * awk - GNU Awk 5.0.1
# * rofi - Version: 1.5.4
# * xclip - version 0.13
emoji_file="$HOME/.local/share/emoji-list.txt"
if [[ ! -f $emoji_file ]]; then
wget --output-document "$emoji_file" https://unicode.org/Public/emoji/13.0/emoji-test.txt
fi
selection=$(awk 'match($0, /([0-9A-F ]+)\s+; fully-qualified\s+# (\S+) E[[:digit:]]+.[[:digit:]]+ (.+)$/, a){print a[2], a[3]}' "$emoji_file" \
| rofi -dmenu -i -fuzzy -p "Choose an emoji to copy." \
| awk '{print $1}')
if [ -n "$selection" ]; then
printf "%s" "$selection" | xclip -selection clipboard && notify-send "'$(xclip -o -selection clipboard)' has been copied to clipboard."
fi