Files
nix-flake/global-default.nix
T

108 lines
2.6 KiB
Nix
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
lib,
config,
pkgs,
specialArgs,
...
}: let
packageNames = map (name: lib.removeSuffix ".nix" name) (builtins.attrNames (builtins.readDir ./packages)); # creates a list of files in ./packages, with their '.nix' extensions removed
packagesOverlay = (final: prev: lib.genAttrs packageNames (name: (prev.pkgs.callPackage ./packages/${name}.nix { }))); # creates a function (overlay) that returns an attrset of names paired to 'callPackage' calls
in {
imports = [
./hosts/${specialArgs.hostname}/hardware-configuration.nix
./modules/nh.nix
./modules/home-manager.nix
];
nixpkgs.overlays = [
packagesOverlay
];
networking.hostName = specialArgs.hostname;
nix.settings.experimental-features = [
"nix-command"
"flakes"
];
nix.gc = {
automatic = true;
persistent = true;
dates = "Sun 05:00";
};
boot.loader.efi.canTouchEfiVariables = true;
networking.networkmanager.enable = true;
time.timeZone = "Europe/London";
i18n.defaultLocale = "en_GB.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "en_GB.UTF-8";
LC_IDENTIFICATION = "en_GB.UTF-8";
LC_MEASUREMENT = "en_GB.UTF-8";
LC_MONETARY = "en_GB.UTF-8";
LC_NAME = "en_GB.UTF-8";
LC_NUMERIC = "en_GB.UTF-8";
LC_PAPER = "en_GB.UTF-8";
LC_TELEPHONE = "en_GB.UTF-8";
LC_TIME = "en_GB.UTF-8";
};
services.xserver.xkb = {
layout = "gb";
variant = "";
};
console.keyMap = "uk";
users.users."grey" = {
isNormalUser = true;
description = "grey";
extraGroups = [ "networkmanager" "wheel" ];
};
nixpkgs.config.allowUnfree = true;
environment.systemPackages = with pkgs; [
git
fzf
jq
busybox
ethtool
wayland-utils
mesa-demos
vulkan-tools
hyperfine
];
fonts.packages = with pkgs; [
iosevka-comfy.comfy
nerd-fonts.jetbrains-mono
];
programs.nano = {
enable = true;
nanorc = ''
set nowrap
set tabstospaces
set tabsize 2
'';
};
hardware.bluetooth = {
enable = true;
powerOnBoot = false;
};
programs.gnupg.agent = {
enable = true;
};
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. It‘s perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = specialArgs.stateVersion;
}