aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/nixos/modules/services/hardware/bluetooth.nix
diff options
context:
space:
mode:
Diffstat (limited to 'infra/libkookie/nixpkgs/nixos/modules/services/hardware/bluetooth.nix')
-rw-r--r--infra/libkookie/nixpkgs/nixos/modules/services/hardware/bluetooth.nix34
1 files changed, 30 insertions, 4 deletions
diff --git a/infra/libkookie/nixpkgs/nixos/modules/services/hardware/bluetooth.nix b/infra/libkookie/nixpkgs/nixos/modules/services/hardware/bluetooth.nix
index dfa39e7f6024..6f5a6d3bf288 100644
--- a/infra/libkookie/nixpkgs/nixos/modules/services/hardware/bluetooth.nix
+++ b/infra/libkookie/nixpkgs/nixos/modules/services/hardware/bluetooth.nix
@@ -15,6 +15,8 @@ in {
hardware.bluetooth = {
enable = mkEnableOption "support for Bluetooth";
+ hsphfpd.enable = mkEnableOption "support for hsphfpd[-prototype] implementation";
+
powerOnBoot = mkOption {
type = types.bool;
default = true;
@@ -72,7 +74,8 @@ in {
};
};
- environment.systemPackages = [ bluez-bluetooth ];
+ environment.systemPackages = [ bluez-bluetooth ]
+ ++ optionals cfg.hsphfpd.enable [ pkgs.hsphfpd ];
environment.etc."bluetooth/main.conf"= {
source = pkgs.writeText "main.conf"
@@ -80,19 +83,42 @@ in {
};
services.udev.packages = [ bluez-bluetooth ];
- services.dbus.packages = [ bluez-bluetooth ];
+ services.dbus.packages = [ bluez-bluetooth ]
+ ++ optionals cfg.hsphfpd.enable [ pkgs.hsphfpd ];
systemd.packages = [ bluez-bluetooth ];
systemd.services = {
bluetooth = {
wantedBy = [ "bluetooth.target" ];
aliases = [ "dbus-org.bluez.service" ];
+ # restarting can leave people without a mouse/keyboard
+ unitConfig.X-RestartIfChanged = false;
};
- };
+ }
+ // (optionalAttrs cfg.hsphfpd.enable {
+ hsphfpd = {
+ after = [ "bluetooth.service" ];
+ requires = [ "bluetooth.service" ];
+ wantedBy = [ "multi-user.target" ];
+
+ description = "A prototype implementation used for connecting HSP/HFP Bluetooth devices";
+ serviceConfig.ExecStart = "${pkgs.hsphfpd}/bin/hsphfpd.pl";
+ };
+ })
+ ;
systemd.user.services = {
obex.aliases = [ "dbus-org.bluez.obex.service" ];
- };
+ }
+ // (optionalAttrs cfg.hsphfpd.enable {
+ telephony_client = {
+ wantedBy = [ "default.target"];
+
+ description = "telephony_client for hsphfpd";
+ serviceConfig.ExecStart = "${pkgs.hsphfpd}/bin/telephony_client.pl";
+ };
+ })
+ ;
};