Compare commits
No commits in common. "e7972bf1e8b10b41f63627b2b70c30996158a57b" and "8741b320219185af2bc7b5cf89e59d297e0bb074" have entirely different histories.
e7972bf1e8
...
8741b32021
|
@ -3,18 +3,8 @@
|
|||
doctrine,
|
||||
pkgs,
|
||||
}: let
|
||||
close = vars: f: args:
|
||||
(
|
||||
if builtins.isPath f
|
||||
then import f
|
||||
else f
|
||||
)
|
||||
(args // {inherit lib pkgs doctrine;});
|
||||
|
||||
closeLib = close {inherit lib;};
|
||||
closeFull = close {inherit lib pkgs doctrine;};
|
||||
close = f: args: f (args // {inherit lib pkgs doctrine;});
|
||||
in {
|
||||
inherit close;
|
||||
importAll = closeLib ./import-all.nix;
|
||||
mkModule = closeFull ./mk-module.nix;
|
||||
importAll = pkgs.callPackage ./importAll.nix {};
|
||||
mkModule = close (import ./mk-module.nix);
|
||||
}
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
{
|
||||
lib,
|
||||
{lib}: {
|
||||
root,
|
||||
exclude ? ["default"],
|
||||
exclude ? [],
|
||||
}:
|
||||
with builtins;
|
||||
with lib;
|
||||
|
@ -11,7 +10,7 @@ with lib;
|
|||
|
||||
isMatch = name: type:
|
||||
(hasSuffix ".nix" name || type == "directory")
|
||||
&& ! elem (basename name) exclude;
|
||||
&& ! elem name (map basename exclude);
|
||||
|
||||
entry = name: _: {
|
||||
name = basename name;
|
|
@ -1,22 +1,18 @@
|
|||
{
|
||||
# The first few arguments are implicitly passed by the 'close' helper
|
||||
lib,
|
||||
pkgs,
|
||||
doctrine,
|
||||
name,
|
||||
config,
|
||||
hm ? null,
|
||||
sys ? null,
|
||||
options ? null,
|
||||
requires ? [],
|
||||
prefix ? doctrine.prefix,
|
||||
namespace ? doctrine.namespace,
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
doctrine,
|
||||
}: let
|
||||
optionsSet = import options {
|
||||
inherit config lib pkgs cfg name doctrine;
|
||||
};
|
||||
|
||||
configSet = import configFiles.${namespace} {
|
||||
configSet = import configFiles.${doctrine.namespace} {
|
||||
inherit config lib pkgs doctrine cfg;
|
||||
};
|
||||
|
||||
|
@ -24,27 +20,17 @@
|
|||
inherit sys hm;
|
||||
};
|
||||
|
||||
cfg = config.${prefix}.${name};
|
||||
cfg = config.${doctrine.prefix}.${name};
|
||||
in {
|
||||
config =
|
||||
lib.optionalAttrs (configFiles ? ${namespace})
|
||||
(lib.mkIf cfg.enable (lib.mkMerge [
|
||||
configSet
|
||||
{
|
||||
assertions =
|
||||
map (dependency: {
|
||||
assertion = cfg.enable -> config.${prefix}.${dependency}.enable;
|
||||
message = "${prefix}.${name}.enable requires ${prefix}.${dependency}.enable";
|
||||
})
|
||||
requires;
|
||||
}
|
||||
]));
|
||||
lib.optionalAttrs (configFiles ? ${doctrine.namespace})
|
||||
(lib.mkIf cfg.enable configSet);
|
||||
|
||||
options = lib.optionalAttrs (options
|
||||
!= null
|
||||
&& optionsSet ? ${namespace}) {
|
||||
${prefix}.${name} =
|
||||
optionsSet.${namespace}
|
||||
&& optionsSet ? ${doctrine.namespace}) {
|
||||
${doctrine.prefix}.${name} =
|
||||
optionsSet.${doctrine.namespace}
|
||||
// {
|
||||
enable = lib.mkEnableOption name;
|
||||
};
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
{doctrine, ...}: {
|
||||
imports = builtins.attrValues (doctrine.lib.importAll {root = ./.;});
|
||||
{
|
||||
imports = [
|
||||
./sway
|
||||
];
|
||||
}
|
||||
|
|
|
@ -1,10 +0,0 @@
|
|||
{
|
||||
config,
|
||||
doctrine,
|
||||
...
|
||||
}:
|
||||
doctrine.lib.mkModule {
|
||||
inherit config;
|
||||
name = "laptop";
|
||||
sys = ./sys.nix;
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
services = {
|
||||
tlp.enable = lib.mkDefault true;
|
||||
upower.enable = lib.mkDefault true;
|
||||
};
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
{
|
||||
config,
|
||||
doctrine,
|
||||
...
|
||||
}:
|
||||
doctrine.lib.mkModule {
|
||||
inherit config;
|
||||
name = "thinkpad";
|
||||
sys = ./sys.nix;
|
||||
requires = ["laptop"];
|
||||
}
|
|
@ -1,30 +0,0 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
# For suspending to RAM to work, set Config -> Power -> Sleep State to "Linux" in EFI.
|
||||
# See https://wiki.archlinux.org/index.php/Lenovo_ThinkPad_X1_Carbon_(Gen_6)#Suspend_issues
|
||||
# Fingerprint sensor requires a firmware-update to work.
|
||||
|
||||
boot = {
|
||||
extraModulePackages = with config.boot.kernelPackages; [acpi_call];
|
||||
extraModprobeConfig = "options iwlwifi 11n_disable=1 wd_disable=1";
|
||||
|
||||
# acpi_call makes tlp work for newer thinkpads
|
||||
kernelModules = ["acpi_call"];
|
||||
|
||||
# Force use of the thinkpad_acpi driver for backlight control.
|
||||
# This allows the backlight save/load systemd service to work.
|
||||
kernelParams = ["acpi_backlight=native"];
|
||||
};
|
||||
|
||||
hardware.firmware = [pkgs.sof-firmware];
|
||||
|
||||
services = {
|
||||
fprintd.enable = lib.mkDefault true;
|
||||
thinkfan.enable = lib.mkDefault true;
|
||||
tp-auto-kbbl.enable = lib.mkDefault true;
|
||||
};
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
doctrine,
|
||||
...
|
||||
}:
|
||||
doctrine.lib.mkModule {
|
||||
inherit config;
|
||||
name = "yubico";
|
||||
hm = ./hm.nix;
|
||||
sys = ./sys.nix;
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
home.packages = [
|
||||
pkgs.yubikey-manager
|
||||
];
|
||||
}
|
|
@ -1,14 +0,0 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
environment.etc."pkcs11/modules/ykcs11".text = ''
|
||||
module: ${pkgs.yubico-piv-tool}/lib/libykcs11.so
|
||||
'';
|
||||
|
||||
services = {
|
||||
pcscd.enable = true;
|
||||
udev.packages = [pkgs.yubikey-personalization];
|
||||
};
|
||||
}
|
Loading…
Reference in a new issue