View jacobleclair's full-sized avatar

    Block or report jacobleclair

    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
    jacobleclair/README.md
    • 👋 Hi, I’m @jacobleclair
    • 👀 I’m interested in programming, homebrew, and cybersecurity.
    • 🌱 I’m currently learning pentensting.
    • 📫 How to reach me: leclairjacob4@gmail.com
    • 😄 Pronouns: he/him, they/them
    • ⚡ Fun fact: I started making web apps when I was 7

    Popular repositories Loading

    1. yatemp yatempPublic

      Yet another HTML templating utility

      JavaScript

    2. jacobleclair jacobleclairPublic

      Config files for my GitHub profile.

    3. WhiteSur-librewolf-theme WhiteSur-librewolf-themePublic

      Forked from rashadgasimli/WhiteSur-librewolf-theme

      Mac OS Safari theme for Librewolf on Linux

      CSS

    4. blockly blocklyPublic

      Forked from RaspberryPiFoundation/blockly

      The web-based visual programming editor.

      TypeScript

    , '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 jacobleclair's full-sized avatar

      Block or report jacobleclair

      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
      jacobleclair/README.md
      • 👋 Hi, I’m @jacobleclair
      • 👀 I’m interested in programming, homebrew, and cybersecurity.
      • 🌱 I’m currently learning pentensting.
      • 📫 How to reach me: leclairjacob4@gmail.com
      • 😄 Pronouns: he/him, they/them
      • ⚡ Fun fact: I started making web apps when I was 7

      Popular repositories Loading

      1. yatemp yatempPublic

        Yet another HTML templating utility

        JavaScript

      2. jacobleclair jacobleclairPublic

        Config files for my GitHub profile.

      3. WhiteSur-librewolf-theme WhiteSur-librewolf-themePublic

        Forked from rashadgasimli/WhiteSur-librewolf-theme

        Mac OS Safari theme for Librewolf on Linux

        CSS

      4. blockly blocklyPublic

        Forked from RaspberryPiFoundation/blockly

        The web-based visual programming editor.

        TypeScript

      , '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 jacobleclair's full-sized avatar

        Block or report jacobleclair

        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
        jacobleclair/README.md
        • 👋 Hi, I’m @jacobleclair
        • 👀 I’m interested in programming, homebrew, and cybersecurity.
        • 🌱 I’m currently learning pentensting.
        • 📫 How to reach me: leclairjacob4@gmail.com
        • 😄 Pronouns: he/him, they/them
        • ⚡ Fun fact: I started making web apps when I was 7

        Popular repositories Loading

        1. yatemp yatempPublic

          Yet another HTML templating utility

          JavaScript

        2. jacobleclair jacobleclairPublic

          Config files for my GitHub profile.

        3. WhiteSur-librewolf-theme WhiteSur-librewolf-themePublic

          Forked from rashadgasimli/WhiteSur-librewolf-theme

          Mac OS Safari theme for Librewolf on Linux

          CSS

        4. blockly blocklyPublic

          Forked from RaspberryPiFoundation/blockly

          The web-based visual programming editor.

          TypeScript

        , '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 jacobleclair's full-sized avatar

          Block or report jacobleclair

          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
          jacobleclair/README.md
          • 👋 Hi, I’m @jacobleclair
          • 👀 I’m interested in programming, homebrew, and cybersecurity.
          • 🌱 I’m currently learning pentensting.
          • 📫 How to reach me: leclairjacob4@gmail.com
          • 😄 Pronouns: he/him, they/them
          • ⚡ Fun fact: I started making web apps when I was 7

          Popular repositories Loading

          1. yatemp yatempPublic

            Yet another HTML templating utility

            JavaScript

          2. jacobleclair jacobleclairPublic

            Config files for my GitHub profile.

          3. WhiteSur-librewolf-theme WhiteSur-librewolf-themePublic

            Forked from rashadgasimli/WhiteSur-librewolf-theme

            Mac OS Safari theme for Librewolf on Linux

            CSS

          4. blockly blocklyPublic

            Forked from RaspberryPiFoundation/blockly

            The web-based visual programming editor.

            TypeScript

          , '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 jacobleclair's full-sized avatar

            Block or report jacobleclair

            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
            jacobleclair/README.md
            • 👋 Hi, I’m @jacobleclair
            • 👀 I’m interested in programming, homebrew, and cybersecurity.
            • 🌱 I’m currently learning pentensting.
            • 📫 How to reach me: leclairjacob4@gmail.com
            • 😄 Pronouns: he/him, they/them
            • ⚡ Fun fact: I started making web apps when I was 7

            Popular repositories Loading

            1. yatemp yatempPublic

              Yet another HTML templating utility

              JavaScript

            2. jacobleclair jacobleclairPublic

              Config files for my GitHub profile.

            3. WhiteSur-librewolf-theme WhiteSur-librewolf-themePublic

              Forked from rashadgasimli/WhiteSur-librewolf-theme

              Mac OS Safari theme for Librewolf on Linux

              CSS

            4. blockly blocklyPublic

              Forked from RaspberryPiFoundation/blockly

              The web-based visual programming editor.

              TypeScript

            , '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 jacobleclair's full-sized avatar

              Block or report jacobleclair

              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
              jacobleclair/README.md
              • 👋 Hi, I’m @jacobleclair
              • 👀 I’m interested in programming, homebrew, and cybersecurity.
              • 🌱 I’m currently learning pentensting.
              • 📫 How to reach me: leclairjacob4@gmail.com
              • 😄 Pronouns: he/him, they/them
              • ⚡ Fun fact: I started making web apps when I was 7

              Popular repositories Loading

              1. yatemp yatempPublic

                Yet another HTML templating utility

                JavaScript

              2. jacobleclair jacobleclairPublic

                Config files for my GitHub profile.

              3. WhiteSur-librewolf-theme WhiteSur-librewolf-themePublic

                Forked from rashadgasimli/WhiteSur-librewolf-theme

                Mac OS Safari theme for Librewolf on Linux

                CSS

              4. blockly blocklyPublic

                Forked from RaspberryPiFoundation/blockly

                The web-based visual programming editor.

                TypeScript

              , '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 jacobleclair's full-sized avatar

                Block or report jacobleclair

                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
                jacobleclair/README.md
                • 👋 Hi, I’m @jacobleclair
                • 👀 I’m interested in programming, homebrew, and cybersecurity.
                • 🌱 I’m currently learning pentensting.
                • 📫 How to reach me: leclairjacob4@gmail.com
                • 😄 Pronouns: he/him, they/them
                • ⚡ Fun fact: I started making web apps when I was 7

                Popular repositories Loading

                1. yatemp yatempPublic

                  Yet another HTML templating utility

                  JavaScript

                2. jacobleclair jacobleclairPublic

                  Config files for my GitHub profile.

                3. WhiteSur-librewolf-theme WhiteSur-librewolf-themePublic

                  Forked from rashadgasimli/WhiteSur-librewolf-theme

                  Mac OS Safari theme for Librewolf on Linux

                  CSS

                4. blockly blocklyPublic

                  Forked from RaspberryPiFoundation/blockly

                  The web-based visual programming editor.

                  TypeScript

                , '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 jacobleclair's full-sized avatar

                  Block or report jacobleclair

                  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
                  jacobleclair/README.md
                  • 👋 Hi, I’m @jacobleclair
                  • 👀 I’m interested in programming, homebrew, and cybersecurity.
                  • 🌱 I’m currently learning pentensting.
                  • 📫 How to reach me: leclairjacob4@gmail.com
                  • 😄 Pronouns: he/him, they/them
                  • ⚡ Fun fact: I started making web apps when I was 7

                  Popular repositories Loading

                  1. yatemp yatempPublic

                    Yet another HTML templating utility

                    JavaScript

                  2. jacobleclair jacobleclairPublic

                    Config files for my GitHub profile.

                  3. WhiteSur-librewolf-theme WhiteSur-librewolf-themePublic

                    Forked from rashadgasimli/WhiteSur-librewolf-theme

                    Mac OS Safari theme for Librewolf on Linux

                    CSS

                  4. blockly blocklyPublic

                    Forked from RaspberryPiFoundation/blockly

                    The web-based visual programming editor.

                    TypeScript