summaryrefslogtreecommitdiff
path: root/src/config.zig
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-09-30 23:58:54 -0300
committerGabriel Schneider <[email protected]>2026-10-01 00:12:18 -0300
commit3815a0bfad5818e2caf85a00c0c2d3aecc13bd1c (patch)
treedfb1920c13ac0e113d9294c96f86d36ecf95bbc9 /src/config.zig
parent03ace1893d1a4b509c209e4e8ca023f7261e5cb9 (diff)
downloadpardes-3815a0bfad5818e2caf85a00c0c2d3aecc13bd1c.tar.gz
pardes-3815a0bfad5818e2caf85a00c0c2d3aecc13bd1c.zip
pardes - reads stdin into a +Pager pane, and is a terminal's PAGER and GIT_PAGER, Pager pardes|off to opt out; command panes page through cat
A paging command in a terminal, or run through its pty/run, sat in less, and a pty/run never answered. `pardes -` now reads stdin to its end, strips terminal escapes (colour, OSC, overstrike), and shows it: inside a session as a clean <cwd>/+Pager pane made through pane/new and back at once, outside one as a new editor whose first pane it is, as `vim -` does. A terminal's shell gets PAGER and GIT_PAGER set to this pardes's own path and `-` where the user's environment sets neither; `Pager off`, a setting in /ctl, init and DumpConfig, leaves terminals started after it to the environment. A command pane's one-shot shell keeps cat, its output being a pane already. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to 'src/config.zig')
-rw-r--r--src/config.zig11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/config.zig b/src/config.zig
index 86951e27..5a9cf070 100644
--- a/src/config.zig
+++ b/src/config.zig
@@ -81,6 +81,7 @@ pub const leader_path = paths: {
.Placement = "cp",
.BootShell = null,
.LookWord = null,
+ .Pager = null,
.Debug = "td",
.Msg = null,
.Colors = "tc",
@@ -754,13 +755,18 @@ pub const Runtime = struct {
/// next place in that pane, wrapping; `list`, what pardes did before,
/// lists every place in a +Search pane (look.zig, lookWord).
look_word: LookWord = .search,
+ /// What a terminal's shell pages through (host_io.ChildEnv): `pardes`,
+ /// PAGER and GIT_PAGER set to `pardes -`, a +Pager pane, where the
+ /// user's environment set neither; `off`, the environment as it is.
+ pager: Pager = .pardes,
pub const ShaderAnimation = enum { off, on, always };
pub const Placement = enum { acme, pardes };
pub const BootShell = enum { keep, replace };
pub const LookWord = enum { search, list };
+ pub const Pager = enum { pardes, off };
/// A setting that is one of a few words, each an enum field of Runtime.
- pub const Choice = enum { placement, boot_shell, look_word };
+ pub const Choice = enum { placement, boot_shell, look_word, pager };
/// shadow: a soft drop shadow. rim: a light hairline along the top of
/// the focused pane's tag rows. auto: a shadow on a light page; on a
@@ -1025,6 +1031,7 @@ pub const Runtime = struct {
.{ .word = "Placement", .action = .{ .choice = .placement }, .doc = "Where a new pane goes: acme, as makenewwindow does, or pardes, the older rules." },
.{ .word = "BootShell", .action = .{ .choice = .boot_shell }, .doc = "A document dropped where a lone untouched shell stands: keep the shell, or replace it." },
.{ .word = "LookWord", .action = .{ .choice = .look_word }, .doc = "A plain word looked at: search selects its next place in the pane, list lists every place in a +Search." },
+ .{ .word = "Pager", .action = .{ .choice = .pager }, .doc = "What a terminal's commands page through: pardes, a +Pager pane (pardes -), or off, the environment's own; for terminals started after it." },
};
pub fn find(name: []const u8) ?Setting {
@@ -1699,6 +1706,7 @@ pub const Runtime = struct {
.placement => "pardes",
.boot_shell => "replace",
.look_word => "list",
+ .pager => "off",
},
.lift => "rim",
.motion => "playful",
@@ -1768,6 +1776,7 @@ pub const Runtime = struct {
.placement => "Placement pardes\n",
.boot_shell => "BootShell replace\n",
.look_word => "LookWord list\n",
+ .pager => "Pager off\n",
},
.lift => "Lift rim\n",
.motion => "Motion playful\n",