Afaiu, messages like “xyz joined/left the room” (not sure about the wording, as I have only seen it in a German instance) can only globally be switched on or off.
I propose that this configuration setting should be made both per room and per client.
Ideally, administrators could define this option per room (show participation notifications on/off) but later clients could override this setting.
I observed a chat instance where there was an onboarding room and a rarley frequented room. In the onboarding room, it is great to see who joined and left, but in the other room I am really just interested in the content. As it might be silent there for longer periods of time, the room is still cluttered with messages of the type “XYZ joined/left the room”, which are of no additional value to me and make it actually harder to inspect the history of what has been said (web-client: scroll up, wait for the browser to fetch and reveal older content, scroll up, wait for the …).
Maybe an improvement that would be quicker in its implementation (but I do not know the codebase) would be to group the join/left messages visually and let them eat less space (i.e. “26.-28.May: UserA joined (2018/05/26 15:23); UserB joined (2018/05/26 17:34), UserA left (2018/05/27 00:21) …”.
I counted that my current laptop travel screen setup allows (only) 9 such notifications to be seen on the same time, which means that every join/leave eats up more than 10% of content space.