45 lines
1.0 KiB
Nix
45 lines
1.0 KiB
Nix
{ config, lib, pkgs, ... }:
|
|
|
|
with lib;
|
|
|
|
{
|
|
options.hardware.bluetooth.enhanced.enable = mkEnableOption "Enhanced Bluetooth support";
|
|
|
|
config = mkIf config.hardware.bluetooth.enhanced.enable {
|
|
# Enable Bluetooth
|
|
hardware.bluetooth = {
|
|
enable = true;
|
|
powerOnBoot = true;
|
|
settings = {
|
|
General = {
|
|
Enable = "Source,Sink,Media,Socket";
|
|
Experimental = true;
|
|
};
|
|
};
|
|
};
|
|
|
|
# Bluetooth services
|
|
services.blueman.enable = true;
|
|
|
|
# Bluetooth packages
|
|
environment.systemPackages = with pkgs; [
|
|
bluez
|
|
bluez-tools
|
|
blueman
|
|
bluetuith
|
|
];
|
|
|
|
# Auto-connect trusted devices
|
|
systemd.user.services.bluetooth-auto-connect = {
|
|
description = "Auto-connect Bluetooth devices";
|
|
after = [ "bluetooth.service" ];
|
|
partOf = [ "bluetooth.service" ];
|
|
serviceConfig = {
|
|
Type = "forking";
|
|
ExecStart = "${pkgs.bluez}/bin/bluetoothctl connect-all";
|
|
RemainAfterExit = true;
|
|
};
|
|
wantedBy = [ "default.target" ];
|
|
};
|
|
};
|
|
} |