Package up tmux-sessionizer

This commit is contained in:
Dave Gallant
2021-12-15 23:52:00 -05:00
parent caf6e4ace7
commit f7c6df838d
5 changed files with 54 additions and 0 deletions

View File

@@ -56,6 +56,7 @@ in
jq
ripgrep
tldr
tmux-sessionizer
xclip
# blog

View File

@@ -154,6 +154,7 @@ in
ls = "exa -la --git";
ps = "procs";
tree = "exa --tree";
t = "tmux-sessionizer";
};
"oh-my-zsh" = {
@@ -190,6 +191,7 @@ in
shell = {
program = "zsh";
args = [ "-l" "-c" "tmux" "u" ];
};
colors = {

View File

@@ -6,6 +6,7 @@ final: prev: {
lpass = prev.callPackage ./lastpass { };
rfd = prev.callPackage ./rfd { };
srv = prev.callPackage ./srv { };
tmux-sessionizer = prev.callPackage ./tmux-sessionizer { };
vpngate = prev.callPackage ./vpngate { };
yar = prev.callPackage ./yar { };

View File

@@ -0,0 +1,22 @@
{ stdenv, lib, fetchurl }:
stdenv.mkDerivation rec {
pname = "tmux-sessionizer";
version = "0.0.0";
executable = ./tmux-sessionizer;
phases = [ "unpackPhase" ]; # Remove all other phases
unpackPhase = ''
mkdir -p $out/bin
cp ${executable} $out/bin/tmux-sessionizer
'';
meta = with lib; {
description = "
Tmux sessionizer adapted from https://sourcegraph.com/github.com/ThePrimeagen/.dotfiles@5cd09f06d6683b91c26822a73b40e3d7fb9af57a/-/blob/bin/.local/bin/tmux-sessionizer";
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,28 @@
#!/usr/bin/env bash
# Credit to ThePrimeagen for this:
# https://sourcegraph.com/github.com/ThePrimeagen/.dotfiles@5cd09f06d6683b91c26822a73b40e3d7fb9af57a/-/blob/bin/.local/bin/tmux-sessionizer
if [[ $# -eq 1 ]]; then
selected=$1
else
selected=$(find ~/src/github.com/davegallant ~/src/github.com/rewindio -mindepth 1 -maxdepth 1 -type d | fzf)
fi
if [[ -z $selected ]]; then
exit 0
fi
selected_name=$(basename "$selected" | tr . _)
tmux_running=$(pgrep tmux)
if [[ -z $TMUX ]] && [[ -z $tmux_running ]]; then
tmux new-session -s "$selected_name" -c "$selected"
exit 0
fi
if ! tmux has-session -t "$selected_name" 2> /dev/null; then
tmux new-session -ds "$selected_name" -c "$selected"
fi
tmux switch-client -t "$selected_name"