1
0
mirror of https://github.com/kmein/niveum synced 2026-03-16 18:21:07 +01:00
Files
niveum/packages/scripts/unicodmenu.nix

98 lines
3.0 KiB
Nix
Raw Normal View History

2022-03-10 21:52:12 +01:00
{
lib,
runCommand,
fetchurl,
writeText,
writers,
coreutils,
dmenu,
gnused,
libnotify,
xclip,
xdotool,
gawk,
}: let
unicode-file = runCommand "unicode.txt" {} ''
2022-03-10 21:52:12 +01:00
${
writers.writePython3 "generate.py" {flakeIgnore = ["E501" "E722"];} ''
import csv
2022-03-10 21:52:12 +01:00
with open("${
fetchurl {
url = "https://unicode.org/Public/UCD/latest/ucd/UnicodeData.txt";
2022-09-19 07:29:12 +02:00
sha256 = "0wva6ygnh3wrzpzy0kcbc32hz1ydx3k2pqc5xkqrfw83cpnrlvl0";
2022-03-10 21:52:12 +01:00
}
}", "r") as unicode_data:
reader = csv.reader(unicode_data, delimiter=";")
next(reader) # skip first row containing \0
for row in reader:
codepoint = row[0]
name = row[1]
alternate_name = row[10]
try:
print(chr(int(codepoint, 16)), codepoint, name, alternate_name, sep=" ")
except:
continue
''
} > $out
'';
2021-03-04 18:54:48 +01:00
kaomoji-file = writeText "kaomoji.txt" ''
¯\(°_o)/¯ dunno lol shrug dlol
¯\_()_/¯ dunno lol shrug dlol
( ͡° ͜ʖ ͡°) lenny
¯\_( ͡° ͜ʖ ͡°)_/¯ lenny shrug dlol
( д) aaah sad noo
(^o^)丿 hi yay hello
(^o^: ups hehe
(^^) yay
(´) angry argh
(^_^) byebye!! bye
<(^.^<) <(^.^)> (>^.^)> (7^.^)7 (>^.^<) dance
(-.-)Zzz... sleep
() oh noes woot
(°° table flip
() why woot
(___) gloom I see you
sad
(\/) (°,,,,°) (\/) krebs
(ل͜) putting table back
\(°°)/ flip all dem tablez
(`ω´) bear look
(ل͜) strong flex muscle bicep
(ò_óˇ) strong flex muscle bicep
(><) excite
( ` -´).* wizard spell magic
puss in boots big eye
̯̫̯̫(ˆ̮ ̮ˆ) nyan cat
ʕʔ bear
(ԾɷԾ) adventure time
() happy yay
() happy yay
(º º )/ panic
𓂺 penis
𓂸 penis
2021-03-04 18:54:48 +01:00
'';
2022-03-10 21:52:12 +01:00
in
# ref https://github.com/LukeSmithxyz/voidrice/blob/9fe6802122f6e0392c7fe20eefd30437771d7f8e/.local/bin/dmenuunicode
writers.writeDashBin "unicodmenu" ''
2022-05-10 19:29:39 +02:00
history_file=$HOME/.cache/unicodmenu
PATH=${lib.makeBinPath [coreutils dmenu gawk gnused libnotify xclip xdotool]}
all_characters() {
tac "$history_file"
cat ${kaomoji-file} ${unicode-file}
}
chosen=$(all_characters | awk '!seen[$0]++' | dmenu -p unicode -i -l 10 | tee --append "$history_file" | sed "s/ .*//")
2021-03-04 18:54:48 +01:00
2022-03-10 21:52:12 +01:00
[ "$chosen" != "" ] || exit
2021-03-04 18:54:48 +01:00
2022-03-10 21:52:12 +01:00
echo "$chosen" | tr -d '\n' | xclip -selection clipboard
2021-03-04 18:54:48 +01:00
2022-03-10 21:52:12 +01:00
if [ -n "$1" ]; then
xdotool key Shift+Insert
else
notify-send --app-name="$(basename "$0")" "'$chosen' copied to clipboard." &
fi
''