diff --git a/hosts/common/system/configs/cpu/default.nix b/hosts/common/system/configs/cpu/default.nix new file mode 100644 index 0000000..64eefec --- /dev/null +++ b/hosts/common/system/configs/cpu/default.nix @@ -0,0 +1,4 @@ +{ ... }: +{ + imports = [ ./options.nix ]; +} diff --git a/hosts/common/system/configs/cpu/options.nix b/hosts/common/system/configs/cpu/options.nix new file mode 100644 index 0000000..ae6ebca --- /dev/null +++ b/hosts/common/system/configs/cpu/options.nix @@ -0,0 +1,17 @@ +{ lib, ... }: +{ + options.hardware.cpu = + with lib; + with types; + { + cores = mkOption { + type = ints.positive; + description = "The number of cpu cores."; + }; + + threads = mkOption { + type = ints.positive; + description = "The number of cpu threads."; + }; + }; +} diff --git a/hosts/common/system/configs/impermanence/default.nix b/hosts/common/system/configs/impermanence/default.nix index 462d093..4ed40ab 100644 --- a/hosts/common/system/configs/impermanence/default.nix +++ b/hosts/common/system/configs/impermanence/default.nix @@ -26,6 +26,7 @@ }; }; + # uuidgen -r | tr -d - # https://github.com/NixOS/nixpkgs/blob/master/nixos/doc/manual/administration/systemd-state.section.md # https://github.com/NixOS/nixpkgs/pull/286140/files # https://git.eisfunke.com/config/nixos/-/blob/e65e1dc21d06d07b454005762b177ef151f8bfb6/nixos/machine-id.nix diff --git a/hosts/common/system/configs/tlp/default.nix b/hosts/common/system/configs/tlp/default.nix new file mode 100644 index 0000000..ea48f56 --- /dev/null +++ b/hosts/common/system/configs/tlp/default.nix @@ -0,0 +1,12 @@ +{ ... }: +{ + services.tlp = { + enable = true; + settings = { + CPU_SCALING_GOVERNOR_ON_AC = "performance"; + CPU_SCALING_GOVERNOR_ON_BAT = "powersave"; + CPU_ENERGY_PERF_POLICY_ON_AC = "performance"; + CPU_ENERGY_PERF_POLICY_ON_BAT = "power"; + }; + }; +} diff --git a/hosts/common/user/configs/console/yt-dlp/default.nix b/hosts/common/user/configs/console/yt-dlp/default.nix new file mode 100644 index 0000000..62a310e --- /dev/null +++ b/hosts/common/user/configs/console/yt-dlp/default.nix @@ -0,0 +1,20 @@ +{ + user ? throw "user argument is required", + home ? throw "home argument is required", +}: +{ config, ... }: +{ + home-manager.users.${user}.programs.yt-dlp = { + enable = true; + settings = { + live-from-start = true; + concurrent-fragments = config.hardware.cpu.threads; + lazy-playlist = true; + cookies-from-browser = "firefox"; + embed-subs = true; + sub-langs = "all,-live_chat"; + embed-thumbnail = true; + fixup = "detect_or_warn"; + }; + }; +} diff --git a/hosts/common/user/configs/gui/firefox/default.nix b/hosts/common/user/configs/gui/firefox/default.nix index 918c2f8..3c4739a 100644 --- a/hosts/common/user/configs/gui/firefox/default.nix +++ b/hosts/common/user/configs/gui/firefox/default.nix @@ -91,13 +91,13 @@ }; }; - xdg.mimeApps.defaultApplications = { - "text/html" = "firefox.desktop"; - "x-scheme-handler/http" = "firefox.desktop"; - "x-scheme-handler/https" = "firefox.desktop"; - "x-scheme-handler/about" = "firefox.desktop"; - "x-scheme-handler/unknown" = "firefox.desktop"; - }; + xdg.mimeApps.defaultApplications = lib.attrsets.genAttrs [ + "text/html" + "x-scheme-handler/http" + "x-scheme-handler/https" + "x-scheme-handler/about" + "x-scheme-handler/unknown" + ] (_: "firefox.desktop"); home.sessionVariables.DEFAULT_BROWSER = lib.meta.getExe pkgs.firefox; diff --git a/hosts/eirene/base/default.nix b/hosts/eirene/base/default.nix index 09253ee..e088f80 100644 --- a/hosts/eirene/base/default.nix +++ b/hosts/eirene/base/default.nix @@ -12,6 +12,7 @@ device = "/dev/disk/by-id/nvme-SAMSUNG_MZVL22T0HBLB-00BL2_S64RNE0R602762"; }) ./hardware-configuration.nix + ../../common/system/configs/tlp ../. ]; @@ -19,7 +20,13 @@ # https://github.com/NixOS/nixos-hardware/tree/master/lenovo/legion/16achg6 hardware = { - cpu.amd.updateMicrocode = true; + enableAllFirmware = true; + + cpu = { + cores = 8; + threads = 16; + amd.updateMicrocode = true; + }; nvidia = { modesetting.enable = true; @@ -45,23 +52,12 @@ rocmPackages.clr.icd ]; }; - - enableAllFirmware = true; }; services = { xserver.videoDrivers = [ "nvidia" ]; fstrim.enable = true; - tlp = { - enable = true; - settings = { - DISK_DEVICES = "nvme0n1 nvme1n1"; - CPU_SCALING_GOVERNOR_ON_AC = "performance"; - CPU_SCALING_GOVERNOR_ON_BAT = "powersave"; - CPU_ENERGY_PERF_POLICY_ON_AC = "performance"; - CPU_ENERGY_PERF_POLICY_ON_BAT = "power"; - }; - }; + tlp.settings.DISK_DEVICES = "nvme0n1 nvme1n1"; }; boot = { diff --git a/hosts/eirene/default.nix b/hosts/eirene/default.nix index f6ceec4..6d1f99e 100644 --- a/hosts/eirene/default.nix +++ b/hosts/eirene/default.nix @@ -5,6 +5,7 @@ ../common/system/configs/brightnessctl ../common/system/configs/btop ../common/system/configs/btrfs + ../common/system/configs/cpu ../common/system/configs/docker ../common/system/configs/fastfetch ../common/system/configs/getty diff --git a/hosts/eirene/nick.nix b/hosts/eirene/nick.nix index 616653c..f1d0a18 100644 --- a/hosts/eirene/nick.nix +++ b/hosts/eirene/nick.nix @@ -30,6 +30,7 @@ in (import ../common/user/configs/console/tree { inherit user home; }) (import ../common/user/configs/console/wget { inherit user home; }) (import ../common/user/configs/console/xdg { inherit user home; }) + (import ../common/user/configs/console/yt-dlp { inherit user home; }) (import ../common/user/configs/console/zsh { inherit user home; }) (import ../common/user/configs/gui/ags { inherit user home; }) (import ../common/user/configs/gui/bluetooth { inherit user home; })