- commit
- ce4e7b6
- parent
- 62d03a0
- author
- Eric Bower
- date
- 2025-10-13 11:58:36 -0400 EDT
chore: forward more env vars from daemon to children ptys
1 files changed,
+27,
-6
+27,
-6
1@@ -1044,17 +1044,38 @@ fn createSession(allocator: std.mem.Allocator, session_name: []const u8) !*Sessi
2
3 if (pid == 0) {
4 // Child process - set environment and execute shell with prompt
5+
6+ // Set ZMX_SESSION to identify the session
7 const zmx_session_var = std.fmt.allocPrint(allocator, "ZMX_SESSION={s}\x00", .{session_name}) catch {
8 std.posix.exit(1);
9 };
10 _ = c.putenv(@ptrCast(zmx_session_var.ptr));
11
12- // Forward TERM from host machine
13- if (std.posix.getenv("TERM")) |term| {
14- const term_var = std.fmt.allocPrint(allocator, "TERM={s}\x00", .{term}) catch {
15- std.posix.exit(1);
16- };
17- _ = c.putenv(@ptrCast(term_var.ptr));
18+ // Forward important environment variables from daemon
19+ // (Most variables like HOME, USER, PATH are already inherited)
20+ const env_vars = [_][]const u8{
21+ "TERM", // Terminal type
22+ "DISPLAY", // X11 display
23+ "XAUTHORITY", // X11 auth
24+ "WAYLAND_DISPLAY", // Wayland display
25+ "WINDOWID", // X11 window ID
26+ "SSH_AUTH_SOCK", // SSH agent socket
27+ "SSH_AGENT_PID", // SSH agent PID
28+ "SSH_CONNECTION", // SSH connection info
29+ "XDG_RUNTIME_DIR", // XDG runtime directory
30+ "LANG", // Primary locale
31+ "LC_ALL", // Override all locale settings
32+ "LC_CTYPE", // Character classification
33+ "COLORTERM", // Truecolor support indicator
34+ };
35+
36+ for (env_vars) |var_name| {
37+ if (std.posix.getenv(var_name)) |value| {
38+ const env_var = std.fmt.allocPrint(allocator, "{s}={s}\x00", .{ var_name, value }) catch {
39+ std.posix.exit(1);
40+ };
41+ _ = c.putenv(@ptrCast(env_var.ptr));
42+ }
43 }
44
45 const shell = std.posix.getenv("SHELL") orelse "/bin/sh";