View nchristensen's full-sized avatar

    Block or report nchristensen

    Block user

    Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

    You must be logged in to block users.

    Content in all repositories owned by your account will be closed.
    Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
    Report abuse

    Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

    Report abuse

    Popular repositories Loading

    1. feintune feintunePublic

      Autotune batched einsum loopy programs

      Python 1

    2. Glass-transition-simulation Glass-transition-simulationPublic

      Particle dynamics simulation

      C++

    3. Nek5000 Nek5000Public

      Forked from Nek5000/Nek5000

      Home of the Nek5000 source code

      Fortran

    4. remote-serial-port-server remote-serial-port-serverPublic

      Forked from papnkukn/remote-serial-port-server

      Serial port over ethernet using a HTTP server with WebSockets and REST API.

      JavaScript

    5. loopy loopyPublic

      Forked from inducer/loopy

      A code generator for array-based code on CPUs and GPUs

      Python

    6. android_packages_apps_UnifiedNlp android_packages_apps_UnifiedNlpPublic

      Forked from microg/UnifiedNlp

      The next generation Network Location Provider, based on plugins.

      Java

    , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
     blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
    }
    } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
    })();
    (function(){
    try {
    var __m = "github.com";
    var __re = new RegExp('^' + "github\\.com" + '
    
    Skip to content
    View nchristensen's full-sized avatar

      Block or report nchristensen

      Block user

      Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

      You must be logged in to block users.

      Content in all repositories owned by your account will be closed.
      Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
      Report abuse

      Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

      Report abuse

      Popular repositories Loading

      1. feintune feintunePublic

        Autotune batched einsum loopy programs

        Python 1

      2. Glass-transition-simulation Glass-transition-simulationPublic

        Particle dynamics simulation

        C++

      3. Nek5000 Nek5000Public

        Forked from Nek5000/Nek5000

        Home of the Nek5000 source code

        Fortran

      4. remote-serial-port-server remote-serial-port-serverPublic

        Forked from papnkukn/remote-serial-port-server

        Serial port over ethernet using a HTTP server with WebSockets and REST API.

        JavaScript

      5. loopy loopyPublic

        Forked from inducer/loopy

        A code generator for array-based code on CPUs and GPUs

        Python

      6. android_packages_apps_UnifiedNlp android_packages_apps_UnifiedNlpPublic

        Forked from microg/UnifiedNlp

        The next generation Network Location Provider, based on plugins.

        Java

      , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
      Skip to content
      View nchristensen's full-sized avatar

        Block or report nchristensen

        Block user

        Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

        You must be logged in to block users.

        Content in all repositories owned by your account will be closed.
        Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
        Report abuse

        Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

        Report abuse

        Popular repositories Loading

        1. feintune feintunePublic

          Autotune batched einsum loopy programs

          Python 1

        2. Glass-transition-simulation Glass-transition-simulationPublic

          Particle dynamics simulation

          C++

        3. Nek5000 Nek5000Public

          Forked from Nek5000/Nek5000

          Home of the Nek5000 source code

          Fortran

        4. remote-serial-port-server remote-serial-port-serverPublic

          Forked from papnkukn/remote-serial-port-server

          Serial port over ethernet using a HTTP server with WebSockets and REST API.

          JavaScript

        5. loopy loopyPublic

          Forked from inducer/loopy

          A code generator for array-based code on CPUs and GPUs

          Python

        6. android_packages_apps_UnifiedNlp android_packages_apps_UnifiedNlpPublic

          Forked from microg/UnifiedNlp

          The next generation Network Location Provider, based on plugins.

          Java

        , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
        Skip to content
        View nchristensen's full-sized avatar

          Block or report nchristensen

          Block user

          Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

          You must be logged in to block users.

          Content in all repositories owned by your account will be closed.
          Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
          Report abuse

          Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

          Report abuse

          Popular repositories Loading

          1. feintune feintunePublic

            Autotune batched einsum loopy programs

            Python 1

          2. Glass-transition-simulation Glass-transition-simulationPublic

            Particle dynamics simulation

            C++

          3. Nek5000 Nek5000Public

            Forked from Nek5000/Nek5000

            Home of the Nek5000 source code

            Fortran

          4. remote-serial-port-server remote-serial-port-serverPublic

            Forked from papnkukn/remote-serial-port-server

            Serial port over ethernet using a HTTP server with WebSockets and REST API.

            JavaScript

          5. loopy loopyPublic

            Forked from inducer/loopy

            A code generator for array-based code on CPUs and GPUs

            Python

          6. android_packages_apps_UnifiedNlp android_packages_apps_UnifiedNlpPublic

            Forked from microg/UnifiedNlp

            The next generation Network Location Provider, based on plugins.

            Java

          , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
          Skip to content
          View nchristensen's full-sized avatar

            Block or report nchristensen

            Block user

            Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

            You must be logged in to block users.

            Content in all repositories owned by your account will be closed.
            Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
            Report abuse

            Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

            Report abuse

            Popular repositories Loading

            1. feintune feintunePublic

              Autotune batched einsum loopy programs

              Python 1

            2. Glass-transition-simulation Glass-transition-simulationPublic

              Particle dynamics simulation

              C++

            3. Nek5000 Nek5000Public

              Forked from Nek5000/Nek5000

              Home of the Nek5000 source code

              Fortran

            4. remote-serial-port-server remote-serial-port-serverPublic

              Forked from papnkukn/remote-serial-port-server

              Serial port over ethernet using a HTTP server with WebSockets and REST API.

              JavaScript

            5. loopy loopyPublic

              Forked from inducer/loopy

              A code generator for array-based code on CPUs and GPUs

              Python

            6. android_packages_apps_UnifiedNlp android_packages_apps_UnifiedNlpPublic

              Forked from microg/UnifiedNlp

              The next generation Network Location Provider, based on plugins.

              Java

            , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
            Skip to content
            View nchristensen's full-sized avatar

              Block or report nchristensen

              Block user

              Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

              You must be logged in to block users.

              Content in all repositories owned by your account will be closed.
              Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
              Report abuse

              Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

              Report abuse

              Popular repositories Loading

              1. feintune feintunePublic

                Autotune batched einsum loopy programs

                Python 1

              2. Glass-transition-simulation Glass-transition-simulationPublic

                Particle dynamics simulation

                C++

              3. Nek5000 Nek5000Public

                Forked from Nek5000/Nek5000

                Home of the Nek5000 source code

                Fortran

              4. remote-serial-port-server remote-serial-port-serverPublic

                Forked from papnkukn/remote-serial-port-server

                Serial port over ethernet using a HTTP server with WebSockets and REST API.

                JavaScript

              5. loopy loopyPublic

                Forked from inducer/loopy

                A code generator for array-based code on CPUs and GPUs

                Python

              6. android_packages_apps_UnifiedNlp android_packages_apps_UnifiedNlpPublic

                Forked from microg/UnifiedNlp

                The next generation Network Location Provider, based on plugins.

                Java

              , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
              Skip to content
              View nchristensen's full-sized avatar

                Block or report nchristensen

                Block user

                Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

                You must be logged in to block users.

                Content in all repositories owned by your account will be closed.
                Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
                Report abuse

                Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

                Report abuse

                Popular repositories Loading

                1. feintune feintunePublic

                  Autotune batched einsum loopy programs

                  Python 1

                2. Glass-transition-simulation Glass-transition-simulationPublic

                  Particle dynamics simulation

                  C++

                3. Nek5000 Nek5000Public

                  Forked from Nek5000/Nek5000

                  Home of the Nek5000 source code

                  Fortran

                4. remote-serial-port-server remote-serial-port-serverPublic

                  Forked from papnkukn/remote-serial-port-server

                  Serial port over ethernet using a HTTP server with WebSockets and REST API.

                  JavaScript

                5. loopy loopyPublic

                  Forked from inducer/loopy

                  A code generator for array-based code on CPUs and GPUs

                  Python

                6. android_packages_apps_UnifiedNlp android_packages_apps_UnifiedNlpPublic

                  Forked from microg/UnifiedNlp

                  The next generation Network Location Provider, based on plugins.

                  Java

                , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
                Skip to content
                View nchristensen's full-sized avatar

                  Block or report nchristensen

                  Block user

                  Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

                  You must be logged in to block users.

                  Content in all repositories owned by your account will be closed.
                  Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
                  Report abuse

                  Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

                  Report abuse

                  Popular repositories Loading

                  1. feintune feintunePublic

                    Autotune batched einsum loopy programs

                    Python 1

                  2. Glass-transition-simulation Glass-transition-simulationPublic

                    Particle dynamics simulation

                    C++

                  3. Nek5000 Nek5000Public

                    Forked from Nek5000/Nek5000

                    Home of the Nek5000 source code

                    Fortran

                  4. remote-serial-port-server remote-serial-port-serverPublic

                    Forked from papnkukn/remote-serial-port-server

                    Serial port over ethernet using a HTTP server with WebSockets and REST API.

                    JavaScript

                  5. loopy loopyPublic

                    Forked from inducer/loopy

                    A code generator for array-based code on CPUs and GPUs

                    Python

                  6. android_packages_apps_UnifiedNlp android_packages_apps_UnifiedNlpPublic

                    Forked from microg/UnifiedNlp

                    The next generation Network Location Provider, based on plugins.

                    Java