') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); Wian47 (Wian) · GitHub
Skip to content
View Wian47's full-sized avatar

Block or report Wian47

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
Wian47/README.md
Hi, I'm Wian

PortfolioXProfile views


🛠️ Tech Stack

Languages

Languages

Frameworks & Libraries

Frameworks

Databases & ORMs

Databases

Tools & Platforms

Tools

Also in the toolbox: Bubble Tea + Lip Gloss (Go TUIs) · Typer + Rich (Python CLIs) · Zod · React Router · Framer Motion · Scapy · Tailscale


🚀 Featured Projects

ProjectWhat it doesBuilt with
ts-hudTerminal dashboard for your Tailscale mesh — fuzzy search peers and SSH in with one keystroke.GoBubble TeaTailscale
GitSketchInteractive TUI that draws your Git branch and merge history as you explore it.GoBubble TeaLip Gloss
ULPMOne CLI for Flatpak, Snap, DNF, APT and Pacman — the first command on a fresh Linux install.PythonTyperRich
git-cleanBranch janitor: detects squash-merges, inspects commit age, batch-deletes stale branches.PythonRichQuestionary
CLI-NetworkScannerPort scanning, DNS, SSL and connectivity diagnostics from one console tool.PythonScapydnspython
omarchy-removable-drivesMount, open and safely eject USB sticks and SD cards straight from the Omarchy bar.QMLJavaScript
PortfolioMy personal site — animated, responsive, deployed on Vercel.TypeScriptReactViteTailwind

📊 GitHub Stats

Profile detailsTop languages by repoTop languages by commitStatsProductive time

🤝 Connect

GitHubXPortfolio



( ☞ ͡° ͜ʖ ͡° ) ☞ thanks for stopping by

Popular repositories Loading

  1. omarchy-removable-drives omarchy-removable-drivesPublic

    USB sticks, SD cards, and external drives in the Omarchy bar: mount, open, and safely eject.

    JavaScript 4 1

  2. Wian47 Wian47Public

  3. CLI-NetworkScanner CLI-NetworkScannerPublic

    A simple command-line network diagnostic tool for scanning ports, checking connectivity, and gathering network information.

    Python

  4. Portfolio PortfolioPublic

    Portfolio website for Wian

    TypeScript

  5. ULPM ULPMPublic

    A beautiful, all-in-one CLI tool for managing Flatpak, Snap, and System Packages (DNF, APT, Pacman) on Linux.

    Python

  6. GitSketch GitSketchPublic

    An interactive terminal Git branch and merge visualizer.

    Go