beer: export KITTY_WINDOW_ID to every child process

Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I2f2d867ccd81821e65e6ae48e4f45c6f6a6a6964
This commit is contained in:
raf 2026-06-27 00:50:36 +03:00
commit 34885419e0
No known key found for this signature in database
GPG key ID: 29D95B64378DB4BF

View file

@ -5,7 +5,7 @@ use std::io;
use std::os::fd::{AsFd, OwnedFd}; use std::os::fd::{AsFd, OwnedFd};
use std::os::unix::process::CommandExt; use std::os::unix::process::CommandExt;
use std::path::Path; use std::path::Path;
use std::process::{Child, Command, ExitStatus, Stdio}; use std::process::{self, Child, Command, ExitStatus, Stdio};
use anyhow::Context; use anyhow::Context;
use rustix::pty::{OpenptFlags, grantpt, ioctl_tiocgptpeer, openpt, unlockpt}; use rustix::pty::{OpenptFlags, grantpt, ioctl_tiocgptpeer, openpt, unlockpt};
@ -47,6 +47,10 @@ impl Pty {
let mut cmd = Command::new(&shell); let mut cmd = Command::new(&shell);
cmd.arg0(&argv0) cmd.arg0(&argv0)
.env("TERM", term) .env("TERM", term)
// Advertise Kitty graphics protocol compatibility. Yazi (and other
// clients) gate `kgp` vs `kgp_old` on recognising the terminal
// brand; KITTY_WINDOW_ID is the env check they use for Kitty.
.env("KITTY_WINDOW_ID", process::id().to_string())
.env_remove("COLUMNS") .env_remove("COLUMNS")
.env_remove("LINES") .env_remove("LINES")
.env_remove("TERMCAP") .env_remove("TERMCAP")