push sheeet
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s

This commit is contained in:
Dark Steveneq
2025-10-09 14:15:47 +02:00
commit 646b892680
49168 changed files with 5897842 additions and 0 deletions

View File

@@ -0,0 +1,24 @@
diff --git a/unix_client.c b/unix_client.c
index 920910a..6d608fd 100644
--- a/unix_client.c
+++ b/unix_client.c
@@ -8,6 +8,7 @@
#include <sys/socket.h>
#include <unistd.h>
#include <assert.h>
+#include <string.h>
#include "main.h"
#include "handlers.h"
diff --git a/unix_server.c b/unix_server.c
index 5cf93ed..d3c51c9 100644
--- a/unix_server.c
+++ b/unix_server.c
@@ -8,6 +8,7 @@
#include <assert.h>
#include <unistd.h>
#include <stdio.h>
+#include <string.h>
#include <sys/un.h>
#include <sys/socket.h>
#include <sys/select.h>

View File

@@ -0,0 +1,35 @@
{
lib,
stdenv,
fetchurl,
}:
stdenv.mkDerivation (finalAtts: {
pname = "tm";
version = "0.4.1";
src = fetchurl {
url = "https://vicerveza.homeunix.net/~viric/soft/tm/tm-${finalAtts.version}.tar.gz";
hash = "sha256-OzibwDtpZK1f+lejRLiR/bz3ybJgSt2nI6hj+DZXxKA=";
};
makeFlags = [ "PREFIX=$(out)" ];
patches = [
# fix using strncpy and strlen without including string.h
./missing-string-header.patch
];
postPatch = ''
sed -i 's@/usr/bin/install@install@g ; s/gcc/cc/g' Makefile
'';
meta = {
description = "Terminal mixer - multiplexer for the i/o of terminal applications";
homepage = "http://vicerveza.homeunix.net/~viric/soft/tm";
license = lib.licenses.gpl2Plus;
maintainers = [ ];
platforms = lib.platforms.all;
mainProgram = "tm";
};
})

View File

@@ -0,0 +1,64 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
cmake,
libtool,
pkg-config,
zlib,
openssl,
libevent,
ncurses,
ruby,
msgpack-c,
libssh,
nixosTests,
}:
stdenv.mkDerivation {
pname = "tmate-ssh-server";
version = "unstable-2023-06-02";
src = fetchFromGitHub {
owner = "tmate-io";
repo = "tmate-ssh-server";
rev = "d7334ee4c3c8036c27fb35c7a24df3a88a15676b";
sha256 = "sha256-V3p0vagt13YjQPdqpbSatx5DnIEXL4t/kfxETSFYye0=";
};
postPatch = ''
substituteInPlace configure.ac \
--replace 'msgpack >= 1.2.0' 'msgpack-c >= 1.2.0'
'';
nativeBuildInputs = [
autoreconfHook
cmake
pkg-config
];
buildInputs = [
libtool
zlib
openssl
libevent
ncurses
ruby
msgpack-c
libssh
];
dontUseCmakeConfigure = true;
passthru.tests.tmate-ssh-server = nixosTests.tmate-ssh-server;
meta = with lib; {
homepage = "https://tmate.io/";
description = "tmate SSH Server";
license = licenses.mit;
platforms = platforms.unix;
maintainers = with maintainers; [ ck3d ];
mainProgram = "tmate-ssh-server";
};
}

View File

@@ -0,0 +1,61 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
cmake,
libtool,
pkg-config,
zlib,
openssl,
libevent,
ncurses,
ruby,
msgpack-c,
libssh,
}:
stdenv.mkDerivation {
pname = "tmate";
version = "unstable-2022-08-07";
src = fetchFromGitHub {
owner = "tmate-io";
repo = "tmate";
rev = "ac919516f4f1b10ec928e20b3a5034d18f609d68";
sha256 = "sha256-t96gfmAMcsjkGf8pvbEx2fNx4Sj3W6oYoQswB3Dklb8=";
};
postPatch = ''
substituteInPlace configure.ac \
--replace 'msgpack >= 1.1.0' 'msgpack-c >= 1.1.0'
'';
nativeBuildInputs = [
autoreconfHook
cmake
pkg-config
];
buildInputs = [
libtool
zlib
openssl
libevent
ncurses
ruby
msgpack-c
libssh
];
dontUseCmakeConfigure = true;
meta = with lib; {
homepage = "https://tmate.io/";
description = "Instant Terminal Sharing";
license = licenses.mit;
platforms = platforms.unix;
maintainers = with maintainers; [ ck3d ];
mainProgram = "tmate";
};
}

View File

@@ -0,0 +1,45 @@
{
stdenv,
lib,
fetchFromGitHub,
cmake,
installShellFiles,
ncurses,
}:
stdenv.mkDerivation rec {
pname = "tmatrix";
version = "1.4";
src = fetchFromGitHub {
owner = "M4444";
repo = "TMatrix";
rev = "v${version}";
sha256 = "sha256-G3dg0SWfBjCA66TTxkVAcVrFNJOWE9+GJXYKzCUX34w=";
};
nativeBuildInputs = [
cmake
installShellFiles
];
buildInputs = [ ncurses ];
postInstall = ''
installManPage ../tmatrix.6
'';
meta = with lib; {
description = "Terminal based replica of the digital rain from The Matrix";
longDescription = ''
TMatrix is a program that simulates the digital rain form The Matrix.
It's focused on being the most accurate replica of the digital rain effect
achievable on a typical terminal, while also being customizable and
performant.
'';
homepage = "https://github.com/M4444/TMatrix";
license = licenses.gpl2;
platforms = platforms.all;
maintainers = with maintainers; [ Br1ght0ne ];
mainProgram = "tmatrix";
};
}

View File

@@ -0,0 +1,54 @@
{
lib,
stdenv,
fetchFromGitHub,
rustPlatform,
writableTmpDirAsHomeHook,
versionCheckHook,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "tmc-cli";
version = "1.1.2";
src = fetchFromGitHub {
owner = "rage";
repo = "tmc-cli-rust";
tag = "v${finalAttrs.version}";
hash = "sha256-C7X+XTOqquqf/W29+A4wUUl6aDZYLlc5XokkIOrCbp0=";
};
cargoHash = "sha256-2KoHKTN1Jvyvk9ravi0a9D+RIFYa1KmHLJQzKT2iP9A=";
nativeCheckInputs = [
writableTmpDirAsHomeHook
];
checkFlags = lib.optionals stdenv.hostPlatform.isDarwin [
# When sandboxing, "Attempted to create a NULL object."
# https://github.com/mullvad/system-configuration-rs/pull/59 may fix.
"--skip=commands::courses::tests::list_courses_with_client_test"
# Same
"--skip=all_integration_tests"
# When sandboxing, "Lazy instance has previously been poisoned."
"--skip=commands::exercises::tests::list_exercises_with_client_test"
];
nativeInstallCheckInputs = [
versionCheckHook
];
doInstallCheck = true;
versionCheckProgram = "${placeholder "out"}/bin/${finalAttrs.meta.mainProgram}";
versionCheckProgramArg = "--version";
__darwinAllowLocalNetworking = true;
meta = {
description = "CLI for using the TestMyCode programming assignment evaluator";
homepage = "https://github.com/rage/tmc-cli-rust";
changelog = "https://github.com/rage/tmc-cli-rust/releases/tag/v${finalAttrs.version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ hekazu ];
mainProgram = "tmc";
};
})

View File

@@ -0,0 +1,33 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "tml";
version = "0.7.0";
src = fetchFromGitHub {
owner = "liamg";
repo = "tml";
rev = "v${version}";
hash = "sha256-QMXEKjOKYQlzXc2ds8OAAL5xUxayGb6mxxyeHsCkfwo=";
};
vendorHash = "sha256-CHZS1SpPko8u3tZAYbf+Di882W55X9Q/zd4SmFCRgKM=";
ldflags = [
"-s"
"-w"
];
meta = {
description = "Tiny markup language for terminal output";
mainProgram = "tml";
homepage = "https://github.com/liamg/tml";
changelog = "https://github.com/liamg/tml/releases/tag/v${version}";
license = lib.licenses.unlicense;
maintainers = with lib.maintainers; [ figsoda ];
};
}

View File

@@ -0,0 +1,60 @@
{
lib,
stdenv,
fetchFromGitHub,
mpi,
mpich,
tmux,
reptyr,
makeWrapper,
}:
stdenv.mkDerivation {
pname = "tmpi";
version = "0-unstable-2022-02-22";
src = fetchFromGitHub {
owner = "Azrael3000";
repo = "tmpi";
rev = "f5a0fd8848b5c87b301edc8a23de9bfcfbd41918";
hash = "sha256-BaOaMpsF8ho8EIVuHfu4+CiVV3yLoC3tDkLq4R8BYBA=";
};
propagatedBuildInputs = [
mpi
mpich
reptyr
tmux
];
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
runHook preInstall
mkdir -p $out/bin
install -m755 tmpi $out/bin/tmpi
wrapProgram $out/bin/tmpi \
--prefix PATH : ${
lib.makeBinPath [
mpi
mpich
tmux
reptyr
]
}
runHook postInstall
'';
meta = {
description = "Run a parallel command inside a split tmux window";
mainProgram = "tmpi";
homepage = "https://github.com/Azrael3000/tmpi";
license = lib.licenses.gpl2;
maintainers = with lib.maintainers; [ vasissualiyp ];
platforms = reptyr.meta.platforms;
};
}

View File

@@ -0,0 +1,54 @@
{
lib,
fetchFromGitHub,
stdenvNoCC,
w3m,
curl,
jq,
makeWrapper,
installShellFiles,
xclip,
}:
stdenvNoCC.mkDerivation rec {
pname = "tmpmail";
version = "1.2.3";
src = fetchFromGitHub {
owner = "sdushantha";
repo = "tmpmail";
rev = "v${version}";
sha256 = "sha256-s4c1M4YHK/CNpH7nPt7rRqlkLUZrpBXvAVS/qxCai9c=";
};
dontConfigure = true;
dontBuild = true;
nativeBuildInputs = [
makeWrapper
installShellFiles
];
installPhase = ''
mkdir -p $out/bin
install -Dm755 -t $out/bin tmpmail
installManPage tmpmail.1
wrapProgram $out/bin/tmpmail --prefix PATH : ${
lib.makeBinPath [
w3m
curl
jq
xclip
]
}
'';
meta = with lib; {
homepage = "https://github.com/sdushantha/tmpmail";
description = "Temporary email right from your terminal written in POSIX sh";
license = licenses.mit;
maintainers = [ maintainers.lom ];
mainProgram = "tmpmail";
};
}

View File

@@ -0,0 +1,27 @@
{
lib,
stdenv,
fetchurl,
psmisc,
}:
stdenv.mkDerivation rec {
pname = "tmpwatch";
version = "2.11";
src = fetchurl {
url = "https://releases.pagure.org/tmpwatch/tmpwatch-${version}.tar.bz2";
sha256 = "1m5859ngwx61l1i4s6fja2avf1hyv6w170by273w8nsin89825lk";
};
configureFlags = [ "--with-fuser=${psmisc}/bin/fuser" ];
meta = with lib; {
homepage = "https://pagure.io/tmpwatch";
description = "Recursively searches through specified directories and removes files which have not been accessed in a specified period of time";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ vlstill ];
platforms = platforms.unix;
mainProgram = "tmpwatch";
};
}

View File

@@ -0,0 +1,44 @@
{
lib,
buildGoModule,
fetchFromGitHub,
installShellFiles,
}:
buildGoModule {
pname = "tmsu";
version = "0.7.5-unstable-2024-06-08";
src = fetchFromGitHub {
owner = "oniony";
repo = "tmsu";
rev = "0bf4b8031cbeffc0347007d85647062953e90571";
hash = "sha256-5Rmelgiqs7YkdDBZNXZW4sBf0l/bwiq0xxB2tWpm1s8=";
};
vendorHash = "sha256-r2wzVkPTsxWdVPFLO84tJgl3VJonoU7kNKLOBgHHdF8=";
nativeBuildInputs = [ installShellFiles ];
postInstall = ''
# can't do "mv TMSU tmsu" on case-insensitive filesystems
mv $out/bin/{TMSU,tmsu.tmp}
mv $out/bin/{tmsu.tmp,tmsu}
installManPage misc/man/tmsu.1
installShellCompletion --bash misc/bash/tmsu
installShellCompletion --zsh misc/zsh/_tmsu
'';
meta = {
homepage = "https://www.tmsu.org";
description = "Tool for tagging your files using a virtual filesystem";
maintainers = with lib.maintainers; [
luftmensch-luftmensch
pSub
];
mainProgram = "tmsu";
license = lib.licenses.gpl3Plus;
platforms = lib.platforms.unix;
};
}

View File

@@ -0,0 +1,48 @@
{
lib,
stdenv,
fetchFromGitHub,
makeWrapper,
tmux,
}:
stdenv.mkDerivation {
pname = "tmux-cssh";
version = "unstable-2015-10-15";
src = fetchFromGitHub {
owner = "dennishafemann";
repo = "tmux-cssh";
rev = "21750733c5b6fa2fe23b9e50ce69d8564f2f742a";
hash = "sha256-Rz4n87aYZLkF0TQNl5F80gJwXHYWEes67EwkUh9ptSw=";
};
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
mkdir -p $out/bin
cp tmux-cssh $out/bin/tmux-cssh
wrapProgram $out/bin/tmux-cssh --suffix PATH : ${tmux}/bin
'';
meta = {
homepage = "https://github.com/dennishafemann/tmux-cssh";
description = "SSH to multiple hosts at the same time using tmux";
longDescription = ''
tmux is a terminal multiplexer, like e.g. screen, which gives you a
possibility to use multiple virtual terminal session within one real
terminal session. tmux-cssh (tmux-cluster-ssh) sets a comfortable and
easy to use functionality, clustering and synchronizing virtual
tmux-sessions, on top of tmux. No need for a x-server or x-forwarding.
tmux-cssh works just with tmux and in an low-level terminal-environment,
like most server do.
'';
license = lib.licenses.asl20;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ zimbatm ];
mainProgram = "tmux-cssh";
};
}

View File

@@ -0,0 +1,29 @@
{
stdenv,
lib,
fetchFromGitHub,
cmake,
}:
stdenv.mkDerivation rec {
pname = "tmux-mem-cpu-load";
version = "3.8.2";
src = fetchFromGitHub {
owner = "thewtex";
repo = "tmux-mem-cpu-load";
rev = "v${version}";
sha256 = "sha256-g++6n6OD9FAw8CtXArKBgNwFf+3v+SBCHmbma7RpMBA=";
};
nativeBuildInputs = [ cmake ];
meta = with lib; {
description = "CPU, RAM, and load monitor for use with tmux";
homepage = "https://github.com/thewtex/tmux-mem-cpu-load";
license = licenses.asl20;
maintainers = with maintainers; [ thomasjm ];
platforms = platforms.all;
mainProgram = "tmux-mem-cpu-load";
};
}

View File

@@ -0,0 +1,52 @@
{
fetchFromGitHub,
installShellFiles,
lib,
pkg-config,
rustPlatform,
stdenv,
versionCheckHook,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "tmux-sessionizer";
version = "0.5.0";
src = fetchFromGitHub {
owner = "jrmoulton";
repo = "tmux-sessionizer";
rev = "v${finalAttrs.version}";
hash = "sha256-6eMKwp5639DIyhM6OD+db7jr4uF34JSt0Xg+lpyIPSI=";
};
cargoHash = "sha256-gIsqHbCmfYs1c3LPNbE4zLVjzU3GJ4MeHMt0DC5sS3c=";
nativeInstallCheckInputs = [
versionCheckHook
];
versionCheckProgram = "${placeholder "out"}/bin/${finalAttrs.meta.mainProgram}";
versionCheckProgramArg = "--version";
doInstallCheck = true;
nativeBuildInputs = [
pkg-config
installShellFiles
];
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd tms \
--bash <(COMPLETE=bash $out/bin/tms) \
--fish <(COMPLETE=fish $out/bin/tms) \
--zsh <(COMPLETE=zsh $out/bin/tms)
'';
meta = with lib; {
description = "Fastest way to manage projects as tmux sessions";
homepage = "https://github.com/jrmoulton/tmux-sessionizer";
license = licenses.mit;
maintainers = with maintainers; [
vinnymeller
mrcjkb
];
mainProgram = "tms";
};
})

View File

@@ -0,0 +1,42 @@
{
lib,
stdenv,
fetchFromGitHub,
openssl,
perl,
}:
stdenv.mkDerivation rec {
pname = "tmux-xpanes";
version = "4.2.0";
src = fetchFromGitHub {
owner = "greymd";
repo = "tmux-xpanes";
rev = "v${version}";
sha256 = "sha256-PF2K2A49c5djQqSO7ZLFyBwPZaJRK58qZTFpY7n+Z0w=";
};
buildInputs = [
openssl
perl
];
installPhase = ''
# Create directories.
install -m 755 -d $out/bin/
install -m 755 -d $out/share/man/man1/
# Perform installation.
install -m 755 bin/* $out/bin/
install -m 644 man/*.1 $out/share/man/man1/
'';
meta = with lib; {
description = "tmux-based terminal divider";
homepage = "https://github.com/greymd/tmux-xpanes";
license = licenses.mit;
platforms = platforms.unix;
maintainers = with maintainers; [ monsieurp ];
};
}

View File

@@ -0,0 +1,125 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
bison,
libevent,
ncurses,
pkg-config,
runCommand,
withSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd,
systemd,
# broken on i686-linux https://github.com/tmux/tmux/issues/4597
withUtf8proc ? !(stdenv.hostPlatform.is32bit),
utf8proc, # gets Unicode updates faster than glibc
withUtempter ? stdenv.hostPlatform.isLinux && !stdenv.hostPlatform.isMusl,
libutempter,
withSixel ? true,
}:
let
bashCompletion = fetchFromGitHub {
owner = "imomaliev";
repo = "tmux-bash-completion";
rev = "f5d53239f7658f8e8fbaf02535cc369009c436d6";
sha256 = "0sq2g3w0h3mkfa6qwqdw93chb5f1hgkz5vdl8yw8mxwdqwhsdprr";
};
in
stdenv.mkDerivation (finalAttrs: {
pname = "tmux";
version = "3.5a";
outputs = [
"out"
"man"
];
src = fetchFromGitHub {
owner = "tmux";
repo = "tmux";
rev = finalAttrs.version;
hash = "sha256-Z9XHpyh4Y6iBI4+SfFBCGA8huFJpRFZy9nEB7+WQVJE=";
};
nativeBuildInputs = [
pkg-config
autoreconfHook
bison
];
buildInputs = [
ncurses
libevent
]
++ lib.optionals withSystemd [ systemd ]
++ lib.optionals withUtf8proc [ utf8proc ]
++ lib.optionals withUtempter [ libutempter ];
configureFlags = [
"--sysconfdir=/etc"
"--localstatedir=/var"
]
++ lib.optionals withSystemd [ "--enable-systemd" ]
++ lib.optionals withSixel [ "--enable-sixel" ]
++ lib.optionals withUtempter [ "--enable-utempter" ]
++ lib.optionals withUtf8proc [ "--enable-utf8proc" ];
enableParallelBuilding = true;
postInstall = ''
mkdir -p $out/share/bash-completion/completions
cp -v ${bashCompletion}/completions/tmux $out/share/bash-completion/completions/tmux
''
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
mkdir $out/nix-support
echo "${finalAttrs.passthru.terminfo}" >> $out/nix-support/propagated-user-env-packages
'';
passthru = {
terminfo = runCommand "tmux-terminfo" { nativeBuildInputs = [ ncurses ]; } (
if stdenv.hostPlatform.isDarwin then
''
mkdir -p $out/share/terminfo/74
cp -v ${ncurses}/share/terminfo/74/tmux $out/share/terminfo/74
# macOS ships an old version (5.7) of ncurses which does not include tmux-256color so we need to provide it from our ncurses.
# However, due to a bug in ncurses 5.7, we need to first patch the terminfo before we can use it with macOS.
# https://gpanders.com/blog/the-definitive-guide-to-using-tmux-256color-on-macos/
tic -o $out/share/terminfo -x <(TERMINFO_DIRS=${ncurses}/share/terminfo infocmp -x tmux-256color | sed 's|pairs#0x10000|pairs#32767|')
''
else
''
mkdir -p $out/share/terminfo/t
ln -sv ${ncurses}/share/terminfo/t/{tmux,tmux-256color,tmux-direct} $out/share/terminfo/t
''
);
};
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/${finalAttrs.version}/CHANGES";
license = lib.licenses.bsd3;
platforms = lib.platforms.unix;
mainProgram = "tmux";
maintainers = with lib.maintainers; [
thammers
fpletz
];
};
})

View File

@@ -0,0 +1,51 @@
{
lib,
buildGoModule,
fetchFromGitHub,
nix-update-script,
versionCheckHook,
writableTmpDirAsHomeHook,
}:
buildGoModule (finalAttrs: {
pname = "tmuxai";
version = "1.1.1";
src = fetchFromGitHub {
owner = "alvinunreal";
repo = "tmuxai";
tag = "v${finalAttrs.version}";
hash = "sha256-L3PFyNkvEHfZ2pZFaurFKwHjhdZ+YBXtN2QuKFvktP4=";
};
vendorHash = "sha256-Ev3COZBVCACzCDbdKddJE67qMMzClZB9NHGNHHHaK7E=";
ldflags = [
"-s"
"-X=github.com/alvinunreal/tmuxai/internal.Version=v${finalAttrs.version}"
"-X=github.com/alvinunreal/tmuxai/internal.Commit=${finalAttrs.src.rev}"
"-X=github.com/alvinunreal/tmuxai/internal.Date=1970-01-01T00:00:00Z"
];
nativeInstallCheckInputs = [
versionCheckHook
writableTmpDirAsHomeHook
];
versionCheckKeepEnvironment = [ "HOME" ];
versionCheckProgramArg = "--version";
doInstallCheck = true;
__darwinAllowLocalNetworking = true;
passthru.updateScript = nix-update-script { };
meta = {
description = "AI-Powered, Non-Intrusive Terminal Assistant";
homepage = "https://github.com/alvinunreal/tmuxai";
changelog = "https://github.com/alvinunreal/tmuxai/releases/tag/v${finalAttrs.version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ vinnymeller ];
mainProgram = "tmuxai";
};
})

View File

@@ -0,0 +1,61 @@
{
lib,
stdenv,
fetchFromGitHub,
installShellFiles,
}:
stdenv.mkDerivation rec {
pname = "tmuxifier";
version = "0.13.0";
src = fetchFromGitHub {
owner = "jimeh";
repo = "tmuxifier";
rev = "v${version}";
hash = "sha256-7TvJnvtZEo5h45PcSy3tJN09UblswV0mQbTaKjgLyqw=";
};
nativeBuildInputs = [ installShellFiles ];
dontBuild = true;
installPhase = ''
runHook preInstall
sed -i "s@set -e@TMUXIFIER=$out\nTMUXIFIER_LAYOUT_PATH=\"\''${TMUXIFIER_LAYOUT_PATH:-\$HOME/.tmux-layouts}\"\nset -e@" \
bin/tmuxifier
sed -i "s@\$TMUXIFIER/lib/@\$TMUXIFIER/lib/tmuxifier/@g" \
bin/tmuxifier libexec/* lib/*
sed -i "s@\$TMUXIFIER/templates/@\$TMUXIFIER/share/tmuxifier/templates/@g; s@\$TMUXIFIER/init.@\$TMUXIFIER/share/tmuxifier/init/init.@g" \
libexec/*
sed -i "s@\$TMUXIFIER/completion/tmuxifier.bash@\$TMUXIFIER/share/bash-completion/completions/tmuxifier.bash@g; s@\$TMUXIFIER/completion/tmuxifier.zsh@\$TMUXIFIER/share/zsh/site-functions/_tmuxifier@g" \
init.sh
sed -i "s@\$TMUXIFIER/completion/tmuxifier.tcsh@\$TMUXIFIER/share/tmuxifier/completion/tmuxifier.tcsh@g" \
init.tcsh
sed -i "s@\$TMUXIFIER/completion/tmuxifier.fish@\$TMUXIFIER/share/fish/vendor_completions.d/tmuxifier.fish@g" \
init.fish
install -t $out/bin -Dm555 bin/tmuxifier
install -t $out/share/tmuxifier/init -Dm444 init.fish init.sh init.tcsh
install -t $out/share/tmuxifier/templates -Dm444 templates/*
install -t $out/lib/tmuxifier -Dm444 lib/*
cp -r libexec $out
installShellCompletion --cmd tmuxifier \
--bash completion/tmuxifier.bash \
--fish completion/tmuxifier.fish \
--zsh completion/tmuxifier.zsh
install -t $out/share/tmuxifier/completion -Dm444 completion/tmuxifier.tcsh
runHook postInstall
'';
meta = with lib; {
description = "Powerful session, window & pane management for Tmux";
homepage = "https://github.com/jimeh/tmuxifier";
license = licenses.mit;
mainProgram = "tmuxifier";
maintainers = with maintainers; [ wigust ];
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,65 @@
{
lib,
buildRubyGem,
ruby,
installShellFiles,
}:
# Cannot use bundleEnv because bundleEnv create stub with
# BUNDLE_FROZEN='1' environment variable set, which broke everything
# that rely on Bundler that runs under Tmuxinator.
buildRubyGem rec {
inherit ruby;
name = "${gemName}-${version}";
gemName = "tmuxinator";
version = "3.3.5";
source.sha256 = "sha256-lkP0gCjMCcc8MpOA7aLrQut7jkpaZt9v9GWqh4C/JyE=";
erubi = buildRubyGem rec {
inherit ruby;
name = "ruby${ruby.version}-${gemName}-${version}";
gemName = "erubi";
version = "1.13.0";
source.sha256 = "fca61b47daefd865d0fb50d168634f27ad40181867445badf6427c459c33cd62";
};
thor = buildRubyGem rec {
inherit ruby;
name = "ruby${ruby.version}-${gemName}-${version}";
gemName = "thor";
version = "1.4.0";
source.sha256 = "sha256-h2PoIsyw8de+6IzeExsZplYGZXuEfMe3tLgudyvNij0=";
};
xdg = buildRubyGem rec {
inherit ruby;
name = "ruby${ruby.version}-${gemName}-${version}";
gemName = "xdg";
version = "2.2.5";
source.sha256 = "04xr4cavnzxlk926pkji7b5yiqy4qsd3gdvv8mg6jliq6sczg9gk";
};
propagatedBuildInputs = [
erubi
thor
xdg
];
nativeBuildInputs = [ installShellFiles ];
postInstall = ''
installShellCompletion $GEM_HOME/gems/${gemName}-${version}/completion/tmuxinator.{bash,zsh,fish}
'';
meta = with lib; {
description = "Manage complex tmux sessions easily";
homepage = "https://github.com/tmuxinator/tmuxinator";
license = licenses.mit;
maintainers = with maintainers; [
auntie
];
platforms = platforms.unix;
mainProgram = "tmuxinator";
};
}

View File

@@ -0,0 +1,48 @@
{
lib,
fetchPypi,
installShellFiles,
python3Packages,
}:
python3Packages.buildPythonApplication rec {
pname = "tmuxp";
version = "1.55.0";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-reC609nY1kdmQInAphAfmSTZQQqitTD88EBv/4mU3h0=";
};
build-system = with python3Packages; [
hatchling
shtab
];
nativeBuildInputs = [ installShellFiles ];
dependencies = with python3Packages; [
colorama
libtmux
pyyaml
];
# No tests in archive
doCheck = false;
postInstall = ''
installShellCompletion --cmd tmuxp \
--bash <(shtab --shell=bash -u tmuxp.cli.create_parser) \
--zsh <(shtab --shell=zsh -u tmuxp.cli.create_parser)
'';
meta = {
description = "tmux session manager";
homepage = "https://tmuxp.git-pull.com/";
changelog = "https://github.com/tmux-python/tmuxp/raw/v${version}/CHANGES";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ otavio ];
mainProgram = "tmuxp";
};
}

View File

@@ -0,0 +1,28 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "tmx2lua";
version = "1.0.1";
src = fetchFromGitHub {
owner = "hawkthorne";
repo = "tmx2lua";
tag = "v${version}";
hash = "sha256-vORmsr1hcdPzZYZZJ9GTOJ5B/fT2sp47Kc1dzbgDW9M=";
};
vendorHash = "sha256-Vfr5/lhpb+Qdhi4Z/yCbUUyd5DvI3z8UfUfxx+975iQ=";
meta = {
description = "Convert TMX files to Lua for LÖVE";
homepage = "https://github.com/hawkthorne/tmx2lua";
changelog = "https://github.com/hawkthorne/tmx2lua/releases/tag/v${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ liberodark ];
mainProgram = "tmx2lua";
};
}