mirror of
https://github.com/davegallant/nix-config
synced 2025-08-06 11:23:40 +00:00
Flatten dir structure
This commit is contained in:
4
overlays/default.nix
Normal file
4
overlays/default.nix
Normal file
@@ -0,0 +1,4 @@
|
||||
final: prev: {
|
||||
tmux-sessionizer = prev.callPackage ./tmux-sessionizer {};
|
||||
vpngate = prev.callPackage ./vpngate {};
|
||||
}
|
24
overlays/tmux-sessionizer/default.nix
Normal file
24
overlays/tmux-sessionizer/default.nix
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
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;
|
||||
};
|
||||
}
|
31
overlays/tmux-sessionizer/tmux-sessionizer
Executable file
31
overlays/tmux-sessionizer/tmux-sessionizer
Executable file
@@ -0,0 +1,31 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Credit to ThePrimeagen for this:
|
||||
# https://sourcegraph.com/github.com/ThePrimeagen/.dotfiles@5cd09f06d6683b91c26822a73b40e3d7fb9af57a/-/blob/bin/.local/bin/tmux-sessionizer
|
||||
|
||||
|
||||
readarray -t directories < ~/.config/tmux-sessionizer
|
||||
|
||||
if [[ $# -eq 1 ]]; then
|
||||
selected=$1
|
||||
else
|
||||
selected=$(find "${directories[@]}" -mindepth 1 -maxdepth 1 -type d | fzf --exact)
|
||||
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"
|
28
overlays/vpngate/default.nix
Normal file
28
overlays/vpngate/default.nix
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
buildGoModule,
|
||||
}:
|
||||
buildGoModule rec {
|
||||
pname = "vpngate";
|
||||
version = "v0.1.5";
|
||||
|
||||
vendorHash = "sha256-TQLHvoVAMvDtm/9EQUaNVVjQajyMBnJu8NF6Kt0+RJ8=";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "davegallant";
|
||||
repo = "vpngate";
|
||||
rev = version;
|
||||
sha256 = "sha256-+KZ6/h8JLEisnIja4lstJYVHzEC/8PdHL3czK/mJCAs=";
|
||||
};
|
||||
|
||||
doCheck = false;
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://www.vpngate.net";
|
||||
description = "a client for vpngate.net";
|
||||
license = licenses.gpl3;
|
||||
maintainers = with maintainers; [davegallant];
|
||||
platforms = platforms.linux ++ platforms.darwin;
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user