summaryrefslogtreecommitdiff
path: root/src/config.zig
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-09-21 14:55:53 -0300
committerGabriel Schneider <[email protected]>2026-10-01 00:12:14 -0300
commit44ce573e15c773cf5bb0d42941a143b63e44d900 (patch)
treec2c6ecd5b298a85044cb1b68e1db8f7b6657ead7 /src/config.zig
parentfd50bd971d6dea7eaaa4ee5436ba16b95fa25b30 (diff)
downloadpardes-44ce573e15c773cf5bb0d42941a143b63e44d900.tar.gz
pardes-44ce573e15c773cf5bb0d42941a143b63e44d900.zip
Make the macOS shell a first-class host
Pty children are exec'd with their own TERM/COLORTERM/TERM_PROGRAM instead of inheriting a .app launch's empty environment, and ttyTaken finally answers on darwin — libproc walks the tty's foreground process group — so Escape reaches the child and Exec stops believing every pane sits at its prompt. The occupancy suite runs on both platforms now. The workspace tag row moves into the native menu bar as a Builtins menu. -Dworkspace-tag (default off for -Dplatform=macos, on everywhere else) drives it, and Pardes.topBarHeight replaces the TOPBAR_H constant so the core stops reserving the row. The view pins every variable-font axis to the file's own default (Maple Mono came up Thin otherwise), shapes ligatures, carries per-shape pointer cursors, and draws the look-hover affordance as refracted glass. Tag rows fill edge to edge, with the anchor box painted back on top of that fill and its mode glyph centred on the same square. Theme accents re-saturated across the set. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
Diffstat (limited to 'src/config.zig')
-rw-r--r--src/config.zig15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/config.zig b/src/config.zig
index 440549b3..da23f51f 100644
--- a/src/config.zig
+++ b/src/config.zig
@@ -222,6 +222,17 @@ pub const tty_blank: enum { prompt, prompt_and_input } = .prompt;
// Projected colors below this contrast use the theme's more legible anchor.
pub const tty_filter_min_contrast: f64 = 1.5;
+// What a pty child is told it is talking to. Every pane is emulated by the
+// bundled VT, so this describes pardes and never the terminal pardes itself
+// was launched from — the child inherits the launcher's TERM otherwise, which
+// under a macOS .app launch is no TERM at all, and `clear`, colour and every
+// cursor-addressing program fail at the terminfo lookup. There is no installed
+// `xterm-ghostty` entry to name, and a name with no entry is worse than a
+// conservative one that every system ships.
+pub const child_term = "xterm-256color";
+pub const child_colorterm = "truecolor";
+pub const child_term_program = "pardes";
+
pub const topbar_str = "Newcol Joincol Find Grep Help Changelog Tutor Dump NextColor Debug Kill";
pub const pane_builtins_str = "Tty Del Collapse";
@@ -538,6 +549,10 @@ pub const Runtime = struct {
tree_context_tag_style: bool = true,
debug: bool = false,
focus_tint: bool = true,
+ /// The workspace tag row. Native shells with their own chrome (the macOS
+ /// menu bar) turn it off and carry its commands there instead; the core
+ /// keeps the row as the acme tradition everywhere else.
+ workspace_tag: bool = true,
column_tags: bool = true,
syntax_bold: bool = false,
window_opacity: u8 = 100,