1
1
Fork 0
nixos/options/custom/settings/environment.nix

70 lines
2.2 KiB
Nix
Raw Normal View History

{ config, lib, ... }:
with lib;
let
cfg = config.custom.settings.environment;
in
{
options.custom.settings.environment = {
enable = mkOption { default = false; };
builder = mkOption { default = config.custom.full; };
timezone = mkOption { default = "America/Chicago"; };
wayland = mkOption { default = config.custom.minimal; };
};
config = mkIf cfg.enable {
time.timeZone = cfg.timezone;
# https://wiki.nixos.org/wiki/Cross_Compiling
boot.binfmt.emulatedSystems = mkIf cfg.builder [ "aarch64-linux" ]; # Emulate architecture
#// nixpkgs.buildPlatform = "x86_64-linux"; # Binary caches often not available
environment = {
localBinInPath = true;
# HACK: Nix does not currently handle locale properly, so force default
# https://github.com/NixOS/nixpkgs/issues/183960 et al.
#// i18n.defaultLocale = "C.UTF-8";
sessionVariables = {
GDK_SCALE = toString config.custom.scale; # Steam HiDPI
# https://wiki.nixos.org/wiki/Wayland#Electron_and_Chromium
NIXOS_OZONE_WL = mkIf cfg.wayland "1";
};
shellAliases = {
backup = "sudo borgmatic -v 1 create --progress --stats";
extract = "sudo borgmatic -v 1 extract --progress";
restore = "sudo borgmatic -v 1 restore";
list = "sudo borgmatic -v 1 list";
init = "sudo borgmatic init -e repokey-blake2";
key = "sudo borgmatic key export";
reboot = "sudo systemctl reboot";
restart = "sudo systemctl reboot";
poweroff = "sudo systemctl poweroff";
shutdown = "sudo systemctl poweroff";
rsync = "rsync --info=progress2";
# https://github.com/aksiksi/compose2nix?tab=readme-ov-file#usage
# https://github.com/aksiksi/compose2nix?tab=readme-ov-file#agenix
compose2nix = concatStringsSep " " [
"compose2nix"
"--inputs compose.yaml"
"--output compose.nix"
"--root_path /containers"
"--auto_format"
"--check_systemd_mounts"
"--env_files_only"
"--ignore_missing_env_files"
"--include_env_files"
#?? --env_files /run/agenix/containers/*/.env
];
};
};
};
}