Created
August 25, 2021 08:37
-
-
Save samuela/c89a9bb9246a68d53bc3db6997fd3616 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ lib, stdenv | |
, fetchFromGitHub | |
, fetchpatch | |
, autoreconfHook | |
, pkg-config | |
, bison | |
, ncurses | |
, libevent | |
, libutempter | |
}: | |
let | |
bashCompletion = fetchFromGitHub { | |
owner = "imomaliev"; | |
repo = "tmux-bash-completion"; | |
rev = "f5d53239f7658f8e8fbaf02535cc369009c436d6"; | |
sha256 = "0sq2g3w0h3mkfa6qwqdw93chb5f1hgkz5vdl8yw8mxwdqwhsdprr"; | |
}; | |
in | |
stdenv.mkDerivation rec { | |
pname = "tmux"; | |
version = "3.2a"; | |
outputs = [ "out" "man" ]; | |
src = fetchFromGitHub { | |
owner = "tmux"; | |
repo = "tmux"; | |
rev = version; | |
sha256 = "0143ylfk7zsl3xmiasb768238gr582cfhsgv3p0h0f13bp8d6q09"; | |
}; | |
patches = [ | |
# See https://github.com/tmux/tmux/pull/2755 | |
(fetchpatch { | |
url = "https://github.com/tmux/tmux/commit/d0a2683120ec5a33163a14b0e1b39d208745968f.patch"; | |
sha256 = "070knpncxfxi6k4q64jwi14ns5vm3606cf402h1c11cwnaa84n1g"; | |
}) | |
]; | |
nativeBuildInputs = [ | |
pkg-config | |
autoreconfHook | |
bison | |
]; | |
buildInputs = [ | |
ncurses | |
libevent | |
libutempter | |
]; | |
configureFlags = [ | |
"--sysconfdir=/etc" | |
"--localstatedir=/var" | |
"--enable-utempter" | |
]; | |
enableParallelBuilding = true; | |
postInstall = '' | |
mkdir -p $out/share/bash-completion/completions | |
cp -v ${bashCompletion}/completions/tmux $out/share/bash-completion/completions/tmux | |
''; | |
meta = { | |
homepage = "https://tmux.github.io/"; | |
description = "Terminal multiplexer"; | |
longDescription = | |
'' tmux is intended to be a modern, BSD-licensed alternative to programs such as GNU screen. Major features include: | |
* A powerful, consistent, well-documented and easily scriptable command interface. | |
* A window may be split horizontally and vertically into panes. | |
* Panes can be freely moved and resized, or arranged into preset layouts. | |
* Support for UTF-8 and 256-colour terminals. | |
* Copy and paste with multiple buffers. | |
* Interactive menus to select windows, sessions or clients. | |
* Change the current window by searching for text in the target. | |
* Terminal locking, manually or after a timeout. | |
* A clean, easily extended, BSD-licensed codebase, under active development. | |
''; | |
changelog = "https://github.com/tmux/tmux/raw/${version}/CHANGES"; | |
license = lib.licenses.bsd3; | |
platforms = lib.platforms.unix; | |
maintainers = with lib.maintainers; [ thammers fpletz ]; | |
}; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment