From 41992c65e70cd21680084f29616665a3c1a83c3f Mon Sep 17 00:00:00 2001 From: Artur Manuel Date: Sat, 18 Jan 2025 22:53:36 +0000 Subject: [PATCH] refactor(xonsh): make a better xonsh wrapper --- hosts/python/default.nix | 2 +- overlays/default.nix | 49 +++--- .../derivations/xonsh/cfg/{ => xonsh}/rc.xsh | 0 overlays/derivations/xonsh/default.nix | 139 ++++++++++-------- 4 files changed, 103 insertions(+), 87 deletions(-) rename overlays/derivations/xonsh/cfg/{ => xonsh}/rc.xsh (100%) diff --git a/hosts/python/default.nix b/hosts/python/default.nix index 5ed1e6a..80f3b93 100644 --- a/hosts/python/default.nix +++ b/hosts/python/default.nix @@ -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"; }; } diff --git a/overlays/default.nix b/overlays/default.nix index 14ef179..9da914c 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -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; }; diff --git a/overlays/derivations/xonsh/cfg/rc.xsh b/overlays/derivations/xonsh/cfg/xonsh/rc.xsh similarity index 100% rename from overlays/derivations/xonsh/cfg/rc.xsh rename to overlays/derivations/xonsh/cfg/xonsh/rc.xsh diff --git a/overlays/derivations/xonsh/default.nix b/overlays/derivations/xonsh/default.nix index 4e234a5..5d1b521 100644 --- a/overlays/derivations/xonsh/default.nix +++ b/overlays/derivations/xonsh/default.nix @@ -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";