feat: Flake | revamp entire flake (#1)

Reviewed-on: #1
This commit is contained in:
2025-02-16 06:35:32 +00:00
parent ecc87ef0b8
commit 79d044e8ef
80 changed files with 1015 additions and 174 deletions

View File

@@ -0,0 +1,102 @@
{
pkgs,
inputs,
config,
lib,
...
}:
{
imports = lib.flatten [
inputs.home-manager.nixosModules.home-manager
inputs.sops-nix.nixosModules.sops
(map lib.custom.relativeToRoot [
"modules/common"
"hosts/common/users/primary"
])
];
hostSpec = {
username = "shahab";
handle = "shahab96";
email = {
user = "shahab@dogar.dev";
};
userFullName = "Shahab Dogar";
domain = "rihla";
networking.ports.tcp.ssh = 22;
};
networking.hostName = config.hostSpec.hostName;
home-manager = {
useGlobalPkgs = true;
backupFileExtension = "bk";
};
#
# ========= Overlays =========
#
nixpkgs = {
config = {
allowUnfree = true;
allowUnfreePredicate = _: true;
};
};
#
# ========= Nix Settings =========
#
nix = {
settings = {
# See https://jackson.dev/post/nix-reasonable-defaults/
connect-timeout = 5;
log-lines = 25;
min-free = 128000000; # 128MB
max-free = 1000000000; # 1GB
auto-optimise-store = true;
warn-dirty = false;
trusted-users = [ "@wheel" ];
substituters = ["https://hyprland.cachix.org"];
trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="];
experimental-features = [
"nix-command"
"flakes"
];
};
};
# ========== Nix Helper ==========
# Provide better build output and will also handle garbage collection in place of standard nix gc (garbace collection)
programs.nh = {
enable = true;
clean.enable = true;
clean.extraArgs = "--keep-since 10d --keep 10";
flake = "/home/user/${config.hostSpec.home}/nix-config";
};
# ========= Sops =========
environment.systemPackages = with pkgs; [
sops
];
#
# ========== Localization ==========
#
i18n.defaultLocale = lib.mkDefault "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "ur_PK";
LC_IDENTIFICATION = "ur_PK";
LC_MEASUREMENT = "ur_PK";
LC_MONETARY = "ur_PK";
LC_NAME = "ur_PK";
LC_NUMERIC = "ur_PK";
LC_PAPER = "ur_PK";
LC_TELEPHONE = "ur_PK";
LC_TIME = "ur_PK";
};
time.timeZone = lib.mkDefault "Asia/Karachi";
}