Merge pull request #162121 from ghostbuster91/init/tmux-thumbs

This commit is contained in:
Sandro 2022-04-08 15:09:47 +02:00 committed by GitHub
commit d9b51276a5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 122 additions and 0 deletions

View file

@ -4502,6 +4502,12 @@
githubId = 3217744;
name = "Peter Ferenczy";
};
ghostbuster91 = {
name = "Kasper Kondzielski";
email = "kghost0@gmail.com";
github = "ghostbuster91";
githubId = 5662622;
};
ghuntley = {
email = "ghuntley@ghuntley.com";
github = "ghuntley";

View file

@ -556,6 +556,10 @@ in rec {
};
};
tmux-thumbs = pkgs.callPackage ./tmux-thumbs {
inherit mkTmuxPlugin;
};
urlview = mkTmuxPlugin {
pluginName = "urlview";
version = "unstable-2016-01-06";

View file

@ -0,0 +1,29 @@
{ lib, mkTmuxPlugin, fetchFromGitHub, thumbs, substituteAll }:
mkTmuxPlugin rec {
pluginName = "tmux-thumbs";
version = "0.7.1";
rtpFilePath = "tmux-thumbs.tmux";
src = fetchFromGitHub {
owner = "fcsonline";
repo = pluginName;
rev = version;
sha256 = "sha256-PH1nscmVhxJFupS7dlbOb+qEwG/Pa/2P6XFIbR/cfaQ=";
};
patches = [
(substituteAll {
src = ./fix.patch;
tmuxThumbsDir = "${thumbs}/bin";
})
];
meta = with lib; {
homepage = "https://github.com/fcsonline/tmux-thumbs";
description = "A lightning fast version of tmux-fingers written in Rust for copy pasting with vimium/vimperator like hints.";
license = licenses.mit;
platforms = platforms.unix;
maintainers = with maintainers; [ ghostbuster91 ];
};
}

View file

@ -0,0 +1,45 @@
diff --git a/tmux-thumbs.sh b/tmux-thumbs.sh
index 34dd528..8c05d54 100755
--- a/tmux-thumbs.sh
+++ b/tmux-thumbs.sh
@@ -1,22 +1,8 @@
#!/usr/bin/env bash
set -Eeu -o pipefail
-VERSION=$(grep 'version =' Cargo.toml | grep -oe "[0-9]\+.[0-9]\+.[0-9]\+")
-
# Setup env variables to be compatible with compiled and bundled installations
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-RELEASE_DIR="${CURRENT_DIR}/target/release"
-
-THUMBS_BINARY="${RELEASE_DIR}/thumbs"
-TMUX_THUMBS_BINARY="${RELEASE_DIR}/tmux-thumbs"
-
-if [ ! -f "$THUMBS_BINARY" ]; then
- tmux split-window "cd ${CURRENT_DIR} && bash ./tmux-thumbs-install.sh"
- exit
-elif [[ $(${THUMBS_BINARY} --version) != "thumbs ${VERSION}" ]]; then
- tmux split-window "cd ${CURRENT_DIR} && bash ./tmux-thumbs-install.sh update"
- exit
-fi
function get-opt-value() {
tmux show -vg "@thumbs-${1}" 2> /dev/null
@@ -36,7 +22,7 @@ function get-opt-arg() {
fi
}
-PARAMS=(--dir "${CURRENT_DIR}")
+PARAMS=(--dir @tmuxThumbsDir@)
function add-param() {
local type opt arg
@@ -51,4 +37,4 @@ add-param upcase-command string
add-param multi-command string
add-param osc52 boolean
-"${TMUX_THUMBS_BINARY}" "${PARAMS[@]}" || true
+@tmuxThumbsDir@/tmux-thumbs "${PARAMS[@]}" || true

View file

@ -0,0 +1,23 @@
{ lib, rustPlatform, fetchFromGitHub }:
rustPlatform.buildRustPackage rec {
pname = "thumbs";
version = "0.7.1";
src = fetchFromGitHub {
owner = "fcsonline";
repo = "tmux-thumbs";
rev = version;
sha256 = "sha256-PH1nscmVhxJFupS7dlbOb+qEwG/Pa/2P6XFIbR/cfaQ=";
};
cargoSha256 = "sha256-6htKiXMMyYRFefJzvDnmdx3CJ3XL8zONhGlV2wcbr9g=";
cargoPatches = [ ./fix.patch ];
meta = with lib; {
homepage = "https://github.com/fcsonline/tmux-thumbs";
description = "A lightning fast version copy/pasting like vimium/vimperator";
license = licenses.mit;
maintainers = with maintainers; [ ghostbuster91 ];
};
}

View file

@ -0,0 +1,13 @@
diff --git a/src/swapper.rs b/src/swapper.rs
index 6cf1e89..bcb0969 100644
--- a/src/swapper.rs
+++ b/src/swapper.rs
@@ -215,7 +215,7 @@ impl<'a> Swapper<'a> {
};
let pane_command = format!(
- "tmux capture-pane -t {active_pane_id} -p{scroll_params} | tail -n {height} | {dir}/target/release/thumbs -f '%U:%H' -t {tmp} {args}; tmux swap-pane -t {active_pane_id}; {zoom_command} tmux wait-for -S {signal}",
+ "tmux capture-pane -t {active_pane_id} -p{scroll_params} | tail -n {height} | {dir}/thumbs -f '%U:%H' -t {tmp} {args}; tmux swap-pane -t {active_pane_id}; {zoom_command} tmux wait-for -S {signal}",
active_pane_id = active_pane_id,
scroll_params = scroll_params,
height = self.active_pane_height.unwrap_or(i32::MAX),

View file

@ -1146,6 +1146,8 @@ with pkgs;
tfk8s = callPackage ../tools/misc/tfk8s { };
thumbs = callPackage ../tools/misc/thumbs { };
tnat64 = callPackage ../tools/networking/tnat64 { };
topicctl = callPackage ../tools/misc/topicctl { };