GPLv3 fork — entity definitions sourced from nfa-editor (Postgres). Upstream remote kept for rebases.
  • C++ 98%
  • CMake 1.5%
  • Shell 0.2%
Find a file
Florian Berthold 7facc895a6
All checks were successful
CI Linux (compile gate) / linux (push) Successful in 3m45s
NFA: nfa-trenchbroom:// deep link — open/new a zone from the editor wizard
The nfa-editor "new zone" wizard hands the OS an `nfa-trenchbroom://` link so the
installed .deb launches straight onto a zone (mirrors nfa-renderlab's
nfa-render://). Wiring:

  • trenchbroom.desktop — register x-scheme-handler/nfa-trenchbroom; Exec %F→%U
    (the handler passes URLs); openFiles now also un-wraps file:// URLs so normal
    .map opening still works.
  • parseNfaDeepLink() (NfaZoneSync) — nfa-trenchbroom://<intent>?zone=<slug>;
    intent `new` (empty map) | `open` (import placements); unknown→open. Unit
    test tst_NfaDeepLink covers intents, percent-decode, foreign-scheme + no-zone.
  • AppController::openNfaDeepLink() — resolves the "NFA Prototype" game, creates
    a fresh doc (first declared map format, Valve), drives the new MapWindow.
  • MapWindow::openNfaZone() — activates the remote nfa-editor entity defs and,
    for `open`, imports the zone's placements (shared doImportNfaZone core).
  • Main.cpp openFiles — dispatch an nfa-trenchbroom: arg to the deep-link path.

Activating it needs a .deb rebuild (build-deb.yml) + reinstall so the scheme
handler registers. No game/protocol impact.

Claude-Session: https://claude.ai/code/session_01LA99oddt7JDRVQqyL3JTAY
2026-06-24 22:17:52 +02:00
.forgejo/workflows ci: bump Qt to 6.12.0 (QT_ROOT_DIR + build-deb.sh default) 2026-06-24 12:17:41 +02:00
.github Merge pull request #5273 from TrenchBroom/update-qt-6.10 2026-06-21 23:28:27 +02:00
.vscode Add SoF support 2026-06-17 00:46:29 -04:00
app NFA: nfa-trenchbroom:// deep link — open/new a zone from the editor wizard 2026-06-24 22:17:52 +02:00
cmake Add more precompiled headers 2026-04-22 18:35:30 +02:00
docker Use gtk3 theme if possible 2026-06-14 22:21:24 +02:00
lib NFA: nfa-trenchbroom:// deep link — open/new a zone from the editor wizard 2026-06-24 22:17:52 +02:00
vcpkg@9a5d7860d1 Update vcpkg 2025-11-10 22:06:17 +01:00
vcpkg-overlay-ports Update openexr overlay 2025-09-16 21:20:53 +02:00
www 3419: Updates after moving the repo (#3420) 2020-08-22 19:39:17 +02:00
.clang-format Split include and source files 2025-11-19 06:05:08 +01:00
.clang-tidy Enable modernize-use-braced-init-list clang-tidy check 2026-03-25 22:44:05 +01:00
.clangd Enable checking for unused includes 2024-06-16 17:32:00 +02:00
.gitignore nfa: Debian package (build-deb.sh + Forgejo publish to deb.sub-net.at) 2026-06-19 08:49:27 +02:00
.gitmodules Remove vecmath submodule 2022-07-01 21:57:59 +02:00
AGENTS.md Add a section about code coverage to AGENTS.md 2026-03-25 16:33:27 +01:00
build-deb.sh nfa: run TrenchBroom at lower CPU priority (nice -n 10) via launcher wrapper 2026-06-24 18:58:34 +02:00
BUILD.md Update Qt to 6.10 on CI 2026-06-14 15:00:00 +02:00
CI-linux.sh Make CI builds fail when tests fail 2026-06-09 21:19:44 +02:00
CI-macos.sh Update Qt to 6.10 on CI 2026-06-14 15:00:00 +02:00
CI-windows.bat Use ctest to run tests on CI 2026-06-07 21:45:58 +02:00
CMakeLists.txt Print Qt path on configure 2026-06-12 19:28:48 +02:00
CONTRIBUTING.md Update CONTRIBUTING.md 2026-05-25 15:09:52 +02:00
LICENSE.txt 2041: rename gpl.txt to LICENSE.txt 2019-10-16 16:28:18 +02:00
NFA-FORK.md nfa: push/pull progress+cancel, fuzzy map picker, NFA Server inspector tab 2026-06-21 14:22:51 +02:00
README.md Update CONTRIBUTING.md 2026-05-25 15:09:52 +02:00
vcpkg.json nfa: JsonEntityDefinitionParser — parse nfa-editor JSON entity-def feed 2026-06-19 08:04:07 +02:00

TrenchBroom

TrenchBroom Icon

TrenchBroom is a modern cross-platform level editor for Quake-engine based games.

Features

  • General
    • Full support for editing in 3D and in up to three 2D views
    • High performance renderer with support for huge maps
    • Unlimited Undo and Redo
    • Macro-like command repetition
    • Issue browser with automatic quick fixes
    • Point file support
    • Automatic backups
    • .obj file export
    • Free and cross platform
  • Brush Editing
    • Robust vertex editing with edge and face splitting and manipulating multiple vertices together
    • Clipping tool with two and three points
    • Scaling and shearing tools
    • CSG operations: merge, subtract, intersect
    • UV view for easy texture manipulations
    • Precise texture lock for all brush editing operations
    • Multiple material collections
  • Entity Editing
    • Entity browser with drag and drop support
    • Support for FGD and DEF files for entity definitions
    • Mod support
    • Entity link visualization
    • Displays 3D models in the editor
    • Smart entity property editors
  • Supported Games
    • Quake (Standard and Valve 220 file formats)
    • Quake 2
    • Quake 3 (partial, no patches or brush primitives yet)
    • Hexen 2
    • Daikatana
    • Generic (for custom engines)
    • More games can be supported with custom game configurations

Releases

Binary builds are available from releases.

Compiling

Read BUILD.md for instructions.

Contributing

See CONTRIBUTING.md for more information.

Credits

Changes

See releases for latest changes.