189 lines
4.0 KiB
Nix
189 lines
4.0 KiB
Nix
{ config, pkgs, inputs, lib, ... }:
|
|
|
|
{
|
|
imports = [ ./hardware-configuration.nix ]; # Include hardware scan results.
|
|
|
|
boot.loader.grub = {
|
|
enable = true;
|
|
efiSupport = true;
|
|
device = "nodev";
|
|
useOSProber = true;
|
|
};
|
|
|
|
boot.loader.efi.canTouchEfiVariables = true;
|
|
networking = {
|
|
hostName = "REPLACE_HOST";
|
|
networkmanager.enable = true; # Enable NetworkManager
|
|
};
|
|
|
|
time.timeZone = "America/Detroit";
|
|
|
|
i18n = {
|
|
defaultLocale = "en_US.UTF-8";
|
|
extraLocaleSettings = {
|
|
LC_ADDRESS = "en_US.UTF-8";
|
|
LC_IDENTIFICATION = "en_US.UTF-8";
|
|
LC_MEASUREMENT = "en_US.UTF-8";
|
|
LC_MONETARY = "en_US.UTF-8";
|
|
LC_NAME = "en_US.UTF-8";
|
|
LC_NUMERIC = "en_US.UTF-8";
|
|
LC_PAPER = "en_US.UTF-8";
|
|
LC_TELEPHONE = "en_US.UTF-8";
|
|
LC_TIME = "en_US.UTF-8";
|
|
};
|
|
};
|
|
|
|
programs.zsh.enable = true;
|
|
|
|
users.users.REPLACE_USER = {
|
|
isNormalUser = true;
|
|
description = "REPLACE_USER";
|
|
extraGroups = [ "wheel" "networkmanager" "libvirtd" "kvm" "qemu" "docker" ];
|
|
packages = with pkgs; [ ];
|
|
shell = pkgs.zsh;
|
|
};
|
|
|
|
home-manager.users.REPLACE_USER = import ./home.nix;
|
|
|
|
nixpkgs.overlays = [
|
|
inputs.nur.overlays.default
|
|
];
|
|
|
|
services = {
|
|
xserver = {
|
|
enable = true;
|
|
xkb.layout = "us";
|
|
displayManager.sddm.enable = true;
|
|
displayManager.defaultSession = "hyprland";
|
|
};
|
|
|
|
displayManager.sddm = {
|
|
enable = true;
|
|
wayland.enable = true; # important for Hyprland
|
|
theme = "sddm-sugar-dark";
|
|
};
|
|
|
|
pipewire = {
|
|
enable = true;
|
|
alsa.enable = true;
|
|
alsa.support32Bit = true;
|
|
pulse.enable = true;
|
|
jack.enable = true;
|
|
};
|
|
};
|
|
|
|
virtualisation = {
|
|
libvirtd.enable = true; # Enables libvirt daemon and KVM support
|
|
docker.enable = true; # Enable this only if you want Docker
|
|
};
|
|
|
|
programs.virt-manager.enable = true;
|
|
|
|
programs.hyprland.enable = true;
|
|
|
|
boot.kernelModules = [
|
|
"kvm"
|
|
"kvm-intel"
|
|
"v4l2loopback"
|
|
];
|
|
|
|
fonts = {
|
|
fontconfig.enable = true;
|
|
fontconfig.defaultFonts.monospace = [ "Meslo LG M Regular Nerd Font Complete Mono" ];
|
|
packages = with pkgs; [
|
|
nerd-fonts.meslo-lg
|
|
nerd-fonts.jetbrains-mono
|
|
nerd-fonts.agave
|
|
font-awesome
|
|
powerline-fonts
|
|
powerline-symbols
|
|
];
|
|
};
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
vim
|
|
lastpass-cli
|
|
wget
|
|
git
|
|
docker
|
|
xhost
|
|
docker-compose
|
|
gnumake42
|
|
go
|
|
cmake
|
|
gcc
|
|
gdb
|
|
networkmanagerapplet
|
|
pywalfox-native
|
|
# droidcam
|
|
# kdenlive
|
|
vlc
|
|
xcolor
|
|
adb-sync
|
|
wl-clipboard
|
|
stash
|
|
nwg-look
|
|
libsForQt5.qt5.qtgraphicaleffects
|
|
linuxPackages.v4l2loopback # Kernel module for virtual webcam
|
|
alsa-utils # Audio support
|
|
v4l-utils # Video4Linux tools
|
|
pipewire
|
|
qemu
|
|
libvirt
|
|
virt-manager
|
|
bridge-utils # For networking support
|
|
dnsmasq # DHCP for VM networking
|
|
ebtables # NAT support for VMs
|
|
grim
|
|
slurp
|
|
grimblast
|
|
swappy
|
|
dunst
|
|
jq
|
|
moreutils
|
|
hyprland
|
|
libnotify
|
|
coreutils
|
|
hyprshade
|
|
unityhub
|
|
pkg-config
|
|
xorg.libX11
|
|
xorg.libXcursor
|
|
xorg.libXrandr
|
|
xorg.libXinerama
|
|
xorg.libXi
|
|
mesa
|
|
libGL
|
|
alsa-lib
|
|
(pkgs.stdenv.mkDerivation {
|
|
pname = "sugar-candy-sddm-theme";
|
|
version = "latest";
|
|
src = pkgs.fetchFromGitHub {
|
|
owner = "MarianArlt";
|
|
repo = "sddm-sugar-dark";
|
|
rev = "master";
|
|
sha256 = "0153z1kylbhc9d12nxy9vpn0spxgrhgy36wy37pk6ysq7akaqlvy";
|
|
};
|
|
installPhase = ''
|
|
mkdir -p $out/share/sddm/themes/sddm-sugar-dark
|
|
cp -r * $out/share/sddm/themes/sddm-sugar-dark
|
|
'';
|
|
})
|
|
|
|
];
|
|
|
|
# Optional: Specify the SDDM theme configuration
|
|
# environment.etc."sddm.conf".text = lib.mkForce ''
|
|
# [Theme]
|
|
# Current=sddm-sugar-dark
|
|
# '';
|
|
#
|
|
# Miscellaneous Settings
|
|
nixpkgs.config.allowUnfree = true;
|
|
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
|
|
|
# System State Version
|
|
system.stateVersion = "25.11";
|
|
}
|
|
|