mirror of
https://github.com/davegallant/nix-config
synced 2025-08-07 09:12:28 +00:00
Package up tmux-sessionizer
This commit is contained in:
@@ -56,6 +56,7 @@ in
|
|||||||
jq
|
jq
|
||||||
ripgrep
|
ripgrep
|
||||||
tldr
|
tldr
|
||||||
|
tmux-sessionizer
|
||||||
xclip
|
xclip
|
||||||
|
|
||||||
# blog
|
# blog
|
||||||
|
@@ -154,6 +154,7 @@ in
|
|||||||
ls = "exa -la --git";
|
ls = "exa -la --git";
|
||||||
ps = "procs";
|
ps = "procs";
|
||||||
tree = "exa --tree";
|
tree = "exa --tree";
|
||||||
|
t = "tmux-sessionizer";
|
||||||
};
|
};
|
||||||
|
|
||||||
"oh-my-zsh" = {
|
"oh-my-zsh" = {
|
||||||
@@ -190,6 +191,7 @@ in
|
|||||||
|
|
||||||
shell = {
|
shell = {
|
||||||
program = "zsh";
|
program = "zsh";
|
||||||
|
args = [ "-l" "-c" "tmux" "u" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
colors = {
|
colors = {
|
||||||
|
@@ -6,6 +6,7 @@ final: prev: {
|
|||||||
lpass = prev.callPackage ./lastpass { };
|
lpass = prev.callPackage ./lastpass { };
|
||||||
rfd = prev.callPackage ./rfd { };
|
rfd = prev.callPackage ./rfd { };
|
||||||
srv = prev.callPackage ./srv { };
|
srv = prev.callPackage ./srv { };
|
||||||
|
tmux-sessionizer = prev.callPackage ./tmux-sessionizer { };
|
||||||
vpngate = prev.callPackage ./vpngate { };
|
vpngate = prev.callPackage ./vpngate { };
|
||||||
yar = prev.callPackage ./yar { };
|
yar = prev.callPackage ./yar { };
|
||||||
|
|
||||||
|
22
modules/overlays/tmux-sessionizer/default.nix
Normal file
22
modules/overlays/tmux-sessionizer/default.nix
Normal 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;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
28
modules/overlays/tmux-sessionizer/tmux-sessionizer
Executable file
28
modules/overlays/tmux-sessionizer/tmux-sessionizer
Executable 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"
|
Reference in New Issue
Block a user