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.
    – Cody Gray
    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?
    – terdon
    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).
    – wizzwizz4
    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.

Not the answer you're looking for? Browse other questions tagged .