18

This userstyle aims to remove almost all interactivity with the Stack Exchange network for logged in users. Notably it leaves:

  • Chat
  • Following a post
  • Saves

Removes most other features that produce visible feedback:

  • Close voting
  • Commenting
  • Editing
  • Flagging
  • Posting
  • Reviewing
  • Starting a bounty
  • Voting

This is done completely light-weight by using CSS to remove the elements. Notably, this means that keyboard shortcuts would still work. This is an accepted limitation - do not use keyboard shortcuts if you do not want to interact with the site. Or directly disable them.

You need a userstyle manager like Stylus:

/* ==UserStyle==
@name         StackExchange read-only mode
@description  Disables interactions such as posting or leaving any feedback on posts. Only leaves read-only features. If you browse the sites logged in, you would be able to save posts for later. Leaves flagging intact but removes close reasons. Does not disable keyboard shortcuts.
@namespace    https://github.com/PurpleMagick/
@version      1.5
@author       VLAZ
@license      MIT
==/UserStyle== */

@-moz-document domain("stackoverflow.com"), domain("superuser.com"), domain("serverfault.com"), domain("askubuntu.com"), domain("stackapps.com"), domain("mathoverflow.net"), domain("stackexchange.com") {
    .js-vote-down-btn,
    .js-vote-up-btn,
    .js-edit-post,
    .js-post-notice-edit-post,
    .js-suggest-edit-post,
    .js-edit-pending,
    #edit-tags,
    
    .js-add-link.comments-link,
    .js-comment-flag,
    .js-comment-up,
    .js-comment-edit,
    .js-comment-delete,
    
    #post-editor,
    #submit-button,
    a[href$='/questions/ask'],
    
    #review-button .s-activity-indicator,
    .review-dialog ul, 
    .review-dialog h3, 
    .review-dialog a[href$="/review"], 
    .js-actions-sidebar,
    
    .js-accept-answer-btn[aria-pressed="false"],
    
    .bounty-link,
    #btnProtectLoggedIn,
    
    a[href*='/edit-tag-wiki/'],
    
    .js-join-community,
    
    .js-admin-dashboard-button,
    .js-mod-inbox-button,
    .js-mod-menu-button,
    .js-mod-message-menu,
    .js-post-flag-bar,
    .js-comment-flag-options,
    .js-resolve-action,
    .js-post-flag-options,
    
    .js-flag-post-link,
    .js-close-question-link,
    .js-delete-post,
    #popup-flag-post ul li:not(:nth-child(1)):not(:nth-child(2)):not(:last-child),
    #popup-close-question li
    {
        display: none !important;
    }
    
    .js-accept-answer-btn[aria-pressed="true"]
    {
        pointer-events: none;
    }
}

See the code on GitHub (Direct installation)

5
  • 12
    This is going to make it really difficult for users to contribute to improving the quality of the site's content... oh, I get it. Commented May 31, 2023 at 7:22
  • I get a cryptic "invalid userscript" error when trying to import this using tampermonkey on Brave. Is that expected? Commented Jun 5, 2023 at 8:56
  • @terdon It isn't a user-script, it is a user-style. I posted a version in my answer that will run in Tampermonkey. Commented Jun 5, 2023 at 9:00
  • Consider adding .js-post-flag-bar, .js-comment-edit, .js-comment-delete, .js-comment-flag-options, .js-resolve-action, .js-post-flag-options, (misc. parts of the UI visible to moderators). Commented Jun 5, 2023 at 17:50
  • .js-edit-pending needs to be added Commented Jun 5, 2023 at 19:32

1 Answer 1

3

Here it is as a user script. I couldn't find a user style extension for my browser, but I'm already running Tampermonkey.

// ==UserScript==
// @name StackExchange read-only mode
// @namespace https://github.com/PurpleMagick/
// @version 1.5
// @license MIT
// @author VLAZ
// @contributor Stephen Ostermiller
// @description Disables interactions such as posting or leaving any feedback on posts. Only leaves read-only features. If you browse the sites logged in, you would be able to save posts for later. Leaves flagging intact but removes close reasons. Does not disable keyboard shortcuts.
// @match https://*.stackexchange.com/*
// @match https://*.stackoverflow.com/*
// @match https://*.askubuntu.com/*
// @match https://*.superuser.com/*
// @match https://*.serverfault.com/*
// @match https://*.mathoverflow.net/*
// @match https://*.stackapps.com/*
// @grant GM_addStyle
// ==/UserScript==
GM_addStyle(`
    .js-vote-down-btn,
    .js-vote-up-btn,
    .js-edit-post,
    .js-post-notice-edit-post,
    .js-suggest-edit-post,
    .js-edit-pending,
    #edit-tags,
    
    .js-add-link.comments-link,
    .js-comment-flag,
    .js-comment-up,
    .js-comment-edit,
    .js-comment-delete,
    
    #post-editor,
    #submit-button,
    a[href$='/questions/ask'],
    
    #review-button .s-activity-indicator,
    .review-dialog ul, 
    .review-dialog h3, 
    .review-dialog a[href$="/review"], 
    .js-actions-sidebar,
    
    .js-accept-answer-btn[aria-pressed="false"],
    
    .bounty-link,
    #btnProtectLoggedIn,
    
    a[href*='/edit-tag-wiki/'],
    
    .js-join-community,
    
    .js-admin-dashboard-button,
    .js-mod-inbox-button,
    .js-mod-menu-button,
    .js-mod-message-menu,
    .js-post-flag-bar,
    .js-comment-flag-options,
    .js-resolve-action,
    .js-post-flag-options,
    
    .js-flag-post-link,
    .js-close-question-link,
    .js-delete-post,
    #popup-flag-post ul li:not(:nth-child(1)):not(:nth-child(2)):not(:last-child),
    #popup-close-question li
    {
        display: none !important;
    }
    
    .js-accept-answer-btn[aria-pressed="true"]
    {
        pointer-events: none;
    }
`)

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.