Monorepo for Aesthetic.Computer aesthetic.computer
4
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix: notepat.com HUD tap + Escape redirect, .com superscript spacing

- Add redirectIfBrandedDomain() helper for notepat.com → aesthetic.computer
- Escape/backtick/Enter on notepat.com redirects to aesthetic.computer
- HUD label tap on notepat.com redirects to aesthetic.computer
- Push top bar piano startX from 54 to 75 in dotComMode to clear .com superscript

+30 -11
+11 -4
system/public/aesthetic.computer/disks/notepat.mjs
··· 523 523 function getTopBarPianoMetrics(screen) { 524 524 const topPianoY = 3; 525 525 const topPianoHeight = 15; 526 - const topPianoStartX = 54; 526 + // Push piano right when .com superscript is shown to avoid overlap with HUD label 527 + const topPianoStartX = dotComMode ? 75 : 54; 527 528 const availableWidth = Math.max(0, screen.width - topPianoStartX); 528 529 529 530 const fullWidth = Math.min(140, Math.floor(availableWidth * 0.5)); ··· 905 906 let dawBpm = null; // BPM from DAW 906 907 let dawPlaying = false; // Transport playing state from DAW 907 908 909 + // 🌐 Branded domain mode (notepat.com — pushes top bar piano right for .com superscript) 910 + let dotComMode = false; 911 + 908 912 const trail = {}; 909 913 910 914 // 🎹 Piano roll history - pixel timeline of held notes ··· 1130 1134 1131 1135 // ✨ Show ".com" superscript in the HUD corner label (notepat.com branding) 1132 1136 hud.superscript(".com"); 1137 + dotComMode = true; 1133 1138 1134 1139 // 🎹 Check if we're in DAW mode (loaded from Ableton M4L) 1135 1140 dawMode = query?.daw === "1" || query?.daw === 1 || query?.daw === true; ··· 2683 2688 2684 2689 // 🎹 Draw mini piano strip in top bar (not in recital mode or fullscreen modes) 2685 2690 // Store piano end position for visualizer to use 2686 - let topBarPianoEndX = 54; // Default if piano not shown 2691 + const topBarDefaultX = dotComMode ? 75 : 54; 2692 + let topBarPianoEndX = topBarDefaultX; // Default if piano not shown 2687 2693 if (!recitalMode && !visualizerFullscreen && !paintPictureOverlay && !projector) { 2688 2694 const metrics = getTopBarPianoMetrics(screen); 2689 2695 if (metrics && !metrics.hidden) { ··· 5506 5512 // Only in visualizer area (between piano end and waveBtn), not on piano keys 5507 5513 if (e.is("touch") && e.y < TOP_BAR_BOTTOM && !projector && !paintPictureOverlay && !recitalMode) { 5508 5514 // Check that tap is in the visualizer area (after piano, before waveBtn) 5509 - const topPianoWidth = Math.min(140, Math.floor((screen.width - 54) * 0.5)); 5510 - const topPianoEndX = 54 + topPianoWidth; 5515 + const topBarBase = dotComMode ? 75 : 54; 5516 + const topPianoWidth = Math.min(140, Math.floor((screen.width - topBarBase) * 0.5)); 5517 + const topPianoEndX = topBarBase + topPianoWidth; 5511 5518 const vizLeft = topPianoEndX; // Start after piano 5512 5519 const vizRight = waveBtn?.box?.x || screen.width; 5513 5520 if (e.x >= vizLeft && e.x <= vizRight) {
+19 -7
system/public/aesthetic.computer/lib/disk.mjs
··· 2055 2055 let labelBack = false; 2056 2056 let hiccupTimeout; // Prevent multiple hiccups from being triggered at once. 2057 2057 2058 + // 🌐 Check if running on a branded .com domain (e.g. notepat.com) and redirect to aesthetic.computer 2059 + function redirectIfBrandedDomain() { 2060 + if (typeof window === "undefined") return false; 2061 + const host = window.location?.hostname; 2062 + if (!host) return false; 2063 + // Match notepat.com or www.notepat.com (add more branded domains here as needed) 2064 + if (host === "notepat.com" || host === "www.notepat.com") { 2065 + window.location.href = "https://aesthetic.computer"; 2066 + return true; 2067 + } 2068 + return false; 2069 + } 2070 + 2058 2071 let storeRetrievalResolutions = {}, 2059 2072 storeDeletionResolutions = {}; 2060 2073 ··· 10898 10911 }); 10899 10912 10900 10913 send({ type: "keyboard:unlock" }); 10914 + 10915 + // 🌐 Branded domain: Escape/backtick/Enter navigates to aesthetic.computer 10916 + if (data.key !== "Backspace" && redirectIfBrandedDomain()) return; 10917 + 10901 10918 if (!labelBack || data.key === "Backspace" || data.key === "Escape") { 10902 10919 let promptSlug = "prompt"; 10903 10920 if (data.key === "Backspace") { ··· 11857 11874 volume: 0.15, 11858 11875 }); 11859 11876 11860 - // 🌐 Custom domain redirect: if on a branded .com domain (e.g. notepat.com), 11861 - // tapping the HUD label navigates to aesthetic.computer instead of prompt. 11862 - if (currentHUDSuperscript === ".com" && typeof window !== "undefined" && 11863 - window.location?.hostname?.endsWith("notepat.com")) { 11864 - window.location.href = "https://aesthetic.computer"; 11865 - return; 11866 - } 11877 + // 🌐 Branded domain: tapping HUD label navigates to aesthetic.computer 11878 + if (redirectIfBrandedDomain()) return; 11867 11879 11868 11880 if (!labelBack) { 11869 11881 // Only clear prompt text when leaving NON-kidlisp pieces by tapping HUD