Your Rocket.Chat : 0.37.1
It would be great if there was some easier way to mark rooms as read. Right now, you have to click a room and wait enough time in it. Sometimes, this doesn't even work: if you stay in the room, it still does not clear itself as read, and you have to scroll up through the room or click on the "Mark all messages as read" link that shows up sometimes.
Instead of having these slow and inconsistent ways of having the room being marked as read, it would be nice to just have a simple icon next to the room when you hover over it that marks the room as read when you click on it. It can be left of the "Hide room" or "Leave room" buttons, or somewhere else on the left or something.
If being next to the hide/leave rooms is too cluttered, I would actually rather have those be moved somewhere else, maybe not next to the room names. I mean, you should rarely hide a room and even rarer leave it, so those don't have to show up whenever you hover over a room every time. It would be more useful to change those to be "Mark as read" and "Mark as unread" instead.

+1 On this issue it happens all the time in our chat for all our users
I've come up with a solution/workaround that adds a mark as read button to the tab bar.
It works on the Cordova app if you can figure out how to make the client to fetch the custom scripts. I'm not sure what I did, but I eventually managed to get my phone to show the button.
Add this to Administration > Layout > Custom Scripts > Custom Script for logged in users:
RocketChat.TabBar.addButton({
groups: ['channel', 'privategroup', 'directmessage'],
id: 'mark-as-read',
i18nTitle: 'Mark as Read',
icon: 'icon-book',
openClick: function() {
readMessage.readNow(true);
return false;
},
order: 999
});
Change order as desired to move it between specific buttons.
You'll have to refresh after adding the script.

A clunkier solution that shows up quicker is to add it to the footer.
Administration > Layout > Content > Side Navigation Footer:
<a style="cursor:pointer" onClick="readMessage.readNow(true);">Mark as Read</a>
Right now I'm using both solutions with some jquery added as another part of custom scripting to remove the text from the footer.
@nokobon good hack, it works fine.
It seams the above script no longer works as of build 0.50.1
Now when I click it, it does not invoke the 'openClick' method and instead opens an empty panel. Unfortunately, I have not been able to find any kind of documentation on what these scripts expect, so I have no idea what changed or how to fix it.
I was also using the above script and just updated to 0.52.0 from 0.48.1.
I think this commit broke it but I'm not entirely sure: https://github.com/RocketChat/Rocket.Chat/commit/146e81d3f46f3ab56ece03c89d725162328677f2#diff-4c58203c988d0b9c2226cc9e88e77b2eL22
I also had to change groups to ['channel', 'group', 'direct'] to get the button to show up in direct messages and private groups again. I haven't been able to get the button working again.
Using the link added to the footer seems to work fine for now.
@rocket-cat close
By now, it's possible to mark a whole room as read from the "three-dot" context menu in the sidebar.
Cheers
Thomas
Is there any plan for permanently marking a room as read? We have a bots only channel that is a never ending stream.
Most helpful comment
I've come up with a solution/workaround that adds a mark as read button to the tab bar.
It works on the Cordova app if you can figure out how to make the client to fetch the custom scripts. I'm not sure what I did, but I eventually managed to get my phone to show the button.
Add this to Administration > Layout > Custom Scripts > Custom Script for logged in users:
Change
orderas desired to move it between specific buttons.You'll have to refresh after adding the script.
A clunkier solution that shows up quicker is to add it to the footer.
Administration > Layout > Content > Side Navigation Footer:
Right now I'm using both solutions with some jquery added as another part of custom scripting to remove the text from the footer.