Compare commits
No commits in common. "e7972bf1e8b10b41f63627b2b70c30996158a57b" and "8741b320219185af2bc7b5cf89e59d297e0bb074" have entirely different histories.
e7972bf1e8
...
8741b32021
|
@ -3,18 +3,8 @@
|
||||||
doctrine,
|
doctrine,
|
||||||
pkgs,
|
pkgs,
|
||||||
}: let
|
}: let
|
||||||
close = vars: f: args:
|
close = f: args: f (args // {inherit lib pkgs doctrine;});
|
||||||
(
|
|
||||||
if builtins.isPath f
|
|
||||||
then import f
|
|
||||||
else f
|
|
||||||
)
|
|
||||||
(args // {inherit lib pkgs doctrine;});
|
|
||||||
|
|
||||||
closeLib = close {inherit lib;};
|
|
||||||
closeFull = close {inherit lib pkgs doctrine;};
|
|
||||||
in {
|
in {
|
||||||
inherit close;
|
importAll = pkgs.callPackage ./importAll.nix {};
|
||||||
importAll = closeLib ./import-all.nix;
|
mkModule = close (import ./mk-module.nix);
|
||||||
mkModule = closeFull ./mk-module.nix;
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
{
|
{lib}: {
|
||||||
lib,
|
|
||||||
root,
|
root,
|
||||||
exclude ? ["default"],
|
exclude ? [],
|
||||||
}:
|
}:
|
||||||
with builtins;
|
with builtins;
|
||||||
with lib;
|
with lib;
|
||||||
|
@ -11,7 +10,7 @@ with lib;
|
||||||
|
|
||||||
isMatch = name: type:
|
isMatch = name: type:
|
||||||
(hasSuffix ".nix" name || type == "directory")
|
(hasSuffix ".nix" name || type == "directory")
|
||||||
&& ! elem (basename name) exclude;
|
&& ! elem name (map basename exclude);
|
||||||
|
|
||||||
entry = name: _: {
|
entry = name: _: {
|
||||||
name = basename name;
|
name = basename name;
|
|
@ -1,22 +1,18 @@
|
||||||
{
|
{
|
||||||
# The first few arguments are implicitly passed by the 'close' helper
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
doctrine,
|
|
||||||
name,
|
name,
|
||||||
config,
|
|
||||||
hm ? null,
|
hm ? null,
|
||||||
sys ? null,
|
sys ? null,
|
||||||
options ? null,
|
options ? null,
|
||||||
requires ? [],
|
lib,
|
||||||
prefix ? doctrine.prefix,
|
config,
|
||||||
namespace ? doctrine.namespace,
|
pkgs,
|
||||||
|
doctrine,
|
||||||
}: let
|
}: let
|
||||||
optionsSet = import options {
|
optionsSet = import options {
|
||||||
inherit config lib pkgs cfg name doctrine;
|
inherit config lib pkgs cfg name doctrine;
|
||||||
};
|
};
|
||||||
|
|
||||||
configSet = import configFiles.${namespace} {
|
configSet = import configFiles.${doctrine.namespace} {
|
||||||
inherit config lib pkgs doctrine cfg;
|
inherit config lib pkgs doctrine cfg;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -24,27 +20,17 @@
|
||||||
inherit sys hm;
|
inherit sys hm;
|
||||||
};
|
};
|
||||||
|
|
||||||
cfg = config.${prefix}.${name};
|
cfg = config.${doctrine.prefix}.${name};
|
||||||
in {
|
in {
|
||||||
config =
|
config =
|
||||||
lib.optionalAttrs (configFiles ? ${namespace})
|
lib.optionalAttrs (configFiles ? ${doctrine.namespace})
|
||||||
(lib.mkIf cfg.enable (lib.mkMerge [
|
(lib.mkIf cfg.enable configSet);
|
||||||
configSet
|
|
||||||
{
|
|
||||||
assertions =
|
|
||||||
map (dependency: {
|
|
||||||
assertion = cfg.enable -> config.${prefix}.${dependency}.enable;
|
|
||||||
message = "${prefix}.${name}.enable requires ${prefix}.${dependency}.enable";
|
|
||||||
})
|
|
||||||
requires;
|
|
||||||
}
|
|
||||||
]));
|
|
||||||
|
|
||||||
options = lib.optionalAttrs (options
|
options = lib.optionalAttrs (options
|
||||||
!= null
|
!= null
|
||||||
&& optionsSet ? ${namespace}) {
|
&& optionsSet ? ${doctrine.namespace}) {
|
||||||
${prefix}.${name} =
|
${doctrine.prefix}.${name} =
|
||||||
optionsSet.${namespace}
|
optionsSet.${doctrine.namespace}
|
||||||
// {
|
// {
|
||||||
enable = lib.mkEnableOption name;
|
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