diff options
| author | Gabriel Schneider <[email protected]> | 2026-09-30 23:58:54 -0300 |
|---|---|---|
| committer | Gabriel Schneider <[email protected]> | 2026-10-01 00:12:18 -0300 |
| commit | 3815a0bfad5818e2caf85a00c0c2d3aecc13bd1c (patch) | |
| tree | dfb1920c13ac0e113d9294c96f86d36ecf95bbc9 /src/config.zig | |
| parent | 03ace1893d1a4b509c209e4e8ca023f7261e5cb9 (diff) | |
| download | pardes-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.zig | 11 |
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", |
