Configuração
Dois arquivos, lidos nesta ordem:
~/.config/trunade/config.toml, para todas as aulas.trunade.tomlao lado do.md, só para aquela pasta.
Cada um sobrescreve só o que declara. Com --config arquivo.toml, só esse arquivo é lido.
Exemplo
timeout_seconds = 10
compile_timeout_seconds = 60
output_limit_bytes = 1048576
editor = ["zed", "{file}:{line}"]
[languages.cpp]
aliases = ["c++", "cxx", "cc"]
source = "main.cpp"
compile = ["g++-16", "-std=c++23", "-Wall", "-Wextra", "-fdiagnostics-color=always", "{flags}", "{source}", "-o", "{binary}"]
run = ["{binary}"]
Campos
| Campo | O que faz |
|---|---|
timeout_seconds |
tempo limite de execução com stdin fixo |
compile_timeout_seconds |
tempo limite da compilação |
output_limit_bytes |
limite de saída por execução |
editor |
comando para abrir o .md na linha do bloco |
Linguagens
Cada [languages.nome] substitui a linguagem inteira.
| Campo | O que faz |
|---|---|
aliases |
outros nomes aceitos no fence |
source |
nome do arquivo-fonte |
compile |
comando de compilação (opcional; Python não tem) |
run |
comando de execução |
Nos comandos, {source} e {binary} viram os caminhos temporários e {flags} vira as flags do bloco, em vários argumentos.
Exemplo: Rust
[languages.rust]
aliases = ["rs"]
source = "main.rs"
compile = ["rustc", "-O", "{flags}", "{source}", "-o", "{binary}"]
run = ["{binary}"]
Preferências da página
O que você escolhe no painel ☰ (fontes, tema, cores do código, largura, tamanho, idioma) fica em ~/.config/trunade/preferences.toml, gravado pelo próprio Trunade!. Vale para todas as aulas. Dá para editar à mão; valores desconhecidos são ignorados.
theme = "light" # auto | light | dark
code_theme = "dark" # auto | light | dark
locale = "pt" # pt | en
font_scale = 1.2
text_width = "narrow" # narrow | wide
title_font = "gloock" # gloock | ibm-plex-mono | fraunces | cormorant-garamond | young-serif
body_font = "inter" # jetbrains-mono | fira-code | inter | open-sans
code_font = "fira-code" # jetbrains-mono | fira-code
Registro de uso
Cada vez que o Trunade! abre uma aula, ele grava um registro local em ~/.local/share/trunade/logs/ (ou $XDG_DATA_HOME/trunade/logs/), um arquivo por sessão, em JSON Lines: 2026-10-16T14-02-33Z-aula14.jsonl. O caminho aparece no terminal ao iniciar.
O registro é anônimo e nunca sai da máquina. Ele guarda o que aconteceu na página, não quem estava na sala:
| Evento | Campos |
|---|---|
start, document |
nome do .md, versão, número de blocos (document quando o arquivo muda) |
connect, disconnect, visibility |
página aberta, fechada, em segundo plano |
section |
título em que a página parou |
run |
bloco (cell, line, language), se foi editado na página, número de casos |
case |
resultado e veredito de cada caso de teste, tempo |
finished |
resultado, tempos, primeira linha do erro de compilação |
quiz |
pergunta, opções escolhidas, se acertou |
step, zoom, print, runAll |
passo mostrado, bloco ampliado, PDF, rodar tudo |
Todos os eventos têm time em UTC. Para apagar, basta apagar os arquivos.