summaryrefslogtreecommitdiff
path: root/home-manager/features/gui/desktops/niri/parts/swayosd.nix
blob: 6cba218e53bb6e0011ca4917c32aca4f3f9dc954 (plain)
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
{
  config,
  lib,
  pkgs,
  ...
}: let
  cfg = config.features.gui.desktops.niri.parts.swayosd;
  aes = config.aesthetics;

  swayosd-patched = pkgs.swayosd.overrideAttrs (old: {
    postInstall = ''
      mkdir -p $out/share/dbus-1/services
      mv $out/share/dbus-1/system-services/org.erikreider.swayosd.service \
        $out/share/dbus-1/services/org.erikreider.swayosd.service
      rm -r $out/share/dbus-1/system*
    '';
  });
in {
  options.features.gui.desktops.niri.parts.swayosd.enable = lib.mkEnableOption "swayosd";
  config = lib.mkIf cfg.enable {
    home.packages = [ pkgs.swayosd ];
    dbus.packages = [ swayosd-patched ];
    services.swayosd = {
      enable = true;
      topMargin = 0.5;
      stylePath = with aes.scheme; (builtins.toFile "style.scss" ''
        window#osd {
          border-radius: 4px;
          border-width: 3px;
          border-style: solid;
          border-color: #${base0C};
          background-color: #${base00};
          color: #${base05};
        }
        window#osd #container {
          margin: 6px;
          padding: 2px;
          background: transparent;
        }
        window#osd trough {
          margin-right: 10px;
        }
        window#osd image {
          -gtk-icon-transform: scale(0.7);
        }
        * {
          opacity: 1;
        }
      '');
    };
  };
}