diff options
author | Tony White <white.tw.tw@gmail.com> | 2016-01-29 22:08:42 +0000 |
---|---|---|
committer | Tony White <white.tw.tw@gmail.com> | 2016-01-29 22:08:42 +0000 |
commit | ddfb660f7bb2dfc203f9d25be381211271f33238 (patch) | |
tree | 0db6b463d24aa33995e4274113ce94dcabee7c6a /nixos/modules/services/hardware | |
parent | 4c8aab914091217962b28617ec172e7ae29705c8 (diff) | |
download | nixlib-ddfb660f7bb2dfc203f9d25be381211271f33238.tar nixlib-ddfb660f7bb2dfc203f9d25be381211271f33238.tar.gz nixlib-ddfb660f7bb2dfc203f9d25be381211271f33238.tar.bz2 nixlib-ddfb660f7bb2dfc203f9d25be381211271f33238.tar.lz nixlib-ddfb660f7bb2dfc203f9d25be381211271f33238.tar.xz nixlib-ddfb660f7bb2dfc203f9d25be381211271f33238.tar.zst nixlib-ddfb660f7bb2dfc203f9d25be381211271f33238.zip |
kde5 bluedevil plasmoid : enable bluez5 bluetooth functionality
- Fixed a bug in bluedevil (link to a .js file) - Made bluez5 the default bluetooth service except for kde4 - created org.bluez.obex systemd dbus service - Patched bluez5 using bluez-5.37-obexd_without_systemd-1.patch in order to enable obex when using either the bluedevil plasmoid or dolpin file manager within plasma workspaces 5. The functionality was tested using a Sony Xperia Z, the machine and the handset paired and two different files were sent in both directions successfully.
Diffstat (limited to 'nixos/modules/services/hardware')
-rw-r--r-- | nixos/modules/services/hardware/bluetooth.nix | 60 |
1 files changed, 43 insertions, 17 deletions
diff --git a/nixos/modules/services/hardware/bluetooth.nix b/nixos/modules/services/hardware/bluetooth.nix index 68d0406e63bd..fc95c4910bf7 100644 --- a/nixos/modules/services/hardware/bluetooth.nix +++ b/nixos/modules/services/hardware/bluetooth.nix @@ -1,6 +1,43 @@ { config, lib, pkgs, ... }: with lib; +let + bluez-bluetooth = if config.services.xserver.desktopManager.kde4.enable then pkgs.bluez else pkgs.bluez5; + + configBluez = { + description = "Bluetooth Service"; + serviceConfig = { + Type = "dbus"; + BusName = "org.bluez"; + ExecStart = "${bluez-bluetooth}/sbin/bluetoothd -n"; + }; + wantedBy = [ "bluetooth.target" ]; + }; + + configBluez5 = { + description = "Bluetooth Service"; + serviceConfig = { + Type = "dbus"; + BusName = "org.bluez"; + ExecStart = "${bluez-bluetooth}/sbin/bluetoothd -n"; + NotifyAccess="main"; + CapabilityBoundingSet="CAP_NET_ADMIN CAP_NET_BIND_SERVICE"; + LimitNPROC=1; + }; + wantedBy = [ "bluetooth.target" ]; + }; + + obexConfig = { + description = "Bluetooth OBEX service"; + serviceConfig = { + Type = "dbus"; + BusName = "org.bluez.obex"; + ExecStart = "${bluez-bluetooth}/sbin/obexd"; + }; + }; + + bluezConfig = if config.services.xserver.desktopManager.kde4.enable then configBluez else configBluez5; +in { @@ -16,26 +53,15 @@ with lib; }; - ###### implementation - + config = mkIf config.hardware.bluetooth.enable { - environment.systemPackages = [ pkgs.bluez pkgs.openobex pkgs.obexftp ]; - - services.udev.packages = [ pkgs.bluez ]; - - services.dbus.packages = [ pkgs.bluez ]; - - systemd.services."dbus-org.bluez" = { - description = "Bluetooth Service"; - serviceConfig = { - Type = "dbus"; - BusName = "org.bluez"; - ExecStart = "${pkgs.bluez}/sbin/bluetoothd -n"; - }; - wantedBy = [ "bluetooth.target" ]; - }; + environment.systemPackages = [ bluez-bluetooth pkgs.openobex pkgs.obexftp ]; + services.udev.packages = [ bluez-bluetooth ]; + services.dbus.packages = [ bluez-bluetooth ]; + systemd.services."dbus-org.bluez" = bluezConfig; + systemd.services."dbus-org.bluez.obex" = obexConfig; }; |