1
0
Fork 0
mirror of https://github.com/LnL7/nix-darwin.git synced 2025-03-13 20:30:02 +00:00

Merge pull request #892 from Samasaur1/startup-chime

`system.startup.chime`: init
This commit is contained in:
Michael Hoang 2024-03-02 13:57:42 +11:00 committed by GitHub
commit 8a15cb36ff
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 74 additions and 0 deletions

View file

@ -35,8 +35,10 @@
./system/etc.nix
./system/keyboard.nix
./system/launchd.nix
./system/nvram.nix
./system/patches.nix
./system/shells.nix
./system/startup.nix
./system/version.nix
./time
./networking

View file

@ -69,6 +69,7 @@ in
${cfg.activationScripts.networking.text}
${cfg.activationScripts.keyboard.text}
${cfg.activationScripts.fonts.text}
${cfg.activationScripts.nvram.text}
${cfg.activationScripts.postActivation.text}

40
modules/system/nvram.nix Normal file
View file

@ -0,0 +1,40 @@
{ config, lib, pkgs, ... }:
let
cfg = config.system;
mkNvramVariables =
lib.attrsets.mapAttrsToList
(name: value: "nvram ${lib.escapeShellArg name}=${lib.escapeShellArg value}")
cfg.nvram.variables;
in
{
meta.maintainers = [
lib.maintainers.samasaur or "samasaur"
];
options = {
system.nvram.variables = lib.mkOption {
type = with lib.types; attrsOf str;
default = {};
internal = true;
example = {
"StartupMute" = "%01";
};
description = lib.mdDoc ''
Non-volatile RAM variables to set. Removing a key-value pair from this
list will **not** return the variable to its previous value, but will
no longer set its value on system configuration activations.
'';
};
};
config = {
system.activationScripts.nvram.text = ''
echo "setting nvram variables..." >&2
${builtins.concatStringsSep "\n" mkNvramVariables}
'';
};
}

View file

@ -0,0 +1,31 @@
{ config, lib, pkgs, ... }:
let
cfg = config.system.startup;
in
{
meta.maintainers = [
lib.maintainers.samasaur or "samasaur"
];
options = {
system.startup.chime = lib.mkOption {
type = with lib.types; nullOr bool;
default = null;
example = false;
description = lib.mdDoc ''
Whether to enable the startup chime.
By default, this option does not affect your system configuration in any way.
However, this means that after it has been set once, unsetting it will not
return to the old behavior. It will allow the setting to be controlled in
System Settings, though.
'';
};
};
config = {
system.nvram.variables."StartupMute" = lib.mkIf (cfg.chime != null) (if cfg.chime then "%00" else "%01");
};
}