summary refs log tree commit diff
diff options
context:
space:
mode:
authorFrancesco Gazzetta <fgaz@fgaz.me>2023-01-12 08:24:01 +0000
committerGitHub <noreply@github.com>2023-01-12 08:24:01 +0000
commitc956f85fbdbe41643a4978898f3d692d64622157 (patch)
treee99fabcce36dde279ba5c15de413a7adc1d00404
parent8389dff3db12c660504ee6f7722e4c5a4082305a (diff)
parent1d61d168a6fe30eb42c02fff8a097a5c224c7ec9 (diff)
downloadnixpkgs-c956f85fbdbe41643a4978898f3d692d64622157.tar
nixpkgs-c956f85fbdbe41643a4978898f3d692d64622157.tar.gz
nixpkgs-c956f85fbdbe41643a4978898f3d692d64622157.tar.bz2
nixpkgs-c956f85fbdbe41643a4978898f3d692d64622157.tar.lz
nixpkgs-c956f85fbdbe41643a4978898f3d692d64622157.tar.xz
nixpkgs-c956f85fbdbe41643a4978898f3d692d64622157.tar.zst
nixpkgs-c956f85fbdbe41643a4978898f3d692d64622157.zip
Merge pull request #204653 from ymatsiuk/ymatsiuk/bluetooth
nixos/bluetooth: add input and network service configs
-rw-r--r--nixos/modules/services/hardware/bluetooth.nix27
-rw-r--r--pkgs/os-specific/linux/bluez/default.nix4
2 files changed, 31 insertions, 0 deletions
diff --git a/nixos/modules/services/hardware/bluetooth.nix b/nixos/modules/services/hardware/bluetooth.nix
index 6453e6968dc..2a58be51bb0 100644
--- a/nixos/modules/services/hardware/bluetooth.nix
+++ b/nixos/modules/services/hardware/bluetooth.nix
@@ -71,6 +71,29 @@ in
         };
         description = lib.mdDoc "Set configuration for system-wide bluetooth (/etc/bluetooth/main.conf).";
       };
+
+      input = mkOption {
+        type = cfgFmt.type;
+        default = { };
+        example = {
+          General = {
+            IdleTimeout = 30;
+            ClassicBondedOnly = true;
+          };
+        };
+        description = lib.mdDoc "Set configuration for the input service (/etc/bluetooth/input.conf).";
+      };
+
+      network = mkOption {
+        type = cfgFmt.type;
+        default = { };
+        example = {
+          General = {
+            DisableSecurity = true;
+          };
+        };
+        description = lib.mdDoc "Set configuration for the network service (/etc/bluetooth/network.conf).";
+      };
     };
   };
 
@@ -80,6 +103,10 @@ in
     environment.systemPackages = [ package ]
       ++ optional cfg.hsphfpd.enable pkgs.hsphfpd;
 
+    environment.etc."bluetooth/input.conf".source =
+      cfgFmt.generate "input.conf" cfg.input;
+    environment.etc."bluetooth/network.conf".source =
+      cfgFmt.generate "network.conf" cfg.network;
     environment.etc."bluetooth/main.conf".source =
       cfgFmt.generate "main.conf" (recursiveUpdate defaults cfg.settings);
     services.udev.packages = [ package ];
diff --git a/pkgs/os-specific/linux/bluez/default.nix b/pkgs/os-specific/linux/bluez/default.nix
index 020aee04af7..303eb801478 100644
--- a/pkgs/os-specific/linux/bluez/default.nix
+++ b/pkgs/os-specific/linux/bluez/default.nix
@@ -130,6 +130,10 @@ in stdenv.mkDerivation rec {
     mkdir $out/etc/bluetooth
     ln -s /etc/bluetooth/main.conf $out/etc/bluetooth/main.conf
 
+    # https://github.com/NixOS/nixpkgs/issues/204418
+    ln -s /etc/bluetooth/input.conf $out/etc/bluetooth/input.conf
+    ln -s /etc/bluetooth/network.conf $out/etc/bluetooth/network.conf
+
     # Add missing tools, ref https://git.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/bluez
     for files in `find tools/ -type f -perm -755`; do
       filename=$(basename $files)