# Edit this configuration file to define what should be installed on # your system. Help is available in the configuration.nix(5) man page, on # https://search.nixos.org/options and in the NixOS manual (`nixos-help`). { outputs, lib, pkgs, ... }: let pkgsVersion = pkgs.unstable; environmentVariables = { STEAM_FORCE_DESKTOPUI_SCALING = "1.0"; GDK_SCALE = "1"; EDITOR = "code --wait"; VISUAL = "code --wait"; }; systemPackages = with pkgsVersion; [ aha aspell aspellDicts.en aspellDicts.en-computers aspellDicts.en-science borgbackup brscan5 clinfo direnv efibootmgr gparted grsync kmod kdePackages.ksvg lact memtest86-efi memtest86plus nano occt onlyoffice-bin os-prober nil papirus-icon-theme pciutils qemu_full rclone rclone-browser restic restic-browser restic-integrity rsync sane-frontends sbctl smartmontools usbutils udisks2 vim vulkan-tools wget winetricks ]; lactConfig = '' daemon: log_level: info admin_groups: - wheel - sudo disable_clocks_cleanup: false apply_settings_timer: 5 gpus: 1002:73BF-1002:0E3A-0000:03:00.0: fan_control_enabled: true fan_control_settings: mode: curve static_speed: 1.0 temperature_key: edge interval_ms: 500 curve: 30: 0.0 40: 0.2 50: 0.35 60: 0.5 70: 0.75 80: 1.0 spindown_delay_ms: 0 change_threshold: 0 pmfw_options: {} power_cap: 293.0 performance_level: auto voltage_offset: 0 power_states: {} ''; occt = pkgs.stdenv.mkDerivation { pname = "occt"; version = "14.0.10"; src = pkgs.fetchurl { url = "https://www.ocbase.com/download-bin/edition:Personal/os:Linux"; sha256 = "sha256-UKObmwQpYMuG6D6jb5Wrs0FO/sxijUlHqCezG45KqJc="; }; dontUnpack = true; buildPhase = '' mkdir -p $out/bin cp $src $out/bin/OCCT chmod +x $out/bin/OCCT ''; installPhase = "true"; }; in { imports = [ ./boot.nix ./filesystems.nix ./hardware-configuration.nix ./networking.nix ./nix.nix ./services.nix ./sops.nix ./users.nix ../default.nix ../../share/amd # ../../modules/desktop-environments/cosmic/specialisation.nix ]; # Environment configuration environment = { systemPackages = systemPackages; etc."lact/config.yaml".text = lactConfig; variables = environmentVariables; }; # Hardware configuration hardware = { # Enable the QMK firmware flashing tool. keyboard = { qmk.enable = true; }; # Enable Sane and Brother printer support. sane = { enable = true; brscan5.enable = true; extraBackends = [ pkgsVersion.brscan5 ]; }; }; # Nixpkgs configuration nixpkgs = { # add unstable and stable overlays overlays = [ outputs.overlays.nixpkgs-unstable outputs.overlays.nixpkgs-stable ]; config.permittedInsecurePackages = [ # ... ]; }; # Programs configuration programs = { nix-ld = { enable = true; libraries = with pkgs; [ bash glib libgcc icu zlib fontconfig xorg.libX11 xorg.libICE xorg.libSM xorg.libXcursor xorg.libXrandr xorg.libXi ]; }; gamemode.enable = true; coolercontrol.enable = true; kdeconnect = { enable = true; package = pkgs.gnomeExtensions.gsconnect; }; nix-index = { enable = true; enableBashIntegration = true; enableZshIntegration = true; }; }; # Common Configuration share = { gaming.enable = true; hardware.amd = { enable = lib.mkDefault true; lact.enable = lib.mkDefault true; }; }; # Time configuration time = { hardwareClockInLocalTime = lib.mkDefault false; }; # Virtualisation configuration virtualisation = { libvirtd.enable = lib.mkDefault true; waydroid.enable = lib.mkDefault true; }; }