ctucx.git: nixfiles

ctucx' nixfiles

1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
42 
43 
44 
45 
46 
47 
48 
49 
50 
51 
52 
53 
54 
55 
56 
57 
58 
59 
60 
61 
62 
63 
64 
65 
66 
{ config, pkgs, lib, ... }:

let
  cfg = config.ctucxConfig.configure.bluetooth;

in {

  options = {
    ctucxConfig.configure.bluetooth = lib.mkEnableOption "bluetooth";
  };

  config = lib.mkIf cfg {
    hardware.bluetooth = {
      enable      = true;
      powerOnBoot = false;
    };

    services.blueman = {
      enable = true;
    };

    home-manager.users.leah = {
      home.packages = [ pkgs.blueman ];

      xdg = {
        desktopEntries = {
          blueman-adapters = {
            name        = "Bluetooth Adapters";
            settings    = {
              NoDisplay = "true";
            };
          };
        };
      };

      wayland.windowManager.sway.config.startup = [
        { always = true; command = "systemctl --user restart blueman-applet"; }
      ];

      systemd.user.services = {
        blueman-applet = {
          Unit = {
            Description = "Blueman applet";
            Requires    = [ "waybar.service" ];
            After       = [ "graphical-session-pre.target" "tray.target" ];
            PartOf      = [ "graphical-session.target" ];
          };

          Service.ExecStart = "${pkgs.blueman}/bin/blueman-applet";
          Install.WantedBy = [ "graphical-session.target" ];
        };

        mpris-proxy = {
          Unit = {
            Description = "Mpris proxy";
            After       = [ "network.target" "sound.target" ];
          };

          Service.ExecStart = "${pkgs.bluez}/bin/mpris-proxy";
          Install.WantedBy = [ "default.target" ];
        };
      };
    };
  };

}