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
|
|
|
}
|