Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / misc / tmux-plugins / default.nix
blobd17cbe7c33e5319b4247c9304d6bc809acc39313
1 { lib
2 , fetchFromGitHub
3 , pkgs
4 , stdenv
5 }:
7 let
8   rtpPath = "share/tmux-plugins";
10   addRtp = path: rtpFilePath: attrs: derivation:
11     derivation // { rtp = "${derivation}/${path}/${rtpFilePath}"; } // {
12       overrideAttrs = f: mkTmuxPlugin (attrs // f attrs);
13     };
15   mkTmuxPlugin = a@{
16     pluginName,
17     rtpFilePath ? (builtins.replaceStrings ["-"] ["_"] pluginName) + ".tmux",
18     namePrefix ? "tmuxplugin-",
19     src,
20     unpackPhase ? "",
21     configurePhase ? ":",
22     buildPhase ? ":",
23     addonInfo ? null,
24     preInstall ? "",
25     postInstall ? "",
26     path ? lib.getName pluginName,
27     ...
28   }:
29     if lib.hasAttr "dependencies" a then
30       throw "dependencies attribute is obselete. see NixOS/nixpkgs#118034" # added 2021-04-01
31     else addRtp "${rtpPath}/${path}" rtpFilePath a (stdenv.mkDerivation (a // {
32       pname = namePrefix + pluginName;
34       inherit pluginName unpackPhase configurePhase buildPhase addonInfo preInstall postInstall;
36       installPhase = ''
37         runHook preInstall
39         target=$out/${rtpPath}/${path}
40         mkdir -p $out/${rtpPath}
41         cp -r . $target
42         if [ -n "$addonInfo" ]; then
43           echo "$addonInfo" > $target/addon-info.json
44         fi
46         runHook postInstall
47       '';
48     }));
50 in rec {
51   inherit mkTmuxPlugin;
53   mkDerivation = throw "tmuxPlugins.mkDerivation is deprecated, use tmuxPlugins.mkTmuxPlugin instead"; # added 2021-03-14
55   battery = mkTmuxPlugin {
56     pluginName = "battery";
57     version = "unstable-2019-07-04";
58     src = fetchFromGitHub {
59       owner = "tmux-plugins";
60       repo = "tmux-battery";
61       rev = "f8b8e8451990365e0c98c38c184962e4f83b793b";
62       sha256 = "1bhdzsx3kdjqjmm1q4j8937lrpkzf71irr3fqhdbddsghwrrmwim";
63     };
64   };
66   better-mouse-mode = mkTmuxPlugin {
67     pluginName = "better-mouse-mode";
68     version = "unstable-2021-08-02";
69     src = fetchFromGitHub {
70       owner = "NHDaly";
71       repo = "tmux-better-mouse-mode";
72       rev = "aa59077c635ab21b251bd8cb4dc24c415e64a58e";
73       sha256 = "06346ih3hzwszhkj25g4xv5av7292s6sdbrdpx39p0n3kgf5mwww";
74     };
75     rtpFilePath = "scroll_copy_mode.tmux";
76     meta = {
77       homepage = "https://github.com/NHDaly/tmux-better-mouse-mode";
78       description = "better mouse support for tmux";
79       longDescription =
80       ''
81         Features:
83           * Emulate mouse-support for full-screen programs like less that don't provide built in mouse support.
84           * Exit copy-mode and return to your prompt by scrolling back all the way down to the bottom.
85           * Adjust your scrolling speed.
86       '';
87       license = lib.licenses.mit;
88       platforms = lib.platforms.unix;
89       maintainers = with lib.maintainers; [ chrispickard ];
90     };
91   };
93   catppuccin = mkTmuxPlugin {
94     pluginName = "catppuccin";
95     version = "unstable-2023-08-21";
96     src = fetchFromGitHub {
97       owner = "catppuccin";
98       repo = "tmux";
99       rev = "7a284c98e5df4cc84a1a45ad633916f0b2b916b2";
100       hash = "sha256-jxcxW0gEfXaSt8VM3UIs0dKNKaHb8JSEQBBV3SVjW/A=";
101     };
102     postInstall = ''
103       sed -i -e 's|''${PLUGIN_DIR}/catppuccin-selected-theme.tmuxtheme|''${TMUX_TMPDIR}/catppuccin-selected-theme.tmuxtheme|g' $target/catppuccin.tmux
104     '';
105     meta = with lib; {
106       homepage = "https://github.com/catppuccin/tmux";
107       description = "Soothing pastel theme for Tmux!";
108       license = licenses.mit;
109       platforms = platforms.unix;
110       maintainers = with maintainers; [ jnsgruk ];
111     };
112   };
114   continuum = mkTmuxPlugin {
115     pluginName = "continuum";
116     version = "unstable-2022-01-25";
117     src = fetchFromGitHub {
118       owner = "tmux-plugins";
119       repo = "tmux-continuum";
120       rev = "fc2f31d79537a5b349f55b74c8ca69abaac1ddbb";
121       sha256 = "06i1jp83iybw76raaxciqz9a7ypgpkvbyjn6jjap8jpqfmj2wmjb";
122     };
123     meta = {
124       homepage = "https://github.com/tmux-plugins/tmux-continuum";
125       description = "continuous saving of tmux environment";
126       longDescription =
127       ''
128         Features:
129         * continuous saving of tmux environment
130         * automatic tmux start when computer/server is turned on
131         * automatic restore when tmux is started
133         Together, these features enable uninterrupted tmux usage. No matter the
134         computer or server restarts, if the machine is on, tmux will be there how
135         you left it off the last time it was used.
136       '';
137       license = lib.licenses.mit;
138       platforms = lib.platforms.unix;
139       maintainers = with lib.maintainers; [ ronanmacf ];
140     };
141   };
143   copy-toolkit = mkTmuxPlugin rec {
144     pluginName = "copy-toolkit";
145     rtpFilePath = "copytk.tmux";
146     version = "1.1";
147     src = fetchFromGitHub {
148       owner = "CrispyConductor";
149       repo = "tmux-copy-toolkit";
150       rev = "v${version}";
151       sha256 = "MEMC9klm+PH66UHwrB2SqdCaZX0LAujL+Woo/hV84m4=";
152     };
153     postInstall = ''
154       sed -i -e 's|python3 |${pkgs.python3}/bin/python3 |g' $target/copytk.tmux
155       sed -i -e 's|/bin/bash|${pkgs.bash}/bin/bash|g;s|/bin/cat|${pkgs.coreutils}/bin/cat|g' $target/copytk.py
156     '';
157     meta = {
158       homepage = "https://github.com/CrispyConductor/tmux-copy-toolkit";
159       description = "Various copy-mode tools";
160       license = lib.licenses.mit;
161       platforms = lib.platforms.unix;
162       maintainers = with lib.maintainers; [ deejayem ];
163     };
164   };
166   copycat = mkTmuxPlugin {
167     pluginName = "copycat";
168     version = "unstable-2020-01-09";
169     src = fetchFromGitHub {
170       owner = "tmux-plugins";
171       repo = "tmux-copycat";
172       rev = "77ca3aab2aed8ede3e2b941079b1c92dd221cf5f";
173       sha256 = "1bchwzhai8k5rk32n4lrmh56rw944jqxr8imjk74hyaa7bbn81ds";
174     };
175   };
177   cpu = mkTmuxPlugin {
178     pluginName = "cpu";
179     version = "unstable-2023-01-06";
180     src = fetchFromGitHub {
181       owner = "tmux-plugins";
182       repo = "tmux-cpu";
183       rev = "98d787191bc3e8f19c3de54b96ba1caf61385861";
184       sha256 = "sha256-ymmCI6VYvf94Ot7h2GAboTRBXPIREP+EB33+px5aaJk=";
185     };
186   };
188   ctrlw = mkTmuxPlugin rec {
189     pluginName = "ctrlw";
190     version = "0.1.1";
191     src = fetchFromGitHub {
192       owner = "eraserhd";
193       repo = "tmux-ctrlw";
194       rev = "v${version}";
195       sha256 = "1kv5pqfjczd6z7i9jf6j5xmcai50l9bn5p2p1w1l5fi6cj8cz1k1";
196     };
197   };
199   dracula = mkTmuxPlugin rec {
200     pluginName = "dracula";
201     version = "2.2.0";
202     src = fetchFromGitHub {
203       owner = "dracula";
204       repo = "tmux";
205       rev = "v${version}";
206       sha256 = "9p+KO3/SrASHGtEk8ioW+BnC4cXndYx4FL0T70lKU2w=";
207     };
208     meta = with lib; {
209       homepage = "https://draculatheme.com/tmux";
210       description = "A feature packed Dracula theme for tmux!";
211       license = licenses.mit;
212       platforms = platforms.unix;
213       maintainers = with maintainers; [ ethancedwards8 ];
214     };
215   };
217   extrakto = mkTmuxPlugin {
218     pluginName = "extrakto";
219     version = "unstable-2021-04-04";
220     src = fetchFromGitHub {
221       owner = "laktak";
222       repo = "extrakto";
223       rev = "de8ac3e8a9fa887382649784ed8cae81f5757f77";
224       sha256 = "0mkp9r6mipdm7408w7ls1vfn6i3hj19nmir2bvfcp12b69zlzc47";
225     };
226     nativeBuildInputs = [ pkgs.makeWrapper ];
227     postInstall = ''
228     for f in extrakto.sh open.sh tmux-extrakto.sh; do
229       wrapProgram $target/scripts/$f \
230         --prefix PATH : ${with pkgs; lib.makeBinPath (
231         [ pkgs.fzf pkgs.python3 pkgs.xclip ]
232         )}
233     done
235     '';
236     meta = {
237       homepage = "https://github.com/laktak/extrakto";
238       description = "Fuzzy find your text with fzf instead of selecting it by hand ";
239       license = lib.licenses.mit;
240       platforms = lib.platforms.unix;
241       maintainers = with lib.maintainers; [ kidd ];
242     };
243   };
245   fingers = mkTmuxPlugin rec {
246     pluginName = "fingers";
247     rtpFilePath = "tmux-fingers.tmux";
248     version = "1.0.1";
249     src = fetchFromGitHub {
250       owner = "Morantron";
251       repo = "tmux-fingers";
252       rev = version;
253       sha256 = "0gp37m3d0irrsih96qv2yalvr1wmf1n64589d4qzyzq16lzyjcr0";
254       fetchSubmodules = true;
255     };
256     nativeBuildInputs = [ pkgs.makeWrapper ];
257     postInstall = ''
258       for f in config.sh tmux-fingers.sh setup-fingers-mode-bindings.sh; do
259       wrapProgram $target/scripts/$f \
260         --prefix PATH : ${with pkgs; lib.makeBinPath (
261           [ gawk ] ++ lib.optionals stdenv.isDarwin [ reattach-to-user-namespace ]
262         )}
263       done
264     '';
265   };
267   fpp = mkTmuxPlugin {
268     pluginName = "fpp";
269     version = "unstable-2016-03-08";
270     src = fetchFromGitHub {
271       owner = "tmux-plugins";
272       repo = "tmux-fpp";
273       rev = "ca125d5a9c80bb156ac114ac3f3d5951a795c80e";
274       sha256 = "1b89s6mfzifi7s5iwf22w7niddpq28w48nmqqy00dv38z4yga5ws";
275     };
276     postInstall = ''
277       sed -i -e 's|fpp |${pkgs.fpp}/bin/fpp |g' $target/fpp.tmux
278     '';
279   };
281   fuzzback = mkTmuxPlugin {
282     pluginName = "fuzzback";
283     version = "unstable-2022-11-21";
284     src = fetchFromGitHub {
285       owner = "roosta";
286       repo = "tmux-fuzzback";
287       rev = "bfd9cf0ef1c35488f0080f0c5ca4fddfdd7e18ec";
288       sha256 = "w788xDBkfiLdUVv1oJi0YikFPqVk6LiN6PDfHu8on5E=";
289     };
290     nativeBuildInputs = [ pkgs.makeWrapper ];
291     postInstall = ''
292       for f in fuzzback.sh preview.sh supported.sh; do
293         chmod +x $target/scripts/$f
294         wrapProgram $target/scripts/$f \
295           --prefix PATH : ${with pkgs; lib.makeBinPath [ coreutils fzf gawk gnused ]}
296       done
297     '';
298     meta = {
299       homepage = "https://github.com/roosta/tmux-fuzzback";
300       description = "Fuzzy search for terminal scrollback";
301       license = lib.licenses.mit;
302       platforms = lib.platforms.unix;
303       maintainers = with lib.maintainers; [ deejayem ];
304     };
305   };
307   fzf-tmux-url = mkTmuxPlugin {
308     pluginName = "fzf-tmux-url";
309     rtpFilePath = "fzf-url.tmux";
310     version = "unstable-2021-12-27";
311     src = fetchFromGitHub {
312       owner = "wfxr";
313       repo = "tmux-fzf-url";
314       rev = "1241fc5682850fe41812cad81c76541674ee305b";
315       sha256 = "1270c5nfvgsdajgfahlacqfb5xwg4hwfrciiy0v03d50vg4h0kdi";
316     };
317   };
319   gruvbox = mkTmuxPlugin {
320     pluginName = "gruvbox";
321     rtpFilePath = "gruvbox-tpm.tmux";
322     version = "unstable-2022-04-19";
323     src = fetchFromGitHub {
324       owner = "egel";
325       repo = "tmux-gruvbox";
326       rev = "3f9e38d7243179730b419b5bfafb4e22b0a969ad";
327       sha256 = "1l0kq77rk3cbv0rvh7bmfn90vvqqmywn9jk6gbl9mg3qbynq5wcf";
328     };
329   };
331   jump = mkTmuxPlugin {
332     pluginName = "jump";
333     version = "2020-06-26";
334     rtpFilePath = "tmux-jump.tmux";
335     src = fetchFromGitHub {
336       owner = "schasse";
337       repo = "tmux-jump";
338       rev = "416f613d3eaadbe1f6f9eda77c49430527ebaffb";
339       sha256 = "1xbzdyhsgaq2in0f8f491gwjmx6cxpkf2c35d2dk0kg4jfs505sz";
340     };
341     postInstall = ''
342       sed -i -e 's|ruby|${pkgs.ruby}/bin/ruby|g' $target/scripts/tmux-jump.sh
343     '';
344     meta = with lib; {
345       homepage = "https://github.com/schasse/tmux-jump";
346       description = "Vimium/Easymotion like navigation for tmux";
347       license = licenses.gpl3;
348       platforms = platforms.unix;
349       maintainers = with maintainers; [ arnarg ];
350     };
351   };
353   logging = mkTmuxPlugin {
354     pluginName = "logging";
355     version = "unstable-2019-04-19";
356     src = fetchFromGitHub {
357       owner = "tmux-plugins";
358       repo = "tmux-logging";
359       rev = "b085ad423b5d59a2c8b8d71772352e7028b8e1d0";
360       sha256 = "0p0sawysalhi8k2a5hdxniqx6kb24kd8rnvfzkjqigzid5ik37js";
361     };
362   };
364   mode-indicator = mkTmuxPlugin rec {
365     pluginName = "mode-indicator";
366     version = "unstable-2021-10-01";
367     src = fetchFromGitHub {
368       owner = "MunifTanjim";
369       repo = "tmux-mode-indicator";
370       rev = "11520829210a34dc9c7e5be9dead152eaf3a4423";
371       sha256 = "sha256-hlhBKC6UzkpUrCanJehs2FxK5SoYBoiGiioXdx6trC4=";
372     };
373     meta = with lib; {
374       homepage = "https://github.com/MunifTanjim/tmux-mode-indicator";
375       description = "Plugin that displays prompt indicating currently active Tmux mode";
376       license = licenses.mit;
377       platforms = platforms.unix;
378       maintainers = with maintainers; [ aacebedo ];
379     };
380   };
382   net-speed = mkTmuxPlugin {
383     pluginName = "net-speed";
384     version = "unstable-2018-12-02";
385     src = fetchFromGitHub {
386       owner = "tmux-plugins";
387       repo = "tmux-net-speed";
388       rev = "58abb615971cb617821e2e7e41c660334f55a92d";
389       sha256 = "1aj06gdhzcxsydjzf21n9kyxigwf38kh2rg8hh7gnjk260ydqlrc";
390     };
391   };
393   nord = mkTmuxPlugin rec {
394     pluginName = "nord";
395     version = "0.3.0";
396     src = pkgs.fetchFromGitHub {
397       owner = "arcticicestudio";
398       repo = "nord-tmux";
399       rev = "v${version}";
400       sha256 = "14xhh49izvjw4ycwq5gx4if7a0bcnvgsf3irywc3qps6jjcf5ymk";
401     };
402   };
404   maildir-counter = mkTmuxPlugin {
405     pluginName = "maildir-counter";
406     version = "unstable-2016-11-25";
407     src = fetchFromGitHub {
408       owner = "tmux-plugins";
409       repo = "tmux-maildir-counter";
410       rev = "9415f0207e71e37cbd870c9443426dbea6da78b9";
411       sha256 = "0dwvqhiv9bjwr01hsi5c57n55jyv5ha5m5q1aqgglf4wyhbnfms4";
412     };
413   };
415   online-status = mkTmuxPlugin {
416     pluginName = "online-status";
417     version = "unstable-2018-11-30";
418     src = fetchFromGitHub {
419       owner = "tmux-plugins";
420       repo = "tmux-online-status";
421       rev = "ea86704ced8a20f4a431116aa43f57edcf5a6312";
422       sha256 = "1hy3vg8v2sir865ylpm2r4ip1zgd4wlrf24jbwh16m23qdcvc19r";
423     };
424   };
426   open = mkTmuxPlugin {
427     pluginName = "open";
428     version = "unstable-2019-12-02";
429     src = fetchFromGitHub {
430       owner = "tmux-plugins";
431       repo = "tmux-open";
432       rev = "cedb4584908bd8458fadc8d3e64101d3cbb48d46";
433       sha256 = "10s0xdhmg0dhpj13ybcq72pw3xgb2dq5v5h2mwidzqyh9g17wndh";
434     };
435   };
437   onedark-theme = mkTmuxPlugin {
438     pluginName = "onedark-theme";
439     rtpFilePath = "tmux-onedark-theme.tmux";
440     version = "unstable-2020-06-07";
441     src = fetchFromGitHub {
442       owner = "odedlaz";
443       repo = "tmux-onedark-theme";
444       rev = "3607ef889a47dd3b4b31f66cda7f36da6f81b85c";
445       sha256 = "19jljshwp2p83b634cd1mw69091x42jj0dg40ipw61qy6642h2m5";
446     };
447   };
449   pain-control = mkTmuxPlugin {
450     pluginName = "pain-control";
451     version = "unstable-2020-02-18";
452     src = fetchFromGitHub {
453       owner = "tmux-plugins";
454       repo = "tmux-pain-control";
455       rev = "2db63de3b08fc64831d833240749133cecb67d92";
456       sha256 = "0w7a6n4n86ysiqcqj12j2hg9r5fznvbp3dz8pzas9q1k3avlk0zk";
457     };
458   };
460   plumb = mkTmuxPlugin rec {
461     pluginName = "plumb";
462     version = "0.1.1";
463     src = fetchFromGitHub {
464       owner = "eraserhd";
465       repo = "tmux-plumb";
466       rev = "v${version}";
467       sha256 = "1c6k4fdl0az9811r6k164mgd4w5la75xr6x7nabmy046xc0z5i2r";
468     };
469     postInstall = ''
470       sed -i -e 's,9 plumb,${pkgs.plan9port}/bin/9 plumb,' $target/scripts/plumb
471     '';
472   };
474   power-theme = mkTmuxPlugin {
475     pluginName = "power";
476     rtpFilePath = "tmux-power.tmux";
477     version = "unstable-2020-11-18";
478     src = pkgs.fetchFromGitHub {
479       owner = "wfxr";
480       repo = "tmux-power";
481       rev = "aec44aa5e00cc39eb71c668b1d73823270058e7d";
482       sha256 = "11nm8cylx10d565g17acy0bj12n6dcbxp71zca2bmg0j1dq859cm";
483     };
484   };
486   prefix-highlight = mkTmuxPlugin {
487     pluginName = "prefix-highlight";
488     version = "unstable-2021-03-30";
489     src = fetchFromGitHub {
490       owner = "tmux-plugins";
491       repo = "tmux-prefix-highlight";
492       rev = "15acc6172300bc2eb13c81718dc53da6ae69de4f";
493       sha256 = "08rkflfnynxgv2s26b33l199h6xcqdfmlqbyqa1wkw7h85br3dgl";
494     };
495   };
497   resurrect = mkTmuxPlugin {
498     pluginName = "resurrect";
499     version = "unstable-2022-05-01";
500     src = fetchFromGitHub {
501       owner = "tmux-plugins";
502       repo = "tmux-resurrect";
503       rev = "ca6468e2deef11efadfe3a62832ae67742505432";
504       sha256 = "0d7jg5dy4jq64679rf2zqmqbvgiqvpcj5jxfljk7d7y86dnqhj3n";
505     };
506     meta = {
507       homepage = "https://github.com/tmux-plugins/tmux-resurrect";
508       description = "Restore tmux environment after system restart";
509       longDescription =
510         ''
511           This plugin goes to great lengths to save and restore all the details
512           from your tmux environment. Here's what's been taken care of:
514           * all sessions, windows, panes and their order
515           * current working directory for each pane
516           * exact pane layouts within windows (even when zoomed)
517           * active and alternative session
518           * active and alternative window for each session
519           * windows with focus
520           * active pane for each window
521           * "grouped sessions" (useful feature when using tmux with multiple monitors)
522           * programs running within a pane! More details in the restoring programs doc.
524           Optional:
525           * restoring vim and neovim sessions
526           * restoring pane contents
527       '';
528       license = lib.licenses.mit;
529       platforms = lib.platforms.unix;
530       maintainers = with lib.maintainers; [ ronanmacf ];
531     };
532   };
534   sensible = mkTmuxPlugin {
535     pluginName = "sensible";
536     version = "unstable-2017-09-05";
537     src = fetchFromGitHub {
538       owner = "tmux-plugins";
539       repo = "tmux-sensible";
540       rev = "e91b178ff832b7bcbbf4d99d9f467f63fd1b76b5";
541       sha256 = "1z8dfbwblrbmb8sgb0k8h1q0dvfdz7gw57las8nwd5gj6ss1jyvx";
542     };
543     postInstall = lib.optionalString stdenv.isDarwin ''
544       sed -e 's:reattach-to-user-namespace:${pkgs.reattach-to-user-namespace}/bin/reattach-to-user-namespace:g' -i $target/sensible.tmux
545     '';
546   };
548   sessionist = mkTmuxPlugin {
549     pluginName = "sessionist";
550     version = "unstable-2017-12-03";
551     src = fetchFromGitHub {
552       owner = "tmux-plugins";
553       repo = "tmux-sessionist";
554       rev = "09ec86be38eae98ffc27bd0dde605ed10ae0dc89";
555       sha256 = "030q2mmj8akbc26jnqn8n7fckg1025p0ildx4wr401b6p1snnlw4";
556     };
557   };
559   sidebar = mkTmuxPlugin {
560     pluginName = "sidebar";
561     version = "unstable-2018-11-30";
562     src = fetchFromGitHub {
563       owner = "tmux-plugins";
564       repo = "tmux-sidebar";
565       rev = "aacbdb45bc5ab69db448a72de4155d0b8dbac677";
566       sha256 = "1bp90zbv19kbbiik0bgb893ybss1jqsnk3353a631993xjwsih7c";
567     };
568   };
570   sysstat = mkTmuxPlugin {
571     pluginName = "sysstat";
572     version = "unstable-2017-12-12";
573     src = fetchFromGitHub {
574       owner = "samoshkin";
575       repo = "tmux-plugin-sysstat";
576       rev = "29e150f403151f2341f3abcb2b2487a5f011dd23";
577       sha256 = "013mv9p6r2r0ls3p60l8hdad4hm8niv3wr27vgm925gxmibi4hyq";
578     };
579   };
581   tilish = mkTmuxPlugin {
582     pluginName = "tilish";
583     version = "unstable-2023-09-20";
584     src = fetchFromGitHub {
585       owner = "jabirali";
586       repo = "tmux-tilish";
587       rev = "22f7920837d827dc6cb31143ea916afa677c24c1";
588       sha256 = "wP3c+p/DM6ve7GUhi0QEzggct7NS4XUa78sVQFSKrfo=";
589     };
591     meta = with lib; {
592       homepage = "https://github.com/jabirali/tmux-tilish";
593       description = "Plugin which makes tmux work and feel like i3wm";
594       license = licenses.mit;
595       platforms = platforms.unix;
596       maintainers = with maintainers; [ arnarg ];
597     };
598   };
600   tmux-colors-solarized = mkTmuxPlugin {
601     pluginName = "tmuxcolors";
602     version = "unstable-2019-07-14";
603     src = fetchFromGitHub {
604       owner = "seebi";
605       repo = "tmux-colors-solarized";
606       rev = "e5e7b4f1af37f8f3fc81ca17eadee5ae5d82cd09";
607       sha256 = "1l3i82abzi4b395cgdsjg7lcfaq15kyyhijwvrgchzxi95z3hl4x";
608     };
609   };
611   tmux-fzf = mkTmuxPlugin {
612     pluginName = "tmux-fzf";
613     rtpFilePath = "main.tmux";
614     version = "unstable-2023-10-24";
615     src = fetchFromGitHub {
616       owner = "sainnhe";
617       repo = "tmux-fzf";
618       rev = "d62b6865c0e7c956ad1f0396823a6f34cf7452a7";
619       hash = "sha256-hVkSQYvBXrkXbKc98V9hwwvFp6z7/mX1K4N3N9j4NN4=";
620     };
621     postInstall = ''
622       find $target -type f -print0 | xargs -0 sed -i -e 's|fzf |${pkgs.fzf}/bin/fzf |g'
623       find $target -type f -print0 | xargs -0 sed -i -e 's|sed |${pkgs.gnused}/bin/sed |g'
624       find $target -type f -print0 | xargs -0 sed -i -e 's|tput |${pkgs.ncurses}/bin/tput |g'
625     '';
626     meta = {
627       homepage = "https://github.com/sainnhe/tmux-fzf";
628       description = "Use fzf to manage your tmux work environment! ";
629       longDescription =
630         ''
631         Features:
632         * Manage sessions (attach, detach*, rename, kill*).
633         * Manage windows (switch, link, move, swap, rename, kill*).
634         * Manage panes (switch, break, join*, swap, layout, kill*, resize).
635         * Multiple selection (support for actions marked by *).
636         * Search commands and append to command prompt.
637         * Search key bindings and execute.
638         * User menu.
639         * Popup window support.
640       '';
641       license = lib.licenses.mit;
642       platforms = lib.platforms.unix;
643       maintainers = with lib.maintainers; [ kyleondy ];
644     };
645   };
647   tmux-thumbs = pkgs.callPackage ./tmux-thumbs {
648     inherit mkTmuxPlugin;
649   };
651   urlview = mkTmuxPlugin {
652     pluginName = "urlview";
653     version = "unstable-2016-01-06";
654     src = fetchFromGitHub {
655       owner = "tmux-plugins";
656       repo = "tmux-urlview";
657       rev = "b84c876cffdd22990b4ab51247e795cbd7813d53";
658       sha256 = "1jp4jq57cn116b3i34v6yy69izd8s6mp2ijr260cw86g0470k0fn";
659     };
660     postInstall = ''
661       sed -i -e '14,20{s|urlview|${pkgs.urlview}/bin/urlview|g}' $target/urlview.tmux
662     '';
663   };
665   vim-tmux-focus-events = mkTmuxPlugin {
666     pluginName = "vim-tmux-focus-events";
667     version = "unstable-2020-10-05";
668     src = fetchFromGitHub {
669       owner = "tmux-plugins";
670       repo = "vim-tmux-focus-events";
671       rev = "a568192ca0de4ca0bd7b3cd0249aad491625c941";
672       sha256 = "130l73v18md95djkc4s9d0fr018f8f183sjcgy7dgldwdaxlqdi1";
673     };
675     meta = with lib; {
676       homepage = "https://github.com/tmux-plugins/vim-tmux-focus-events";
677       description = "Makes FocusGained and FocusLost autocommand events work in vim when using tmux";
678       license = licenses.mit;
679       platforms = platforms.unix;
680       maintainers = with maintainers; [ ronanmacf ];
681     };
682   };
684   vim-tmux-navigator = mkTmuxPlugin {
685     pluginName = "vim-tmux-navigator";
686     rtpFilePath = "vim-tmux-navigator.tmux";
687     version = "unstable-2022-08-21";
688     src = fetchFromGitHub {
689       owner = "christoomey";
690       repo = "vim-tmux-navigator";
691       rev = "afb45a55b452b9238159047ce7c6e161bd4a9907";
692       hash = "sha256-8A+Yt9uhhAP76EiqUopE8vl7/UXkgU2x000EOcF7pl0=";
693     };
694   };
696   weather = mkTmuxPlugin {
697     pluginName = "weather";
698     version = "unstable-2020-02-08";
699     src = fetchFromGitHub {
700       owner = "xamut";
701       repo = "tmux-weather";
702       rev = "28a5fbe75bb25a408193d454304e28ddd75e9338";
703       hash = "sha256-of9E/npEsF1JVc9ttwrbC5WkIAwCNBJAgTfExfj79i4=";
704     };
706     meta = with lib; {
707       homepage = "https://github.com/xamut/tmux-weather";
708       description = "Shows weather in the status line";
709       license = licenses.mit;
710       platforms = platforms.unix;
711       maintainers = with maintainers; [ jfvillablanca ];
712     };
713   };
715   yank = mkTmuxPlugin {
716     pluginName = "yank";
717     version = "unstable-2021-06-20";
718     src = fetchFromGitHub {
719       owner = "tmux-plugins";
720       repo = "tmux-yank";
721       rev = "1b1a436e19f095ae8f825243dbe29800a8acd25c";
722       sha256 = "hRvkBf+YrWycecnDixAsD4CAHg3KsioomfJ/nLl5Zgs=";
723     };
724   };