summaryrefslogtreecommitdiff
path: root/src/gui
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-09-29 03:44:26 -0300
committerGabriel Schneider <[email protected]>2026-10-01 00:12:15 -0300
commit69f8e4703f6c1204f9f0958f264d2a4c4600026f (patch)
tree01bab7f3d7cea8a557780c0e1263962752892732 /src/gui
parent29ae6460961f4f781088455b72946260113a9ad9 (diff)
downloadpardes-69f8e4703f6c1204f9f0958f264d2a4c4600026f.tar.gz
pardes-69f8e4703f6c1204f9f0958f264d2a4c4600026f.zip
pty/run's busy names the program holding the terminal
busy said only that something ran. Where the host can tell (Linux, the tty's foreground group's /proc comm, a new fg_name host call), it says busy: <program> is running; elsewhere, busy as before. The GUI's host gains the one small callback (render agent's file: gui.zig, fgName). Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/gui.zig8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/gui/gui.zig b/src/gui/gui.zig
index 491373a8..de5da1e7 100644
--- a/src/gui/gui.zig
+++ b/src/gui/gui.zig
@@ -4045,6 +4045,7 @@ const Shell = struct {
.pty_signal = ptySignal,
.close_pty = closePaneShell,
.tty_taken = ttyTaken,
+ .fg_name = fgName,
.kill_job = killJob,
.write_file = writeFile,
.write_dump = writeDump,
@@ -4507,6 +4508,13 @@ fn ttyTaken(ctx: ?*anyopaque, pane: u8) bool {
return host_io.ttyTaken(pt.pid, pt.fd);
}
+fn fgName(ctx: ?*anyopaque, pane: u8, buf: []u8) ?[]const u8 {
+ const s = shellOf(ctx);
+ const pt = s.ptys[pane] orelse return null;
+ if (pt.fd < 0) return null;
+ return host_io.foregroundName(pt.pid, pt.fd, buf);
+}
+
fn killJob(ctx: ?*anyopaque, pane: u8) bool {
const s = shellOf(ctx);
const pt = s.ptys[pane] orelse return false;