2023-07-27 19:01:58 +08:00
|
|
|
inputs:
|
2023-09-01 21:05:26 +08:00
|
|
|
let
|
|
|
|
inherit (inputs.localLib) stripeTabs;
|
|
|
|
inherit (builtins) map attrNames;
|
|
|
|
inherit (inputs.lib) mkMerge mkIf mkOption types;
|
|
|
|
bugs =
|
|
|
|
{
|
|
|
|
# suspend & hibernate do not use platform
|
|
|
|
suspend-hibernate-no-platform.systemd.sleep.extraConfig =
|
|
|
|
''
|
|
|
|
SuspendState=freeze
|
|
|
|
HibernateMode=shutdown
|
|
|
|
'';
|
|
|
|
# reload iwlwifi after resume from hibernate
|
2023-10-31 17:34:08 +08:00
|
|
|
hibernate-iwlwifi =
|
2023-09-01 21:05:26 +08:00
|
|
|
{
|
2023-10-31 17:34:08 +08:00
|
|
|
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
|
|
|
|
''
|
|
|
|
${modprobe} -r iwlwifi
|
|
|
|
${modprobe} iwlwifi
|
|
|
|
echo 0 > /sys/devices/system/cpu/intel_pstate/no_turbo
|
|
|
|
'';
|
|
|
|
wantedBy = [ "systemd-hibernate.service" ];
|
|
|
|
};
|
|
|
|
nixos.system.kernel.modules.modprobeConfig =
|
|
|
|
[ "options iwlmvm power_scheme=1" "options iwlwifi uapsd_disable=1" ];
|
2023-09-01 21:05:26 +08:00
|
|
|
};
|
|
|
|
# disable wakeup on lid open
|
|
|
|
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
|
|
|
|
''
|
|
|
|
if ${cat} /proc/acpi/wakeup | ${grep} LID0 | ${grep} -q enabled
|
|
|
|
then
|
|
|
|
echo LID0 > /proc/acpi/wakeup
|
|
|
|
fi
|
2023-12-16 20:34:30 +08:00
|
|
|
if ${cat} /proc/acpi/wakeup | ${grep} XHCI | ${grep} -q enabled
|
|
|
|
then
|
|
|
|
echo XHCI > /proc/acpi/wakeup
|
|
|
|
fi
|
2023-09-01 21:05:26 +08:00
|
|
|
'';
|
|
|
|
wantedBy = [ "multi-user.target" ];
|
|
|
|
};
|
|
|
|
# xmunet use old encryption
|
2023-10-21 15:35:14 +08:00
|
|
|
xmunet.nixpkgs.config.packageOverrides = pkgs: { wpa_supplicant = pkgs.wpa_supplicant.overrideAttrs
|
|
|
|
(attrs: { patches = attrs.patches ++ [ ./xmunet.patch ];}); };
|
2023-09-01 21:05:26 +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";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
firefox.programs.firefox.enable = inputs.lib.mkForce false;
|
2023-12-25 20:50:15 +08:00
|
|
|
power.boot.kernelParams = [ "cpufreq.default_governor=powersave" ];
|
2024-01-14 17:35:22 +08:00
|
|
|
backlight.boot.kernelParams = [ "nvidia.NVreg_RegistryDwords=EnableBrightnessControl=1" ];
|
2024-01-15 18:55:50 +08:00
|
|
|
amdpstate.boot.kernelParams = [ "amd_pstate=active" ];
|
2023-09-01 21:05:26 +08:00
|
|
|
};
|
|
|
|
in
|
|
|
|
{
|
|
|
|
options.nixos.bugs = mkOption
|
|
|
|
{
|
|
|
|
type = types.listOf (types.enum (attrNames bugs));
|
|
|
|
default = [];
|
|
|
|
};
|
|
|
|
config = mkMerge (map (bug: mkIf (builtins.elem bug inputs.config.nixos.bugs) bugs.${bug}) (attrNames bugs));
|
|
|
|
}
|