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
{
lib,
self,
inputs,
...
{ lib
, self
, inputs
, ...
}: {
flake.homeManagerModules = let
modules = self.lib.importDirToAttrs ../../home-manager/modules;
in
flake.homeManagerModules =
let
modules = self.lib.importDirToAttrs ../../home-manager/modules;
in
{
default = {
imports = builtins.attrValues modules;
};
nixpkgs-useFlakeNixpkgs = {
home.sessionVariables.NIX_PATH = "nixpkgs=${inputs.nixpkgs}";
systemd.user.sessionVariables.NIX_PATH = lib.mkForce "nixpkgs=${inputs.nixpkgs}";

View file

@ -1,26 +1,38 @@
{ inputs, self, lib, ... }:
{
perSystem = { pkgs, ... }:
let
activationPackages = builtins.mapAttrs (_: lib.getAttr "activationPackage") self.homeConfigurations;
in
{
flake = {
homeManagerModules.nixpkgsConfig = {
nixpkgs.config.allowUnfreePredicate = lib.const true;
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 {
inherit pkgs;
modules = [
self.homeManagerModules.nixpkgs-useFlakeNixpkgs
self.homeManagerModules.nixpkgsConfig
self.homeManagerModules.profiles-user-willem
];
extraSpecialArgs = {
inherit pkgs;
nurNoPkgs = import inputs.nur {
nurpkgs = pkgs;
pkgs = throw "nixpkgs eval";
};
};
};
# packages = lib.pipe activationPackages [
# (lib.filterAttrs (_: drv: pkgs.system == drv.system))
# (lib.mapAttrs' (username: lib.nameValuePair "home-${username}"))
# ];
packages =
let activationPackages = builtins.mapAttrs (_: lib.getAttr "activationPackage") homeConfigurations;
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 = {
default = final: prev: (
apps = final: prev: (
let
appsDir = self.lib.importDirToAttrs ../apps;
builtApps = lib.mapAttrs (name: value: value.definition self.lib prev) appsDir;
packages = import ../packages final prev;
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
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
inherit (lib) mkIf;
@ -15,11 +15,15 @@ let
};
in
{
imports = [ ./launchd.nix ./iterm2.nix ./finder.nix ];
imports = [
./finder.nix
./iterm2.nix
./launchd.nix
];
home.file.".gnupg/gpg-agent.conf" = mkIf stdenv.isDarwin {
text = ''
pinentry-program "${pkgs.pinentry-touchid}/bin/pinentry-touchid"
pinentry-program "${pkgs.pinentryTouchid}/bin/pinentry-touchid"
default-cache-ttl 30
max-cache-ttl 600
'';
@ -43,8 +47,8 @@ in
pinentry = "pinentry-mac";
} // lib.attrsets.mapAttrs (name: value: "open -a '" + value + "'") appCommands);
programs.firefox.package = mkIf stdenv.isDarwin (pkgs.callPackage ../overlays/firefox-mac.nix { inherit pkgs; });
programs.chromium.package = mkIf stdenv.isDarwin (pkgs.callPackage ../overlays/chromium-mac.nix { inherit pkgs; });
programs.firefox.package = mkIf stdenv.isDarwin pkgs.firefoxMac;
programs.chromium.package = mkIf stdenv.isDarwin pkgs.chromiumMac;
targets.darwin = mkIf stdenv.isDarwin {
defaults = {

View file

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

View file

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

View file

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

View file

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