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 @@
{
lib,
buildFishPlugin,
fetchFromGitHub,
}:
buildFishPlugin rec {
pname = "async-prompt";
version = "1.2.0";
src = fetchFromGitHub {
owner = "acomagu";
repo = "fish-async-prompt";
rev = "v${version}";
hash = "sha256-B7Ze0a5Zp+5JVsQUOv97mKHh5wiv3ejsDhJMrK7YOx4=";
};
meta = with lib; {
description = "Make your prompt asynchronous to improve the reactivity";
homepage = "https://github.com/acomagu/fish-async-prompt";
license = licenses.mit;
maintainers = with maintainers; [ figsoda ];
};
}

View File

@@ -0,0 +1,28 @@
{
lib,
buildFishPlugin,
fetchFromGitHub,
}:
buildFishPlugin rec {
pname = "autopair";
version = "1.0.4";
src = fetchFromGitHub {
owner = "jorgebucaran";
repo = "autopair.fish";
rev = version;
sha256 = "sha256-s1o188TlwpUQEN3X5MxUlD/2CFCpEkWu83U9O+wg3VU=";
};
meta = with lib; {
description = "Auto-complete matching pairs in the Fish command line";
homepage = "https://github.com/jorgebucaran/autopair.fish";
license = licenses.mit;
maintainers = with maintainers; [
figsoda
kidonng
pyrox0
];
};
}

View File

@@ -0,0 +1,23 @@
{
lib,
buildFishPlugin,
fetchFromGitHub,
}:
buildFishPlugin {
pname = "aws";
version = "0-unstable-2023-08-03";
src = fetchFromGitHub {
owner = "oh-my-fish";
repo = "plugin-aws";
rev = "e53a1de3f826916cb83f6ebd34a7356af8f754d1";
hash = "sha256-l17v/aJ4PkjYM8kJDA0zUo87UTsfFqq+Prei/Qq0DRA=";
};
meta = {
description = "Completions and integrations with the AWS CLI";
homepage = "https://github.com/oh-my-fish/plugin-aws";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ theobori ];
};
}

View File

@@ -0,0 +1,23 @@
{
lib,
buildFishPlugin,
fetchFromGitHub,
}:
buildFishPlugin {
pname = "bang-bang";
version = "0-unstable-2023-07-23";
src = fetchFromGitHub {
owner = "oh-my-fish";
repo = "plugin-bang-bang";
rev = "ec991b80ba7d4dda7a962167b036efc5c2d79419";
hash = "sha256-oPPCtFN2DPuM//c48SXb4TrFRjJtccg0YPXcAo0Lxq0=";
};
meta = {
description = "Bash style history substitution for Oh My Fish";
homepage = "https://github.com/oh-my-fish/plugin-bang-bang";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ theobori ];
};
}

View File

@@ -0,0 +1,35 @@
{
lib,
buildFishPlugin,
fetchFromGitHub,
python3,
}:
buildFishPlugin rec {
pname = "bass";
version = "1.0-unstable-2021-02-18";
src = fetchFromGitHub {
owner = "edc";
repo = pname;
rev = "2fd3d2157d5271ca3575b13daec975ca4c10577a";
sha256 = "0mb01y1d0g8ilsr5m8a71j6xmqlyhf8w4xjf00wkk8k41cz3ypky";
};
#buildFishplugin will only move the .fish files, but bass also relies on python
postInstall = ''
cp functions/__bass.py $out/share/fish/vendor_functions.d/
'';
nativeCheckInputs = [ python3 ];
checkPhase = ''
make test
'';
meta = with lib; {
description = "Fish function making it easy to use utilities written for Bash in Fish shell";
homepage = "https://github.com/edc/bass";
license = licenses.mit;
maintainers = with maintainers; [ beezow ];
};
}

View File

@@ -0,0 +1,23 @@
{
lib,
buildFishPlugin,
fetchFromGitHub,
}:
buildFishPlugin {
pname = "bobthefish";
version = "0-unstable-2024-09-24";
src = fetchFromGitHub {
owner = "oh-my-fish";
repo = "theme-bobthefish";
rev = "e3b4d4eafc23516e35f162686f08a42edf844e40";
sha256 = "sha256-cXOYvdn74H4rkMWSC7G6bT4wa9d3/3vRnKed2ixRnuA=";
};
meta = with lib; {
description = "Powerline-style, Git-aware fish theme optimized for awesome";
homepage = "https://github.com/oh-my-fish/theme-bobthefish";
license = licenses.mit;
maintainers = with maintainers; [ Scrumplex ];
};
}

View File

@@ -0,0 +1,23 @@
{
lib,
buildFishPlugin,
fetchFromGitHub,
}:
buildFishPlugin {
pname = "bobthefisher";
version = "0-unstable-2023-10-25";
src = fetchFromGitHub {
owner = "Scrumplex";
repo = "bobthefisher";
rev = "f4179a14b087c7fbfc2e892da429adad40a39e44";
sha256 = "sha256-l1DHSZa40BX2/4GCjm5E53UOeFEnMioWbZtCW14WX6k=";
};
meta = with lib; {
description = "Powerline-style, Git-aware fish theme optimized for awesome (fork of bobthefish)";
homepage = "https://github.com/Scrumplex/bobthefisher";
license = licenses.mit;
maintainers = with maintainers; [ Scrumplex ];
};
}

View File

@@ -0,0 +1,86 @@
{
stdenv,
lib,
writeScript,
wrapFish,
}:
attrs@{
pname,
version,
src,
name ? "fishplugin-${pname}-${version}",
unpackPhase ? "",
configurePhase ? ":",
buildPhase ? ":",
preInstall ? "",
postInstall ? "",
nativeCheckInputs ? [ ],
# plugin packages to add to the vendor paths of the test fish shell
checkPlugins ? [ ],
# vendor directories to add to the function path of the test fish shell
checkFunctionDirs ? [ ],
# test script to be executed in a fish shell
checkPhase ? "",
doCheck ? checkPhase != "",
...
}:
let
# Do not pass attributes that are only relevant to buildFishPlugin to mkDerivation.
drvAttrs = removeAttrs attrs [
"checkPlugins"
"checkFunctionDirs"
];
in
stdenv.mkDerivation (
drvAttrs
// {
inherit name;
inherit unpackPhase configurePhase buildPhase;
inherit preInstall postInstall;
installPhase = ''
runHook preInstall
(
install_vendor_files() {
source="$1"
target="$out/share/fish/vendor_$2.d"
# Check if any .fish file exists in $source
[ -n "$(shopt -s nullglob; echo $source/*.fish)" ] || return 0
mkdir -p $target
cp $source/*.fish "$target/"
}
install_vendor_files completions completions
install_vendor_files functions functions
install_vendor_files conf conf
install_vendor_files conf.d conf
)
runHook postInstall
'';
inherit doCheck;
nativeCheckInputs = [
(wrapFish {
pluginPkgs = checkPlugins;
functionDirs = checkFunctionDirs;
})
]
++ nativeCheckInputs;
checkPhase = ''
export HOME=$(mktemp -d) # fish wants a writable home
fish "${writeScript "${name}-test" checkPhase}"
'';
}
)

View File

@@ -0,0 +1,24 @@
{
lib,
buildFishPlugin,
fetchFromGitHub,
}:
buildFishPlugin {
pname = "clownfish";
version = "0-unstable-2021-01-17";
src = fetchFromGitHub {
owner = "IlanCosman";
repo = "clownfish";
rev = "a0db28d8280d05561b8f48c0465480725feeca4c";
sha256 = "04xvikyrdm6yxh588vbpwvm04fas76pa7sigsaqrip7yh021xxab";
};
meta = with lib; {
description = "Fish function to mock the behaviour of commands";
homepage = "https://github.com/IlanCosman/clownfish";
license = licenses.mit;
maintainers = with maintainers; [ euxane ];
};
}

View File

@@ -0,0 +1,24 @@
{
lib,
buildFishPlugin,
fetchFromGitHub,
}:
buildFishPlugin {
pname = "colored-man-pages";
version = "0-unstable-2022-04-30";
src = fetchFromGitHub {
owner = "patrickf1";
repo = "colored_man_pages.fish";
rev = "f885c2507128b70d6c41b043070a8f399988bc7a";
sha256 = "0ifqdbaw09hd1ai0ykhxl8735fcsm0x2fwfzsk7my2z52ds60bwa";
};
meta = with lib; {
description = "Fish shell plugin to colorize man pages";
homepage = "https://github.com/PatrickF1/colored_man_pages.fish";
license = licenses.mit;
maintainers = [ maintainers.jocelynthode ];
};
}

View File

@@ -0,0 +1,99 @@
{
lib,
newScope,
config,
}:
lib.makeScope newScope (
self:
with self;
{
async-prompt = callPackage ./async-prompt.nix { };
autopair = callPackage ./autopair.nix { };
aws = callPackage ./aws.nix { };
bang-bang = callPackage ./bang-bang.nix { };
bobthefish = callPackage ./bobthefish.nix { };
bobthefisher = callPackage ./bobthefisher.nix { };
buildFishPlugin = callPackage ./build-fish-plugin.nix { };
colored-man-pages = callPackage ./colored-man-pages.nix { };
clownfish = callPackage ./clownfish.nix { };
bass = callPackage ./bass.nix { };
done = callPackage ./done.nix { };
exercism-cli-fish-wrapper = callPackage ./exercism-cli-fish-wrapper.nix { };
fifc = callPackage ./fifc.nix { };
fishbang = callPackage ./fishbang.nix { };
fish-bd = callPackage ./fish-bd.nix { };
# Fishtape 2.x and 3.x aren't compatible,
# but both versions are used in the tests of different other plugins.
fishtape = callPackage ./fishtape.nix { };
fishtape_3 = callPackage ./fishtape_3.nix { };
fish-you-should-use = callPackage ./fish-you-should-use.nix { };
foreign-env = callPackage ./foreign-env { };
forgit = callPackage ./forgit.nix { };
fzf = callPackage ./fzf.nix { };
fzf-fish = callPackage ./fzf-fish.nix { };
github-copilot-cli-fish = callPackage ./github-copilot-cli-fish.nix { };
git-abbr = callPackage ./git-abbr.nix { };
grc = callPackage ./grc.nix { };
gruvbox = callPackage ./gruvbox.nix { };
humantime-fish = callPackage ./humantime-fish.nix { };
hydro = callPackage ./hydro.nix { };
macos = callPackage ./macos.nix { };
nvm = callPackage ./nvm.nix { };
pisces = callPackage ./pisces.nix { };
plugin-git = callPackage ./plugin-git.nix { };
plugin-sudope = callPackage ./plugin-sudope.nix { };
puffer = callPackage ./puffer.nix { };
pure = callPackage ./pure.nix { };
sdkman-for-fish = callPackage ./sdkman-for-fish.nix { };
spark = callPackage ./spark.nix { };
sponge = callPackage ./sponge.nix { };
tide = callPackage ./tide.nix { };
transient-fish = callPackage ./transient-fish.nix { };
wakatime-fish = callPackage ./wakatime-fish.nix { };
z = callPackage ./z.nix { };
}
// lib.optionalAttrs config.allowAliases {
autopair-fish = self.autopair; # Added 2023-03-10
}
)

View File

@@ -0,0 +1,30 @@
{
lib,
buildFishPlugin,
fetchFromGitHub,
fishtape,
}:
buildFishPlugin rec {
pname = "done";
version = "1.20.0";
src = fetchFromGitHub {
owner = "franciscolourenco";
repo = "done";
rev = version;
hash = "sha256-WA6DBrPBuXRIloO05UBunTJ9N01d6tO1K1uqojjO0mo=";
};
checkPlugins = [ fishtape ];
checkPhase = ''
fishtape test/done.fish
'';
meta = with lib; {
description = "Automatically receive notifications when long processes finish";
homepage = "https://github.com/franciscolourenco/done";
license = licenses.mit;
maintainers = [ maintainers.malo ];
};
}

View File

@@ -0,0 +1,26 @@
{
lib,
buildFishPlugin,
fetchFromGitHub,
unstableGitUpdater,
}:
buildFishPlugin {
pname = "exercism-cli-fish-wrapper";
version = "0-unstable-2025-09-28";
src = fetchFromGitHub {
owner = "glennj";
repo = "exercism-cli-fish-wrapper";
rev = "f6627c00324b2599239e3835af39adce04e1091c";
hash = "sha256-bS1NN6oWi5j9uPwhuMApDRZlVYwOwlIC9NcdBZ9noL8=";
};
passthru.updateScript = unstableGitUpdater { };
meta = {
description = "Fish wrapper for the Exercism CLI";
homepage = "https://github.com/glennj/exercism-cli-fish-wrapper";
license = lib.licenses.unfree; # No upstream license
maintainers = with lib.maintainers; [ anomalocaris ];
};
}

View File

@@ -0,0 +1,23 @@
{
lib,
buildFishPlugin,
fetchFromGitHub,
}:
buildFishPlugin rec {
pname = "fifc";
version = "0.1.1";
src = fetchFromGitHub {
owner = "gazorby";
repo = "fifc";
rev = "v${version}";
hash = "sha256-p5E4Mx6j8hcM1bDbeftikyhfHxQ+qPDanuM1wNqGm6E=";
};
meta = with lib; {
description = "Fzf powers on top of fish completion engine and allows customizable completion rules";
homepage = "https://github.com/gazorby/fifc";
license = licenses.mit;
maintainers = with maintainers; [ hmajid2301 ];
};
}

View File

@@ -0,0 +1,26 @@
{
lib,
buildFishPlugin,
fetchFromGitHub,
gitUpdater,
}:
buildFishPlugin rec {
pname = "fish-bd";
version = "1.3.3";
src = fetchFromGitHub {
owner = "0rax";
repo = "fish-bd";
rev = "v${version}";
hash = "sha256-GeWjoakXa0t2TsMC/wpLEmsSVGhHFhBVK3v9eyQdzv0=";
};
passthru.updateScript = gitUpdater { rev-prefix = "v"; };
meta = {
description = "Fish plugin to quickly go back to a parent directory up in your current working directory tree";
homepage = "https://github.com/0rax/fish-bd";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ anomalocaris ];
};
}

View File

@@ -0,0 +1,26 @@
{
lib,
buildFishPlugin,
fetchFromGitHub,
unstableGitUpdater,
}:
buildFishPlugin {
pname = "fish-you-should-use";
version = "0-unstable-2022-02-13";
src = fetchFromGitHub {
owner = "paysonwallach";
repo = "fish-you-should-use";
rev = "a332823512c0b51e71516ebb8341db0528c87926";
hash = "sha256-MmGDFTgxEFgHdX95OjH3jKsVG1hdwo6bRht+Lvvqe5Y=";
};
passthru.updateScript = unstableGitUpdater { };
meta = {
description = "Fish plugin that reminds you to use your aliases";
homepage = "https://github.com/paysonwallach/fish-you-should-use";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ anomalocaris ];
};
}

View File

@@ -0,0 +1,24 @@
{
lib,
buildFishPlugin,
fetchFromGitHub,
}:
buildFishPlugin {
pname = "fishbang";
version = "0-unstable-2025-01-10";
src = fetchFromGitHub {
owner = "BrewingWeasel";
repo = "fishbang";
rev = "f8d2721ac5508dbda54a666ebf12f1492c478277";
hash = "sha256-VHtjt3Xobvs0DTXJ1mFU8i84EEsNQv3yqbhjs7c1mNE=";
};
meta = {
description = "Bash bang commands for fish";
homepage = "https://github.com/BrewingWeasel/fishbang";
license = lib.licenses.bsd3;
maintainers = [ lib.maintainers.marcel ];
};
}

View File

@@ -0,0 +1,36 @@
{
lib,
buildFishPlugin,
fetchFromGitHub,
}:
buildFishPlugin rec {
pname = "fishtape";
version = "2.1.3";
src = fetchFromGitHub {
owner = "jorgebucaran";
repo = "fishtape";
rev = version;
sha256 = "0dxcyhs2shhgy5xnwcimqja8vqsyk841x486lgq13i3y1h0kp2kd";
};
checkFunctionDirs = [ "./" ]; # fishtape is introspective
checkPhase = ''
rm test/tty.fish # test expects a tty
fishtape test/*.fish
'';
preInstall = ''
# move the function script in the proper sub-directory
mkdir functions
mv fishtape.fish functions/
'';
meta = {
description = "TAP-based test runner for Fish";
homepage = "https://github.com/jorgebucaran/fishtape";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ euxane ];
};
}

View File

@@ -0,0 +1,29 @@
{
lib,
buildFishPlugin,
fetchFromGitHub,
}:
buildFishPlugin rec {
pname = "fishtape";
version = "3.0.1";
src = fetchFromGitHub {
owner = "jorgebucaran";
repo = "fishtape";
rev = version;
sha256 = "072a3qbk1lpxw53bxp91drsffylx8fbywhss3x0jbnayn9m8i7aa";
};
checkFunctionDirs = [ "./functions" ]; # fishtape is introspective
checkPhase = ''
fishtape tests/*.fish
'';
meta = with lib; {
description = "100% pure-Fish test runner";
homepage = "https://github.com/jorgebucaran/fishtape";
license = licenses.mit;
maintainers = with maintainers; [ euxane ];
};
}

View File

@@ -0,0 +1,36 @@
{
lib,
buildFishPlugin,
fetchFromGitHub,
gnused,
bash,
coreutils,
}:
buildFishPlugin {
pname = "foreign-env";
version = "0-unstable-2020-02-09";
src = fetchFromGitHub {
owner = "oh-my-fish";
repo = "plugin-foreign-env";
rev = "dddd9213272a0ab848d474d0cbde12ad034e65bc";
sha256 = "00xqlyl3lffc5l0viin1nyp819wf81fncqyz87jx8ljjdhilmgbs";
};
patches = [ ./suppress-harmless-warnings.patch ];
preInstall = ''
sed -e "s|sed|${gnused}/bin/sed|" \
-e "s|bash|${bash}/bin/bash|" \
-e "s|\| tr|\| ${coreutils}/bin/tr|" \
-i functions/*
'';
meta = with lib; {
description = "Foreign environment interface for Fish shell";
license = licenses.mit;
maintainers = with maintainers; [ jgillich ];
platforms = with platforms; unix;
};
}

View File

@@ -0,0 +1,23 @@
diff --git a/functions/fenv.apply.fish b/functions/fenv.apply.fish
index 34a25e3..3d94135 100644
--- a/functions/fenv.apply.fish
+++ b/functions/fenv.apply.fish
@@ -27,11 +27,17 @@ function fenv.apply
for variable in $variables
set key (echo $variable | sed 's/=.*//')
set value (echo $variable | sed 's/[^=]*=//')
+ set ignore PATH _
if test "$key" = 'PATH'
set value (echo $value | tr ':' '\n')
end
- set -g -x $key $value
+ if contains $key $ignore
+ set -g -x $key $value 2>/dev/null
+ else
+ set -g -x $key $value
+ end
+
end
end

View File

@@ -0,0 +1,28 @@
{
lib,
buildFishPlugin,
fetchFromGitHub,
}:
buildFishPlugin rec {
pname = "forgit";
version = "25.10.0";
src = fetchFromGitHub {
owner = "wfxr";
repo = "forgit";
rev = version;
hash = "sha256-MG60GzRG0NFQsGXBXBedSweucxo88S/NACXTme7ixRM=";
};
postInstall = ''
cp -r bin $out/share/fish/vendor_conf.d/
'';
meta = with lib; {
description = "Utility tool powered by fzf for using git interactively";
homepage = "https://github.com/wfxr/forgit";
license = licenses.mit;
maintainers = with maintainers; [ happysalada ];
};
}

View File

@@ -0,0 +1,71 @@
{
lib,
stdenv,
pkgs,
buildFishPlugin,
fetchFromGitHub,
fd,
unixtools,
procps,
clownfish,
fishtape_3,
}:
let
# we want `pkgs.fzf`, not `fishPlugins.fzf`
inherit (pkgs) fzf;
in
buildFishPlugin rec {
pname = "fzf.fish";
version = "10.3";
src = fetchFromGitHub {
owner = "PatrickF1";
repo = "fzf.fish";
rev = "v${version}";
hash = "sha256-T8KYLA/r/gOKvAivKRoeqIwE2pINlxFQtZJHpOy9GMM=";
};
nativeCheckInputs = [
fzf
fd
unixtools.script
procps
];
checkPlugins = [
clownfish
fishtape_3
];
checkFunctionDirs = [ "./functions" ];
checkPhase = ''
# Disable git tests which inspect the project's git repo, which isn't
# possible since we strip the impure .git from our build input
rm -r tests/*git*
rm -r tests/preview_changed_file/modified_path_with_spaces.fish
rm -r tests/preview_changed_file/renamed_path_modifications.fish
# Disable tests that are failing, probably because of our wrappers
rm -r tests/configure_bindings
rm -r tests/search_variables
# Disable tests that are failing, because there is not 'rev' command
rm tests/preview_file/custom_file_preview.fish
''
+ (
if stdenv.hostPlatform.isDarwin then
''script /dev/null fish -c "fishtape tests/*/*.fish"''
else
''script -c 'fish -c "fishtape tests/*/*.fish"' ''
);
meta = with lib; {
description = "Augment your fish command line with fzf key bindings";
homepage = "https://github.com/PatrickF1/fzf.fish";
changelog = "https://github.com/PatrickF1/fzf.fish/releases/tag/${src.rev}";
license = licenses.mit;
maintainers = with maintainers; [
euxane
natsukium
];
broken = stdenv.hostPlatform.isDarwin;
};
}

View File

@@ -0,0 +1,23 @@
{
lib,
buildFishPlugin,
fetchFromGitHub,
}:
buildFishPlugin rec {
pname = "fzf";
version = "0.16.6-unstable-2021-05-12";
src = fetchFromGitHub {
owner = "jethrokuan";
repo = pname;
rev = "479fa67d7439b23095e01b64987ae79a91a4e283";
sha256 = "sha256-28QW/WTLckR4lEfHv6dSotwkAKpNJFCShxmKFGQQ1Ew=";
};
meta = with lib; {
description = "Ef-fish-ient fish keybindings for fzf";
homepage = "https://github.com/jethrokuan/fzf";
license = licenses.mit;
maintainers = with maintainers; [ Scrumplex ];
};
}

View File

@@ -0,0 +1,23 @@
{
lib,
buildFishPlugin,
fetchFromGitHub,
}:
buildFishPlugin {
pname = "fish-git-abbr";
version = "0.2.1-unstable-2023-06-19";
src = fetchFromGitHub {
owner = "lewisacidic";
repo = "fish-git-abbr";
rev = "dc590a5b9d9d2095f95f7d90608b48e55bea0b0e";
hash = "sha256-6z3Wr2t8CP85xVEp6UCYaM2KC9PX4MDyx19f/wjHkb0=";
};
meta = with lib; {
description = "Abbreviations for git for the fish shell 🐟";
homepage = "https://github.com/lewisacidic/fish-git-abbr";
license = licenses.mit;
maintainers = with maintainers; [ hmajid2301 ];
};
}

View File

@@ -0,0 +1,24 @@
{
lib,
buildFishPlugin,
fetchFromGitHub,
}:
buildFishPlugin rec {
pname = "github-copilot-cli.fish";
version = "0.1.33.1";
src = fetchFromGitHub {
owner = "z11i";
repo = pname;
rev = version;
hash = "sha256-CFXbeO0euC/UtvQV0KCz4WQfdJgsuXKPM6M9oaw7hvg=";
};
meta = with lib; {
description = "GitHub Copilot CLI aliases for Fish Shell";
homepage = "https://github.com/z11i/github-copilot-cli.fish";
license = licenses.asl20;
maintainers = [ maintainers.malo ];
};
}

View File

@@ -0,0 +1,28 @@
{
lib,
buildFishPlugin,
fetchFromGitHub,
}:
buildFishPlugin {
pname = "grc";
version = "0-unstable-2022-05-24";
src = fetchFromGitHub {
owner = "oh-my-fish";
repo = "plugin-grc";
rev = "61de7a8a0d7bda3234f8703d6e07c671992eb079";
sha256 = "sha256-NQa12L0zlEz2EJjMDhWUhw5cz/zcFokjuCK5ZofTn+Q=";
};
postInstall = ''
cp conf.d/executables $out/share/fish/vendor_conf.d/
'';
meta = with lib; {
description = "Grc Colourizer for some commands on Fish shell";
license = licenses.mit;
maintainers = with maintainers; [ onny ];
platforms = with platforms; unix;
};
}

View File

@@ -0,0 +1,21 @@
{
lib,
buildFishPlugin,
fetchFromGitHub,
}:
buildFishPlugin {
pname = "gruvbox";
version = "0-unstable-2021-10-12";
src = fetchFromGitHub {
owner = "jomik";
repo = "fish-gruvbox";
rev = "80a6f3a7b31beb6f087b0c56cbf3470204759d1c";
hash = "sha256-vL2/Nm9Z9cdaptx8sJqbX5AnRtfd68x4ZKWdQk5Cngo=";
};
meta = {
description = "Gruvbox theme for fish shell";
homepage = "https://github.com/Jomik/fish-gruvbox";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ msladecek ];
};
}

View File

@@ -0,0 +1,29 @@
{
lib,
buildFishPlugin,
fetchFromGitHub,
fishtape,
}:
buildFishPlugin {
pname = "humantime-fish";
version = "1.0.0-unstable-2022-04-08";
src = fetchFromGitHub {
owner = "jorgebucaran";
repo = "humantime.fish";
rev = "53b2adb4c6aff0da569c931a3cc006efcd0e7219";
sha256 = "sha256-792rPsf2WDIYcP8gn6TbHh9RZvskfOAL/oKfpilaLh0=";
};
checkPlugins = [ fishtape ];
checkPhase = ''
fishtape tests/humantime.fish
'';
meta = with lib; {
description = "Turn milliseconds into a human-readable string in Fish";
homepage = "https://github.com/jorgebucaran/humantime.fish";
license = licenses.mit;
maintainers = with maintainers; [ Scrumplex ];
};
}

View File

@@ -0,0 +1,24 @@
{
lib,
buildFishPlugin,
fetchFromGitHub,
}:
buildFishPlugin {
pname = "hydro";
version = "0-unstable-2024-11-02";
src = fetchFromGitHub {
owner = "jorgebucaran";
repo = "hydro";
rev = "9c93b89573bd722f766f2190a862ae55e728f6ba";
hash = "sha256-QYq4sU41/iKvDUczWLYRGqDQpVASF/+6brJJ8IxypjE=";
};
meta = with lib; {
description = "Ultra-pure, lag-free prompt with async Git status";
homepage = "https://github.com/jorgebucaran/hydro";
license = licenses.mit;
maintainers = with maintainers; [ pyrox0 ];
};
}

View File

@@ -0,0 +1,28 @@
{
lib,
buildFishPlugin,
fetchFromGitHub,
nix-update-script,
}:
buildFishPlugin rec {
pname = "macos";
version = "7.2.0";
src = fetchFromGitHub {
owner = "halostatue";
repo = "fish-macos";
tag = "v${version}";
hash = "sha256-yTwN2ztdU+vk+AXEfsJUN7J4KqrbLSWHgA0q5rUT5CE=";
};
passthru.updateScript = nix-update-script { };
meta = {
description = "MacOS functions for Fish";
homepage = "https://github.com/halostatue/fish-macos";
changelog = "https://github.com/halostatue/fish-macos/blob/v${version}/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.samasaur ];
};
}

View File

@@ -0,0 +1,24 @@
{
buildFishPlugin,
fetchFromGitHub,
lib,
}:
buildFishPlugin rec {
pname = "nvm";
version = "2.2.17";
src = fetchFromGitHub {
owner = "jorgebucaran";
repo = "nvm.fish";
tag = version;
hash = "sha256-BNnoP9gLQuZQt/0SOOsZaYOexNN2K7PKWT/paS0BJJY=";
};
meta = {
description = "Node.js version manager you'll adore, crafted just for Fish";
homepage = "https://github.com/jorgebucaran/nvm.fish";
changelog = "https://github.com/jorgebucaran/nvm.fish/releases/tag/${version}/CHANGELOG.md";
downloadPage = "https://github.com/jorgebucaran/nvm.fish/releases";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ pta2002 ];
};
}

View File

@@ -0,0 +1,24 @@
{
lib,
buildFishPlugin,
fetchFromGitHub,
}:
buildFishPlugin rec {
pname = "pisces";
version = "0.7.0";
src = fetchFromGitHub {
owner = "laughedelic";
repo = pname;
rev = "v${version}";
sha256 = "sha256-Oou2IeNNAqR00ZT3bss/DbhrJjGeMsn9dBBYhgdafBw=";
};
meta = with lib; {
description = "Paired symbols in the command line";
homepage = "https://github.com/laughedelic/pisces";
license = licenses.lgpl3;
maintainers = with maintainers; [ vanilla ];
};
}

View File

@@ -0,0 +1,28 @@
{
lib,
buildFishPlugin,
fetchFromGitHub,
}:
buildFishPlugin rec {
pname = "plugin-git";
version = "0.3";
src = fetchFromGitHub {
owner = "jhillyerd";
repo = "plugin-git";
rev = "refs/tags/v${version}";
hash = "sha256-p7vvwisu3mvVOE1DcALbzuGJqWBcE1h71UjaopGdxE0=";
};
meta = {
description = "Git plugin for fish (similar to oh-my-zsh git)";
homepage = "https://github.com/jhillyerd/plugin-git";
changelog = "https://github.com/jhillyerd/plugin-git/releases/tag/v${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
GaetanLepage
unsolvedcypher
];
};
}

View File

@@ -0,0 +1,26 @@
{
lib,
buildFishPlugin,
fetchFromGitHub,
unstableGitUpdater,
}:
buildFishPlugin {
pname = "plugin-sudope";
version = "0-unstable-2025-09-16";
src = fetchFromGitHub {
owner = "oh-my-fish";
repo = "plugin-sudope";
rev = "4ad91e49329811939c3a09221a95e620c3964b17";
hash = "sha256-OsgThGY/tGF/XBQFyXTY9qYf50B01wEH93lqWEAxZPY=";
};
passthru.updateScript = unstableGitUpdater { };
meta = {
description = "Fish plugin to quickly put 'sudo' in your command";
homepage = "https://github.com/oh-my-fish/plugin-sudope";
license = lib.licenses.isc;
maintainers = with lib.maintainers; [ anomalocaris ];
};
}

View File

@@ -0,0 +1,24 @@
{
lib,
buildFishPlugin,
fetchFromGitHub,
}:
buildFishPlugin rec {
pname = "puffer";
version = "1.0.0";
src = fetchFromGitHub {
owner = "nickeb96";
repo = "puffer-fish";
rev = "v${version}";
hash = "sha256-2niYj0NLfmVIQguuGTA7RrPIcorJEPkxhH6Dhcy+6Bk=";
};
meta = {
description = "Text Expansions for Fish";
homepage = "https://github.com/nickeb96/puffer-fish";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ quantenzitrone ];
};
}

View File

@@ -0,0 +1,35 @@
{
lib,
buildFishPlugin,
fetchFromGitHub,
git,
fishtape_3,
}:
buildFishPlugin rec {
pname = "pure";
version = "4.11.3";
src = fetchFromGitHub {
owner = "pure-fish";
repo = "pure";
rev = "v${version}";
hash = "sha256-mMUFR/n4aLsmZNbVAYmx57AMXT6U2P+wTuuN3opCeqs=";
};
nativeCheckInputs = [ git ];
checkPlugins = [ fishtape_3 ];
checkPhase = ''
rm tests/pure_tools_installer.test.fish
rm tests/_pure_uninstall.test.fish
fishtape tests/*.test.fish
'';
meta = {
description = "Pretty, minimal and fast Fish prompt, ported from zsh";
homepage = "https://github.com/pure-fish/pure";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ euxane ];
};
}

View File

@@ -0,0 +1,24 @@
{
lib,
buildFishPlugin,
fetchFromGitHub,
}:
buildFishPlugin rec {
pname = "sdkman-for-fish";
version = "2.1.0";
src = fetchFromGitHub {
owner = "reitzig";
repo = "sdkman-for-fish";
rev = "v${version}";
hash = "sha256-7cgyR3hQ30Jv+9lJS5qaBvSaI/0YVT8xPXlUhDBTdFc=";
};
meta = with lib; {
description = "Adds support for SDKMAN! to fish";
homepage = "https://github.com/reitzig/sdkman-for-fish";
license = licenses.mit;
maintainers = with maintainers; [ giorgiga ];
};
}

View File

@@ -0,0 +1,26 @@
{
lib,
buildFishPlugin,
fetchFromGitHub,
}:
let
self = buildFishPlugin {
pname = "spark";
version = "1.2.0";
src = fetchFromGitHub {
owner = "jorgebucaran";
repo = "spark.fish";
rev = "refs/tags/${self.version}";
hash = "sha256-AIFj7lz+QnqXGMBCfLucVwoBR3dcT0sLNPrQxA5qTuU=";
};
meta = {
description = "Sparklines for Fish";
homepage = "https://github.com/jorgebucaran/spark.fish";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ theobori ];
};
};
in
self

View File

@@ -0,0 +1,24 @@
{
lib,
buildFishPlugin,
fetchFromGitHub,
}:
buildFishPlugin rec {
pname = "sponge";
version = "1.1.0";
src = fetchFromGitHub {
owner = "meaningful-ooo";
repo = pname;
rev = version;
sha256 = "sha256-MdcZUDRtNJdiyo2l9o5ma7nAX84xEJbGFhAVhK+Zm1w=";
};
meta = with lib; {
description = "Keeps your fish shell history clean from typos, incorrectly used commands and everything you don't want to store due to privacy reasons";
homepage = "https://github.com/meaningful-ooo/sponge";
license = licenses.mit;
maintainers = with maintainers; [ quantenzitrone ];
};
}

View File

@@ -0,0 +1,31 @@
{
lib,
buildFishPlugin,
fetchFromGitHub,
}:
# Due to a quirk in tide breaking wrapFish, we need to add additional commands in the config.fish
# Refer to the following comment to get you setup: https://github.com/NixOS/nixpkgs/pull/201646#issuecomment-1320893716
buildFishPlugin rec {
pname = "tide";
version = "6.2.0";
src = fetchFromGitHub {
owner = "IlanCosman";
repo = "tide";
rev = "v${version}";
hash = "sha256-1ApDjBUZ1o5UyfQijv9a3uQJ/ZuQFfpNmHiDWzoHyuw=";
};
#buildFishplugin will only move the .fish files, but tide has a tide configure function
postInstall = ''
cp -R functions/tide $out/share/fish/vendor_functions.d/
'';
meta = with lib; {
description = "Ultimate Fish prompt";
homepage = "https://github.com/IlanCosman/tide";
license = licenses.mit;
maintainers = [ maintainers.jocelynthode ];
};
}

View File

@@ -0,0 +1,23 @@
{
lib,
buildFishPlugin,
fetchFromGitHub,
}:
buildFishPlugin {
pname = "transient-fish";
version = "0-unstable-2024-03-10";
src = fetchFromGitHub {
owner = "zzhaolei";
repo = "transient.fish";
rev = "be0093f1799462a93953e69896496dee4d063fd6";
hash = "sha256-rEkCimnkxcydKRI2y4DxEM7FD7F2/cGTZJN2Edq/Acc=";
};
meta = with lib; {
description = "Fish plugin to enable a transient prompt";
homepage = "https://github.com/zzhaolei/transient.fish";
license = licenses.mit;
maintainers = with maintainers; [ iynaix ];
};
}

View File

@@ -0,0 +1,31 @@
{
lib,
wakatime-cli,
buildFishPlugin,
fetchFromGitHub,
}:
buildFishPlugin rec {
pname = "wakatime-fish";
version = "0.0.6";
src = fetchFromGitHub {
owner = "ik11235";
repo = "wakatime.fish";
rev = "v${version}";
hash = "sha256-Hsr69n4fCvPc64NztgaBZQuR0znkzlL8Uotw9Jf2S1o=";
};
preFixup = ''
substituteInPlace $out/share/fish/vendor_conf.d/wakatime.fish \
--replace-fail "if type -p wakatime" "if type -p ${lib.getExe wakatime-cli}" \
--replace-fail "(type -p wakatime)" "${lib.getExe wakatime-cli}"
'';
meta = with lib; {
description = "Fish plugin for wakatime";
homepage = "https://github.com/ik11235/wakatime.fish";
license = licenses.mit;
maintainers = with maintainers; [ ocfox ];
};
}

View File

@@ -0,0 +1,23 @@
{
lib,
buildFishPlugin,
fetchFromGitHub,
}:
buildFishPlugin rec {
pname = "z";
version = "0-unstable-2022-04-08";
src = fetchFromGitHub {
owner = "jethrokuan";
repo = pname;
rev = "85f863f20f24faf675827fb00f3a4e15c7838d76";
sha256 = "sha256-+FUBM7CodtZrYKqU542fQD+ZDGrd2438trKM0tIESs0=";
};
meta = with lib; {
description = "Pure-fish z directory jumping";
homepage = "https://github.com/jethrokuan/z";
license = licenses.mit;
maintainers = with maintainers; [ Scrumplex ];
};
}