A modern take on Character Map, and with the entire Unicode character set

About Unimap


I find myself googling "unicode map" quite a lot. The Character Map program that ships with Windows only includes the first Unicode plane. This solves both problems.

——

Pick a Unicode block to view all characters inside; or, search for a block or character by name. Click a character to copy it to your system clipboard!

You can also hover over a character to see its name, HTML entity and UTF-8 encoding.

Download: https://github.com/taylorplewe/unimap/releases/latest

Only runs on Windows currently; porting to other OS’s should be trivial.

During the planning of this project I became aware of BabelMap, which is pretty much the exact same thing as this. However, I'm sticking with it as BabelMap, while it does work on modern Windows, is somewhat dated.

Logo not final

Read more
Filters

Recent Activity

Let this serve as the definitive showcase video for Unimap following the end of the jam:

https://www.youtube.com/watch?v=5TmZWas_k8s

Update, morning after Jam deadline: I switched back to an SDL3 backend, and that seems to have fixed

  • setting the icon for the window & taskbar
  • copying characters correctly

The downside is that the window is resizable again, which I don't want, but is less important than the above two issues. (This is because I'm having a hard time calling Win32 functions with the hWnd that the SDL backend gives me.) DVUI's different backends are buggy in a few ways, I've come to find out.

Final update on &unimap - polished up search UX a lot. / and ctrl + k focus the search bar, searching is very fast, and searches both blocks as well as characters. esc closes the search window.

Other updates:

  • load fonts from user's OS instead of baking in GNU Unifont
  • info dialog about the program
  • enter shortcut on go-to-code-point

Couldn't get to:

  • drag and drop characters onto other windows
  • customize the window's title bar
  • add icon to window (DVUI's DX11 backend, which I'm using, seems to be broken in this regard)

Known errata:

  • on load, the program asynchronously loads a bunch of fonts from your OS. Every once in a while (maybe 1 in 10 runs) it panics with an allocator error related to this.
  • loading really big blocks (any of the Private Use areas, some of the CJK ones) bogs down the app's performance to a slog because it's trying to render every single one of those character buttons--I tried to implement virtual scrolling like I did with the search window but couldn't get it done in time.
View original message on Discord

More progress on &unimap - search by character name, and go-to-code-point (feature parity with windows' Character Map and BabelMap.)

I'm pleased with the speed at which it searches all 40,000+ char names. Was fully expecting to dive into SIMD intrinsics by now and implement a fast substring search algorithm like this one.

Next things I want to do are

  • load fonts from the user's OS if possible (instead of embedding all of GNU Unifont into the binary lol)
  • drag-and-drop characters onto other windows (Character Map/BabelMap feature parity)
  • clean up/streamline the UI. (only really need 1 search bar that returns both characters and blocks in an intuitive fashion)

1 and 2 will require diving into Win32 finally

View original message on Discord

Progress on &unimap - scroll & search all the Unicode blocks (keyboard shortcut = /), click on one to view all the characters therein. Hovering a character shows its logical hex value and HTML entity. Clicking a character copies it to the system clipboard. DVUI makes this really easy with dvui.clipboardTextSet(). I was expecting to dive into Win32 by now but alas

View original message on Discord