46 lines
1.6 KiB
Nix
Executable file
46 lines
1.6 KiB
Nix
Executable file
{ config, inputs, lib, pkgs, ... }:
|
|
|
|
let
|
|
inherit (builtins) toString;
|
|
inherit (lib.modules) mkDefault mkIf mkAliasOptionModule;
|
|
inherit (lib.my) mapModulesRec';
|
|
in {
|
|
imports = [
|
|
inputs.home-manager.nixosModules.home-manager
|
|
(mkAliasOptionModule ["hm"] ["home-manager" "users" config.user.name])
|
|
inputs.base16.nixosModule
|
|
inputs.nix-index-database.nixosModules.default
|
|
inputs.t2fanrd.nixosModules.t2fanrd
|
|
inputs.niri.nixosModules.niri
|
|
]
|
|
++ (mapModulesRec' (toString ./modules) import);
|
|
|
|
hm.imports = [
|
|
inputs.vicinae.homeManagerModules.default
|
|
];
|
|
|
|
# i mostly disagree with state versions, just use the oldest one i have set up
|
|
# they seem reasonable at first but are so messy across multiple hosts
|
|
# a lot of the time they're used for stuff that isn't even state (looking at you, home-manager)
|
|
system.stateVersion = mkDefault "23.11";
|
|
system.configurationRevision = with inputs; mkIf (self ? rev) self.rev;
|
|
hm.home.stateVersion = config.system.stateVersion;
|
|
|
|
boot.kernelPackages = mkDefault pkgs.linuxPackages_latest;
|
|
|
|
# TODO: drop geoclue entirely. too lazy 2 to that now
|
|
services.automatic-timezoned.enable = mkDefault true;
|
|
time.timeZone = mkDefault null; # handled by automatic-timezoned
|
|
location.provider = mkDefault "geoclue2";
|
|
services.geoclue2 = {
|
|
enable = mkDefault true;
|
|
|
|
# the default provider is Geeked
|
|
geoProviderUrl = "https://beacondb.net/v1/geolocate";
|
|
submissionUrl = "https://beacondb.net/v2/geosubmit";
|
|
submissionNick = "geoclue";
|
|
};
|
|
|
|
# git is needed for flakes, yet, isn't in `environment.corePackages`
|
|
environment.systemPackages = with pkgs; [ git ];
|
|
}
|