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; networking.networkmanager.enable = true;
time.timeZone = "Europe/London"; time.timeZone = "Europe/London";
i18n.defaultLocale = "nl_NL.UTF-8"; i18n.defaultLocale = "de_DE.UTF-8";
system.stateVersion = "24.11"; system.stateVersion = "24.11";
}; };
} }

View file

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

View file

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