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 ];
|
||||
|
||||
|
@ -16,7 +18,24 @@
|
|||
ranger.enable = true;
|
||||
starship.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;
|
||||
};
|
||||
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
{ config, options, ... }:
|
||||
|
||||
{
|
||||
imports = [ ../common ];
|
||||
|
||||
|
@ -18,7 +20,24 @@
|
|||
ranger.enable = true;
|
||||
starship.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;
|
||||
};
|
||||
|
||||
|
|
|
@ -11,36 +11,48 @@ let
|
|||
cfg = config.homeManagerModules.cli.tmux-sessionizer;
|
||||
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 {
|
||||
home.packages = with pkgs; [
|
||||
tmux-sessionizer
|
||||
];
|
||||
|
||||
xdg.configFile."tmux-sessionizer/default".source = "${
|
||||
pkgs.writeShellApplication {
|
||||
name = ".tmux-sessionizer";
|
||||
xdg.configFile = {
|
||||
"tmux-sessionizer/default".source = "${
|
||||
pkgs.writeShellApplication {
|
||||
name = ".tmux-sessionizer";
|
||||
|
||||
runtimeInputs = with pkgs; [
|
||||
tmux
|
||||
];
|
||||
runtimeInputs = with pkgs; [
|
||||
tmux
|
||||
];
|
||||
|
||||
text = ''
|
||||
set +o errexit
|
||||
set +o nounset
|
||||
text = ''
|
||||
set +o errexit
|
||||
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
|
||||
'';
|
||||
}
|
||||
}/bin/.tmux-sessionizer";
|
||||
|
||||
return
|
||||
fi
|
||||
|
||||
tmux new-window -d -n scratch
|
||||
nvim .
|
||||
clear
|
||||
'';
|
||||
}
|
||||
}/bin/.tmux-sessionizer";
|
||||
"tmux-sessionizer/directories".text = builtins.concatStringsSep "\n" cfg.directories;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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 = [
|
||||
./move-default-script.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 = ''
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue