dotfiles/packages/spawn-term/package.nix
Christopher Mühl f49a9c8019
refactor: use active-window utility in scripts
Migrates quick-zeal and spawn-term from compositor-specific APIs
(hyprctl, kdotool, niri msg) to the unified active-window utility.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-28 01:25:46 +01:00

32 lines
713 B
Nix

{pkgs, ...}:
pkgs.writeNushellApplication {
name = "spawn-term";
runtimeInputs = [pkgs.harbor.active-window];
text = ''
let window = (active-window | from json)
let window_info = {
is_kitty: ($window.class? == "kitty"),
pid: $window.pid?
}
if $window_info.is_kitty {
let kitty_pid = $window_info.pid
if ($kitty_pid | is-empty) {
kitty
exit 0
}
let shell_pid = (ps | where ppid == $kitty_pid | where name != "kitten" | get pid | first)
if ($shell_pid | is-empty) {
kitty
exit 0
}
let path = ($"/proc/($shell_pid)/cwd" | path expand)
kitty --directory $path
} else {
kitty
}
'';
}