feat: add Character Map (charmap) MTK app
A standalone Window Server app for browsing curated sets of characters and copying them to the clipboard for pasting into other apps. - Four sets (Latin, Punctuation, Currency, Symbols) shown as a responsive, scrollable tile grid with category tabs, a live preview/detail footer, and a Copy button. - Click a tile (or use arrow keys + Enter/Space) to select and copy; a transient toast confirms the copy. Mouse wheel scrolls; Tab cycles sets. - Styled with the MTK theme (accent, surfaces, rounded tiles) to match the other Montauk apps, modeled on the calculator app. The character set is deliberately the single-byte Windows-1252 range the system font can render (the glyph cache only holds codepoints 0-255). Copying writes the raw byte, so glyphs render identically here and in every other single-byte-text Montauk app (copying UTF-8 would render as mojibake). Registered in programs/GNUmakefile and scripts/install_apps.sh alongside calculator; menu category "Applications", icon accessories-character-map.svg. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -59,7 +59,7 @@ BINDIR := bin
|
||||
PROGRAMS := $(notdir $(wildcard src/*))
|
||||
|
||||
# Programs with custom Makefiles (built separately).
|
||||
CUSTOM_BUILDS := 2048 doom fetch wiki wikipedia weather imageviewer fontpreview spreadsheet wordprocessor pdfviewer disks devexplorer installer audio music video bluetooth network terminal klog procmgr powermgr calculator desktop login shell rpgdemo paint tcc lua screenshot texteditor mandelbrot printers timezone printd printctl dialogs test_dialogs test_dl libloader libhello crashpad
|
||||
CUSTOM_BUILDS := 2048 doom fetch wiki wikipedia weather imageviewer fontpreview spreadsheet wordprocessor pdfviewer disks devexplorer installer audio music video bluetooth network terminal klog procmgr powermgr calculator charmap desktop login shell rpgdemo paint tcc lua screenshot texteditor mandelbrot printers timezone printd printctl dialogs test_dialogs test_dl libloader libhello crashpad
|
||||
SYSTEM_PROGRAMS := $(filter-out $(CUSTOM_BUILDS),$(PROGRAMS))
|
||||
|
||||
# Build targets: system programs go to bin/os/, apps go to bin/apps/<name>/.
|
||||
@@ -89,9 +89,9 @@ CONFIGDIR := data/config
|
||||
CONFIGSRC := $(wildcard $(CONFIGDIR)/*.toml)
|
||||
CONFIGDST := $(patsubst $(CONFIGDIR)/%,$(BINDIR)/config/%,$(CONFIGSRC))
|
||||
|
||||
.PHONY: all clean 2048 doom fetch wiki wikipedia weather imageviewer fontpreview spreadsheet wordprocessor pdfviewer disks devexplorer installer audio music video bluetooth network terminal klog procmgr powermgr calculator login desktop shell rpgdemo paint tcc lua screenshot texteditor mandelbrot printers timezone printd printctl dialogs icons fonts configs bearssl libc tls libjpeg libjpegwrite install-apps libloader libs libhello test_dialogs test_dl crashpad check-syscalls gen-syscalls
|
||||
.PHONY: all clean 2048 doom fetch wiki wikipedia weather imageviewer fontpreview spreadsheet wordprocessor pdfviewer disks devexplorer installer audio music video bluetooth network terminal klog procmgr powermgr calculator charmap login desktop shell rpgdemo paint tcc lua screenshot texteditor mandelbrot printers timezone printd printctl dialogs icons fonts configs bearssl libc tls libjpeg libjpegwrite install-apps libloader libs libhello test_dialogs test_dl crashpad check-syscalls gen-syscalls
|
||||
|
||||
all: bearssl libc libjpeg libjpegwrite tls libloader libs libhello $(TARGETS) fetch wiki wikipedia weather imageviewer fontpreview spreadsheet wordprocessor pdfviewer disks devexplorer installer audio music video bluetooth network terminal klog procmgr powermgr calculator 2048 doom rpgdemo paint tcc lua screenshot texteditor mandelbrot printers timezone printd printctl dialogs login desktop shell icons fonts install-apps test_dialogs test_dl crashpad $(MANDST) $(WWWDST) $(CA_CERTS) $(CONFIGDST) $(FWDST)
|
||||
all: bearssl libc libjpeg libjpegwrite tls libloader libs libhello $(TARGETS) fetch wiki wikipedia weather imageviewer fontpreview spreadsheet wordprocessor pdfviewer disks devexplorer installer audio music video bluetooth network terminal klog procmgr powermgr calculator charmap 2048 doom rpgdemo paint tcc lua screenshot texteditor mandelbrot printers timezone printd printctl dialogs login desktop shell icons fonts install-apps test_dialogs test_dl crashpad $(MANDST) $(WWWDST) $(CA_CERTS) $(CONFIGDST) $(FWDST)
|
||||
|
||||
# Build BearSSL static library (cross-compiled for freestanding x86_64).
|
||||
BEARSSL_INCLUDES := -isystem $(shell cd .. && pwd)/kernel/freestnd-c-hdrs/x86_64/include -isystem $(abspath include/libc)
|
||||
@@ -223,6 +223,10 @@ powermgr: libc
|
||||
calculator: libc
|
||||
$(MAKE) -C src/calculator
|
||||
|
||||
# Build character map standalone GUI tool (depends on libc).
|
||||
charmap: libc
|
||||
$(MAKE) -C src/charmap
|
||||
|
||||
# Build printers standalone GUI tool (depends on libc, bearssl, and tls).
|
||||
printers: bearssl libc tls
|
||||
$(MAKE) -C src/printers
|
||||
@@ -331,7 +335,7 @@ test_dialogs: libc libloader dialogs
|
||||
$(MAKE) -C src/test_dialogs
|
||||
|
||||
# Install app bundles (manifests, icons, data files) into bin/apps/<name>/.
|
||||
install-apps: 2048 doom rpgdemo paint spreadsheet wordprocessor weather wikipedia imageviewer fontpreview pdfviewer disks devexplorer installer audio music video bluetooth network terminal klog procmgr powermgr calculator screenshot texteditor mandelbrot printers timezone crashpad
|
||||
install-apps: 2048 doom rpgdemo paint spreadsheet wordprocessor weather wikipedia imageviewer fontpreview pdfviewer disks devexplorer installer audio music video bluetooth network terminal klog procmgr powermgr calculator charmap screenshot texteditor mandelbrot printers timezone crashpad
|
||||
../scripts/install_apps.sh
|
||||
|
||||
# Copy man pages into bin/man/ so mkramdisk.sh picks them up.
|
||||
@@ -397,6 +401,7 @@ clean:
|
||||
$(MAKE) -C src/procmgr clean
|
||||
$(MAKE) -C src/powermgr clean
|
||||
$(MAKE) -C src/calculator clean
|
||||
$(MAKE) -C src/charmap clean
|
||||
$(MAKE) -C src/printers clean
|
||||
$(MAKE) -C src/timezone clean
|
||||
$(MAKE) -C src/paint clean
|
||||
|
||||
Reference in New Issue
Block a user