Fix home configurations.

This commit is contained in:
willemml 2023-03-17 10:06:22 -07:00
parent 91f6d83bcd
commit 919b042656
Signed by: willemml
GPG key ID: C3DE5DF6198DACBD
13 changed files with 54 additions and 40 deletions

View file

@ -5,20 +5,16 @@
# https://github.com/terlar/nix-config/blob/00c8a3622e8bc4cb522bbf335e6ede04ca07da40/flake-parts/home-manager/modules.nix # https://github.com/terlar/nix-config/blob/00c8a3622e8bc4cb522bbf335e6ede04ca07da40/flake-parts/home-manager/modules.nix
{ { lib
lib, , self
self, , inputs
inputs, , ...
...
}: { }: {
flake.homeManagerModules = let flake.homeManagerModules =
modules = self.lib.importDirToAttrs ../../home-manager/modules; let
in modules = self.lib.importDirToAttrs ../../home-manager/modules;
in
{ {
default = {
imports = builtins.attrValues modules;
};
nixpkgs-useFlakeNixpkgs = { nixpkgs-useFlakeNixpkgs = {
home.sessionVariables.NIX_PATH = "nixpkgs=${inputs.nixpkgs}"; home.sessionVariables.NIX_PATH = "nixpkgs=${inputs.nixpkgs}";
systemd.user.sessionVariables.NIX_PATH = lib.mkForce "nixpkgs=${inputs.nixpkgs}"; systemd.user.sessionVariables.NIX_PATH = lib.mkForce "nixpkgs=${inputs.nixpkgs}";

View file

@ -1,26 +1,38 @@
{ inputs, self, lib, ... }: { inputs, self, lib, ... }:
{ {
perSystem = { pkgs, ... }: flake = {
let homeManagerModules.nixpkgsConfig = {
activationPackages = builtins.mapAttrs (_: lib.getAttr "activationPackage") self.homeConfigurations; nixpkgs.config.allowUnfreePredicate = lib.const true;
in nixpkgs.config.packageOverrides = pkgs: {
{ nur = import inputs.nur { inherit pkgs; nurpkgs = pkgs; };
};
nixpkgs.config.allowUnsupportedSystem = true;
nixpkgs.overlays = builtins.attrValues self.overlays;
};
testOutput = builtins.attrValues self.overlays;
};
perSystem = { pkgs, self', ... }:
rec {
homeConfigurations.willem = inputs.home-manager.lib.homeManagerConfiguration { homeConfigurations.willem = inputs.home-manager.lib.homeManagerConfiguration {
inherit pkgs; inherit pkgs;
modules = [ modules = [
self.homeManagerModules.nixpkgs-useFlakeNixpkgs
self.homeManagerModules.nixpkgsConfig
self.homeManagerModules.profiles-user-willem self.homeManagerModules.profiles-user-willem
]; ];
extraSpecialArgs = { extraSpecialArgs = {
inherit pkgs;
nurNoPkgs = import inputs.nur { nurNoPkgs = import inputs.nur {
nurpkgs = pkgs; nurpkgs = pkgs;
pkgs = throw "nixpkgs eval"; pkgs = throw "nixpkgs eval";
}; };
}; };
}; };
# packages = lib.pipe activationPackages [ packages =
# (lib.filterAttrs (_: drv: pkgs.system == drv.system)) let activationPackages = builtins.mapAttrs (_: lib.getAttr "activationPackage") homeConfigurations;
# (lib.mapAttrs' (username: lib.nameValuePair "home-${username}")) in
# ]; lib.pipe activationPackages [
(lib.filterAttrs (_: drv: pkgs.system == drv.system))
(lib.mapAttrs' (username: lib.nameValuePair "home-${username}"))
];
}; };
} }

View file

@ -2,13 +2,12 @@
{ {
flake.overlays = { flake.overlays = {
default = final: prev: ( apps = final: prev: (
let let
appsDir = self.lib.importDirToAttrs ../apps; appsDir = self.lib.importDirToAttrs ../apps;
builtApps = lib.mapAttrs (name: value: value.definition self.lib prev) appsDir;
packages = import ../packages final prev;
in in
builtApps // packages lib.mapAttrs (name: value: value.definition self.lib prev) appsDir
); );
default = import ../packages;
}; };
} }

View file

@ -1,4 +1,4 @@
{ config, pkgs, inputs, ... }: { config, pkgs, ... }:
let let
passCmd = address: "${pkgs.python310Packages.keyring}/bin/keyring get login email(${address})"; passCmd = address: "${pkgs.python310Packages.keyring}/bin/keyring get login email(${address})";

View file

@ -1,4 +1,4 @@
{ config, pkgs, lib, inputs, ... }: { config, pkgs, lib, ... }:
let let
inherit (lib) mkIf; inherit (lib) mkIf;
@ -15,11 +15,15 @@ let
}; };
in in
{ {
imports = [ ./launchd.nix ./iterm2.nix ./finder.nix ]; imports = [
./finder.nix
./iterm2.nix
./launchd.nix
];
home.file.".gnupg/gpg-agent.conf" = mkIf stdenv.isDarwin { home.file.".gnupg/gpg-agent.conf" = mkIf stdenv.isDarwin {
text = '' text = ''
pinentry-program "${pkgs.pinentry-touchid}/bin/pinentry-touchid" pinentry-program "${pkgs.pinentryTouchid}/bin/pinentry-touchid"
default-cache-ttl 30 default-cache-ttl 30
max-cache-ttl 600 max-cache-ttl 600
''; '';
@ -43,8 +47,8 @@ in
pinentry = "pinentry-mac"; pinentry = "pinentry-mac";
} // lib.attrsets.mapAttrs (name: value: "open -a '" + value + "'") appCommands); } // lib.attrsets.mapAttrs (name: value: "open -a '" + value + "'") appCommands);
programs.firefox.package = mkIf stdenv.isDarwin (pkgs.callPackage ../overlays/firefox-mac.nix { inherit pkgs; }); programs.firefox.package = mkIf stdenv.isDarwin pkgs.firefoxMac;
programs.chromium.package = mkIf stdenv.isDarwin (pkgs.callPackage ../overlays/chromium-mac.nix { inherit pkgs; }); programs.chromium.package = mkIf stdenv.isDarwin pkgs.chromiumMac;
targets.darwin = mkIf stdenv.isDarwin { targets.darwin = mkIf stdenv.isDarwin {
defaults = { defaults = {

View file

@ -46,9 +46,9 @@ rec {
imports = [ imports = [
./accounts.nix ./accounts.nix
./darwin.nix ./darwin
./feeds.nix ./feeds.nix
./packages.nix ./packages.nix
./programs.nix ./programs
]; ];
} }

View file

@ -3,8 +3,8 @@
let let
darwin = with pkgs; [ darwin = with pkgs; [
pngpaste pngpaste
pinentry-touchid pinentryTouchid
pinentry-mac pinentryMac
spoof-mac spoof-mac
]; ];
linux = with pkgs; [ ]; linux = with pkgs; [ ];

View file

@ -1,5 +1,8 @@
{ lib, config, inputs, pkgs, ... }: { { lib, config, pkgs, ... }: {
imports = [ ./emacs.nix ./firefox.nix ]; imports = [
./emacs.nix
./firefox.nix
];
programs = { programs = {
bash.enableCompletion = true; bash.enableCompletion = true;

View file

@ -1,4 +1,4 @@
{ config, pkgs, inputs, nurNoPkgs, ... }: { config, pkgs, nurNoPkgs, ... }:
let let
pcfg = config.programs.emacs.init.usePackage; pcfg = config.programs.emacs.init.usePackage;