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
--
// ==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' }));
})();