nixos: gen 67 @ lilac — 2026-09-22 15:39 26.05.20260918.cf9d2fb (Yarara) ----- IP over bluetooth for seamless LAN-Mouse
This commit is contained in:
+32
-4
@@ -32,14 +32,42 @@ in
|
|||||||
(llama-cpp.override { vulkanSupport = true; })
|
(llama-cpp.override { vulkanSupport = true; })
|
||||||
];
|
];
|
||||||
|
|
||||||
boot.kernelModules = [ "thunderbolt-net" ];
|
networking.interfaces.bnep0.ipv4.addresses = [{
|
||||||
|
|
||||||
networking.interfaces.thunderbolt0.ipv4.addresses = [{
|
|
||||||
address = "10.0.0.1";
|
address = "10.0.0.1";
|
||||||
prefixLength = 24;
|
prefixLength = 24;
|
||||||
}];
|
}];
|
||||||
|
|
||||||
networking.firewall.interfaces."thunderbolt0".allowedUDPPorts = [ 4242 ];
|
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 = {
|
hardware.graphics = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|||||||
@@ -25,12 +25,42 @@
|
|||||||
|
|
||||||
boot.kernelModules = [ "thunderbolt-net" ];
|
boot.kernelModules = [ "thunderbolt-net" ];
|
||||||
|
|
||||||
networking.interfaces.thunderbolt0.ipv4.addresses = [{
|
networking.interfaces.bnep0.ipv4.addresses = [{
|
||||||
address = "10.0.0.2";
|
address = "10.0.0.2";
|
||||||
prefixLength = 24;
|
prefixLength = 24;
|
||||||
}];
|
}];
|
||||||
|
|
||||||
networking.firewall.interfaces."thunderbolt0".allowedUDPPorts = [ 4242 ];
|
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 A
|
||||||
|
bt-pan-client = {
|
||||||
|
description = "Bluetooth PAN Client Connection to Device A";
|
||||||
|
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 84:D1:C1:A9:EE:52";
|
||||||
|
ExecStart = "${pkgs.bluez-tools}/bin/bt-network -c 84:D1:C1:A9:EE:52 gn";
|
||||||
|
Restart = "always";
|
||||||
|
RestartSec = 10; # Retry every 10 seconds if Device B goes out of range
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
services.tlp = {
|
services.tlp = {
|
||||||
enable = false;
|
enable = false;
|
||||||
|
|||||||
@@ -17,6 +17,11 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
hardware.bluetooth = {
|
||||||
|
powerOnBoot = true;
|
||||||
|
settings.General.Enable = "Source,Sink,Media,Socket,Network";
|
||||||
|
};
|
||||||
|
|
||||||
boot.extraModprobeConfig = ''
|
boot.extraModprobeConfig = ''
|
||||||
options iwlwifi power_save=0
|
options iwlwifi power_save=0
|
||||||
'';
|
'';
|
||||||
|
|||||||
Reference in New Issue
Block a user