9 rtpPath = "share/tmux-plugins";
11 addRtp = path: rtpFilePath: attrs: derivation:
12 derivation // { rtp = "${derivation}/${path}/${rtpFilePath}"; } // {
13 overrideAttrs = f: mkTmuxPlugin (attrs // f attrs);
18 rtpFilePath ? (builtins.replaceStrings ["-"] ["_"] pluginName) + ".tmux",
19 namePrefix ? "tmuxplugin-",
27 path ? lib.getName pluginName,
30 if lib.hasAttr "dependencies" a then
31 throw "dependencies attribute is obselete. see NixOS/nixpkgs#118034" # added 2021-04-01
32 else addRtp "${rtpPath}/${path}" rtpFilePath a (stdenv.mkDerivation (a // {
33 pname = namePrefix + pluginName;
35 inherit pluginName unpackPhase configurePhase buildPhase addonInfo preInstall postInstall;
40 target=$out/${rtpPath}/${path}
41 mkdir -p $out/${rtpPath}
43 if [ -n "$addonInfo" ]; then
44 echo "$addonInfo" > $target/addon-info.json
54 battery = mkTmuxPlugin {
55 pluginName = "battery";
56 version = "unstable-2019-07-04";
57 src = fetchFromGitHub {
58 owner = "tmux-plugins";
59 repo = "tmux-battery";
60 rev = "f8b8e8451990365e0c98c38c184962e4f83b793b";
61 sha256 = "1bhdzsx3kdjqjmm1q4j8937lrpkzf71irr3fqhdbddsghwrrmwim";
65 better-mouse-mode = mkTmuxPlugin {
66 pluginName = "better-mouse-mode";
67 version = "unstable-2021-08-02";
68 src = fetchFromGitHub {
70 repo = "tmux-better-mouse-mode";
71 rev = "aa59077c635ab21b251bd8cb4dc24c415e64a58e";
72 sha256 = "06346ih3hzwszhkj25g4xv5av7292s6sdbrdpx39p0n3kgf5mwww";
74 rtpFilePath = "scroll_copy_mode.tmux";
76 homepage = "https://github.com/NHDaly/tmux-better-mouse-mode";
77 description = "better mouse support for tmux";
82 * Emulate mouse-support for full-screen programs like less that don't provide built in mouse support.
83 * Exit copy-mode and return to your prompt by scrolling back all the way down to the bottom.
84 * Adjust your scrolling speed.
86 license = lib.licenses.mit;
87 platforms = lib.platforms.unix;
88 maintainers = with lib.maintainers; [ chrispickard ];
92 catppuccin = mkTmuxPlugin {
93 pluginName = "catppuccin";
94 version = "unstable-2024-05-15";
95 src = fetchFromGitHub {
98 rev = "697087f593dae0163e01becf483b192894e69e33";
99 hash = "sha256-EHinWa6Zbpumu+ciwcMo6JIIvYFfWWEKH1lwfyZUNTo=";
102 sed -i -e 's|''${PLUGIN_DIR}/catppuccin-selected-theme.tmuxtheme|''${TMUX_TMPDIR}/catppuccin-selected-theme.tmuxtheme|g' $target/catppuccin.tmux
105 homepage = "https://github.com/catppuccin/tmux";
106 description = "Soothing pastel theme for Tmux!";
107 license = licenses.mit;
108 platforms = platforms.unix;
109 maintainers = with maintainers; [ jnsgruk ];
113 continuum = mkTmuxPlugin {
114 pluginName = "continuum";
115 version = "unstable-2022-01-25";
116 src = fetchFromGitHub {
117 owner = "tmux-plugins";
118 repo = "tmux-continuum";
119 rev = "fc2f31d79537a5b349f55b74c8ca69abaac1ddbb";
120 sha256 = "06i1jp83iybw76raaxciqz9a7ypgpkvbyjn6jjap8jpqfmj2wmjb";
123 homepage = "https://github.com/tmux-plugins/tmux-continuum";
124 description = "continuous saving of tmux environment";
128 * continuous saving of tmux environment
129 * automatic tmux start when computer/server is turned on
130 * automatic restore when tmux is started
132 Together, these features enable uninterrupted tmux usage. No matter the
133 computer or server restarts, if the machine is on, tmux will be there how
134 you left it off the last time it was used.
136 license = lib.licenses.mit;
137 platforms = lib.platforms.unix;
138 maintainers = with lib.maintainers; [ ronanmacf ];
142 copy-toolkit = mkTmuxPlugin {
143 pluginName = "copy-toolkit";
144 rtpFilePath = "copytk.tmux";
145 version = "2021-12-20";
146 src = fetchFromGitHub {
147 owner = "CrispyConductor";
148 repo = "tmux-copy-toolkit";
149 rev = "c80c2c068059fe04f840ea9f125c21b83cb6f81f";
150 hash = "sha256-cLeOoJ+4MF8lSpwy5lkcPakvB3cpgey0RfLbVTwERNk=";
153 sed -i -e 's|python3 |${pkgs.python3}/bin/python3 |g' $target/copytk.tmux
154 sed -i -e 's|python3|${pkgs.python3}/bin/python3|g;s|/bin/bash|${pkgs.bash}/bin/bash|g;s|/bin/cat|${pkgs.coreutils}/bin/cat|g' $target/copytk.py
157 homepage = "https://github.com/CrispyConductor/tmux-copy-toolkit";
158 description = "Various copy-mode tools";
159 license = lib.licenses.mit;
160 platforms = lib.platforms.unix;
161 maintainers = with lib.maintainers; [ deejayem sedlund ];
165 copycat = mkTmuxPlugin {
166 pluginName = "copycat";
167 version = "unstable-2020-01-09";
168 src = fetchFromGitHub {
169 owner = "tmux-plugins";
170 repo = "tmux-copycat";
171 rev = "77ca3aab2aed8ede3e2b941079b1c92dd221cf5f";
172 sha256 = "1bchwzhai8k5rk32n4lrmh56rw944jqxr8imjk74hyaa7bbn81ds";
178 version = "unstable-2023-01-06";
179 src = fetchFromGitHub {
180 owner = "tmux-plugins";
182 rev = "98d787191bc3e8f19c3de54b96ba1caf61385861";
183 sha256 = "sha256-ymmCI6VYvf94Ot7h2GAboTRBXPIREP+EB33+px5aaJk=";
187 ctrlw = mkTmuxPlugin rec {
188 pluginName = "ctrlw";
190 src = fetchFromGitHub {
194 sha256 = "1kv5pqfjczd6z7i9jf6j5xmcai50l9bn5p2p1w1l5fi6cj8cz1k1";
198 dracula = mkTmuxPlugin rec {
199 pluginName = "dracula";
201 src = fetchFromGitHub {
205 sha256 = "IrNDBRopg9lgN5AfeXbhhh+uXiWQD2bjS1sNOgOJsu4=";
208 homepage = "https://draculatheme.com/tmux";
209 description = "Feature packed Dracula theme for tmux!";
210 license = licenses.mit;
211 platforms = platforms.unix;
212 maintainers = with maintainers; [ ethancedwards8 ];
216 extrakto = mkTmuxPlugin {
217 pluginName = "extrakto";
218 version = "0-unstable-2024-08-25";
219 src = fetchFromGitHub {
222 rev = "bf9e666f2a6a8172ebe99fff61b574ba740cffc2";
223 sha256 = "sha256-kIhJKgo1BDTeFyAPa//f/TrhPfV9Rfk9y4qMhIpCydk=";
225 nativeBuildInputs = [ pkgs.makeWrapper ];
226 buildInputs = [ pkgs.python3 ];
228 patchShebangs extrakto.py extrakto_plugin.py
230 wrapProgram $target/scripts/open.sh \
231 --prefix PATH : ${ with pkgs; lib.makeBinPath
232 [ fzf xclip wl-clipboard ]
236 homepage = "https://github.com/laktak/extrakto";
237 description = "Fuzzy find your text with fzf instead of selecting it by hand ";
238 license = lib.licenses.mit;
239 platforms = lib.platforms.unix;
240 maintainers = with lib.maintainers; [ kidd fnune ];
244 fingers = pkgs.callPackage ./tmux-fingers {
245 inherit mkTmuxPlugin;
250 version = "unstable-2016-03-08";
251 src = fetchFromGitHub {
252 owner = "tmux-plugins";
254 rev = "ca125d5a9c80bb156ac114ac3f3d5951a795c80e";
255 sha256 = "1b89s6mfzifi7s5iwf22w7niddpq28w48nmqqy00dv38z4yga5ws";
258 sed -i -e 's|fpp |${pkgs.fpp}/bin/fpp |g' $target/fpp.tmux
262 fuzzback = mkTmuxPlugin {
263 pluginName = "fuzzback";
264 version = "unstable-2022-11-21";
265 src = fetchFromGitHub {
267 repo = "tmux-fuzzback";
268 rev = "bfd9cf0ef1c35488f0080f0c5ca4fddfdd7e18ec";
269 sha256 = "w788xDBkfiLdUVv1oJi0YikFPqVk6LiN6PDfHu8on5E=";
271 nativeBuildInputs = [ pkgs.makeWrapper ];
273 for f in fuzzback.sh preview.sh supported.sh; do
274 chmod +x $target/scripts/$f
275 wrapProgram $target/scripts/$f \
276 --prefix PATH : ${with pkgs; lib.makeBinPath [ coreutils fzf gawk gnused ]}
280 homepage = "https://github.com/roosta/tmux-fuzzback";
281 description = "Fuzzy search for terminal scrollback";
282 license = lib.licenses.mit;
283 platforms = lib.platforms.unix;
284 maintainers = with lib.maintainers; [ deejayem ];
288 fzf-tmux-url = mkTmuxPlugin {
289 pluginName = "fzf-tmux-url";
290 rtpFilePath = "fzf-url.tmux";
291 version = "unstable-2024-04-14";
292 src = fetchFromGitHub {
294 repo = "tmux-fzf-url";
295 rev = "28ed7ce3c73a328d8463d4f4aaa6ccb851e520fa";
296 hash = "sha256-tl0SjG/CeolrN7OIHj6MgkB9lFmFgEuJevsSuwVs+78=";
299 homepage = "https://github.com/wfxr/tmux-fzf-url";
300 description = "Quickly open urls on your terminal screen!";
301 license = licenses.mit;
302 platforms = platforms.unix;
306 gruvbox = mkTmuxPlugin {
307 pluginName = "gruvbox";
308 rtpFilePath = "gruvbox-tpm.tmux";
309 version = "unstable-2022-04-19";
310 src = fetchFromGitHub {
312 repo = "tmux-gruvbox";
313 rev = "3f9e38d7243179730b419b5bfafb4e22b0a969ad";
314 sha256 = "1l0kq77rk3cbv0rvh7bmfn90vvqqmywn9jk6gbl9mg3qbynq5wcf";
318 jump = mkTmuxPlugin {
320 version = "2020-06-26";
321 rtpFilePath = "tmux-jump.tmux";
322 src = fetchFromGitHub {
325 rev = "416f613d3eaadbe1f6f9eda77c49430527ebaffb";
326 sha256 = "1xbzdyhsgaq2in0f8f491gwjmx6cxpkf2c35d2dk0kg4jfs505sz";
329 sed -i -e 's|ruby|${pkgs.ruby}/bin/ruby|g' $target/scripts/tmux-jump.sh
332 homepage = "https://github.com/schasse/tmux-jump";
333 description = "Vimium/Easymotion like navigation for tmux";
334 license = licenses.gpl3;
335 platforms = platforms.unix;
336 maintainers = with maintainers; [ arnarg ];
340 logging = mkTmuxPlugin {
341 pluginName = "logging";
342 version = "unstable-2019-04-19";
343 src = fetchFromGitHub {
344 owner = "tmux-plugins";
345 repo = "tmux-logging";
346 rev = "b085ad423b5d59a2c8b8d71772352e7028b8e1d0";
347 sha256 = "0p0sawysalhi8k2a5hdxniqx6kb24kd8rnvfzkjqigzid5ik37js";
351 mode-indicator = mkTmuxPlugin rec {
352 pluginName = "mode-indicator";
353 version = "unstable-2021-10-01";
354 src = fetchFromGitHub {
355 owner = "MunifTanjim";
356 repo = "tmux-mode-indicator";
357 rev = "11520829210a34dc9c7e5be9dead152eaf3a4423";
358 sha256 = "sha256-hlhBKC6UzkpUrCanJehs2FxK5SoYBoiGiioXdx6trC4=";
361 homepage = "https://github.com/MunifTanjim/tmux-mode-indicator";
362 description = "Plugin that displays prompt indicating currently active Tmux mode";
363 license = licenses.mit;
364 platforms = platforms.unix;
365 maintainers = with maintainers; [ aacebedo ];
369 net-speed = mkTmuxPlugin {
370 pluginName = "net-speed";
371 version = "unstable-2018-12-02";
372 src = fetchFromGitHub {
373 owner = "tmux-plugins";
374 repo = "tmux-net-speed";
375 rev = "58abb615971cb617821e2e7e41c660334f55a92d";
376 sha256 = "1aj06gdhzcxsydjzf21n9kyxigwf38kh2rg8hh7gnjk260ydqlrc";
380 nord = mkTmuxPlugin {
382 version = "0.3.0-unstable-2023-03-03";
383 src = pkgs.fetchFromGitHub {
386 rev = "f7b6da07ab55fe32ee5f7d62da56d8e5ac691a92";
387 hash = "sha256-mcmVYNWOUoQLiu4eM/EUudRg67Gcou13xuC6zv9aMKA=";
390 homepage = "https://www.nordtheme.com/ports/tmux";
391 description = "Nord Tmux theme with plugin support";
394 > An arctic, north-bluish clean and elegant tmux theme.
395 > Designed for a fluent and clear workflow with support for third-party plugins.
397 This plugin requires that tmux be used with a Nord terminal emulator
398 theme in order to work properly.
400 license = lib.licenses.mit;
401 maintainers = [ lib.maintainers.sigmasquadron ];
405 maildir-counter = mkTmuxPlugin {
406 pluginName = "maildir-counter";
407 version = "unstable-2016-11-25";
408 src = fetchFromGitHub {
409 owner = "tmux-plugins";
410 repo = "tmux-maildir-counter";
411 rev = "9415f0207e71e37cbd870c9443426dbea6da78b9";
412 sha256 = "0dwvqhiv9bjwr01hsi5c57n55jyv5ha5m5q1aqgglf4wyhbnfms4";
416 online-status = mkTmuxPlugin {
417 pluginName = "online-status";
418 version = "unstable-2018-11-30";
419 src = fetchFromGitHub {
420 owner = "tmux-plugins";
421 repo = "tmux-online-status";
422 rev = "ea86704ced8a20f4a431116aa43f57edcf5a6312";
423 sha256 = "1hy3vg8v2sir865ylpm2r4ip1zgd4wlrf24jbwh16m23qdcvc19r";
427 open = mkTmuxPlugin {
429 version = "unstable-2019-12-02";
430 src = fetchFromGitHub {
431 owner = "tmux-plugins";
433 rev = "cedb4584908bd8458fadc8d3e64101d3cbb48d46";
434 sha256 = "10s0xdhmg0dhpj13ybcq72pw3xgb2dq5v5h2mwidzqyh9g17wndh";
438 onedark-theme = mkTmuxPlugin {
439 pluginName = "onedark-theme";
440 rtpFilePath = "tmux-onedark-theme.tmux";
441 version = "unstable-2020-06-07";
442 src = fetchFromGitHub {
444 repo = "tmux-onedark-theme";
445 rev = "3607ef889a47dd3b4b31f66cda7f36da6f81b85c";
446 sha256 = "19jljshwp2p83b634cd1mw69091x42jj0dg40ipw61qy6642h2m5";
450 pain-control = mkTmuxPlugin {
451 pluginName = "pain-control";
452 version = "unstable-2020-02-18";
453 src = fetchFromGitHub {
454 owner = "tmux-plugins";
455 repo = "tmux-pain-control";
456 rev = "2db63de3b08fc64831d833240749133cecb67d92";
457 sha256 = "0w7a6n4n86ysiqcqj12j2hg9r5fznvbp3dz8pzas9q1k3avlk0zk";
461 pass = mkTmuxPlugin {
463 version = "0-unstable-2020-02-28";
464 rtpFilePath = "plugin.tmux";
465 src = pkgs.fetchFromGitHub {
468 rev = "76b1c98911d56928063a41bc93a2d9e81818ef4c";
469 sha256 = "sha256-bamz4IZrozo5R7jt+z7YKyrogawPqsZ9cTJi9osjVoA=";
472 nativeBuildInputs = [ pkgs.makeWrapper ];
477 wrapProgram $target/scripts/main.sh \
478 --prefix PATH : ${with pkgs; lib.makeBinPath ( [
479 findutils fzf gnugrep gnused ncurses pkgs.pass tmux
484 description = "Password-store browser using fzf in tmux";
485 homepage = "https://github.com/rafi/tmux-pass";
486 license = licenses.unlicense;
490 plumb = mkTmuxPlugin rec {
491 pluginName = "plumb";
493 src = fetchFromGitHub {
497 sha256 = "1c6k4fdl0az9811r6k164mgd4w5la75xr6x7nabmy046xc0z5i2r";
500 sed -i -e 's,9 plumb,${pkgs.plan9port}/bin/9 plumb,' $target/scripts/plumb
504 power-theme = mkTmuxPlugin {
505 pluginName = "power";
506 rtpFilePath = "tmux-power.tmux";
507 version = "unstable-2024-05-12";
508 src = pkgs.fetchFromGitHub {
511 rev = "16bbde801378a70512059541d104c5ae35be32b9";
512 hash = "sha256-IyYQyIONMnVBwhhcI3anOPxKpv2TfI2KZgJ5o5JtZ8I=";
515 description = "Tmux powerline theme";
516 homepage = "https://github.com/wfxr/tmux-power";
517 license = licenses.mit;
518 platforms = platforms.unix;
522 prefix-highlight = mkTmuxPlugin {
523 pluginName = "prefix-highlight";
524 version = "unstable-2021-03-30";
525 src = fetchFromGitHub {
526 owner = "tmux-plugins";
527 repo = "tmux-prefix-highlight";
528 rev = "15acc6172300bc2eb13c81718dc53da6ae69de4f";
529 sha256 = "08rkflfnynxgv2s26b33l199h6xcqdfmlqbyqa1wkw7h85br3dgl";
533 resurrect = mkTmuxPlugin {
534 pluginName = "resurrect";
535 version = "unstable-2022-05-01";
536 src = fetchFromGitHub {
537 owner = "tmux-plugins";
538 repo = "tmux-resurrect";
539 rev = "ca6468e2deef11efadfe3a62832ae67742505432";
540 sha256 = "0d7jg5dy4jq64679rf2zqmqbvgiqvpcj5jxfljk7d7y86dnqhj3n";
543 homepage = "https://github.com/tmux-plugins/tmux-resurrect";
544 description = "Restore tmux environment after system restart";
547 This plugin goes to great lengths to save and restore all the details
548 from your tmux environment. Here's what's been taken care of:
550 * all sessions, windows, panes and their order
551 * current working directory for each pane
552 * exact pane layouts within windows (even when zoomed)
553 * active and alternative session
554 * active and alternative window for each session
556 * active pane for each window
557 * "grouped sessions" (useful feature when using tmux with multiple monitors)
558 * programs running within a pane! More details in the restoring programs doc.
561 * restoring vim and neovim sessions
562 * restoring pane contents
564 license = lib.licenses.mit;
565 platforms = lib.platforms.unix;
566 maintainers = with lib.maintainers; [ ronanmacf ];
570 rose-pine = mkTmuxPlugin {
571 pluginName = "rose-pine";
572 version = "unstable-2024-01-08";
573 rtpFilePath = "rose-pine.tmux";
574 src = fetchFromGitHub {
577 rev = "dd6d01338ac4afeb96542dcf24e4a7fe179b69e6";
578 sha256 = "sha256-Tccb4VjdotOSw7flJV4N0H4557NxRhXiCecZBPU9ICQ=";
581 homepage = "https://github.com/rose-pine/tmux";
582 description = "Rosé Pine theme for tmux";
583 license = lib.licenses.mit;
587 sensible = mkTmuxPlugin {
588 pluginName = "sensible";
589 version = "unstable-2017-09-05";
590 src = fetchFromGitHub {
591 owner = "tmux-plugins";
592 repo = "tmux-sensible";
593 rev = "e91b178ff832b7bcbbf4d99d9f467f63fd1b76b5";
594 sha256 = "1z8dfbwblrbmb8sgb0k8h1q0dvfdz7gw57las8nwd5gj6ss1jyvx";
596 postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
597 sed -e 's:reattach-to-user-namespace:${pkgs.reattach-to-user-namespace}/bin/reattach-to-user-namespace:g' -i $target/sensible.tmux
601 session-wizard = mkTmuxPlugin rec {
602 pluginName = "session-wizard";
603 rtpFilePath = "session-wizard.tmux";
605 src = pkgs.fetchFromGitHub {
606 owner = "27medkamal";
607 repo = "tmux-session-wizard";
609 sha256 = "sha256-nJaC5aX+cR/+ks3I/lW/tUnVG0CrEYfsIjPDisgMrTE=";
612 homepage = "https://github.com/27medkamal/tmux-session-wizard";
613 description = "Tmux plugin for creating and switching between sessions based on recently accessed directories";
615 Session Wizard is using fzf and zoxide to do all the magic. Features:
616 * Creating a new session from a list of recently accessed directories
617 * Naming a session after a folder/project
619 * Viewing current or creating new sessions in one popup
621 license = licenses.mit;
622 platforms = platforms.unix;
623 maintainers = with maintainers; [ mandos ];
625 nativeBuildInputs = [ pkgs.makeWrapper ];
627 for f in .gitignore Dockerfile flake.* scripts tests; do
630 substituteInPlace $target/session-wizard.tmux --replace \$CURRENT_DIR $target
631 wrapProgram $target/bin/t \
632 --prefix PATH : ${with pkgs; lib.makeBinPath ([ fzf zoxide coreutils gnugrep gnused ])}
636 sessionist = mkTmuxPlugin {
637 pluginName = "sessionist";
638 version = "unstable-2017-12-03";
639 src = fetchFromGitHub {
640 owner = "tmux-plugins";
641 repo = "tmux-sessionist";
642 rev = "09ec86be38eae98ffc27bd0dde605ed10ae0dc89";
643 sha256 = "030q2mmj8akbc26jnqn8n7fckg1025p0ildx4wr401b6p1snnlw4";
647 sidebar = mkTmuxPlugin {
648 pluginName = "sidebar";
649 version = "unstable-2018-11-30";
650 src = fetchFromGitHub {
651 owner = "tmux-plugins";
652 repo = "tmux-sidebar";
653 rev = "aacbdb45bc5ab69db448a72de4155d0b8dbac677";
654 sha256 = "1bp90zbv19kbbiik0bgb893ybss1jqsnk3353a631993xjwsih7c";
658 sysstat = mkTmuxPlugin {
659 pluginName = "sysstat";
660 version = "unstable-2017-12-12";
661 src = fetchFromGitHub {
663 repo = "tmux-plugin-sysstat";
664 rev = "29e150f403151f2341f3abcb2b2487a5f011dd23";
665 sha256 = "013mv9p6r2r0ls3p60l8hdad4hm8niv3wr27vgm925gxmibi4hyq";
669 tilish = mkTmuxPlugin {
670 pluginName = "tilish";
671 version = "unstable-2023-09-20";
672 src = fetchFromGitHub {
674 repo = "tmux-tilish";
675 rev = "22f7920837d827dc6cb31143ea916afa677c24c1";
676 sha256 = "wP3c+p/DM6ve7GUhi0QEzggct7NS4XUa78sVQFSKrfo=";
680 homepage = "https://github.com/jabirali/tmux-tilish";
681 description = "Plugin which makes tmux work and feel like i3wm";
682 license = licenses.mit;
683 platforms = platforms.unix;
684 maintainers = with maintainers; [ arnarg ];
688 tokyo-night-tmux = mkTmuxPlugin {
689 pluginName = "tokyo-night-tmux";
690 rtpFilePath = "tokyo-night.tmux";
692 src = pkgs.fetchFromGitHub {
693 owner = "janoamaral";
694 repo = "tokyo-night-tmux";
695 rev = "d34f1487b4a644b13d8b2e9a2ee854ae62cc8d0e";
696 hash = "sha256-3rMYYzzSS2jaAMLjcQoKreE0oo4VWF9dZgDtABCUOtY=";
699 homepage = "https://github.com/janoamaral/tokyo-night-tmux";
700 description = "A clean, dark Tmux theme that celebrates the lights of Downtown Tokyo at night.";
701 license = licenses.mit;
702 platforms = platforms.unix;
703 maintainers = with maintainers; [ redyf ];
707 tmux-colors-solarized = mkTmuxPlugin {
708 pluginName = "tmuxcolors";
709 version = "unstable-2019-07-14";
710 src = fetchFromGitHub {
712 repo = "tmux-colors-solarized";
713 rev = "e5e7b4f1af37f8f3fc81ca17eadee5ae5d82cd09";
714 sha256 = "1l3i82abzi4b395cgdsjg7lcfaq15kyyhijwvrgchzxi95z3hl4x";
718 tmux-floax = mkTmuxPlugin {
719 pluginName = "tmux-floax";
720 rtpFilePath = "floax.tmux";
721 version = "0-unstable-2024-07-24";
722 src = fetchFromGitHub {
725 rev = "46c0a6a8c3cf79b83d1b338f547acbbd1d306301";
726 hash = "sha256-bALZfVWcoAzcTeWwkBHhi7TzUQJicOBTNdeJh3O/Bj8=";
729 description = "Floating pane for Tmux";
730 homepage = "https://github.com/omerxx/tmux-floax";
731 license = lib.licenses.gpl3Only;
732 maintainers = with lib.maintainers; [ redyf ];
733 mainProgram = "tmux-floax";
734 platforms = lib.platforms.all;
738 tmux-fzf = mkTmuxPlugin {
739 pluginName = "tmux-fzf";
740 rtpFilePath = "main.tmux";
741 version = "unstable-2023-10-24";
742 src = fetchFromGitHub {
745 rev = "d62b6865c0e7c956ad1f0396823a6f34cf7452a7";
746 hash = "sha256-hVkSQYvBXrkXbKc98V9hwwvFp6z7/mX1K4N3N9j4NN4=";
749 find $target -type f -print0 | xargs -0 sed -i -e 's|fzf |${pkgs.fzf}/bin/fzf |g'
750 find $target -type f -print0 | xargs -0 sed -i -e 's|sed |${pkgs.gnused}/bin/sed |g'
751 find $target -type f -print0 | xargs -0 sed -i -e 's|tput |${pkgs.ncurses}/bin/tput |g'
754 homepage = "https://github.com/sainnhe/tmux-fzf";
755 description = "Use fzf to manage your tmux work environment! ";
759 * Manage sessions (attach, detach*, rename, kill*).
760 * Manage windows (switch, link, move, swap, rename, kill*).
761 * Manage panes (switch, break, join*, swap, layout, kill*, resize).
762 * Multiple selection (support for actions marked by *).
763 * Search commands and append to command prompt.
764 * Search key bindings and execute.
766 * Popup window support.
768 license = lib.licenses.mit;
769 platforms = lib.platforms.unix;
770 maintainers = with lib.maintainers; [ kyleondy ];
774 tmux-powerline = mkTmuxPlugin {
775 pluginName = "powerline";
777 src = fetchFromGitHub {
779 repo = "tmux-powerline";
780 rev = "2480e5531e0027e49a90eaf540f973e624443937";
781 hash = "sha256-25uG7OI8OHkdZ3GrTxG1ETNeDtW1K+sHu2DfJtVHVbk=";
783 rtpFilePath = "main.tmux";
785 homepage = "https://github.com/erikw/tmux-powerline";
786 description = "Empowering your tmux (status bar) experience!";
787 longDescription = "A tmux plugin giving you a hackable status bar consisting of dynamic & beautiful looking powerline segments, written purely in bash.";
788 license = lib.licenses.bsd3;
789 platforms = lib.platforms.unix;
790 maintainers = with lib.maintainers; [ thomasjm ];
794 tmux-thumbs = pkgs.callPackage ./tmux-thumbs {
795 inherit mkTmuxPlugin;
798 t-smart-tmux-session-manager = mkTmuxPlugin rec {
799 pluginName = "t-smart-tmux-session-manager";
801 rtpFilePath = "t-smart-tmux-session-manager.tmux";
802 src = pkgs.fetchFromGitHub {
803 owner = "joshmedeski";
804 repo = "t-smart-tmux-session-manager";
806 sha256 = "sha256-EMDEEIWJ+XFOk0WsQPAwj9BFBVDNwFUCyd1ScceqKpc=";
808 nativeBuildInputs = [ pkgs.makeWrapper ];
810 wrapProgram $out/share/tmux-plugins/t-smart-tmux-session-manager/bin/t \
811 --prefix PATH : ${with pkgs; lib.makeBinPath (
812 [ pkgs.fzf pkgs.zoxide ]
815 find $target -type f -print0 | xargs -0 sed -i -e 's|fzf |${pkgs.fzf}/bin/fzf |g'
816 find $target -type f -print0 | xargs -0 sed -i -e 's|zoxide |${pkgs.zoxide}/bin/zoxide |g'
820 urlview = mkTmuxPlugin {
821 pluginName = "urlview";
822 version = "unstable-2016-01-06";
823 src = fetchFromGitHub {
824 owner = "tmux-plugins";
825 repo = "tmux-urlview";
826 rev = "b84c876cffdd22990b4ab51247e795cbd7813d53";
827 sha256 = "1jp4jq57cn116b3i34v6yy69izd8s6mp2ijr260cw86g0470k0fn";
830 sed -i -e '14,20{s|extract_url|${pkgs.extract_url}/bin/extract_url|g}' $target/urlview.tmux
834 vim-tmux-focus-events = mkTmuxPlugin {
835 pluginName = "vim-tmux-focus-events";
836 version = "unstable-2020-10-05";
837 src = fetchFromGitHub {
838 owner = "tmux-plugins";
839 repo = "vim-tmux-focus-events";
840 rev = "a568192ca0de4ca0bd7b3cd0249aad491625c941";
841 sha256 = "130l73v18md95djkc4s9d0fr018f8f183sjcgy7dgldwdaxlqdi1";
845 homepage = "https://github.com/tmux-plugins/vim-tmux-focus-events";
846 description = "Makes FocusGained and FocusLost autocommand events work in vim when using tmux";
847 license = licenses.mit;
848 platforms = platforms.unix;
849 maintainers = with maintainers; [ ronanmacf ];
853 vim-tmux-navigator = mkTmuxPlugin {
854 pluginName = "vim-tmux-navigator";
855 rtpFilePath = "vim-tmux-navigator.tmux";
856 version = "unstable-2022-08-21";
857 src = fetchFromGitHub {
858 owner = "christoomey";
859 repo = "vim-tmux-navigator";
860 rev = "afb45a55b452b9238159047ce7c6e161bd4a9907";
861 hash = "sha256-8A+Yt9uhhAP76EiqUopE8vl7/UXkgU2x000EOcF7pl0=";
865 weather = mkTmuxPlugin {
866 pluginName = "weather";
867 version = "unstable-2020-02-08";
868 src = fetchFromGitHub {
870 repo = "tmux-weather";
871 rev = "28a5fbe75bb25a408193d454304e28ddd75e9338";
872 hash = "sha256-of9E/npEsF1JVc9ttwrbC5WkIAwCNBJAgTfExfj79i4=";
876 homepage = "https://github.com/xamut/tmux-weather";
877 description = "Shows weather in the status line";
878 license = licenses.mit;
879 platforms = platforms.unix;
880 maintainers = with maintainers; [ jfvillablanca ];
884 yank = mkTmuxPlugin {
886 version = "unstable-2023-07-19";
887 src = fetchFromGitHub {
888 owner = "tmux-plugins";
890 rev = "acfd36e4fcba99f8310a7dfb432111c242fe7392";
891 sha256 = "sha256-/5HPaoOx2U2d8lZZJo5dKmemu6hKgHJYq23hxkddXpA=";
895 tmux-nova = mkTmuxPlugin rec {
896 pluginName = "tmux-nova";
897 rtpFilePath = "nova.tmux";
899 src = fetchFromGitHub {
903 sha256 = "16llz3nlyw88lyd8mmj27i0ncyhpfjj5c1yikngf7nxcqsbjmcnh";
906 homepage = "https://github.com/o0th/tmux-nova";
907 description = "tmux-nova theme";
908 license = licenses.mit;
909 platforms = platforms.unix;
910 maintainers = with maintainers; [ o0th ];
913 } // lib.optionalAttrs config.allowAliases {
914 mkDerivation = throw "tmuxPlugins.mkDerivation is deprecated, use tmuxPlugins.mkTmuxPlugin instead"; # added 2021-03-14