mirror of
https://github.com/alyraffauf/nixcfg.git
synced 2024-11-21 19:53:55 -05:00
simplified module options and host configs after dropping nixos-hardware input
This commit is contained in:
parent
f472fc383e
commit
195502dcbe
53
flake.lock
53
flake.lock
|
@ -147,11 +147,11 @@
|
||||||
"xdph": "xdph"
|
"xdph": "xdph"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1718835324,
|
"lastModified": 1719068705,
|
||||||
"narHash": "sha256-U5eKTPAXppfSIqKqMIgbyuTBy1gr2seSOUl8sUSR8FE=",
|
"narHash": "sha256-gXVqDR1SWofZMZnCz7pXfOP5+e/PNgvZGSI3Eoh+r7c=",
|
||||||
"ref": "refs/heads/main",
|
"ref": "refs/heads/main",
|
||||||
"rev": "fabc30df52ab5d2c369fc8acd4ff909a6ba3b8ac",
|
"rev": "0b924f541c744f96d32c9a0d98dcfd90205bab4c",
|
||||||
"revCount": 4870,
|
"revCount": 4875,
|
||||||
"submodules": true,
|
"submodules": true,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/hyprwm/Hyprland"
|
"url": "https://github.com/hyprwm/Hyprland"
|
||||||
|
@ -270,7 +270,9 @@
|
||||||
},
|
},
|
||||||
"iio-hyprland": {
|
"iio-hyprland": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_2",
|
"nixpkgs": [
|
||||||
|
"nixpkgsUnstable"
|
||||||
|
],
|
||||||
"systems": "systems_3"
|
"systems": "systems_3"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
|
@ -287,22 +289,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixos-hardware": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1718894893,
|
|
||||||
"narHash": "sha256-hxQBUtDbFOCCW1CsFZTS9Q5Ov1ZKdJgbBZHSez1M6iA=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixos-hardware",
|
|
||||||
"rev": "083823b7904e43a4fc1c7229781417e875359a42",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "master",
|
|
||||||
"repo": "nixos-hardware",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1718530797,
|
"lastModified": 1718530797,
|
||||||
|
@ -321,11 +307,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgsUnstable": {
|
"nixpkgsUnstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1718714799,
|
"lastModified": 1718895438,
|
||||||
"narHash": "sha256-FUZpz9rg3gL8NVPKbqU8ei1VkPLsTIfAJ2fdAf5qjak=",
|
"narHash": "sha256-k3JqJrkdoYwE3fHE6xGDY676AYmyh4U2Zw+0Bwe5DLU=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "c00d587b1a1afbf200b1d8f0b0e4ba9deb1c7f0e",
|
"rev": "d603719ec6e294f034936c0d0dc06f689d91b6c3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -336,22 +322,6 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
|
||||||
"lastModified": 1713714899,
|
|
||||||
"narHash": "sha256-+z/XjO3QJs5rLE5UOf015gdVauVRQd2vZtsFkaXBq2Y=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "6143fc5eeb9c4f00163267708e26191d1e918932",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixos-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_3": {
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1718835956,
|
"lastModified": 1718835956,
|
||||||
"narHash": "sha256-wM9v2yIxClRYsGHut5vHICZTK7xdrUGfrLkXvSuv6s4=",
|
"narHash": "sha256-wM9v2yIxClRYsGHut5vHICZTK7xdrUGfrLkXvSuv6s4=",
|
||||||
|
@ -374,8 +344,7 @@
|
||||||
"home-manager": "home-manager_2",
|
"home-manager": "home-manager_2",
|
||||||
"hyprland": "hyprland",
|
"hyprland": "hyprland",
|
||||||
"iio-hyprland": "iio-hyprland",
|
"iio-hyprland": "iio-hyprland",
|
||||||
"nixos-hardware": "nixos-hardware",
|
"nixpkgs": "nixpkgs_2",
|
||||||
"nixpkgs": "nixpkgs_3",
|
|
||||||
"nixpkgsUnstable": "nixpkgsUnstable"
|
"nixpkgsUnstable": "nixpkgsUnstable"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -23,10 +23,10 @@
|
||||||
hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
|
hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
|
||||||
|
|
||||||
## Motion sensor and auto-rotate for Hyprland.
|
## Motion sensor and auto-rotate for Hyprland.
|
||||||
iio-hyprland.url = "github:JeanSchoeller/iio-hyprland";
|
iio-hyprland = {
|
||||||
|
url = "github:JeanSchoeller/iio-hyprland";
|
||||||
# Pre-baked hardware support for various devices.
|
inputs.nixpkgs.follows = "nixpkgsUnstable";
|
||||||
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
};
|
||||||
|
|
||||||
# Latest stable NixOS release.
|
# Latest stable NixOS release.
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
|
||||||
|
|
|
@ -13,22 +13,25 @@
|
||||||
./home.nix
|
./home.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
boot = {
|
boot.loader = {
|
||||||
# Bootloader.
|
efi.canTouchEfiVariables = true;
|
||||||
loader.systemd-boot.enable = true;
|
systemd-boot.enable = true;
|
||||||
loader.efi.canTouchEfiVariables = true;
|
|
||||||
|
|
||||||
# Use latest Linux kernel.
|
|
||||||
kernelPackages = pkgs.linuxPackages_latest;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
networking.hostName = "fallarbor"; # Define your hostname.
|
networking.hostName = "fallarbor";
|
||||||
|
|
||||||
services = {
|
system.stateVersion = "24.05";
|
||||||
fwupd.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
alyraffauf = {
|
alyraffauf = {
|
||||||
|
apps.steam.enable = true;
|
||||||
|
base.enable = true;
|
||||||
|
|
||||||
|
desktop = {
|
||||||
|
enable = true;
|
||||||
|
greetd.enable = true;
|
||||||
|
hyprland.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
flatpak.enable = true;
|
flatpak.enable = true;
|
||||||
syncthing = {
|
syncthing = {
|
||||||
|
@ -37,33 +40,17 @@
|
||||||
};
|
};
|
||||||
tailscale.enable = true;
|
tailscale.enable = true;
|
||||||
};
|
};
|
||||||
base = {
|
|
||||||
enable = true;
|
|
||||||
plymouth.enable = true;
|
|
||||||
zramSwap = {enable = true;};
|
|
||||||
};
|
|
||||||
users = {
|
users = {
|
||||||
aly = {
|
aly = {
|
||||||
enable = true;
|
enable = true;
|
||||||
password = "$y$j9T$0p6rc4p5sn0LJ/6XyAGP7.$.wmTafwMMscdW1o8kqqoHJP7U8kF.4WBmzzcPYielR3";
|
password = "$y$j9T$0p6rc4p5sn0LJ/6XyAGP7.$.wmTafwMMscdW1o8kqqoHJP7U8kF.4WBmzzcPYielR3";
|
||||||
};
|
};
|
||||||
|
|
||||||
dustin = {
|
dustin = {
|
||||||
enable = true;
|
enable = true;
|
||||||
password = "$y$j9T$OXQYhj4IWjRJWWYsSwcqf.$lCcdq9S7m0EAdej9KMHWj9flH8K2pUb2gitNhLTlLG/";
|
password = "$y$j9T$OXQYhj4IWjRJWWYsSwcqf.$lCcdq9S7m0EAdej9KMHWj9flH8K2pUb2gitNhLTlLG/";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
desktop = {
|
|
||||||
enable = true;
|
|
||||||
greetd.enable = true;
|
|
||||||
hyprland.enable = true;
|
|
||||||
};
|
|
||||||
apps = {
|
|
||||||
steam.enable = true;
|
|
||||||
};
|
|
||||||
scripts = {
|
|
||||||
hoenn.enable = true;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
system.stateVersion = "24.05";
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,53 +2,85 @@
|
||||||
config,
|
config,
|
||||||
inputs,
|
inputs,
|
||||||
lib,
|
lib,
|
||||||
modulesPath,
|
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
imports = [
|
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
|
||||||
inputs.nixos-hardware.nixosModules.framework-11th-gen-intel
|
|
||||||
];
|
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
|
blacklistedKernelModules = ["cros-usbpd-charger"];
|
||||||
|
|
||||||
|
extraModulePackages = with config.boot.kernelPackages; [
|
||||||
|
framework-laptop-kmod
|
||||||
|
];
|
||||||
|
|
||||||
initrd = {
|
initrd = {
|
||||||
availableKernelModules = ["xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod"];
|
availableKernelModules = ["xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod"];
|
||||||
kernelModules = [];
|
kernelModules = ["i915"];
|
||||||
};
|
};
|
||||||
|
|
||||||
extraModulePackages = [];
|
kernelModules = [
|
||||||
kernelModules = ["kvm-intel"];
|
# https://github.com/DHowett/framework-laptop-kmod?tab=readme-ov-file#usage
|
||||||
|
"cros_ec_lpcs"
|
||||||
|
"cros_ec"
|
||||||
|
"i915"
|
||||||
|
"kvm-intel"
|
||||||
|
];
|
||||||
|
|
||||||
|
kernelPackages = pkgs.linuxPackages_latest;
|
||||||
|
|
||||||
|
kernelParams = [
|
||||||
|
"nvme.noacpi=1" # https://community.frame.work/t/linux-battery-life-tuning/6665/156
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
nixpkgs = {
|
environment = {
|
||||||
hostPlatform = lib.mkDefault "x86_64-linux";
|
sessionVariables = {
|
||||||
|
LIBVA_DRIVER_NAME = "iHD"; # Force intel-media-driver
|
||||||
|
VDPAU_DRIVER = "va_gl";
|
||||||
|
};
|
||||||
|
|
||||||
|
systemPackages = [pkgs.framework-tool] ++ lib.optional (pkgs ? "fw-ectool") pkgs.fw-ectool;
|
||||||
};
|
};
|
||||||
|
|
||||||
hardware = {
|
hardware = {
|
||||||
cpu.intel.updateMicrocode =
|
acpilight.enable = true;
|
||||||
lib.mkDefault config.hardware.enableRedistributableFirmware;
|
cpu.intel.updateMicrocode = true;
|
||||||
|
|
||||||
enableAllFirmware = true;
|
enableAllFirmware = true;
|
||||||
|
|
||||||
opengl = {
|
opengl = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
driSupport = true;
|
||||||
|
driSupport32Bit = true;
|
||||||
|
|
||||||
extraPackages = with pkgs; [
|
extraPackages = with pkgs; [
|
||||||
intel-media-driver # LIBVA_DRIVER_NAME=iHD
|
intel-media-driver # LIBVA_DRIVER_NAME=iHD
|
||||||
intel-vaapi-driver # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium)
|
intel-vaapi-driver # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium)
|
||||||
libvdpau-va-gl
|
libvdpau-va-gl
|
||||||
];
|
];
|
||||||
|
|
||||||
|
extraPackages32 = with pkgs.driversi686Linux; [
|
||||||
|
intel-media-driver # LIBVA_DRIVER_NAME=iHD
|
||||||
|
intel-vaapi-driver # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium)
|
||||||
|
libvdpau-va-gl
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
sensor.iio.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.sessionVariables = {
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
LIBVA_DRIVER_NAME = "iHD"; # Force intel-media-driver
|
|
||||||
};
|
|
||||||
|
|
||||||
# Save power/better manage heat & fans.
|
# Save power/better manage heat & fans.
|
||||||
powerManagement.powertop.enable = true;
|
powerManagement.powertop.enable = true;
|
||||||
services.thermald.enable = true;
|
|
||||||
|
|
||||||
networking.useDHCP = lib.mkDefault true;
|
services = {
|
||||||
|
fprintd.enable = true;
|
||||||
|
fstrim.enable = true;
|
||||||
|
fwupd.enable = true;
|
||||||
|
thermald.enable = true;
|
||||||
|
|
||||||
|
udev.extraRules = ''
|
||||||
|
# Ethernet expansion card support
|
||||||
|
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="0bda", ATTR{idProduct}=="8156", ATTR{power/autosuspend}="20"
|
||||||
|
'';
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
{
|
{
|
||||||
inputs,
|
|
||||||
config,
|
config,
|
||||||
pkgs,
|
inputs,
|
||||||
lib,
|
lib,
|
||||||
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
home-manager = {
|
home-manager = {
|
||||||
|
|
|
@ -13,59 +13,47 @@
|
||||||
./home.nix
|
./home.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
boot = {
|
boot.loader = {
|
||||||
# Bootloader.
|
efi.canTouchEfiVariables = true;
|
||||||
loader.systemd-boot.enable = true;
|
systemd-boot.enable = true;
|
||||||
loader.efi.canTouchEfiVariables = true;
|
|
||||||
|
|
||||||
# Use latest Linux kernel.
|
|
||||||
kernelPackages = pkgs.linuxPackages_latest;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
networking.hostName = "lavaridge"; # Define your hostname.
|
networking.hostName = "lavaridge";
|
||||||
|
|
||||||
services = {
|
system.stateVersion = "24.05";
|
||||||
fwupd.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
alyraffauf = {
|
alyraffauf = {
|
||||||
base = {
|
|
||||||
enable = true;
|
|
||||||
sambaAutoMount = true;
|
|
||||||
plymouth.enable = true;
|
|
||||||
zramSwap = {enable = true;};
|
|
||||||
};
|
|
||||||
users = {
|
|
||||||
aly = {
|
|
||||||
enable = true;
|
|
||||||
password = "$y$j9T$NSS7QcEtN4yiigPyofwlI/$nxdgz0lpySa0heDMjGlHe1gX3BWf48jK6Tkfg4xMEs6";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
desktop = {
|
|
||||||
enable = true;
|
|
||||||
greetd = {
|
|
||||||
enable = true;
|
|
||||||
session = lib.getExe config.programs.hyprland.package;
|
|
||||||
autologin = {
|
|
||||||
enable = true;
|
|
||||||
user = "aly";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
hyprland.enable = true;
|
|
||||||
};
|
|
||||||
apps = {
|
apps = {
|
||||||
steam.enable = true;
|
steam.enable = true;
|
||||||
podman.enable = true;
|
podman.enable = true;
|
||||||
virt-manager.enable = true;
|
virt-manager.enable = true;
|
||||||
};
|
};
|
||||||
scripts = {
|
|
||||||
hoenn.enable = true;
|
base.enable = true;
|
||||||
|
|
||||||
|
desktop = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
greetd = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
autologin = {
|
||||||
|
enable = true;
|
||||||
|
user = "aly";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
hyprland.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
syncthing.enable = true;
|
syncthing.enable = true;
|
||||||
tailscale.enable = true;
|
tailscale.enable = true;
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
|
||||||
system.stateVersion = "24.05";
|
users.aly = {
|
||||||
|
enable = true;
|
||||||
|
password = "$y$j9T$NSS7QcEtN4yiigPyofwlI/$nxdgz0lpySa0heDMjGlHe1gX3BWf48jK6Tkfg4xMEs6";
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,49 +1,52 @@
|
||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
|
||||||
# and may be overwritten by future invocations. Please make changes
|
|
||||||
# to /etc/nixos/configuration.nix instead.
|
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
inputs,
|
inputs,
|
||||||
lib,
|
lib,
|
||||||
modulesPath,
|
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
imports = [
|
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
|
||||||
inputs.nixos-hardware.nixosModules.framework-13-7040-amd
|
|
||||||
];
|
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
|
extraModulePackages = with config.boot.kernelPackages; [
|
||||||
|
framework-laptop-kmod
|
||||||
|
];
|
||||||
|
|
||||||
initrd = {
|
initrd = {
|
||||||
availableKernelModules = ["nvme" "xhci_pci" "thunderbolt" "usb_storage" "sd_mod"];
|
availableKernelModules = ["nvme" "sd_mod" "thunderbolt" "usb_storage" "xhci_pci"];
|
||||||
kernelModules = ["amdgpu"];
|
kernelModules = ["amdgpu"];
|
||||||
};
|
};
|
||||||
|
|
||||||
extraModulePackages = [];
|
kernelModules = ["amdgpu" "cros_ec" "cros_ec_lpcs" "kvm-amd"];
|
||||||
kernelModules = ["kvm-amd" "amdgpu"];
|
kernelPackages = pkgs.linuxPackages_latest;
|
||||||
kernelParams = ["amdgpu.abmlevel=0"];
|
kernelParams = ["amdgpu.abmlevel=0" "amd_pstate=active"];
|
||||||
};
|
};
|
||||||
|
|
||||||
hardware = {
|
environment.systemPackages = [pkgs.framework-tool];
|
||||||
cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
|
||||||
|
|
||||||
|
hardware = {
|
||||||
|
cpu.amd.updateMicrocode = true;
|
||||||
enableAllFirmware = true;
|
enableAllFirmware = true;
|
||||||
|
|
||||||
opengl = {
|
opengl = {
|
||||||
## radv: an open-source Vulkan driver from freedesktop
|
enable = true;
|
||||||
driSupport = true;
|
driSupport = true;
|
||||||
driSupport32Bit = true;
|
driSupport32Bit = true;
|
||||||
|
|
||||||
## amdvlk: an open-source Vulkan driver from AMD
|
|
||||||
extraPackages = [pkgs.rocmPackages.clr.icd pkgs.amdvlk];
|
extraPackages = [pkgs.rocmPackages.clr.icd pkgs.amdvlk];
|
||||||
extraPackages32 = [pkgs.driversi686Linux.amdvlk];
|
extraPackages32 = [pkgs.driversi686Linux.amdvlk];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
sensor.iio.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
services.xserver.videoDrivers = ["amdgpu"];
|
|
||||||
|
|
||||||
networking.useDHCP = lib.mkDefault true;
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
|
||||||
|
services = {
|
||||||
|
fprintd.enable = true;
|
||||||
|
fstrim.enable = true;
|
||||||
|
fwupd.enable = true;
|
||||||
|
|
||||||
|
udev.extraRules = ''
|
||||||
|
# Ethernet expansion card support
|
||||||
|
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="0bda", ATTR{idProduct}=="8156", ATTR{power/autosuspend}="20"
|
||||||
|
'';
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
{
|
{
|
||||||
inputs,
|
|
||||||
config,
|
config,
|
||||||
pkgs,
|
inputs,
|
||||||
lib,
|
lib,
|
||||||
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
home-manager = {
|
home-manager = {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Custom Desktop with Ryzen CPU and Nvidia GPU.
|
# Custom desktop with AMD Ryzen 5 5600x, 32GB RAM, AMD Rx 7800 XT, and 1TB SSD + 2TB SSD.
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
inputs,
|
inputs,
|
||||||
|
@ -13,62 +13,61 @@
|
||||||
./home.nix
|
./home.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
boot = {
|
boot.loader = {
|
||||||
# Bootloader.
|
efi.canTouchEfiVariables = true;
|
||||||
loader = {
|
systemd-boot.enable = true;
|
||||||
systemd-boot.enable = true;
|
|
||||||
efi.canTouchEfiVariables = true;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
networking.hostName = "mandarin";
|
networking.hostName = "mandarin";
|
||||||
|
|
||||||
|
system.stateVersion = "24.05";
|
||||||
|
|
||||||
alyraffauf = {
|
alyraffauf = {
|
||||||
base = {
|
apps = {
|
||||||
enable = true;
|
podman.enable = true;
|
||||||
plymouth.enable = true;
|
steam.enable = true;
|
||||||
zramSwap.enable = true;
|
virt-manager.enable = true;
|
||||||
};
|
|
||||||
users = {
|
|
||||||
aly = {
|
|
||||||
enable = true;
|
|
||||||
password = "$y$j9T$NSS7QcEtN4yiigPyofwlI/$nxdgz0lpySa0heDMjGlHe1gX3BWf48jK6Tkfg4xMEs6";
|
|
||||||
};
|
|
||||||
morgan = {
|
|
||||||
enable = true;
|
|
||||||
password = "$y$j9T$frYXYFwo4KuPWEqilfPCN1$CtRMMK4HFLKu90qkv1cCkvp1UdJocUbkySQlVElwkM2";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
base.enable = true;
|
||||||
|
|
||||||
desktop = {
|
desktop = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
greetd = {
|
greetd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
session = lib.getExe config.programs.hyprland.package;
|
|
||||||
autologin = {
|
autologin = {
|
||||||
enable = true;
|
enable = true;
|
||||||
user = "morgan";
|
user = "morgan";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
hyprland.enable = true;
|
hyprland.enable = true;
|
||||||
steam.enable = true;
|
steam.enable = true;
|
||||||
};
|
};
|
||||||
apps = {
|
|
||||||
steam.enable = true;
|
|
||||||
podman.enable = true;
|
|
||||||
virt-manager.enable = true;
|
|
||||||
};
|
|
||||||
scripts = {
|
|
||||||
hoenn.enable = true;
|
|
||||||
};
|
|
||||||
services = {
|
services = {
|
||||||
flatpak.enable = true;
|
flatpak.enable = true;
|
||||||
|
|
||||||
ollama = {
|
ollama = {
|
||||||
enable = true;
|
enable = true;
|
||||||
gpu = "amd";
|
gpu = "amd";
|
||||||
};
|
};
|
||||||
|
|
||||||
tailscale.enable = true;
|
tailscale.enable = true;
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
|
||||||
system.stateVersion = "24.05";
|
users = {
|
||||||
|
aly = {
|
||||||
|
enable = true;
|
||||||
|
password = "$y$j9T$NSS7QcEtN4yiigPyofwlI/$nxdgz0lpySa0heDMjGlHe1gX3BWf48jK6Tkfg4xMEs6";
|
||||||
|
};
|
||||||
|
|
||||||
|
morgan = {
|
||||||
|
enable = true;
|
||||||
|
password = "$y$j9T$frYXYFwo4KuPWEqilfPCN1$CtRMMK4HFLKu90qkv1cCkvp1UdJocUbkySQlVElwkM2";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,53 +1,35 @@
|
||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
|
||||||
# and may be overwritten by future invocations. Please make changes
|
|
||||||
# to /etc/nixos/configuration.nix instead.
|
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
inputs,
|
inputs,
|
||||||
lib,
|
lib,
|
||||||
modulesPath,
|
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
imports = [
|
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
|
||||||
inputs.nixos-hardware.nixosModules.common-cpu-amd
|
|
||||||
inputs.nixos-hardware.nixosModules.common-pc-ssd
|
|
||||||
];
|
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
initrd = {
|
initrd = {
|
||||||
availableKernelModules = [
|
availableKernelModules = ["nvme" "sd_mod" "usb_storage" "usbhid" "xhci_pci"];
|
||||||
"nvme"
|
|
||||||
"sd_mod"
|
|
||||||
"usb_storage"
|
|
||||||
"usbhid"
|
|
||||||
"xhci_pci"
|
|
||||||
];
|
|
||||||
kernelModules = ["amdgpu"];
|
kernelModules = ["amdgpu"];
|
||||||
};
|
};
|
||||||
|
|
||||||
kernelModules = ["kvm-amd" "amdgpu"];
|
kernelModules = ["kvm-amd" "amdgpu"];
|
||||||
|
|
||||||
|
kernelPackages = pkgs.linuxPackages_latest;
|
||||||
};
|
};
|
||||||
|
|
||||||
hardware = {
|
hardware = {
|
||||||
cpu.amd.updateMicrocode =
|
cpu.amd.updateMicrocode = true;
|
||||||
lib.mkDefault config.hardware.enableRedistributableFirmware;
|
|
||||||
|
|
||||||
enableAllFirmware = true;
|
enableAllFirmware = true;
|
||||||
|
|
||||||
opengl = {
|
opengl = {
|
||||||
enable = true;
|
enable = true;
|
||||||
driSupport = true;
|
driSupport = true;
|
||||||
driSupport32Bit = true;
|
driSupport32Bit = true;
|
||||||
|
|
||||||
extraPackages = with pkgs; [rocmPackages.clr.icd amdvlk];
|
extraPackages = with pkgs; [rocmPackages.clr.icd amdvlk];
|
||||||
extraPackages32 = with pkgs; [driversi686Linux.amdvlk];
|
extraPackages32 = with pkgs; [driversi686Linux.amdvlk];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
services.xserver.videoDrivers = ["amdgpu"];
|
|
||||||
|
|
||||||
networking.useDHCP = lib.mkDefault true;
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
|
||||||
|
services.fstrim.enable = true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,92 +14,30 @@
|
||||||
archiveDirectory = "/mnt/Archive";
|
archiveDirectory = "/mnt/Archive";
|
||||||
in {
|
in {
|
||||||
imports = [
|
imports = [
|
||||||
|
./filesystems.nix
|
||||||
./hardware.nix
|
./hardware.nix
|
||||||
./home.nix
|
./home.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
# Bootloader.
|
boot.loader = {
|
||||||
boot.loader.systemd-boot.enable = true;
|
efi.canTouchEfiVariables = true;
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
systemd-boot.enable = true;
|
||||||
|
|
||||||
networking.hostName = hostName; # Define your hostname.
|
|
||||||
|
|
||||||
alyraffauf = {
|
|
||||||
apps = {
|
|
||||||
nicotine-plus.enable = true;
|
|
||||||
podman.enable = true;
|
|
||||||
steam.enable = true;
|
|
||||||
virt-manager.enable = true;
|
|
||||||
};
|
|
||||||
containers = {
|
|
||||||
nixos = {
|
|
||||||
navidrome.enable = true;
|
|
||||||
};
|
|
||||||
oci = {
|
|
||||||
audiobookshelf.enable = true;
|
|
||||||
freshRSS.enable = true;
|
|
||||||
plexMediaServer.enable = true;
|
|
||||||
transmission.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
desktop = {
|
|
||||||
enable = true;
|
|
||||||
greetd = {
|
|
||||||
enable = true;
|
|
||||||
session = lib.getExe config.programs.hyprland.package;
|
|
||||||
autologin = {
|
|
||||||
enable = true;
|
|
||||||
user = "aly";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
hyprland.enable = true;
|
|
||||||
sway.enable = true;
|
|
||||||
};
|
|
||||||
users = {
|
|
||||||
aly = {
|
|
||||||
enable = true;
|
|
||||||
password = "$y$j9T$SHPShqI2IpRE101Ey2ry/0$0mhW1f9LbVY02ifhJlP9XVImge9HOpf23s9i1JFLIt9";
|
|
||||||
};
|
|
||||||
dustin = {
|
|
||||||
enable = true;
|
|
||||||
password = "$y$j9T$3mMCBnUQ.xjuPIbSof7w0.$fPtRGblPRSwRLj7TFqk1nzuNQk2oVlgvb/bE47sghl.";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
services = {
|
|
||||||
binaryCache.enable = true;
|
|
||||||
ollama = {
|
|
||||||
enable = true;
|
|
||||||
gpu = "amd";
|
|
||||||
listenAddress = "0.0.0.0:11434";
|
|
||||||
};
|
|
||||||
syncthing = {
|
|
||||||
enable = true;
|
|
||||||
syncMusic = true;
|
|
||||||
musicPath = "${mediaDirectory}/Music";
|
|
||||||
};
|
|
||||||
tailscale.enable = true;
|
|
||||||
};
|
|
||||||
scripts = {
|
|
||||||
hoenn.enable = true;
|
|
||||||
};
|
|
||||||
base = {
|
|
||||||
enable = true;
|
|
||||||
plymouth.enable = true;
|
|
||||||
zramSwap = {
|
|
||||||
enable = true;
|
|
||||||
size = 100;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
system.stateVersion = "23.11";
|
||||||
|
|
||||||
networking = {
|
networking = {
|
||||||
firewall = let
|
firewall = {
|
||||||
transmissionPort = config.alyraffauf.containers.oci.transmission.port;
|
allowedTCPPorts = [
|
||||||
bitTorrentPort = config.alyraffauf.containers.oci.transmission.bitTorrentPort;
|
80
|
||||||
in {
|
443
|
||||||
allowedTCPPorts = [80 443 transmissionPort bitTorrentPort];
|
config.alyraffauf.containers.oci.transmission.port
|
||||||
allowedUDPPorts = [bitTorrentPort];
|
config.alyraffauf.containers.oci.transmission.bitTorrentPort
|
||||||
|
];
|
||||||
|
|
||||||
|
allowedUDPPorts = [config.alyraffauf.containers.oci.transmission.bitTorrentPort];
|
||||||
};
|
};
|
||||||
|
|
||||||
# My router doesn't expose settings for NAT loopback
|
# My router doesn't expose settings for NAT loopback
|
||||||
# So we have to use this workaround.
|
# So we have to use this workaround.
|
||||||
extraHosts = ''
|
extraHosts = ''
|
||||||
|
@ -109,6 +47,8 @@ in {
|
||||||
127.0.0.1 plex.${domain}
|
127.0.0.1 plex.${domain}
|
||||||
127.0.0.1 podcasts.${domain}
|
127.0.0.1 podcasts.${domain}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
hostName = hostName;
|
||||||
};
|
};
|
||||||
|
|
||||||
security.acme = {
|
security.acme = {
|
||||||
|
@ -118,6 +58,7 @@ in {
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
fail2ban.enable = true;
|
fail2ban.enable = true;
|
||||||
|
|
||||||
nginx = {
|
nginx = {
|
||||||
enable = true;
|
enable = true;
|
||||||
recommendedGzipSettings = true;
|
recommendedGzipSettings = true;
|
||||||
|
@ -128,9 +69,11 @@ in {
|
||||||
"music.${domain}" = {
|
"music.${domain}" = {
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
|
|
||||||
locations."/" = {
|
locations."/" = {
|
||||||
proxyPass = "http://127.0.0.1:4533";
|
proxyPass = "http://127.0.0.1:4533";
|
||||||
proxyWebsockets = true;
|
proxyWebsockets = true;
|
||||||
|
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
proxy_buffering off;
|
proxy_buffering off;
|
||||||
'';
|
'';
|
||||||
|
@ -140,9 +83,11 @@ in {
|
||||||
"news.${domain}" = {
|
"news.${domain}" = {
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
|
|
||||||
locations."/" = {
|
locations."/" = {
|
||||||
proxyPass = "http://127.0.0.1:${toString config.alyraffauf.containers.oci.freshRSS.port}";
|
proxyPass = "http://127.0.0.1:${toString config.alyraffauf.containers.oci.freshRSS.port}";
|
||||||
proxyWebsockets = true; # needed if you need to use WebSocket
|
proxyWebsockets = true; # needed if you need to use WebSocket
|
||||||
|
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
proxy_buffering off;
|
proxy_buffering off;
|
||||||
proxy_redirect off;
|
proxy_redirect off;
|
||||||
|
@ -156,6 +101,7 @@ in {
|
||||||
"nixcache.${domain}" = {
|
"nixcache.${domain}" = {
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
|
|
||||||
locations."/".proxyPass = "http://${config.services.nix-serve.bindAddress}:${
|
locations."/".proxyPass = "http://${config.services.nix-serve.bindAddress}:${
|
||||||
toString config.services.nix-serve.port
|
toString config.services.nix-serve.port
|
||||||
}";
|
}";
|
||||||
|
@ -164,9 +110,11 @@ in {
|
||||||
"plex.${domain}" = {
|
"plex.${domain}" = {
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
|
|
||||||
locations."/" = {
|
locations."/" = {
|
||||||
proxyPass = "http://127.0.0.1:${toString config.alyraffauf.containers.oci.plexMediaServer.port}";
|
proxyPass = "http://127.0.0.1:${toString config.alyraffauf.containers.oci.plexMediaServer.port}";
|
||||||
proxyWebsockets = true;
|
proxyWebsockets = true;
|
||||||
|
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
proxy_buffering off;
|
proxy_buffering off;
|
||||||
'';
|
'';
|
||||||
|
@ -176,9 +124,10 @@ in {
|
||||||
"podcasts.${domain}" = {
|
"podcasts.${domain}" = {
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
|
|
||||||
locations."/" = {
|
locations."/" = {
|
||||||
proxyPass = "http://127.0.0.1:${toString config.alyraffauf.containers.oci.audiobookshelf.port}";
|
proxyPass = "http://127.0.0.1:${toString config.alyraffauf.containers.oci.audiobookshelf.port}";
|
||||||
# proxyWebsockets = true; # This breaks audiobookshelf.
|
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
client_max_body_size 500M;
|
client_max_body_size 500M;
|
||||||
proxy_buffering off;
|
proxy_buffering off;
|
||||||
|
@ -195,8 +144,9 @@ in {
|
||||||
};
|
};
|
||||||
samba = {
|
samba = {
|
||||||
enable = true;
|
enable = true;
|
||||||
securityType = "user";
|
|
||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
|
securityType = "user";
|
||||||
|
|
||||||
shares = {
|
shares = {
|
||||||
Media = {
|
Media = {
|
||||||
browseable = "yes";
|
browseable = "yes";
|
||||||
|
@ -207,6 +157,7 @@ in {
|
||||||
"create mask" = "0755";
|
"create mask" = "0755";
|
||||||
"directory mask" = "0755";
|
"directory mask" = "0755";
|
||||||
};
|
};
|
||||||
|
|
||||||
Archive = {
|
Archive = {
|
||||||
browseable = "yes";
|
browseable = "yes";
|
||||||
comment = "Archive @ ${hostName}";
|
comment = "Archive @ ${hostName}";
|
||||||
|
@ -218,11 +169,79 @@ in {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
samba-wsdd = {
|
samba-wsdd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
system.stateVersion = "23.11";
|
alyraffauf = {
|
||||||
|
apps = {
|
||||||
|
nicotine-plus.enable = true;
|
||||||
|
podman.enable = true;
|
||||||
|
steam.enable = true;
|
||||||
|
virt-manager.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
base = {
|
||||||
|
enable = true;
|
||||||
|
zramSwap.size = 100;
|
||||||
|
};
|
||||||
|
|
||||||
|
containers = {
|
||||||
|
nixos.navidrome.enable = true;
|
||||||
|
|
||||||
|
oci = {
|
||||||
|
audiobookshelf.enable = true;
|
||||||
|
freshRSS.enable = true;
|
||||||
|
plexMediaServer.enable = true;
|
||||||
|
transmission.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
desktop = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
greetd = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
autologin = {
|
||||||
|
enable = true;
|
||||||
|
user = "aly";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
hyprland.enable = true;
|
||||||
|
};
|
||||||
|
users = {
|
||||||
|
aly = {
|
||||||
|
enable = true;
|
||||||
|
password = "$y$j9T$SHPShqI2IpRE101Ey2ry/0$0mhW1f9LbVY02ifhJlP9XVImge9HOpf23s9i1JFLIt9";
|
||||||
|
};
|
||||||
|
|
||||||
|
dustin = {
|
||||||
|
enable = true;
|
||||||
|
password = "$y$j9T$3mMCBnUQ.xjuPIbSof7w0.$fPtRGblPRSwRLj7TFqk1nzuNQk2oVlgvb/bE47sghl.";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services = {
|
||||||
|
binaryCache.enable = true;
|
||||||
|
|
||||||
|
ollama = {
|
||||||
|
enable = true;
|
||||||
|
gpu = "amd";
|
||||||
|
listenAddress = "0.0.0.0:11434";
|
||||||
|
};
|
||||||
|
|
||||||
|
syncthing = {
|
||||||
|
enable = true;
|
||||||
|
syncMusic = true;
|
||||||
|
musicPath = "${mediaDirectory}/Music";
|
||||||
|
};
|
||||||
|
|
||||||
|
tailscale.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
36
hosts/mauville/filesystems.nix
Normal file
36
hosts/mauville/filesystems.nix
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
inputs,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
fileSystems = {
|
||||||
|
"/" = {
|
||||||
|
device = "/dev/disk/by-uuid/c4217c88-3101-434b-8321-58e2ac89527c";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
"/boot" = {
|
||||||
|
device = "/dev/disk/by-uuid/3445-B2A0";
|
||||||
|
fsType = "vfat";
|
||||||
|
};
|
||||||
|
|
||||||
|
"/mnt/Archive" = {
|
||||||
|
device = "/dev/disk/by-uuid/f7e9e6d6-2bf6-429a-aaf0-49b55d53fc83";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
"/mnt/Media" = {
|
||||||
|
device = "/dev/disk/by-uuid/d988d5ca-f9d6-4d85-aa0e-8a437b3c859a";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices = [
|
||||||
|
{
|
||||||
|
device = "/dev/disk/by-uuid/26094ada-7ba4-4437-bacb-b3cdf6c3397b";
|
||||||
|
priority = 1;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
|
@ -2,16 +2,9 @@
|
||||||
config,
|
config,
|
||||||
inputs,
|
inputs,
|
||||||
lib,
|
lib,
|
||||||
modulesPath,
|
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
imports = [
|
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
|
||||||
inputs.nixos-hardware.nixosModules.common-cpu-amd
|
|
||||||
inputs.nixos-hardware.nixosModules.common-pc-ssd
|
|
||||||
];
|
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
initrd = {
|
initrd = {
|
||||||
availableKernelModules = ["xhci_pci" "ahci" "nvme" "usbhid" "sd_mod"];
|
availableKernelModules = ["xhci_pci" "ahci" "nvme" "usbhid" "sd_mod"];
|
||||||
|
@ -22,8 +15,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
hardware = {
|
hardware = {
|
||||||
cpu.amd.updateMicrocode =
|
cpu.amd.updateMicrocode = true;
|
||||||
lib.mkDefault config.hardware.enableRedistributableFirmware;
|
|
||||||
|
|
||||||
enableAllFirmware = true;
|
enableAllFirmware = true;
|
||||||
|
|
||||||
|
@ -31,46 +23,12 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
driSupport = true;
|
driSupport = true;
|
||||||
driSupport32Bit = true;
|
driSupport32Bit = true;
|
||||||
|
|
||||||
extraPackages = with pkgs; [rocmPackages.clr.icd amdvlk];
|
extraPackages = with pkgs; [rocmPackages.clr.icd amdvlk];
|
||||||
extraPackages32 = with pkgs; [driversi686Linux.amdvlk];
|
extraPackages32 = with pkgs; [driversi686Linux.amdvlk];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems = {
|
|
||||||
"/" = {
|
|
||||||
device = "/dev/disk/by-uuid/c4217c88-3101-434b-8321-58e2ac89527c";
|
|
||||||
fsType = "ext4";
|
|
||||||
};
|
|
||||||
|
|
||||||
"/boot" = {
|
|
||||||
device = "/dev/disk/by-uuid/3445-B2A0";
|
|
||||||
fsType = "vfat";
|
|
||||||
};
|
|
||||||
|
|
||||||
"/mnt/Archive" = {
|
|
||||||
device = "/dev/disk/by-uuid/f7e9e6d6-2bf6-429a-aaf0-49b55d53fc83";
|
|
||||||
fsType = "ext4";
|
|
||||||
};
|
|
||||||
|
|
||||||
"/mnt/Media" = {
|
|
||||||
device = "/dev/disk/by-uuid/d988d5ca-f9d6-4d85-aa0e-8a437b3c859a";
|
|
||||||
fsType = "ext4";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
swapDevices = [
|
|
||||||
{
|
|
||||||
device = "/dev/disk/by-uuid/26094ada-7ba4-4437-bacb-b3cdf6c3397b";
|
|
||||||
priority = 1;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
services.xserver = {
|
|
||||||
videoDrivers = ["amdgpu"]; # Add AMDGPU driver.
|
|
||||||
};
|
|
||||||
|
|
||||||
networking.useDHCP = lib.mkDefault true;
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
|
||||||
|
services.fstrim.enable = true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Lenovo Yoga 9i Convertible with Intel Core i7-1360P, 15GB RAM, 512GB SSD.
|
# Lenovo Yoga 9i Convertible with Intel Core i7-1360P, 16GB RAM, 512GB SSD.
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
inputs,
|
inputs,
|
||||||
|
@ -13,53 +13,43 @@
|
||||||
./home.nix
|
./home.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
boot = {
|
boot.loader = {
|
||||||
# Bootloader.
|
efi.canTouchEfiVariables = true;
|
||||||
loader.systemd-boot.enable = true;
|
systemd-boot.enable = true;
|
||||||
loader.efi.canTouchEfiVariables = true;
|
|
||||||
|
|
||||||
# Use latest Linux kernel.
|
|
||||||
kernelPackages = pkgs.linuxPackages_latest;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
networking.hostName = "petalburg"; # Define your hostname.
|
networking.hostName = "petalburg";
|
||||||
|
|
||||||
|
system.stateVersion = "24.05";
|
||||||
|
|
||||||
alyraffauf = {
|
alyraffauf = {
|
||||||
base = {
|
apps.steam.enable = true;
|
||||||
enable = true;
|
|
||||||
sambaAutoMount = true;
|
base.enable = true;
|
||||||
plymouth.enable = true;
|
|
||||||
zramSwap = {enable = true;};
|
|
||||||
};
|
|
||||||
users = {
|
|
||||||
aly = {
|
|
||||||
enable = true;
|
|
||||||
password = "$y$j9T$TitXX3J690cnK41XciNMg/$APKHM/os6FKd9H9aXGxaHaQ8zP5SenO9EO94VYafl43";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
desktop = {
|
desktop = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
greetd = {
|
greetd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
session = lib.getExe config.programs.hyprland.package;
|
|
||||||
autologin = {
|
autologin = {
|
||||||
enable = true;
|
enable = true;
|
||||||
user = "aly";
|
user = "aly";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
hyprland.enable = true;
|
hyprland.enable = true;
|
||||||
};
|
};
|
||||||
apps = {
|
|
||||||
steam.enable = true;
|
|
||||||
};
|
|
||||||
scripts = {
|
|
||||||
hoenn.enable = true;
|
|
||||||
};
|
|
||||||
services = {
|
services = {
|
||||||
syncthing.enable = true;
|
syncthing.enable = true;
|
||||||
tailscale.enable = true;
|
tailscale.enable = true;
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
|
||||||
system.stateVersion = "24.05";
|
users.aly = {
|
||||||
|
enable = true;
|
||||||
|
password = "$y$j9T$TitXX3J690cnK41XciNMg/$APKHM/os6FKd9H9aXGxaHaQ8zP5SenO9EO94VYafl43";
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,57 +2,57 @@
|
||||||
config,
|
config,
|
||||||
inputs,
|
inputs,
|
||||||
lib,
|
lib,
|
||||||
modulesPath,
|
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
imports = [
|
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
|
||||||
inputs.nixos-hardware.nixosModules.common-cpu-intel
|
|
||||||
inputs.nixos-hardware.nixosModules.common-pc-laptop-ssd
|
|
||||||
];
|
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
initrd = {
|
initrd = {
|
||||||
availableKernelModules = ["xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod"];
|
availableKernelModules = ["nvme" "sd_mod" "thunderbolt" "usb_storage" "xhci_pci"];
|
||||||
kernelModules = [];
|
kernelModules = ["i915"];
|
||||||
};
|
};
|
||||||
|
|
||||||
extraModulePackages = [];
|
|
||||||
kernelModules = ["kvm-intel"];
|
kernelModules = ["kvm-intel"];
|
||||||
|
kernelPackages = pkgs.linuxPackages_latest;
|
||||||
};
|
};
|
||||||
|
|
||||||
# Intel drivers with accelerated video playback support.
|
environment.sessionVariables = {
|
||||||
nixpkgs = {
|
LIBVA_DRIVER_NAME = "iHD";
|
||||||
hostPlatform = lib.mkDefault "x86_64-linux";
|
VDPAU_DRIVER = "va_gl";
|
||||||
};
|
};
|
||||||
|
|
||||||
hardware = {
|
hardware = {
|
||||||
cpu.intel.updateMicrocode =
|
cpu.intel.updateMicrocode = true;
|
||||||
lib.mkDefault config.hardware.enableRedistributableFirmware;
|
|
||||||
|
|
||||||
enableAllFirmware = true;
|
enableAllFirmware = true;
|
||||||
|
|
||||||
opengl = {
|
opengl = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
driSupport = true;
|
||||||
|
driSupport32Bit = true;
|
||||||
|
|
||||||
extraPackages = with pkgs; [
|
extraPackages = with pkgs; [
|
||||||
intel-media-driver # LIBVA_DRIVER_NAME=iHD
|
intel-media-driver # LIBVA_DRIVER_NAME=iHD
|
||||||
intel-vaapi-driver # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium)
|
intel-vaapi-driver # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium)
|
||||||
libvdpau-va-gl
|
libvdpau-va-gl
|
||||||
];
|
];
|
||||||
|
|
||||||
|
extraPackages32 = with pkgs.driversi686Linux; [
|
||||||
|
intel-media-driver # LIBVA_DRIVER_NAME=iHD
|
||||||
|
intel-vaapi-driver # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium)
|
||||||
|
libvdpau-va-gl
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
sensor.iio.enable = true; # Enable auto-rotate and tablet mode.
|
sensor.iio.enable = true; # Enable auto-rotate and tablet mode.
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.sessionVariables = {
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
LIBVA_DRIVER_NAME = "iHD"; # Force intel-media-driver
|
|
||||||
};
|
|
||||||
|
|
||||||
# Save power/better manage heat & fans.
|
# Save power/better manage heat & fans.
|
||||||
powerManagement.powertop.enable = true;
|
powerManagement.powertop.enable = true;
|
||||||
services.thermald.enable = true;
|
|
||||||
|
|
||||||
networking.useDHCP = lib.mkDefault true;
|
services = {
|
||||||
|
fstrim.enable = true;
|
||||||
|
thermald.enable = true;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
{
|
{
|
||||||
inputs,
|
|
||||||
config,
|
config,
|
||||||
pkgs,
|
inputs,
|
||||||
lib,
|
lib,
|
||||||
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
home-manager = {
|
home-manager = {
|
||||||
|
|
|
@ -13,49 +13,44 @@
|
||||||
./home.nix
|
./home.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
boot = {
|
boot.loader = {
|
||||||
# Bootloader.
|
efi.canTouchEfiVariables = true;
|
||||||
loader.systemd-boot.enable = true;
|
systemd-boot.enable = true;
|
||||||
loader.efi.canTouchEfiVariables = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
networking.hostName = "rustboro"; # Define your hostname.
|
networking.hostName = "rustboro";
|
||||||
|
|
||||||
|
system.stateVersion = "24.05";
|
||||||
|
|
||||||
alyraffauf = {
|
alyraffauf = {
|
||||||
base = {
|
base = {
|
||||||
enable = true;
|
enable = true;
|
||||||
sambaAutoMount = true;
|
zramSwap.size = 100;
|
||||||
plymouth.enable = true;
|
|
||||||
zramSwap = {
|
|
||||||
enable = true;
|
|
||||||
size = 100;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
users = {
|
|
||||||
aly = {
|
|
||||||
enable = true;
|
|
||||||
password = "$y$j9T$VdtiEyMOegHpcUwgmCVFD0$K8Ne6.zk//VJNq2zxVQ0xE0Wg3LohvAQd3Xm9aXdM15";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
desktop = {
|
desktop = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
greetd = {
|
greetd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
session = lib.getExe config.programs.hyprland.package;
|
|
||||||
autologin = {
|
autologin = {
|
||||||
enable = true;
|
enable = true;
|
||||||
user = "aly";
|
user = "aly";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
hyprland.enable = true;
|
hyprland.enable = true;
|
||||||
};
|
};
|
||||||
scripts = {
|
|
||||||
hoenn.enable = true;
|
|
||||||
};
|
|
||||||
services = {
|
services = {
|
||||||
syncthing.enable = true;
|
syncthing.enable = true;
|
||||||
tailscale.enable = true;
|
tailscale.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
users.aly = {
|
||||||
|
enable = true;
|
||||||
|
password = "$y$j9T$VdtiEyMOegHpcUwgmCVFD0$K8Ne6.zk//VJNq2zxVQ0xE0Wg3LohvAQd3Xm9aXdM15";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
system.stateVersion = "24.05";
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,32 +2,21 @@
|
||||||
config,
|
config,
|
||||||
inputs,
|
inputs,
|
||||||
lib,
|
lib,
|
||||||
modulesPath,
|
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
imports = [
|
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
|
||||||
inputs.nixos-hardware.nixosModules.common-pc-laptop-ssd
|
|
||||||
inputs.nixos-hardware.nixosModules.lenovo-thinkpad-t440p
|
|
||||||
];
|
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
|
extraModprobeConfig = ''
|
||||||
|
options bbswitch use_acpi_to_detect_card_state=1
|
||||||
|
options thinkpad_acpi force_load=1 fan_control=1
|
||||||
|
'';
|
||||||
|
|
||||||
initrd = {
|
initrd = {
|
||||||
availableKernelModules = [
|
availableKernelModules = ["ahci" "ehci_pci" "i915" "rtsx_pci_sdmmc" "sd_mod" "sr_mod" "usb_storage" "xhci_pci"];
|
||||||
"xhci_pci"
|
kernelModules = ["i915" "tpm-rng"];
|
||||||
"ehci_pci"
|
|
||||||
"ahci"
|
|
||||||
"usb_storage"
|
|
||||||
"sd_mod"
|
|
||||||
"sr_mod"
|
|
||||||
"rtsx_pci_sdmmc"
|
|
||||||
];
|
|
||||||
kernelModules = [];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
extraModulePackages = [];
|
kernelModules = ["i915" "kvm-intel"];
|
||||||
kernelModules = ["kvm-intel"];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
powerManagement = {
|
powerManagement = {
|
||||||
|
@ -35,30 +24,44 @@
|
||||||
powertop.enable = true;
|
powertop.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
nixpkgs = {
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
hostPlatform = lib.mkDefault "x86_64-linux";
|
|
||||||
};
|
|
||||||
|
|
||||||
hardware = {
|
hardware = {
|
||||||
cpu.intel.updateMicrocode =
|
cpu.intel.updateMicrocode = true;
|
||||||
lib.mkDefault config.hardware.enableRedistributableFirmware;
|
|
||||||
|
|
||||||
enableAllFirmware = true;
|
enableAllFirmware = true;
|
||||||
|
|
||||||
opengl = {
|
opengl = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
|
driSupport = true;
|
||||||
|
driSupport32Bit = true;
|
||||||
|
|
||||||
extraPackages = with pkgs; [
|
extraPackages = with pkgs; [
|
||||||
intel-media-driver # LIBVA_DRIVER_NAME=iHD
|
intel-media-driver # LIBVA_DRIVER_NAME=iHD
|
||||||
intel-vaapi-driver # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium)
|
intel-vaapi-driver # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium)
|
||||||
libvdpau-va-gl
|
libvdpau-va-gl
|
||||||
];
|
];
|
||||||
|
|
||||||
|
extraPackages32 = with pkgs.driversi686Linux; [
|
||||||
|
intel-media-driver # LIBVA_DRIVER_NAME=iHD
|
||||||
|
intel-vaapi-driver # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium)
|
||||||
|
libvdpau-va-gl
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
trackpoint = {
|
||||||
|
enable = true;
|
||||||
|
emulateWheel = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.sessionVariables = {
|
environment.sessionVariables = {
|
||||||
LIBVA_DRIVER_NAME = "iHD"; # Force intel-media-driver
|
LIBVA_DRIVER_NAME = "iHD";
|
||||||
|
VDPAU_DRIVER = "va_gl";
|
||||||
};
|
};
|
||||||
|
|
||||||
networking.useDHCP = lib.mkDefault true;
|
services = {
|
||||||
|
fstrim.enable = true;
|
||||||
|
fwupd.enable = true;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
{
|
{
|
||||||
inputs,
|
|
||||||
config,
|
config,
|
||||||
pkgs,
|
inputs,
|
||||||
lib,
|
lib,
|
||||||
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
home-manager = {
|
home-manager = {
|
||||||
|
|
|
@ -187,8 +187,11 @@
|
||||||
sway.enable =
|
sway.enable =
|
||||||
lib.mkEnableOption "Sway wayland session.";
|
lib.mkEnableOption "Sway wayland session.";
|
||||||
};
|
};
|
||||||
scripts.hoenn.enable =
|
scripts.hoenn.enable = lib.mkOption {
|
||||||
lib.mkEnableOption "Hoenn system configuration script";
|
description = "Hoenn system configuration script";
|
||||||
|
default = config.alyraffauf.base.enable;
|
||||||
|
type = lib.types.bool;
|
||||||
|
};
|
||||||
services = {
|
services = {
|
||||||
binaryCache.enable = lib.mkEnableOption "nixpkgs cache server.";
|
binaryCache.enable = lib.mkEnableOption "nixpkgs cache server.";
|
||||||
flatpak.enable =
|
flatpak.enable =
|
||||||
|
@ -215,7 +218,7 @@
|
||||||
};
|
};
|
||||||
syncMusic = lib.mkOption {
|
syncMusic = lib.mkOption {
|
||||||
description = "Whether to sync music folder.";
|
description = "Whether to sync music folder.";
|
||||||
default = true;
|
default = config.alyraffauf.services.syncthing.enable;
|
||||||
type = lib.types.bool;
|
type = lib.types.bool;
|
||||||
};
|
};
|
||||||
musicPath = lib.mkOption {
|
musicPath = lib.mkOption {
|
||||||
|
@ -229,16 +232,28 @@
|
||||||
base = {
|
base = {
|
||||||
enable =
|
enable =
|
||||||
lib.mkEnableOption "Basic system configuration and sane defaults.";
|
lib.mkEnableOption "Basic system configuration and sane defaults.";
|
||||||
sambaAutoMount = lib.mkEnableOption "Automounting of mauville Samba Shares.";
|
sambaAutoMount = lib.mkOption {
|
||||||
plymouth.enable =
|
description = "Automounting of mauville Samba Shares.";
|
||||||
lib.mkEnableOption "Plymouth boot screen with catppuccin theme.";
|
default =
|
||||||
|
config.alyraffauf.services.tailscale.enable && !(config.networking.hostName == "mauville");
|
||||||
|
type = lib.types.bool;
|
||||||
|
};
|
||||||
|
plymouth.enable = lib.mkOption {
|
||||||
|
description = "Plymouth boot screen with catppuccin theme.";
|
||||||
|
default = config.alyraffauf.base.enable;
|
||||||
|
type = lib.types.bool;
|
||||||
|
};
|
||||||
power-profiles-daemon.enable = lib.mkOption {
|
power-profiles-daemon.enable = lib.mkOption {
|
||||||
description = "Power Profiles Daemon for power management.";
|
description = "Power Profiles Daemon for power management.";
|
||||||
default = true;
|
default = config.alyraffauf.base.enable;
|
||||||
type = lib.types.bool;
|
type = lib.types.bool;
|
||||||
};
|
};
|
||||||
zramSwap = {
|
zramSwap = {
|
||||||
enable = lib.mkEnableOption "Zram swap.";
|
enable = lib.mkOption {
|
||||||
|
description = "zram swap.";
|
||||||
|
default = config.alyraffauf.base.enable;
|
||||||
|
type = lib.types.bool;
|
||||||
|
};
|
||||||
size = lib.mkOption {
|
size = lib.mkOption {
|
||||||
description = "Percent size of the zram swap relative to RAM.";
|
description = "Percent size of the zram swap relative to RAM.";
|
||||||
default = 50;
|
default = 50;
|
||||||
|
|
Loading…
Reference in a new issue