diff --git a/packages/scripts/unicodmenu.nix b/packages/scripts/unicodmenu.nix index 4eb5505..e71b1aa 100644 --- a/packages/scripts/unicodmenu.nix +++ b/packages/scripts/unicodmenu.nix @@ -1,47 +1,65 @@ -{ lib, fetchurl, writeText, writers, coreutils, dmenu, gnused, libnotify, xclip, xdotool }: +{ lib, runCommand, fetchurl, writeText, writers, coreutils, dmenu, gnused, libnotify, xclip, xdotool, gawk }: let - emoji-file = fetchurl { - url = "https://raw.githubusercontent.com/kmein/unipicker/master/symbols"; - sha256 = "1q6ampv4fhdvd0riz4ihx43gkbyvdab4c38q96ybn0ka9d30vi3g"; - }; + unicode-file = runCommand "unicode.txt" {} '' + ${writers.writePython3 "generate.py" { flakeIgnore = [ "E501" "E722" ]; } '' + import csv + + with open("${fetchurl { + url = "https://unicode.org/Public/UCD/latest/ucd/UnicodeData.txt"; + sha256 = "sha256-NgGOaGV/3LNIX2NmMP/oyFMuAcl3cD0oA/W4nWxf6vs="; + }}", "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 + ''; 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 + ¯\(°_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 ''; in # ref https://github.com/LukeSmithxyz/voidrice/blob/9fe6802122f6e0392c7fe20eefd30437771d7f8e/.local/bin/dmenuunicode writers.writeDashBin "unicodmenu" '' PATH=${lib.makeBinPath [ coreutils dmenu gnused libnotify xclip xdotool ]} - chosen=$(cat ${emoji-file} ${kaomoji-file} | dmenu -i -l 10 | sed "s/ .*//") + chosen=$(cat ${unicode-file} ${kaomoji-file} | dmenu -i -l 10 | sed "s/ .*//") [ "$chosen" != "" ] || exit