{ config, ... }:
{
  services.swaync.enable = true;
  services.swaync.settings = {
    positionX = "right";
    positionY = "top";
    control-center-margin-top = 10;
    control-center-margin-bottom = 10;
    control-center-margin-right = 10;
    control-center-margin-left = 10;
    notification-icon-size = 64;
    notification-body-image-height = 100;
    notification-body-image-width = 200;
    timeout = 10;
    timeout-low = 5;
    timeout-critical = 0;
    fit-to-screen = false;
    control-center-width = 500;
    control-center-height = 800;
    notification-window-width = 500;
    keyboard-shortcuts = true;
    image-visibility = "when-available";
    transition-time = 200;
    hide-on-clear = false;
    hide-on-action = true;
    script-fail-notify = true;
    widgets = [
      "title"
      "mpris"
      "volume"
      "backlight"
      "dnd"
      "notifications"
    ];
    widget-config = {
      title = {
        text = "Mission Control";
        clear-all-button = "true";
        button-text = " All Systems Go";
      };
      dnd = {
        text = "Do Not Disturb";
      };
      label = {
        max-lines = 1;
        text = "Mission Control";
      };
      mpris = {
        image-size = 96;
        image-radius = 7;
      };
      volume = {
        label = "ó°•¾";
      };
      backlight = {
        label = "󰃟";
      };
    };
  };

  home.file.".config/swaync/style.css".text = ''
    * {
      font-family: ${config.stylix.fonts.monospace.name};
    }
    .control-center .notification-row:focus,
    .control-center .notification-row:hover {
      background: #${config.lib.stylix.colors.base00}
    }
    .notification-row {
      outline: none;
      margin: 10px;
      padding: 0;
    }
    .notification {
      background: transparent;
      padding: 0;
      margin: 0px;
      opacity: 0.75;
    }
    .notification-content {
      background: #${config.lib.stylix.colors.base00};
      padding: 10px;
      border-radius: 5px;
      border: 2px solid #${config.lib.stylix.colors.base05};
      margin: 0;
    }
    .notification-default-action {
      margin: 0;
      padding: 0;
      border-radius: 5px;
    }
    .close-button {
      background: #${config.lib.stylix.colors.base08};
      color: #${config.lib.stylix.colors.base00};
      text-shadow: none;
      padding: 0;
      border-radius: 5px;
      margin-top: 5px;
      margin-right: 5px;
    }
    .close-button:hover {
      box-shadow: none;
      background: #${config.lib.stylix.colors.base0D};
      transition: all .15s ease-in-out;
      border: none
    }
    .notification-action {
      border: 2px solid #${config.lib.stylix.colors.base0D};
      border-top: none;
      border-radius: 5px;
    }
    .notification-default-action:hover,
    .notification-action:hover {
      color: #${config.lib.stylix.colors.base0B};
      background: #${config.lib.stylix.colors.base0B}
    }
    .notification-default-action {
      border-radius: 5px;
      margin: 0px;
    }
    .notification-default-action:not(:only-child) {
      border-bottom-left-radius: 7px;
      border-bottom-right-radius: 7px
    }
    .notification-action:first-child {
      border-bottom-left-radius: 10px;
      background: #${config.lib.stylix.colors.base00}
    }
    .notification-action:last-child {
      border-bottom-right-radius: 10px;
      background: #${config.lib.stylix.colors.base00}
    }
    .inline-reply {
      margin-top: 8px
    }
    .inline-reply-entry {
      background: #${config.lib.stylix.colors.base00};
      color: #${config.lib.stylix.colors.base05};
      caret-color: #${config.lib.stylix.colors.base05};
      border: 1px solid #${config.lib.stylix.colors.base09};
      border-radius: 5px
    }
    .inline-reply-button {
      margin-left: 4px;
      background: #${config.lib.stylix.colors.base00};
      border: 1px solid #${config.lib.stylix.colors.base09};
      border-radius: 5px;
      color: #${config.lib.stylix.colors.base05}
    }
    .inline-reply-button:disabled {
      background: initial;
      color: #${config.lib.stylix.colors.base03};
      border: 1px solid transparent
    }
    .inline-reply-button:hover {
      background: #${config.lib.stylix.colors.base00}
    }
    .body-image {
      margin-top: 6px;
      background-color: #${config.lib.stylix.colors.base05};
      border-radius: 5px
    }
    .summary {
      font-size: 16px;
      font-weight: 700;
      background: transparent;
      color: rgba(158, 206, 106, 1);
      text-shadow: none
    }
    .time {
      font-size: 16px;
      font-weight: 700;
      background: transparent;
      color: #${config.lib.stylix.colors.base05};
      text-shadow: none;
      margin-right: 18px
    }
    .body {
      font-size: 15px;
      font-weight: 400;
      background: transparent;
      color: #${config.lib.stylix.colors.base05};
      text-shadow: none
    }
    .control-center {
      background: #${config.lib.stylix.colors.base00};
      border: 2px solid #${config.lib.stylix.colors.base0C};
      border-radius: 5px;
      opacity: 0.85;
    }
    .control-center-list {
      background: transparent
    }
    .control-center-list-placeholder {
      opacity: .5
    }
    .floating-notifications {
      background: transparent
    }
    .blank-window {
      background: alpha(black, 0)
    }
    .widget-title {
      color: #${config.lib.stylix.colors.base0B};
      background: #${config.lib.stylix.colors.base00};
      padding: 5px 10px;
      margin: 10px 10px 5px 10px;
      font-size: 1.5rem;
      border-radius: 5px;
    }
    .widget-title>button {
      font-size: 1rem;
      color: #${config.lib.stylix.colors.base05};
      text-shadow: none;
      background: #${config.lib.stylix.colors.base00};
      box-shadow: none;
      border-radius: 5px;
    }
    .widget-title>button:hover {
      background: #${config.lib.stylix.colors.base08};
      color: #${config.lib.stylix.colors.base00};
    }
    .widget-dnd {
      background: #${config.lib.stylix.colors.base00};
      padding: 5px 10px;
      margin: 10px 10px 5px 10px;
      border-radius: 5px;
      font-size: large;
      color: #${config.lib.stylix.colors.base0B};
    }
    .widget-dnd>switch {
      border-radius: 5px;
      /* border: 1px solid #${config.lib.stylix.colors.base0B}; */
      background: #${config.lib.stylix.colors.base0B};
    }
    .widget-dnd>switch:checked {
      background: #${config.lib.stylix.colors.base08};
      border: 1px solid #${config.lib.stylix.colors.base08};
    }
    .widget-dnd>switch slider {
      background: #${config.lib.stylix.colors.base00};
      border-radius: 5px
    }
    .widget-dnd>switch:checked slider {
      background: #${config.lib.stylix.colors.base00};
      border-radius: 5px
    }
    .widget-label {
        margin: 10px 10px 5px 10px;
    }
    .widget-label>label {
      font-size: 1rem;
      color: #${config.lib.stylix.colors.base05};
    }
    .widget-mpris {
      color: #${config.lib.stylix.colors.base05};
      padding: 5px 10px;
      margin: 10px 10px 5px 10px;
      border-radius: 5px;
    }
    .widget-mpris > box > button {
      border-radius: 5px;
    }
    .widget-mpris-player {
      padding: 5px 10px;
      margin: 10px
    }
    .widget-mpris-title {
      font-weight: 700;
      font-size: 1.25rem
    }
    .widget-mpris-subtitle {
      font-size: 1.1rem
    }
    .widget-menubar>box>.menu-button-bar>button {
      border: none;
      background: transparent
    }
    .topbar-buttons>button {
      border: none;
      background: transparent
    }
    .widget-volume {
      background: #${config.lib.stylix.colors.base01};
      padding: 5px;
      margin: 10px 10px 5px 10px;
      border-radius: 5px;
      font-size: x-large;
      color: #${config.lib.stylix.colors.base05};
    }
    .widget-volume>box>button {
      background: #${config.lib.stylix.colors.base0B};
      border: none
    }
    .per-app-volume {
      background-color: #${config.lib.stylix.colors.base00};
      padding: 4px 8px 8px;
      margin: 0 8px 8px;
      border-radius: 5px;
    }
    .widget-backlight {
      background: #${config.lib.stylix.colors.base01};
      padding: 5px;
      margin: 10px 10px 5px 10px;
      border-radius: 5px;
      font-size: x-large;
      color: #${config.lib.stylix.colors.base05}
    }
  '';
}