1
0
Fork 0
forked from autowolf/nix
flake-autowolf/configuration.nix

211 lines
5.2 KiB
Nix
Raw Normal View History

2026-02-22 19:59:14 -06:00
{
2026-02-23 12:15:31 +10:00
config,
inputs,
lib,
pkgs,
...
2026-02-23 12:28:01 +10:00
}: {
2026-02-23 12:15:31 +10:00
imports = [
./hardware-configuration.nix
];
2026-02-22 19:59:14 -06:00
2026-02-23 13:08:41 +10:00
nixpkgs = {
config.allowUnfree = true;
overlays = [
(self: super: {
hyprland = inputs.hyprland-git.packages."x86_64-linux".hyprland;
})
];
};
2026-02-23 13:17:35 +10:00
nix.settings = {
experimental-features = [
"nix-command"
"flakes"
];
download-buffer-size = 524288000; # 500 MiB
};
2026-02-22 19:59:14 -06:00
# Use the systemd-boot EFI boot loader.
2026-02-23 12:28:01 +10:00
boot.loader = {
systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
2026-02-22 19:59:14 -06:00
};
2026-02-23 12:28:01 +10:00
2026-02-22 19:59:14 -06:00
# Set your time zone.
time.timeZone = "America/Chicago";
# Select internationalisation properties.
2026-02-23 12:15:31 +10:00
i18n.defaultLocale = "en_US.UTF-8";
console = {
font = "Lat2-Terminus16";
keyMap = "us";
};
2026-02-22 19:59:14 -06:00
2026-02-23 12:28:01 +10:00
networking = {
hostName = "girlCore";
networkmanager.enable = true;
firewall = {
enable = true;
allowedTCPPorts = [];
allowedUDPPorts = [];
};
2026-02-23 12:15:31 +10:00
};
2026-02-22 19:59:14 -06:00
2026-02-23 12:15:31 +10:00
users.users.ashley = {
isNormalUser = true;
extraGroups = ["wheel"]; # Enable sudo for the user.
packages = with pkgs; [
tree
];
};
2026-02-23 13:08:41 +10:00
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
extraSpecialArgs = {inherit inputs;};
users.ashley = import ./home.nix;
};
2026-02-23 12:28:01 +10:00
services = {
2026-02-23 13:08:41 +10:00
displayManager = {
sddm = {
enable = true;
wayland.enable = ! config.services.xserver.enable; # experimental
};
2026-02-23 12:28:01 +10:00
defaultSession = "hyprland";
};
xserver.videoDrivers = lib.mkDefault ["nvidia"];
# Enable touchpad support (enabled default in most desktopManager).
libinput.enable = true;
# Enable audio
2026-02-23 13:17:35 +10:00
# Multimedia Framework
# With backwards compatability for alsa/pulseaudio/jack
2026-02-23 12:28:01 +10:00
pipewire = {
enable = true;
2026-02-23 13:17:35 +10:00
wireplumber.enable = true;
alsa.enable = true;
alsa.support32Bit = true;
2026-02-23 12:28:01 +10:00
pulse.enable = true;
2026-02-23 13:17:35 +10:00
jack.enable = true;
2026-02-23 12:28:01 +10:00
};
};
2026-02-23 13:17:35 +10:00
security.rtkit.enable = true; # simplifies pipewire's life
2026-02-23 12:28:01 +10:00
programs = {
hyprland = {
enable = true;
2026-02-23 13:08:41 +10:00
withUWSM = true; # Universal Wayland Session Manager
xwayland.enable = true;
2026-02-23 12:28:01 +10:00
};
2026-02-23 13:08:41 +10:00
gamemode.enable = true;
2026-02-23 12:28:01 +10:00
steam = {
enable = true;
2026-02-23 13:08:41 +10:00
gamescopeSession.enable = true; # .desktop entry for gamescope
remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true;
localNetworkGameTransfers.openFirewall = true;
# extraCompatPackages = with pkgs; [
# proton-ge-bin
# ];
2026-02-23 12:28:01 +10:00
};
silentSDDM = {
enable = true;
theme = "rei";
settings = {
"LoginScreen.LoginArea.Avatar" = {
shape = "circle";
active-border-color = "#ffcfce";
};
"LoginScreen" = {
background = "hana.jpg";
};
"LockScreen" = {
background = "kokomi96024.png";
};
};
};
};
hardware = {
2026-02-23 13:20:35 +10:00
bluetooth = {
enable = true;
powerOnBoot = true;
};
2026-02-23 12:28:01 +10:00
graphics = {
enable = true;
enable32Bit = true;
};
# nvidia drivers
2026-02-23 13:08:41 +10:00
nvidia = {
2026-02-23 12:28:01 +10:00
package = config.boot.kernelPackages.nvidiaPackages.stable;
2026-02-23 13:08:41 +10:00
# WARNING: whether to use open-source or proprietary kernel modules
# open = lib.mkOverride 990 (package ? open && package ? firmware);
open = true;
2026-02-23 12:28:01 +10:00
nvidiaSettings = true;
modesetting.enable = true;
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
# Enable this if you have graphical corruption issues or application crashes after waking
# up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
# of just the bare essentials.
powerManagement = {
enable = false;
finegrained = false;
};
};
};
environment = {
2026-02-23 13:08:41 +10:00
# NOTE: loaded earlier than `environment.variables`
sessionVariables = {
# Hint Electrons apps to use Wayland
NIXOS_OZONE_WL = "1";
};
2026-02-23 12:28:01 +10:00
variables = {
EDITOR = "nvim";
};
# List packages installed in system profile.
# You can use https://search.nixos.org/ to find more packages (and options).
systemPackages = with pkgs; [
git
neovim
wget
2026-02-23 13:08:41 +10:00
steamcmd
2026-02-23 12:28:01 +10:00
];
};
2026-02-22 19:59:14 -06:00
# This option defines the first version of NixOS you have installed on this particular machine,
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
#
# Most users should NEVER change this value after the initial install, for any reason,
# even if you've upgraded your system to a new NixOS release.
#
# This value does NOT affect the Nixpkgs version your packages and OS are pulled from,
# so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how
# to actually do that.
#
# This value being lower than the current NixOS release does NOT mean your system is
# out of date, out of support, or vulnerable.
#
# Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
# and migrated your data accordingly.
#
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
system.stateVersion = "25.11"; # Did you read the comment?
}