diff --git a/lock.nix b/lock.nix index 64f2376..ec4adc3 100644 --- a/lock.nix +++ b/lock.nix @@ -4,19 +4,19 @@ sha256 = "sha256-DlvJv33ml5UTKgu4b0HauOfFIoDx6QXtbqUF3vWeRCY="; }; nixpkgs = { - revision = "55d1f923c480dadce40f5231feb472e81b0bab48"; - sha256 = "sha256-y2ZtlIlNTuVJUZCqzZAhIw5rrKP4DOSklev6c8PyCkQ="; + revision = "36ab78dab7da2e4e27911007033713bab534187b"; + sha256 = "sha256-urV51uWH7fVnhIvsZIELIYalMYsyr2FCalvlRTzqWRw="; }; nixpkgs-unstable = { - revision = "2795c506fe8fb7b03c36ccb51f75b6df0ab2553f"; - sha256 = "sha256-W7lqHp0qZiENCDwUZ5EX/lNhxjMdNapFnbErcbnP11Q="; + revision = "9e83b64f727c88a7711a2c463a7b16eedb69a84c"; + sha256 = "sha256-v263g4GbxXv87hMXMCpjkIxd/viIF7p3JpJrwgKdNiI="; }; nix-bitcoin = { - revision = "e7e6353b3a72205b037be53eda2e71e24e46b45e"; - sha256 = "sha256-Y53kyw7CQUEUiKPVQQzCMB4OIiZtOoFNurJhhM6Xvx4="; + revision = "ac1344fb6d91e2af219803eaaa67d1d974666156"; + sha256 = "sha256-qLwBEXlGY2pLNPhPNpeOE0DNC1luovTYE3ZDPMyMPXc="; }; cosmic-modules = { - revision = "e3bea95daa167bf84a4bf3387ef6f01f081152b6"; - sha256 = "sha256-QhmqgiAGqR7VYxyNsdpR2qfejRnviyf7ElZ8v8MtwwY="; + revision = "ef3b52e04d4294aa98fdac6c065b2d818022efd1"; + sha256 = "sha256-zuONfwNObFx8A2zunwwkW2jUgO6rvd6dO2okiiCxPO8="; }; } diff --git a/nixos/modules/core-desktop.nix b/nixos/modules/core-desktop.nix index 72a1f33..d81ceec 100644 --- a/nixos/modules/core-desktop.nix +++ b/nixos/modules/core-desktop.nix @@ -27,12 +27,7 @@ kdePackages.kdeconnect-kde pcmanfm pwvucontrol - (qimgv.override { - opencv4 = opencv4.override { - # https://github.com/NixOS/nixpkgs/issues/383175 - enableCuda = false; - }; - }) + qimgv ]; programs.mpv = let diff --git a/nixos/modules/nvidia.nix b/nixos/modules/nvidia.nix index afd3d33..ad6f2db 100644 --- a/nixos/modules/nvidia.nix +++ b/nixos/modules/nvidia.nix @@ -24,12 +24,18 @@ nvidiaSettings = true; package = let mkDriverArgs = { - version = "575.51.02"; - sha256_64bit = "sha256-XZ0N8ISmoAC8p28DrGHk/YN1rJsInJ2dZNL8O+Tuaa0="; - sha256_aarch64 = "sha256-NNeQU9sPfH1sq3d5RUq1MWT6+7mTo1SpVfzabYSVMVI="; - openSha256 = "sha256-NQg+QDm9Gt+5bapbUO96UFsPnz1hG1dtEwT/g/vKHkw="; - settingsSha256 = "sha256-6n9mVkEL39wJj5FB1HBml7TTJhNAhS/j5hqpNGFQE4w="; - persistencedSha256 = "sha256-dgmco+clEIY8bedxHC4wp+fH5JavTzyI1BI8BxoeJJI="; + version = "575.64"; + sha256_64bit = "sha256-6wG8/nOwbH0ktgg8J+ZBT2l5VC8G5lYBQhtkzMCtaLE="; + sha256_aarch64 = "sha256-uHj8fB1sSJfX0NWZEE1eZN1LQQkf7J0jPV3EeQCSG10="; + openSha256 = "sha256-y93FdR5TZuurDlxc/p5D5+a7OH93qU4hwQqMXorcs/g="; + settingsSha256 = "sha256-3BvryH7p0ioweNN4S8oLDCTSS47fQPWVYwNq4AuWQgQ="; + persistencedSha256 = "sha256-QkDNQKwCsakZOLcSie1NBiFCM5e5NFGiIKtPSFeWdXs="; + patches = [ + (pkgs.fetchpatch { + url = "https://raw.githubusercontent.com/rpmfusion/nvidia-kmod/020f5fabfb067150f8dd0d6e470a7a694f59eb59/Workaround-nv_vm_flags_-calling-GPL-only-code.patch"; + hash = "sha256-2WQs8WDVzNivwUSWn7t2hoduUVvmem5e+JpGt04380c="; + }) + ]; }; in ( config.boot.kernelPackages.nvidiaPackages.mkDriver mkDriverArgs ).overrideAttrs (super: { passthru = super.passthru or {} // { diff --git a/nixos/modules/razer.nix b/nixos/modules/razer.nix index f299e95..cfcda07 100644 --- a/nixos/modules/razer.nix +++ b/nixos/modules/razer.nix @@ -15,14 +15,14 @@ # NIXPKGS-PR: 384992 packages = let oldVersion = pkgs.python3Packages.openrazer-daemon.version; - version = "3.10.1"; + version = "3.10.3"; in lib.mapAttrs (_: package: package.overrideAttrs (oldAttrs: { version = lib.replaceStrings [ oldVersion ] [ version ] oldAttrs.version; src = pkgs.fetchFromGitHub { owner = "openrazer"; repo = "openrazer"; tag = "v${version}"; - hash = "sha256-igrGx7Y6ENtZatJCTAW43/0q6ZjljJ9/kU3QFli4yIU="; + hash = "sha256-M5g3Rn9WuyudhWQfDooopjexEgGVB0rzfJsPg+dqwn4="; }; })) { kernel = config.boot.kernelPackages.openrazer; diff --git a/nixos/modules/shell.nix b/nixos/modules/shell.nix index 891e3b9..2c70c93 100644 --- a/nixos/modules/shell.nix +++ b/nixos/modules/shell.nix @@ -15,7 +15,17 @@ in aliasDrag ranger-git ripgrep - kitty + (kitty.overrideAttrs (superAttrs: { + patches = superAttrs.patches or [] ++ [ + (fetchpatch { + url = "https://github.com/AmirulAndalib/kitty/commit/61fd8c4003b361503160424cbed1960153f40290.patch"; + excludes = lib.map lib.escapeRegex [ + "docs/changelog.rst" + ]; + hash = "sha256-TqO/pLRkxN+Mz4nfNfTntGpPoy6OgbtAGmdohG/1BFs="; + }) + ]; + })) zoxide ]) ++ [ ( @@ -29,15 +39,19 @@ in HISTCONTROL=ignoreboth ''; - programs.bash.interactiveShellInit = '' - HISTCONTROL=ignoreboth - if test -n "$KITTY_INSTALLATION_DIR"; then - export KITTY_SHELL_INTEGRATION="enabled,no-sudo" - source "$KITTY_INSTALLATION_DIR/shell-integration/bash/kitty.bash" - fi - eval "''$(zoxide init bash)" - alias bye=exit - ''; + programs.bash.interactiveShellInit = lib.mkMerge [ + '' + HISTCONTROL=ignoreboth + if test -n "$KITTY_INSTALLATION_DIR"; then + export KITTY_SHELL_INTEGRATION="enabled,no-sudo" + source "$KITTY_INSTALLATION_DIR/shell-integration/bash/kitty.bash" + fi + alias bye=exit + '' + (lib.mkAfter '' + eval "''$(${lib.getExe pkgs.zoxide} init bash)" + '') + ]; environment.etc."xdg/kitty/kitty.conf".text = '' font_family MesloLGS Nerd Font diff --git a/pkgs/by-name/ra/ranger-git/package.nix b/pkgs/by-name/ra/ranger-git/package.nix index d60114a..7efb7ce 100644 --- a/pkgs/by-name/ra/ranger-git/package.nix +++ b/pkgs/by-name/ra/ranger-git/package.nix @@ -16,8 +16,8 @@ ranger.overrideAttrs (selfAttrs: superAttrs: { src = fetchFromGitHub { owner = "ranger"; repo = "ranger"; - rev = "b00f923911090204139c9e19ba42e9d80aa0889f"; - hash = "sha256-uMvo+5I5WCJGT5+XRS/NFClDGH4F59ogQJb+RYuraX4="; + rev = "7e38143eaa91c82bed8f309aa167b1e6f2607576"; + hash = "sha256-O0DjecncpN+Bv8Ng+keuvU9iVtWAV4a50p959pMvkww="; }; patches = superAttrs.patches or [] ++ [ diff --git a/pkgs/overlays/unstable-from-source.nix b/pkgs/overlays/unstable-from-source.nix index bca6b9f..416b778 100644 --- a/pkgs/overlays/unstable-from-source.nix +++ b/pkgs/overlays/unstable-from-source.nix @@ -1,6 +1,8 @@ { unstableSource, attributeName ? "unstable", + # callPackage :: function | boolean + callPackage ? false, }: self: super: @@ -15,26 +17,58 @@ let "parsed" ]; - unstablePkgsForNixpkgs = nixpkgs: import unstableSource { + # if overlay is found in previous layer, then it was provided in "overlays" argument + # otherwise, it is provided in "crossOverlays" argument. + overlays = self.lib.groupBy (overlay: + if self.lib.elem overlay self.buildPackages.overlays then "allLayers" + else "finalLayer" + ) self.overlays; + + unstablePkgs = import unstableSource { # localSystem -> pkgs.stdenv.buildPlatform - localSystem = sanitizePlatform nixpkgs.stdenv.buildPlatform; + localSystem = sanitizePlatform self.stdenv.buildPlatform; # crossSystem -> pkgs.stdenv.hostPlatform or pkgs.stdenv.targetPlatform ?? # passing below # config -> pkgs.config - config = nixpkgs.config; - # overlays -> partial of pkgs.overlays - overlays = nixpkgs.overlays; - # crossOverlays -> partial of pkgs.overlays - # crossOverlays are merged to overlays, not sure what issues that might raise. - # ignoring. + config = self.config; + # overlays -> pkgs.buildPackages.overlays + overlays = overlays.allLayers or []; + # crossOverlays -> pkgs.overlays without pkgs.buildPackages.overlays + crossOverlays = overlays.finalLayer or []; } // self.lib.optionalAttrs ( - self.lib.systems.equals nixpkgs.stdenv.buildPlatform nixpkgs.stdenv.hostPlatform + self.lib.systems.equals self.stdenv.buildPlatform self.stdenv.hostPlatform ) { # workaround for some odd structured packages that changes behaviour # when crossSystem is passed. - crossSystem = sanitizePlatform nixpkgs.stdenv.hostPlatform; + crossSystem = sanitizePlatform self.stdenv.hostPlatform; }; + + callPackage' = if builtins.isFunction callPackage then callPackage + else if builtins.isBool callPackage && callPackage then self.callPackage + else if builtins.isBool callPackage && !callPackage then throw "this should never be evaluated" + else throw '' + callPackage argument should be a function or a boolean. + If you want to use the callPackage from self, set it to true. + If you want to use a custom callPackage, set it to a function (pkgs.callPackage). + ''; + + callPackagesUnstablePkgs = self.lib.mapAttrsRecursiveCond ( + attrset: !(self.lib.hasAttr "override" attrset) && attrset.recurseForDerivations or false + ) ( + _: unstablePackage: callPackage' { + # For some reason, override functor of the package has its argument set as required, + # which is totally false! the override functor can take all of those arguemnts optionally. + __functionArgs = self.lib.mapAttrs (_: _: true) (self.lib.functionArgs unstablePackage.override); + __functor = + if builtins.isFunction unstablePackage.override then unstablePackage.override + else unstablePackage.override.__functor; + } {} + ) unstablePkgs; + in { - "${attributeName}" = if useUnstable then unstablePkgsForNixpkgs self else self; + "${attributeName}" = if !useUnstable then self + # if callPackage is not false + else if !(builtins.isBool callPackage && !callPackage) then callPackagesUnstablePkgs + else unstablePkgs; }