refactor(xonsh): make a better xonsh wrapper

This commit is contained in:
Artur Manuel 2025-01-18 22:53:36 +00:00
commit 41992c65e7
4 changed files with 103 additions and 87 deletions

View file

@ -43,7 +43,7 @@
networking.networkmanager.enable = true;
time.timeZone = "Europe/London";
i18n.defaultLocale = "nl_NL.UTF-8";
i18n.defaultLocale = "de_DE.UTF-8";
system.stateVersion = "24.11";
};
}

View file

@ -1,28 +1,31 @@
{self, ...}: {
flake.overlays.default = _final: prev: {
fairfax = prev.callPackage ./derivations/fairfax.nix {};
river-bedload = prev.callPackage ./derivations/river-bedload {};
nicotine-plus = prev.symlinkJoin {
name = "nicotine";
paths = [prev.nicotine-plus];
nativeBuildInputs = [prev.makeWrapper];
postBuild = ''
wrapProgram $out/bin/nicotine \
--set-default NICOTINE_LIBADWAITA 1
'';
};
rose-pine-gtk-theme = prev.rose-pine-gtk-theme.overrideAttrs (_prevAttrs: {
version = "master";
src = prev.fetchFromGitHub {
owner = "rose-pine";
repo = "gtk";
rev = "master";
hash = "sha256-vCWs+TOVURl18EdbJr5QAHfB+JX9lYJ3TPO6IklKeFE=";
flake.overlays.default = _final: prev: let
packages = {
amadaluzian-starship = prev.callPackage ./derivations/starship.nix {};
amadaluzian-xonsh = prev.callPackage ./derivations/xonsh {inherit (packages) amadaluzian-starship;};
fairfax = prev.callPackage ./derivations/fairfax.nix {};
river-bedload = prev.callPackage ./derivations/river-bedload {};
nicotine-plus = prev.symlinkJoin {
name = "nicotine";
paths = [prev.nicotine-plus];
nativeBuildInputs = [prev.makeWrapper];
postBuild = ''
wrapProgram $out/bin/nicotine \
--set-default NICOTINE_LIBADWAITA 1
'';
};
});
amadaluzian-starship = prev.callPackage ./derivations/starship.nix {};
amadaluzian-xonsh = prev.callPackage ./derivations/xonsh {};
};
rose-pine-gtk-theme = prev.rose-pine-gtk-theme.overrideAttrs (_prevAttrs: {
version = "master";
src = prev.fetchFromGitHub {
owner = "rose-pine";
repo = "gtk";
rev = "master";
hash = "sha256-vCWs+TOVURl18EdbJr5QAHfB+JX9lYJ3TPO6IklKeFE=";
};
});
};
in
packages;
perSystem = {pkgs, ...}: {
packages = self.overlays.default null pkgs;
};

View file

@ -6,69 +6,82 @@
amadaluzian-starship,
zoxide,
}: let
xonsh = python3.withPackages (ps: [
ps.xonsh
(let
pname = "xontrib-fish-completer";
version = "0.0.1";
in
ps.buildPythonPackage {
inherit pname version;
src = fetchFromGitHub {
owner = "xonsh";
repo = pname;
rev = version;
hash = "sha256-PhhdZ3iLPDEIG9uDeR5ctJ9zz2+YORHBhbsiLrJckyA=";
};
})
(let
pname = "xontrib-prompt-starship";
version = "0.3.6";
in
ps.buildPythonPackage {
inherit pname version;
src = fetchFromGitHub {
owner = "anki-code";
repo = pname;
tag = version;
hash = "sha256-CLOvMa3L4XnH53H/k6/1W9URrPakPjbX1T1U43+eSR0=";
};
})
(let
pname = "xontrib-init-ssh-agent";
version = "1.0.1";
in
ps.buildPythonPackage {
inherit pname version;
pyproject = true;
build-system = [
ps.setuptools
ps.wheel
];
dependencies = [
ps.xonsh
];
src = fetchFromGitHub {
owner = "amadaluzia";
repo = pname;
rev = "cac9cfec70ec15b0ed4f1c8a18154ea9b4f8fb47";
hash = "sha256-UkRPdaZFNP8qv7lMwsTUalnre3k2UMfqMzmiTveLiBM=";
};
})
(let
pname = "xonsh-direnv";
version = "1.6.5";
in
ps.buildPythonPackage {
inherit pname version;
src = fetchFromGitHub {
owner = "74th";
repo = pname;
tag = version;
hash = "sha256-huBJ7WknVCk+WgZaXHlL+Y1sqsn6TYqMP29/fsUPSyU=";
};
})
]);
xonsh =
(python3.override {
packageOverrides = pyprev: _pyfinal: {
custom-xonsh = pyprev.xonsh.overrideAttrs (finalAttrs: {
src = fetchFromGitHub {
owner = "amadaluzia";
repo = finalAttrs.pname;
rev = "8d01b29e0e9b4f7d63ec380ceb1e701302c33ee8";
hash = "sha256-jBAJTjH80GJ89u8r/zVWnMNXXi9V9qPw0AVy071a7rg=";
};
});
};
})
.withPackages (ps: [
ps.custom-xonsh
(let
pname = "xontrib-fish-completer";
version = "0.0.1";
in
ps.buildPythonPackage {
inherit pname version;
src = fetchFromGitHub {
owner = "xonsh";
repo = pname;
rev = version;
hash = "sha256-PhhdZ3iLPDEIG9uDeR5ctJ9zz2+YORHBhbsiLrJckyA=";
};
})
(let
pname = "xontrib-prompt-starship";
version = "0.3.6";
in
ps.buildPythonPackage {
inherit pname version;
src = fetchFromGitHub {
owner = "anki-code";
repo = pname;
tag = version;
hash = "sha256-CLOvMa3L4XnH53H/k6/1W9URrPakPjbX1T1U43+eSR0=";
};
})
# (let
# pname = "xontrib-init-ssh-agent";
# version = "1.0.1";
# in
# ps.buildPythonPackage {
# inherit pname version;
# pyproject = true;
# build-system = [
# ps.setuptools
# ps.wheel
# ];
# dependencies = [
# ps.xonsh
# ];
# src = fetchFromGitHub {
# owner = "amadaluzia";
# repo = pname;
# rev = "cac9cfec70ec15b0ed4f1c8a18154ea9b4f8fb47";
# hash = "sha256-UkRPdaZFNP8qv7lMwsTUalnre3k2UMfqMzmiTveLiBM=";
# };
# })
(let
pname = "xonsh-direnv";
version = "1.6.5";
in
ps.buildPythonPackage {
inherit pname version;
src = fetchFromGitHub {
owner = "74th";
repo = pname;
tag = version;
hash = "sha256-huBJ7WknVCk+WgZaXHlL+Y1sqsn6TYqMP29/fsUPSyU=";
};
})
]);
in
symlinkJoin {
name = "xonsh";