flake/modules: cleanup
This commit is contained in:
parent
ed2aaf9f15
commit
7dd9cf684d
14 changed files with 60 additions and 141 deletions
|
@ -7,7 +7,7 @@
|
|||
|
||||
hardware.nvidia.nvidiaSettings = false;
|
||||
services.hdapsd.enable = false;
|
||||
myFlake.hardware.components = {
|
||||
my.hardware ={
|
||||
audio.enable = true;
|
||||
bluetooth.enable = true;
|
||||
tpm.enable = true;
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
inputs.nixos-sensible.nixosModules.zram
|
||||
];
|
||||
|
||||
myFlake.hardware.components = {
|
||||
my.hardware = {
|
||||
audio.enable = true;
|
||||
bluetooth.enable = true;
|
||||
tpm.enable = true;
|
||||
|
|
|
@ -1,13 +1,10 @@
|
|||
{...}: {
|
||||
imports = [
|
||||
# utils that is used internally
|
||||
./myFlake/boot.nix
|
||||
./myFlake/hardware/accessories/logitech-wireless.nix
|
||||
./myFlake/hardware/accessories/piper.nix
|
||||
./myFlake/hardware/accessories/xbox-one-controller.nix
|
||||
./myFlake/hardware/components/audio.nix
|
||||
./myFlake/hardware/components/bluetooth.nix
|
||||
./myFlake/hardware/components/tpm.nix
|
||||
./my/boot.nix
|
||||
./my/hardware/audio.nix
|
||||
./my/hardware/bluetooth.nix
|
||||
./my/hardware/tpm.nix
|
||||
|
||||
# nixpkgs styled options
|
||||
./services/hysteria.nix
|
||||
|
|
|
@ -3,14 +3,12 @@
|
|||
lib,
|
||||
...
|
||||
}: let
|
||||
cfg = config.myFlake.boot;
|
||||
cfg = config.my.boot;
|
||||
in {
|
||||
options = {
|
||||
myFlake = {
|
||||
boot = {
|
||||
silentBoot = lib.mkEnableOption "Whether to enable silent boot.";
|
||||
noLoaderMenu = lib.mkEnableOption "Whether to disable bootloader menu.";
|
||||
};
|
||||
my.boot = {
|
||||
silentBoot = lib.mkEnableOption "silent boot";
|
||||
noLoaderMenu = lib.mkEnableOption "" // {description = "Whether to disable bootloader menu.";};
|
||||
};
|
||||
};
|
||||
|
24
nixos/modules/my/hardware/audio.nix
Normal file
24
nixos/modules/my/hardware/audio.nix
Normal file
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
cfg = config.my.hardware.audio;
|
||||
in {
|
||||
options = {
|
||||
my.hardware.audio.enable = lib.mkEnableOption "audio";
|
||||
};
|
||||
|
||||
# https://nixos.wiki/wiki/PipeWire
|
||||
config = lib.mkIf cfg.enable {
|
||||
security.rtkit.enable = true;
|
||||
hardware.pulseaudio.enable = false;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
jack.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
|
@ -4,19 +4,15 @@
|
|||
pkgs,
|
||||
...
|
||||
}: let
|
||||
cfg = config.myFlake.hardware.components.bluetooth;
|
||||
cfg = config.my.hardware.bluetooth;
|
||||
in {
|
||||
options = {
|
||||
myFlake.hardware.components.bluetooth.enable = lib.mkEnableOption "Whether to enable bluetooth.";
|
||||
my.hardware.bluetooth.enable = lib.mkEnableOption "bluetooth";
|
||||
};
|
||||
|
||||
# https://nixos.wiki/wiki/Bluetooth
|
||||
config = lib.mkIf cfg.enable {
|
||||
# Bluetooth manager
|
||||
#services.blueman.enable = true;
|
||||
environment.systemPackages = lib.mkIf config.services.xserver.enable (with pkgs; [blueberry]);
|
||||
|
||||
# Bluetooth service
|
||||
hardware.bluetooth = {
|
||||
enable = true;
|
||||
settings.General.FastConnectable = true;
|
20
nixos/modules/my/hardware/tpm.nix
Normal file
20
nixos/modules/my/hardware/tpm.nix
Normal file
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
cfg = config.my.hardware.tpm;
|
||||
in {
|
||||
options = {
|
||||
my.hardware.tpm.enable = lib.mkEnableOption "TPM";
|
||||
};
|
||||
|
||||
# https://nixos.wiki/wiki/TPM
|
||||
config = lib.mkIf cfg.enable {
|
||||
security.tpm2 = {
|
||||
enable = true;
|
||||
pkcs11.enable = true;
|
||||
tctiEnvironment.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,19 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
cfg = config.myFlake.hardware.accessories.logitech-wireless;
|
||||
in {
|
||||
options = {
|
||||
myFlake.hardware.accessories.logitech-wireless.enable =
|
||||
lib.mkEnableOption "Whether to enable support for wireless Logitech hardwares.";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
hardware.logitech.wireless = {
|
||||
enable = true;
|
||||
enableGraphical = true;
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,18 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
cfg = config.myFlake.hardware.accessories.piper;
|
||||
in {
|
||||
options = {
|
||||
myFlake.hardware.accessories.piper.enable =
|
||||
lib.mkEnableOption "Whether to enable Piper.";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = [pkgs.piper];
|
||||
services.ratbagd.enable = true;
|
||||
};
|
||||
}
|
|
@ -1,18 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
cfg = config.myFlake.hardware.accessories.xboxOneController;
|
||||
in {
|
||||
options = {
|
||||
myFlake.hardware.accessories.xboxOneController.enable =
|
||||
lib.mkEnableOption "Whether to enable support for Xbox One controllers.";
|
||||
};
|
||||
|
||||
# https://wiki.archlinux.org/title/Gamepad#Connect_Xbox_Wireless_Controller_with_Bluetooth
|
||||
config = lib.mkIf cfg.enable {
|
||||
hardware.xone.enable = true; # via wired or wireless dongle
|
||||
hardware.xpadneo.enable = true; # via Bluetooth
|
||||
};
|
||||
}
|
|
@ -1,37 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
cfg = config.myFlake.hardware.components.audio;
|
||||
in {
|
||||
options = {
|
||||
myFlake.hardware.components.audio.enable = lib.mkEnableOption "Whether to enable audio.";
|
||||
myFlake.hardware.components.audio.soundServer = lib.mkOption {
|
||||
type = lib.types.enum ["pipewire" "pulseaudio"];
|
||||
default = "pipewire";
|
||||
example = "pulseaudio";
|
||||
description = "Select desired sound system.";
|
||||
};
|
||||
};
|
||||
|
||||
# https://nixos.wiki/wiki/PipeWire
|
||||
# https://nixos.wiki/wiki/PulseAudio
|
||||
config = lib.mkIf cfg.enable (lib.mkMerge [
|
||||
(lib.mkIf (cfg.soundServer == "pipewire") {
|
||||
security.rtkit.enable = true;
|
||||
hardware.pulseaudio.enable = false;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
jack.enable = true;
|
||||
};
|
||||
})
|
||||
(lib.mkIf (cfg.soundServer == "pulseaudio") {
|
||||
hardware.pulseaudio.enable = true;
|
||||
hardware.pulseaudio.support32Bit = true;
|
||||
})
|
||||
]);
|
||||
}
|
|
@ -1,25 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
cfg = config.myFlake.hardware.components.tpm;
|
||||
in {
|
||||
options = {
|
||||
myFlake.hardware.components.tpm.enable = lib.mkEnableOption "Whether to enable TPM.";
|
||||
};
|
||||
|
||||
# https://nixos.wiki/wiki/TPM
|
||||
config = lib.mkIf cfg.enable {
|
||||
# TPM is currently broken on latest kernel,
|
||||
# but luckily, linux-zen have a patch for it
|
||||
# UPDATE: it got fixed in 6.5.3
|
||||
#
|
||||
# python3.11-tpm2-pytss-2.1.0 failed with exit code 1 after ⏱ 34s
|
||||
security.tpm2 = {
|
||||
enable = true;
|
||||
#pkcs11.enable = true; # expose /run/current-system/sw/lib/libtpm2_pkcs11.so
|
||||
tctiEnvironment.enable = true; # tpm2tools_tcti and tpm2_pkcs11_tcti env variables
|
||||
};
|
||||
};
|
||||
}
|
|
@ -37,7 +37,7 @@
|
|||
};
|
||||
|
||||
### Options
|
||||
myFlake.boot.noLoaderMenu = lib.mkDefault true;
|
||||
my.boot.noLoaderMenu = lib.mkDefault true;
|
||||
|
||||
fonts.enableDefaultPackages = false;
|
||||
security.pam.services.swaylock = {};
|
||||
|
|
|
@ -11,7 +11,9 @@
|
|||
# https://github.com/NixOS/nixpkgs/issues/47932
|
||||
hardware.opengl.driSupport32Bit = true;
|
||||
|
||||
myFlake.hardware.accessories.xboxOneController.enable = lib.mkDefault true;
|
||||
# https://wiki.archlinux.org/title/Gamepad#Connect_Xbox_Wireless_Controller_with_Bluetooth
|
||||
hardware.xone.enable = true; # via wired or wireless dongle
|
||||
hardware.xpadneo.enable = true; # via Bluetooth
|
||||
|
||||
programs.gamemode = {
|
||||
enable = true;
|
||||
|
@ -23,7 +25,6 @@
|
|||
|
||||
# Integrate with NVIDIA Optimus offloading.
|
||||
# https://github.com/FeralInteractive/gamemode#note-for-hybrid-gpu-users
|
||||
# https://github.com/NixOS/nixpkgs/pull/273177
|
||||
environment.sessionVariables = {
|
||||
"GAMEMODERUNEXEC" = let
|
||||
inherit (config.hardware.nvidia.prime) offload;
|
||||
|
|
Loading…
Reference in a new issue