Make directories configurable using a patch
This commit is contained in:
parent
2bedd41d83
commit
dc2de9334d
5 changed files with 77 additions and 38 deletions
|
@ -1,3 +1,5 @@
|
||||||
|
{ config, options, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [ ../common ];
|
imports = [ ../common ];
|
||||||
|
|
||||||
|
@ -16,7 +18,24 @@
|
||||||
ranger.enable = true;
|
ranger.enable = true;
|
||||||
starship.enable = true;
|
starship.enable = true;
|
||||||
tmux.enable = true;
|
tmux.enable = true;
|
||||||
tmux-sessionizer.enable = true;
|
|
||||||
|
tmux-sessionizer = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
directories =
|
||||||
|
let
|
||||||
|
inherit (config.xdg.userDirs) documents extraConfig;
|
||||||
|
|
||||||
|
repos = extraConfig.XDG_REPOS_DIR;
|
||||||
|
in
|
||||||
|
options.homeManagerModules.cli.tmux-sessionizer.directories.default
|
||||||
|
++ [
|
||||||
|
repos
|
||||||
|
"${repos}/*"
|
||||||
|
documents
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
zsh.enable = true;
|
zsh.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
{ config, options, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [ ../common ];
|
imports = [ ../common ];
|
||||||
|
|
||||||
|
@ -18,7 +20,24 @@
|
||||||
ranger.enable = true;
|
ranger.enable = true;
|
||||||
starship.enable = true;
|
starship.enable = true;
|
||||||
tmux.enable = true;
|
tmux.enable = true;
|
||||||
tmux-sessionizer.enable = true;
|
|
||||||
|
tmux-sessionizer = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
directories =
|
||||||
|
let
|
||||||
|
inherit (config.xdg.userDirs) documents extraConfig;
|
||||||
|
|
||||||
|
repos = extraConfig.XDG_REPOS_DIR;
|
||||||
|
in
|
||||||
|
options.homeManagerModules.cli.tmux-sessionizer.directories.default
|
||||||
|
++ [
|
||||||
|
repos
|
||||||
|
"${repos}/*"
|
||||||
|
documents
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
zsh.enable = true;
|
zsh.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -11,36 +11,48 @@ let
|
||||||
cfg = config.homeManagerModules.cli.tmux-sessionizer;
|
cfg = config.homeManagerModules.cli.tmux-sessionizer;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.homeManagerModules.cli.tmux-sessionizer.enable = mkEnableOption "Enable tmux-sessionizer";
|
options.homeManagerModules.cli.tmux-sessionizer = {
|
||||||
|
enable = mkEnableOption "Enable tmux-sessionizer";
|
||||||
|
|
||||||
|
directories = mkOption {
|
||||||
|
default = [ config.home.homeDirectory ];
|
||||||
|
type = types.listOf types.str;
|
||||||
|
description = "List of directories for tmux-sessionizer to use.";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
tmux-sessionizer
|
tmux-sessionizer
|
||||||
];
|
];
|
||||||
|
|
||||||
xdg.configFile."tmux-sessionizer/default".source = "${
|
xdg.configFile = {
|
||||||
pkgs.writeShellApplication {
|
"tmux-sessionizer/default".source = "${
|
||||||
name = ".tmux-sessionizer";
|
pkgs.writeShellApplication {
|
||||||
|
name = ".tmux-sessionizer";
|
||||||
|
|
||||||
runtimeInputs = with pkgs; [
|
runtimeInputs = with pkgs; [
|
||||||
tmux
|
tmux
|
||||||
];
|
];
|
||||||
|
|
||||||
text = ''
|
text = ''
|
||||||
set +o errexit
|
set +o errexit
|
||||||
set +o nounset
|
set +o nounset
|
||||||
|
|
||||||
if [[ "$PWD" == "${config.xdg.userDirs.extraConfig.XDG_REPOS_DIR}/os" || "$PWD" == "${config.xdg.userDirs.extraConfig.XDG_REPOS_DIR}/personal" ]]; then
|
if [[ "$PWD" == "${config.xdg.userDirs.extraConfig.XDG_REPOS_DIR}/os" || "$PWD" == "${config.xdg.userDirs.extraConfig.XDG_REPOS_DIR}/personal" ]]; then
|
||||||
|
clear
|
||||||
|
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
tmux new-window -d -n scratch
|
||||||
|
nvim .
|
||||||
clear
|
clear
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
}/bin/.tmux-sessionizer";
|
||||||
|
|
||||||
return
|
"tmux-sessionizer/directories".text = builtins.concatStringsSep "\n" cfg.directories;
|
||||||
fi
|
};
|
||||||
|
|
||||||
tmux new-window -d -n scratch
|
|
||||||
nvim .
|
|
||||||
clear
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
}/bin/.tmux-sessionizer";
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,15 +0,0 @@
|
||||||
diff --git a/tmux-sessionizer b/tmux-sessionizer
|
|
||||||
index fa1bec5..4d79e0b 100755
|
|
||||||
--- a/tmux-sessionizer
|
|
||||||
+++ b/tmux-sessionizer
|
|
||||||
@@ -22,9 +22,7 @@ hydrate() {
|
|
||||||
if [[ $# -eq 1 ]]; then
|
|
||||||
selected=$1
|
|
||||||
else
|
|
||||||
- # If someone wants to make this extensible, i'll accept
|
|
||||||
- # PR
|
|
||||||
- selected=$(find ~/ ~/personal ~/personal/dev/env/.config -mindepth 1 -maxdepth 1 -type d | fzf)
|
|
||||||
+ selected=$(find -L "${XDG_REPOS_DIR}" "${XDG_REPOS_DIR}"/* "${XDG_DOCUMENTS_DIR}" -maxdepth 1 -mindepth 1 -type d ! -name ".*" ! -name ".old" ! -name "_archive" | sort | fzf)
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -z $selected ]]; then
|
|
|
@ -22,7 +22,11 @@ stdenv.mkDerivation {
|
||||||
patches = [
|
patches = [
|
||||||
./move-default-script.patch
|
./move-default-script.patch
|
||||||
./add-tmux-file.patch
|
./add-tmux-file.patch
|
||||||
./configure-directories.patch
|
|
||||||
|
(fetchpatch {
|
||||||
|
url = "https://patch-diff.githubusercontent.com/raw/ThePrimeagen/tmux-sessionizer/pull/2.patch";
|
||||||
|
sha256 = "sha256-4/4rzve49T3FHnl9WWUPJVcb0NQojMQjIVnEZGwVAsY=";
|
||||||
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue