refactor(nix): Mix stable and unstable packages

Also replace inkscape with brew cask inkscape on macOS
This commit is contained in:
Ahmad Ansori Palembani 2024-11-02 10:06:35 +07:00
parent 90c0934bf2
commit 26c9cfbaed
Signed by: null2264
GPG key ID: BA64F8B60AF3EFB6
13 changed files with 133 additions and 72 deletions

43
.config/nix/flake.lock generated
View file

@ -26,7 +26,7 @@
"nix-darwin" "nix-darwin"
], ],
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs-stable"
] ]
}, },
"locked": { "locked": {
@ -83,7 +83,7 @@
"firefox-darwin": { "firefox-darwin": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs-stable"
] ]
}, },
"locked": { "locked": {
@ -177,7 +177,7 @@
"home-manager": { "home-manager": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs-unstable"
] ]
}, },
"locked": { "locked": {
@ -198,7 +198,7 @@
"nix-darwin": { "nix-darwin": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs-stable"
] ]
}, },
"locked": { "locked": {
@ -237,23 +237,23 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs": { "nixpkgs-stable": {
"locked": { "locked": {
"lastModified": 1730272153, "lastModified": 1730503127,
"narHash": "sha256-B5WRZYsRlJgwVHIV6DvidFN7VX7Fg9uuwkRW9Ha8z+w=", "narHash": "sha256-RRidUbyqCiFgFfJ5VbvuEVl2j2+p89QPmSyplID7VQM=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "2d2a9ddbe3f2c00747398f3dc9b05f7f2ebb0f53", "rev": "acc2a23c96439823bc751e726b62a44d80cf76ee",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "NixOS",
"ref": "release-24.05",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "2d2a9ddbe3f2c00747398f3dc9b05f7f2ebb0f53",
"type": "github" "type": "github"
} }
}, },
"nixpkgs-stable": { "nixpkgs-stable_2": {
"locked": { "locked": {
"lastModified": 1720386169, "lastModified": 1720386169,
"narHash": "sha256-NGKVY4PjzwAa4upkGtAMz1npHGoRzWotlSnVlqI40mo=", "narHash": "sha256-NGKVY4PjzwAa4upkGtAMz1npHGoRzWotlSnVlqI40mo=",
@ -269,6 +269,22 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs-unstable": {
"locked": {
"lastModified": 1730272153,
"narHash": "sha256-B5WRZYsRlJgwVHIV6DvidFN7VX7Fg9uuwkRW9Ha8z+w=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "2d2a9ddbe3f2c00747398f3dc9b05f7f2ebb0f53",
"type": "github"
},
"original": {
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "2d2a9ddbe3f2c00747398f3dc9b05f7f2ebb0f53",
"type": "github"
}
},
"pre-commit-hooks": { "pre-commit-hooks": {
"inputs": { "inputs": {
"flake-compat": "flake-compat", "flake-compat": "flake-compat",
@ -277,7 +293,7 @@
"system-manager", "system-manager",
"nixpkgs" "nixpkgs"
], ],
"nixpkgs-stable": "nixpkgs-stable" "nixpkgs-stable": "nixpkgs-stable_2"
}, },
"locked": { "locked": {
"lastModified": 1728092656, "lastModified": 1728092656,
@ -300,7 +316,8 @@
"firefox-darwin": "firefox-darwin", "firefox-darwin": "firefox-darwin",
"home-manager": "home-manager", "home-manager": "home-manager",
"nix-darwin": "nix-darwin", "nix-darwin": "nix-darwin",
"nixpkgs": "nixpkgs", "nixpkgs-stable": "nixpkgs-stable",
"nixpkgs-unstable": "nixpkgs-unstable",
"system-manager": "system-manager" "system-manager": "system-manager"
} }
}, },
@ -332,7 +349,7 @@
"flake-utils": "flake-utils_2", "flake-utils": "flake-utils_2",
"nix-vm-test": "nix-vm-test", "nix-vm-test": "nix-vm-test",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs-stable"
], ],
"pre-commit-hooks": "pre-commit-hooks", "pre-commit-hooks": "pre-commit-hooks",
"rust-overlay": "rust-overlay", "rust-overlay": "rust-overlay",

View file

@ -1,7 +1,7 @@
{ {
description = "null2264's Nix Setup"; description = "null2264's Nix Setup";
outputs = inputs@{ self, nix-darwin, nixpkgs, home-manager, system-manager, ... }: outputs = inputs@{ self, nix-darwin, nixpkgs-stable, nixpkgs-unstable, home-manager, system-manager, ... }:
let let
vars = { vars = {
floorp = { floorp = {
@ -13,42 +13,43 @@
{ {
darwinConfigurations = ( darwinConfigurations = (
import ./systems/darwin { import ./systems/darwin {
inherit (nixpkgs) lib; inherit (nixpkgs-unstable) lib;
inherit inputs nixpkgs nix-darwin home-manager vars; inherit inputs nixpkgs-stable nixpkgs-unstable nix-darwin home-manager vars;
} }
); );
systemConfigs = ( # sudo is required, sadly systemConfigs = ( # sudo is required, sadly
import ./systems/nix { import ./systems/nix {
inherit (nixpkgs) lib; inherit (nixpkgs-unstable) lib;
inherit inputs nixpkgs system-manager home-manager vars; inherit inputs nixpkgs-stable nixpkgs-unstable system-manager home-manager vars;
} }
); );
homeConfigurations = ( homeConfigurations = (
import ./users { import ./users {
inherit (nixpkgs) lib; inherit (nixpkgs-unstable) lib;
inherit inputs nixpkgs home-manager vars; inherit inputs nixpkgs-stable nixpkgs-unstable home-manager vars;
} }
); );
}; };
inputs = { inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/2d2a9ddbe3f2c00747398f3dc9b05f7f2ebb0f53"; nixpkgs-stable.url = "github:NixOS/nixpkgs/release-24.05";
nixpkgs-unstable.url = "github:NixOS/nixpkgs/2d2a9ddbe3f2c00747398f3dc9b05f7f2ebb0f53";
nix-darwin = { nix-darwin = {
url = "github:LnL7/nix-darwin/470f87c1827b51169ed4f91cdbdfd48417bfff3d"; url = "github:LnL7/nix-darwin/470f87c1827b51169ed4f91cdbdfd48417bfff3d";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs-stable";
}; };
firefox-darwin = { firefox-darwin = {
url = "github:bandithedoge/nixpkgs-firefox-darwin"; url = "github:bandithedoge/nixpkgs-firefox-darwin";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs-stable";
}; };
brew-nix = { brew-nix = {
url = "github:BatteredBunny/brew-nix/d3d3a2666e5330e83b6a64b1eb3e1e9380f6da9b"; url = "github:BatteredBunny/brew-nix/d3d3a2666e5330e83b6a64b1eb3e1e9380f6da9b";
inputs.nix-darwin.follows = "nix-darwin"; inputs.nix-darwin.follows = "nix-darwin";
inputs.brew-api.follows = "brew-api"; inputs.brew-api.follows = "brew-api";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs-stable";
}; };
brew-api = { brew-api = {
url = "github:BatteredBunny/brew-api"; url = "github:BatteredBunny/brew-api";
@ -57,12 +58,12 @@
home-manager = { home-manager = {
url = "github:nix-community/home-manager/64c6325b28ebd708653dd41d88f306023f296184"; url = "github:nix-community/home-manager/64c6325b28ebd708653dd41d88f306023f296184";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs-unstable"; # we need unstable (24.11) for programs.floorp. FIXME: switch to stable once 24.11 become stable
}; };
system-manager = { system-manager = {
url = "github:numtide/system-manager/c93e62f2e962b54fd961798731d25eaa5778dbe2"; url = "github:numtide/system-manager/c93e62f2e962b54fd961798731d25eaa5778dbe2";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs-stable";
}; };
}; };
} }

View file

@ -1,4 +1,4 @@
{ pkgs, ... }: { pkgs, pkgs-unstable, ... }:
let let
custom = { custom = {
@ -8,11 +8,13 @@ let
py.dnspython py.dnspython
])); ]));
}; };
custom.inkscape = if pkgs.stdenv.isDarwin then pkgs.brewCasks.inkscape else (pkgs.inkscape.override { python3 = custom.python; });
in { in {
inherit custom; inherit custom;
packages = [ packages = [
pkgs.zsh pkgs.zsh
pkgs.home-manager pkgs.home-manager
pkgs.zoxide pkgs.zoxide
custom.inkscape
]; ];
} }

View file

@ -1,9 +1,17 @@
system: nixpkgs: extraOverlays: { arch, stable, unstable, extraOverlays ? [] }:
{ {
system = system; system = arch;
pkgs = import nixpkgs { pkgs = import stable {
inherit system; system = arch;
overlays =
[
(import ../overlays/python.nix)
] ++ extraOverlays;
config.allowUnfree = true;
};
pkgs-unstable = import unstable {
system = arch;
overlays = overlays =
[ [
(import ../overlays/python.nix) (import ../overlays/python.nix)

View file

@ -7,7 +7,8 @@ let
dontCheck = true; dontCheck = true;
}); });
in { in {
pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [(pyfinal: pyprev: { pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [
(pyfinal: pyprev: {
dnspython = (disablePyChecks pyprev.dnspython).overridePythonAttrs (old: { dnspython = (disablePyChecks pyprev.dnspython).overridePythonAttrs (old: {
disabledTests = [ disabledTests = [
"test_resolver" # Relying too much on internet connection, Indonesian internet couldn't cope with it "test_resolver" # Relying too much on internet connection, Indonesian internet couldn't cope with it
@ -15,5 +16,6 @@ in {
}); });
pillow = disablePyChecks pyprev.pillow; # Inconsistent test result pillow = disablePyChecks pyprev.pillow; # Inconsistent test result
cherrypy = disablePyChecks pyprev.cherrypy; # Inconsistent test result cherrypy = disablePyChecks pyprev.cherrypy; # Inconsistent test result
})]; })
];
} }

View file

@ -1,4 +1,4 @@
{ pkgs, config, vars, common, inputs, ... }: { pkgs, pkgs-unstable, config, vars, common, inputs, ... }:
{ {
# I don't want to risk breaking my hackintosh setup in case Apple decided to # I don't want to risk breaking my hackintosh setup in case Apple decided to
@ -17,7 +17,6 @@
pkgs.gnupg pkgs.gnupg
pkgs.htop-vim pkgs.htop-vim
common.custom.python common.custom.python
(pkgs.inkscape.override { python3 = common.custom.python; })
#(pkgs.poetry.override { python3 = common.custom.python; }) #(pkgs.poetry.override { python3 = common.custom.python; })
pkgs.fastfetch pkgs.fastfetch
pkgs.eza pkgs.eza

View file

@ -1,4 +1,4 @@
{ inputs, nixpkgs, nix-darwin, vars, ... }: { inputs, nixpkgs-stable, nixpkgs-unstable, nix-darwin, vars, ... }:
let let
mkCommon = import ../../lib/mkCommon.nix; mkCommon = import ../../lib/mkCommon.nix;
@ -14,16 +14,21 @@ in
"ThiccBook-Pro" = "ThiccBook-Pro" =
let let
inherit ( inherit (
mkSystem "x86_64-darwin" nixpkgs [ mkSystem {
arch = "x86_64-darwin";
stable = nixpkgs-stable;
unstable = nixpkgs-unstable;
extraOverlays = [
inputs.firefox-darwin.overlay inputs.firefox-darwin.overlay
inputs.brew-nix.overlays.default inputs.brew-nix.overlays.default
] ];
) system pkgs; }
common = (mkCommon pkgs); ) system pkgs pkgs-unstable;
common = (mkCommon { inherit pkgs pkgs-unstable; });
in in
nix-darwin.lib.darwinSystem { nix-darwin.lib.darwinSystem {
inherit system; inherit system;
specialArgs = { inherit inputs pkgs vars common; }; specialArgs = { inherit inputs pkgs pkgs-unstable vars common; };
modules = [ modules = [
./configuration.nix ./configuration.nix
]; ];
@ -33,16 +38,21 @@ in
MacBookProM1 = MacBookProM1 =
let let
inherit ( inherit (
mkSystem "aarch64-darwin" nixpkgs [ mkSystem {
arch = "aarch64-darwin";
stable = nixpkgs-stable;
unstable = nixpkgs-unstable;
extraOverlays = [
inputs.firefox-darwin.overlay inputs.firefox-darwin.overlay
inputs.brew-nix.overlays.default inputs.brew-nix.overlays.default
] ];
) system pkgs; }
common = (mkCommon pkgs); ) system pkgs pkgs-unstable;
common = (mkCommon { inherit pkgs pkgs-unstable; });
in in
nix-darwin.lib.darwinSystem { nix-darwin.lib.darwinSystem {
inherit system; inherit system;
specialArgs = { inherit inputs pkgs vars common; }; specialArgs = { inherit inputs pkgs pkgs-unstable vars common; };
modules = [ modules = [
./configuration.nix ./configuration.nix
]; ];

View file

@ -1,4 +1,4 @@
{ inputs, nixpkgs, system-manager, vars, ... }: { inputs, nixpkgs-stable, nixpkgs-unstable, system-manager, vars, ... }:
let let
mkCommon = import ../../lib/mkCommon.nix; mkCommon = import ../../lib/mkCommon.nix;
@ -7,11 +7,17 @@ in
{ {
"potato" = "potato" =
let let
inherit (mkSystem "x86_64-linux" nixpkgs []) system pkgs; inherit (
common = (mkCommon pkgs); mkSystem {
arch = "x86_64-linux";
stable = nixpkgs-stable;
unstable = nixpkgs-unstable;
}
) system pkgs pkgs-unstable;
common = (mkCommon { inherit pkgs pkgs-unstable; });
in in
system-manager.lib.makeSystemConfig { system-manager.lib.makeSystemConfig {
extraSpecialArgs = { inherit inputs pkgs vars common; }; extraSpecialArgs = { inherit inputs pkgs pkgs-unstable vars common; };
modules = [ modules = [
./potato ./potato
]; ];

View file

@ -1,4 +1,4 @@
{ pkgs, config, vars, common, ... }: { pkgs, pkgs-unstable, config, vars, common, ... }:
{ {
config = { config = {

View file

@ -1,4 +1,4 @@
{ inputs, nixpkgs, home-manager, vars, ... }: { inputs, nixpkgs-stable, nixpkgs-unstable, home-manager, vars, ... }:
let let
mkSystem = import ../lib/mkSystem.nix; mkSystem = import ../lib/mkSystem.nix;
@ -18,13 +18,23 @@ in
"ziro@ThiccBook-Pro" = "ziro@ThiccBook-Pro" =
let let
inherit (mkSystem "x86_64-darwin" nixpkgs [inputs.firefox-darwin.overlay]) system pkgs; inherit (
mkSystem {
arch = "x86_64-darwin";
stable = nixpkgs-stable;
unstable = nixpkgs-unstable;
extraOverlays = [
inputs.firefox-darwin.overlay
inputs.brew-nix.overlays.default
];
}
) system pkgs pkgs-unstable;
vars.name = "ziro"; vars.name = "ziro";
vars.floorp.verticalTabHoverWidthInEm = 28; vars.floorp.verticalTabHoverWidthInEm = 28;
in in
home-manager.lib.homeManagerConfiguration { home-manager.lib.homeManagerConfiguration {
inherit pkgs; pkgs = pkgs-unstable; # FIXME: switch to stable when 24.11 become stable
extraSpecialArgs = { inherit inputs pkgs home-manager vars; }; extraSpecialArgs = { inherit inputs pkgs pkgs-unstable home-manager vars; };
modules = [ modules = [
./ziro ./ziro
./ziro/darwin.nix ./ziro/darwin.nix
@ -34,12 +44,18 @@ in
"ziro@potato" = "ziro@potato" =
let let
inherit (mkSystem "x86_64-linux" nixpkgs []) system pkgs; inherit (
mkSystem {
arch = "x86_64-linux";
stable = nixpkgs-stable;
unstable = nixpkgs-unstable;
}
) system pkgs pkgs-unstable;
vars.name = "ziro"; vars.name = "ziro";
in in
home-manager.lib.homeManagerConfiguration { home-manager.lib.homeManagerConfiguration {
inherit pkgs; pkgs = pkgs-unstable; # FIXME: switch to stable when 24.11 become stable
extraSpecialArgs = { inherit inputs pkgs home-manager vars; }; extraSpecialArgs = { inherit inputs pkgs pkgs-unstable home-manager vars; };
modules = [ modules = [
./ziro ./ziro
./ziro/linux.nix ./ziro/linux.nix

View file

@ -1,4 +1,4 @@
{ pkgs, config, vars, ... }: { pkgs, pkgs-unstable, config, vars, ... }:
{ {
home.homeDirectory = "/Users/ziro"; home.homeDirectory = "/Users/ziro";

View file

@ -1,4 +1,4 @@
{ pkgs, config, vars, ... }: { pkgs, pkgs-unstable, config, vars, ... }:
{ {
home = { home = {

View file

@ -1,4 +1,4 @@
{ pkgs, config, vars, ... }: { pkgs, pkgs-unstable, config, vars, ... }:
{ {
home.homeDirectory = "/home/ziro"; home.homeDirectory = "/home/ziro";