nix-dotfiles/default.nix

58 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.nix-colors.homeManagerModules.default # >home manager modules >in non-hm modules
inputs.niri.nixosModules.niri
]
++ (mapModulesRec' (toString ./modules) import);
system.stateVersion = "23.11";
system.configurationRevision = with inputs; mkIf (self ? rev) self.rev;
hm.home.stateVersion = config.system.stateVersion;
boot = {
kernelPackages = mkDefault pkgs.linuxPackages_latest;
kernelParams = [ "pci_aspm.policy=performance" ];
};
# configure keymap in x11
services.xserver.xkb = {
layout = "us";
variant = "qwerty";
};
console = {
useXkbConfig = mkDefault true;
};
services.automatic-timezoned.enable = mkDefault true;
time.timeZone = mkDefault null; # handled by automatic-timezoned
i18n = mkDefault {
defaultLocale = "en_US.UTF-8";
supportedLocales = [ "en_US.UTF-8/UTF-8" ];
};
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";
};
hardware.enableRedistributableFirmware = true;
environment.systemPackages = with pkgs; [
openssh mosh
git
];
}