Hi there,
I started checking typst out and tinymist seems like the preferred LSP for it.
I’ve been using the LSP just fine with both helix and Kate, but I’m having trouble configuring the preview the way I want on both editors.
On helix, the preview opens fine in my default browser, but I’m looking for a way to open it in a specific firefox profile (I know it’s possible, I just cannot figure out how). TL;DR: Could someone point me out to the config option that tells tinymist preview to call a specific browser?
Secondly, on Kate, I just can’t seem to make the preview run, despite tinymist itself working just fine as an LSP. The config I’m using is:
I haven’t tried using the preview with Kate, I just have typst watch and a PDF viewer running separately. If I had to guess, Kate just doesn’t support this. You might want to open a bug here: https://bugs.kde.org/
Thanks for the reply!
When you said that Kate might not support this, could you explain why that would be? I’d expect the preview to be handled entirely by tinymist and be completely IDE-agnostic…
If I do end up raising a bug on the KDE tracker, what info would be useful there?
Here is what the LSP output gives:
[2025-12-06T13:28:49Z INFO tinymist::lsp] server initialized
[2025-12-06T13:28:49Z INFO sync_ls::server] notify initialized succeeded in 20.06µs
[2025-12-06T13:28:49Z INFO sync_ls::server] notifying workspace/didChangeConfiguration
[2025-12-06T13:28:49Z INFO tinymist::config] ServerState: config update_by_map {"preview.background.args":["--data-plane-host=127.0.0.1:0","--open"],"preview.background.enabled":true}
[2025-12-06T13:28:49Z INFO tinymist::config] Server: running lsp in full mode
[2025-12-06T13:28:49Z INFO tinymist::lsp] new settings applied
[2025-12-06T13:28:49Z INFO sync_ls::server] notify workspace/didChangeConfiguration succeeded in 78.78µs
[2025-12-06T13:28:49Z INFO sync_ls::server] notifying textDocument/didOpen
[2025-12-06T13:28:49Z INFO tinymist::lsp] did open file://path/to/ifs.typ
[2025-12-06T13:28:49Z INFO tinymist::input] the task of the primary is changing to TaskInputs { entry: Some(EntryState { root: Some("."), main: Some(@ws/p0:0.0.0/ifs.typ) }), inputs: None }
[2025-12-06T13:28:49Z INFO tinymist::input] file focused[implicit,o]: Some("path/to/ifs.typ")
[2025-12-06T13:28:49Z INFO sync_ls::server] notify textDocument/didOpen succeeded in 488.75µs
[2025-12-06T13:28:49Z INFO sync_ls::server] handling textDocument/documentSymbol - (2)
[2025-12-06T13:28:49Z INFO sync_ls::server] handling textDocument/semanticTokens/full - (3)
[2025-12-06T13:28:49Z INFO tinymist::input] the task of the primary is changing to TaskInputs { entry: Some(EntryState { root: Some("."), main: Some(@ws/p0:0.0.0/ifs.typ) }), inputs: None }
[2025-12-06T13:28:49Z INFO sync_ls::server] handled textDocument/documentSymbol - (2) in 171.61µs
[2025-12-06T13:28:49Z INFO tinymist::input] file focused[implicit,t]: Some("path/to/ifs.typ")
[14:28:49  Serveur LSP Journal] typst@.
[2025-12-06T13:28:49Z INFO tinymist_project::compiler] path/to/ifs.typ: compilation succeeded in 57.812886ms
[2025-12-06T13:28:49Z INFO tinymist::project] skipping emit pending reasons for 3 != 2
So I guess what I need to figure out is how to pass a “companion” command to the helix LSP manager to open the URL with a specific firefox once tinymist is started…
I’ll also discuss with the KDE people to see how things could be handled in Kate before opening an actual issue.
I’ll update this thread if I can figure something out.