Files
.dotfiles/hosts/lilac/default.nix
T

94 lines
2.5 KiB
Nix

{ config, pkgs, inputs, ... }:
let
unstable = import inputs.nixpkgs-unstable {
system = pkgs.stdenv.hostPlatform.system;
config.allowUnfree = true;
};
in
{
imports = [
./hardware.nix
../../system
];
networking.hostName = "lilac";
services.fwupd.enable = true;
services.fprintd.enable = true;
services.hardware.bolt.enable = true;
system.stateVersion = "26.05";
environment.systemPackages = with pkgs; [
framework-tool
# GPU compute diagnostics
clinfo
vulkan-tools
intel-gpu-tools
# Vulkan-accelerated llama.cpp CLI/server for manual/advanced use
(llama-cpp.override { vulkanSupport = true; })
];
networking.interfaces.bnep0.ipv4.addresses = [{
address = "10.0.0.1";
prefixLength = 24;
}];
networking.firewall.interfaces."bnep0".allowedUDPPorts = [ 4242 ];
systemd = {
services = {
# 1. Start the listening server profile
bt-pan-server = {
description = "Bluetooth PAN GN Server";
after = [ "bluetooth.service" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
ExecStart = "${pkgs.bluez-tools}/bin/bt-network -s gn pan0";
Restart = "always";
RestartSec = 5;
};
};
# 2. Trust and persistently attempt connection to Device B
bt-pan-client = {
description = "Bluetooth PAN Client Connection to Device B";
after = [ "bluetooth.service" "bt-pan-server.service" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
# Replace XX:XX:XX:XX:XX:XX with Device B's actual Bluetooth MAC Address
ExecStartPre = "${pkgs.bluez}/bin/bluetoothctl trust 70:A6:CC:47:E7:75";
ExecStart = "${pkgs.bluez-tools}/bin/bt-network -c 70:A6:CC:47:E7:75 gn";
Restart = "always";
RestartSec = 10; # Retry every 10 seconds if Device B goes out of range
};
};
};
};
hardware.graphics = {
enable = true;
enable32Bit = true;
extraPackages = with pkgs; [
intel-media-driver # Hardware acceleration
intel-vaapi-driver
vpl-gpu-rt # Video processing runtime
intel-compute-runtime # OpenCL + Level Zero GPU compute (Arc iGPU)
];
extraPackages32 = with pkgs.pkgsi686Linux; [
intel-media-driver
];
};
services.power-profiles-daemon.enable = true;
services.thermald.enable = true;
services.ollama = {
enable = true;
package = unstable.ollama-vulkan;
};
}