Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MSC2673: Notification Levels #2673

Open
wants to merge 1 commit into
base: old_master
Choose a base branch
from

Conversation

timokoesters
Copy link

@timokoesters timokoesters commented Jul 7, 2020

@turt2live turt2live changed the title MSC: Notification Levels MSC2673: Notification Levels Jul 7, 2020
@turt2live turt2live added kind:feature MSC for not-core and not-maintenance stuff proposal A matrix spec change proposal proposal-in-review labels Jul 7, 2020
@timokoesters
Copy link
Author

Another feature this proposal makes possible is to quickly switch between "normal" and "work" profiles. Perhaps you set the notification settings in a way where you only receive notifications from some work-related rooms when a device is using the "work" profile

@turt2live turt2live self-requested a review July 20, 2020 21:30
- 2: Increase notification count
- 4: Show notification
- 6: Play notification sound
- 8: Highlight message

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can see a potential issue here. For example, you might want mentions in a public channel to be highlighted but not cause any sounds or show any notifications (eg. when you do a lot of IRC support), but inversely you probably want PMs to cause a notification + sound but not highlight the message (since the entire chat would show up highlighted).

Basically, I'm not convinced that "highlight message" exists on a linear spectrum with notification intensity. Unlike eg. sounds or shown notifications, it is something that is done to the display afterwards, not something that grabs your attention in the moment.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is mentioned under the "Problems" section, but yes, this is my main concern as well.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can get around this completely by defining what actions can be taken and assigning a true or false value to each. These values would still be represented by a single number however. This number would work the same way binary numbers work. Convert the base 10 number into base 2 then use 1s and 0s as flags for each notification action. For example, the numbers 1-255 give you 8 possible "switches" each can be toggled independently. This makes it possible to easily extend this in the future to enable more complex/future types of notification actions. An implementation note, do not decode this number into a static amount of variables. This will cause issues when new types are added.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we need to encode them into an integer bitmap but I do like the idea of a bunch of booleans rather than a linear list however it is encoded.

by additional fields in the NotificationRule objects, where the higher
`up_to` means higher priority.

- Same problems as with power levels. It's impossible to take away actions as
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think there is another issue which is highlighted by a comparison with power levels:

Basically, (most) people would find a level-based system confusing and hard to use: the two dimensions of control (1. map events onto levels; 2. map levels onto actions) simply don't map onto the way people think. For power levels, we've solved this by giving magic names to some of the levels - "default", "moderator", "admin" - which helps people relate the number to something more concrete. but it's not obvious we can do the same thing here.

Copy link
Author

@timokoesters timokoesters Aug 11, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's possible to create good UI for this using sliders.

Normal:        C___N___S___H___ 
Work:           ___C___N___S___H
Mentions:      #################
Displayname:   #########--------
DMs:           #########--------
Cool Groups:   #####------------
Spammy Groups: ####]
Ignored Users: ]


// Letters: Notification profile (C: Notification Count, N: Show notification, S: Play Sound, H: Highlight)
// '#' before up_to
// '-' between up_to and max
// ']' max
// ' ' over max

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

interesting, though I'm still concerned it wouldn't be something that first-time users could understand easily

@turt2live turt2live removed their request for review December 2, 2020 23:00
@turt2live turt2live added the needs-implementation This MSC does not have a qualifying implementation for the SCT to review. The MSC cannot enter FCP. label Jun 8, 2021
@lboklin
Copy link

lboklin commented Aug 16, 2021

I would suggest that notification settings for a space should propagate to each room contained within unless explicitly overridden. If a room or space exists in more than one space, the "noisiest" setting should take precedence.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind:feature MSC for not-core and not-maintenance stuff needs-implementation This MSC does not have a qualifying implementation for the SCT to review. The MSC cannot enter FCP. proposal A matrix spec change proposal
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants