a9efe0ca4c
fix(gui): eliminate row clipping at top of window
2026-03-30 20:28:09 +02:00
7fc2113b8a
feat(gui): implement double-wide glyph support
2026-03-30 19:56:54 +02:00
4291ccf2c5
fix(gui): resolve crashes and glyph rendering bugs from M3 smoke test
2026-03-30 00:27:24 +02:00
996e6714ba
fix(gui): shader build
2026-03-29 20:01:45 +02:00
ae0f62c3bf
feat(gui): M3 - TrueType rasterizer with fontconfig font discovery
...
Replace the M2 stub rasterizer with a real font rasterizer:
- build.zig.zon: add TrueType as a lazy path dependency
- build.zig: swap stub_rasterizer_mod for truetype_rasterizer_mod; link
fontconfig + libc on Linux; TrueType dep is lazy (falls back gracefully)
- src/gui/rasterizer/truetype.zig: andrewrk/TrueType rasterizer; loadFont
uses fontconfig to locate the font file, derives cell dimensions from
vertical metrics (ascent−descent) and 'M' advance width; render blits the
A8 glyph bitmap into the caller-provided staging buffer with correct
baseline placement (ascent_px + off_y) and double-wide support (+cell_w
x-offset for kind=.right); arena allocator per render call
- src/gui/rasterizer/font_finder.zig: OS dispatcher (Linux only for now)
- src/gui/rasterizer/font_finder/linux.zig: fontconfig C API - FcFontMatch
resolves a font name pattern to an absolute file path
Requires: libfontconfig-dev (already present alongside libgl-dev etc.)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-29 19:33:24 +02:00
2fd907345a
refactor: add toggle_maximize_panel binding to file_in_files mode
2026-03-29 19:27:48 +02:00
39b482b2e0
feat(gui): M2 - sokol_gfx GPU backend initialised from wio window
...
Implements milestone 2 of the wio+sokol_gfx cross-platform GUI renderer:
- build.zig.zon: add wio and sokol-zig as lazy path dependencies
- build.zig: wire -Drenderer=gui - creates modules for gpu, app, and the
stub rasterizer; links sokol_clib against system GL/X11/Xi/Xcursor/ALSA
(requires: libgl-dev libx11-dev libxi-dev libxcursor-dev libasound2-dev)
- src/gui/gpu/builtin.glsl.zig: hand-crafted GLCORE ShaderDesc with a
full-screen-quad vertex stage and a cell-grid fragment stage; Y-flip via
row_count*cell_size_y; FsParams as 4 INT uniforms; RGBA32UI cell texture
and R8 glyph-atlas texture with NONFILTERING samplers
- src/gui/gpu/gpu.zig: sokol_gfx backend mirroring the d3d11 backend;
TRIANGLE_STRIP pipeline, CPU-side glyph atlas shadow, per-frame cell
texture update via sg.updateImage
- src/gui/rasterizer/stub.zig: blank-glyph stub rasterizer for M2 testing
- src/gui/wio/app.zig: wio event loop + thespian bridge; creates a core
OpenGL 3.3 context, calls sg.setup/gpu.init, sends RDR messages for
WindowCreated/Resize/keyboard/mouse events, renders on screen_pending
- src/gui/wio/input.zig: wio Button → Flow codepoint/mouse-button mapping
- src/renderer/gui/renderer.zig: standard renderer interface consumed by
tui.zig; dispatches RDR events, delegates font/cursor/clipboard to app
2026-03-29 19:04:52 +02:00
9c66b19650
feat(gui): M1 shared core — extract src/gui/ and replace -Dgui with -Drenderer
...
Move shared types out of src/win32/ into a new src/gui/ package:
- xy.zig: generic XY(T) coordinate type
- xterm.zig: 256-color palette table (used by all GPU renderers)
- GlyphIndexCache.zig: glyph→atlas-slot mapping
- Cell.zig: Rgba8 and Cell extracted from d3d11.zig
- GlyphRasterizer.zig: comptime interface spec/checker
Update src/win32/ imports to point to ../gui/ and delete the
moved originals.
Replace the -Dgui bool option with -Drenderer enum { terminal, gui,
d3d11 }, wiring .d3d11 to the existing win32 DirectWrite path and
keeping build_options.gui = (renderer != .terminal) for tui.zig.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-28 23:22:31 +01:00
a782bfb690
fix: don't filter super, hyper and meta modifiers for no reason
...
This filter was introduced to ignore caps lock, scroll lock and num lock
modifier bits. super, hyper and meta might actually be useful though.
2026-03-28 14:48:07 +01:00
f61c716c27
feat: configure default markdown formatter to reflow at reflow_width
2026-03-26 09:39:06 +01:00
e930effa0c
feat: add {{reflow_width}} expansion
2026-03-26 09:38:28 +01:00
Volodia Kraplich
7f07f544c9
feat(lsp): support toml
2026-03-25 12:34:52 +01:00
84a45810a6
fix(lsp): fallback to sorting completions by label for LSPs that don't return unique sortText
2026-03-25 12:30:44 +01:00
JailBird
561124e667
Add formatter for YAML and LSP for YAML and RPM .spec
2026-03-25 09:10:48 +01:00
524372ed33
Merge branch 'master' into terminal
2026-03-24 21:36:53 +01:00
Ingo Lohmar
9df7a13934
feat: 0-based status line column
...
Optional fifth entry in bottom_bar "linenumber" widget: If literally "true",
display column 0-based (instead of 1-based) a la Emacs.
2026-03-24 15:30:32 +01:00
Miguel Granero
742e70a670
feat: change base path of git blame for subrepo support
2026-03-24 14:02:54 +01:00
edwloef
c0e315495c
invert priorities in file type guess
2026-03-24 13:56:25 +01:00
42d0e541e8
Merge branch 'master' into terminal
2026-03-23 13:10:45 +01:00
11d0e9e7e3
fix: avoid dangling Project pointer crash in LSP and git handlers
2026-03-23 13:09:19 +01:00
a5df57f824
fix: sort filelist items
2026-03-17 22:27:35 +01:00
c93f829cd5
fix: sort files in each directory of the file tree
2026-03-17 22:21:42 +01:00
22ed9a32d7
fix(symbol_palette): add indent to match highlights
2026-03-17 22:11:45 +01:00
Igor Támara
3a16d7fe50
Add indentation according to depth in symbol palette
2026-03-13 13:32:25 -05:00
3553fbf0d2
refactor(terminal): merge focus_terminal and open_terminal commands
2026-03-02 17:00:58 +01:00
2f5d4ded3c
refactor: deduplicate toggle_panel_view
...
By allowing any panel to accept arguments.
2026-03-01 21:50:37 +01:00
c4f6b6c945
refactor(terminal): render terminal panel as unfocused if outer terminal looses focus
2026-03-01 21:21:56 +01:00
581bbdb210
fix(terminal): render software cursor in terminal if enable_terminal_cursor is false
2026-03-01 21:21:53 +01:00
ce240c534c
fix(tv): fix windows gui build
2026-03-01 19:34:33 +01:00
8027096f3e
fix(vt): detect windows pty child exit via registerWaitForSingleObject
2026-03-01 19:31:11 +01:00
a21b1318ed
fix(terminal): file_stream.init call for pty_out should be in the pty actor
2026-03-01 18:13:55 +01:00
97f8d024c6
feat(terminal): initial version of conpty windows support
2026-02-28 21:49:56 +01:00
646db3b374
fix(terminal): build terminal on macos and freebsd
2026-02-28 20:40:54 +01:00
b1e13f036d
feat(terminal): report mouse events to terminal applications
2026-02-27 23:15:04 +01:00
df5c426383
fix(terminal): set terminal hold when running tasks in terminal
2026-02-27 20:21:04 +01:00
5f9b7b7c13
fix(terminal): run posix shell if no command specified and no SHELL found
2026-02-27 20:11:00 +01:00
21b7995393
feat(terminal): add terminal_on_exit config option
2026-02-27 16:29:18 +01:00
29c3424913
fix(terminal): reset terminal if closed when exited
2026-02-27 16:07:01 +01:00
0a37c2b05b
refactor(terminal): close terminal on escape keypress if exited
2026-02-27 16:06:23 +01:00
57aae0d45c
feat(terminal): add close_terminal command
2026-02-27 16:05:40 +01:00
fc78e8cf02
refactor: add argv module with helper functions
2026-02-27 14:07:06 +01:00
a35edeaa9b
refactor(terminal): add re-run command message
2026-02-27 13:00:08 +01:00
94f6b342fa
fix(terminal): setup SIGCHLD handler to catch exits with no writes
2026-02-27 12:57:43 +01:00
632a7c4453
refactor(terminal): add pty read_error handler
2026-02-27 11:49:12 +01:00
bd507d48e2
fix(terminal): prevent terminal disconnect on invalid UTF-8
2026-02-26 22:26:18 +01:00
49d4cda7ef
refactor(terminal): add detailed exit debug logging
2026-02-26 22:18:58 +01:00
7e7cb511a8
refactor(terminal): handle color_change events
2026-02-26 22:12:47 +01:00
4bba8d9715
feat(terminal): handle OSC 52 clipboard requests
2026-02-26 21:30:40 +01:00
885c9682eb
refactor(terminal): add merged move_tab_next/prev_or_scroll_terminal_down/up commands
2026-02-26 21:18:28 +01:00
424fd3efc3
refactor(terminal): add terminal to home screen menu
2026-02-26 20:54:06 +01:00