emoji-picker script
This commit is contained in:
parent
7a2b125646
commit
7f93cea6e3
|
@ -0,0 +1,33 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
(writeShellScriptBin "emoji-picker" ''
|
||||||
|
# Define variables
|
||||||
|
symbols_dir="$HOME/.local/share/symbols"
|
||||||
|
emoji_file="$symbols_dir/emoji"
|
||||||
|
nerdfont_file="$symbols_dir/nerdfont"
|
||||||
|
recent="$symbols_dir/recent"
|
||||||
|
remote="https://git.bitlab21.com/sam/symbols.git"
|
||||||
|
|
||||||
|
# Check if emoji files are installed, if not pull from remote
|
||||||
|
if [ ! -f "$emoji_file" ] || [ ! -f "$nerdfont_file" ]; then
|
||||||
|
echo "Symbol files not found. Fetching from: '$remote'..."
|
||||||
|
mkdir -p "$symbols_dir"
|
||||||
|
git clone "$remote" "$symbols_dir"
|
||||||
|
[ "$?" != 0 ] && echo "Error fetching from: $remote" && exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Concat all emoji files and pipe into dmenu. Remove empty rows with sed. Exit if invalid selection.
|
||||||
|
emoji_row=$(cat "$recent" "$emoji_file" "$nerdfont_file" | sed '/^$/d' | dmenu -l 20)
|
||||||
|
[ "$emoji_row" == "**** Recent ****" ] || [ "$emoji_row" == "****************" ] && echo "Invalid selection." && exit 1
|
||||||
|
|
||||||
|
# Add selected emoji to recent.
|
||||||
|
sed -i "/$emoji_row/d" "$recent" && sed -i "2s/^/$emoji_row\n/" "$recent"
|
||||||
|
|
||||||
|
# Copy to clipboard
|
||||||
|
emoji=$(echo "$emoji_row" | sed 's/\s.*//g')
|
||||||
|
echo "$emoji" | xclip -i -r -selection CLIPBOARD
|
||||||
|
notify-send "Emoji Picker" "$emoji_row copied to clipboard"
|
||||||
|
'')
|
||||||
|
];
|
||||||
|
}
|
Loading…
Reference in New Issue