r/Title Fix for Reddit

Always show the subreddit (r/Name) at the start of the Reddit tab title and keep it updated on SPA navigation.

Install this script?
Author's suggested script

You may also like Subreddit tab icons.

Install this script
// ==UserScript==
// @name         r/Title Fix for Reddit
// @description  Always show the subreddit (r/Name) at the start of the Reddit tab title and keep it updated on SPA navigation.
// @namespace https://greasyfork.org/en/scripts/540810-r-title-fix-for-reddit
// @version      1
// @license      MIT
// @author       TheSina
// @match        https://*.reddit.com/*
// @exclude      https://*.reddit.com/account/*
// @grant        none
// ==/UserScript==

(function() {
  'use strict';

  const SUBREDDIT_RX = /^\/r\/([^\/]+)/;
  const PREFIX_RX    = /^r\/[^\s]+\s*-\s*/;

  function getSubreddit() {
    const m = SUBREDDIT_RX.exec(location.pathname);
    return m ? m[1] : null;
  }

  function updateTitle() {
    const sr = getSubreddit();
    if (!sr) return;

    const display = 'r/' + sr.charAt(0).toUpperCase() + sr.slice(1);
    const suffix  = document.title.replace(PREFIX_RX, '');
    const newT    = `${display} - ${suffix}`;

    if (document.title !== newT) {
      document.title = newT;
    }
  }

  let timer;
  function debouncedUpdate() {
    clearTimeout(timer);
    timer = setTimeout(updateTitle, 100);
  }

  // Patch both pushState and replaceState
  ['pushState','replaceState'].forEach(fn => {
    const orig = history[fn];
    history[fn] = function() {
      orig.apply(this, arguments);
      debouncedUpdate();
    };
  });

  // Back/forward buttons
  window.addEventListener('popstate', debouncedUpdate);

  // Watch for programmatic title changes
  const titleEl = document.querySelector('title');
  if (titleEl) {
    new MutationObserver(debouncedUpdate)
      .observe(titleEl, { childList: true });
  }

  // Initial run
  updateTitle();
})();