Post
Topic
Board Meta
Merits 5 from 2 users
Topic OP
Tampermonkey Script to use on this forum
by
wez
on 05/05/2025, 20:32:52 UTC
⭐ Merited by hugeblack (4) ,dkbit98 (1)
Bitcointalk Readability Enhancer
(Userscript for Tampermonkey/Greasemonkey)

Features
✅ Customizable font size & family
✅ Dark mode / low-contrast theme
✅ Collapsible quotes (click to expand/collapse)
✅ Highlight OP posts (original poster)
✅ Remove signatures (optional)
✅ "Back to top" button for long threads
--

Code:
// ==UserScript==
// @name         Bitcointalk Readability Enhancer
// @namespace    https://bitcointalk.org
// @version      1.0
// @description  Improves readability with dark mode, collapsible quotes, and font adjustments.
// @author       YourName
// @match        https://bitcointalk.org/*
// @grant        GM_addStyle
// ==/UserScript==

(function() {
    'use strict';

    // ==== CUSTOM SETTINGS (Edit these!) ====
    const settings = {
        fontFamily: 'Roboto, Arial, sans-serif', // Preferred font
        fontSize: '16px',                        // Base font size
        darkMode: true,                          // Enable dark mode
        lineHeight: '1.6',                       // Line spacing
        hideSignatures: true,                    // Remove signatures
        highlightOP: true,                      // Color OP's posts
    };

    // ==== DARK MODE ====
    if (settings.darkMode) {
        GM_addStyle(`
            body, td, .tborder, .windowbg, .windowbg2 {
                background: #1a1a1a !important;
                color: #e0e0e0 !important;
            }
            a:link, a:visited { color: #4dabf7 !important; }
            .quote { border-left: 3px solid #444 !important; }
        `);
    }

    // ==== FONT & SPACING ====
    GM_addStyle(`
        body, .post, .subject {
            font-family: ${settings.fontFamily} !important;
            font-size: ${settings.fontSize} !important;
            line-height: ${settings.lineHeight} !important;
        }
        .post { margin-bottom: 1.2em !important; }
    `);

    // ==== COLLAPSIBLE QUOTES ====
    document.querySelectorAll('.quote').forEach(quote => {
        const toggleBtn = document.createElement('button');
        toggleBtn.textContent = '[−]';
        toggleBtn.style.cssText = 'cursor:pointer; background:none; border:none; color:#888; padding:0 5px;';
        quote.parentNode.insertBefore(toggleBtn, quote);
        quote.style.display = 'none'; // Start collapsed

        toggleBtn.addEventListener('click', () => {
            quote.style.display = quote.style.display === 'none' ? 'block' : 'none';
            toggleBtn.textContent = quote.style.display === 'none' ? '[+]' : '[−]';
        });
    });

    // ==== HIDE SIGNATURES ====
    if (settings.hideSignatures) {
        GM_addStyle(`.signature { display: none !important; }`);
    }

    // ==== HIGHLIGHT OP POSTS ====
    if (settings.highlightOP) {
        GM_addStyle(`
            .poster > b > a[href*="action=profile"]:first-child {
                color: #ff9c59 !important;
                font-weight: bold;
            }
        `);
    }

    // ==== "BACK TO TOP" BUTTON ====
    const topBtn = document.createElement('button');
    topBtn.textContent = '↑ Top';
    topBtn.style.cssText = 'position:fixed; bottom:20px; right:20px; padding:8px; z-index:9999; cursor:pointer;';
    document.body.appendChild(topBtn);
    topBtn.addEventListener('click', () => window.scrollTo({ top: 0, behavior: 'smooth' }));
})();