- Rust 99.8%
- Shell 0.2%
* chore: release v0.1.2 * docs: update CHANGELOG for version 0.1.2 --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Coko <91132775+coko7@users.noreply.github.com> |
||
|---|---|---|
| .github/workflows | ||
| assets | ||
| data | ||
| scripts | ||
| src | ||
| .gitignore | ||
| build.rs | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CHANGELOG.md | ||
| CLAUDE.md | ||
| LICENSE | ||
| README.md | ||
| THIRD_PARTY_LICENSES.md | ||
😴 latuicon
latuicon, the late TUI icon picker: a rip-off of the late.sh embedded icon picker.
A terminal UI icon picker for emoji, kaomoji, Unicode characters, and Nerd Font glyphs. Press Enter to print the selected icon to stdout; press Esc to exit without output.
Tip
Want to use
latuiconin Neovim? Check out thelatuicon.nvimwrapper plugin!
What's different from late.sh
The initial commit bootstrapped from the icon-picker component of late.sh (specifically code up until 6c670683). All development since then is independent.
Changes and additions:
- Fuzzy search 🪄 — word-level Levenshtein matching so small typos still find the right icon (e.g.
tumbs up→ 👍) - Data files 📂 — emoji, kaomoji, unicode, and nerd font data extracted into editable JSON files under
data/ - Centered layout 🎯 — subtitle under the title, icon-set block sized to content, search and icon list horizontally inset
- Standalone binary 📦 — packaged as
latuicon, decoupled from the late.sh monorepo
Designed for shell capture:
icon=$(latuicon)
Install
Cargo
Install the latuicon bin crate:
cargo install latuicon
Arch Linux (AUR)
Install the latuicon AUR package:
$ yay -S latuicon
# or
$ paru -S latuicon
Build from source
./scripts/deploy.sh
Builds a release binary and installs it to ~/.local/bin/latuicon.
Usage
latuicon # default theme
latuicon --theme mocha # specific theme
ICON_PICKER_THEME=dracula latuicon
Prints the chosen icon to stdout on confirm, nothing on Esc/Ctrl+C.
Desktop integration example (Hyprland)
In my setup, I use floatty.sh to open latuicon in a floating terminal window and pipe the result to the clipboard. Here is my custom Hyprland binding for it:
bindd = $mainMod, comma, laTUIcon icon picker, exec, FLOATTY_CAPTURE_OUTPUT=1 bash floatty.sh latuicon latuicon | wl-copy
And these are the Hyprland window rules for it:
# Special rules for floating/prompt terminals
windowrule {
name = floater-kitty
match:class = ^(floater-kitty-.*)$
no_anim = on
float = on
center = on
size = 1000 800
}
windowrule {
name = floater-kitty-latuicon
match:class = floater-kitty-latuicon
size = 700 700
}
Pressing $mainMod + , opens a floating terminal with the picker; confirming an icon copies it straight to the Wayland clipboard.
Keybindings
| Key | Action |
|---|---|
↑ / ↓ |
Navigate list |
Ctrl+K / Ctrl+J |
Navigate list (vi-style) |
PgUp / PgDn |
Page up / down |
Ctrl+U / Ctrl+D |
Half-page up / down |
Tab / Shift+Tab |
Switch tab |
Enter |
Select and exit |
Esc / Ctrl+C |
Exit without selecting |
| Type anything | Filter by name |
Ctrl+Z |
Undo search edit |
| Mouse click | Select tab or item |
| Double-click | Select and exit |
| Scroll wheel | Scroll list |
Search supports full emacs cursor movement (Ctrl+A, Ctrl+E, Ctrl+F, Ctrl+B, Ctrl+W, Ctrl+Y, etc.).
Themes
contrast (default), late, purple, mocha, gruvbox, dracula
Tabs
- All — every icon from every other tab, combined into one searchable set
- Emoji — common emoji + full emoji set
- Kaomoji — curated kaomoji collection
- Unicode — common symbols + Box Drawing, Geometric Shapes, Arrows, Math Operators, Dingbats; search supports
U+XXXX/0xXXXXhex lookup and full Unicode name scan - Nerd Font — common glyphs + full Nerd Font glyph set
Credits
The project was seeded from the icon-picker component of late.sh at commit 6c670683. Code written after the initial commit is not derived from that project.
The original icon picker was written by @mevanlc; the late.sh project is maintained by @mpiorowski.
See THIRD_PARTY_LICENSES.md for the license covering the derived code from the initial commit.