zaphyra's git: nixfiles

zaphyra's nixfiles

commit d7cca0b0a04788b0566d981c96f1485783ffd316
parent f12f9f51aa570f57549131f204e9f64148e14f1e
Author: Katja Ramona Sophie Kwast (zaphyra) <git@zaphyra.eu>
Date: Sun, 10 Aug 2025 14:44:40 +0200

config/home-manager/zaphyra/services: add `kairpodsd`
2 files changed, 45 insertions(+), 17 deletions(-)
M
config/home-manager/zaphyra/configure/niri.nix
|
40
+++++++++++++++++++++++-----------------
A
config/home-manager/zaphyra/services/kairpodsd.nix
|
22
++++++++++++++++++++++
diff --git a/config/home-manager/zaphyra/configure/niri.nix b/config/home-manager/zaphyra/configure/niri.nix
@@ -1,4 +1,5 @@
 {
+  systemConfig,
   config,
   inputs,
   homeManagerModules,

@@ -13,24 +14,29 @@ let
 in
 {
 
-  imports = with homeManagerModules.zaphyra; [
-    services.niri
-    services.gnome-keyring
-    services.batsignal
-    services.wpaperd
-    services.waybar
-    services.swayosd
-    services.swaync
-    services.swayidle
-    services.wlsunset
-    services.playerctl
+  imports =
+    with homeManagerModules.zaphyra;
+    [
+      services.niri
+      services.gnome-keyring
+      services.batsignal
+      services.wpaperd
+      services.waybar
+      services.swayosd
+      services.swaync
+      services.swayidle
+      services.wlsunset
+      services.playerctl
 
-    programs.swaylock
-    programs.fuzzel
-    programs.ghostty
-    programs.sherlock
-    programs.overskride
-  ];
+      programs.swaylock
+      programs.fuzzel
+      programs.ghostty
+      programs.sherlock
+      programs.overskride
+    ]
+    ++ (lib.optionals systemConfig.modules.hardware.bluetooth.enable [
+      services.kairpodsd
+    ]);
 
   home.persistence."/nix/persist/home/${config.home.username}".directories = [
     "dconf/.config/dconf"
diff --git a/config/home-manager/zaphyra/services/kairpodsd.nix b/config/home-manager/zaphyra/services/kairpodsd.nix
@@ -0,0 +1,22 @@
+{ pkgs, lib, ... }:
+
+{
+
+  systemd.user.services.kairpodsd = {
+    Unit = {
+      Description = "kAirPods D-Bus Service";
+      After = [ "graphical-session.target" ];
+    };
+    Service = {
+      Type = "dbus";
+      BusName = "org.kairpods";
+      ExecStart = lib.getExe pkgs.kairpodsd;
+      Restart = "on-failure";
+      RestartSec = 5;
+      PrivateTmp = true;
+      NoNewPrivileges = true;
+    };
+    Install.WantedBy = [ "default.target" ];
+  };
+
+}