77 lines
1.9 KiB
Nix
Raw Normal View History

2025-01-20 22:35:40 -05:00
{
config,
2025-02-03 17:30:32 -05:00
pkgs,
2025-01-20 22:35:40 -05:00
lib,
...
}:
let
2025-02-15 20:26:14 -05:00
inherit (config.nmasur.settings) username;
2025-01-20 22:35:40 -05:00
cfg = config.nmasur.profiles.base;
in
{
options.nmasur.profiles.base.enable = lib.mkEnableOption "base Linux config";
config = lib.mkIf cfg.enable {
2025-03-08 19:29:13 -05:00
nmasur.presets = {
vm.enable = lib.mkDefault true;
services = {
# Allow tunneling into the machine
cloudflared.enable = lib.mkDefault true;
openssh.enable = lib.mkDefault true;
};
programs = {
doas.enable = lib.mkDefault true;
};
2025-02-16 15:40:15 -05:00
};
2025-01-20 22:35:40 -05:00
# Allows us to declaritively set password
2025-02-01 16:10:16 -05:00
users.mutableUsers = lib.mkDefault false;
2025-01-20 22:35:40 -05:00
# Define a user account. Don't forget to set a password with passwd.
2025-02-15 20:26:14 -05:00
users.users.${username} = {
2025-03-08 18:08:17 -05:00
# Use fish by default if enabled in home-manager
shell = lib.mkIf (config.home-manager.users.${username}.programs.fish.enable) pkgs.fish;
2025-01-20 22:35:40 -05:00
# Create a home directory for human user
2025-02-01 16:10:16 -05:00
isNormalUser = lib.mkDefault true;
2025-01-20 22:35:40 -05:00
2025-03-08 01:31:42 +00:00
extraGroups = [
2025-01-20 22:35:40 -05:00
"wheel" # Sudo privileges
];
};
2025-02-03 17:30:32 -05:00
# Basic common system packages for all devices
environment.systemPackages = [
pkgs.git
pkgs.vim
pkgs.wget
pkgs.curl
];
2025-02-01 16:10:16 -05:00
# Include home-manager config in NixOS
home-manager = {
sharedModules = [ ../../../../home-manager ];
# Use the system-level nixpkgs instead of Home Manager's
useGlobalPkgs = lib.mkDefault true;
# Install packages to /etc/profiles instead of ~/.nix-profile, useful when
# using multiple profiles for one user
useUserPackages = lib.mkDefault true;
};
2025-03-08 18:08:17 -05:00
# Extending time for home-manager build for things like nix-index cache
systemd.services."home-manager-${username}" = {
serviceConfig.TimeoutStartSec = lib.mkForce "45m";
};
2025-02-25 04:10:25 +00:00
allowUnfreePackages = config.home-manager.users.${username}.allowUnfreePackages;
2025-01-20 22:35:40 -05:00
};
}