908f780605
fix(gui): renderer.vaxis must be pub for terminal
2026-04-03 22:45:58 +02:00
0564673946
Merge branch 'terminal' into wio-sokol-gui
2026-04-03 22:43:14 +02:00
1937831df5
Merge branch 'master' into terminal
2026-04-03 22:42:37 +02:00
d3aa7e17f5
feat(gui): add freetype rasterizer backend
2026-04-03 22:39:40 +02:00
51753cc87a
feat: add restore_last_cursor_position_exclusions config option
...
Defaults to just COMMIT_EDITMSG
2026-04-03 18:06:03 +02:00
1901696b7b
fix(gui): rounded box drawing improvements (wip)
2026-04-03 16:46:10 +02:00
4ef923cf0a
fix(gui): typo in SW corner octant codepoint number
2026-04-03 12:07:11 +02:00
4dba57ebab
feat(gui): add geometric rendering of more box and line drawing symbols
2026-04-03 12:06:09 +02:00
4d15884402
fix(gui): render block drawing glyphs with no anti aliasing
2026-04-01 14:40:23 +02:00
6954983d40
fix(gui): prevent crash on very small font sizes
2026-04-01 13:31:00 +02:00
6292000ada
feat(gui): implement gui loadConfig and saveConfig
2026-04-01 13:16:37 +02:00
091345fd02
fix(gui): fix resize crash
2026-04-01 11:14:15 +02:00
4ca31b0f75
feat(gui): implement get_fontfaces
2026-04-01 11:13:39 +02:00
6faea2ef02
refactor(gui): improve hidpi scaling support
2026-04-01 10:39:20 +02:00
f484ea0b57
fix(gui): add pixel offsets to scroll events
2026-04-01 10:10:18 +02:00
45db14f894
refactor(gui): clean-up pixel to cell coordinate conversions
2026-04-01 10:08:35 +02:00
ce85a73063
fix(gui): implement horizontal scrolling
2026-04-01 10:08:04 +02:00
b3e1f22aa3
Merge branch 'master' into wio-sokol-gui
2026-03-31 22:37:16 +02:00
0ff9a9c522
fix: add non-conflicting keybinds for font size adjustment
2026-03-31 22:34:50 +02:00
fab38872ee
fix(gui): calculate cell size from full block glyph bounding box
2026-03-31 22:34:20 +02:00
cf7fc6af54
fix: allow loading custom theme files up to 512Kb in size
...
closes #544
2026-03-31 20:58:54 +02:00
310221bb26
feat: support adding entirely new themes via the config
2026-03-31 20:58:00 +02:00
d53d155c6d
feat: add V language support
...
closes #509
2026-03-31 14:03:18 +02:00
Paul Graydon
ce7cc48a72
feat: [vim] Add bracket textobject actions
2026-03-31 10:07:55 +02:00
Paul Graydon
ba840b72e0
feat: [vim] Add word textobject actions
2026-03-31 10:07:55 +02:00
a8437d6139
feat(themes): add Kanso theme (zen, ink, mist, pearl variants)
2026-03-31 09:52:31 +02:00
50d9773956
fix(gui): only encode shifted codepoints if shift is active
2026-03-30 21:57:50 +02:00
932b640271
fix(gui): fix encoding of base and shifted key codes
2026-03-30 21:37:31 +02:00
6784797078
fix(gui): drop button press events if we also have text input
2026-03-30 21:26:20 +02:00
b1b50b7ff0
feat(gui): clipboard, title, cursor, attention
2026-03-30 21:17:27 +02:00
273be78055
fix(gui): fix shutdown hang
2026-03-30 20:58:52 +02:00
875c42ad9e
fix(gui): map keys to vaxis Key constants
2026-03-30 20:54:34 +02:00
c353c92bc3
fix(gui): map uppercase/shifted codepoints when *only* the shift modifer is set
2026-03-30 20:46:59 +02:00
0a9842f34d
fix(gui): correct dispatching of mouse dragging events
2026-03-30 20:40:39 +02:00
9b0f40f155
fix(gui): don't map control characters
2026-03-30 20:32:39 +02:00
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