{ lib, stable, pkgs, inputs, config, ... }:
{
imports = [
inputs.home-manager.nixosModules.home-manager
../modules
inputs.noshell.nixosModules.default
];
users.users.root.shell = pkgs.bash;
programs.noshell.enable = true;
services.xserver.displayManager.startx.enable = true;
home-manager.useUserPackages = true;
home-manager.useGlobalPkgs = true;
home-manager.extraSpecialArgs = {
inherit inputs stable;
};
home-manager.users.${config.nixos-config.defaultUser} = {
imports = [
inputs.nix-index-database.hmModules.nix-index
./${config.networking.hostName}/home.nix
../../home
{
inherit (config) nixos-config;
}
];
};
boot.tmp = {
cleanOnBoot = true;
useTmpfs = true;
};
hardware.pulseaudio.enable = false;
users.users.${config.nixos-config.defaultUser} = {
isNormalUser = true;
extraGroups = [
"wheel" "video" "audio" "camera"
"networkmanager" "lp" "scanner"
"plex" ];
};
networking.networkmanager.enable = true;
programs.command-not-found.enable = false;
security.sudo.wheelNeedsPassword = true;
programs.dconf.enable = true;
services.udisks2.enable = true;
time.timeZone = "Europe/Prague"; # Time zone and internationalisation
i18n = {
defaultLocale = "en_US.UTF-8";
};
console = {
font = "Lat2-Terminus16";
keyMap = "us";
};
security.rtkit.enable = true;
systemd.services.rtkit-daemon = {
serviceConfig = {
LogLevelMax = 4;
ExecStart = [
""
"${pkgs.rtkit}/libexec/rtkit-daemon --processes-per-user-max=1000 --processes-per-user-max=10000 --actions-per-burst-max=1000 --actions-burst-sec=10 --canary-cheep-msec=30000 --canary-watchdog-msec=60000"
];
};
};
services.xserver.serverFlagsSection = ''
Option "BlankTime" "15"
Option "StandbyTime" "30"
Option "SuspendTime" "30"
Option "OffTime" "60"
'';
security.polkit.enable = true;
fonts.packages = with pkgs; [ # Fonts
hack-font
inter
ubuntu_font_family
fira-code
roboto
carlito
vegur
source-code-pro
jetbrains-mono
noto-fonts
noto-fonts-color-emoji
font-awesome
corefonts
vistafonts
(nerdfonts.override { # Nerdfont Icons override
fonts = [
"FiraCode"
"Ubuntu"
];
})
];
fonts.fontconfig = {
defaultFonts = {
serif = [ "Ubuntu" ];
sansSerif = [ "Ubuntu" ];
monospace = [ "Ubuntu Mono" ];
};
};
environment = {
pathsToLink = [ "/share/zsh" ];
systemPackages = with pkgs; [ # Default packages installed system-wide
alsa-utils
jq
killall
nano
pciutils
ripgrep
bat
socat
usbutils
wget
];
};
services = {
tumbler.enable = true;
pipewire = { # Sound
enable = true;
alsa = {
enable = true;
support32Bit = true;
};
pulse.enable = true;
jack.enable = true;
};
};
systemd.network = {
wait-online.enable = false;
};
nix = { # Nix Package Manager settings
registry = lib.mapAttrs (n: input: {
flake = input;
}) inputs;
nixPath = [
"nixpkgs=flake:nixpkgs"
"nixpkgs-stable=flake:nixpkgs-stable"
];
settings = {
connect-timeout = 5;
flake-registry = ""; # Do not pollute with external flake registry
auto-optimise-store = true; # Optimise syslinks
substituters = [
"https://cache.nixos.org"
];
keep-outputs = true;
keep-derivations = true;
experimental-features = [ "nix-command" "flakes" ];
};
gc = { # Automatic garbage collection
automatic = true;
dates = "weekly";
options = "--delete-older-than 2d";
};
};
nixpkgs.config.allowUnfree = true;
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
system = {
stateVersion = "23.05";
};
virtualisation.vmVariant = {
users.users.ruther.password = "vm";
users.users.root.password = "vm";
};
}