nixos/modules/bugs/default.nix

88 lines
2.8 KiB
Nix
Raw Normal View History

2023-07-27 19:01:58 +08:00
inputs:
2023-07-27 20:12:20 +08:00
let
2023-07-27 21:50:51 +08:00
inherit (inputs.localLib) stripeTabs;
inherit (builtins) map attrNames;
inherit (inputs.lib) mkMerge mkIf mkOption types;
2023-07-27 20:12:20 +08:00
bugs =
2023-07-27 21:50:51 +08:00
{
2023-07-27 19:01:58 +08:00
# intel i915 hdmi
2023-07-27 21:50:51 +08:00
intel-hdmi.boot.kernelPatches = [{ name = "intel-hdmi"; patch = ./intel-hdmi.patch; }];
2023-07-27 19:01:58 +08:00
# suspend & hibernate do not use platform
2023-07-27 21:50:51 +08:00
suspend-hibernate-no-platform.systemd.sleep.extraConfig = stripeTabs
"
SuspendState=freeze
HibernateMode=shutdown
";
2023-07-27 19:01:58 +08:00
# reload iwlwifi after resume from hibernate
2023-07-27 21:50:51 +08:00
hibernate-iwlwifi.systemd.services.reload-iwlwifi-after-hibernate =
{
description = "reload iwlwifi after resume from hibernate";
after = [ "systemd-hibernate.service" ];
serviceConfig.Type = "oneshot";
script = let modprobe = "${inputs.pkgs.kmod}/bin/modprobe"; in stripeTabs
"
${modprobe} -r iwlwifi
${modprobe} iwlwifi
echo 0 > /sys/devices/system/cpu/intel_pstate/no_turbo
";
wantedBy = [ "systemd-hibernate.service" ];
};
2023-07-27 19:01:58 +08:00
# disable wakeup on lid open
2023-07-27 21:50:51 +08:00
suspend-lid-no-wakeup.systemd.services.lid-no-wakeup =
{
description = "lid no wake up";
serviceConfig.Type = "oneshot";
script =
let
cat = "${inputs.pkgs.coreutils}/bin/cat";
grep = "${inputs.pkgs.gnugrep}/bin/grep";
in stripeTabs
"
if ${cat} /proc/acpi/wakeup | ${grep} LID0 | ${grep} -q enabled
then
echo LID0 > /proc/acpi/wakeup
fi
";
wantedBy = [ "multi-user.target" ];
};
# xmunet use old encryption
xmunet.nixpkgs.config.packageOverrides = pkgs:
{
wpa_supplicant = pkgs.wpa_supplicant.overrideAttrs (attrs: { patches = attrs.patches ++ [ ./xmunet.patch ];});
};
2023-08-08 16:35:59 +08:00
suspend-hibernate-waydroid.systemd.services =
let
systemctl = "${inputs.pkgs.systemd}/bin/systemctl";
in
{
"waydroid-hibernate" =
{
description = "waydroid hibernate";
wantedBy = [ "systemd-hibernate.service" "systemd-suspend.service" ];
before = [ "systemd-hibernate.service" "systemd-suspend.service" ];
serviceConfig.Type = "oneshot";
script = "${systemctl} stop waydroid-container";
};
"waydroid-resume" =
{
description = "waydroid resume";
wantedBy = [ "systemd-hibernate.service" "systemd-suspend.service" ];
after = [ "systemd-hibernate.service" "systemd-suspend.service" ];
serviceConfig.Type = "oneshot";
script = "${systemctl} start waydroid-container";
};
};
2023-08-17 14:05:03 +08:00
firefox.programs.firefox.enable = inputs.lib.mkForce false;
2023-08-18 03:41:44 +08:00
embree.nixpkgs.overlays =
[(final: prev: { embree = prev.embree.override { stdenv = final.genericPackages.stdenv; }; })];
2023-07-27 21:50:51 +08:00
};
2023-07-27 20:12:20 +08:00
in
{
2023-07-27 21:50:51 +08:00
options.nixos.bugs = mkOption
2023-07-27 19:01:58 +08:00
{
2023-07-27 21:50:51 +08:00
type = types.listOf (types.enum (attrNames bugs));
2023-07-27 20:12:20 +08:00
default = [];
};
2023-07-27 21:50:51 +08:00
config = mkMerge (map (bug: mkIf (builtins.elem bug inputs.config.nixos.bugs) bugs.${bug}) (attrNames bugs));
2023-07-27 20:12:20 +08:00
}