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 }:
|
outputs = inputs@{ self, nix-darwin, nixpkgs, home-manager, system-manager }:
|
||||||
let
|
let
|
||||||
vars = {
|
vars = {
|
||||||
user = "ziro"; # TODO: Make it possible to setup multi-user
|
|
||||||
rev = self.rev or self.dirtyRev or null;
|
rev = self.rev or self.dirtyRev or null;
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
|
@ -23,6 +22,13 @@
|
||||||
inherit inputs nixpkgs system-manager home-manager vars;
|
inherit inputs nixpkgs system-manager home-manager vars;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
homeConfigurations = (
|
||||||
|
import ./users {
|
||||||
|
inherit (nixpkgs) lib;
|
||||||
|
inherit inputs nixpkgs home-manager vars;
|
||||||
|
}
|
||||||
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
|
|
|
@ -3,5 +3,6 @@
|
||||||
{
|
{
|
||||||
packages = [
|
packages = [
|
||||||
pkgs.zsh
|
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
|
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
|
let
|
||||||
mkCommon = import ../mkCommon.nix;
|
mkCommon = import ../../lib/mkCommon.nix;
|
||||||
|
mkSystem = import ../../lib/mkSystem.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;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
# Host list
|
# Host list
|
||||||
|
@ -37,38 +13,28 @@ in
|
||||||
# Lenovo ThinkPad L460; Intel Core i5-6300U
|
# Lenovo ThinkPad L460; Intel Core i5-6300U
|
||||||
"ThiccBook-Pro" =
|
"ThiccBook-Pro" =
|
||||||
let
|
let
|
||||||
inherit (systemConfig "x86_64-darwin") system pkgs;
|
inherit (mkSystem "x86_64-darwin" nixpkgs) system pkgs;
|
||||||
common = (mkCommon pkgs);
|
common = (mkCommon pkgs);
|
||||||
in
|
in
|
||||||
nix-darwin.lib.darwinSystem {
|
nix-darwin.lib.darwinSystem {
|
||||||
inherit system;
|
inherit system;
|
||||||
specialArgs = { inherit inputs pkgs home-manager vars common; };
|
specialArgs = { inherit inputs pkgs vars common; };
|
||||||
modules = [
|
modules = [
|
||||||
./configuration.nix
|
./configuration.nix
|
||||||
home-manager.darwinModules.home-manager
|
|
||||||
{
|
|
||||||
home-manager.useGlobalPkgs = true;
|
|
||||||
home-manager.useUserPackages = true;
|
|
||||||
}
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
# Imaginary M1, just for reference
|
# Imaginary M1, just for reference
|
||||||
MacBookProM1 =
|
MacBookProM1 =
|
||||||
let
|
let
|
||||||
inherit (systemConfig "aarch64-darwin") system pkgs;
|
inherit (mkSystem "aarch64-darwin" nixpkgs) system pkgs;
|
||||||
common = (mkCommon pkgs);
|
common = (mkCommon pkgs);
|
||||||
in
|
in
|
||||||
nix-darwin.lib.darwinSystem {
|
nix-darwin.lib.darwinSystem {
|
||||||
inherit system;
|
inherit system;
|
||||||
specialArgs = { inherit inputs pkgs home-manager vars common; };
|
specialArgs = { inherit inputs pkgs vars common; };
|
||||||
modules = [
|
modules = [
|
||||||
./configuration.nix
|
./configuration.nix
|
||||||
home-manager.darwinModules.home-manager
|
|
||||||
{
|
|
||||||
home-manager.useGlobalPkgs = true;
|
|
||||||
home-manager.useUserPackages = true;
|
|
||||||
}
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -56,33 +56,4 @@
|
||||||
system = {
|
system = {
|
||||||
stateVersion = 4;
|
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
|
let
|
||||||
mkCommon = import ../mkCommon.nix;
|
mkCommon = import ../../lib/mkCommon.nix;
|
||||||
|
mkSystem = import ../../lib/mkSystem.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;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
"potato" =
|
"potato" =
|
||||||
let
|
let
|
||||||
inherit (systemConfig "x86_64-linux") system pkgs;
|
inherit (mkSystem "x86_64-linux" nixpkgs) system pkgs;
|
||||||
common = (mkCommon pkgs);
|
common = (mkCommon pkgs);
|
||||||
in
|
in
|
||||||
system-manager.lib.makeSystemConfig {
|
system-manager.lib.makeSystemConfig {
|
||||||
inherit system;
|
inherit system;
|
||||||
specialArgs = { inherit inputs pkgs home-manager vars common; };
|
specialArgs = { inherit inputs pkgs vars common; };
|
||||||
modules = [
|
modules = [
|
||||||
./configuration.nix
|
./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