Compare commits

..

No commits in common. "8026bc86037f89bf4828707587ec545e7a7aabd2" and "99818d0119644fe1c223cdfa2f0977d214becd4d" have entirely different histories.

5 changed files with 73 additions and 90 deletions

View File

@ -1,55 +1,33 @@
{ pkgs, ... }: { config, pkgs, ... }:
{ {
imports = [ imports = [ # Include the results of the hardware scan.
# Include the results of the hardware scan.
./hardware-configuration.nix ./hardware-configuration.nix
# Import modules # GUI
../../modules/system/default.nix ../../modules/system/gui/steam.nix
]; ../../modules/system/gui/hyprland.nix
../../modules/system/gui/thunar.nix
settings = { # CLI
display-manager = "cosmic-greeter"; ../../modules/system/cli/common.nix
desktop-environments = {
cosmic.enable = true; # Hardware
hyprland.enable = false; ../../modules/system/hardware/firewall.nix
gnome.enable = false; ../../modules/system/hardware/garbage-collection.nix
}; ../../modules/system/hardware/locale.nix
applications = { ../../modules/system/hardware/nvidia.nix
common.enable = true; ];
steam.enable = true;
thunar.enable = false;
};
services = {
docker.enable = false;
quickemu.enable = false;
sunshine.enable = false;
garbage-collection.enable = true;
};
hardware = {
fprint.enable = false;
printing.enable = true;
bluetooth.enable = false;
firewall.enable = true;
locale.enable = true;
nvidia.enable = true;
};
};
nix.settings = { nix.settings = {
experimental-features = [ "nix-command" "flakes" ]; experimental-features = [ "nix-command" "flakes" ];
substituters = [ substituters = [
"https://nix-community.cachix.org" "https://nix-community.cachix.org"
"https://cosmic.cachix.org/"
];
trusted-public-keys = [
"cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE="
]; ];
}; };
# Bootloader. # Bootloader.
boot.loader.efi.canTouchEfiVariables = true; boot.loader.efi.canTouchEfiVariables = true;
boot.loader.grub = { boot.loader.grub = {
@ -58,7 +36,6 @@
device = "nodev"; device = "nodev";
}; };
# Networking configuration
networking.hostName = "xv-desktop"; # Define your hostname. networking.hostName = "xv-desktop"; # Define your hostname.
networking.interfaces.enp7s0.wakeOnLan.enable = true; networking.interfaces.enp7s0.wakeOnLan.enable = true;

View File

@ -2,12 +2,15 @@
{ {
imports = [ imports = [
# Modules # GUI
../../modules/home/default.nix ../../modules/home/gui/common
]; ../../modules/home/gui/hyprland
../../modules/home/gui/nextcloud.nix
../../modules/home/gui/theming.nix
# Enable home-manager # CLI
programs.home-manager.enable = true; ../../modules/home/cli/common
];
options = { options = {
host = lib.mkOption { host = lib.mkOption {
@ -38,28 +41,6 @@
unstable.prismlauncher unstable.prismlauncher
]; ];
settings = {
applications.common.enable = true;
applications.alacritty.enable = false;
applications.devenv.enable = true;
applications.firefox.enable = true;
applications.git.enable = true;
applications.helix.enable = true;
applications.zsh.enable = true;
applications.ssh.enable = true;
applications.thunderbird.enable = true;
applications.yazi.enable = true;
applications.zellij.enable = true;
services.nextcloud-sync.enable = true;
theming.fonts.enable = true;
theming.nix-colors.enable = false;
theming.stylix.enable = true;
desktop-environments.hyprland.enable = false;
};
home.stateVersion = "24.05"; home.stateVersion = "24.05";
}; };
} }

View File

@ -33,7 +33,6 @@
bluetooth.enable = true; bluetooth.enable = true;
firewall.enable = true; firewall.enable = true;
locale.enable = true; locale.enable = true;
nvidia.enable = false;
}; };
}; };
@ -50,6 +49,9 @@
]; ];
}; };
# Configure hardware
services.ratbagd.enable = true;
# Bootloader. # Bootloader.
boot.loader.efi.canTouchEfiVariables = true; boot.loader.efi.canTouchEfiVariables = true;
boot.loader.grub = { boot.loader.grub = {
@ -76,5 +78,15 @@
boot.kernelPackages = pkgs.linuxPackages_latest; boot.kernelPackages = pkgs.linuxPackages_latest;
# Configure wacom tablet
hardware.opentabletdriver = {
enable = true;
package = pkgs.unstable.opentabletdriver;
};
services.libinput.enable = true;
services.fwupd.enable = true;
system.stateVersion = "24.05"; system.stateVersion = "24.05";
} }

View File

@ -33,7 +33,6 @@
bluetooth.enable = true; bluetooth.enable = true;
firewall.enable = true; firewall.enable = true;
locale.enable = true; locale.enable = true;
nvidia.enable = false;
}; };
}; };

View File

@ -1,32 +1,46 @@
{ config, lib, ... }: { config, lib, pkgs, nixpkgs, ... }:
with lib; {
let
cfg = config.settings.hardware.nvidia;
in {
options = {
settings.hardware.firewall.enable = lib.mkOption {
type = lib.types.bool;
description = ''
Enable nvidia drivers
'';
};
};
config = mkIf cfg.enable {
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
"nvidia-x11" "nvidia-x11"
"nvidia-settings" "nvidia-settings"
]; ];
hardware.graphics.enable = true; hardware.opengl = {
enable = true;
driSupport = true;
driSupport32Bit = true;
};
services.xserver.videoDrivers = ["nvidia"]; # or "nvidiaLegacy470 etc. services.xserver.videoDrivers = ["nvidia"]; # or "nvidiaLegacy470 etc.
hardware.nvidia = { hardware.nvidia = {
open = true;
package = config.boot.kernelPackages.nvidiaPackages.beta; modesetting.enable = true;
powerManagement.enable = false;
# Fine-grained power management. Turns off GPU when not in use.
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
powerManagement.finegrained = false;
# Use the NVidia open source kernel module (not to be confused with the
# independent third-party "nouveau" open source driver).
# Support is limited to the Turing and later architectures. Full list of
# supported GPUs is at:
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
# Only available from driver 515.43.04+
# Currently alpha-quality/buggy, so false is currently the recommended setting.
open = false;
nvidiaSettings = true;
package = config.boot.kernelPackages.nvidiaPackages.mkDriver {
version = "555.58.02";
sha256_64bit = "sha256-xctt4TPRlOJ6r5S54h5W6PT6/3Zy2R4ASNFPu8TSHKM=";
sha256_aarch64 = "sha256-xctt4TPRlOJ6r5S54h5W6PT6/3Zy2R4ASNFPu8TSHKM=";
openSha256 = "sha256-ZpuVZybW6CFN/gz9rx+UJvQ715FZnAOYfHn5jt5Z2C8=";
settingsSha256 = "sha256-ZpuVZybW6CFN/gz9rx+UJvQ715FZnAOYfHn5jt5Z2C8=";
persistencedSha256 = lib.fakeSha256;
}; };
}; };
} }