From 1dcff90f3f52352c54c704fe6e579de4b622ef02 Mon Sep 17 00:00:00 2001 From: Brian Hicks Date: Wed, 3 Jun 2020 08:23:10 -0500 Subject: [PATCH] pull out lazygit window snippet to a separate package --- dotfiles/tmux.nix | 8 +++++--- dotfiles/zsh.nix | 2 -- dotfiles/zsh/git.zsh | 2 ++ pkgs/lazygit-window/default.nix | 17 +++++++++++++++++ pkgs/lazygit-window/lazygit-window.sh | 2 ++ pkgs/tmux-session/default.nix | 2 ++ 6 files changed, 28 insertions(+), 5 deletions(-) create mode 100644 pkgs/lazygit-window/default.nix create mode 100755 pkgs/lazygit-window/lazygit-window.sh diff --git a/dotfiles/tmux.nix b/dotfiles/tmux.nix index fa186bb..1952014 100644 --- a/dotfiles/tmux.nix +++ b/dotfiles/tmux.nix @@ -1,7 +1,9 @@ { pkgs, lib, ... }: -let tmux-session = pkgs.callPackage ../pkgs/tmux-session { }; +let + tmux-session = pkgs.callPackage ../pkgs/tmux-session { }; + lazygit-window = pkgs.callPackage ../pkgs/lazygit-window { }; in { - home.packages = [ tmux-session ]; + home.packages = [ tmux-session lazygit-window ]; programs.tmux = { enable = true; @@ -20,7 +22,7 @@ in { bind-key -n C-l select-pane -R # quickly open CLI tools - bind h run-shell "tmux switch-client -t :lazygit || tmux new-window -k -n 'lazygit' -c '#{pane_current_path}' ${pkgs.lazygit}/bin/lazygit" + bind h run-shell "${lazygit-window}/bin/lazygit-window" bind j split-window -h ${tmux-session}/bin/tmux-jump # get rid of the half-second escape time for kakoune's escape key diff --git a/dotfiles/zsh.nix b/dotfiles/zsh.nix index aab0461..37379fd 100644 --- a/dotfiles/zsh.nix +++ b/dotfiles/zsh.nix @@ -42,8 +42,6 @@ in { RPROMPT= eval $(${pkgs.thefuck}/bin/thefuck --alias heck) - - alias g=lazygit '' + extraInitExtra; history = { diff --git a/dotfiles/zsh/git.zsh b/dotfiles/zsh/git.zsh index 32a69fb..0313a9a 100644 --- a/dotfiles/zsh/git.zsh +++ b/dotfiles/zsh/git.zsh @@ -7,3 +7,5 @@ checkout_branch() { } alias co=checkout_branch + +alias g=lazygit-window diff --git a/pkgs/lazygit-window/default.nix b/pkgs/lazygit-window/default.nix new file mode 100644 index 0000000..fcfa9db --- /dev/null +++ b/pkgs/lazygit-window/default.nix @@ -0,0 +1,17 @@ +{ sources ? import ../../nix/sources.nix, nixpkgs ? import sources.nixpkgs { } +}: +with nixpkgs; +stdenv.mkDerivation { + name = "lazygit-window"; + src = ./.; + buildInputs = [ pkgs.makeWrapper ]; + + installPhase = '' + mkdir -p $out/bin + cp ./lazygit-window.sh $out/bin/lazygit-window + wrapProgram $out/bin/lazygit-window --prefix PATH : ${ + pkgs.lib.makeBinPath [ tmux lazygit ] + } + ''; +} + diff --git a/pkgs/lazygit-window/lazygit-window.sh b/pkgs/lazygit-window/lazygit-window.sh new file mode 100755 index 0000000..5be6381 --- /dev/null +++ b/pkgs/lazygit-window/lazygit-window.sh @@ -0,0 +1,2 @@ +#!/usr/bin/env bash +tmux switch-client -t :lazygit >/dev/null 2>&1 || tmux new-window -k -n 'lazygit' -c '#{pane_current_path}' lazygit diff --git a/pkgs/tmux-session/default.nix b/pkgs/tmux-session/default.nix index 277d85b..caecdfd 100644 --- a/pkgs/tmux-session/default.nix +++ b/pkgs/tmux-session/default.nix @@ -2,6 +2,8 @@ }: with nixpkgs; stdenv.mkDerivation { + # inspired by one of Stöffel's keybindings at + # https://github.com/stoeffel/.dots/blob/master/tmux/keybindings.conf name = "tmux-session"; src = ./.; buildInputs = [ pkgs.makeWrapper ];