separate xontribs into separate packages

This commit is contained in:
cswimr 2024-12-30 11:35:52 -05:00
parent ee038d1979
commit 4677b627d4
Signed by: cswimr
GPG key ID: 0EC431A8DA8F8087
5 changed files with 117 additions and 107 deletions

View file

@ -1,5 +1,46 @@
{ config, pkgs, ... }: { config, pkgs, ... }:
{ {
# enable bash completions
# even though we don't use bash as our shell, xonsh uses bash completion scripts
programs.bash.completion.enable = true;
programs.command-not-found.enable = false;
users.defaultUserShell = pkgs.xonsh;
programs.xonsh =
let
bashcfg = config.programs.bash;
#xontrib-cd = pkgs.callPackage ../packages/xontribs/xontrib-cd.nix { inherit pkgs; };
xontrib-clp = pkgs.callPackage ../packages/xontribs/xontrib-clp.nix { inherit pkgs; };
xontrib-direnv = pkgs.callPackage ../packages/xontribs/xontrib-direnv.nix { inherit pkgs; };
xontrib-sh = pkgs.callPackage ../packages/xontribs/xontrib-sh.nix { inherit pkgs; };
in
{
enable = true;
config = ''
$BASH_COMPLETIONS = ('${bashcfg.completion.package}/etc/profile.d/bash_completion.sh')
$UPDATE_OS_ENVIRON = True
$XONTRIB_CLP_ALIAS = 'shutil'
#xontrib load cd
xontrib load clp
xontrib load direnv
xontrib load sh
source-bash ${pkgs.nix-index}/etc/profile.d/command-not-found.sh
tmpfile = $(mktemp)
gh copilot alias -- bash > @(tmpfile)
source-bash @(tmpfile)
ulimit -n 4096 # This is so that Gauntlet is able to be built
'';
package = pkgs.xonsh.override {
extraPackages = ps: [
pkgs.python311Packages.rich
xontrib-clp
xontrib-direnv
xontrib-sh
];
};
};
#TODO: Submit a PR to nixpkgs to add xonsh support to the Starship module #TODO: Submit a PR to nixpkgs to add xonsh support to the Starship module
# After that, we can remove this import and the disabledModules line # After that, we can remove this import and the disabledModules line
disabledModules = [ "programs/starship.nix" ]; disabledModules = [ "programs/starship.nix" ];
@ -62,111 +103,4 @@
add_newline = false; add_newline = false;
}; };
}; };
# enable bash completions
# even though we don't use bash as our shell, xonsh uses bash completion scripts
programs.bash.completion.enable = true;
programs.command-not-found.enable = false;
users.defaultUserShell = pkgs.xonsh;
programs.xonsh =
let
bashcfg = config.programs.bash;
in
{
enable = true;
config = ''
$BASH_COMPLETIONS = ('${bashcfg.completion.package}/etc/profile.d/bash_completion.sh')
$UPDATE_OS_ENVIRON = True
$XONTRIB_CLP_ALIAS = 'shutil'
#xontrib load cd
xontrib load clp
xontrib load direnv
xontrib load sh
source-bash ${pkgs.nix-index}/etc/profile.d/command-not-found.sh
tmpfile = $(mktemp)
gh copilot alias -- bash > @(tmpfile)
source-bash @(tmpfile)
ulimit -n 4096 # This is so that Gauntlet is able to be built
'';
package = pkgs.xonsh.override {
extraPackages = ps: [
pkgs.python311Packages.rich
# (ps.buildPythonPackage rec {
# name = "xontrib-cd";
# version = "0.3.1";
# src = pkgs.fetchFromGitHub {
# owner = "eugenesvk";
# repo = name;
# rev = version;
# sha256 = "XxSxjyCg7PeX1v3e2KKicvAPmNeq+qVqbW4fXTwAiic=";
# };
# meta = {
# homepage = "https://github.com/eugenesvk/xontrib-cd";
# description =
# "`cd` to any path without escaping in xonsh shell: `cd ~/[te] st`";
# license = pkgs.lib.licenses.mit;
# maintainers = [ "cswimr" ];
# };
# })
(ps.buildPythonPackage rec {
name = "xontrib-clp";
version = "0.1.7";
src = pkgs.fetchFromGitHub {
owner = "anki-code";
repo = name;
rev = version;
sha256 = "1ewWlwG8KY9s6qydErurvP2x+4DIPTFcjSGP1c5y83M=";
};
meta = {
homepage = "https://github.com/anki-code/xontrib-clp";
description = "Copy output to clipboard. Cross-platform.";
license = pkgs.lib.licenses.mit;
maintainers = [ "cswimr" ];
};
})
(ps.buildPythonPackage rec {
name = "xonsh-direnv";
version = "1.6.5";
src = pkgs.fetchFromGitHub {
owner = "74th";
repo = name;
rev = version;
sha256 = "huBJ7WknVCk+WgZaXHlL+Y1sqsn6TYqMP29/fsUPSyU=";
};
meta = {
homepage = "https://github.com/74th/xonsh-direnv";
description = "xonsh extension for using direnv";
license = pkgs.lib.licenses.mit;
maintainers = [ "cswimr" ];
};
})
(ps.buildPythonPackage rec {
name = "xontrib-sh";
version = "0.3.1";
src = pkgs.fetchFromGitHub {
owner = "anki-code";
repo = name;
rev = version;
sha256 = "KL/AxcsvjxqxvjDlf1axitgME3T+iyuW6OFb1foRzN8=";
};
meta = {
homepage = "https://github.com/anki-code/xontrib-sh";
description = "Paste and run commands from bash, zsh, fish, tcsh in xonsh shell.";
license = pkgs.lib.licenses.mit;
maintainers = [ "cswimr" ];
};
})
];
};
};
} }

View file

@ -0,0 +1,19 @@
{ pkgs, ... }:
(pkgs.python3Packages.buildPythonPackage rec {
name = "xontrib-cd";
version = "0.3.1";
src = pkgs.fetchFromGitHub {
owner = "eugenesvk";
repo = name;
rev = version;
sha256 = "XxSxjyCg7PeX1v3e2KKicvAPmNeq+qVqbW4fXTwAiic=";
};
meta = {
homepage = "https://github.com/eugenesvk/xontrib-cd";
description = "`cd` to any path without escaping in xonsh shell: `cd ~/[te] st`";
license = pkgs.lib.licenses.mit;
maintainers = [ "cswimr" ];
};
})

View file

@ -0,0 +1,19 @@
{ pkgs, ... }:
(pkgs.python3Packages.buildPythonPackage rec {
name = "xontrib-clp";
version = "0.1.7";
src = pkgs.fetchFromGitHub {
owner = "anki-code";
repo = name;
rev = version;
sha256 = "1ewWlwG8KY9s6qydErurvP2x+4DIPTFcjSGP1c5y83M=";
};
meta = {
homepage = "https://github.com/anki-code/xontrib-clp";
description = "Copy output to clipboard. Cross-platform.";
license = pkgs.lib.licenses.mit;
maintainers = [ "cswimr" ];
};
})

View file

@ -0,0 +1,19 @@
{ pkgs, ... }:
(pkgs.python3Packages.buildPythonPackage rec {
name = "xonsh-direnv";
version = "1.6.5";
src = pkgs.fetchFromGitHub {
owner = "74th";
repo = name;
rev = version;
sha256 = "huBJ7WknVCk+WgZaXHlL+Y1sqsn6TYqMP29/fsUPSyU=";
};
meta = {
homepage = "https://github.com/74th/xonsh-direnv";
description = "xonsh extension for using direnv";
license = pkgs.lib.licenses.mit;
maintainers = [ "cswimr" ];
};
})

View file

@ -0,0 +1,19 @@
{ pkgs, ... }:
(pkgs.python3Packages.buildPythonPackage rec {
name = "xontrib-sh";
version = "0.3.1";
src = pkgs.fetchFromGitHub {
owner = "anki-code";
repo = name;
rev = version;
sha256 = "KL/AxcsvjxqxvjDlf1axitgME3T+iyuW6OFb1foRzN8=";
};
meta = {
homepage = "https://github.com/anki-code/xontrib-sh";
description = "Paste and run commands from bash, zsh, fish, tcsh in xonsh shell.";
license = pkgs.lib.licenses.mit;
maintainers = [ "cswimr" ];
};
})