nix-config/modules/dmenu-tmux.nix
Oliver Davies 2cd9ba171b
All checks were successful
/ check (push) Successful in 42s
Re-use an existing st window
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-11-02 14:41:29 +00:00

37 lines
835 B
Nix

{ inputs, ... }:
{
flake.modules.homeManager.gui =
{ pkgs, ... }:
{
home.packages = [
(pkgs.writeShellApplication {
name = "dmenu_tmux";
text = ''
selected="$(z tmux list | dmenu -l 20)" || exit 0
if tmux list-sessions >/dev/null 2>&1; then
if pgrep -x st >/dev/null; then
z tmux connect "$selected"
exit 0
fi
fi
pkill -x st 2>/dev/null || true
sleep 0.1
exec st -e z tmux connect "$selected"
'';
runtimeInputs = with pkgs; [
dmenu
inputs.z.packages.${pkgs.stdenv.hostPlatform.system}.default
# TODO: ensure st is installed and that my version is used.
];
})
];
};
}