Karl Traunmüller's Avatar

Karl Traunmüller

@compositorapp

Mac & iOS developer. Author of Compositor, the WYSIWYG LaTeX Editor for Mac and Windows. https://compositorapp.com/ https://github.com/ktraunmueller

22
Followers
2
Following
55
Posts
19.03.2025
Joined
Posts Following

Latest posts by Karl Traunmüller @compositorapp

Post image

I decided to pull the "Soft line wrapping in source editor" ticket into the Windows 0.6 release, because a lot of documents seem to require it. Sorry for the delay. github.com/ktraunmuelle...

10.03.2026 21:45 👍 0 🔁 0 💬 0 📌 0
Post image Post image Post image

And here's source editor warnings & errors in the Windows app:

09.03.2026 21:51 👍 0 🔁 0 💬 0 📌 0

UI is absolutely my weak spot, I have to say in my defense 😅

05.03.2026 22:43 👍 0 🔁 0 💬 0 📌 0
Post image Post image Post image

Prototyping source editor warnings & errors in the macOS app. I guess that should work for a first iteration. I'll implement the missing UI on the Windows side next, and then call github.com/ktraunmuelle... done.

05.03.2026 22:30 👍 0 🔁 0 💬 2 📌 0
Preview
ktraunmueller/Compositor The WYSIWYG LaTeX Editor for macOS and Windows. Contribute to ktraunmueller/Compositor development by creating an account on GitHub.

Thanks to Codex, I am making swift progress on the Windows 0.6 tickets. Probably another 2-3 weeks until the release. github.com/ktraunmuelle...

28.02.2026 11:23 👍 2 🔁 0 💬 0 📌 0

I recently tried both Claude Code and OpenAI Codex, and Codex wins—hands down.

26.02.2026 21:20 👍 0 🔁 0 💬 0 📌 0
Video thumbnail

Scrolling the current line visible in the source editor when navigating up or down. The red outline is just diagnostic line bounding box visualization. github.com/ktraunmuelle...

20.02.2026 13:01 👍 0 🔁 0 💬 0 📌 0
Post image

I guess that's a milestone, somehow? 🥳

20.02.2026 11:42 👍 1 🔁 0 💬 0 📌 0
Profiling Swift Applications on Windows and macOS with Tracy Here’s a write-up of my experience with integrating Tracy, a very impressive profiler, into Compositor (on both Windows and macOS platforms) to get a detailed picture of what’s happening inside the ap...

I have written a blog post about my experience with integrating the fabulous Tracy profiler into Compositor on both Windows and macOS: compositorapp.com/blog/2026-02...

19.02.2026 12:41 👍 1 🔁 0 💬 0 📌 0
Post image

...and Windows:

15.02.2026 11:16 👍 0 🔁 0 💬 0 📌 0
Post image

Line numbers in the source editor, on macOS...

15.02.2026 11:15 👍 0 🔁 0 💬 1 📌 0
Compositor for Windows 0.5 The next prototype of Compositor for Windows, release 0.5 is finally available! 🎉

Compositor for Windows release 0.5 is finally available! 🎉 This prototype brings the first iteration of a brand-new LaTeX source editor. Read all about it on the blog: compositorapp.com/blog/2026-02...

#TeXLaTeX

12.02.2026 16:14 👍 3 🔁 0 💬 0 📌 0
Preview
ktraunmueller/Compositor The WYSIWYG LaTeX Editor for macOS and Windows. Contribute to ktraunmueller/Compositor development by creating an account on GitHub.

Compositor for Windows 0.5 will probably be released tomorrow! Sorry for the long wait.

github.com/ktraunmuelle...

11.02.2026 21:00 👍 0 🔁 0 💬 0 📌 0
Preview
10ms delay between canvas.invalidate() and canvas draw handler being called · Issue #680 · ktraunmueller/Compositor Try to get rid of the unacceptably long delay between canvas invalidation and canvas drawing: https://bsky.app/profile/compositorapp.bsky.social/post/3mdy5mijrz22x Possible solution: replace Canvas...

The observed delays of between 1~15 milliseconds smells a lot like a 60 frames/sec (16.7ms) cadence, presumably coming from XAML's rendering architecture. My idea now is to replace the current CanvasControl with a CanvasSwapChainPanel, to get the delay down to 1ms or less. github.com/ktraunmuelle...

04.02.2026 11:33 👍 0 🔁 0 💬 0 📌 0
Post image Post image Post image Post image

Ok, the problem is not the dispatch from the background thread to the main queue, that takes less than 100 microseconds (with the Windows DispatcherQueue). There's a 10ms gap on the main queue between updating the page data and rendering. Investigating... 🔎

03.02.2026 20:00 👍 0 🔁 0 💬 1 📌 0
Post image

Same measurement on macOS: the delay is around 1ms.

01.02.2026 18:54 👍 0 🔁 0 💬 0 📌 0
Post image

On Windows, there's still a delay of up to 15ms between "typesetting completed" and page drawing. I had hoped the issue with DispatchQueue/MainRunLoop integration had been solved by this commit, but it doesn't look like it: github.com/ktraunmuelle...
I need to try something else.

01.02.2026 09:32 👍 0 🔁 0 💬 2 📌 0
Post image Post image Post image

Some performance insights from Tracy profiler: on my Microsoft Surface laptop with an Intel Core Ultra 7, rendering one page of a document takes around 700 microseconds (0.7ms). A page pass (typesetting one page) takes around 20ms. The gaps between the page passes is basically my typing speed.

31.01.2026 13:30 👍 0 🔁 0 💬 0 📌 0
Post image

I added support for the hugely impressive frame-based instrumentation profiler Tracy to Compositor. This lets me closely inspect the performance characteristics of every part of the app. Here's a first run, I still need to instrument the code with (a lot) more annotations.

30.01.2026 12:15 👍 0 🔁 0 💬 0 📌 0
Preview
Introducing Windows Office Hours! Hello Windows Developers! There has been a significant amount of interest in Windows Swift development for both developing applications as well as interest from potential contributors to the toolch...

If anyone is interested in what’s happening with Swift on Windows, Saleem (@compnerd) is hosting biweekly Windows office hours. See this Swift Forums post: forums.swift.org/t/introducin...
I’ve taken something away from almost every meeting.

23.01.2026 13:20 👍 3 🔁 0 💬 0 📌 0
Preview
ktraunmueller/Compositor The WYSIWYG LaTeX Editor for macOS and Windows. Contribute to ktraunmueller/Compositor development by creating an account on GitHub.

Syntax highlighting and code completion will likely be added in milestone 0.6 github.com/ktraunmuelle...

23.01.2026 09:33 👍 0 🔁 0 💬 0 📌 0
Video thumbnail

The new source code editor is finally integrated into the Windows app. Looks and behaves pretty much identical to the Mac app. This brings us close to the next prototype release, milestone 0.5 #WYSIWYG #LaTeX github.com/ktraunmuelle...

23.01.2026 09:23 👍 2 🔁 0 💬 1 📌 0
Post image

Taking a close look at how the new ASCII piece table responds to different editing scenarios (WYSIWYG editing, in this case).

09.01.2026 14:24 👍 1 🔁 0 💬 0 📌 0
Video thumbnail

Here's a short clip of the UI tests running:

09.01.2026 12:15 👍 0 🔁 0 💬 0 📌 0
Post image Post image

I am generally not a fan of UI tests, but I have some "smoke test" UI tests. I am not using XCUITest here, however -- this is XCTest with the app itself as the test host, an approach I described in this blog post: compositorapp.com/blog/2018-09...

09.01.2026 11:51 👍 0 🔁 0 💬 1 📌 0
Preview
ktraunmueller/Compositor The WYSIWYG LaTeX Editor for macOS and Windows. Contribute to ktraunmueller/Compositor development by creating an account on GitHub.

Next up, I am gonna wrap up the Cross-platform source editor foundation, and add a basic source code editor to the Windows app. github.com/ktraunmuelle...

08.01.2026 11:19 👍 0 🔁 0 💬 0 📌 0
Post image

At the heart of Compositor's LaTeX source code handling sits an ASCIIString type. As part of the new source editor foundation, I have replaced its backing store with an ASCIIPieceTable type. The heart surgery is now complete, and my extensive test suite gives me confidence about the changes.

08.01.2026 11:18 👍 1 🔁 0 💬 1 📌 0
Post image Post image

And all that logic is now nicely unit-testable.

29.12.2025 11:59 👍 0 🔁 0 💬 0 📌 0
Post image Post image Post image

All of the editor layout, navigation, and selection logic is now in the shared Core library that's used by both the Mac and Windows apps. On Mac, the NSView just forwards input events and contains a few lines of drawing code.

29.12.2025 11:22 👍 0 🔁 0 💬 1 📌 0
Video thumbnail

Basic mouse and keyboard navigation, together with selection, in the new source code editor (here, on the Mac - Windows will follow soon).

28.12.2025 12:38 👍 1 🔁 0 💬 0 📌 0