SwayNotificationCenter icon indicating copy to clipboard operation
SwayNotificationCenter copied to clipboard

[Feature] Per-Application Notification Layout / Placement Rules

Open rplanchuelo opened this issue 5 months ago • 0 comments

Hi, and thank you for the ongoing development of SwayNC — it’s currently the most flexible and modern notification solution for Wayland-based environments.

I would like to request support for per-application layout and placement rules for notifications.

Right now, most notification layout-related options (such as position, stacking behavior, anchor points, margins, or output selection) are global, which means all notifications share the same visual behavior and placement.


Why this would be useful

Different applications often convey different levels or types of information. Being able to separate or categorize notifications visually can make them much easier to notice, ignore, or prioritize. For example:

  • Messaging apps placed near the bottom right (closer to typing focus area)
  • System or desktop notifications at the top right or left
  • Critical alerts centered or visually isolated
  • Media / “now playing” notifications near the bottom left
  • Development/debug notifications on a secondary monitor

This allows users to avoid visual noise and create a more meaningful, glanceable notification workflow.


Proposed Feature

Extend the existing per-application rule system to include layout and placement attributes, e.g.:

"app-name=Signal": {
  "positionX": "right",
  "positionY": "bottom",
  "margin": 20,
  "stacking": "bottom-up",
  "monitor": "eDP-1"
},

"app-name=Firefox": {
  "positionX": "right",
  "positionY": "top",
  "margin": 10,
  "stacking": "top-down",
  "monitor": "HDMI-A-1"
}

Or using a unified rule block format:

"rules": [
  {
    "match": { "app-name": "Signal" },
    "layout": {
      "position": { "x": "right", "y": "bottom" },
      "stacking": "bottom-up",
      "monitor": "eDP-1"
    }
  }
]

Notes

  • CSS styling already allows per-application visual customization, which is great — but layout and placement are determined before rendering, so they cannot be overridden in style.css.

  • Workarounds like running multiple SwayNC instances, or mixing SwayNC + Mako, do work, but introduce additional complexity and maintenance overhead.


Benefits

  • Cleaner and more organized notification experience

  • Reduces cognitive load by grouping notifications by context

  • Enables more ergonomic multi-monitor workflows

  • Avoids needing multiple notification daemons


I would be happy to help test and provide feedback if this feature is considered.

Thank you for your time and for maintaining this project! 🙏

rplanchuelo avatar Nov 06 '25 08:11 rplanchuelo