refactor(nix): Seperate home manager stuff from nix-darwin
This commit is contained in:
parent
0f33f4e2de
commit
6444b67a4e
9 changed files with 110 additions and 134 deletions
|
@ -4,7 +4,6 @@
|
|||
outputs = inputs@{ self, nix-darwin, nixpkgs, home-manager, system-manager }:
|
||||
let
|
||||
vars = {
|
||||
user = "ziro"; # TODO: Make it possible to setup multi-user
|
||||
rev = self.rev or self.dirtyRev or null;
|
||||
};
|
||||
in
|
||||
|
@ -23,6 +22,13 @@
|
|||
inherit inputs nixpkgs system-manager home-manager vars;
|
||||
}
|
||||
);
|
||||
|
||||
homeConfigurations = (
|
||||
import ./users {
|
||||
inherit (nixpkgs) lib;
|
||||
inherit inputs nixpkgs home-manager vars;
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
inputs = {
|
||||
|
|
|
@ -3,5 +3,6 @@
|
|||
{
|
||||
packages = [
|
||||
pkgs.zsh
|
||||
pkgs.home-manager
|
||||
];
|
||||
}
|
27
.config/nix/lib/mkSystem.nix
Normal file
27
.config/nix/lib/mkSystem.nix
Normal file
|
@ -0,0 +1,27 @@
|
|||
system: nixpkgs: # e.g. x86_64-linux
|
||||
|
||||
let
|
||||
disablePyChecks = pkg: pkg.overridePythonAttrs (old: {
|
||||
doCheck = false;
|
||||
doInstallCheck = false;
|
||||
dontCheck = true;
|
||||
});
|
||||
in {
|
||||
system = system;
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
overlays = [(final: prev: {
|
||||
pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [(pyfinal: pyprev: {
|
||||
dnspython = (disablePyChecks pyprev.dnspython).overridePythonAttrs (old: {
|
||||
disabledTests = [
|
||||
# This test is unreliable when my internet is throttled by Indonesian ISP, timeout everywhere... lovely...
|
||||
"test_resolver"
|
||||
] ++ old.disabledTests;
|
||||
});
|
||||
pillow = disablePyChecks pyprev.pillow;
|
||||
cherrypy = disablePyChecks pyprev.cherrypy;
|
||||
})];
|
||||
})];
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
}
|
|
@ -97,33 +97,4 @@
|
|||
done
|
||||
'';
|
||||
};
|
||||
|
||||
users.users.ziro = {
|
||||
name = vars.user;
|
||||
home = "/Users/${vars.user}";
|
||||
};
|
||||
home-manager.users.ziro = {
|
||||
home.stateVersion = "22.05";
|
||||
|
||||
programs = {
|
||||
browserpass = {
|
||||
enable = true;
|
||||
browsers = [ "brave" "chrome" ]; # Arc and Chrome share the same `Application Support` dir, not sure why tbh.
|
||||
};
|
||||
};
|
||||
|
||||
# Swap CapsLock with Esc for better vi-mode experience.
|
||||
launchd.agents.CapsEscSwap = {
|
||||
enable = true;
|
||||
config = {
|
||||
ProgramArguments = [
|
||||
"/usr/bin/hidutil"
|
||||
"property"
|
||||
"--set"
|
||||
"{\"UserKeyMapping\":[{\"HIDKeyboardModifierMappingSrc\":0x700000039,\"HIDKeyboardModifierMappingDst\":0x700000029},{\"HIDKeyboardModifierMappingSrc\":0x700000029,\"HIDKeyboardModifierMappingDst\":0x700000039}]}"
|
||||
];
|
||||
RunAtLoad = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,32 +1,8 @@
|
|||
{ inputs, nixpkgs, nix-darwin, home-manager, vars, ... }:
|
||||
{ inputs, nixpkgs, nix-darwin, vars, ... }:
|
||||
|
||||
let
|
||||
mkCommon = import ../mkCommon.nix;
|
||||
|
||||
disablePyChecks = pkg: pkg.overridePythonAttrs (old: {
|
||||
doCheck = false;
|
||||
doInstallCheck = false;
|
||||
dontCheck = true;
|
||||
});
|
||||
systemConfig = system: {
|
||||
system = system;
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
overlays = [(final: prev: {
|
||||
pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [(pyfinal: pyprev: {
|
||||
dnspython = (disablePyChecks pyprev.dnspython).overridePythonAttrs (old: {
|
||||
disabledTests = [
|
||||
# This test is unreliable when my internet is throttled by Indonesian ISP, timeout everywhere... lovely...
|
||||
"test_resolver"
|
||||
] ++ old.disabledTests;
|
||||
});
|
||||
pillow = disablePyChecks pyprev.pillow;
|
||||
cherrypy = disablePyChecks pyprev.cherrypy;
|
||||
})];
|
||||
})];
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
};
|
||||
mkCommon = import ../../lib/mkCommon.nix;
|
||||
mkSystem = import ../../lib/mkSystem.nix;
|
||||
in
|
||||
{
|
||||
# Host list
|
||||
|
@ -37,38 +13,28 @@ in
|
|||
# Lenovo ThinkPad L460; Intel Core i5-6300U
|
||||
"ThiccBook-Pro" =
|
||||
let
|
||||
inherit (systemConfig "x86_64-darwin") system pkgs;
|
||||
inherit (mkSystem "x86_64-darwin" nixpkgs) system pkgs;
|
||||
common = (mkCommon pkgs);
|
||||
in
|
||||
nix-darwin.lib.darwinSystem {
|
||||
inherit system;
|
||||
specialArgs = { inherit inputs pkgs home-manager vars common; };
|
||||
specialArgs = { inherit inputs pkgs vars common; };
|
||||
modules = [
|
||||
./configuration.nix
|
||||
home-manager.darwinModules.home-manager
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
# Imaginary M1, just for reference
|
||||
MacBookProM1 =
|
||||
let
|
||||
inherit (systemConfig "aarch64-darwin") system pkgs;
|
||||
inherit (mkSystem "aarch64-darwin" nixpkgs) system pkgs;
|
||||
common = (mkCommon pkgs);
|
||||
in
|
||||
nix-darwin.lib.darwinSystem {
|
||||
inherit system;
|
||||
specialArgs = { inherit inputs pkgs home-manager vars common; };
|
||||
specialArgs = { inherit inputs pkgs vars common; };
|
||||
modules = [
|
||||
./configuration.nix
|
||||
home-manager.darwinModules.home-manager
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -56,33 +56,4 @@
|
|||
system = {
|
||||
stateVersion = 4;
|
||||
};
|
||||
|
||||
# users.users.ziro = {
|
||||
# name = vars.user;
|
||||
# home = "/Users/${vars.user}";
|
||||
# };
|
||||
# home-manager.users.ziro = {
|
||||
# home.stateVersion = "22.05";
|
||||
|
||||
# programs = {
|
||||
# browserpass = {
|
||||
# enable = true;
|
||||
# browsers = [ "brave" "chrome" ]; # Arc and Chrome share the same `Application Support` dir, not sure why tbh.
|
||||
# };
|
||||
# };
|
||||
|
||||
# # Swap CapsLock with Esc for better vi-mode experience.
|
||||
# launchd.agents.CapsEscSwap = {
|
||||
# enable = true;
|
||||
# config = {
|
||||
# ProgramArguments = [
|
||||
# "/usr/bin/hidutil"
|
||||
# "property"
|
||||
# "--set"
|
||||
# "{\"UserKeyMapping\":[{\"HIDKeyboardModifierMappingSrc\":0x700000039,\"HIDKeyboardModifierMappingDst\":0x700000029},{\"HIDKeyboardModifierMappingSrc\":0x700000029,\"HIDKeyboardModifierMappingDst\":0x700000039}]}"
|
||||
# ];
|
||||
# RunAtLoad = true;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
}
|
||||
|
|
|
@ -1,49 +1,20 @@
|
|||
{ inputs, nixpkgs, system-manager, home-manager, vars, ... }:
|
||||
{ inputs, nixpkgs, system-manager, vars, ... }:
|
||||
|
||||
let
|
||||
mkCommon = import ../mkCommon.nix;
|
||||
|
||||
disablePyChecks = pkg: pkg.overridePythonAttrs (old: {
|
||||
doCheck = false;
|
||||
doInstallCheck = false;
|
||||
dontCheck = true;
|
||||
});
|
||||
systemConfig = system: {
|
||||
system = system;
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
overlays = [(final: prev: {
|
||||
pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [(pyfinal: pyprev: {
|
||||
dnspython = (disablePyChecks pyprev.dnspython).overridePythonAttrs (old: {
|
||||
disabledTests = [
|
||||
# This test is unreliable when my internet is throttled by Indonesian ISP, timeout everywhere... lovely...
|
||||
"test_resolver"
|
||||
] ++ old.disabledTests;
|
||||
});
|
||||
pillow = disablePyChecks pyprev.pillow;
|
||||
cherrypy = disablePyChecks pyprev.cherrypy;
|
||||
})];
|
||||
})];
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
};
|
||||
mkCommon = import ../../lib/mkCommon.nix;
|
||||
mkSystem = import ../../lib/mkSystem.nix;
|
||||
in
|
||||
{
|
||||
"potato" =
|
||||
let
|
||||
inherit (systemConfig "x86_64-linux") system pkgs;
|
||||
inherit (mkSystem "x86_64-linux" nixpkgs) system pkgs;
|
||||
common = (mkCommon pkgs);
|
||||
in
|
||||
system-manager.lib.makeSystemConfig {
|
||||
inherit system;
|
||||
specialArgs = { inherit inputs pkgs home-manager vars common; };
|
||||
specialArgs = { inherit inputs pkgs vars common; };
|
||||
modules = [
|
||||
./configuration.nix
|
||||
# home-manager.darwinModules.home-manager
|
||||
# {
|
||||
# home-manager.useGlobalPkgs = true;
|
||||
# home-manager.useUserPackages = true;
|
||||
# }
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
30
.config/nix/users/default.nix
Normal file
30
.config/nix/users/default.nix
Normal file
|
@ -0,0 +1,30 @@
|
|||
{ inputs, nixpkgs, home-manager, vars, ... }:
|
||||
|
||||
let
|
||||
mkSystem = import ../lib/mkSystem.nix;
|
||||
in
|
||||
{
|
||||
# Host list
|
||||
# Build with: `home-manager build --flake .#<user>@<host>`
|
||||
# e.g. `home-manager build --flake .#"ziro@ThiccBook-Pro"`
|
||||
# Switch to current build: `home-manager switch --flake .#<user>@<host>`
|
||||
#
|
||||
# If you're feeling lucky `home-manager build --flake .` or
|
||||
# `home-manager switch --flake .` should be enough, since home-manager will
|
||||
# search the correct <user>@<host> on its own.
|
||||
#
|
||||
# You may need to run `scutil --set HostName <host>` if home-manager can't
|
||||
# find your <user>@<host>.
|
||||
|
||||
"ziro@ThiccBook-Pro" =
|
||||
let
|
||||
inherit (mkSystem "x86_64-darwin" nixpkgs) system pkgs;
|
||||
in
|
||||
home-manager.lib.homeManagerConfiguration {
|
||||
inherit pkgs;
|
||||
extraSpecialArgs = { inherit inputs pkgs home-manager vars; };
|
||||
modules = [
|
||||
./ziro.nix
|
||||
];
|
||||
};
|
||||
}
|
33
.config/nix/users/ziro.nix
Normal file
33
.config/nix/users/ziro.nix
Normal file
|
@ -0,0 +1,33 @@
|
|||
{ pkgs, config, vars, ... }:
|
||||
|
||||
let
|
||||
dirPrefix = if pkgs.stdenv.isDarwin then "/Users/" else "/home/";
|
||||
in {
|
||||
home = {
|
||||
username = "ziro";
|
||||
homeDirectory = dirPrefix + "ziro";
|
||||
};
|
||||
|
||||
programs = {
|
||||
browserpass = {
|
||||
enable = true;
|
||||
browsers = [ "brave" "chrome" ]; # Arc and Chrome share the same `Application Support` dir, not sure why tbh.
|
||||
};
|
||||
};
|
||||
|
||||
# Swap CapsLock with Esc for better vi-mode experience.
|
||||
launchd.agents.CapsEscSwap = {
|
||||
enable = true;
|
||||
config = {
|
||||
ProgramArguments = [
|
||||
"/usr/bin/hidutil"
|
||||
"property"
|
||||
"--set"
|
||||
"{\"UserKeyMapping\":[{\"HIDKeyboardModifierMappingSrc\":0x700000039,\"HIDKeyboardModifierMappingDst\":0x700000029},{\"HIDKeyboardModifierMappingSrc\":0x700000029,\"HIDKeyboardModifierMappingDst\":0x700000039}]}"
|
||||
];
|
||||
RunAtLoad = true;
|
||||
};
|
||||
};
|
||||
|
||||
home.stateVersion = "24.05";
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue