<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
     xmlns:content="http://purl.org/rss/1.0/modules/content/"
     xmlns:dc="http://purl.org/dc/elements/1.1/"
     xmlns:dcterms="http://purl.org/dc/terms/"
     xmlns:media="http://search.yahoo.com/mrss/"
     xmlns:atom="http://www.w3.org/2005/Atom"
     xmlns:cf="https://www.futureplc.com/rss/content-flags"
>
    <channel>
                    <atom:link href="https://www.tomsguide.com/feeds/tag/operating-systems" rel="self" type="application/rss+xml" />
                            <title><![CDATA[ Latest from Tom's Guide in Operating-systems ]]></title>
                <link>https://www.tomsguide.com/computing/software/operating-systems</link>
        <description><![CDATA[ All the latest operating-systems content from the Tom's Guide team ]]></description>
                                    <lastBuildDate>Mon, 07 Sep 2026 08:00:00 +0000</lastBuildDate>
                            <language>en</language>
                                <item>
                                                            <title><![CDATA[ I spoke to the Microsoft PM rebuilding Windows 11 for Nvidia RTX Spark: The radical reinvention building the first true MacBook Pro threat ]]></title>
                                                                                                <dc:content><![CDATA[ <p>For eight grueling months leading up to the end of last year, engineers from Microsoft and Nvidia worked side by side from the silicon bootstrap level upward. And the goal? Making Windows 11 play nice with an unprecedented architectural shift: an Arm-based CPU sharing massive unified memory with a desktop-class Nvidia RTX GPU.</p><p>And then, the first <a href="https://www.tomsguide.com/computing/laptops/nvidias-rtx-spark-n1x-drops-this-october-why-apple-silicon-should-be-terrified-and-our-price-predictions">RTX Spark</a> machine finally booted. The red LED lit up, and as Microsoft's Principal Product Manager, Peter Dawoud, recalls it: “half of Santa Clara was jumping.” This was a huge undertaking, but now the real work begins: fine-tuning everything.</p><p>RTX Spark isn’t just another laptop sticker; it pushed Microsoft to fundamentally overhaul five foundational subsystems inside Windows 11 to bridge the gap between low-power Arm efficiency, top-tier AAA gaming, and local agentic AI.</p><p>I spoke to Dawoud about the software underpinning Team Green’s hardware because, as he said, “Windows kind of had to get all these subsystems right all at the same time, so that you can enjoy an RTX Spark device and take the most advantage out of it.”</p><h2 id="a-prism-emulator-overhaul">A Prism Emulator overhaul</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="oWfTLRd5NPjKy6jDQeEsq4" name="Nvidia RTX Spark" alt="Nvidia RTX Spark" src="https://cdn.mos.cms.futurecdn.net/oWfTLRd5NPjKy6jDQeEsq4.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Take it from someone who has watched the many attempts to run Windows on ARM chips (and covered the Snapdragon X Elite launch): emulation has always had an Achilles’ heel when it comes to gaming: micro-stuttering and frame pacing.</p><p>“When you're playing video games, it's not just about your average FPS. 1% lows, stuttering is really critical, and your CPU actually plays a very big role in stuttering control,” Dawoud explained.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="VPJcvprGffc9FfD2cHiytJ" name="Nvidia RTX Spark" alt="Nvidia RTX Spark" src="https://cdn.mos.cms.futurecdn.net/VPJcvprGffc9FfD2cHiytJ.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>While average frame rates look acceptable, CPU timing can get erratic when you try to emulate a game and play it at the same time, which can make fast-paced gaming feel jerky. When somebody buys an Nvidia laptop in October, the chances are likely that they will want to play games on it — it’s an RTX GPU after all.</p><p>So work needed to be done, and Microsoft has overhauled the Prism emulation layer for RTX Spark’s pipelines. By shoring up how tasks are assigned to each of the CPU’s threads, frame rates are much more stable in my testing, and the improvement over past versions is night and day.</p><h2 id="ui-polish-amp-the-agentic-future">UI polish & the agentic future</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2570px;"><p class="vanilla-image-block" style="padding-top:66.65%;"><img id="4fF35LQYkV4jpZNrPUKxZg" name="win11improvedsearchg" alt="Windows 11 Improved Search in action" src="https://cdn.mos.cms.futurecdn.net/4fF35LQYkV4jpZNrPUKxZg.jpg" mos="" align="middle" fullscreen="" width="2570" height="1713" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft)</span></figcaption></figure><p>If you’re going to make what I believe could be a MacBook Pro killer, you need to make sure the UI is ready for power users as well as casual users. And the mission in Dawoud’s mind to do this is clear: “make the OS kind of get out of the way, for you to do the work that you want to do.”</p><p>Microsoft is cleaning up Windows 11 for this kind of user: native taskbar customization, customizable notifications, killing unwanted widgets, and remembering displays you connect to—to preserve specific screen layout settings.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="kANGCbHE3KTdGdR5xZVvD4" name="Nvidia RTX Spark" alt="Nvidia RTX Spark" src="https://cdn.mos.cms.futurecdn.net/kANGCbHE3KTdGdR5xZVvD4.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Then we turn our attention to the “reinvent the PC” part of the RTX Spark, which comes down to local agentic AI. I saw a demo of Hermes Agent connected to a user’s Google account that acted like his personal chief of staff: setting an agenda for the day, drafting email responses in Gmail, and updating a project tracker in Google Docs. And it all happened on-device without a single bit of cloud AI.</p><p>But without guardrails, this could get scary. “Having an agent that you can't control is probably the thing you don't want,” he stated. So the answer is Microsoft Extension Containers (MXC) — isolated sandboxes for your local models to act across your desktop securely without sensitive system control leaking.</p><h2 id="killing-oem-bloatware">Killing OEM bloatware</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="mcY3VEDiPviihsNtyMMVY4" name="Nvidia RTX Spark" alt="Nvidia RTX Spark" src="https://cdn.mos.cms.futurecdn.net/mcY3VEDiPviihsNtyMMVY4.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>It’s always been a dream of mine to have a laptop that doesn’t come packed with OEM-specific power management software or an antivirus scanner. While this may not fix the latter, it goes a long way toward killing the need for the former.</p><p>Dawoud emphasized the need to eliminate the clunky tug-of-war between Windows and external software. Currently, there are several ways to tweak power management across different apps, but RTX Spark uses the open-source Modern Power and Thermal Framework—letting Windows natively control all thermal and power tuning.</p><p>“Users, when they want to set the best performance, they can do it in Windows, and they'll know that the OEM's tuning for best performance has now been set,” he said. “They don't need to go to another app and be like, 'Okay, is that app saying good performance and Windows is saying good performance at the same time?'”</p><p>This also helps these laptops maintain the same performance on and off the charger.</p><h2 id="the-uma-secret">The UMA secret</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="WudXrWFBDRvTr4BfJPKW3T" name="RTX Spark" alt="RTX Spark" src="https://cdn.mos.cms.futurecdn.net/WudXrWFBDRvTr4BfJPKW3T.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>On paper, a Unified Memory Architecture (UMA) sounds great — a big pool for both the CPU and monstrous GPU to dip into at leisure, and take however much (or little) they need. But in reality, CPUs and GPUs digest memory completely differently.</p><p>CPUs crave small memory chunks (4-kilobyte pages) to distribute tasks across their many cores. They take a pizza, pull all the ingredients off of it, and share them around. GPUs, however, take that entire pizza, fold it in half, and eat it taco-style. They need massive blocks (up to 2-megabyte pages) to plow through parallel 3D rendering or AI tasks.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="rVysSsvNTgqPQr98uY9uY4" name="Nvidia RTX Spark" alt="Nvidia RTX Spark" src="https://cdn.mos.cms.futurecdn.net/rVysSsvNTgqPQr98uY9uY4.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>“RTX Spark has a very powerful GPU, so making sure that we give it as much memory as possible when it needs it, but also give it the right page sizes, is really critical,” Dawoud commented.</p><p>So Microsoft's fix is to add variable page sizing directly to the memory manager. This is a bit complex, but it means Windows can dynamically read the pages of data flowing through and send them to the right places—the 2MB to the GPU and 4KB to the CPU simultaneously.</p><p>“Optimizing that is the way you can weaponize the entire stack to get the most performance out of it,” He emphasized.</p><h2 id="taming-nvidia-s-custom-cpu-cores">Taming Nvidia’s custom CPU cores</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NC4Vevw7coKXAFTkqRDdYP" name="Nvidia RTX Spark" alt="Nvidia RTX Spark" src="https://cdn.mos.cms.futurecdn.net/NC4Vevw7coKXAFTkqRDdYP.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Unlike Qualcomm’s standardized Snapdragon X chips, Nvidia’s 18- and 20-core Grace CPUs use a proprietary cluster arrangement of performance and efficiency cores to maximize speed while delivering all-day battery life.</p><p>Dawoud explained that Nvidia's core configuration is entirely unique, and “previous Arm cores that have run on Windows are not like that.”</p><p>Now, historically, supporting an exotic CPU layout required rewriting the entire kernel underpinning Windows — a risky move for sure. But Windows 11 has a new profiling stack that can tune itself dynamically on the fly, meaning the scheduler that throws tasks everywhere can adapt to Nvidia’s unique chip here without breaking legacy compatibility.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-e4EgZW"></div>                            </div>                            <script src="https://kwizly.com/embed/e4EgZW.js" async></script><h2 id="the-pc-has-finally-grown-up">The PC has finally grown up</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="GVxdiZGjWNreCjxARYdq74" name="Nvidia RTX Spark" alt="Nvidia RTX Spark" src="https://cdn.mos.cms.futurecdn.net/GVxdiZGjWNreCjxARYdq74.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The 14-year partnership between Microsoft and Nvidia finally feels like it is paying off. Dawoud pointed out that this wasn't a sudden alliance — the journey started over a decade ago with the Tegra-powered Surface RT.</p><p>But this specific launch represents a fundamental shift in how the two giants collaborate. By letting Microsoft engineers rebuild the OS from the silicon bootstrap level upward, RTX Spark gave Windows the foundation it needed to finally make Arm-based PC gaming a reality.</p><p>Microsoft and Nvidia haven’t just bolted a GPU onto an Arm processor; they’ve rewritten the rulebook beneath the surface. This is a huge moment for both companies, and if Windows on Arm succeeds where previous attempts faltered, it will all be traced back to that one moment Microsoft spent eight agonizing months building the foundation to make it feel effortless.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/laptops/macbook-pro-14-inch-vs-asus-proart-p14-nvidia-rtx-spark">I held the Asus ProArt P14 next to my MacBook Pro 14 — and Apple should be genuinely terrified of Nvidia’s RTX Spark</a></li><li><a href="https://www.tomsguide.com/gaming/handheld-gaming/i-tested-acers-wild-flip-and-swivel-handheld-why-project-dualplay-mini-is-the-ultimate-netbook-love-letter">I tested Acer's wild Project DualPlay Mini — and it's a gaming handheld and laptop in one gadget</a></li><li><a href="https://www.tomsguide.com/gaming/pc-gaming/i-tested-the-real-dlss-5-forget-the-leaked-mods-its-not-an-ai-filter-this-is-nvidias-photorealistic-game-changer">I wanted to hate Nvidia’s DLSS 5 ‘AI filter’ — but the real DLSS 5 is photorealistic black magic</a></li></ul><div class="vizualizer-embed"><div class="tg-df-widget-host" data-widget-config="?search=laptops&min_discount_ratio=0.95&widget_title=Top+Deals+Handpicked+by+Our+Editors&widget_subtitle=Discover+the+best+discounts+currently+available%2C+curated+daily+by+the+Tom%27s+Guide+Savings+Squad.&bg_color=transparent" data-vizualizer-embed="true"></div>    <script>    /**     * Tom's Guide Deals Finder - Vanilla JS Encapsulated Engine     */    (function() {      // --- Freyr Analytics Adapter ---      function initAnalytics() {        window.dataLayer = window.dataLayer || [];        window.googletag = window.googletag || {};        window.googletag.cmd = window.googletag.cmd || [];        window.hawk = window.hawk || { analytics: { freyr: [] } };        window.hawk.analytics = window.hawk.analytics || { freyr: [] };        window.hawk.analytics.freyr = window.hawk.analytics.freyr || [];        window.freyr = window.freyr || { cmd: [] };        const scriptSrc = 'https://freyr.futurecdn.net/freyr.js';        const hostname = typeof window !== 'undefined' ? window.location.hostname : '';        const isTestEnv = typeof window.navigator !== 'undefined' && (window.navigator.webdriver || window.navigator.userAgent.includes('Headless'));        const shouldSendRealAnalytics = !isTestEnv && hostname && hostname !== 'localhost' && hostname !== '127.0.0.1' && !hostname.includes('run.app');        if (shouldSendRealAnalytics && !document.querySelector(`script[src="${scriptSrc}"]`)) {          const script = document.createElement('script');          script.src = scriptSrc;          script.async = true;          document.head.appendChild(script);        }      }      function storeEventForDebug(name, data) {        if (!window.hawk || !window.hawk.analytics || !window.hawk.analytics.freyr) return;        window.hawk.analytics.freyr.push({ name, data });        try {          if (typeof window !== 'undefined' && window.localStorage) {            window.localStorage.setItem("hawk", JSON.stringify(window.hawk));          }        } catch (e) {          // Ignore storage issues        }        try {          window.dispatchEvent(new CustomEvent("hawk-analytics-update"));        } catch (e) {}      }      function sendToFreyr(eventName, data) {        if (typeof window === 'undefined') return;        window.freyr = window.freyr || { cmd: [] };        window.freyr.cmd.push(() => {          if (window.freyr && window.freyr.pushAndUpdate) {            window.freyr.pushAndUpdate(eventName, data);          }        });      }      function sendEvent(event, skip = false) {        try {          storeEventForDebug(event.name, event.data);          if (!skip) {            sendToFreyr(event.name, event.data);          }        } catch (e) {          // Ensure tracking errors don't surface to the user        }      }      function getCookie(name) {        try {          const match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));          return match ? match[2] : null;        } catch (e) {          return null;        }      }      function normalizeCurrency(symbol) {        const map = {          '£': 'GBP',          '$': 'USD',          'A$': 'AUD',          'CA$': 'CAD',          '€': 'EUR'        };        return map[symbol] || symbol;      }      function trackElementInteraction(props) {        sendEvent({          name: 'elementInteraction',          data: {            element: {              action: props.action || "click",              id: props.id || undefined,              class: props.class || undefined,              name: props.name || undefined,              text: props.text || undefined,              label: props.label || undefined,              container: props.container || undefined,              url: props.url || undefined,              articleId: props.articleId || undefined            }          }        });      }      function generateRevenueId(url, productName, merchantName, modelId) {        const str = `${window.location.href}|${productName}|${merchantName}|${modelId || ''}|${new Date().toDateString()}|tomsguide`;        let hash = 0;        for (let i = 0; i < str.length; i++) {          const char = str.charCodeAt(i);          hash = ((hash << 5) - hash) + char;          hash = hash & hash;        }        let numericStr = Math.abs(hash).toString();        while (numericStr.length < 19) {          numericStr += Math.floor(Math.random() * 10).toString();        }        return numericStr.substring(0, 19);      }      function rewriteAffiliateLink(url, territory, revenueId) {        if (!url) return url;        const t = (territory || 'gb').toLowerCase();        return url.replace(/hawk-custom-tracking/g, `tomsguide-${t}-${revenueId}`);      }      function trackHawkEvent(params) {        const { clickType, widgetId, productCategoryName, product, productsArray, zeroBasedProductIndexOrNull, totalDealsOrProducts, areaClicked, merchant, revenueId, isoCurrencyCode, queryName, widgetTypeName } = params;        const data = {          event: "hawkEvent",          category: "Affiliates",          affiliate: {            action: {              type: clickType,              id: widgetId,              event: clickType === "appeared" ? "viewed" : "Click from",              timestamp: Date.now()            },            component: {              flag: "Editor",              product: productCategoryName || "deals",              category: `Signal Deal Finder ${widgetTypeName || "Carousel"} widget`,              type: clickType === "appeared" ? "review" : "signal product",              label: queryName || (product ? (product.name || "") : ""),              index: zeroBasedProductIndexOrNull === null || zeroBasedProductIndexOrNull === undefined ? -1 : zeroBasedProductIndexOrNull,              linkCount: totalDealsOrProducts || 0,              blockLayout: "",              areaClicked: areaClicked || ""            }          },          products: productsArray || (product && merchant ? [            {              product: {                primary: {                  id: product.id || product.matchId || null,                  name: product.name,                  type: "deal",                  price: product.price,                  previousPrice: product.previousPrice || null,                  currency: isoCurrencyCode || "USD",                  preorder: false,                  labels: [],                  link: product.link,                  originalLink: product.originalLink || null,                  revenueId: revenueId || null,                  startTime: null,                  endTime: null,                  voucherCode: null,                  voucherAudience: null,                  voucherPercentageSaving: null,                  voucherMoneySaving: null,                  voucherType: null,                  offerExclusive: false,                  offerScope: null,                  globalId: product.globalId || null,                  inStock: product.inStock !== false,                  contractProvider: null,                  contractMinutes: null,                  contractTexts: null,                  contractData: null,                  contractLength: null,                  contractMonthlyPrice: null,                  contractCurrency: isoCurrencyCode || "USD"                }              },              merchant: {                id: merchant.id || null,                name: merchant.name,                url: merchant.url || null,                network: merchant.network || null              },              model: {                id: product.modelId || null,                brand: product.brand || null,                name: product.name,                parent: product.parent || null              }            }          ] : []),          reviews: [],          _clear: true,          "gtm.uniqueEventId": Date.now() % 10000        };        sendEvent({ name: 'hawkEvent', data });      }      function trackDealClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Product Card" });      }      function trackViewSimilarClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Product Card View Similar" });      }      function trackPriceComparisonClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Price Comparison" });      }      function trackReviewClick(params) {        trackHawkEvent({ ...params, clickType: "review", areaClicked: "Signal Product Card Review Link" });      }      function trackShare(params) {        trackHawkEvent({ ...params, clickType: "share", areaClicked: "Signal Product Card Share" });      }      function trackDealsAppeared(widgetId, deals, revenueId, currency, queryName, widgetTypeName) {         if (!deals || deals.length === 0) return;                  const productsArray = deals.slice(0, 50).map((deal) => {            let voucherPct = null;            let rawPrice = parseFloat(deal.rawPrice) || parseFloat(deal.price) || null;            let rawMsrp = parseFloat(deal.rawMsrp) || parseFloat(deal.msrp) || null;            if (rawMsrp > rawPrice && rawPrice > 0) {              voucherPct = Math.round((1 - (rawPrice / rawMsrp)) * 100);            }            let numId = null;            if (deal.externalProductId && !isNaN(parseInt(deal.externalProductId))) {              numId = parseInt(deal.externalProductId);            } else if (deal.id && !isNaN(parseInt(deal.id))) {              numId = parseInt(deal.id);            } else {              numId = deal.matchId || null;            }            return {              product: {                primary: {                  id: numId,                  name: deal.productName || deal.title || "",                  type: "deal",                  price: rawPrice,                  previousPrice: rawMsrp,                  currency: currency || 'USD',                  preorder: false,                  labels: deal.modelBrand || deal.brand ? [                     { type: "brand", value: deal.modelBrand || deal.brand }                  ] : [],                  link: deal.url,                  originalLink: deal.url,                  revenueId: revenueId || null,                  startTime: null,                  endTime: null,                  voucherCode: null,                  voucherAudience: null,                  voucherPercentageSaving: voucherPct,                  voucherMoneySaving: null,                  voucherType: null,                  offerExclusive: false,                  offerScope: null,                  globalId: deal.productKey || null,                  inStock: deal.inStock !== false,                  contractProvider: null,                  contractMinutes: null,                  contractTexts: null,                  contractData: null,                  contractLength: null,                  contractMonthlyPrice: null,                  contractCurrency: currency || 'USD'                }              },              merchant: {                id: deal.merchantId ? parseInt(deal.merchantId) : null,                name: deal.merchant || "Retailer",                url: deal.merchantUrl || null,                network: deal.merchantNetwork || null              },              model: {                id: deal.modelId ? parseInt(deal.modelId) : null,                brand: deal.modelBrand || deal.brand || null,                name: deal.productName || deal.title || "",                parent: deal.modelParent || null              }            };         });                  trackHawkEvent({             clickType: "appeared",             widgetId: widgetId,             productCategoryName: "deals",             zeroBasedProductIndexOrNull: null,             totalDealsOrProducts: deals.length,             productsArray: productsArray,             queryName: queryName,             widgetTypeName: widgetTypeName         });      }      // 1. Setup Shadow DOM Sandbox      const currentScript = document.currentScript;      let hostContainer = null;      let template = null;            if (currentScript) {        let prev = currentScript.previousElementSibling;        while (prev) {          if (prev.tagName === 'TEMPLATE' && prev.classList.contains('tg-df-widget-template')) {            template = prev;          } else if (prev.tagName === 'DIV' && prev.classList.contains('tg-df-widget-host') && !prev.hasAttribute('data-initialized')) {            hostContainer = prev;            break;          }          prev = prev.previousElementSibling;        }      }            // Fallbacks in case script is deferred      if (!hostContainer) {        const hosts = document.querySelectorAll('.tg-df-widget-host:not([data-initialized])');        if (hosts.length > 0) hostContainer = hosts[0];      }            // Safely embedded template for CMS environments      const rawTemplate = `  \x3Cstyle>    /* --- Shadow DOM Base Reset --- */    *, *::before, *::after {      box-sizing: border-box;    }    img, picture, svg, video {      max-width: 100%;      height: auto;      display: block;    }    /*       1. Scoped CSS for Tom's Guide Deals Widget       All classes are prefixed with \`tg-df-\` to prevent CMS style leakage.    */    .tg-df-container {      container-type: inline-size;      container-name: tg-df;      --tg-df-blue: #1F69FF;      --tg-df-blue-hover: #004d8c;      --tg-df-text: #222222;      --tg-df-text-muted: #555555;      --tg-df-bg: #ffffff;      --tg-df-bg-secondary: #f4f4f4;      --tg-df-border: #e2e8f0;      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;      color: var(--tg-df-text);      background-color: transparent;       width: 100%;      max-width: 1200px;      margin: 0 auto;      padding-bottom: 24px;    }    .tg-df-container *, .tg-df-container *::before, .tg-df-container *::after {      margin: 0;      padding: 0;      box-sizing: border-box;    }    .tg-df-container img {      border: none;      margin: 0;      padding: 0;    }    .tg-df-container a {      text-decoration: none;      color: inherit;    }    /*       2. Search & Filter Bar    */    .tg-df-controls {      display: flex;      flex-direction: column;      align-items: center;      gap: 20px;      margin-bottom: 32px;      width: 100%;    }    .tg-df-top-bar {      display: flex;      width: 100%;      max-width: 760px;      gap: 12px;      align-items: center;    }    .tg-df-search-wrapper {      position: relative;      flex: 1;      width: 100%;      box-shadow: 0 8px 24px rgba(0,0,0,0.06);      border-radius: 40px;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      z-index: 100;    }    .tg-df-autocomplete-dropdown {      position: absolute;      top: calc(100% + 4px);      left: 0;      right: 0;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 12px;      box-shadow: 0 8px 32px rgba(0,0,0,0.12);      max-height: 300px;      overflow-y: auto;      z-index: 200;      display: none;    }    .tg-df-autocomplete-dropdown.active {      display: block;    }    .tg-df-autocomplete-item {      padding: 12px 24px;      cursor: pointer;      font-size: 14px;      color: var(--tg-df-text);      transition: background 0.1s ease;    }    .tg-df-autocomplete-item:hover {      background: var(--tg-df-bg-secondary);    }    .tg-df-search-input {      width: 100%;      padding: 16px 64px 16px 24px;      font-size: 16px;      border: 2px solid transparent;      border-radius: 40px;      outline: none;      transition: border-color 0.2s ease, box-shadow 0.2s ease;      color: var(--tg-df-text);      background: transparent;    }    .tg-df-search-input:focus {      border-color: transparent;      box-shadow: 0 0 0 3px rgba(0, 108, 196, 0.15);    }    .tg-df-search-input::placeholder {      color: #999999;    }        .tg-df-search-btn {      position: absolute;      right: 8px;      top: 50%;      transform: translateY(-50%);      width: 40px;      height: 40px;      border-radius: 50%;      background: #222;      border: none;      display: flex;      align-items: center;      justify-content: center;      cursor: pointer;      transition: background 0.2s ease;    }        .tg-df-search-btn:hover {      background: #000;    }    .tg-df-search-icon {      width: 16px;      height: 16px;      fill: #fff;    }    .tg-df-settings-wrapper {      position: relative;    }        .tg-df-settings-btn {      width: 48px;      height: 48px;      border-radius: 50%;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      box-shadow: 0 4px 12px rgba(0,0,0,0.04);      display: flex;      align-items: center;      justify-content: center;      cursor: pointer;      transition: all 0.2s ease;      color: var(--tg-df-text-muted);      flex-shrink: 0;    }    .tg-df-settings-btn:hover {      background: var(--tg-df-bg-secondary);      border-color: #0000ff;      color: var(--tg-df-text);    }    .tg-df-settings-btn svg {      width: 24px;      height: 24px;      fill: currentColor;    }    .tg-df-settings-dropdown {      position: absolute;      top: calc(100% + 8px);      right: 0;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 12px;      box-shadow: 0 8px 32px rgba(0,0,0,0.12);      width: 280px;      padding: 20px;      display: none;      z-index: 100;      flex-direction: column;      gap: 20px;    }    .tg-df-settings-dropdown.active {      display: flex;    }        .tg-df-settings-dropdown-backdrop {      display: none;      position: fixed;      inset: 0;      z-index: 99;    }        .tg-df-settings-dropdown-backdrop.active {      display: block;    }    .tg-df-setting-item {      display: flex;      flex-direction: column;      gap: 10px;    }    .tg-df-setting-label {      font-size: 11px;      font-weight: 700;      color: var(--tg-df-text-muted);      text-transform: uppercase;      letter-spacing: 0.5px;    }        .tg-df-region-select {        padding: 10px 12px;        border-radius: 8px;        border: 1px solid var(--tg-df-border);        font-size: 15px;        outline: none;        background: var(--tg-df-bg-secondary);        color: var(--tg-df-text);        cursor: pointer;        width: 100%;    }    .tg-df-toggle {        position: relative;        display: inline-block;        width: 44px;        height: 24px;        flex-shrink: 0;    }    .tg-df-toggle input {        opacity: 0;        width: 0;        height: 0;    }    .tg-df-slider {        position: absolute;        cursor: pointer;        top: 0; left: 0; right: 0; bottom: 0;        background-color: #ccc;        transition: .2s;        border-radius: 24px;    }    .tg-df-slider:before {        position: absolute;        content: "";        height: 18px;        width: 18px;        left: 3px;        bottom: 3px;        background-color: white;        transition: .2s;        border-radius: 50%;    }    .tg-df-toggle input:checked + .tg-df-slider {        background-color: #1F69FF;    }    .tg-df-toggle input:checked + .tg-df-slider:before {        transform: translateX(20px);    }    .tg-df-dl-row {        flex-direction: row;        align-items: center;        justify-content: space-between;    }    .tg-df-dl-row-text {        font-size: 14px;        font-weight: 600;        color: var(--tg-df-text);    }    .tg-df-dl-row-subtext {        font-size: 12px;        font-weight: 400;        line-height: 1.3;        color: var(--tg-df-text-muted);        margin-top: 4px;        display: block;    }    .tg-df-filters {      display: flex;      gap: 12px;      justify-content: center;      flex-wrap: wrap;    }    .tg-df-sort-wrapper {      position: relative;      display: flex;      align-items: center;    }        .tg-df-sort-icon {      position: absolute;      left: 14px;      width: 14px;      height: 14px;      fill: var(--tg-df-text-muted);      pointer-events: none;    }    .tg-df-sort-select, .tg-df-filter-select {      padding: 10px 36px 10px 38px;      font-size: 14px;      border: 1px solid var(--tg-df-border);      border-radius: 100px;      outline: none;      appearance: none;      background-color: var(--tg-df-bg-secondary);      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12'%3E%3Cpath fill='%23555555' d='M6 8L1 3h10z'/%3E%3C/svg%3E");      background-repeat: no-repeat;      background-position: right 14px center;      color: var(--tg-df-text);      cursor: pointer;      font-weight: 500;      transition: all 0.2s ease;    }        .tg-df-price-input::-webkit-outer-spin-button,    .tg-df-price-input::-webkit-inner-spin-button {      -webkit-appearance: none;      margin: 0;    }    .tg-df-price-input {      -moz-appearance: textfield;    }    .tg-df-sort-select:hover, .tg-df-filter-select:hover {      background-color: #e2e8f0;    }    .tg-df-multiselect-container {      position: relative;    }        .tg-df-multiselect-trigger {      display: block;      background: #fff;      user-select: none;      width: 100%;      overflow: hidden;      white-space: nowrap;      text-overflow: ellipsis;    }        .tg-df-multiselect-dropdown {      display: none;      position: absolute;      top: calc(100% + 4px);      left: 0;      width: 100%;      min-width: 220px;      max-height: 300px;      overflow-y: auto;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 8px;      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);      z-index: 100;      padding: 8px 0;    }    .tg-df-multiselect-dropdown.active {      display: block;    }    .tg-df-ms-option {      padding: 8px 16px;      display: flex;      align-items: center;      gap: 8px;      cursor: pointer;      font-size: 14px;    }    .tg-df-ms-option:hover {      background-color: var(--tg-df-bg-secondary);    }        .tg-df-ms-option input {      cursor: pointer;      accent-color: #1f69ff;    }    .tg-df-sort-select:focus, .tg-df-filter-select:focus {      border-color: #0000ff;      box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.2);      background-color: var(--tg-df-bg);    }    /*       3. Deal Grid Layout    */    .tg-df-grid.tg-df-grid-auto {      padding-top: 24px;    }    .tg-df-grid, .tg-df-grid.layout-grid {      display: grid;      grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));      gap: 10px;    }    .tg-df-grid.layout-row {      grid-template-columns: 1fr;      gap: 16px;    }        .tg-df-grid.layout-row .tg-df-card {      flex-direction: row;      align-items: stretch;      height: auto;      box-shadow: none;      border-bottom: 1px solid var(--tg-df-border);    }    .tg-df-grid.layout-row .tg-df-card:hover {      box-shadow: none;    }    .tg-df-grid.layout-row .tg-df-card-image-box {      width: 140px;      min-width: 140px;      aspect-ratio: 3/4;      border-right: none;      padding: 16px 16px 16px 32px;    }    .tg-df-grid.layout-row .tg-df-card-body {      padding: 16px;      justify-content: space-between;    }    .tg-df-grid.layout-row .tg-df-card-title {      font-size: 15px;      margin-bottom: 16px;    }    .tg-df-grid.layout-row .tg-df-card-stars { margin-bottom: 8px; }    .tg-df-grid.layout-row .tg-df-card-footer {      flex-direction: column;      align-items: flex-start;      gap: 0;    }    .tg-df-grid.layout-row .tg-df-card-merchant-pill {      margin-bottom: 4px;    }    .tg-df-grid.layout-row .tg-df-card-price-group {      margin-bottom: 8px;    }    .tg-df-grid.layout-row .tg-df-price-group {      width: auto;    }    .tg-df-grid.layout-row .tg-df-card-cta {      width: 100%;      max-width: 200px;      padding: 10px 24px;      font-size: 13px;      flex-shrink: 0;      text-align: center;      justify-content: center;    }    /*       4. Deal Card Design    */    .tg-df-card {      position: relative;      display: flex;      flex-direction: column;      background-color: #ffffff;      border-radius: 0;      overflow: hidden;      transition: transform 0.2s ease, box-shadow 0.2s ease;      text-decoration: none;      color: inherit;      height: 100%;      box-shadow: 0 0 16px rgba(0, 0, 0, 0.08);      border: 1px solid var(--tg-df-border);    }    .tg-df-card:hover {      box-shadow: 0 0 24px rgba(0, 0, 0, 0.12);    }    .tg-df-card-image-box {      width: 100%;      aspect-ratio: 3/4;      background-color: #f8f8f8;      display: flex;      align-items: center;      justify-content: center;      position: relative;      overflow: hidden;      padding: 32px;      flex: 0 0 auto;    }    .tg-df-card-image {      max-width: 100%;      max-height: 100%;      width: auto;      height: auto;      object-fit: contain;      mix-blend-mode: multiply; /* Helps white background images blend into secondary bg */      transition: transform 0.3s ease;    }    .tg-df-card:hover .tg-df-card-image {      transform: scale(1.05); /* Zoom in on hover */    }    .tg-df-card-discount-badge {      position: absolute;      top: 12px;      left: 12px;      background: #dc2626; /* Red */      color: #ffffff;      padding: 6px 8px;      font-size: 11px;      font-weight: 500;      text-transform: uppercase;      letter-spacing: 0.5px;      border-radius: 0;      z-index: 10;    }        .tg-df-card-merchant-pill {      display: block;      padding: 0;      font-size: 11px;      font-weight: 600;      text-transform: uppercase;      letter-spacing: 0.5px;      border-radius: 0;      color: var(--tg-df-text-muted);      margin-bottom: 8px;      white-space: nowrap;      overflow: hidden;      text-overflow: ellipsis;    }    .tg-df-card-body {      padding: 16px;      display: flex;      flex-direction: column;      flex-grow: 1;      min-width: 0;    }    .tg-df-card-badges {      display: flex;      flex-wrap: wrap;      gap: 6px;      margin-bottom: 8px;    }    .tg-df-tag {      display: inline-flex;      align-items: center;      padding: 4px 6px;      font-size: 11px;      font-weight: 700;      text-transform: uppercase;      border-radius: 4px;      gap: 4px;    }    .tg-df-tag-prime {      background-color: #00A8E1;      color: #fff;    }    .tg-df-tag-coupons {      background-color: #f1f5f9;      color: #334155;      border: 1px solid #cbd5e1;      cursor: pointer;      transition: background-color 0.2s;    }    .tg-df-tag-coupons:hover {      background-color: #e2e8f0;    }        .tg-df-tag-outline {      background-color: #f1f5f9;      color: #334155;      border: 1px solid #cbd5e1;      cursor: pointer;      transition: background-color 0.2s;    }    .tg-df-tag-outline:hover {      background-color: #e2e8f0;    }        @keyframes tg-df-spin {      0% { transform: rotate(0deg); }      100% { transform: rotate(360deg); }    }    .tg-df-coupon-spinner {      border: 2px solid #e2e8f0;      border-top: 2px solid #3b82f6;      border-radius: 50%;      width: 14px;      height: 14px;      animation: tg-df-spin 1s linear infinite;      margin: 4px 8px;      display: inline-block;    }        /* Vouchers Modal */    .tg-df-modal-backdrop {      position: fixed;      top: 0; left: 0; right: 0; bottom: 0;      background: rgba(0,0,0,0.5);      z-index: 10000;      display: flex;      align-items: center;      justify-content: center;      opacity: 0;      pointer-events: none;      transition: opacity 0.3s;    }    .tg-df-modal-backdrop.active {      opacity: 1;      pointer-events: auto;    }    .tg-df-modal {      background: #fff;      border-radius: 12px;      width: 90%;      max-width: 400px;      max-height: 80vh;      display: flex;      flex-direction: column;      box-shadow: 0 10px 40px rgba(0,0,0,0.2);      transform: translateY(20px);      transition: transform 0.3s;    }    .tg-df-modal-backdrop.active .tg-df-modal {      transform: translateY(0);    }    .tg-df-modal-header {      padding: 16px;      border-bottom: 1px solid #e2e8f0;      display: flex;      align-items: center;      justify-content: space-between;    }    .tg-df-modal-title {      font-size: 16px;      font-weight: 600;      margin: 0;    }    .tg-df-modal-close {      background: none;      border: none;      cursor: pointer;      padding: 4px;      color: #64748b;    }    .tg-df-modal-body {      padding: 16px;      overflow-y: auto;    }    .tg-df-voucher-item {      padding: 12px;      border: 1px dashed #cbd5e1;      border-radius: 8px;      margin-bottom: 10px;      background: #f8fafc;      display: flex;      align-items: center;      gap: 12px;      text-decoration: none;      color: inherit;      transition: background-color 0.2s, border-color 0.2s;    }    .tg-df-voucher-item:hover {      background: #f1f5f9;      border-color: #94a3b8;    }    .tg-df-voucher-item:last-child {      margin-bottom: 0;    }    .tg-df-voucher-logo {      width: 48px;      height: 48px;      object-fit: contain;      border-radius: 4px;      background: #fff;      border: 1px solid #e2e8f0;      flex-shrink: 0;    }    .tg-df-voucher-content {      flex: 1;      min-width: 0;    }    .tg-df-voucher-title {      font-size: 14px;      font-weight: 600;      margin: 0 0 4px 0;      line-height: 1.3;      color: #0f172a;    }    .tg-df-voucher-expiry {      font-size: 12px;      color: #64748b;      display: flex;      align-items: center;      gap: 4px;      margin-top: 6px;    }    .tg-df-voucher-code {      display: inline-flex;      align-items: center;      background: #f1f5f9;      border: 1px dashed #cbd5e1;      padding: 6px 10px;      font-family: monospace;      font-weight: 700;      font-size: 14px;      color: #0f172a;      border-radius: 4px;      margin-top: 8px;      cursor: pointer;      transition: all 0.2s ease;    }    .tg-df-voucher-code:hover {      background: #e2e8f0;      border-color: #94a3b8;    }    .tg-df-voucher-code.copied {      background: #ecfdf5;      border-color: #10b981;      color: #10b981;    }    .tg-df-voucher-cta {      display: inline-block;      margin-top: 8px;      font-size: 13px;      font-weight: 600;      color: #2563eb;      text-decoration: none;    }    .tg-df-card-title {      font-size: 15px;      font-weight: 400;      line-height: 1.4;      margin: 0 0 12px 0;      color: var(--tg-df-text);      display: -webkit-box;      -webkit-line-clamp: 2;      -webkit-box-orient: vertical;      overflow: hidden;    }    .tg-df-card-footer {      margin-top: auto;      display: flex;      flex-direction: column;      width: 100%;    }    .tg-df-card-price-group {      display: flex;      flex-direction: row;      align-items: center;      gap: 8px;      margin-bottom: 12px;    }    .tg-df-card-price {      font-size: 16px;      font-weight: 700;      color: #dc2626; /* Red price */      line-height: 1;    }        .tg-df-card-msrp {      font-size: 13px;      color: var(--tg-df-text-muted);      text-decoration: line-through;    }    .tg-df-container .tg-df-card-cta {      display: flex;      align-items: center;      justify-content: center;      width: 100%;      box-sizing: border-box;      background-color: #1f69ff;      color: #ffffff;      font-size: 12px;      font-weight: 700;      text-transform: uppercase;      letter-spacing: 0.5px;      padding: 12px 16px;      border-radius: 0;      border: none;      cursor: pointer;      transition: background-color 0.2s ease;    }    .tg-df-card:hover .tg-df-card-cta,    .tg-df-card-cta:hover {      background-color: #1555cc;    }    .tg-df-container .tg-df-card-cta.tg-df-cta-savings-squad {      background-color: #3c8d0d;    }    .tg-df-card:hover .tg-df-card-cta.tg-df-cta-savings-squad,    .tg-df-card-cta.tg-df-cta-savings-squad:hover {      background-color: #2b6509;    }    /*       5. State & Skeleton Styles    */    .tg-df-message {      grid-column: 1 / -1;      text-align: center;      padding: 48px 24px;      color: var(--tg-df-text-muted);      font-size: 16px;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 8px;    }    @keyframes tg-df-shimmer {      0% { background-position: -200% 0; }      100% { background-position: 200% 0; }    }    .tg-df-skeleton {      background: linear-gradient(90deg, var(--tg-df-bg-secondary) 25%, #e2e8f0 50%, var(--tg-df-bg-secondary) 75%);      background-size: 200% 100%;      animation: tg-df-shimmer 1.5s infinite;      border-radius: 4px;    }    .tg-df-skeleton-img {      width: 100%;      height: 100%;      position: absolute;      top: 0; left: 0;    }        .tg-df-skeleton-text {      height: 16px;      margin-bottom: 8px;      width: 100%;    }    .tg-df-skeleton-text.short { width: 40%; }    .tg-df-skeleton-text.title { height: 20px; margin-bottom: 16px; }    /* Editor Floating Bar & Elements */    .tg-df-editor-bar {      position: sticky;      top: 0;      z-index: 1000;      background: #111827;      color: #fff;      padding: 12px 16px;      border-radius: 8px;      margin-bottom: 16px;      display: flex;      align-items: center;      justify-content: space-between;      box-shadow: 0 4px 12px rgba(0,0,0,0.15);    }    .tg-df-editor-bar-text {      font-weight: 600;      font-size: 14px;    }    .tg-df-editor-copy-btn {      background: #10b981;      color: #fff;      padding: 6px 16px;      border: none;      border-radius: 4px;      font-weight: 600;      cursor: pointer;      display: flex;      align-items: center;      font-size: 13px;    }    .tg-df-editor-copy-btn:hover { background: #059669; }        .tg-df-deal-checkbox {      position: absolute;      top: 12px;      right: 12px;      z-index: 10;      width: 20px;      height: 20px;      cursor: pointer;      pointer-events: auto;    }    /*       6. Mobile List View (Stacks into a cleaner horizontal row/list)    */    @container tg-df (max-width: 599px) {      .tg-df-controls {        padding: 0 16px;      }            .tg-df-top-bar {        width: 100%;      }            .tg-df-settings-dropdown {        position: fixed;        top: auto;        bottom: 0;        left: 0;        right: 0;        width: 100%;        border-radius: 20px 20px 0 0;        padding: 24px;        box-shadow: 0 -8px 32px rgba(0,0,0,0.15);        z-index: 1000;        border: none;        border-top: 1px solid var(--tg-df-border);      }            .tg-df-settings-dropdown-backdrop.active {        background: rgba(0,0,0,0.4);      }            .tg-df-search-wrapper {        box-shadow: 0 0 16px rgba(0,0,0,0.08);      }            .tg-df-filters {        width: calc(100% + 32px);        margin: 0 -16px;        padding: 0 16px 4px 16px;        display: flex;        justify-content: flex-start;        gap: 8px;        flex-wrap: nowrap;        overflow-x: auto;        -webkit-overflow-scrolling: touch;        scrollbar-width: none;      }      .tg-df-filters::after {        content: "";        display: block;        flex: 0 0 8px;      }      .tg-df-filters::-webkit-scrollbar {        display: none;      }            .tg-df-sort-wrapper {        flex: 0 0 max(42%, 130px);        min-width: 0;      }      .tg-df-sort-wrapper.tg-df-price-range-wrapper {        flex: 0 0 auto;        min-width: max-content;      }            .tg-df-sort-select, .tg-df-filter-select {        width: 100%;        text-align: left;        padding: 10px 24px 10px 32px;        background-position: right 8px center;        text-overflow: ellipsis;        white-space: nowrap;        overflow: hidden;      }      .tg-df-sort-icon {        left: 10px;      }      .tg-df-grid:not(.layout-grid):not(.layout-row),      .tg-df-grid.layout-row {        grid-template-columns: 1fr;        gap: 16px;      }            .tg-df-grid.tg-df-grid-auto {        padding-top: 24px;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card,      .tg-df-grid.layout-row .tg-df-card {        flex-direction: row;        align-items: stretch;        height: auto;        box-shadow: none; /* simple line on mobile if preferred, or keep */        border-bottom: 1px solid var(--tg-df-border);      }      .tg-df-grid.tg-df-grid-auto .tg-df-card:hover,      .tg-df-grid.layout-row .tg-df-card:hover {        box-shadow: none;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-image-box,      .tg-df-grid.layout-row .tg-df-card-image-box {        width: 120px;        min-width: 120px;        aspect-ratio: 3/4;        border-right: none;        padding: 12px;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-body,      .tg-df-grid.layout-row .tg-df-card-body {        padding: 12px;        justify-content: space-between;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-title,      .tg-df-grid.layout-row .tg-df-card-title {        font-size: 14px;        margin-bottom: 12px;        -webkit-line-clamp: 3;      }      /* Single column mobile grid override */      .tg-df-grid.layout-grid {        grid-template-columns: 1fr;        gap: 16px;      }      .tg-df-grid.layout-grid .tg-df-card-image-box {        padding: 12px;      }      .tg-df-grid.layout-grid .tg-df-card-body {        padding: 10px;      }      .tg-df-grid.layout-grid .tg-df-card-title {        font-size: 13px;        -webkit-line-clamp: 3;        margin-bottom: 8px;      }      .tg-df-grid.layout-grid .tg-df-card-price {        font-size: 14px;      }            .tg-df-card-footer {        flex-direction: column;        align-items: stretch;        gap: 0;        width: 100%;        min-width: 0;      }      .tg-df-card-merchant-pill {        margin-bottom: 4px;      }      .tg-df-card-price-group {        flex: 1 1 auto;        margin-bottom: 8px;      }      .tg-df-card-price {        font-size: 16px;      }      .tg-df-card-msrp {        display: block;       }      .tg-df-grid.layout-row .tg-df-card-cta,      .tg-df-container .tg-df-card-cta {        width: 100%;        max-width: none;        min-width: 0;        box-sizing: border-box;        padding: 8px 16px;        font-size: 12px;        flex: 0 0 auto;        text-align: center;        white-space: normal;        line-height: 1.2;      }    }    .tg-df-container.is-carousel {      min-height: 760px;      background-color: #E7F0FF;      padding: 0 0 24px 0;      border-radius: 24px;    }    .tg-df-container.is-carousel.hide-header-details {      min-height: 480px;    }    /*       7. Carousel View Mode    */    .tg-df-container .tg-df-carousel-host {      /* Layout is now handled by container wrapper */    }    .tg-df-container .tg-df-carousel-eyebrow {      color: #1F69FF;      font-weight: 700;      font-size: 14px;      text-transform: uppercase;      letter-spacing: 1px;      padding: 24px 16px 0 16px;      display: none;    }    .tg-df-container .tg-df-carousel-query-title {      color: #011535;      font-size: 28px;      font-weight: 600;      padding: 0 16px 24px 16px;      line-height: 1.2;      display: none;    }    .tg-df-container .tg-df-carousel-blue-box {      background-color: transparent;      border-radius: 0;      padding: 24px 24px 0 24px;      margin: 0;      color: #1F69FF;          position: relative;      overflow: hidden;    }    .tg-df-container .tg-df-carousel-bg-circle-1 {      display: none;    }    .tg-df-container .tg-df-carousel-bg-circle-2 {      display: none;    }    .tg-df-container .tg-df-carousel-bg-circle-3 {      display: none;    }    .tg-df-container .tg-df-carousel-box-content {      position: relative;      z-index: 10;    }    .tg-df-container .tg-df-carousel-box-eyebrow {      background-color: transparent;      color: #1F69FF;      font-weight: 700;      font-size: 14px;      text-transform: uppercase;      letter-spacing: 1px;      display: inline-block;      padding: 0;      border-radius: 0;    }    .tg-df-container .tg-df-carousel-box-title {      font-size: 28px;      font-weight: 600;      line-height: 1.2;      margin-top: 8px;      color: #1e293b;    }    .tg-df-container .tg-df-countdown-wrapper {      position: absolute;      top: 0;      right: 0;      display: flex;      flex-direction: column;      align-items: flex-end;      gap: 12px;      transform: scale(0.67);      transform-origin: top right;    }    .tg-df-container .tg-df-countdown-title {      font-size: 16px;      text-align: center;      width: 100%;      font-weight: 600;      color: #011535;      margin: 0;    }    .tg-df-container .tg-df-countdown-blocks {      display: flex;      gap: 16px;    }    .tg-df-container .tg-df-countdown-item {      display: flex;      flex-direction: column;      align-items: center;      gap: 4px;    }    .tg-df-container .tg-df-countdown-box {      width: 59px;      height: 59px;      background: #03FE9E;      border-radius: 15px;      display: flex;      align-items: center;      justify-content: center;    }    .tg-df-container .tg-df-countdown-num {      font-family: 'Inter', sans-serif;      font-weight: 700;      font-size: 20px;      line-height: normal;      color: #011535;    }    .tg-df-container .tg-df-countdown-label {      font-family: 'Inter', sans-serif;      font-weight: 500;      font-size: 16px;      line-height: normal;      color: #1e293b;      text-transform: uppercase;    }    .tg-df-container .tg-df-carousel-box-subtitle {      font-size: 16px;      margin-top: 8px;      font-weight: 300;      color: #1e293b;      line-height: 24px;    }    .tg-df-container .tg-df-carousel-roundels-wrapper {      position: relative;      margin-top: 24px;      margin-left: -24px;      margin-right: -24px;    }    .tg-df-container .tg-df-carousel-roundels {      display: flex;      gap: 16px;      overflow-x: auto;            scrollbar-width: none;      padding-top: 12px;      padding-bottom: 24px;      padding-left: 24px;      padding-right: 24px;      margin-left: 0;      margin-right: 0;    }        .tg-df-container .tg-df-carousel-scroll-left,    .tg-df-container .tg-df-carousel-scroll-right {      position: absolute;      top: 50%;      transform: translateY(-50%);      height: 36px;      width: 36px;      display: flex;      align-items: center;      justify-content: center;      border-radius: 50%;      background-color: #ffffff;      border: 1px solid #e2e8f0;      box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);      color: #1F69FF;      cursor: pointer;      transition: all 0.2s;      margin-top: -4px;      z-index: 20;    }    .tg-df-container .tg-df-carousel-scroll-left { left: 8px; }    .tg-df-container .tg-df-carousel-scroll-right { right: 8px; }    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-left { left: 0px; }    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-right { right: 0px; }    .tg-df-carousel-filters-outer { margin-left: -24px; margin-right: -24px; padding-left: 24px; padding-right: 24px; }    @container tg-df (max-width: 599px) { .tg-df-carousel-filters-outer { margin-left: -16px; margin-right: -16px; padding-left: 16px; padding-right: 16px; } }        .tg-df-container .tg-df-carousel-scroll-left:hover,    .tg-df-container .tg-df-carousel-scroll-right:hover {      background-color: #f8fafc;      border-color: #cbd5e1;    }        .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left,    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right,    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-left,    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-right {      background-color: rgba(255, 255, 255, 0.4);      border: none;      box-shadow: none;      backdrop-filter: blur(4px);      -webkit-backdrop-filter: blur(4px);    }    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left { left: 0; }    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right { right: 0; }    .tg-df-grid-wrapper .tg-df-carousel-scroll-left { left: 0; }    .tg-df-grid-wrapper .tg-df-carousel-scroll-right { right: 0; }        .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left:hover,    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right:hover {      background-color: rgba(255, 255, 255, 0.6);      border: none;    }    .tg-df-container .tg-df-carousel-roundels::-webkit-scrollbar {      display: none;    }    .tg-df-container .tg-df-carousel-roundels::after {      content: "";      flex: 0 0 32px;    }    .tg-df-container .tg-df-roundel {      display: flex;      flex-direction: column;      align-items: center;      gap: 8px;      cursor: pointer;      min-width: 120px;      flex-shrink: 0;    }    .tg-df-container .tg-df-roundel-img-box {      width: 120px;      height: 120px;      border-radius: 50%;      background: white;      display: flex;      align-items: center;      justify-content: center;      overflow: hidden;      box-shadow: 0px 3px 14px 0px rgba(30, 41, 59, 0.08);      transition: box-shadow 0.2s;    }    .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box {      box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px #1F69FF;    }    .tg-df-container .tg-df-roundel.active .tg-df-roundel-img-box {      box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px #1F69FF;    }    .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box img {      transform: scale(1.08);    }    .tg-df-container .tg-df-roundel-img-box img {      width: 100%;      height: 100%;      object-fit: contain;      padding: 10px;      box-sizing: border-box;      transition: transform 0.3s ease;    }    .tg-df-container .tg-df-roundel-label {      font-size: 13px;      font-weight: 400;      color: #1e293b;      text-align: center;      transition: font-weight 0.2s;    }    .tg-df-container .tg-df-roundel.active .tg-df-roundel-label {      font-weight: 700;    }    .tg-df-container .tg-df-carousel-filters-label {      font-size: 16px;      font-weight: 400;      color: #1e293b;      white-space: nowrap;      margin-right: 4px;    }    .tg-df-container .tg-df-carousel-filters-wrap {      display: flex;      align-items: center;      flex-wrap: nowrap;      gap: 8px;      margin-top: 8px;      overflow-x: auto;      scrollbar-width: none;      -webkit-overflow-scrolling: touch;      padding-bottom: 8px;      margin-left: -24px;      margin-right: -24px;      padding-left: 24px;      padding-right: 24px;    }    .tg-df-container .tg-df-carousel-filters-wrap::-webkit-scrollbar {      display: none;    }        .tg-df-container .tg-df-carousel-filter-btn img,    .tg-df-container .tg-df-carousel-filter-btn picture {      height: 20px;      width: 20px;      object-fit: contain;      object-position: center;      display: inline-flex;      align-items: center;      justify-content: center;      margin-right: 6px;    }    .tg-df-container .tg-df-carousel-filter-btn picture img {      margin-right: 0;      height: 100%;      width: 100%;    }    .tg-df-container .tg-df-carousel-filter-btn img.active-img,    .tg-df-container .tg-df-carousel-filter-btn picture:has(.active-img) {      display: none;    }    .tg-df-container .tg-df-carousel-filter-btn:hover img.inactive-img,    .tg-df-container .tg-df-carousel-filter-btn.active img.inactive-img,    .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.inactive-img),    .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.inactive-img) {      display: none;    }    .tg-df-container .tg-df-carousel-filter-btn:hover img.active-img,    .tg-df-container .tg-df-carousel-filter-btn.active img.active-img,    .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.active-img),    .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.active-img) {      display: inline-flex;    }    .tg-df-container .tg-df-carousel-filter-btn {      background: #ffffff;      border: 2px solid #1e293b;      color: #1e293b;      border-radius: 24px;      padding: 6px 16px;      font-size: 14px;      font-weight: 600;      cursor: pointer;      transition: all 0.2s;      flex-shrink: 0;      white-space: nowrap;      display: inline-flex;      align-items: center;      justify-content: center;      min-height: 36px;      box-sizing: border-box;    }    .tg-df-container .tg-df-carousel-filter-btn svg {      margin-right: 6px;    }    .tg-df-container .tg-df-carousel-filter-btn:hover {      background: #1e293b;      color: white;      border-color: #1e293b;    }    .tg-df-container .tg-df-carousel-filter-btn.active {      background: #1e293b;      color: white;      border-color: #1e293b;    }        .tg-df-grid.carousel-compact {      display: flex;      flex-wrap: nowrap;      overflow-x: auto;      gap: 16px;      padding: 16px 24px;      align-items: stretch;      scrollbar-width: none;    }    .tg-df-grid.carousel-compact::after {      content: "";      flex: 0 0 32px;    }    .tg-df-grid-wrapper {      position: relative;    }    .tg-df-grid.carousel-compact::-webkit-scrollbar {      display: none;    }    .tg-df-grid.carousel-compact .tg-df-load-more-card {      flex: 0 0 auto;      width: 100px;      border-radius: 15px;      box-shadow: 0 0 16px rgba(0,0,0,0.08);      border: 2px solid #1e293b;      background: white;      color: #1e293b;      display: flex;      flex-direction: column;      justify-content: center;      align-items: center;      font-weight: 600;      font-size: 14px;      cursor: pointer;      padding: 16px;      text-align: center;      transition: all 0.2s;    }    .tg-df-grid.carousel-compact .tg-df-load-more-card:hover {      background: #1e293b;      color: white;    }    .tg-df-grid.carousel-compact .tg-df-card {      flex: 0 0 auto;      width: 200px;      min-height: auto;      height: auto;      display: flex;      flex-direction: column;      border-radius: 15px;      border: none;      box-shadow: 0 0 16px rgba(0,0,0,0.08);      overflow: visible;    }    .tg-df-grid.carousel-compact .tg-df-card-image-box {      padding: 12px;      background-color: transparent;      border-radius: 15px 15px 0 0;      height: 130px;    }    .tg-df-grid.carousel-compact .tg-df-card-image {      mix-blend-mode: normal;    }    .tg-df-grid.carousel-compact .tg-df-card-discount-badge {      border-radius: 0;      top: 0px;      left: 0px;      padding: 4px 8px;      font-size: 11px;    }    .tg-df-grid.carousel-compact .tg-df-card-body {      padding: 8px 12px 12px 12px;    }    .tg-df-grid.carousel-compact .tg-df-card-title {      font-size: 14px;      font-weight: 400;      -webkit-line-clamp: 2;      margin-bottom: 8px;      color: #011535;    }    .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):not(:has(.tg-df-tag-prime)):not(:has(.tg-df-coupon-wrapper:not([style*="none"]))) > .tg-df-card-title,    .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):has(> .tg-df-card-title:first-child) > .tg-df-card-title {      -webkit-line-clamp: 3;    }    .tg-df-grid.carousel-compact .tg-df-card-cta {      border-radius: 5px;      padding: 8px 10px;      margin-top: 4px;      background-color: #1F69FF;    }    .tg-df-grid.carousel-compact .tg-df-card-price-group {      margin-bottom: 2px;    }    .tg-df-grid.carousel-compact .tg-df-card-merchant-pill {      margin-bottom: 2px;    }    @container tg-df (max-width: 599px) {      .tg-df-container .tg-df-carousel-blue-box-title {        font-size: 24px;      }      .tg-df-container .tg-df-countdown-title {        display: none;      }      .tg-df-container .tg-df-countdown-wrapper {        position: absolute;        top: 0;        right: 0;        align-items: flex-end;        transform: scale(0.45);        transform-origin: top right;      }      .tg-df-container .tg-df-roundel {        min-width: 88px;      }      .tg-df-container .tg-df-roundel-img-box {        width: 88px;        height: 88px;      }    }    /* REPLICA BLOCK STYLES */    .tg-df-grid.layout-replica-2 { grid-template-columns: repeat(2, 1fr) !important; gap: 20px; }    .tg-df-grid.layout-replica-1 { grid-template-columns: 1fr !important; gap: 20px; }        .tg-df-container .hawk-deal-widget-container { border-bottom: 1px solid #e5e7eb; display: flex; flex-direction: column; margin: 0; padding: 20px 0; box-sizing: border-box; font-family: inherit; }    .tg-df-container .hawk-deal-widget-wrap { display: flex; flex-direction: row; align-items: flex-start; width: 100%; gap: 24px; }    .tg-df-container .hawk-deal-widget-image-container { display: flex; flex-shrink: 0; justify-content: center; width: 160px; height: 160px; align-items: center; background: white; margin-bottom: 0px; }    .tg-df-container .hawk-deal-widget-title-product-title { color: #111827; font-size: 18px; font-weight: 700; line-height: 1.4; display: inline; }    .tg-df-container .hawk-deal-widget-title-price { font-size: 18px; font-weight: 700; line-height: 1.4; white-space: nowrap; color: #2563eb; }    .tg-df-container .hawk-deal-widget-title-price-now { font-weight: 700; }    .tg-df-container .hawk-deal-widget-title-retailer-price:hover { text-decoration: underline; }    .tg-df-container .hawk-deal-widget-title-retailer { font-size: 18px; font-weight: 700; line-height: 1.4; color: #2563eb; }    .tg-df-container .hawk-deal-widget-title-was-price { color: #dc2626; font-size: 16px; font-weight: 500; line-height: 1.4; text-decoration: line-through; white-space: nowrap; margin-left: 8px; margin-right: 8px; }    .tg-df-container .hawk-deal-widget-text-body-container { position: relative; width: 100%; box-sizing: border-box; }    .tg-df-container .hawk-deal-widget-text-body-main { font-size: 16px; width: 100%; margin-bottom: 12px; }    .tg-df-container .hawk-deal-widget-text-body-description { display: block; font-size: 15px; margin-top: 12px; color: #4b5563; line-height: 1.6; }    .tg-df-container .hawk-deal-widget-text-body-description p { margin: 0; line-height: 1.6; }    .tg-df-container .hawk-deal-widget-text-cta-container { display: flex; flex-direction: column; gap: 12px; width: 100%; flex: 1; min-width: 0; box-sizing: border-box; }    .tg-df-container .hawk-deal-widget-footer { display: flex; justify-content: flex-end; width: 100%; margin-top: auto; }    .tg-df-container .hawk-deal-widget-button-wrapper { display: flex; flex-direction: column; align-items: flex-end; justify-content: flex-end; width: 100%; }    .tg-df-container .hawk-deal-widget-preferred-partner-wrapper { display: flex; flex-direction: row; }        @container tg-df (min-width: 600px) {      .tg-df-mobile-only { display: none !important; }    }    @container tg-df (max-width: 599px) {      .tg-df-desktop-only { display: none !important; }      .tg-df-grid.layout-replica-2 { grid-template-columns: 1fr !important; }      .tg-df-grid.savings-squad-cards { grid-template-columns: 1fr !important; display: flex; flex-direction: column; }    }    .tg-df-grid.savings-squad-cards .tg-df-card-title {      -webkit-line-clamp: unset !important;      display: block !important;      overflow: visible !important;    }    @container tg-df (max-width: 500px) {      .tg-df-container .hawk-deal-widget-wrap { display: block; }      .tg-df-container .hawk-deal-widget-image-container { display: block; float: left; margin: 0 16px 8px 0; width: 120px; max-width: 120px; height: auto; align-items: normal; justify-content: normal; }      .tg-df-container .hawk-deal-widget-text-cta-container { display: block; text-align: left; }      .tg-df-container .hawk-deal-widget-footer { display: block; margin-top: 16px; clear: both; width: 100%; }      .tg-df-container .hawk-deal-widget-button-wrapper { display: block; width: 100%; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-deal-widget-preferred-partner-wrapper { display: block; width: 100%; }      .tg-df-container .hawk-affiliate-link-deal-button { box-sizing: border-box !important; display: flex !important; max-width: none !important; width: 100% !important; margin: 0 !important; }    }        .tg-df-container .hawk-affiliate-link-deal-button {       align-items: center; background-color: #5aaf0b; box-sizing: border-box; color: #ffffff !important; display: flex; font-size: 14px; font-weight: 700; justify-content: center; letter-spacing: 0.5px; line-height: 1; min-width: 160px; padding: 14px 24px; text-align: center; text-decoration: none; text-transform: uppercase; width: 100%; word-break: normal; border-radius: 4px; border: 0; transition: background-color 0.2s;     }    .tg-df-container .hawk-affiliate-link-deal-button:hover { background-color: #4a9109; text-decoration: none; }    .tg-df-container .hawk-lazy-image-deal-widget { display: block; height: auto; margin: auto; max-height: 160px; max-width: 100%; mix-blend-mode: multiply; object-fit: contain; }    .tg-df-container .hawk-deal-widget-text-cta-container a { color: #2563eb; text-decoration: none; display: inline; }    .tg-df-container .hawk-deal-widget-text-cta-container a:hover { text-decoration: underline; }    .tg-df-container .hawk-deal-widget-text-cta-container a:has(.hawk-deal-widget-title-product-title) { color: #111827; }    .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-product-title,    .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-retailer-price { text-decoration: underline; }  \x3C/style>  \x3C!-- Widget Container --\x3E  \x3Cdiv class="tg-df-container" id="signal-deals-finder-root">    \x3C!-- Editor Floating Bar --\x3E    \x3Cdiv class="tg-df-editor-bar" id="tg-df-editor-bar" style="display:none;">      \x3Cdiv class="tg-df-editor-bar-text" style="display: flex; align-items: center;">        \x3Cspan id="tg-df-selected-count">0\x3C/span>\x26nbsp;Deals Selected        \x3Cbutton class="tg-df-editor-clear-btn" id="tg-df-editor-clear" type="button" style="margin-left: 12px; font-size: 13px; color: #9ca3af; background: none; border: none; cursor: pointer; text-decoration: underline;">Clear All\x3C/button>      \x3C/div>      \x3Cbutton class="tg-df-editor-copy-btn" id="tg-df-editor-copy" type="button">        \x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2">\x3C/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1">\x3C/path>\x3C/svg>        Copy to CMS      \x3C/button>    \x3C/div>    \x3Cdiv class="tg-df-carousel-host" id="tg-df-carousel-host" style="display: none;">      \x3Cdiv class="tg-df-carousel-eyebrow">DEAL FINDER\x3C/div>      \x3Cdiv class="tg-df-carousel-query-title" id="tg-df-carousel-title-label">Best Deals\x3C/div>            \x3Cdiv class="tg-df-carousel-blue-box">        \x3Cdiv class="tg-df-carousel-bg-circle-1" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-bg-circle-2" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-bg-circle-3" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-box-content">          \x3Cdiv class="tg-df-countdown-wrapper" id="tg-df-countdown-wrapper" style="display:none;">            \x3Cdiv class="tg-df-countdown-title" id="tg-df-countdown-title">Prime Day starts in\x3C/div>            \x3Cdiv class="tg-df-countdown-blocks">              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-days">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">DAYS\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-hrs">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">HRS\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-min">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">MIN\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-sec">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">SEC\x3C/div>\x3C/div>            \x3C/div>          \x3C/div>          \x3Cdiv class="tg-df-carousel-box-eyebrow">DEAL FINDER\x3C/div>          \x3Cdiv class="tg-df-carousel-box-title">Find Deals Fast\x3C/div>          \x3Cdiv class="tg-df-carousel-box-subtitle">The latest deals from the biggest retailers, all in one place\x3C/div>                    \x3Cdiv class="tg-df-carousel-roundels-wrapper">          \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-roundels').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>          \x3Cdiv class="tg-df-carousel-roundels">            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>          \x3C/div>          \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" onclick="this.parentElement.querySelector('.tg-df-carousel-roundels').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>        \x3C/div>        \x3Cdiv class="tg-df-carousel-filters-outer" style="position: relative;">          \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-filters-wrap').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>          \x3Cdiv class="tg-df-carousel-filters-wrap">                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="0">All\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-ot="amazon_lightning">              \x3Cimg src="https://cdn.mos.cms.futurecdn.net/HqAui7w97ft2NPqBtQ5r38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/yWPQ5yyQRhUwVKzGwYbh38-600-100.png" class="active-img" alt="" /> Lightning deals\x3C/button>            \x3Cbutton class="tg-df-carousel-filter-btn" data-ot="amazon_prime">              \x3Cimg src="https://cdn.mos.cms.futurecdn.net/fwoVXvL79turN3Ph535m38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/u75QjVpt3w2EsMimJiRo38-600-100.png" class="active-img" alt="" /> Prime deals\x3C/button>            \x3Cbutton class="tg-df-carousel-filter-btn" data-d="10">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 10% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="15">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 15% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="25">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 25% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-pr="under50">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-badge-dollar-sign">\x3Cpath d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z">\x3C/path>\x3Cpath d="M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8">\x3C/path>\x3Cpath d="M12 18V6">\x3C/path>\x3C/svg>            Under $50\x3C/button>        \x3C/div>        \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-filters-wrap').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>      \x3C/div>    \x3C/div>    \x3C/div>      \x3C!-- Search & Filter Controls --\x3E    \x3Cdiv class="tg-df-controls" id="tg-df-controls" style="display:flex;">      \x3Cdiv class="tg-df-top-bar">        \x3Cdiv class="tg-df-search-wrapper">          \x3Cinput type="text" class="tg-df-search-input" placeholder="Search for deals, products, or brands...">          \x3Cbutton type="button" class="tg-df-search-btn" aria-label="Search">              \x3Csvg class="tg-df-search-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">                \x3Cpath d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/>              \x3C/svg>          \x3C/button>          \x3Cdiv class="tg-df-autocomplete-dropdown" id="tg-df-autocomplete">\x3C/div>        \x3C/div>                \x3Cdiv class="tg-df-settings-wrapper">          \x3Cbutton type="button" class="tg-df-settings-btn" aria-label="Settings" id="tg-df-settings-toggle">            \x3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20">                \x3Cpath d="M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.06-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.73 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.06.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .43-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.49-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z"/>            \x3C/svg>          \x3C/button>          \x3Cdiv class="tg-df-settings-dropdown-backdrop" id="tg-df-settings-backdrop">\x3C/div>          \x3Cdiv class="tg-df-settings-dropdown" id="tg-df-settings-panel">            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Search Region\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-region-select">                \x3Coption value="auto">🌍 Auto-detect\x3C/option>                \x3Coption value="US">🇺🇸 United States (US)\x3C/option>                \x3Coption value="GB">🇬🇧 United Kingdom (UK)\x3C/option>                \x3Coption value="CA">🇨🇦 Canada (CA)\x3C/option>                \x3Coption value="AU">🇦🇺 Australia (AU)\x3C/option>                \x3Coption value="DE">🇩🇪 Germany (DE)\x3C/option>                \x3Coption value="FR">🇫🇷 France (FR)\x3C/option>                \x3Coption value="IT">🇮🇹 Italy (IT)\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Retailer\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-retailer-select">                \x3Coption value="">All Retailers\x3C/option>                \x3Coption value="Amazon">Amazon\x3C/option>                \x3Coption value="Walmart">Walmart\x3C/option>                \x3Coption value="Best Buy">Best Buy\x3C/option>                \x3Coption value="Target">Target\x3C/option>                \x3Coption value="John Lewis">John Lewis\x3C/option>                \x3Coption value="Currys">Currys\x3C/option>                \x3Coption value="Argos">Argos\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Offer Type\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-offer-type-select">                \x3Coption value="">All Offers\x3C/option>                \x3Coption value="amazon_prime">Amazon Prime\x3C/option>                \x3Coption value="recommended_promo">Recommended Promo\x3C/option>                \x3Coption value="amazon_lightning">Amazon Lightning Deal\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Result Count\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-rows-select">                \x3Coption value="3">3 Items\x3C/option>                \x3Coption value="4">4 Items\x3C/option>                \x3Coption value="6">6 Items\x3C/option>                \x3Coption value="12" selected>12 Items\x3C/option>                \x3Coption value="24">24 Items\x3C/option>                \x3Coption value="48">48 Items\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item tg-df-dl-row">              \x3Cdiv>                \x3Cspan class="tg-df-dl-row-text">Deal Mode\x3C/span>                \x3Cspan class="tg-df-dl-row-subtext">Only show products with active offers or previous prices (was_price)\x3C/span>              \x3C/div>              \x3Clabel class="tg-df-toggle">                \x3Cinput type="checkbox" id="tg-df-deal-mode">                \x3Cspan class="tg-df-slider">\x3C/span>              \x3C/label>            \x3C/div>            \x3Cdiv class="tg-df-setting-item tg-df-dl-row">              \x3Cdiv>                \x3Cspan class="tg-df-dl-row-text">Editor Mode\x3C/span>                \x3Cspan class="tg-df-dl-row-subtext">Enable multi-select to copy deals to CMS\x3C/span>              \x3C/div>              \x3Clabel class="tg-df-toggle">                \x3Cinput type="checkbox" id="tg-df-editor-mode">                \x3Cspan class="tg-df-slider">\x3C/span>              \x3C/label>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">View Mode\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-view-mode-select">                \x3Coption value="auto">Auto Collection\x3C/option>                \x3Coption value="carousel">Carousel\x3C/option>                \x3Coption value="savings_squad">Savings Squad\x3C/option>                \x3Coption value="grid">Grid (Columns)\x3C/option>                \x3Coption value="row">Row (List)\x3C/option>              \x3C/select>            \x3C/div>          \x3C/div>        \x3C/div>      \x3C/div>      \x3Cdiv class="tg-df-filters">        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-category-filter-wrapper" style="display: none;">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-category-filter" aria-label="Category">            \x3Coption value="all">All Categories\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper tg-df-multiselect-container" id="tg-df-brand-filter-wrapper" style="display:none;">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M4.25 5.61C6.27 8.2 10 13 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-6s3.72-4.8 5.74-7.39A.998.998 0 0 0 18.95 4H5.04c-.83 0-1.3.95-.79 1.61z"/>          \x3C/svg>          \x3Cdiv class="tg-df-filter-select tg-df-multiselect-trigger" id="tg-df-brand-trigger" tabindex="0">            Any Brand          \x3C/div>          \x3Cdiv class="tg-df-multiselect-dropdown" id="tg-df-brand-dropdown">            \x3C!-- Populated via script --\x3E          \x3C/div>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M9 3L5 6.99h3V14h2V6.99h3L9 3zm7 14.01V10h-2v7.01h-3L15 21l4-3.99h-3z"/>          \x3C/svg>          \x3Cselect class="tg-df-sort-select" aria-label="Sort Deals">            \x3Coption value="date_desc">Newest First\x3C/option>            \x3Coption value="best_match">Sort by: Match\x3C/option>            \x3Coption value="price_asc">Price Low to High\x3C/option>            \x3Coption value="price_desc">Price High to Low\x3C/option>            \x3Coption value="discount_desc">Biggest Discount\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper tg-df-price-range-wrapper" id="tg-df-custom-price-wrapper" style="display: flex; align-items:center; justify-content:center; padding: 10px 20px; gap: 8px; border: 1px solid var(--tg-df-border); border-radius: 100px; background-color: var(--tg-df-bg);">          \x3Cspan style="font-size:14px; font-weight:500; color:var(--tg-df-text-primary);">Price\x3C/span>          \x3Cinput type="number" class="tg-df-price-input" id="tg-df-custom-price-min" placeholder="Min" style="width: 48px; background: transparent; border: none; color: var(--tg-df-text-primary); outline: none; font-size: 14px; text-align: center; padding: 0;">          \x3Cspan style="color:var(--tg-df-text-muted)">-\x3C/span>          \x3Cinput type="number" class="tg-df-price-input" id="tg-df-custom-price-max" placeholder="Max" style="width: 48px; background: transparent; border: none; color: var(--tg-df-text-primary); outline: none; font-size: 14px; text-align: center; padding: 0;">        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-legacy-price-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-price-filter" aria-label="Filter Prices">            \x3Coption value="all">All Prices\x3C/option>            \x3Coption value="under50">Under $50\x3C/option>            \x3Coption value="50_100">$50 - $100\x3C/option>            \x3Coption value="100_200">$100 - $200\x3C/option>            \x3Coption value="200_500">$200 - $500\x3C/option>            \x3Coption value="over500">Over $500\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-discount-filter-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">            \x3Cpath d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-discount-filter" aria-label="Discount Amount">            \x3Coption value="all">Any discount\x3C/option>            \x3Coption value="5">Min 5%\x3C/option>            \x3Coption value="10">Min 10%\x3C/option>            \x3Coption value="15">Min 15%\x3C/option>            \x3Coption value="20">Min 20%\x3C/option>            \x3Coption value="25">Min 25%\x3C/option>            \x3Coption value="30">Min 30%\x3C/option>            \x3Coption value="40">Min 40%\x3C/option>            \x3Coption value="50">Min 50%\x3C/option>            \x3Coption value="60">Min 60%\x3C/option>            \x3Coption value="70">Min 70%\x3C/option>          \x3C/select>        \x3C/div>      \x3C/div>    \x3C/div>    \x3C!-- Deals Grid Wrapper --\x3E    \x3Cdiv class="tg-df-grid-wrapper tg-df-carousel-cards-wrapper" id="tg-df-grid-wrapper">      \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('#tg-df-grid').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>      \x3Cdiv class="tg-df-grid" id="tg-df-grid">        \x3C!-- Content populated by JavaScript --\x3E      \x3C/div>      \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" style="display:none;" onclick="this.parentElement.querySelector('#tg-df-grid').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>    \x3C/div>        \x3C!-- Vouchers Modal --\x3E    \x3Cdiv class="tg-df-modal-backdrop" id="tg-df-vouchers-modal">      \x3Cdiv class="tg-df-modal">        \x3Cdiv class="tg-df-modal-header">          \x3Ch3 class="tg-df-modal-title" id="tg-df-vouchers-title">Available Coupons & Deals\x3C/h3>          \x3Cbutton class="tg-df-modal-close" id="tg-df-vouchers-close">            \x3Csvg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">              \x3Cline x1="18" y1="6" x2="6" y2="18">\x3C/line>              \x3Cline x1="6" y1="6" x2="18" y2="18">\x3C/line>            \x3C/svg>          \x3C/button>        \x3C/div>        \x3Cdiv class="tg-df-modal-body" id="tg-df-vouchers-content">          \x3C!-- Vouchers injected here --\x3E        \x3C/div>      \x3C/div>    \x3C/div>  \x3C/div>`;      if (!template) {        template = document.createElement('template');        template.innerHTML = rawTemplate;      }      let shadowRoot = null;      if (hostContainer && template) {        hostContainer.setAttribute('data-initialized', 'true');        shadowRoot = hostContainer.attachShadow({ mode: 'open' });        shadowRoot.appendChild(template.content.cloneNode(true));      }      class DealsFinderWidget {        constructor(config) {          this.rootNode = config.rootNode || document;          this.hostContainer = config.hostContainer || null;          this.rootId = config.rootId || 'signal-deals-finder-root';          this.root = this.rootNode.querySelector('#' + this.rootId);          if (!this.root) return;          this.widgetId = (window.crypto && window.crypto.randomUUID) ? window.crypto.randomUUID() : 'widget-' + Date.now() + '-' + Math.random().toString(36).slice(2);          this.grid = this.root.querySelector('#tg-df-grid');          this.tagsContainer = this.root.querySelector('#tg-df-tags-container');          this.categoryFilter = this.root.querySelector('#tg-df-category-filter');          this.categoryFilterWrapper = this.root.querySelector('#tg-df-category-filter-wrapper');          this.searchInput = this.root.querySelector('.tg-df-search-input');          this.autocompleteDropdown = this.root.querySelector('#tg-df-autocomplete');          this.sortSelect = this.root.querySelector('.tg-df-sort-select');          this.searchBtn = this.root.querySelector('.tg-df-search-btn');                    this.settingsToggle = this.root.querySelector('#tg-df-settings-toggle');          this.settingsPanel = this.root.querySelector('#tg-df-settings-panel');          this.settingsBackdrop = this.root.querySelector('#tg-df-settings-backdrop');          this.regionSelect = this.root.querySelector('#tg-df-region-select');          this.retailerSelect = this.root.querySelector('#tg-df-retailer-select');          this.offerTypeSelect = this.root.querySelector('#tg-df-offer-type-select');          this.viewModeSelect = this.root.querySelector('#tg-df-view-mode-select');          this.rowsSelect = this.root.querySelector('#tg-df-rows-select');          this.dealModeToggle = this.root.querySelector('#tg-df-deal-mode');          this.editorModeToggle = this.root.querySelector('#tg-df-editor-mode');          this.priceFilter = this.root.querySelector('#tg-df-price-filter');          this.discountFilter = this.root.querySelector('#tg-df-discount-filter');                    this.editorBar = this.root.querySelector('#tg-df-editor-bar');          this.editorSelectedCount = this.root.querySelector('#tg-df-selected-count');          this.editorCopyBtn = this.root.querySelector('#tg-df-editor-copy');          this.editorClearBtn = this.root.querySelector('#tg-df-editor-clear');                    this.apiUrl = 'https://search-api.fie.future.net.uk/widget.php';          this.deals = [];          this.displayLimit = 12;          this.airedaleArticles = null;          this.airedaleTags = [];          this.airedaleTagCounts = {};          this.activeDealTag = null;          this.selectedBrands = [];          this.currentQuery = '';          this.editorMode = this.hostContainer ? this.hostContainer.hasAttribute('data-editor-mode') : false;          this.viewModeOverride = this.hostContainer ? this.hostContainer.getAttribute('data-view-mode') : null;          this.selectedDeals = new Map();                    this.brandFilterWrapper = this.root.querySelector('#tg-df-brand-filter-wrapper');          this.brandTrigger = this.root.querySelector('#tg-df-brand-trigger');          this.brandDropdown = this.root.querySelector('#tg-df-brand-dropdown');                    this.customPriceWrapper = this.root.querySelector('#tg-df-custom-price-wrapper');          this.customPriceMin = this.root.querySelector('#tg-df-custom-price-min');          this.customPriceMax = this.root.querySelector('#tg-df-custom-price-max');          this.legacyPriceWrapper = this.root.querySelector('#tg-df-legacy-price-wrapper');          this.discountFilterWrapper = this.root.querySelector('#tg-df-discount-filter-wrapper');          this.initResizeObserver();          this.init();            if (['carousel', 'carousel-compact', 'auto', 'grid', 'row'].includes(this.getViewMode())) { this.loadCarouselSpreadsheet(); }        }        getViewMode() {          if (this.viewModeOverride && (!this.editorMode || !this.viewModeSelect)) {            return this.viewModeOverride;          }          return (this.viewModeSelect && this.viewModeSelect.value) ? this.viewModeSelect.value : (this.viewModeOverride || 'auto');        }        applyLayoutMode() {          if (!this.grid) return;          const mode = this.getViewMode();          this.grid.classList.remove('layout-row', 'layout-grid', 'tg-df-grid-auto', 'carousel-compact', 'layout-replica-1', 'layout-replica-2');                    const carouselHost = this.root.querySelector('#tg-df-carousel-host');          const controlsDiv = this.root.querySelector('#tg-df-controls');          if (mode === 'carousel' || mode === 'auto' || mode === 'grid' || mode === 'row') {             if (mode === 'carousel') this.grid.classList.add('carousel-compact');             if (carouselHost) carouselHost.style.display = 'block';             if (controlsDiv) controlsDiv.style.display = 'none';             if (this.root.classList.contains('tg-df-container') && mode === 'carousel') {               this.root.classList.add('is-carousel');             } else if (this.root.classList.contains('tg-df-container')) {               this.root.classList.remove('is-carousel');             }          } else {             if (carouselHost) carouselHost.style.display = 'none';             if (controlsDiv) controlsDiv.style.display = 'flex';             if (this.root.classList.contains('tg-df-container')) {               this.root.classList.remove('is-carousel');             }          }          if (mode === 'grid') {            this.grid.classList.add('layout-grid');          } else if (mode === 'row') {            this.grid.classList.add('layout-row');          } else if (mode === 'savings_squad') {            this.grid.classList.add('tg-df-grid-auto', 'savings-squad-cards');          } else if (mode !== 'carousel') {            this.grid.classList.add('tg-df-grid-auto');          }                    const settingsWrapper = this.root.querySelector('.tg-df-settings-wrapper');          if (settingsWrapper) {            settingsWrapper.style.display = mode === 'auto' ? 'none' : 'block';          }          if (this.customPriceWrapper) {             this.customPriceWrapper.style.display = mode === 'auto' ? 'flex' : 'none';          }          if (this.legacyPriceWrapper) {             this.legacyPriceWrapper.style.display = mode === 'auto' ? 'none' : 'flex';          }          if (this.discountFilterWrapper) {             this.discountFilterWrapper.style.display = mode === 'auto' ? 'none' : 'flex';          }        }        initResizeObserver() {          try {            if (window.parent === window) return;          } catch (e) {            // cross origin frame check threw          }          const emitHeight = () => {            try {              const height = document.documentElement.scrollHeight || document.body.scrollHeight;              const msg = { type: 'embed-size', height: height };              if (window.parent && window.parent !== window) {                window.parent.postMessage(msg, '*');                window.parent.postMessage(JSON.stringify({ ...msg, sentinel: 'amp' }), '*');              }            } catch (e) {}          };                    if (window.ResizeObserver) {            try {              const ro = new ResizeObserver(() => emitHeight());              ro.observe(document.body);              if (this.root) ro.observe(this.root);            } catch(e){ console.warn(e); }          }          window.addEventListener('resize', emitHeight);          setTimeout(emitHeight, 300);        }        initCountdown() {          this.cdWrapper = this.root.querySelector('#tg-df-countdown-wrapper');                    let searchSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {            searchSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {            searchSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(searchSource);          this.showCountdown = params.get('show_countdown') === 'true';          const showHeaderDetails = params.get('show_header_details') !== 'false';          const eyebrow = this.root.querySelector('.tg-df-carousel-box-eyebrow');          const title = this.root.querySelector('.tg-df-carousel-box-title');          const subtitle = this.root.querySelector('.tg-df-carousel-box-subtitle');          if (!showHeaderDetails) {            let containerElement = this.root.classList.contains('tg-df-container') ? this.root : this.root.querySelector('.tg-df-container');            if (containerElement) containerElement.classList.add('hide-header-details');            if (eyebrow) eyebrow.style.display = 'none';            if (title) title.style.display = 'none';            if (subtitle) subtitle.style.display = 'none';          }          if (!this.cdWrapper) return;          this.cdTitle = this.root.querySelector('#tg-df-countdown-title');          this.cdDays = this.root.querySelector('#tg-df-cd-days');          this.cdHrs = this.root.querySelector('#tg-df-cd-hrs');          this.cdMin = this.root.querySelector('#tg-df-cd-min');          this.cdSec = this.root.querySelector('#tg-df-cd-sec');          this.updateCountdown();          this.cdInterval = setInterval(() => this.updateCountdown(), 1000);        }        updateCountdown() {          if (!this.cdWrapper) return;          if (!this.showCountdown) {            this.cdWrapper.style.display = 'none';            return;          }          const area = this.getAreaCode();          let offset = '-04:00';          if (['DE', 'FR', 'IT', 'ES', 'NL'].includes(area)) {             offset = '+02:00';          } else if (['GB', 'IE', 'UK'].includes(area)) {             offset = '+01:00';          }          const startTime = new Date('2026-06-23T00:00:00' + offset).getTime();          const endTime = new Date('2026-06-26T00:00:00' + offset).getTime();          const now = Date.now();          let targetTime = 0;          if (now < startTime) {             targetTime = startTime;             if (this.cdTitle) this.cdTitle.textContent = 'Prime Day starts in';             this.cdWrapper.style.display = 'flex';          } else if (now < endTime) {             targetTime = endTime;             if (this.cdTitle) this.cdTitle.textContent = 'Prime Day ends in';             this.cdWrapper.style.display = 'flex';          } else {             this.cdWrapper.style.display = 'none';             if (this.cdInterval) clearInterval(this.cdInterval);             return;          }          const diff = Math.max(0, targetTime - now);          const d = Math.floor(diff / (1000 * 60 * 60 * 24));          const h = Math.floor((diff / (1000 * 60 * 60)) % 24);          const m = Math.floor((diff / 1000 / 60) % 60);          const s = Math.floor((diff / 1000) % 60);          if (this.cdDays) this.cdDays.textContent = d;          if (this.cdHrs) this.cdHrs.textContent = h;          if (this.cdMin) this.cdMin.textContent = m;          if (this.cdSec) this.cdSec.textContent = s;        }        init() {          this.initCountdown();          try {            initAnalytics();          } catch (e) {            console.warn('Deals Widget Analytics Error:', e);          }                    this.bindEvents();                    let initialQuery = '';                    let searchSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {            searchSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {            searchSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(searchSource);          let initialViewMode = params.get('view_mode');          if (!params.has('search') && !params.has('q') && !params.has('query') && initialViewMode !== 'savings_squad') {             initialQuery = 'Everything';             if (this.discountFilter && !params.has('min_discount_ratio')) {               this.discountFilter.value = '5';             }          }          const website = params.get('website') || 'tomsguide';          this.website = website;          if (website === 'techradar') {            const squadHeader = this.root.querySelector('.tg-df-savings-squad-header');            if (squadHeader) {               const pic = squadHeader.querySelector('picture');               if (pic) pic.style.display = 'none';            }            const style = document.createElement('style');            style.innerHTML = `              .tg-df-container .hawk-affiliate-link-deal-button, .tg-df-container .tg-df-card-cta { background-color: #5DAF08 !important; }              .tg-df-container .hawk-affiliate-link-deal-button:hover, .tg-df-container .tg-df-card-cta:hover { background-color: #4a8c06 !important; }            `;            this.root.appendChild(style);          }                    if (this.regionSelect) {            this.regionSelect.value = params.get('region') || 'auto';            this.updatePriceDropdownCurrency();          }                    if (this.retailerSelect && params.has('retailer')) {            this.retailerSelect.value = params.get('retailer');          }                    if (params.has('brands')) {            const b = params.get('brands');            if (b) {              this.selectedBrands = b.split(',');            }          }                    if (this.offerTypeSelect && params.has('offer_type')) {            this.offerTypeSelect.value = params.get('offer_type');          }          if (params.has('bg_color')) {            const bg = params.get('bg_color');            if (bg === 'white') {              this.root.style.setProperty('background-color', '#ffffff', 'important');            } else if (bg === 'transparent') {              this.root.style.setProperty('background-color', 'transparent', 'important');            } else if (bg === 'light_blue') {              this.root.style.setProperty('background-color', '#E7F0FF', 'important');            }          } else {             this.root.style.removeProperty('background-color');          }                    if (params.has('view_mode')) {            if (this.viewModeSelect) {              this.viewModeSelect.value = params.get('view_mode');            } else {              this.viewModeOverride = params.get('view_mode');            }          }          if (this.rowsSelect && params.has('rows')) {            this.rowsSelect.value = params.get('rows');          }          if (params.has('price')) {            const priceVal = params.get('price');            if (this.priceFilter) {               // Try assigning it directly to select. If it's not present implicitly ignores               this.priceFilter.value = priceVal;            }            if (priceVal.includes('_')) {               const parts = priceVal.split('_');               if (this.customPriceMin && parts[0]) this.customPriceMin.value = parts[0];               if (this.customPriceMax && parts[1]) this.customPriceMax.value = parts[1];            }          }          if (this.discountFilter && params.has('min_discount_ratio')) {            // Need to convert back from ratio (e.g. 0.8) to select value (e.g. "20")            const ratioStr = params.get('min_discount_ratio');            const ratioFloat = parseFloat(ratioStr);            if (!isNaN(ratioFloat)) {               const percentage = Math.round((1 - ratioFloat) * 100);               this.discountFilter.value = percentage.toString();            }          }          if (this.sortSelect) {            this.sortSelect.value = params.get('sort') || 'discount_desc';          }          if (this.dealModeToggle && params.has('deal_mode')) {            this.dealModeToggle.checked = params.get('deal_mode') === 'true' || params.get('deal_mode') === '1';          }                    // Re-apply layout after params have updated control values          this.applyLayoutMode();                    if (params.get('search')) {            initialQuery = params.get('search');          } else if (params.get('q')) {            initialQuery = params.get('q');          } else if (params.get('query')) {            initialQuery = params.get('query');          }                    this.currentQuery = initialQuery;          if (this.searchInput) {            this.searchInput.value = this.currentQuery;          }                    if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {            this.fetchDeals(this.currentQuery);          } else {            this.render();          }        }        updatePriceDropdownCurrency() {          if (!this.priceFilter || !this.regionSelect) return;          const currencySymbols = {            'US': '$',            'GB': '£',            'CA': '$CA',            'AU': '$AU',            'DE': '€',            'FR': '€',            'IT': '€',          };          const area = this.getAreaCode();          const cur = currencySymbols[area || 'US'] || '$';                    const options = this.priceFilter.options;          for (let i = 0; i < options.length; i++) {            const opt = options[i];            if (opt.value === 'all') {              opt.innerText = 'All Prices';            } else if (opt.value === 'under50') {              opt.innerText = `Under ${cur}50`;            } else if (opt.value === '50_100') {              opt.innerText = `${cur}50 - ${cur}100`;            } else if (opt.value === '100_200') {              opt.innerText = `${cur}100 - ${cur}200`;            } else if (opt.value === '200_500') {              opt.innerText = `${cur}200 - ${cur}500`;            } else if (opt.value === 'over500') {              opt.innerText = `Over ${cur}500`;            }          }        }        populateBrandDropdown(values) {          if (!this.brandDropdown || !this.brandFilterWrapper) return;          this.brandFilterWrapper.style.display = 'flex'; // show the wrapper                    let html = '';          const allChecked = this.selectedBrands.length === 0 ? 'checked' : '';          const _div = '<' + '/div>';          const _span = '<' + '/span>';          html += `\x3Cdiv class="tg-df-ms-option">\x3Cinput type="checkbox" value="" ${allChecked} class="tg-df-brand-chk"> Any Brand${_div}`;                    values.forEach(v => {             if (!v.formatted_value || v.formatted_value === 'Any Brand') return;             const isChecked = this.selectedBrands.includes(v.formatted_value) ? 'checked' : '';             html += `\x3Cdiv class="tg-df-ms-option">\x3Cinput type="checkbox" value="${this.escapeHTML(v.formatted_value)}" ${isChecked} class="tg-df-brand-chk"> ${this.escapeHTML(v.formatted_value)} \x3Cspan style="color:var(--tg-df-text-muted);font-size:12px">(${v.count || 0})${_span}${_div}`;          });                    this.brandDropdown.innerHTML = html;                    // Re-bind listeners          const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');          chks.forEach(chk => {            chk.addEventListener('change', (e) => {              const val = e.target.value;              if (val === '') {                this.selectedBrands = [];              } else {                if (e.target.checked) {                   if (!this.selectedBrands.includes(val)) this.selectedBrands.push(val);                } else {                   this.selectedBrands = this.selectedBrands.filter(b => b !== val);                }              }                            if (this.selectedBrands.length === 0) {                 this.brandTrigger.innerText = 'Any Brand';              } else if (this.selectedBrands.length === 1) {                 this.brandTrigger.innerText = this.selectedBrands[0];              } else {                 this.brandTrigger.innerText = `${this.selectedBrands.length} Brands selected`;              }                            // Only call API if changed from UI interactions              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                 this.updateURLParams();                 this.fetchDeals(this.currentQuery);              }            });          });                    // Update button text on load          if (this.selectedBrands.length === 0) {             this.brandTrigger.innerText = 'Any Brand';          } else if (this.selectedBrands.length === 1) {             this.brandTrigger.innerText = this.selectedBrands[0];          } else {             this.brandTrigger.innerText = `${this.selectedBrands.length} Brands selected`;          }        }        updateURLParams() {          const url = new URL(window.location);          if (this.currentQuery && this.currentQuery !== 'Gaming laptops') {            url.searchParams.set('q', this.currentQuery);          } else {            url.searchParams.delete('q');            url.searchParams.delete('search');            url.searchParams.delete('query');          }                    if (this.regionSelect && this.regionSelect.value !== 'auto') {            url.searchParams.set('region', this.regionSelect.value);          } else {            url.searchParams.delete('region');          }                    if (this.retailerSelect && this.retailerSelect.value) {            url.searchParams.set('retailer', this.retailerSelect.value);          } else {            url.searchParams.delete('retailer');          }                    if (this.selectedBrands && this.selectedBrands.length > 0) {            url.searchParams.set('brands', this.selectedBrands.join(','));          } else {            url.searchParams.delete('brands');          }                    if (this.offerTypeSelect && this.offerTypeSelect.value) {            url.searchParams.set('offer_type', this.offerTypeSelect.value);          } else {            url.searchParams.delete('offer_type');          }                    if (this.viewModeSelect && this.viewModeSelect.value !== 'auto') {            url.searchParams.set('view_mode', this.viewModeSelect.value);          } else {            url.searchParams.delete('view_mode');          }                    if (this.rowsSelect && this.rowsSelect.value !== '12') {            url.searchParams.set('rows', this.rowsSelect.value);          } else {            url.searchParams.delete('rows');          }                    const min = this.customPriceMin ? this.customPriceMin.value : '';          const max = this.customPriceMax ? this.customPriceMax.value : '';          if (min || max) {             url.searchParams.set('price', `${min}_${max}`);          } else if (this.priceFilter && this.priceFilter.value !== 'all') {            url.searchParams.set('price', this.priceFilter.value);          } else {            url.searchParams.delete('price');          }                    if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {            const v = parseInt(this.discountFilter.value);            if (!isNaN(v) && v > 0) {               const ratio = (100 - v) / 100;               url.searchParams.set('min_discount_ratio', ratio.toString());            }          } else {            url.searchParams.delete('min_discount_ratio');          }                    if (this.sortSelect && this.sortSelect.value !== 'discount_desc') {            url.searchParams.set('sort', this.sortSelect.value);          } else {            url.searchParams.delete('sort');          }                    if (this.dealModeToggle && this.dealModeToggle.checked) {            url.searchParams.set('deal_mode', 'true');          } else {            url.searchParams.delete('deal_mode');          }                    window.history.replaceState({}, '', url);        }        bindEvents() {          const roundels = this.root.querySelectorAll('.tg-df-carousel-cat.original-hardcoded');          roundels.forEach(r => {             r.addEventListener('click', () => {                const q = r.getAttribute('data-query');                const pr = r.getAttribute('data-pr');                if (typeof trackHawkEvent !== 'undefined') {                     trackHawkEvent({                         clickType: "CC",                         widgetId: this.widgetId,                         productCategoryName: "deals",                         zeroBasedProductIndexOrNull: null,                         totalDealsOrProducts: null,                         areaClicked: "Category Roundel",                         revenueId: this.revenueId,                         isoCurrencyCode: typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD',                         queryName: q,                         widgetTypeName: this.widgetTypeName                     });                 }                this.currentQuery = q;                const label = this.root.querySelector('#tg-df-carousel-title-label');                if (label) label.textContent = 'Best ' + q;                if (this.priceFilter) this.priceFilter.value = pr || 'all';                if (this.discountFilter) this.discountFilter.value = '5';                if (this.searchInput) this.searchInput.value = q;                                roundels.forEach(ro => ro.classList.remove('active'));                r.classList.add('active');                this.fetchDeals(this.currentQuery);             });          });          const discBtns = this.root.querySelectorAll('.tg-df-carousel-filter-btn');          discBtns.forEach(b => {             b.addEventListener('click', () => {                const d = b.getAttribute('data-d');                const pr = b.getAttribute('data-pr');                const ot = b.getAttribute('data-ot');                let label = b.innerText ? b.innerText.trim() : '';                let filterType = 'unknown';                let filterVal = 'unknown';                if (d !== null) { filterType = 'discount'; filterVal = d; }                else if (pr !== null) { filterType = 'price'; filterVal = pr; }                else if (ot !== null) { filterType = 'offertype'; filterVal = ot; }                if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: `filter-${filterType}-${filterVal}`, name: 'Filter Button', label: label });                                if (d !== null) {                   if (this.discountFilter) this.discountFilter.value = this.discountFilter.value === d ? '0' : d;                } else if (pr !== null) {                   if (this.priceFilter) this.priceFilter.value = this.priceFilter.value === pr ? 'all' : pr;                } else if (ot !== null) {                   if (this.offerTypeSelect) this.offerTypeSelect.value = this.offerTypeSelect.value === ot ? 'all' : ot;                } else {                   if (this.discountFilter) this.discountFilter.value = '0';                   if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.offerTypeSelect) this.offerTypeSelect.value = 'all';                }                if (d === null && pr === null && ot === null && b.getAttribute("data-type") !== "custom") {                   discBtns.forEach(ro => ro.classList.remove('active'));                   b.classList.add('active');                } else if (b.getAttribute("data-type") !== "custom") {                   // Only operate on hardcoded buttons (those without data-type)                   discBtns.forEach(ro => {                      if (!ro.getAttribute('data-d') && !ro.getAttribute('data-pr') && !ro.getAttribute('data-ot') && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active');                   });                                      let makeActive = true;                   if (d !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-d') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   } else if (pr !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-pr') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   } else if (ot !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-ot') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   }                                      if (makeActive) b.classList.add('active');                                      // Check if anything is active, if not activate "All"                   let anyActive = false;                   discBtns.forEach(ro => { if (ro.classList.contains('active') && ro.getAttribute('data-type') !== 'custom') anyActive = true; });                   if (!anyActive) {                       discBtns.forEach(ro => { if (!ro.getAttribute('data-d') && !ro.getAttribute('data-pr') && !ro.getAttribute('data-ot') && ro.getAttribute('data-type') !== 'custom') ro.classList.add('active'); });                   }                }                                this.fetchDeals(this.currentQuery);             });          });          if (this.brandTrigger && this.brandDropdown) {            this.brandTrigger.addEventListener('click', () => {              this.brandDropdown.classList.toggle('active');            });            document.addEventListener('click', (e) => {              if (this.brandFilterWrapper && !e.composedPath().includes(this.brandFilterWrapper)) {                this.brandDropdown.classList.remove('active');              }            });          }          let debounceTimer;          if(this.searchInput) {            this.searchInput.addEventListener('input', (e) => {              clearTimeout(debounceTimer);              const query = e.target.value.trim();              this.currentQuery = query;              if (this.getViewMode() === 'savings_squad' && this.autocompleteDropdown && this.airedaleTags && query.length > 0) {                 const matches = this.airedaleTags.filter(t => t.toLowerCase().includes(query.toLowerCase()) && t.toLowerCase() !== query.toLowerCase()).slice(0, 5);                 if (matches.length > 0) {                    this.autocompleteDropdown.innerHTML = matches.map(m => `\x3Cdiv class="tg-df-autocomplete-item" data-tag="${this.escapeHTML(m)}">${this.escapeHTML(m)}<` + `/div>`).join('');                    this.autocompleteDropdown.classList.add('active');                 } else {                    this.autocompleteDropdown.classList.remove('active');                 }              } else if (this.autocompleteDropdown) {                 this.autocompleteDropdown.classList.remove('active');              }              debounceTimer = setTimeout(() => {                this.updateURLParams();                if (query.length > 2) {                  this.fetchDeals(query);                } else if (query.length === 0) {                  this.deals = [];                  this.render();                }              }, 400);            });            this.searchInput.addEventListener('keypress', (e) => {              if (e.key === 'Enter') {                if (this.autocompleteDropdown) this.autocompleteDropdown.classList.remove('active');                clearTimeout(debounceTimer);                const query = e.target.value.trim();                this.currentQuery = query;                this.activeDealTag = null;                trackElementInteraction({ id: 'search-submit', name: 'Ask', label: 'Ask (main search)', text: query });                this.updateURLParams();                if (query.length > 2 || (this.getViewMode() === 'savings_squad')) {                   this.fetchDeals(query);                }              }            });          }          if (this.autocompleteDropdown) {             this.autocompleteDropdown.addEventListener('click', (e) => {                const item = e.target.closest('.tg-df-autocomplete-item');                if (item) {                   const tag = item.getAttribute('data-tag');                   this.currentQuery = tag;                   if (this.searchInput) this.searchInput.value = tag;                   this.activeDealTag = tag;                   this.autocompleteDropdown.classList.remove('active');                   this.updateURLParams();                   this.fetchDeals(tag);                }             });             document.addEventListener('click', (e) => {               if (this.autocompleteDropdown && this.searchInput && !e.composedPath().includes(this.searchInput) && !e.composedPath().includes(this.autocompleteDropdown)) {                 this.autocompleteDropdown.classList.remove('active');               }             });          }          if (this.searchBtn) {            this.searchBtn.addEventListener('click', () => {              if (this.autocompleteDropdown) this.autocompleteDropdown.classList.remove('active');              clearTimeout(debounceTimer);              const query = this.searchInput.value.trim();              trackElementInteraction({ id: 'search-submit', name: 'Ask', label: 'Ask (main search)', text: query });              this.activeDealTag = null;              this.currentQuery = query;              this.updateURLParams();              if (query.length > 2 || (this.getViewMode() === 'savings_squad')) {                 this.fetchDeals(query);              }            });          }          if(this.sortSelect) this.sortSelect.addEventListener('change', () => {            trackElementInteraction({ id: `sort-option-${this.sortSelect.value}`, name: 'Sort', label: `Sort: ${this.sortSelect.options[this.sortSelect.selectedIndex].text}` });            this.updateURLParams();            if (this.deals.length > 0) {              this.sortData();              this.render();            }          });                    const priceFilter = this.root.querySelector('#tg-df-price-filter');          if (priceFilter) {            this.priceFilter = priceFilter;            this.priceFilter.addEventListener('change', () => {              trackElementInteraction({ id: `filter-price-${this.priceFilter.value}`, name: 'Price', label: this.priceFilter.options[this.priceFilter.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }            });          }          const updateCustomPrice = () => {             this.updateURLParams();             if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);             } else {                this.render();             }          };          if (this.customPriceMin) {             this.customPriceMin.addEventListener('change', updateCustomPrice);             this.customPriceMin.addEventListener('keypress', (e) => {                if (e.key === 'Enter') updateCustomPrice();             });          }          if (this.customPriceMax) {             this.customPriceMax.addEventListener('change', updateCustomPrice);             this.customPriceMax.addEventListener('keypress', (e) => {                if (e.key === 'Enter') updateCustomPrice();             });          }          const discountFilter = this.root.querySelector('#tg-df-discount-filter');          if (discountFilter) {            this.discountFilter = discountFilter;            this.discountFilter.addEventListener('change', () => {              trackElementInteraction({ id: `filter-discount-${this.discountFilter.value}`, name: 'Discount', label: this.discountFilter.options[this.discountFilter.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }            });          }          if (this.categoryFilter) {            this.categoryFilter.addEventListener('change', (e) => {               const val = e.target.value === 'all' ? null : e.target.value;               this.activeDealTag = val;               this.fetchSavingsSquad();            });          }                    if (this.settingsToggle) {            this.settingsToggle.addEventListener('click', () => {              const o = this.settingsPanel.classList.toggle('active');              this.settingsBackdrop.classList.toggle('active');              if (o) trackElementInteraction({ id: 'filter-open', name: 'Filters', label: 'Open filters' });            });          }                    if (this.settingsBackdrop) {            this.settingsBackdrop.addEventListener('click', () => {              this.settingsPanel.classList.remove('active');              this.settingsBackdrop.classList.remove('active');            });          }                    if (this.regionSelect) {            this.regionSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-region-${this.regionSelect.value}`, name: 'Region', label: this.regionSelect.options[this.regionSelect.selectedIndex].text });              this.updateURLParams();              this.updatePriceDropdownCurrency();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.retailerSelect) {            this.retailerSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-merchant-${this.retailerSelect.value}`, name: 'Retailer', label: this.retailerSelect.options[this.retailerSelect.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.offerTypeSelect) {            this.offerTypeSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-offertype-${this.offerTypeSelect.value}`, name: 'Offer Type', label: this.offerTypeSelect.options[this.offerTypeSelect.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.viewModeSelect) {            this._prevViewMode = this.viewModeSelect.value;            this.viewModeSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-viewmode-${this.viewModeSelect.value}`, name: 'View Mode', label: this.viewModeSelect.options[this.viewModeSelect.selectedIndex].text });                            // Reset all active toggles and filters to prevent config carry-over              this.selectedBrands = [];              if (this.brandTrigger) this.brandTrigger.innerText = 'Select Brands';              if (this.brandDropdown) {                const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                chks.forEach(chk => { chk.checked = false; });              }              if (this.priceFilter) this.priceFilter.value = 'all';              if (this.customPriceMin) this.customPriceMin.value = '';              if (this.customPriceMax) this.customPriceMax.value = '';              if (this.sortSelect) this.sortSelect.value = this.viewModeSelect.value === 'savings_squad' ? 'date_desc' : 'discount_desc';              if (this.discountFilter) this.discountFilter.value = '0';              if (this.retailerSelect) this.retailerSelect.value = '';              if (this.offerTypeSelect) this.offerTypeSelect.value = '';              if (this.rowsSelect) this.rowsSelect.value = '12';              if (this.categoryFilter) this.categoryFilter.value = 'all';              this.activeDealTag = null;              this.updateURLParams();              this.applyLayoutMode();                            if (this.getViewMode() === 'savings_squad' || this._prevViewMode === 'savings_squad') {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }              this._prevViewMode = this.viewModeSelect.value;            });          }                    if (this.rowsSelect) {            this.rowsSelect.addEventListener('change', () => {              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.dealModeToggle) {            this.dealModeToggle.addEventListener('change', () => {              this.updateURLParams();              this.render();            });          }          if (this.editorModeToggle) {             this.editorModeToggle.addEventListener('change', (e) => {                this.editorMode = e.target.checked;                this.render();                this.updateFloatingCopyBar();             });          }          if (this.editorCopyBtn) {             this.editorCopyBtn.addEventListener('click', () => {                this.copySelectedDealsToCMS();             });          }          if (this.editorClearBtn) {             this.editorClearBtn.addEventListener('click', () => {                this.selectedDeals.clear();                this.render();                this.updateFloatingCopyBar();             });          }          if (this.grid) {            this.grid.addEventListener('change', (e) => {               if (e.target.classList.contains('tg-df-deal-checkbox')) {                  const dealId = e.target.getAttribute('data-id');                  if (e.target.checked) {                     const dealObj = this.deals.find(d => d.id === dealId);                     if (dealObj) this.selectedDeals.set(dealId, dealObj);                  } else {                     this.selectedDeals.delete(dealId);                  }                  this.updateFloatingCopyBar();               }            });            this.grid.addEventListener('click', (e) => {              const dealCard = e.target.closest('[data-action="deal-click"]');              const similarCard = e.target.closest('[data-action="view-similar-click"]');              const cardLink = dealCard || similarCard;              if (cardLink) {                const productName = cardLink.getAttribute('data-product-name');                const merchantName = cardLink.getAttribute('data-merchant-name');                const productId = cardLink.getAttribute('data-analytics-id');                const price = parseFloat(cardLink.getAttribute('data-price')) || null;                const prevPriceStr = cardLink.getAttribute('data-previous-price');                const previousPrice = prevPriceStr ? parseFloat(prevPriceStr) : null;                const originalLink = cardLink.getAttribute('data-original-link');                const rewrittenLink = cardLink.getAttribute('href');                const revenueId = cardLink.getAttribute('data-revenue-id');                const index = parseInt(cardLink.getAttribute('data-index'), 10) || 0;                const inStock = cardLink.getAttribute('data-in-stock') === 'true';                const totalText = cardLink.getAttribute('data-total');                const totalDeals = parseInt(totalText, 10) || 0;                const productCategoryName = 'deals';                const trackingParams = {                  widgetId: this.widgetId,                  productCategoryName: productCategoryName,                  product: {                    modelId: cardLink.getAttribute('data-model-id') || null,                    matchId: cardLink.getAttribute('data-match-id') || null,                    brand: cardLink.getAttribute('data-model-brand') || null,                    parent: cardLink.getAttribute('data-model-parent') || null,                    name: productName,                    price: price,                    previousPrice: previousPrice,                    link: rewrittenLink,                    originalLink: originalLink,                    inStock: inStock                  },                  zeroBasedProductIndexOrNull: index,                  totalDealsOrProducts: totalDeals,                   merchant: {                    id: cardLink.getAttribute('data-merchant-id') || null,                    network: cardLink.getAttribute('data-merchant-network') || null,                    url: cardLink.getAttribute('data-merchant-url') || null,                    name: merchantName                  },                  revenueId: revenueId,                  widgetTypeName: this.widgetTypeName,                  isoCurrencyCode: normalizeCurrency(this.escapeHTML(cardLink.getAttribute('data-currency') || '$'))                };                if (dealCard) {                  trackDealClick(trackingParams);                } else {                  trackViewSimilarClick(trackingParams);                }              }              const couponsBtn = e.target.closest('[data-action="coupons-click"]');              if (couponsBtn) {                trackElementInteraction({                  id: 'product-card-show-coupons',                  name: 'Coupons',                  label: `Product card coupons: ${couponsBtn.getAttribute('data-merchant')}`                });              }            });          }          this.setupScrollListeners();        }        setupScrollListeners() {          const containers = [             this.root.querySelector('.tg-df-carousel-roundels'),             this.root.querySelector('.tg-df-carousel-filters-wrap'),             this.root.querySelector('#tg-df-grid')          ];                    containers.forEach(container => {             if (!container) return;                          const checkScroll = () => {                if (!container.parentElement) return;                const leftBtn = container.parentElement.querySelector('.tg-df-carousel-scroll-left');                const rightBtn = container.parentElement.querySelector('.tg-df-carousel-scroll-right');                                if (leftBtn) {                   if (container.scrollLeft <= 5) leftBtn.style.display = 'none';                   else leftBtn.style.display = 'flex';                }                                if (rightBtn) {                   if (container.scrollWidth <= container.clientWidth) {                       rightBtn.style.display = 'none';                   } else if (container.scrollLeft >= container.scrollWidth - container.clientWidth - 5) {                       rightBtn.style.display = 'none';                   } else {                       rightBtn.style.display = 'flex';                   }                }             };                          container.addEventListener('scroll', checkScroll);             checkScroll();                          window.addEventListener('resize', checkScroll);                          const observer = new MutationObserver(checkScroll);             observer.observe(container, { childList: true, subtree: true, characterData: false });          });        }        get widgetTypeName() {          const mode = this.viewModeSelect ? this.viewModeSelect.value : (this.viewModeOverride || 'auto');          switch(mode) {              case 'carousel': return 'Carousel';              case 'savings_squad': return 'Savings Squad';              case 'grid': return 'Grid';              case 'row': return 'Row';              default: return 'Auto Collection';          }        }        getRowsLimit() {          if (this.rowsSelect && this.rowsSelect.value) return parseInt(this.rowsSelect.value, 10);          let configSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {             configSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {             configSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(configSource);          if (params.has('rows')) return parseInt(params.get('rows'), 10) || 12;          return 12;        }        getAreaCode() {          if (this.regionSelect && this.regionSelect.value) {            if (this.regionSelect.value === 'auto') return null;            return this.regionSelect.value;          }          let area = null;          try {            const locale = window.navigator.language || window.navigator.userLanguage;            if (locale && locale.includes('-')) {              area = locale.split('-')[1].toUpperCase();            } else if (locale && locale.length === 2) {              if (locale.toUpperCase() === 'EN') { area = 'US'; }              else { area = locale.toUpperCase(); }            }          } catch (e) { /* Ignore */ }                    // Map to known valid options or fallback to US          const valid = ['US', 'GB', 'CA', 'AU', 'DE', 'FR', 'IT'];          if (area === 'UK') area = 'GB';          if (valid.includes(area)) {             return area;          }          return 'US';        }                async loadCarouselSpreadsheet() {          try {              const parseCSVRow = (str) => {                  let result = [], cur = '', inQuotes = false;                  for (let i = 0; i < str.length; i++) {                      let char = str[i];                      if (inQuotes) {                          if (char === '"') {                              if (str[i + 1] === '"') { cur += '"'; i++; }                              else { inQuotes = false; }                          } else { cur += char; }                      } else {                          if (char === '"') { inQuotes = true; }                          else if (char === ',') { result.push(cur); cur = ''; }                          else { cur += char; }                      }                  }                  result.push(cur); return result;              };              const parseCSV = (str) => {                  const rows = []; let curRow = '', inQuotes = false;                  for (let i = 0; i < str.length; i++) {                      let char = str[i];                      if (char === '"') inQuotes = !inQuotes;                      if ((char === '\n' || char === '\r') && !inQuotes) {                          if (char === '\r' && str[i+1] === '\n') i++;                          if (curRow) rows.push(parseCSVRow(curRow));                          curRow = '';                      } else { curRow += char; }                  }                  if (curRow) rows.push(parseCSVRow(curRow));                  return rows;              };              const preloadedCSV = decodeURIComponent(escape(atob("LCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNQ0KUm91bmRlbCB0ZXh0LEFsbCxUVnMsRm9vdHdlYXIsQXBwYXJlbCxNYXR0cmVzZXMsQXBwbGlhbmNlcyxXZWFyYWJsZSB0ZWNoLEhlYWRwaG9uZXMsU21hcnQgSG9tZSxTcGVha2VycyxMYXB0b3BzLFRhYmxldHMsQ29tcHV0aW5nLFBob25lcyxHYW1pbmcsTGVnbw0KUm91bmRlbCBpbWFnZSxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL2FpLnBuZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL3R2cy5wbmcsaHR0cHM6Ly9pbWFnZXMuZmllLmZ1dHVyZWNkbi5uZXQvcHJvZHVjdHMvN2IzYTIyNGIwNzk2M2M2MjdiNmI5MDliZDc4MzM4MzZlMDJmZjgxOS5qcGcud2VicCxodHRwczovL2ltYWdlcy5maWUuZnV0dXJlY2RuLm5ldC9wcm9kdWN0cy84NGRhYzVkNDhlZDJkNDQ4NTU5ZWJhNjdhY2U4MzE0Y2M2N2NjZDk0LmpwZy53ZWJwLGh0dHBzOi8vd3d3LnRvbXNndWlkZS5jb20vc2hvcC1hc3NldHMvY2Fyb3VzZWwvbWF0dHJlc3Nlcy5wbmcsaHR0cHM6Ly9pbWFnZXMuZmllLmZ1dHVyZWNkbi5uZXQvcHJvZHVjdHMvNzY4ZTk3Y2ViMDcxODAxZmFlMjA5MTBkMDgyMGIxNmY3NDdhZjkzOS5qcGcud2VicCxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL3dlbGxuZXNzLnBuZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL2hlYWRwaG9uZXMuanBnLGh0dHBzOi8vaW1hZ2VzLmZpZS5mdXR1cmVjZG4ubmV0L3Byb2R1Y3RzLzg5NTM1YmVlYmUyMGRiYmQ0YTM0NmQ2ZDZiZGZlOTFkOGE4ODRhMjEuanBnLndlYnAsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9zaG9wLWFzc2V0cy9jYXJvdXNlbC9hdWRpby5qcGcsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9zaG9wLWFzc2V0cy9jYXJvdXNlbC9sYXB0b3BzLmpwZyxodHRwczovL2ltYWdlcy5maWUuZnV0dXJlY2RuLm5ldC9wcm9kdWN0cy8yMzk3NTY0ZWQ3YTVmZjk0N2U5YjZiMzBlNTRmNDc0OTRiODQxZjg5LmpwZy53ZWJwLGh0dHBzOi8vd3d3LnRvbXNndWlkZS5jb20vc2hvcC1hc3NldHMvY2Fyb3VzZWwvY29tcHV0aW5nLmpwZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL3Bob25lcy5wbmcsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9zaG9wLWFzc2V0cy9jYXJvdXNlbC9nYW1pbmcucG5nLGh0dHBzOi8vaW1hZ2VzLmZpZS5mdXR1cmVjZG4ubmV0L3Byb2R1Y3RzLzRmNmM2MjFjYWMwYmMxYTg1ZDU5M2UzNTk0YmE1YjM0OWVmZmQyOTIuanBnLndlYnANClNlYXJjaCBRdWVyeSxFdmVyeXRoaW5nLFRlbGV2aXNpb25zLCJTbmVha2VycywgcnVubmluZyBzaG9lcywgc2FuZGFscyIsQ2xvdGhpbmcsTWF0dHJlc3NlcyxIb21lIEFwcGxpYW5jZXMsV2VhcmFibGVzICYgRml0bmVzcyBUZWNoLEhlYWRwaG9uZXMsSG9tZSBUZWNoLFNwZWFrZXJzLExhcHRvcHMsVGFibGV0cyxDb21wdXRpbmcsUGhvbmVzLEdhbWluZyxDb25zdHJ1Y3Rpb24gVG95cw0KRGlzY291bnQgQW1vdW50LG1pbiA1JSxtaW4gMTAlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUNClByaWNlIFJhbmdlLCwsLCxtaW4gJDQwMCwsLCxtaW4gJDI1LCxtaW4gJDMwMCwsLG1pbiAkMTAwLCwNCkJyYW5kIFNlbGVjdGlvbiwsLCwsLCwsLCwsLCwsLCwNCkZpbHRlciBidXR0b25zLCwsLCwsLCwsLCwsLCwsLA0KMSxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMNCjIsQW1hem9uIGRlYWxzLFVuZGVyICQxMDAwLDUwJSBvZmYsQWRpZGFzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsNTAlIG9mZixBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscw0KMyxPdmVyICQ0MDAsVW5kZXIgJDUwMCxIb2thLE5pa2UsU2FhdHZhLE5pbmphLDQwJSBvZmYsSkxhYiwsSkJMLERlbGwsLEFzdXMsQXBwbGUsQ29uc29sZXMsU3RhciBXYXJzDQo0LFVuZGVyICQxMDAwLDUwJSBvZmYsU2tlY2hlcnMsVW5kZXIgQXJtb3VyLEhlbGl4LFNoYXJrLEdhcm1pbixBbmtlciBTb3VuZGNvcmUsUmluZyxTb25vcyxBcHBsZSxBcHBsZSxUUC1saW5rLFNhbXN1bmcsQWNjZXNzb3JpZXMsVW5kZXIgJDI1DQo1LFVuZGVyICQ1MDAsTEcsQXNpY3MsQ29sdW1iaWEsRHJlYW1DbG91ZCxLZXVyaWcsQXBwbGUsU29ueSxHb3ZlZSxUcmliaXQsTGVub3ZvLFNhbXN1bmcsRWVybyxHb29nbGUsR2FtZXMsVW5kZXIgJDUwDQo2LDUwJSBvZmYsU2Ftc3VuZyxOaWtlLFBhdGFnb25pYSxOZWN0YXIsRGUnTG9uZ2hpLEFtYXpmaXQsQXBwbGUsS2FzYSBzbWFydCxTb255LEFsaWVud2FyZSxUQ0wsTmV0Z2VhcixNb3Rvcm9sYSxOaW50ZW5kbyxCb3RhbmljYWxzDQo3LEFtYXpvbixIaXNlbnNlLE5ldyBCYWxhbmNlLEFyYyd0ZXJ5eCxUZW1wdXItcGVkaWMsRHlzb24sRml0Yml0LEJlYXRzLFBoaWxpcHMgSHVlLEFua2VyLEFjZXIsT25lUGx1cyxEZWxsLE9uZVBsdXMsU29ueSxEaXNuZXkNCjgsQXBwbGUsVENMLEFkaWRhcyxDYXJoYXJ0dCxCZWFyLEJpc3NlbGwsU2Ftc3VuZyxFYXJmdW4sQmxpbmssQmVhdHMsTVNJLE1pY3Jvc29mdCxBY2VyLE5vdGhpbmcsWGJveCxNYXJ2ZWwNCjksLFNvbnksU2F1Y29ueSxUaGUgTm9ydGggRmFjZSxTaWVuYSxOdXRyaWJ1bGxldCxPdXJhLFNhbXN1bmcsR29vZ2xlIE5lc3QgLE1hcnNoYWxsLFNhbXN1bmcsTGVub3ZvLExlbm92bywsLFBva2Vtb24NCjEwLCxSb2t1LEJpcmtlbnN0b2NrLENSWiBZb2dhLFdpbmtCZWRzLEJsYWNrIGFuZCBEZWNrZXIsUmluZ2Nvbm4sQ01GLEV1ZnksU2Ftc3VuZyxNaWNyb3NvZnQsUmVNYXJrYWJsZSxBbGllbndhcmUsLCwNCjExLCwsQnJvb2tzLFRoZSBHeW0gUGVvcGxlLEJyb29rbHluIGJlZGRpbmcsTmVzcHJlc3NvLCwxTW9yZSxBcmxvLCxSYXplciwsQ29yc2FpciwsLA0KMTIsLCxDcm9jcywsRWlnaHQgU2xlZXAsQ3Vpc2luYXJ0LCxKQkwsLCwsLEhQLCwsDQpOb3RlcywsLCwsLCwsLCwsLCwsLCwNCiwsIlByaW9yaXRpc2UgYmlnZ2VzdCAlLyQgZGlzY291bnQsIFR2cyB3aXRoIH41MCUgb2ZmIGhhdmUgYmVlbiB0aGUgbW9zdCBwb3B1bGFyIGV2ZW4gaWYgdGhleSBhcmUgc3RpbGwgZXhwZW5zaXZlIiwiTm8gcGF0dGVybiB0byBwcmljaW5nL2Rpc2NvdW50LCByZWFkZXJzIG1haW5seSBzaG9wIGJ5IGJyYW5kL3JlY29nbmlzYWJsZSBzaG9lcyIsIk5vIHBhdHRlcm4gdG8gcHJpY2luZy9kaXNjb3VudCwgcmVhZGVycyBtYWlubHkgc2hvcCBieSBicmFuZCIsIkEgbGFiZWwgd2lsbCBkZWZpbml0ZWx5IGhlbHAgaGVyZSBlLmcuIGJlc3QgZm9yIHNpZGUgc2xlZXBlciwgYmVzdCBtZW1vcnkgZm9hbSIsIkFwcGxpYW5jZXMgaXMgYSBiaWcgY2F0ZWdvcnksIGlzIGl0IHBvc3NpYmxlIHRvIHNwbGl0IGludG8ga2l0Y2hlbiBhcHBsaWFuY2VzLCBmbG9vcmNhcmUsIGFpciBoZWFsdGgvY29vbGluZz8gT3Igc2ltaWxhciIsIkZvY3VzIG9uIHZhbHVlIGZvciBtb25leSwgR2FybWlucyB3aXRoIH41MCUgb2ZmIGhhdmUgYmVlbiBwb3B1bGFyIGV2ZW4gdGhvdWdoIHRoZXkgYXJlIHN0aWxsICQ1MDAiLCwsLCxJbmNsdWRlIEtpbmRsZXMsSSB3b3VsZCBpbmNsdWRlIHdpZmkgcm91dGVycyBoZXJlIGluc3RlYWQgb2Ygc21hcnQgaG9tZSxDYW4gd2Ugc3VyZmFjZSBwaG9uZSBwcm92aWRlciBkZWFscz8gVC1tb2JpbGUgYW5kIHZlcml6b24gd291bGQgbWFrZSBhIGxvdCBtb3JlIG1vbmV5IHRoYW4gQW1hem9uLCwNCiwsaGF2aW5nIGEgJ2Jlc3QgZm9yJyBsYWJlbCB3b3VsZCBiZSBoZWxwZnVsIGUuZy4gYmVzdCBmb3IgYnJpZ2h0IHJvb20sQ2FuIHdlIHN0b3Aga2lkcyBzaG9lcyBmcm9tIHB1bGxpbmcgdGhyb3VnaD8sIldpbGwgdGhpcyBpbmNsdWRlIGFjY2Vzc29yaWVzIGUuZy4gY2FwcywgYmFncywgaWYgc28gbWFrZSBzdXJlIHRoZXNlIGFyZSBtaXhlZCB0aHJvdWdob3V0IGNsb3RoaW5nIGRlYWxzIixXaWxsIHRoaXMgaW5jbHVkZSB0b3BwZXJzIGFuZCBwaWxsb3dzPyBTZWVpbmcgbW9yZSBtb21lbnR1bSB3aXRoIHRoaXMgY2F0ZWdvcnkgcmVjZW50bHkgc28gYSBiZWRkaW5nIHRhYiBtaWdodCB3b3JrLCwiTmVlZCB0byBtYWtlIHN1cmUgYmFuZHMsIHNjcmVlbiBwcm90ZWN0b3JzIGV0Yy4gZG9uJ3QgcHVsbCBpbnRvIGhlcmUiLCwsLCwsLCwsDQosLCJQcmlvcml0aXNlIDY1JycgYW5kIDU1JyBpbmNoIFRWcywgdGhlbiBiaWdnZXIgc2NyZWVucyBiZWZvcmUgdGhlIHNtYWxsZXIgc2l6ZXMiLCwsUXVlZW4gaXMgdGhlIG1vc3QgcG9wdWxhciBzaXplIGluIHRoZSBVUyAtIHByaW9yaXRpc2UgZGVhbHMgZm9yIHRoaXMgc2l6ZSwsLCwsLCwsLCwsDQosLCwsLCwsLCwsLCwsLCwsDQpDYXRlZ29yaWVzIHRvIGNvbnNpZGVyLCxQcm9kdWN0cyBpbmNsdWRlZCwsLCwsLCwsLCwsLCwsDQpVbmRlciAkNTA/LCxBaXIgdGFncywsLCwsLCwsLCwsLCwsDQosLFBvcnRhYmxlIGNoYXJnZXJzL3dpcmVsZXNzIGNoYXJnZXJzLCwsLCwsLCwsLCwsLCwNCiwsIldhdGVyIGJvdHRsZXMgKHN0YW5sZXlzLCBPd2FsYSwgSHlkcm8gZmxhc2ssIFlldGkpIiwsLCwsLCwsLCwsLCwsDQosLEhhbmQgaGVsZCBmYW5zLCwsLCwsLCwsLCwsLCwNCiwsLCwsLCwsLCwsLCwsLCwNCmhvbWUgb2ZmaWNlLCxvZmZpY2UgY2hhaXJzLCwsLCwsLCwsLCwsLCwNCiwsc3RhbmRpbmcgZGVza3MsLCwsLCwsLCwsLCwsLA0KLCxtb25pdG9ycywsLCwsLCwsLCwsLCwsDQosLEtleWJvYXJkcywsLCwsLCwsLCwsLCwsDQosLGRvY2tpbmcgc3RhdGlvbiwsLCwsLCwsLCwsLCwsDQosLCwsLCwsLCwsLCwsLCwsDQpHYW1pbmcsLENvbnNvbGVzLCwsLCwsLCwsLCwsLCwNCiwsQWNjZXNzb3JpZXMsLCwsLCwsLCwsLCwsLA0KLCxHYW1lcywsLCwsLCwsLCwsLCwsDQosLENvdWxkIGluY2x1ZGUgTGVnbz8sLCwsLCwsLCwsLCwsLA==")));              const text = preloadedCSV;              const parsed = parseCSV(text);                            const rowsByName = {};              let filterStart = -1;              parsed.forEach((rc, i) => {                 if (rc && rc.length > 0 && rc[0]) rowsByName[rc[0]] = rc;                 if (rc && rc.length > 0 && rc[0] === 'Filter buttons') filterStart = i;              });                            const cols = [];              if(rowsByName['Roundel text']) {                const headerRow = rowsByName['Roundel text'];                for(let col = 1; col < headerRow.length; col++) {                   let label = headerRow[col];                   if (!label) continue;                                      let q = rowsByName['Search Query'] && rowsByName['Search Query'][col] ? rowsByName['Search Query'][col] : '';                   let img = rowsByName['Roundel image'] && rowsByName['Roundel image'][col] ? rowsByName['Roundel image'][col] : '';                   let ds = rowsByName['Discount Amount'] && rowsByName['Discount Amount'][col] ? rowsByName['Discount Amount'][col] : '';                   let pr = rowsByName['Price Range'] && rowsByName['Price Range'][col] ? rowsByName['Price Range'][col] : '';                   let rt = rowsByName['Retailer'] && rowsByName['Retailer'][col] ? rowsByName['Retailer'][col] : '';                   let ot = rowsByName['Offer Type'] && rowsByName['Offer Type'][col] ? rowsByName['Offer Type'][col] : '';                                      let filters = [];                   if(filterStart > 0) {                     for(let r = filterStart + 1; r < parsed.length; r++) {                         if(!parsed[r] || parsed[r][0] === 'Notes' || parsed[r][0] === 'Categories to consider') break;                         let f = parsed[r][col];                         if(f) filters.push(f);                     }                   }                   cols.push({ label, img, q, ds, pr, rt, ot, filters });                }              }              this.carouselData = cols;              if (this.carouselData && this.carouselData.length > 0) {                 const isMatched = this.carouselData.some(c => c.q === this.currentQuery || c.label === this.currentQuery);                 if (!isMatched) {                    const first = this.carouselData[0];                    this.currentQuery = first.q || first.label;                    if (this.priceFilter) this.priceFilter.value = 'all';                    if (this.customPriceMin) this.customPriceMin.value = '';                    if (this.customPriceMax) this.customPriceMax.value = '';                    let dPr = first.pr || 'all';                    if (typeof dPr === 'string' && dPr !== 'all') {                       let prLower = dPr.toLowerCase();                       if (prLower.includes('min') || prLower.includes('over')) {                          let m = dPr.match(/(\d+)/);                          if (m && this.customPriceMin) this.customPriceMin.value = m[1];                       } else if (prLower.includes('max') || prLower.includes('under')) {                          let m = dPr.match(/(\d+)/);                          if (m && this.customPriceMax) this.customPriceMax.value = m[1];                       }                    }                    let dAm = '0';                    if(first.ds && typeof first.ds === 'string') {                       let m = first.ds.match(/(\d+)/);                       if(m) dAm = m[1];                    }                    if (this.discountFilter) this.discountFilter.value = dAm;                    if (this.offerTypeSelect) this.offerTypeSelect.value = first.ot || '';                    if (this.retailerSelect) this.retailerSelect.value = first.rt || '';                    this.selectedBrands = [];                    if (this.brandDropdown) {                        const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                        chks.forEach(chk => chk.checked = false);                    }                    if (this.searchInput) this.searchInput.value = this.currentQuery;                 }              }              this.renderCarouselUI();          } catch(e){ console.warn(e); }        }                renderCarouselUI() {           const roundelWrapper = this.root.querySelector('.tg-df-carousel-roundels');           if(!roundelWrapper || !this.carouselData) return;                      let html = '';           this.carouselData.forEach(r => {              const q = r.q || r.label;              const isActive = (this.currentQuery === q || this.currentQuery === r.label) ? 'active' : '';              const imgHtml = r.img ? `\x3Cimg src="${r.img}" alt="${r.label}" />` : `\x3Csvg width="32" height="32" fill="#1F69FF" viewBox="0 0 24 24">\x3Cpath d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/>\x3C/svg>`;              html += `                \x3Cdiv class="tg-df-roundel tg-df-carousel-cat ${isActive}" data-label="${this.escapeHTML(r.label)}">                  \x3Cdiv class="tg-df-roundel-img-box">${imgHtml}\x3C/div>                  \x3Cspan class="tg-df-roundel-label">${this.escapeHTML(r.label)}\x3C/span>                \x3C/div>              `;           });           roundelWrapper.innerHTML = html;                      // Rebind clicks           const roundels = this.root.querySelectorAll('.tg-df-carousel-cat');           roundels.forEach(rNode => {             rNode.addEventListener('click', () => {                const r = this.carouselData.find(c => c.label === rNode.getAttribute('data-label'));                 if(!r) return;                                  if (typeof trackHawkEvent !== 'undefined') {                     trackHawkEvent({                         clickType: "CC",                         widgetId: this.widgetId,                         productCategoryName: "deals",                         zeroBasedProductIndexOrNull: null,                         totalDealsOrProducts: null,                         areaClicked: "Category Roundel",                         revenueId: this.revenueId,                         isoCurrencyCode: typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD',                         queryName: r.label,                         widgetTypeName: this.widgetTypeName                     });                 }                this.currentQuery = r.q || r.label;                const labelTitle = this.root.querySelector('#tg-df-carousel-title-label');                if (labelTitle) labelTitle.textContent = 'Best ' + this.currentQuery;                if (this.priceFilter) this.priceFilter.value = 'all';                if (this.customPriceMin) this.customPriceMin.value = '';                if (this.customPriceMax) this.customPriceMax.value = '';                let dPr = r.pr || 'all';                if (typeof dPr === 'string' && dPr !== 'all') {                   let prLower = dPr.toLowerCase();                   if (prLower.includes('min') || prLower.includes('over')) {                      let m = dPr.match(/(\d+)/);                      if (m && this.customPriceMin) this.customPriceMin.value = m[1];                   } else if (prLower.includes('max') || prLower.includes('under')) {                      let m = dPr.match(/(\d+)/);                      if (m && this.customPriceMax) this.customPriceMax.value = m[1];                   }                }                                let discountAmount = '0';                if(r.ds && typeof r.ds === 'string') {                   let m = r.ds.match(/(\d+)/);                   if(m) discountAmount = m[1];                }                if (this.discountFilter) this.discountFilter.value = discountAmount;                if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                                // Clear brands                    this.selectedBrands = [];                    if (this.brandDropdown) {                    const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                    chks.forEach(chk => chk.checked = false);                }                                if (this.searchInput) this.searchInput.value = this.currentQuery;                                roundels.forEach(ro => ro.classList.remove('active'));                if (rNode) rNode.classList.add('active');                                this.renderCarouselFilters(r);                this.fetchDeals(this.currentQuery);             });           });                      // Auto-highlight active           const activeR = this.carouselData.find(c => c.q === this.currentQuery || c.label === this.currentQuery);           if(activeR) this.renderCarouselFilters(activeR);        }                renderCarouselFilters(r) {           const filtersWrap = this.root.querySelector('.tg-df-carousel-filters-wrap');           if(!filtersWrap) return;                      let html = `\x3Cbutton class="tg-df-carousel-filter-btn" data-type="all">All\x3C/button>`;                      r.filters.forEach(f => {              let fL = f.toLowerCase();              let icon = '';              let logic = `data-type="custom" data-v="${this.escapeHTML(f)}"`;              if (fL === 'amazon deals' || fL === 'prime deals') {                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>\x3Cimg src="https://cdn.mos.cms.futurecdn.net/fwoVXvL79turN3Ph535m38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/u75QjVpt3w2EsMimJiRo38-600-100.png" class="active-img" alt="" /> Prime deals\x3C/button>`;              } else if (fL === 'lightning deals') {                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>\x3Cimg src="https://cdn.mos.cms.futurecdn.net/HqAui7w97ft2NPqBtQ5r38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/yWPQ5yyQRhUwVKzGwYbh38-600-100.png" class="active-img" alt="" /> Lightning deals\x3C/button>`;              } else {                 if (fL.includes('lightning')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap">\x3Cpolygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2">\x3C/polygon>\x3C/svg>`;                 } else if (fL.includes('% off')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>`;                 } else if (fL.includes('under') || fL.includes('min ')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-badge-dollar-sign">\x3Cpath d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z">\x3C/path>\x3Cpath d="M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8">\x3C/path>\x3Cpath d="M12 18V6">\x3C/path>\x3C/svg>`;                 }                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>${icon} ${this.escapeHTML(f)}\x3C/button>`;              }           });                      filtersWrap.innerHTML = html;                      const btns = filtersWrap.querySelectorAll('button');           btns.forEach(b => {             b.addEventListener('click', () => {                const type = b.getAttribute('data-type');                if (type === 'custom') {                   const v = b.getAttribute('data-v');                   if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: `filter-custom-${(v||'').toLowerCase().replace(/[^a-z0-9]+/g, '-')}`, name: 'Custom Filter', label: v });                }                if (type === 'all') {                   if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: 'filter-clear-all', name: 'Clear all', label: 'Clear all filters' });                   // reset everything                   btns.forEach(btn => btn.classList.remove('active'));                   b.classList.add('active');                                      // Reset prices                   if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.customPriceMin) this.customPriceMin.value = '';                   if (this.customPriceMax) this.customPriceMax.value = '';                   let dPr = r.pr || 'all';                   if (typeof dPr === 'string' && dPr !== 'all') {                      let prLower = dPr.toLowerCase();                      if (prLower.includes('min') || prLower.includes('over')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMin) this.customPriceMin.value = m[1];                      } else if (prLower.includes('max') || prLower.includes('under')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMax) this.customPriceMax.value = m[1];                      }                   }                                      let discountAmount = '0';                   if(r.ds && typeof r.ds === 'string') {                      let m = r.ds.match(/(\d+)/);                      if(m) discountAmount = m[1];                   }                   if (this.discountFilter) this.discountFilter.value = discountAmount;                   if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                   if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                   this.selectedBrands = [];                   if (this.brandDropdown) {                     const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                     chks.forEach(chk => chk.checked = false);                   }                } else {                   const v = b.getAttribute('data-v');                   const fL = v.toLowerCase();                                      let mapRet = ['amazon', 'walmart', 'best buy', 'target', 'john lewis', 'currys', 'argos'];                   const getCategory = (s) => {                      if (s === 'lightning deals' || s === 'amazon deals' || s === 'prime deals') return 'offer';                      if (s.includes('% off')) return 'discount';                      if (s.includes('under') || s.includes('over') || s.includes('min') || s.includes('max')) return 'price';                      if (mapRet.includes(s)) return 'retailer';                      return 'brand';                   };                   const cat = getCategory(fL);                   const wasActive = b.classList.contains('active');                   if (cat !== 'brand') {                      btns.forEach(btn => {                          if (btn === b) return;                          if (btn.getAttribute('data-type') === 'all') return;                          const bV = btn.getAttribute('data-v');                          if (!bV) return;                          if (getCategory(bV.toLowerCase()) === cat) btn.classList.remove('active');                      });                   }                   if (wasActive) b.classList.remove('active');                   else b.classList.add('active');                   let anyActive = Array.from(btns).some(btn => btn !== btns[0] && btn.classList.contains('active'));                   if (!anyActive) {                       btns[0].click();                       return;                   } else {                       btns[0].classList.remove('active');                   }                                      if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.customPriceMin) this.customPriceMin.value = '';                   if (this.customPriceMax) this.customPriceMax.value = '';                   let dPr = r.pr || 'all';                   if (typeof dPr === 'string' && dPr !== 'all') {                      let prLower = dPr.toLowerCase();                      if (prLower.includes('min') || prLower.includes('over')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMin) this.customPriceMin.value = m[1];                      } else if (prLower.includes('max') || prLower.includes('under')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMax) this.customPriceMax.value = m[1];                      }                   }                                      let discountAmount = '0';                   if(r.ds && typeof r.ds === 'string') {                      let m = r.ds.match(/(\d+)/);                      if(m) discountAmount = m[1];                   }                   if (this.discountFilter) this.discountFilter.value = discountAmount;                   if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                   if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                   this.selectedBrands = [];                   btns.forEach(btn => {                       if (!btn.classList.contains('active') || btn.getAttribute('data-type') === 'all') return;                       const vv = btn.getAttribute('data-v');                       const vl = vv.toLowerCase();                                              if (vl === 'lightning deals') {                          if (this.offerTypeSelect) this.offerTypeSelect.value = 'amazon_lightning';                       } else if (vl === 'amazon deals' || vl === 'prime deals') {                          if (this.offerTypeSelect) this.offerTypeSelect.value = 'amazon_prime';                       } else if (vl.includes('% off')) {                          let m = vl.match(/(\d+)%/);                          if (m && this.discountFilter) this.discountFilter.value = m[1];                       } else if (vl.includes('under') || vl.includes('max')) {                          let m = vl.match(/(\d+)/);                          if (m && this.customPriceMax) this.customPriceMax.value = m[1];                       } else if (vl.includes('min') || vl.includes('over')) {                          let m = vl.match(/(\d+)/);                          if (m && this.customPriceMin) this.customPriceMin.value = m[1];                       } else {                          let foundR = mapRet.find(x => x === vl);                          if (foundR) {                             let realR = ['Amazon', 'Walmart', 'Best Buy', 'Target', 'John Lewis', 'Currys', 'Argos'].find(x => x.toLowerCase() === vl);                             if (this.retailerSelect) this.retailerSelect.value = realR;                          } else {                             this.selectedBrands.push(vv);                          }                       }                   });                                      if (this.brandDropdown) {                       const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                       chks.forEach(c => c.checked = this.selectedBrands.includes(c.value));                   }                                      if (r.pr && typeof r.pr === 'string') {                       let prL = r.pr.toLowerCase();                       if (prL.includes('under $')) {                           let m = prL.match(/under \$(\d+)/i);                           if (m && this.customPriceMax && !this.customPriceMax.value) this.customPriceMax.value = m[1];                       }                   }                }                                this.fetchDeals(this.currentQuery);             });           });                      // default to highlighting first           btns[0].classList.add('active');        }async fetchDeals(query, append = false) {          if (!append) {             this.showLoading();             this.deals = [];             this.displayLimit = this.getRowsLimit();          } else {             this.displayLimit += this.getRowsLimit();          }                    try {            if (this.getViewMode() === 'savings_squad') {               await this.fetchSavingsSquad(append);            } else {               if (this.isBroadQuery(query)) {                 await this.fetchAdviserDeals(query, append);               } else {                 await this.fetchHawkDeals(query, append);                 if (this.deals.length === 0) {                   await this.fetchAdviserDeals(query, append);                 }               }            }          } catch (error) {            console.warn("[Tom's Guide Widget] Fetch error:", error);            this.showError();          }        }        async fetchSavingsSquad() {          let topArticles = this.airedaleArticles;          if (!topArticles) {            const airedaleUrl = `https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50`;            let res;            try {               res = await fetch(airedaleUrl);            } catch(e) {               try { res = await fetch(`https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50`); } catch (err) { console.warn("Fallback fetch failed", err); return; }            }            if (!res.ok) throw new Error('Airedale API Error');            const articles = await res.json();            topArticles = Array.isArray(articles) ? articles.slice(0, 50) : ((articles.data && Array.isArray(articles.data)) ? articles.data.slice(0, 50) : []);            this.airedaleArticles = topArticles;                        let tagCounts = {};            topArticles.forEach((a) => {              let articleTags = new Set();              if (a.articlecategory && Array.isArray(a.articlecategory)) {                 a.articlecategory.forEach((t) => articleTags.add(t));              }              articleTags.forEach(t => {                 tagCounts[t] = (tagCounts[t] || 0) + 1;              });            });                        this.airedaleTags = Object.keys(tagCounts).sort((a, b) => tagCounts[b] - tagCounts[a]);            this.airedaleTagCounts = tagCounts;          }                    let targetArticles = topArticles;          if (this.activeDealTag) {             const cleanTag = this.activeDealTag.toLowerCase().replace(/&/g, '').replace(/[^a-z0-9]+/g, '-').replace(/-+/g, '-').replace(/^-|-$/g, '');             const encodedTag = encodeURIComponent(cleanTag);             const url = `https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50&articleCategoryHandle=${encodedTag}`;             try {                const res = await fetch(url);                if (res.ok) {                   const articles = await res.json();                   targetArticles = Array.isArray(articles) ? articles.slice(0, 50) : ((articles.data && Array.isArray(articles.data)) ? articles.data.slice(0, 50) : []);                }             } catch(e) {                console.warn("Failed to fetch by activeDealTag", e);             }          }          let extractedDeals = [];          let dynamicBrandsCounts = {};                    targetArticles.forEach((article) => {             if (!article.articlepage) return;                          let pageData = [];             try {                pageData = JSON.parse(article.articlepage[0]);             } catch(e){ console.warn(e); }                          const savingsSquad = pageData.filter((p) => p.type === 'deal' || p.type === 'featured-product');                          savingsSquad.forEach((block, idx) => {                const data = block.data || {};                const isFeatured = block.type === 'featured-product';                                const link = data.link || {};                const priceObj = data.price || {};                const image = data.image || {};                                if (data.brand) {                   data.brand = data.brand.replace(/^\d+\.\s*/, '').trim();                   dynamicBrandsCounts[data.brand] = (dynamicBrandsCounts[data.brand] || 0) + 1;                }                const externalUrl = isFeatured ? data.url : (link.href || null);                let summaryTitle = isFeatured ? (data.name || data.brand) : (data.productName || link.label || article.articlename);                let description = isFeatured ? (data.strapline || '') : (data.text || '');                                if (!isFeatured && !data.productName && data.text) {                   const brSplit = data.text.split(new RegExp('\x3Cbr\\s*\\/?\\x3E', 'i'));                   if (brSplit.length > 1) {                     summaryTitle = brSplit[0].replace(/<[^>]+>/g, '').trim();                     description = brSplit.slice(1).join(' ').replace(/<br\s*\/?>/gi, ' ').replace(/<\/?(p|div)[^>]*>/gi, ' ').replace(/<[^>]+>/g, '').replace(/\s+/g, ' ').trim();                   } else {                     const match = data.text.match(/\x3Cstrong>(.*?)<\/strong>/);                     if (match) {                       summaryTitle = match[1].replace(/<[^>]+>/g, '').trim();                       if (summaryTitle.endsWith(':')) summaryTitle = summaryTitle.slice(0, -1);                     }                   }                }                                let imageUrl = isFeatured ? image.mos : (image.src || null);                if (imageUrl && imageUrl.startsWith('//')) imageUrl = 'https:' + imageUrl;                                description = description.replace(/<br\s*\/?>/gi, ' ').replace(/<\/?(p|div)[^>]*>/gi, ' ').replace(/<[^>]+>/g, '').replace(/\s+/g, ' ').replace(/View Deal$/i, '').trim();                                let merchantName = data.retailer || '';                if (!merchantName && externalUrl) {                   try {                     merchantName = new URL(externalUrl).hostname.replace('www.', '').split('.')[0];                     merchantName = merchantName.charAt(0).toUpperCase() + merchantName.slice(1);                   }catch(e){ console.warn(e); }                }                if (!merchantName) merchantName = 'Retailer';                const q = (this.currentQuery || '').toLowerCase();                const activeTagLogic = (this.activeDealTag || '').toLowerCase();                if (q.length > 2 && q !== activeTagLogic) {                   const searchTarget = `${summaryTitle || ''} ${description || ''}`.toLowerCase();                   if (!searchTarget.includes(q)) return;                }                let rawPrice = 0;                let rawMsrp = 0;                let currencyStr = '$';                if (isFeatured) {                   rawPrice = typeof data.salePrice === 'number' && data.salePrice > 0 ? data.salePrice : (typeof data.price === 'number' ? data.price : 0);                   rawMsrp = typeof data.salePrice === 'number' && typeof data.price === 'number' && data.price > data.salePrice ? data.price : 0;                   currencyStr = data.currency === 'GBP' ? '£' : '$';                } else {                   rawPrice = priceObj.amount ? parseFloat(priceObj.amount) : 0;                   rawMsrp = priceObj.amountWas ? parseFloat(priceObj.amountWas) : 0;                   currencyStr = priceObj.currency === 'GBP' ? '£' : '$';                }                                let savingAmt = 0;                let savingLabel = '';                if (rawPrice > 0 && rawMsrp > rawPrice) {                   savingAmt = parseFloat((rawMsrp - rawPrice).toFixed(2));                   savingLabel = `Save ${currencyStr}${savingAmt}`;                }                                // Apply Brand filter                if (this.selectedBrands && this.selectedBrands.length > 0) {                   const itemBrand = (data.brand || '').toLowerCase();                   const hasMatch = this.selectedBrands.some(sb => sb.toLowerCase() === itemBrand);                   if (!hasMatch) return;                }                // Apply Price filter                let priceFilterVal = null;                const min = this.customPriceMin ? this.customPriceMin.value : '';                const max = this.customPriceMax ? this.customPriceMax.value : '';                if (min || max) {                   priceFilterVal = `${min}_${max}`;                } else if (this.priceFilter && this.priceFilter.value !== 'all') {                   priceFilterVal = this.priceFilter.value;                }                if (priceFilterVal && rawPrice > 0) {                   if (priceFilterVal === 'under50' && rawPrice >= 50) return;                   if (priceFilterVal === 'over50' && rawPrice <= 50) return;                   if (priceFilterVal === 'over30' && rawPrice <= 30) return;                   if (priceFilterVal === 'over500' && rawPrice <= 500) return;                   if (priceFilterVal.includes('_')) {                      const parts = priceFilterVal.split('_');                      const min = parseFloat(parts[0]);                      const max = parseFloat(parts[1]);                      if (!isNaN(min) && rawPrice < min) return;                      if (!isNaN(max) && rawPrice > max) return;                   }                }                // Apply Discount filter                if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {                   const requiredDiscount = parseInt(this.discountFilter.value);                   if (!isNaN(requiredDiscount) && requiredDiscount > 0) {                      if (!rawMsrp || rawMsrp <= rawPrice) return;                      const ratio = Math.round((1 - (rawPrice / rawMsrp)) * 100);                      if (ratio < requiredDiscount) return;                   }                }                                extractedDeals.push({                   id: `airedale-${article.id || Math.random()}-${idx}`,                   url: externalUrl,                   image: imageUrl,                   fallbackImage: imageUrl,                   title: summaryTitle,                   brand: data.brand || '',                   productName: data.productName || '',                   merchant: merchantName,                   rawPrice: rawPrice,                   rawMsrp: rawMsrp,                   price: rawPrice > 0 ? rawPrice.toString() : '',                   msrp: rawMsrp > 0 ? rawMsrp.toString() : '',                   currency: currencyStr,                   isCheckPrice: !rawPrice,                   savingLabel: savingLabel,                   savingType: rawMsrp > rawPrice ? 'amount' : 'none',                   isPrime: false,                   starRating: null,                   description: description,                   text: data.text || ''                });             });          });                    const airedaleBrandsList = Object.keys(dynamicBrandsCounts).map(b => ({              formatted_value: b,              count: dynamicBrandsCounts[b]          })).sort((a,b) => b.count - a.count);                    if (this.getViewMode() === 'savings_squad') {             this.populateBrandDropdown(airedaleBrandsList.slice(0, 15));             if (this.brandFilterWrapper) {                if (airedaleBrandsList.length === 0) {                    this.brandFilterWrapper.style.display = 'none';                } else {                    this.brandFilterWrapper.style.display = 'flex';                }             }          }                    this.deals = extractedDeals;          this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.deals, this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        isBroadQuery(query) {          const q = query.toLowerCase();          const intentModifiers = ['deals', 'best', 'sale', 'under', 'cheap', 'offers', 'discount'];          return intentModifiers.some(term => q.includes(term));        }        async fetchHawkDeals(query, append = false) {          const url = new URL(this.apiUrl);          url.searchParams.append('model_name', query);          const areaCode = this.getAreaCode();          if (areaCode) {            url.searchParams.append('area', areaCode);          }                    if (append && this.deals.length > 0) {            url.searchParams.append('offset', this.deals.length.toString());          }                    if (this.retailerSelect && this.retailerSelect.value) {            url.searchParams.append('filter_merchant_name', this.retailerSelect.value);          }                    if (this.selectedBrands && this.selectedBrands.length > 0) {            url.searchParams.append('filter_label[text_brand]', this.selectedBrands.join(','));          }                    let priceVal = null;          const min = this.customPriceMin ? this.customPriceMin.value : '';          const max = this.customPriceMax ? this.customPriceMax.value : '';          if (min || max) {             priceVal = `${min}_${max}`;          } else if (this.priceFilter && this.priceFilter.value !== 'all') {             priceVal = this.priceFilter.value;          }          if (priceVal) {            if (priceVal === 'under50') {              url.searchParams.append('filter_max_price', '50');            } else if (priceVal === 'over50') {              url.searchParams.append('filter_min_price', '50');            } else if (priceVal === 'over30') {              url.searchParams.append('filter_min_price', '30');            } else if (priceVal === 'over500') {              url.searchParams.append('filter_min_price', '500');            } else if (priceVal.includes('_')) {              const parts = priceVal.split('_');              if (parts[0]) url.searchParams.append('filter_min_price', parts[0]);              if (parts[1]) url.searchParams.append('filter_max_price', parts[1]);            }          }                    if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {            const v = parseInt(this.discountFilter.value);            if (!isNaN(v) && v > 0) {              const ratio = (100 - v) / 100;              url.searchParams.append('min_discount_ratio', ratio.toString());            }          }                    if (this.offerTypeSelect && this.offerTypeSelect.value) {            url.searchParams.append('offer', this.offerTypeSelect.value);          }                    url.searchParams.append('filter_product_types', 'deals');                    url.searchParams.append('rows', this.getRowsLimit().toString());          let response;          try {             response = await fetch(url.toString());          } catch(e) {             if (window.location.protocol === 'file:') {                console.warn("[Tom's Guide Widget] fetch from file:// blocked by local CORS policy, falling back to Adviser mock.");                await this.fetchAdviserDeals(query);                return;             }             console.warn("Hawk fetch failed", e);             this.deals = [];             this.render();             return;          }          if (!response.ok) {            throw new Error('Hawk API Response Error');          }          const rawData = await response.json();          // Safely locate data array from potentially wrapped response          let offers = [];          let modelInfoArray = [];                    let brandFilterData = null;          if (rawData && rawData.widget && rawData.widget.data && Array.isArray(rawData.widget.data.filters)) {             brandFilterData = rawData.widget.data.filters.find(f => f.type === 'label_text_brand');          } else if (rawData && rawData.data && Array.isArray(rawData.data.filters)) {             brandFilterData = rawData.data.filters.find(f => f.type === 'label_text_brand');          }          if (brandFilterData && Array.isArray(brandFilterData.values) && brandFilterData.values.length > 0) {             this.populateBrandDropdown(brandFilterData.values);          } else {             if (this.brandFilterWrapper && this.selectedBrands.length === 0) {                this.brandFilterWrapper.style.display = 'none';             }          }                    if (rawData && rawData.widget && rawData.widget.data) {            if (Array.isArray(rawData.widget.data.offers)) offers = rawData.widget.data.offers;            if (rawData.widget.data.model_info && typeof rawData.widget.data.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.widget.data.model_info) ? rawData.widget.data.model_info : Object.values(rawData.widget.data.model_info);            }          } else if (rawData && rawData.data) {            if (Array.isArray(rawData.data.offers)) offers = rawData.data.offers;            if (rawData.data.model_info && typeof rawData.data.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.data.model_info) ? rawData.data.model_info : Object.values(rawData.data.model_info);            }          } else {            if (Array.isArray(rawData)) offers = rawData;            else if (rawData && Array.isArray(rawData.offers)) offers = rawData.offers;            else if (rawData && rawData.offers && Array.isArray(rawData.offers.offer)) offers = rawData.offers.offer;            else if (rawData && rawData.offers) offers = [].concat(rawData.offers);                        if (rawData && rawData.model_info && typeof rawData.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.model_info) ? rawData.model_info : Object.values(rawData.model_info);            }          }          let modelDetails = {};          modelInfoArray.forEach(m => {            const mId = m.model_id || m.id;            if (mId) {              modelDetails[mId] = {                score: m.score != null ? parseFloat(m.score) : null,                brand: m.brand || null,                parent: (m.parents && Array.isArray(m.parents) && m.parents.length > 0) ? m.parents[0].name : null              };            }          });          offers.forEach(item => {            let data = { ...item };            const mId = data.model_id;            if (mId && modelDetails[mId]) {              data.review_score = modelDetails[mId].score;              data.model_brand = modelDetails[mId].brand;              data.model_parent = modelDetails[mId].parent;            } else {              data.review_score = null;            }                        let itemOffers = [];            if (Array.isArray(item.offers)) itemOffers = item.offers;            else if (Array.isArray(item.offer)) itemOffers = item.offer;            else if (item.offers && typeof item.offers === 'object') itemOffers = [item.offers];            else if (item.offer && typeof item.offer === 'object') itemOffers = [item.offer];            if (itemOffers.length > 0) {              itemOffers.forEach(subItem => {                let subData = { ...item, ...subItem };                const subId = subData.model_id;                if (subId && modelDetails[subId]) {                  subData.review_score = modelDetails[subId].score;                  subData.model_brand = modelDetails[subId].brand;                  subData.model_parent = modelDetails[subId].parent;                } else if (data.review_score != null) {                  subData.review_score = data.review_score;                }                if (subData.merchant && typeof subData.merchant === 'object') {                  subData.merchant_name = subData.merchant.name;                }                this.deals.push(this.extractDealData(subData));              });              return;            }                        if (item.merchant && typeof item.merchant === 'object') {              data.merchant_name = item.merchant.name;            }                        this.deals.push(this.extractDealData(data));          });                    this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.deals, this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        async fetchAdviserDeals(query) {          // ======================================================================          // TODO: ADVISER API REPLACEMENT          // The code below simulates the Adviser API response using mock data.          // Once the real endpoint is ready, remove getAdviserMockData() and           // perform an actual fetch() request similar to fetchHawkDeals().          // Example:          // const area = this.getAreaCode();          // let apiUrl = `https://your-adviser-api.com/search?q=${query}&area=${area}`;          // if (this.priceFilter && this.priceFilter.value !== 'all') {          //   const val = this.priceFilter.value;          //   if (val === 'under50') apiUrl += '&filter_max_price=50';          //   else if (val === '50_100') apiUrl += '&filter_max_price=100';          //   else if (val === '100_200') apiUrl += '&filter_max_price=200';          //   else if (val === '200_500') apiUrl += '&filter_max_price=500';          // }          // const res = await fetch(apiUrl);          // const rawData = await res.json();          // ======================================================================          // Simulating network latency          await new Promise(resolve => setTimeout(resolve, 400));                    const rawData = this.getAdviserMockData();          let offers = [];                    if (rawData && rawData.data && rawData.data.Get && Array.isArray(rawData.data.Get.Deal)) {            offers = rawData.data.Get.Deal;          }                    // Basic client-side filtering for the mock if we want it to react to the query          const q = query.toLowerCase();          const selectedRetailer = (this.retailerSelect && this.retailerSelect.value) ? this.retailerSelect.value.toLowerCase() : null;                    offers.forEach(item => {            const dataObj = item;                        // Apply retailer filter            const itemRetailer = (dataObj.dataRetailer || '').toLowerCase();            if (selectedRetailer && itemRetailer !== selectedRetailer && !itemRetailer.includes(selectedRetailer)) {              return;            }                        // Apply mock price filter            let price = dataObj.dataDiscountedPrice || 0;            if (typeof price === 'string') {              price = parseFloat(price.replace(/[^0-9.]/g, ''));            }            let priceVal = null;            const min = this.customPriceMin ? this.customPriceMin.value : '';            const max = this.customPriceMax ? this.customPriceMax.value : '';            if (min || max) {               priceVal = `${min}_${max}`;            } else if (this.priceFilter && this.priceFilter.value !== 'all') {               priceVal = this.priceFilter.value;            }            if (priceVal) {              if (priceVal === 'under50' && price >= 50) return;              if (priceVal === 'over50' && price <= 50) return;              if (priceVal === 'over30' && price <= 30) return;              if (priceVal === 'over500' && price <= 500) return;              if (priceVal.includes('_')) {                 const parts = priceVal.split('_');                 if (parts[0] && price < parseFloat(parts[0])) return;                 if (parts[1] && price > parseFloat(parts[1])) return;              }            }                        // Map Adviser schema to our widget's expected schema            const mappedData = {              url: dataObj.linkHREF || dataObj.dataLink || '#',              image: dataObj.imageURL || (dataObj.image && dataObj.image.src) || '',              title: dataObj.dataProduct || (dataObj.product && dataObj.product.name) || 'Product Deal',              merchant: dataObj.dataRetailer || 'Retailer',              price: dataObj.dataDiscountedPrice || 0,              currency: dataObj.dataCurrency === 'USD' ? '$' : (dataObj.dataCurrency || '$'),              msrp: dataObj.dataOriginalPrice || null            };                        const titleLow = mappedData.title.toLowerCase();            const merchLow = mappedData.merchant.toLowerCase();                        // Smarter mock filtering            let isMatch = false;            if (q === '' || this.isBroadQuery(q)) {              isMatch = true;            } else if (titleLow.includes(q) || merchLow.includes(q)) {              isMatch = true;            } else if ((q.includes('laptop') || q.includes('mac') || q.includes('pc')) && (titleLow.includes('macbook') || titleLow.includes('laptop'))) {              isMatch = true;            } else if ((q.includes('tv') || q.includes('television')) && (titleLow.includes('tv') || titleLow.includes('oled') || titleLow.includes('qled'))) {              isMatch = true;            } else if ((q.includes('phone') || q.includes('smartphone')) && (titleLow.includes('galaxy') || titleLow.includes('phone'))) {              isMatch = true;            } else if ((q.match(/watch|fitness|run|shoe/)) && (titleLow.includes('forerunner') || titleLow.includes('saucony') || titleLow.includes('watch'))) {              isMatch = true;            }                        if (isMatch) {               this.deals.push(this.extractDealData(mappedData));            }          });                    let rowLimit = this.getRowsLimit();          // Intentionally omitting the slice here to allow "Load More" to work if the API returns more                    this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.deals, this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        getAdviserMockData() {          return {            "data": {              "Get": {                "Deal": [                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 300,                    "dataOriginalPrice": 399,                    "dataProduct": "Samsung Galaxy A36",                    "dataRetailer": "Samsung",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/MqDYsukV3JBG54te6dEs7j.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 14,                    "dataOriginalPrice": 24,                    "dataProduct": "Blink Mini",                    "dataRetailer": "Amazon",                    "imageURL": "http://cdn.mos.cms.futurecdn.net/3JurmAjHsDa5tPdaHAwEV8.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 59,                    "dataOriginalPrice": 99,                    "dataProduct": "Ring Video Doorbell",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/rAh4uR7AsAsALCCLTXnLNJ.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 10,                    "dataOriginalPrice": 599,                    "dataProduct": "MacBook Neo",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/Lg4Dvg68j9SbB5CPNrTEpH.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 749,                    "dataOriginalPrice": 849,                    "dataProduct": "65\\\" Fire TV Omni 4K QLED TV",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/SG34ZWodUkLTxJvMTbjPYR.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 71,                    "dataOriginalPrice": 160,                    "dataProduct": "Saucony Hurricane 24",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/vxf7UD5T2Am7guVzFoFcZ4.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 649,                    "dataOriginalPrice": 749,                    "dataProduct": "Garmin Forerunner 970",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/3GKnEu7CdhtxPMfnPCMCiA.png"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 1049,                    "dataOriginalPrice": 1499,                    "dataProduct": "LG 48\\\" C4 4K OLED TV",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/imvwZV9zoMD6fn9Afuge35.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 1499,                    "dataOriginalPrice": 2199,                    "dataProduct": "Samsung 49\\\" Odyssey Neo G9 4K Gaming Monitor",                    "dataRetailer": "Amazon",                    "imageURL": "http://cdn.mos.cms.futurecdn.net/XWDEJ5dUAE2nhK8k3Jk7k7.png"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 299,                    "dataOriginalPrice": 699,                    "dataProduct": "EGOHOME Black Memory Foam Mattress (queen)",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/hMUemtAejNETLVYxNrktzm.jpg"                  }                ]              }            }          };        }        decodeHTML(html) {          if (!html) return '';          const txt = document.createElement("textarea");          txt.innerHTML = String(html);          return txt.value;        }        extractDealData(item) {          const priceRawStr = String(item.price || item.current_price || '0');          const msrpRawStr = String(item.was_price || item.msrp || item.original_price || '0');          const rawPrice = parseFloat(priceRawStr.replace(/[^\d.]/g, '')) || 0;          const rawMsrp = parseFloat(msrpRawStr.replace(/[^\d.]/g, '')) || 0;          const isCheckPrice = rawPrice === 0 || priceRawStr === '0.00' || priceRawStr === '0';                    let originalImageUrl = item.image || item.image_url || item.product_image || '';          let imageUrl = originalImageUrl;          if ((!imageUrl || isCheckPrice) && item.model_image_url) {             imageUrl = item.model_image_url;             originalImageUrl = imageUrl;          } else if ((!imageUrl || isCheckPrice) && item.model_image) {             imageUrl = item.model_image;             originalImageUrl = imageUrl;          }                    if (imageUrl) {            imageUrl = imageUrl.replace(/-(\d+)-(\d+)(\.[a-z.]+)$/i, '$3');          }                    let fallbackImage = '';          if (originalImageUrl && originalImageUrl !== imageUrl) {             fallbackImage = originalImageUrl;          } else if (item.model_image && item.model_image !== imageUrl) {             fallbackImage = item.model_image;          } else if (item.model_image_url && item.model_image_url !== imageUrl) {             fallbackImage = item.model_image_url;          }                    const rawCurrency = item.currency || item.currency_symbol || '$';                    let savingLabel = item.percentage_saving_label || '';          if (!savingLabel && rawMsrp > rawPrice && rawPrice > 0) {            const pct = Math.round(((rawMsrp - rawPrice) / rawMsrp) * 100);            if (pct > 0) {              savingLabel = `${pct}% OFF`;            }          }                    const isPrime = item.shipping && item.shipping.prime === true;                    let scoreRaw = (item.review_score !== undefined && item.review_score !== null && item.review_score > 0) ? parseFloat(item.review_score) : null;          let starRating = 0;          if (scoreRaw !== null) {            starRating = Math.round((scoreRaw > 10 ? scoreRaw / 20 : scoreRaw / 2) * 2) / 2;          }                    return {            id: item.offer_id || item.link || item.url || item.offer_link || Math.random().toString(),            url: item.link || item.url || item.offer_link || '#',            image: imageUrl,            fallbackImage: fallbackImage,            title: item.name || item.title || item.model_name || item.product_name || 'Unknown Product',            brand: item.brand || '',            productName: item.model_name || item.product_name || item.name || '',            merchant: item.merchant_name || item.merchant || item.retailer || 'Retailer',            price: item.price !== undefined ? String(item.price) : '0.00',            currency: this.decodeHTML(rawCurrency),            msrp: item.was_price || item.msrp || item.original_price || null,            rawPrice: rawPrice,            rawMsrp: rawMsrp,            hasWasPrice: (item.was_price !== undefined && item.was_price !== null),            isCheckPrice: isCheckPrice,            savingLabel: savingLabel,            isPrime: isPrime,            starRating: starRating > 0 ? starRating : null,            modelId: item.model_id || '',            productKey: item.product_key || '',            merchantId: (item.merchant && typeof item.merchant === 'object') ? item.merchant.id || '' : '',            matchId: item.match_id || '',            merchantNetwork: (item.merchant && typeof item.merchant === 'object') ? item.merchant.an || '' : '',            merchantUrl: (item.merchant && typeof item.merchant === 'object') ? item.merchant.url || '' : '',            modelBrand: item.model_brand || item.brand || '',            modelParent: item.model_parent || ''          };        }        sortData() {          const sortVal = this.sortSelect ? this.sortSelect.value : (this.getViewMode() === 'savings_squad' ? 'date_desc' : 'discount_desc');          if (sortVal === 'price_asc') {            this.deals.sort((a, b) => a.rawPrice - b.rawPrice);          } else if (sortVal === 'price_desc') {            this.deals.sort((a, b) => b.rawPrice - a.rawPrice);          } else if (sortVal === 'discount_desc') {            this.deals.sort((a, b) => {              const aDiscount = a.rawMsrp > a.rawPrice ? (a.rawMsrp - a.rawPrice) : 0;              const bDiscount = b.rawMsrp > b.rawPrice ? (b.rawMsrp - b.rawPrice) : 0;              return bDiscount - aDiscount;            });          } else if (sortVal === 'date_desc') {             this.deals.sort((a, b) => {                let dateA = 0;                let dateB = 0;                if (a && a.modifiedDate) {                   const valA = Array.isArray(a.modifiedDate) ? a.modifiedDate[0] : a.modifiedDate;                   dateA = new Date(valA).getTime();                   if (isNaN(dateA)) dateA = 0;                }                if (b && b.modifiedDate) {                   const valB = Array.isArray(b.modifiedDate) ? b.modifiedDate[0] : b.modifiedDate;                   dateB = new Date(valB).getTime();                   if (isNaN(dateB)) dateB = 0;                }                return dateB - dateA;             });          }        }        getFilteredDeals() {          let filteredDeals = [...this.deals];                    if (this.dealModeToggle && this.dealModeToggle.checked) {            filteredDeals = filteredDeals.filter(d => d.hasWasPrice || (d.msrp && d.rawMsrp > d.rawPrice));          }                    return filteredDeals;        }        showLoading() {          const _div = '<' + '/div>';          const skeletonCardHtml = `            \x3Cdiv class="tg-df-card">              \x3Cdiv class="tg-df-card-image-box">                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-img">${_div}              ${_div}              \x3Cdiv class="tg-df-card-body">                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short">${_div}                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text title">${_div}                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text title">${_div}                \x3Cdiv class="tg-df-card-footer mt-auto">                  \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="height:24px;">${_div}                  \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text" style="height:44px; margin-top:8px;">${_div}                ${_div}              ${_div}            ${_div}`;          this.grid.innerHTML = Array(4).fill(skeletonCardHtml).join('');        }        showError() {          const _div = '<' + '/div>';          this.grid.innerHTML = `\x3Cdiv class="tg-df-message">            An error occurred while finding deals. Please check your connection and try again.          ${_div}`;        }        escapeHTML(str) {          if (!str) return '';          return String(str).replace(/[&<>'"]/g, tag => ({              '&': '&', '<': '<', '>': '>', "'": ''', '"': '"'          }[tag] || tag));        }                bindCouponButtons() {          const btns = this.root.querySelectorAll('.tg-df-tag-coupons');          btns.forEach(btn => {            btn.addEventListener('click', (e) => {              e.preventDefault();              e.stopPropagation();              const merchant = btn.getAttribute('data-merchant');              this.openVouchersModal(merchant);            });          });                    const closeBtn = this.root.querySelector('#tg-df-vouchers-close');          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          if (closeBtn) {            closeBtn.onclick = () => this.closeVouchersModal();          }          if (backdrop) {            backdrop.onclick = (e) => {              if (e.target === backdrop) this.closeVouchersModal();            };          }        }                closeVouchersModal() {          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          if (backdrop) backdrop.classList.remove('active');        }                async checkMerchantsCouponsBulk(merchants) {          if (!merchants || merchants.length === 0) return {};          const controller = new AbortController();          const timeoutId = setTimeout(() => controller.abort(), 4000);          try {            const area = this.getAreaCode();            const url = new URL('https://search-api.fie.future.net.uk/widget.php');            url.searchParams.append('model_name', 'Everything');            url.searchParams.append('language', 'en-GB');            if (area) url.searchParams.append('area', area);            url.searchParams.append('combine_product_types', '1');            url.searchParams.append('filter_merchant_name', merchants.join(','));            url.searchParams.append('all_filters', 'false');            url.searchParams.append('exclude_unlabelled', 'false');            url.searchParams.append('include_specs', 'false');            url.searchParams.append('sort', 'voucher');            url.searchParams.append('distinct_merchants', 'natural');            url.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');            url.searchParams.append('rows', '120');            url.searchParams.append('origin', 'widgets-clientside');                        let res; try { res = await fetch(url.toString(), { signal: controller.signal }); } catch (e) { return {}; }            clearTimeout(timeoutId);            if (!res.ok) return {};            const data = await res.json();                        let offers = [];            if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {              offers = data.widget.data.offers;            } else if (data && data.data && Array.isArray(data.data.offers)) {              offers = data.data.offers;            } else if (Array.isArray(data)) {              offers = data;            } else if (data && Array.isArray(data.offers)) {              offers = data.offers;            } else if (data && data.offers && Array.isArray(data.offers.offer)) {              offers = data.offers.offer;            } else if (data && Array.isArray(data.data)) {              offers = data.data;            }                        const foundMerchants = new Set();            offers.forEach(o => {              let mName = o.merchant_name || o.merchant || o.retailer;              if (mName && typeof mName === 'object') mName = mName.name;              if (mName) foundMerchants.add(String(mName).toLowerCase());            });            const resultMap = {};            merchants.forEach(m => {              if (m) resultMap[m] = foundMerchants.has(String(m).toLowerCase());            });            return resultMap;          } catch (e) {            return {};          }        }                async openVouchersModal(merchantName) {          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          const title = this.root.querySelector('#tg-df-vouchers-title');          const content = this.root.querySelector('#tg-df-vouchers-content');                    if (!backdrop || !content) return;                    // HACK: Hide closing tags          const _div = '<' + '/div>';          const _span = '<' + '/span>';          const _a = '<' + '/a>';          const _h4 = '<' + '/h4>';          const _svg = '<' + '/svg>';          const _circle = '<' + '/circle>';          const _polyline = '<' + '/polyline>';          const _rect = '<' + '/rect>';          const _path = '<' + '/path>';                    title.innerText = `${merchantName} Coupons & Deals`;          content.innerHTML = `\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text">${_div}                               \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text">${_div}`;          backdrop.classList.add('active');                    try {            const area = this.getAreaCode();            const url = new URL('https://search-api.fie.future.net.uk/widget.php');            url.searchParams.append('model_name', 'Everything');            url.searchParams.append('language', 'en-GB');            if (area) url.searchParams.append('area', area);            url.searchParams.append('combine_product_types', '1');            url.searchParams.append('filter_merchant_name', merchantName);            url.searchParams.append('all_filters', 'false');            url.searchParams.append('exclude_unlabelled', 'false');            url.searchParams.append('include_specs', 'false');            url.searchParams.append('sort', 'voucher');            url.searchParams.append('distinct_merchants', 'natural');            url.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');            url.searchParams.append('rows', '50');            url.searchParams.append('origin', 'widgets-clientside');                        const res = await fetch(url.toString());            if (!res.ok) throw new Error('API Error');            const data = await res.json();                        let offers = [];            if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {              offers = data.widget.data.offers;            } else if (data && data.data && Array.isArray(data.data.offers)) {              offers = data.data.offers;            } else if (Array.isArray(data)) {              offers = data;            } else if (data && Array.isArray(data.offers)) {              offers = data.offers;            } else if (data && data.offers && Array.isArray(data.offers.offer)) {              offers = data.offers.offer;            } else if (data && Array.isArray(data.data)) {              offers = data.data;            }                        if (offers.length === 0) {              content.innerHTML = `\x3Cdiv class="tg-df-message">No vouchers currently available for ${this.escapeHTML(merchantName)}.${_div}`;              return;            }                        content.innerHTML = offers.map((v, idx) => {              let offerObj = v;              if (v.offers && v.offers.offer) {                offerObj = Array.isArray(v.offers.offer) ? v.offers.offer[0] : v.offers.offer;              } else if (v.offer) {                offerObj = Array.isArray(v.offer) ? v.offer[0] : v.offer;              }              let logoUrl = v.logo_url || offerObj.logo_url || '';              if (!logoUrl && v.merchant) {                if (Array.isArray(v.merchant) && v.merchant.length > 0) logoUrl = v.merchant[0].logo_url || '';                else logoUrl = v.merchant.logo_url || '';              }                            const offerName = offerObj.name || offerObj.title || v.name || v.title || 'Special Offer';              const endTime = offerObj.end_time || v.end_time || '';              const linkUrl = offerObj.link || offerObj.url || v.link || v.url || '#';                            let foundVoucherCode = '';              const findVoucherCode = (obj) => {                if (!obj || typeof obj !== 'object') return;                if (obj.type === 'voucher_code' && obj.display_value) {                  foundVoucherCode = obj.display_value;                  return;                }                if (Array.isArray(obj)) {                  for (const item of obj) {                    findVoucherCode(item);                    if (foundVoucherCode) return;                  }                } else {                  for (const k in obj) {                    if (Object.prototype.hasOwnProperty.call(obj, k)) {                      findVoucherCode(obj[k]);                      if (foundVoucherCode) return;                    }                  }                }              };              findVoucherCode(offerObj);              if (!foundVoucherCode) findVoucherCode(v);                            const voucherCode = foundVoucherCode || offerObj.voucher_code || v.voucher_code || '';              const codeHtml = voucherCode ? `\x3Cspan class="tg-df-voucher-code" data-action="copy-code" data-code="${this.escapeHTML(voucherCode)}" title="Copy to clipboard">                \x3Cspan class="tg-df-voucher-code-text">${this.escapeHTML(voucherCode)}${_span}                \x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-left:6px;flex-shrink:0;" class="tg-df-voucher-copy-icon">                  \x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2">${_rect}                  \x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1">${_path}                ${_svg}              ${_span}` : '';                            const logoHtml = logoUrl                 ? `\x3Cimg src="${this.escapeHTML(logoUrl)}" alt="${this.escapeHTML(offerName)}" class="tg-df-voucher-logo" />`                 : `\x3Cdiv class="tg-df-voucher-logo" style="background:#e2e8f0;">${_div}`;                            let expiryHtml = '';              if (endTime) {                let dStr = endTime;                if (!isNaN(dStr) && String(dStr).length === 10) dStr = Number(dStr) * 1000;                const d = new Date(dStr);                if (!isNaN(d.getTime())) {                  const options = { year: 'numeric', month: 'short', day: 'numeric' };                  expiryHtml = `                    \x3Cdiv class="tg-df-voucher-expiry">                      \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">                        \x3Ccircle cx="12" cy="12" r="10">${_circle}                        \x3Cpolyline points="12 6 12 12 16 14">${_polyline}                      ${_svg}                      Expires ${d.toLocaleDateString(undefined, options)}                    ${_div}`;                }              }              const revenueIdVal = generateRevenueId(linkUrl, offerName, merchantName, null);              const rewrittenLinkUrl = rewriteAffiliateLink(linkUrl, area, revenueIdVal);              return `                \x3Ca href="${this.escapeHTML(rewrittenLinkUrl)}" target="_blank" rel="noopener nofollow" class="tg-df-voucher-item"                  data-action="voucher-click"                  data-product-name="${this.escapeHTML(offerName)}"                  data-merchant-name="${this.escapeHTML(merchantName)}"                  data-analytics-id="${this.escapeHTML(offerObj.offer_id || offerObj.id || v.id || '')}"                  data-price=""                  data-previous-price=""                  data-original-link="${this.escapeHTML(linkUrl)}"                  data-revenue-id="${revenueIdVal}"                  data-index="${idx}"                  data-total="${offers.length}"                  data-in-stock="true"                  data-currency="USD"                  data-model-id="${this.escapeHTML(offerObj.model_id || v.model_id || offerObj.id || v.id || '')}"                  data-merchant-id="${this.escapeHTML(offerObj.merchant_id || offerObj.merchant?.id || '')}"                >                  ${logoHtml}                  \x3Cdiv class="tg-df-voucher-content">                    \x3Ch4 class="tg-df-voucher-title">${this.escapeHTML(offerName)}${_h4}                    ${codeHtml}                    ${expiryHtml}                  ${_div}                ${_a}              `;            }).join('');                        // Attach copy functionality            const copyBtns = content.querySelectorAll('[data-action="copy-code"]');            copyBtns.forEach(btn => {              btn.addEventListener('click', async (e) => {                e.preventDefault();                e.stopPropagation();                                const code = btn.getAttribute('data-code');                if (!code) return;                                try {                  const copyToClipboard = async (text) => {                     if (window.navigator.clipboard && window.isSecureContext) {                        try { await window.navigator.clipboard.writeText(text); return; } catch (e) {}                     }                     const textArea = document.createElement("textarea");                     textArea.value = text;                     textArea.style.position = "fixed";                     document.body.appendChild(textArea);                     textArea.focus();                     textArea.select();                     document.execCommand('copy');                     textArea.remove();                  };                  await copyToClipboard(code);                                    // Visual feedback                  btn.classList.add('copied');                  const textSpan = btn.querySelector('.tg-df-voucher-code-text');                  const iconSvg = btn.querySelector('.tg-df-voucher-copy-icon');                                    const origText = textSpan.innerText;                  const origIcon = iconSvg.innerHTML;                                    textSpan.innerText = 'Copied!';                  iconSvg.innerHTML = `\x3Cpolyline points="20 6 9 17 4 12">${_polyline}`;                                    setTimeout(() => {                    if (btn) {                      btn.classList.remove('copied');                      if (textSpan) textSpan.innerText = origText;                      if (iconSvg) iconSvg.innerHTML = origIcon;                    }                  }, 2000);                                    trackElementInteraction({                    id: 'voucher-code-copy',                    name: 'Copy Voucher Code',                    label: `Copied ${code} for ${merchantName}`                  });                } catch (err) {                  console.warn('Failed to copy text: ', err);                }              });            });            // Attach voucher click tracking            const voucherBtns = content.querySelectorAll('[data-action="voucher-click"]');            voucherBtns.forEach(btn => {              btn.addEventListener('click', (e) => {                if (e.target.closest('[data-action="copy-code"]')) return;                                const productName = btn.getAttribute('data-product-name');                const merchantNameAttr = btn.getAttribute('data-merchant-name');                const productId = btn.getAttribute('data-analytics-id');                const price = parseFloat(btn.getAttribute('data-price')) || null;                const prevPriceStr = btn.getAttribute('data-previous-price');                const previousPrice = prevPriceStr ? parseFloat(prevPriceStr) : null;                const originalLink = btn.getAttribute('data-original-link');                const rewrittenLink = btn.getAttribute('href');                const revenueId = btn.getAttribute('data-revenue-id');                const index = parseInt(btn.getAttribute('data-index'), 10) || 0;                const inStock = btn.getAttribute('data-in-stock') === 'true';                const totalText = btn.getAttribute('data-total');                const totalDeals = parseInt(totalText, 10) || 0;                const productCategoryName = 'deals';                const trackingParams = {                  widgetId: this.widgetId,                  productCategoryName: productCategoryName,                  product: {                    modelId: btn.getAttribute('data-model-id') || null,                    matchId: btn.getAttribute('data-match-id') || null,                    brand: btn.getAttribute('data-model-brand') || null,                    parent: btn.getAttribute('data-model-parent') || null,                    name: productName,                    price: price,                    previousPrice: previousPrice,                    link: rewrittenLink,                    originalLink: originalLink,                    inStock: inStock                  },                  zeroBasedProductIndexOrNull: index,                  totalDealsOrProducts: totalDeals,                   merchant: {                    id: btn.getAttribute('data-merchant-id') || null,                    network: btn.getAttribute('data-merchant-network') || null,                    url: btn.getAttribute('data-merchant-url') || null,                    name: merchantNameAttr                  },                  revenueId: revenueId,                  widgetTypeName: this.widgetTypeName,                  isoCurrencyCode: btn.getAttribute('data-currency') || 'USD'                };                if (typeof trackDealClick === 'function') {                  trackDealClick(trackingParams);                }              });            });                                  } catch (e) {            console.warn(e);            content.innerHTML = `\x3Cdiv class="tg-df-message">Failed to load vouchers.${_div}`;          }        }        render() {          try {            if (this.getViewMode() === 'savings_squad' && this.airedaleTags.length > 0) {              if (this.categoryFilterWrapper) {                 this.categoryFilterWrapper.style.display = 'flex';              }              if (this.categoryFilter) {                 const _option = '<' + '/option>';                 let optionsHtml = `\x3Coption value="all">All Categories${_option}`;                 this.airedaleTags.forEach(tag => {                    const isSelected = this.activeDealTag === tag ? 'selected' : '';                    optionsHtml += `\x3Coption value="${this.escapeHTML(tag)}" ${isSelected}>${this.escapeHTML(tag)} (${this.airedaleTagCounts[tag] || 0})${_option}`;                 });                 this.categoryFilter.innerHTML = optionsHtml;                 this.categoryFilter.value = this.activeDealTag || 'all';              }            } else {               if (this.categoryFilterWrapper) {                  this.categoryFilterWrapper.style.display = 'none';               }            }            const displayDeals = this.getFilteredDeals();          // HACK: Hide closing tags from the CMS HTML sanitizer so it doesn't strip them during in-page injection          const _div = '<' + '/div>';          const _span = '<' + '/span>';          const _a = '<' + '/a>';          const _h3 = '<' + '/h3>';          const _p = '<' + '/p>';          const _strong = '<' + '/strong>';          const _sup = '<' + '/sup>';          const _button = '<' + '/button>';          if (displayDeals.length === 0) {            if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {              if (this.deals.length > 0) {                 this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                  No deals match your selected filters.                ${_div}`;              } else if (this.getViewMode() === 'savings_squad' && this.currentQuery.length <= 2) {                 // Do not show "no exact matches" if query is empty for savings_squad                 this.grid.innerHTML = '';              } else {                 this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                  No exact matches found for "\x3Cstrong>${this.escapeHTML(this.currentQuery)}${_strong}". Try adjusting your search term.                ${_div}`;              }            } else {              this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                Search product or category names to discover the best deals from across the web.              ${_div}`;            }            return;          }          let dealsHtml = displayDeals.slice(0, this.displayLimit).map((deal, index) => {            try {               const currencySym = this.escapeHTML(deal.currency);               const isoCurrencyCode = normalizeCurrency(currencySym);               const escapedPrice = this.escapeHTML(deal.price);               const escapedMsrp = this.escapeHTML(deal.msrp);               const areaCode = this.getAreaCode();                              const revenueId = generateRevenueId(deal.url, deal.title, deal.merchant, null);               const originalLink = deal.url;               const rewrittenLink = rewriteAffiliateLink(deal.url, areaCode, revenueId);                        const productCategoryName = 'deals';            const dataAttr = `              data-action="${deal.isCheckPrice ? 'view-similar-click' : 'deal-click'}"              data-analytics-id="${this.escapeHTML(deal.externalProductId || deal.id || '')}"              data-product-name="${this.escapeHTML(deal.title)}"              data-merchant-name="${this.escapeHTML(deal.merchant)}"              data-price="${deal.rawPrice || ''}"              data-previous-price="${deal.rawMsrp || ''}"              data-original-link="${this.escapeHTML(originalLink)}"              data-revenue-id="${revenueId}"              data-index="${index}"              data-total="${displayDeals.length}"              data-in-stock="${deal.inStock !== false}"              data-currency="${this.escapeHTML(isoCurrencyCode)}"              data-model-id="${this.escapeHTML(deal.modelId || '')}"              data-product-key="${this.escapeHTML(deal.productKey || '')}"              data-merchant-id="${this.escapeHTML(deal.merchantId || '')}"            `;                        let priceGroupHtml = '';            let isSavingsSquadMode = this.getViewMode() === 'savings_squad';            let ctaText = 'View Deal';            let formattedPrice = '';            let msrpHtml = '';                        if (deal.isCheckPrice) {              ctaText = isSavingsSquadMode ? 'View Deal' : 'Check Price';              if (isSavingsSquadMode) {                priceGroupHtml = `                  \x3Cdiv class="tg-df-card-merchant-wrapper">                    \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                  ${_div}                  \x3Cdiv class="tg-df-card-price-group">                  ${_div}                `;              } else {                priceGroupHtml = `                  \x3Cdiv class="tg-df-card-merchant-wrapper">                    \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                  ${_div}                  \x3Cdiv class="tg-df-card-price-group">                    \x3Cspan class="tg-df-card-price" style="font-size: 15px; font-weight: 500; font-style: italic;">See price at retailer${_span}                  ${_div}                `;              }            } else {              // Format Price              formattedPrice = escapedPrice.includes(currencySym)                 ? escapedPrice                 : `${currencySym}${escapedPrice}`;                              // Format MSRP              msrpHtml = deal.msrp && deal.rawMsrp > deal.rawPrice                ? `\x3Cspan class="tg-df-card-msrp">${escapedMsrp.includes(currencySym) ? escapedMsrp : currencySym + escapedMsrp}${_span}`                : '';                              priceGroupHtml = `                \x3Cdiv class="tg-df-card-merchant-wrapper">                  \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                ${_div}                \x3Cdiv class="tg-df-card-price-group">                  ${isSavingsSquadMode ? '' : `                  \x3Cspan class="tg-df-card-price">${formattedPrice}${_span}                  ${msrpHtml}                  `}                ${_div}              `;            }                        const discountBadgeHtml = deal.savingLabel && !deal.isCheckPrice              ? `\x3Cspan class="tg-df-card-discount-badge">${this.escapeHTML(deal.savingLabel)}${_span}`              : '';                          // HACK for CMS            const _button = '<' + '/button>';            const _svg = '<' + '/svg>';            const _path = '<' + '/path>';            const _rect = '<' + '/rect>';            const _circle = '<' + '/circle>';            const _polyline = '<' + '/polyline>';            const _line = '<' + '/line>';                        let badgesHtml = '';            const primeBadge = deal.isPrime ? `              \x3Cspan class="tg-df-tag tg-df-tag-prime">                \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="currentColor">                  \x3Cpath d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z">${_path}                ${_svg} Prime              ${_span}            ` : '';                        const couponsBadge = deal.merchant && deal.merchant.toLowerCase().includes('amazon') ? '' : `              \x3Cdiv class="tg-df-coupon-wrapper" data-merchant="${this.escapeHTML(deal.merchant)}" style="display:inline-flex; align-items:center;">                \x3Cdiv class="tg-df-coupon-spinner">${_div}                \x3Cbutton type="button" class="tg-df-tag tg-df-tag-coupons" data-action="coupons-click" data-merchant="${this.escapeHTML(deal.merchant)}" style="display:none;">                  \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">                    \x3Cpath d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z">${_path}                    \x3Cline x1="7" y1="7" x2="7.01" y2="7">${_line}                  ${_svg} Coupons                ${_button}              ${_div}            `;                        // Note: We always add coupons badge if there's a chance, but to allow 3-line titles we check wrapper display state            badgesHtml = `              \x3Cdiv class="tg-df-card-badges">                ${primeBadge}                ${couponsBadge}              ${_div}            `;            const _linearGradient = '<' + '/linearGradient>';            const _polygon = '<' + '/polygon>';            const _stop = '<' + '/stop>';            const _defs = '<' + '/defs>';                        let starHtml = '';            if (deal.starRating) {              let rating = deal.starRating;                            if (rating > 0) {                const fullStars = Math.floor(rating);                const halfStar = (rating - fullStars) >= 0.5 ? 1 : 0;                const emptyStars = Math.max(0, 5 - fullStars - halfStar);                const blue = '#1f69ff'; // Tom's guide brand color from VIEW DEAL button                const gray = '#cbd5e1';                                const starSvgFull = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="${blue}" stroke="${blue}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26">${_polygon}${_svg}`;                                const gradId = 'half_grad_' + Math.floor(Math.random()*1000000);                const starSvgHalf = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" stroke="${blue}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cdefs>\x3ClinearGradient id="${gradId}" x1="0" x2="1" y1="0" y2="0">\x3Cstop offset="50%" stop-color="${blue}">${_stop}\x3Cstop offset="50%" stop-color="transparent">${_stop}${_linearGradient}${_defs}                  \x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26" fill="url(#${gradId})">${_polygon}${_svg}`;                                  const starSvgEmpty = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="${gray}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26">${_polygon}${_svg}`;                                let stars = [];                for (let i=0; i<fullStars; i++) stars.push(starSvgFull);                if (halfStar) stars.push(starSvgHalf);                for (let i=0; i<emptyStars; i++) stars.push(starSvgEmpty);                                starHtml = `\x3Cdiv class="tg-df-card-stars" style="display:flex;align-items:center;margin-bottom:8px;font-size:13px;font-weight:600;color:var(--tg-df-text-muted);">                  \x3Cspan style="margin-right:6px;">Tom's Guide:${_span}                  \x3Cdiv style="display:flex;gap:2px;">                    ${stars.join('')}                  ${_div}                ${_div}`;              }            }            let htmlOutput = '';            if (isSavingsSquadMode) {              htmlOutput += `              \x3Cdiv class="hawk-deal-widget-container tg-df-mobile-only" data-collapsible="true">                ${this.editorMode ? `\x3Cinput type="checkbox" class="tg-df-deal-checkbox" data-id="${this.escapeHTML(deal.id)}" ${this.selectedDeals.has(deal.id) ? 'checked' : ''} style="margin-bottom: 10px;">` : ''}                \x3Cdiv class="hawk-deal-widget-wrap">                  \x3Cdiv class="hawk-deal-widget-image-container">                    \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" rel="sponsored noopener" target="_blank" class="hawk-affiliate-link-deal-widget" ${dataAttr}>                      \x3Cimg ${deal.image ? `src="${this.escapeHTML(deal.image)}"` : ''} alt="${this.escapeHTML(deal.title)}" class="hawk-lazy-image-deal-widget" loading="lazy" width="140" height="160" onerror="${deal.fallbackImage ? `if(!this.dataset.fb) { this.dataset.fb='1'; this.src='${this.escapeHTML(deal.fallbackImage)}'; } else { this.style.opacity='0'; }` : `this.style.opacity='0';`}">                    ${_a}                  ${_div}                  \x3Cdiv class="hawk-deal-widget-text-cta-container">                    \x3Cdiv class="hawk-deal-widget-text-body-container">                      \x3Cdiv class="hawk-deal-widget-text-body-main">                        \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                          ${deal.isCheckPrice ? `                            \x3Cspan class="hawk-deal-widget-title-product-title">${this.escapeHTML(deal.title)}${_span}                          ` : `                            \x3Cspan class="hawk-deal-widget-title-product-title">${deal.brand ? this.escapeHTML(deal.brand) + ' ' : ''}${this.escapeHTML(deal.productName || deal.title || '')}:${_span}                          `}                        ${_a}                        ${!deal.isCheckPrice && deal.rawMsrp && deal.rawMsrp > deal.rawPrice ? `                          \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                            \x3Cspan class="hawk-deal-widget-title-was-price">was ${currencySym}${escapedMsrp}${_span}                          ${_a}                        ` : ''}                        \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                          \x3Cspan class="hawk-deal-widget-title-retailer-price">                            ${!deal.isCheckPrice ? `                              \x3Cspan class="hawk-deal-widget-title-price">now ${formattedPrice}${_span}                              \x3Cspan class="hawk-deal-widget-title-retailer"> at ${this.escapeHTML(deal.merchant)}${_span}                            ` : `                              \x3Cspan class="hawk-deal-widget-title-price">See price at ${this.escapeHTML(deal.merchant)}${_span}                            `}                          ${_span}                        ${_a}                        ${deal.description ? `\x3Cdiv class="hawk-deal-widget-text-body-description">\x3Cp>${this.escapeHTML(deal.description)}${_p}${_div}` : ''}                      ${_div}                    ${_div}                    \x3Cdiv class="hawk-deal-widget-footer">                      \x3Cdiv class="hawk-deal-widget-button-wrapper">                        \x3Cdiv class="hawk-deal-widget-preferred-partner-wrapper">                          \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-deal-button" rel="sponsored noopener" target="_blank" ${dataAttr}>                            \x3Cspan>${deal.isCheckPrice ? 'Check Price' : 'View Deal'}${_span}                          ${_a}                        ${_div}                      ${_div}                    ${_div}                  ${_div}                ${_div}              ${_div}              `;            }            htmlOutput += `              \x3Cdiv class="tg-df-card ${isSavingsSquadMode ? 'tg-df-desktop-only' : ''}">                ${this.editorMode ? `\x3Cinput type="checkbox" class="tg-df-deal-checkbox" data-id="${this.escapeHTML(deal.id)}" ${this.selectedDeals.has(deal.id) ? 'checked' : ''}>` : ''}                \x3Cdiv class="tg-df-card-image-box">                  ${discountBadgeHtml}                  \x3Ca href="${this.escapeHTML(rewrittenLink)}" ${dataAttr} target="_blank" rel="noopener nofollow" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;">                    \x3Cimg ${deal.image ? `src="${this.escapeHTML(deal.image)}"` : ''} alt="${this.escapeHTML(deal.title)}" class="tg-df-card-image" loading="lazy" onerror="${deal.fallbackImage ? `if(!this.dataset.fb) { this.dataset.fb='1'; this.src='${this.escapeHTML(deal.fallbackImage)}'; } else { this.style.opacity='0'; }` : `this.style.opacity='0';`}">                  ${_a}                ${_div}                \x3Cdiv class="tg-df-card-body">                  ${starHtml}                  ${badgesHtml}                  \x3Ch3 class="tg-df-card-title tg-df-custom-savings-squad-title" title="${this.escapeHTML(deal.title)}">                    \x3Ca href="${this.escapeHTML(rewrittenLink)}" disable-tracking="true" target="_blank" rel="noopener nofollow" style="text-decoration: none; color: inherit;">                      ${isSavingsSquadMode                         ? (deal.isCheckPrice                             ? (deal.title && deal.title.includes(':')                                 ? `\x3Cstrong>${this.escapeHTML(deal.title.substring(0, deal.title.indexOf(':') + 1))}${_strong}\x3Cspan style="color: #1f69ff; font-weight: normal;">${this.escapeHTML(deal.title.substring(deal.title.indexOf(':') + 1))}${_span}`                                : this.escapeHTML(deal.title)                              )                             : `\x3Cstrong>${deal.brand ? this.escapeHTML(deal.brand) + ' ' : ''}${this.escapeHTML(deal.productName || deal.title || '')}:${_strong} ${deal.rawMsrp && deal.rawMsrp > deal.rawPrice ? `\x3Cspan style="color: #d0021b; text-decoration: line-through; font-weight: normal; margin-right: 4px;">was ${currencySym}${escapedMsrp}${_span} ` : ''}\x3Cspan style="color: #1f69ff; font-weight: normal;">now ${formattedPrice} at ${this.escapeHTML(deal.merchant)}${_span}`                          )                        : this.escapeHTML(deal.title)                      }                    ${_a}                  ${_h3}                  ${deal.description ? `\x3Cp style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 12px; line-height: 1.4;">${this.escapeHTML(deal.description)}${_p}` : ''}                  \x3Cdiv class="tg-df-card-footer">                    ${priceGroupHtml}                    \x3Ca href="${this.escapeHTML(rewrittenLink)}" ${dataAttr} target="_blank" rel="noopener nofollow" class="tg-df-card-cta ${isSavingsSquadMode ? 'tg-df-cta-savings-squad' : ''}" style="text-decoration: none;">${ctaText}${_a}                  ${_div}                ${_div}              ${_div}            `;                        return htmlOutput;            } catch (e) {               console.log("Error rendering deal in map for index", index, typeof deal === 'object' ? JSON.stringify(deal) : deal, "MSG:", e.message);               return '';            }          }).join('');                    if (displayDeals.length > this.displayLimit || ((this.getViewMode() === 'carousel' || this.getViewMode() === 'auto') && displayDeals.length > 0 && displayDeals.length % ((this.rowsSelect && this.rowsSelect.value) ? parseInt(this.rowsSelect.value, 10) : 12) === 0)) {            if (this.getViewMode() === 'carousel') {               dealsHtml += `                 \x3Cbutton type="button" class="tg-df-load-more-card tg-df-load-more">                   \x3Csvg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-bottom: 8px;">\x3Cpath d="M5 12h14">\x3C/path>\x3Cpath d="m12 5 7 7-7 7">\x3C/path>\x3C/svg>                   Load More                 ${_button}               `;            } else {               dealsHtml += `                 \x3Cdiv style="width: 100%; display: flex; justify-content: center; margin-top: 16px; grid-column: 1 / -1;">                   \x3Cbutton type="button" class="tg-df-tag-outline tg-df-load-more" style="padding: 8px 24px; border-radius: 100px; font-weight: 600; font-size: 14px; cursor: pointer; display: flex; align-items: center;">Load More${_button}                 ${_div}               `;            }          }                    this.grid.innerHTML = dealsHtml;          // Inject JSON-LD          try {            let targetNode = this.hostContainer || document.head;            let jsonLdScript = targetNode.querySelector('#tg-df-json-ld-' + this.widgetId);            if (!jsonLdScript) {                jsonLdScript = document.createElement('script');                jsonLdScript.type = 'application/ld+json';                jsonLdScript.id = 'tg-df-json-ld-' + this.widgetId;                targetNode.appendChild(jsonLdScript);            }            const jsonLdData = {              "@context": "https://schema.org",              "@type": "ItemList",              "itemListElement": displayDeals.slice(0, this.displayLimit).map((deal, index) => {                 let isoCurrency = "USD";                 if (deal.currency === '£') isoCurrency = "GBP";                 else if (deal.currency === '€') isoCurrency = "EUR";                 else if (deal.currency === 'A$') isoCurrency = "AUD";                 else if (deal.currency === 'CA$') isoCurrency = "CAD";                 const areaCode = typeof this.getAreaCode === 'function' ? this.getAreaCode() : 'US';                 const revenueId = typeof generateRevenueId === 'function' ? generateRevenueId(deal.url, deal.title, deal.merchant, null) : '';                 const rewrittenLink = typeof rewriteAffiliateLink === 'function' ? rewriteAffiliateLink(deal.url, areaCode, revenueId) : deal.url;                 return {                   "@type": "ListItem",                   "position": index + 1,                   "item": {                     "@type": "Product",                     "name": deal.title,                     "image": deal.image || "",                     "description": deal.description || "",                     "brand": {                       "@type": "Brand",                       "name": deal.brand || ""                     },                     "offers": {                       "@type": "Offer",                       "priceCurrency": isoCurrency,                       "price": deal.rawPrice || 0,                       "url": rewrittenLink,                       "seller": {                         "@type": "Organization",                         "name": deal.merchant || ""                       }                     }                   }                 };              }).filter(item => item.item.name)            };            jsonLdScript.textContent = JSON.stringify(jsonLdData);          } catch(e) { console.warn("JSON-LD generation failed", e); }                    let gridWrapper = this.grid.parentElement;          if (gridWrapper && gridWrapper.classList.contains('tg-df-grid-wrapper')) {             let rightChevron = gridWrapper.querySelector('.tg-df-carousel-scroll-right');             let leftChevron = gridWrapper.querySelector('.tg-df-carousel-scroll-left');             if (this.getViewMode() === 'carousel') {                 // The observer set up in setupScrollListeners handles visibility.                 if (rightChevron) rightChevron.style.display = 'flex';                 if (leftChevron) leftChevron.style.display = 'none'; // reset correctly             } else {                 if (rightChevron) rightChevron.style.display = 'none';                 if (leftChevron) leftChevron.style.display = 'none';             }          }                    const loadMoreBtn = this.grid.querySelector('.tg-df-load-more');          if (loadMoreBtn) {            loadMoreBtn.addEventListener('click', async () => {              if (typeof trackElementInteraction === 'function') {                trackElementInteraction({ id: 'load-more', name: 'Load more', label: 'Load More Results' });              }              if (displayDeals.length <= this.displayLimit) {                 loadMoreBtn.innerHTML = `                  <svg class="tg-df-spinner" style="width: 16px; height: 16px; display: inline-block; vertical-align: middle; margin-right: 8px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" d="M12 2v4m0 12v4M4.93 4.93l2.83 2.83m8.48 8.48l2.83 2.83M2 12h4m12 0h4M4.93 19.07l2.83-2.83m8.48-8.48l2.83-2.83"/></svg>                  Loading...                 `;                 loadMoreBtn.disabled = true;                 await this.fetchDeals(this.currentQuery, true);              } else {                 this.displayLimit += this.getRowsLimit();                 this.render();              }            });          }                      this.bindCouponButtons();            this.checkAndUpdateCoupons();                        // Allow hawklinks.js to discover and rewrite our widget links             // by appending the .article-body class and manually triggering processArticle.            let container = this.root.classList.contains('tg-df-container') ? this.root : this.root.querySelector('.tg-df-container');            if (container && !container.classList.contains('article-body')) {               container.classList.add('article-body');            }            setTimeout(() => {               if (this.grid && !this.grid.classList.contains('article-body')) this.grid.classList.add('article-body');               document.dispatchEvent(new CustomEvent('processArticle', { detail: { element: this.root } }));            }, 50);          } catch(e) {            console.warn("Widget render error", e);          }        }                async checkAndUpdateCoupons() {          const wrappers = Array.from(this.root.querySelectorAll('.tg-df-coupon-wrapper'));          if (wrappers.length === 0) return;                    const merchants = [...new Set(wrappers.map(w => w.getAttribute('data-merchant')).filter(Boolean))];          if (merchants.length === 0) return;          const couponResultsMap = await this.checkMerchantsCouponsBulk(merchants);                    for (const merchant of merchants) {            const hasCoupons = !!couponResultsMap[merchant];            const merchantWrappers = wrappers.filter(w => w.getAttribute('data-merchant') === merchant);            merchantWrappers.forEach(wrapper => {              const spinner = wrapper.querySelector('.tg-df-coupon-spinner');              const btn = wrapper.querySelector('.tg-df-tag-coupons');                            if (spinner) spinner.style.display = 'none';                            if (hasCoupons && btn) {                btn.style.display = 'inline-flex';              } else if (!hasCoupons) {                wrapper.style.display = 'none';              }            });          }        }        updateFloatingCopyBar() {          if (!this.editorBar || !this.editorSelectedCount) return;          if (this.editorMode && this.selectedDeals.size > 0) {            this.editorBar.style.display = 'flex';            this.editorSelectedCount.innerText = this.selectedDeals.size;          } else {            this.editorBar.style.display = 'none';          }        }        async copySelectedDealsToCMS() {           function htmlToSlate(htmlString) {              if (!htmlString) return [{ type: 'paragraph', children: [{ text: '' }] }];              let doc;              if (typeof window !== 'undefined' && window.DOMParser) {                 doc = new DOMParser().parseFromString(htmlString, 'text/html');              } else {                 doc = document.implementation.createHTMLDocument('');                 doc.body.innerHTML = htmlString;              }                            function parseNode(node, marks = {}) {                  if (node.nodeType === 3) {                      const text = node.textContent;                      if (!text) return null;                      return { text: text, ...marks };                  }                  if (node.nodeType === 1) {                      const tagName = node.tagName.toLowerCase();                      if (tagName === 'br') {                          return { type: 'line-break', children: [{ text: '' }] };                      }                      if (tagName === 'p') {                          let children = Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                          if (children.length === 0) children.push({ text: "" });                          return { type: 'paragraph', children };                      }                      if (tagName === 'strong' || tagName === 'b') {                          const newMarks = { ...marks, bold: true };                          return Array.from(node.childNodes).map(child => parseNode(child, newMarks)).flat().filter(Boolean);                      }                      if (tagName === 'em' || tagName === 'i') {                          const newMarks = { ...marks, italic: true };                          return Array.from(node.childNodes).map(child => parseNode(child, newMarks)).flat().filter(Boolean);                      }                      if (tagName === 'a') {                          const href = node.getAttribute('href') || '';                          let children = Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                          if (children.length === 0) children.push({ text: "" });                          return {                              type: 'link',                              url: href,                              isNoFollow: (node.getAttribute('rel') || '').includes('nofollow'),                              isSponsored: (node.getAttribute('rel') || '').includes('sponsored'),                              isOpenNewTab: node.getAttribute('target') === '_blank',                              isPreventDataRewrite: false,                              children: children                          };                      }                      return Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                  }                  return null;              }                            let blocksArray = [];              let currentParagraphChildren = [];              function flushParagraph() {                  if (currentParagraphChildren.length > 0) {                      blocksArray.push({ type: 'paragraph', children: currentParagraphChildren });                      currentParagraphChildren = [];                  }              }              Array.from(doc.body.childNodes).forEach(node => {                  const parsed = parseNode(node, {});                  const parsedItems = Array.isArray(parsed) ? parsed : (parsed ? [parsed] : []);                  parsedItems.forEach(item => {                      if (item.type === 'paragraph') {                          flushParagraph();                          blocksArray.push(item);                      } else {                          currentParagraphChildren.push(item);                      }                  });              });              flushParagraph();              if (blocksArray.length === 0) {                  blocksArray = [{ type: 'paragraph', children: [{ text: '' }] }];              }              return blocksArray;           }           const blocks = [];                      this.editorCopyBtn.innerHTML = '\x3Cspan class="tg-df-coupon-spinner" style="display:inline-block; margin-right:8px; border-top-color:#fff;">' + '<' + '/span> Copying...';           for (const deal of Array.from(this.selectedDeals.values())) {              const url = deal.url;              const merchant = deal.merchant;              const title = deal.title;              const image = deal.image;              const currentPrice = deal.currency + deal.rawPrice;              const wasPrice = deal.hasWasPrice && deal.rawMsrp > deal.rawPrice ? deal.currency + deal.rawMsrp : '';                            let couponsChildren = [];              try {                  const area = this.getAreaCode();                  const apiUrl = new URL('https://search-api.fie.future.net.uk/widget.php');                  apiUrl.searchParams.append('model_name', 'Everything');                  apiUrl.searchParams.append('language', 'en-GB');                  apiUrl.searchParams.append('area', area);                  apiUrl.searchParams.append('combine_product_types', '1');                  apiUrl.searchParams.append('filter_merchant_name', merchant);                  apiUrl.searchParams.append('all_filters', 'false');                  apiUrl.searchParams.append('exclude_unlabelled', 'false');                  apiUrl.searchParams.append('include_specs', 'false');                  apiUrl.searchParams.append('sort', 'voucher');                  apiUrl.searchParams.append('distinct_merchants', 'natural');                  apiUrl.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');                  apiUrl.searchParams.append('rows', '3');                  apiUrl.searchParams.append('origin', 'widgets-clientside');                                    let res; try { res = await fetch(apiUrl.toString()); } catch (e) { return; }                  if (res.ok) {                      const data = await res.json();                      let offers = [];                      if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {                        offers = data.widget.data.offers;                      } else if (data && data.data && Array.isArray(data.data.offers)) {                        offers = data.data.offers;                      }                                            if (offers.length > 0) {                          couponsChildren.push({ text: "Also check out these coupons: ", bold: true });                          offers.slice(0, 3).forEach((offer, idx) => {                              const actualOffer = offer.offer || offer;                              const offerName = actualOffer.name || actualOffer.title || offer.model_name || offer.title || offer.name || 'Coupon';                              const linkUrl = actualOffer.link || actualOffer.url || actualOffer.offer_link || '#';                              couponsChildren.push({ type: "line-break", children: [{ text: "" }] });                              couponsChildren.push({ text: "🎟️ " });                              couponsChildren.push({                                  type: "link",                                  url: linkUrl,                                  isNoFollow: true,                                  isSponsored: false,                                  isOpenNewTab: true,                                  isPreventDataRewrite: false,                                  children: [{ text: offerName, bold: true }]                              });                          });                      }                  }              } catch (err) {                  console.warn('Failed to fetch coupons for', merchant, err);              }              let descriptionValue = [];              if (deal.text) {                 descriptionValue = htmlToSlate(deal.text);              } else {                 const dealDescriptions = [                   `Don't miss out on this fantastic deal for the ${title}. It is currently available at ${merchant} for a highly competitive price.`,                   `We've spotted an excellent price drop on the ${title}. Grab it now at ${merchant} before it's gone.`,                   `The ${title} is currently seeing a generous discount over at ${merchant}. This is a perfect time to buy if you've been holding out.`,                   `If you're in the market for the ${title}, ${merchant} has just the deal for you.`,                   `Score the ${title} for less at ${merchant} right now. This is a rare chance to save big.`,                   `Upgrade your setup with the ${title}, now available at a stellar price via ${merchant}.`                 ];                 const randomDescription = dealDescriptions[Math.floor(Math.random() * dealDescriptions.length)];                 descriptionValue = [                    { type: "paragraph", children: [{ text: randomDescription }] }                 ];              }                            if (couponsChildren.length > 0) {                 let lastBlock = descriptionValue[descriptionValue.length - 1];                 if (lastBlock && lastBlock.type === 'paragraph') {                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children.push({ text: "Also check out these coupons: ", bold: true });                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children = lastBlock.children.concat(couponsChildren);                 } else {                     descriptionValue.push({                         type: "paragraph",                         children: [                             { type: "line-break", children: [{ text: "" }] },                             { type: "line-break", children: [{ text: "" }] },                             { text: "Also check out these coupons: ", bold: true },                             { type: "line-break", children: [{ text: "" }] },                             ...couponsChildren                         ]                     });                 }              }              function normalizeCurrencyToISO(symbol) {                const map = { '£': 'GBP', '$': 'USD', 'A$': 'AUD', 'CA$': 'CAD', '€': 'EUR' };                return map[symbol] || symbol;              }              const isoCurrency = normalizeCurrencyToISO(deal.currency);              blocks.push({                 id: (window.crypto && window.crypto.randomUUID) ? window.crypto.randomUUID() : 'cms-' + Date.now() + Math.random(),                 blockTypeName: "deal",                 excludeFrom: [],                 collapsible: false,                 props: {                    description: {                       value: descriptionValue,                       touched: false,                       validationMessage: ""                    },                    image: {                       value: {                          credit: [{ type: "paragraph", children: [{ text: merchant }] }],                          dateCreated: Date.now(),                          dateModified: Date.now(),                          distribution: [],                          fileSize: 0,                          height: 1000,                          id: deal.id,                          imageRights: "",                          src: image,                          name: title + ".jpg",                          tags: [],                          width: 1000                       },                       touched: false,                       validationMessage: ""                    },                    showDealButton: { value: true, touched: false, validationMessage: "" },                    isPreferredPartner: { value: false, touched: false, validationMessage: "" },                    linkHref: { value: url, touched: false, validationMessage: "" },                    linkLabel: { value: "", touched: false, validationMessage: "" },                    linkIsNoFollow: { value: true, touched: false, validationMessage: "" },                    linkIsSponsored: { value: false, touched: false, validationMessage: "" },                    linkIsOpenNewWindow: { value: true, touched: false, validationMessage: "" },                    customPromoFlags: { value: [], touched: false, validationMessage: "" },                    showStarDeal: { value: false, touched: false, validationMessage: "" },                    savingType: { value: "none", touched: false, validationMessage: "" },                    starDealPromoFlag: { value: "", touched: false, validationMessage: "" },                    showEditorsChoice: { value: false, touched: false, validationMessage: "" },                    editorsChoiceTitle: { value: "", touched: false, validationMessage: "" },                    hawkPriceCurrency: { value: { value: isoCurrency, label: isoCurrency }, touched: false, validationMessage: "" },                    hawkPrice: { value: deal.hasWasPrice ? String(deal.rawMsrp) : String(deal.rawPrice), touched: false, validationMessage: "" },                    hawkSalePrice: { value: String(deal.rawPrice), touched: false, validationMessage: "" },                    lastCheckedPriceDate: { value: "", touched: false, validationMessage: "" },                    hawkModel: { touched: false, validationMessage: "" },                    productId: { value: "", touched: false, validationMessage: "" },                    voucherId: { value: "", touched: false, validationMessage: "" },                    brand: { value: deal.brand || merchant, touched: false, validationMessage: "" },                    productName: { value: title, touched: false, validationMessage: "" },                    label: { value: "", touched: false, validationMessage: "" },                    retailer: { value: merchant, touched: false, validationMessage: "" },                    priceCheckError: false                 },                 failedFetchError: ""              });           }           const payload = {              type: "articleBuilderPages",              data: blocks           };           const jsonStr = JSON.stringify(payload);                      if (navigator.clipboard && navigator.clipboard.writeText) {              navigator.clipboard.writeText(jsonStr).then(() => {                 this.editorCopyBtn.innerHTML = 'Copied!';                 setTimeout(() => {                    this.editorCopyBtn.innerHTML = '\x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2"><' + '/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"><' + '/path><' + '/svg> Copy to CMS';                 }, 2000);              }).catch(err => {                 console.warn('Failed to copy text: ', err);                 alert('Failed to copy deals to clipboard. See console.');              });           } else {              // Fallback              const textArea = document.createElement("textarea");              textArea.value = jsonStr;              document.body.appendChild(textArea);              textArea.focus();              textArea.select();              try {                 document.execCommand('copy');                 this.editorCopyBtn.innerHTML = 'Copied!';                 setTimeout(() => {                    this.editorCopyBtn.innerHTML = '\x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2"><' + '/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"><' + '/path><' + '/svg> Copy to CMS';                 }, 2000);              } catch (err) {                 console.warn('Fallback: Oops, unable to copy', err);                 alert('Fallback: Failed to copy deals to clipboard.');              }              document.body.removeChild(textArea);           }        }      }      // Initialize the Widget      if (document.readyState === 'loading') {        document.addEventListener('DOMContentLoaded', () => new DealsFinderWidget({ rootId: 'signal-deals-finder-root', rootNode: shadowRoot, hostContainer: hostContainer }));      } else {        new DealsFinderWidget({ rootId: 'signal-deals-finder-root', rootNode: shadowRoot, hostContainer: hostContainer });      }    })();  </script></div> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/windows-operating-systems/i-spoke-to-the-microsoft-pm-rebuilding-windows-11-for-nvidia-rtx-spark-the-radical-reinvention-building-the-first-true-macbook-pro-threat</link>
                                                                            <description>
                            <![CDATA[ “Half of Santa Clara was jumping.” An exclusive interview with Microsoft on rebuilding Windows 11 from the ground up for Nvidia’s RTX Spark silicon. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">hT9VZpkvYjuDisFYQM8J85</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/Zfe8UdFvFggCuPBwkQ8ZZ4-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 07 Sep 2026 08:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Windows Operating Systems]]></category>
                                                    <category><![CDATA[Laptops]]></category>
                                                    <category><![CDATA[Computing Peripherals]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                                                                                    <dc:creator><![CDATA[ Jason England ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/v4fSq5U4uZUEtGY2BwNuJ6.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Jason brings a decade of tech and gaming journalism experience to his role as a Managing Editor of Computing at Tom&#039;s Guide. He has previously written for Laptop Mag, Tom&#039;s Hardware, Kotaku, Stuff and BBC Science Focus. In his spare time, you&#039;ll find Jason looking for good dogs to pet or thinking about eating pizza if he isn&#039;t already.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/Zfe8UdFvFggCuPBwkQ8ZZ4-1280-80.jpg">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Nvidia RTX Spark]]></media:description>                                                            <media:text><![CDATA[Nvidia RTX Spark]]></media:text>
                                <media:title type="plain"><![CDATA[Nvidia RTX Spark]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/Zfe8UdFvFggCuPBwkQ8ZZ4-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>For eight grueling months leading up to the end of last year, engineers from Microsoft and Nvidia worked side by side from the silicon bootstrap level upward. And the goal? Making Windows 11 play nice with an unprecedented architectural shift: an Arm-based CPU sharing massive unified memory with a desktop-class Nvidia RTX GPU.</p><p>And then, the first <a href="https://www.tomsguide.com/computing/laptops/nvidias-rtx-spark-n1x-drops-this-october-why-apple-silicon-should-be-terrified-and-our-price-predictions">RTX Spark</a> machine finally booted. The red LED lit up, and as Microsoft's Principal Product Manager, Peter Dawoud, recalls it: “half of Santa Clara was jumping.” This was a huge undertaking, but now the real work begins: fine-tuning everything.</p><p>RTX Spark isn’t just another laptop sticker; it pushed Microsoft to fundamentally overhaul five foundational subsystems inside Windows 11 to bridge the gap between low-power Arm efficiency, top-tier AAA gaming, and local agentic AI.</p><p>I spoke to Dawoud about the software underpinning Team Green’s hardware because, as he said, “Windows kind of had to get all these subsystems right all at the same time, so that you can enjoy an RTX Spark device and take the most advantage out of it.”</p><h2 id="a-prism-emulator-overhaul">A Prism Emulator overhaul</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="oWfTLRd5NPjKy6jDQeEsq4" name="Nvidia RTX Spark" alt="Nvidia RTX Spark" src="https://cdn.mos.cms.futurecdn.net/oWfTLRd5NPjKy6jDQeEsq4.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Take it from someone who has watched the many attempts to run Windows on ARM chips (and covered the Snapdragon X Elite launch): emulation has always had an Achilles’ heel when it comes to gaming: micro-stuttering and frame pacing.</p><p>“When you're playing video games, it's not just about your average FPS. 1% lows, stuttering is really critical, and your CPU actually plays a very big role in stuttering control,” Dawoud explained.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="VPJcvprGffc9FfD2cHiytJ" name="Nvidia RTX Spark" alt="Nvidia RTX Spark" src="https://cdn.mos.cms.futurecdn.net/VPJcvprGffc9FfD2cHiytJ.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>While average frame rates look acceptable, CPU timing can get erratic when you try to emulate a game and play it at the same time, which can make fast-paced gaming feel jerky. When somebody buys an Nvidia laptop in October, the chances are likely that they will want to play games on it — it’s an RTX GPU after all.</p><p>So work needed to be done, and Microsoft has overhauled the Prism emulation layer for RTX Spark’s pipelines. By shoring up how tasks are assigned to each of the CPU’s threads, frame rates are much more stable in my testing, and the improvement over past versions is night and day.</p><h2 id="ui-polish-amp-the-agentic-future">UI polish & the agentic future</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2570px;"><p class="vanilla-image-block" style="padding-top:66.65%;"><img id="4fF35LQYkV4jpZNrPUKxZg" name="win11improvedsearchg" alt="Windows 11 Improved Search in action" src="https://cdn.mos.cms.futurecdn.net/4fF35LQYkV4jpZNrPUKxZg.jpg" mos="" align="middle" fullscreen="" width="2570" height="1713" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft)</span></figcaption></figure><p>If you’re going to make what I believe could be a MacBook Pro killer, you need to make sure the UI is ready for power users as well as casual users. And the mission in Dawoud’s mind to do this is clear: “make the OS kind of get out of the way, for you to do the work that you want to do.”</p><p>Microsoft is cleaning up Windows 11 for this kind of user: native taskbar customization, customizable notifications, killing unwanted widgets, and remembering displays you connect to—to preserve specific screen layout settings.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="kANGCbHE3KTdGdR5xZVvD4" name="Nvidia RTX Spark" alt="Nvidia RTX Spark" src="https://cdn.mos.cms.futurecdn.net/kANGCbHE3KTdGdR5xZVvD4.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Then we turn our attention to the “reinvent the PC” part of the RTX Spark, which comes down to local agentic AI. I saw a demo of Hermes Agent connected to a user’s Google account that acted like his personal chief of staff: setting an agenda for the day, drafting email responses in Gmail, and updating a project tracker in Google Docs. And it all happened on-device without a single bit of cloud AI.</p><p>But without guardrails, this could get scary. “Having an agent that you can't control is probably the thing you don't want,” he stated. So the answer is Microsoft Extension Containers (MXC) — isolated sandboxes for your local models to act across your desktop securely without sensitive system control leaking.</p><h2 id="killing-oem-bloatware">Killing OEM bloatware</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="mcY3VEDiPviihsNtyMMVY4" name="Nvidia RTX Spark" alt="Nvidia RTX Spark" src="https://cdn.mos.cms.futurecdn.net/mcY3VEDiPviihsNtyMMVY4.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>It’s always been a dream of mine to have a laptop that doesn’t come packed with OEM-specific power management software or an antivirus scanner. While this may not fix the latter, it goes a long way toward killing the need for the former.</p><p>Dawoud emphasized the need to eliminate the clunky tug-of-war between Windows and external software. Currently, there are several ways to tweak power management across different apps, but RTX Spark uses the open-source Modern Power and Thermal Framework—letting Windows natively control all thermal and power tuning.</p><p>“Users, when they want to set the best performance, they can do it in Windows, and they'll know that the OEM's tuning for best performance has now been set,” he said. “They don't need to go to another app and be like, 'Okay, is that app saying good performance and Windows is saying good performance at the same time?'”</p><p>This also helps these laptops maintain the same performance on and off the charger.</p><h2 id="the-uma-secret">The UMA secret</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="WudXrWFBDRvTr4BfJPKW3T" name="RTX Spark" alt="RTX Spark" src="https://cdn.mos.cms.futurecdn.net/WudXrWFBDRvTr4BfJPKW3T.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>On paper, a Unified Memory Architecture (UMA) sounds great — a big pool for both the CPU and monstrous GPU to dip into at leisure, and take however much (or little) they need. But in reality, CPUs and GPUs digest memory completely differently.</p><p>CPUs crave small memory chunks (4-kilobyte pages) to distribute tasks across their many cores. They take a pizza, pull all the ingredients off of it, and share them around. GPUs, however, take that entire pizza, fold it in half, and eat it taco-style. They need massive blocks (up to 2-megabyte pages) to plow through parallel 3D rendering or AI tasks.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="rVysSsvNTgqPQr98uY9uY4" name="Nvidia RTX Spark" alt="Nvidia RTX Spark" src="https://cdn.mos.cms.futurecdn.net/rVysSsvNTgqPQr98uY9uY4.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>“RTX Spark has a very powerful GPU, so making sure that we give it as much memory as possible when it needs it, but also give it the right page sizes, is really critical,” Dawoud commented.</p><p>So Microsoft's fix is to add variable page sizing directly to the memory manager. This is a bit complex, but it means Windows can dynamically read the pages of data flowing through and send them to the right places—the 2MB to the GPU and 4KB to the CPU simultaneously.</p><p>“Optimizing that is the way you can weaponize the entire stack to get the most performance out of it,” He emphasized.</p><h2 id="taming-nvidia-s-custom-cpu-cores">Taming Nvidia’s custom CPU cores</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NC4Vevw7coKXAFTkqRDdYP" name="Nvidia RTX Spark" alt="Nvidia RTX Spark" src="https://cdn.mos.cms.futurecdn.net/NC4Vevw7coKXAFTkqRDdYP.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Unlike Qualcomm’s standardized Snapdragon X chips, Nvidia’s 18- and 20-core Grace CPUs use a proprietary cluster arrangement of performance and efficiency cores to maximize speed while delivering all-day battery life.</p><p>Dawoud explained that Nvidia's core configuration is entirely unique, and “previous Arm cores that have run on Windows are not like that.”</p><p>Now, historically, supporting an exotic CPU layout required rewriting the entire kernel underpinning Windows — a risky move for sure. But Windows 11 has a new profiling stack that can tune itself dynamically on the fly, meaning the scheduler that throws tasks everywhere can adapt to Nvidia’s unique chip here without breaking legacy compatibility.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-e4EgZW"></div>                            </div>                            <script src="https://kwizly.com/embed/e4EgZW.js" async></script><h2 id="the-pc-has-finally-grown-up">The PC has finally grown up</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="GVxdiZGjWNreCjxARYdq74" name="Nvidia RTX Spark" alt="Nvidia RTX Spark" src="https://cdn.mos.cms.futurecdn.net/GVxdiZGjWNreCjxARYdq74.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The 14-year partnership between Microsoft and Nvidia finally feels like it is paying off. Dawoud pointed out that this wasn't a sudden alliance — the journey started over a decade ago with the Tegra-powered Surface RT.</p><p>But this specific launch represents a fundamental shift in how the two giants collaborate. By letting Microsoft engineers rebuild the OS from the silicon bootstrap level upward, RTX Spark gave Windows the foundation it needed to finally make Arm-based PC gaming a reality.</p><p>Microsoft and Nvidia haven’t just bolted a GPU onto an Arm processor; they’ve rewritten the rulebook beneath the surface. This is a huge moment for both companies, and if Windows on Arm succeeds where previous attempts faltered, it will all be traced back to that one moment Microsoft spent eight agonizing months building the foundation to make it feel effortless.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/laptops/macbook-pro-14-inch-vs-asus-proart-p14-nvidia-rtx-spark">I held the Asus ProArt P14 next to my MacBook Pro 14 — and Apple should be genuinely terrified of Nvidia’s RTX Spark</a></li><li><a href="https://www.tomsguide.com/gaming/handheld-gaming/i-tested-acers-wild-flip-and-swivel-handheld-why-project-dualplay-mini-is-the-ultimate-netbook-love-letter">I tested Acer's wild Project DualPlay Mini — and it's a gaming handheld and laptop in one gadget</a></li><li><a href="https://www.tomsguide.com/gaming/pc-gaming/i-tested-the-real-dlss-5-forget-the-leaked-mods-its-not-an-ai-filter-this-is-nvidias-photorealistic-game-changer">I wanted to hate Nvidia’s DLSS 5 ‘AI filter’ — but the real DLSS 5 is photorealistic black magic</a></li></ul><div class="vizualizer-embed"><div class="tg-df-widget-host" data-widget-config="?search=laptops&min_discount_ratio=0.95&widget_title=Top+Deals+Handpicked+by+Our+Editors&widget_subtitle=Discover+the+best+discounts+currently+available%2C+curated+daily+by+the+Tom%27s+Guide+Savings+Squad.&bg_color=transparent" data-vizualizer-embed="true"></div>    <script>    /**     * Tom's Guide Deals Finder - Vanilla JS Encapsulated Engine     */    (function() {      // --- Freyr Analytics Adapter ---      function initAnalytics() {        window.dataLayer = window.dataLayer || [];        window.googletag = window.googletag || {};        window.googletag.cmd = window.googletag.cmd || [];        window.hawk = window.hawk || { analytics: { freyr: [] } };        window.hawk.analytics = window.hawk.analytics || { freyr: [] };        window.hawk.analytics.freyr = window.hawk.analytics.freyr || [];        window.freyr = window.freyr || { cmd: [] };        const scriptSrc = 'https://freyr.futurecdn.net/freyr.js';        const hostname = typeof window !== 'undefined' ? window.location.hostname : '';        const isTestEnv = typeof window.navigator !== 'undefined' && (window.navigator.webdriver || window.navigator.userAgent.includes('Headless'));        const shouldSendRealAnalytics = !isTestEnv && hostname && hostname !== 'localhost' && hostname !== '127.0.0.1' && !hostname.includes('run.app');        if (shouldSendRealAnalytics && !document.querySelector(`script[src="${scriptSrc}"]`)) {          const script = document.createElement('script');          script.src = scriptSrc;          script.async = true;          document.head.appendChild(script);        }      }      function storeEventForDebug(name, data) {        if (!window.hawk || !window.hawk.analytics || !window.hawk.analytics.freyr) return;        window.hawk.analytics.freyr.push({ name, data });        try {          if (typeof window !== 'undefined' && window.localStorage) {            window.localStorage.setItem("hawk", JSON.stringify(window.hawk));          }        } catch (e) {          // Ignore storage issues        }        try {          window.dispatchEvent(new CustomEvent("hawk-analytics-update"));        } catch (e) {}      }      function sendToFreyr(eventName, data) {        if (typeof window === 'undefined') return;        window.freyr = window.freyr || { cmd: [] };        window.freyr.cmd.push(() => {          if (window.freyr && window.freyr.pushAndUpdate) {            window.freyr.pushAndUpdate(eventName, data);          }        });      }      function sendEvent(event, skip = false) {        try {          storeEventForDebug(event.name, event.data);          if (!skip) {            sendToFreyr(event.name, event.data);          }        } catch (e) {          // Ensure tracking errors don't surface to the user        }      }      function getCookie(name) {        try {          const match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));          return match ? match[2] : null;        } catch (e) {          return null;        }      }      function normalizeCurrency(symbol) {        const map = {          '£': 'GBP',          '$': 'USD',          'A$': 'AUD',          'CA$': 'CAD',          '€': 'EUR'        };        return map[symbol] || symbol;      }      function trackElementInteraction(props) {        sendEvent({          name: 'elementInteraction',          data: {            element: {              action: props.action || "click",              id: props.id || undefined,              class: props.class || undefined,              name: props.name || undefined,              text: props.text || undefined,              label: props.label || undefined,              container: props.container || undefined,              url: props.url || undefined,              articleId: props.articleId || undefined            }          }        });      }      function generateRevenueId(url, productName, merchantName, modelId) {        const str = `${window.location.href}|${productName}|${merchantName}|${modelId || ''}|${new Date().toDateString()}|tomsguide`;        let hash = 0;        for (let i = 0; i < str.length; i++) {          const char = str.charCodeAt(i);          hash = ((hash << 5) - hash) + char;          hash = hash & hash;        }        let numericStr = Math.abs(hash).toString();        while (numericStr.length < 19) {          numericStr += Math.floor(Math.random() * 10).toString();        }        return numericStr.substring(0, 19);      }      function rewriteAffiliateLink(url, territory, revenueId) {        if (!url) return url;        const t = (territory || 'gb').toLowerCase();        return url.replace(/hawk-custom-tracking/g, `tomsguide-${t}-${revenueId}`);      }      function trackHawkEvent(params) {        const { clickType, widgetId, productCategoryName, product, productsArray, zeroBasedProductIndexOrNull, totalDealsOrProducts, areaClicked, merchant, revenueId, isoCurrencyCode, queryName, widgetTypeName } = params;        const data = {          event: "hawkEvent",          category: "Affiliates",          affiliate: {            action: {              type: clickType,              id: widgetId,              event: clickType === "appeared" ? "viewed" : "Click from",              timestamp: Date.now()            },            component: {              flag: "Editor",              product: productCategoryName || "deals",              category: `Signal Deal Finder ${widgetTypeName || "Carousel"} widget`,              type: clickType === "appeared" ? "review" : "signal product",              label: queryName || (product ? (product.name || "") : ""),              index: zeroBasedProductIndexOrNull === null || zeroBasedProductIndexOrNull === undefined ? -1 : zeroBasedProductIndexOrNull,              linkCount: totalDealsOrProducts || 0,              blockLayout: "",              areaClicked: areaClicked || ""            }          },          products: productsArray || (product && merchant ? [            {              product: {                primary: {                  id: product.id || product.matchId || null,                  name: product.name,                  type: "deal",                  price: product.price,                  previousPrice: product.previousPrice || null,                  currency: isoCurrencyCode || "USD",                  preorder: false,                  labels: [],                  link: product.link,                  originalLink: product.originalLink || null,                  revenueId: revenueId || null,                  startTime: null,                  endTime: null,                  voucherCode: null,                  voucherAudience: null,                  voucherPercentageSaving: null,                  voucherMoneySaving: null,                  voucherType: null,                  offerExclusive: false,                  offerScope: null,                  globalId: product.globalId || null,                  inStock: product.inStock !== false,                  contractProvider: null,                  contractMinutes: null,                  contractTexts: null,                  contractData: null,                  contractLength: null,                  contractMonthlyPrice: null,                  contractCurrency: isoCurrencyCode || "USD"                }              },              merchant: {                id: merchant.id || null,                name: merchant.name,                url: merchant.url || null,                network: merchant.network || null              },              model: {                id: product.modelId || null,                brand: product.brand || null,                name: product.name,                parent: product.parent || null              }            }          ] : []),          reviews: [],          _clear: true,          "gtm.uniqueEventId": Date.now() % 10000        };        sendEvent({ name: 'hawkEvent', data });      }      function trackDealClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Product Card" });      }      function trackViewSimilarClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Product Card View Similar" });      }      function trackPriceComparisonClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Price Comparison" });      }      function trackReviewClick(params) {        trackHawkEvent({ ...params, clickType: "review", areaClicked: "Signal Product Card Review Link" });      }      function trackShare(params) {        trackHawkEvent({ ...params, clickType: "share", areaClicked: "Signal Product Card Share" });      }      function trackDealsAppeared(widgetId, deals, revenueId, currency, queryName, widgetTypeName) {         if (!deals || deals.length === 0) return;                  const productsArray = deals.slice(0, 50).map((deal) => {            let voucherPct = null;            let rawPrice = parseFloat(deal.rawPrice) || parseFloat(deal.price) || null;            let rawMsrp = parseFloat(deal.rawMsrp) || parseFloat(deal.msrp) || null;            if (rawMsrp > rawPrice && rawPrice > 0) {              voucherPct = Math.round((1 - (rawPrice / rawMsrp)) * 100);            }            let numId = null;            if (deal.externalProductId && !isNaN(parseInt(deal.externalProductId))) {              numId = parseInt(deal.externalProductId);            } else if (deal.id && !isNaN(parseInt(deal.id))) {              numId = parseInt(deal.id);            } else {              numId = deal.matchId || null;            }            return {              product: {                primary: {                  id: numId,                  name: deal.productName || deal.title || "",                  type: "deal",                  price: rawPrice,                  previousPrice: rawMsrp,                  currency: currency || 'USD',                  preorder: false,                  labels: deal.modelBrand || deal.brand ? [                     { type: "brand", value: deal.modelBrand || deal.brand }                  ] : [],                  link: deal.url,                  originalLink: deal.url,                  revenueId: revenueId || null,                  startTime: null,                  endTime: null,                  voucherCode: null,                  voucherAudience: null,                  voucherPercentageSaving: voucherPct,                  voucherMoneySaving: null,                  voucherType: null,                  offerExclusive: false,                  offerScope: null,                  globalId: deal.productKey || null,                  inStock: deal.inStock !== false,                  contractProvider: null,                  contractMinutes: null,                  contractTexts: null,                  contractData: null,                  contractLength: null,                  contractMonthlyPrice: null,                  contractCurrency: currency || 'USD'                }              },              merchant: {                id: deal.merchantId ? parseInt(deal.merchantId) : null,                name: deal.merchant || "Retailer",                url: deal.merchantUrl || null,                network: deal.merchantNetwork || null              },              model: {                id: deal.modelId ? parseInt(deal.modelId) : null,                brand: deal.modelBrand || deal.brand || null,                name: deal.productName || deal.title || "",                parent: deal.modelParent || null              }            };         });                  trackHawkEvent({             clickType: "appeared",             widgetId: widgetId,             productCategoryName: "deals",             zeroBasedProductIndexOrNull: null,             totalDealsOrProducts: deals.length,             productsArray: productsArray,             queryName: queryName,             widgetTypeName: widgetTypeName         });      }      // 1. Setup Shadow DOM Sandbox      const currentScript = document.currentScript;      let hostContainer = null;      let template = null;            if (currentScript) {        let prev = currentScript.previousElementSibling;        while (prev) {          if (prev.tagName === 'TEMPLATE' && prev.classList.contains('tg-df-widget-template')) {            template = prev;          } else if (prev.tagName === 'DIV' && prev.classList.contains('tg-df-widget-host') && !prev.hasAttribute('data-initialized')) {            hostContainer = prev;            break;          }          prev = prev.previousElementSibling;        }      }            // Fallbacks in case script is deferred      if (!hostContainer) {        const hosts = document.querySelectorAll('.tg-df-widget-host:not([data-initialized])');        if (hosts.length > 0) hostContainer = hosts[0];      }            // Safely embedded template for CMS environments      const rawTemplate = `  \x3Cstyle>    /* --- Shadow DOM Base Reset --- */    *, *::before, *::after {      box-sizing: border-box;    }    img, picture, svg, video {      max-width: 100%;      height: auto;      display: block;    }    /*       1. Scoped CSS for Tom's Guide Deals Widget       All classes are prefixed with \`tg-df-\` to prevent CMS style leakage.    */    .tg-df-container {      container-type: inline-size;      container-name: tg-df;      --tg-df-blue: #1F69FF;      --tg-df-blue-hover: #004d8c;      --tg-df-text: #222222;      --tg-df-text-muted: #555555;      --tg-df-bg: #ffffff;      --tg-df-bg-secondary: #f4f4f4;      --tg-df-border: #e2e8f0;      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;      color: var(--tg-df-text);      background-color: transparent;       width: 100%;      max-width: 1200px;      margin: 0 auto;      padding-bottom: 24px;    }    .tg-df-container *, .tg-df-container *::before, .tg-df-container *::after {      margin: 0;      padding: 0;      box-sizing: border-box;    }    .tg-df-container img {      border: none;      margin: 0;      padding: 0;    }    .tg-df-container a {      text-decoration: none;      color: inherit;    }    /*       2. Search & Filter Bar    */    .tg-df-controls {      display: flex;      flex-direction: column;      align-items: center;      gap: 20px;      margin-bottom: 32px;      width: 100%;    }    .tg-df-top-bar {      display: flex;      width: 100%;      max-width: 760px;      gap: 12px;      align-items: center;    }    .tg-df-search-wrapper {      position: relative;      flex: 1;      width: 100%;      box-shadow: 0 8px 24px rgba(0,0,0,0.06);      border-radius: 40px;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      z-index: 100;    }    .tg-df-autocomplete-dropdown {      position: absolute;      top: calc(100% + 4px);      left: 0;      right: 0;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 12px;      box-shadow: 0 8px 32px rgba(0,0,0,0.12);      max-height: 300px;      overflow-y: auto;      z-index: 200;      display: none;    }    .tg-df-autocomplete-dropdown.active {      display: block;    }    .tg-df-autocomplete-item {      padding: 12px 24px;      cursor: pointer;      font-size: 14px;      color: var(--tg-df-text);      transition: background 0.1s ease;    }    .tg-df-autocomplete-item:hover {      background: var(--tg-df-bg-secondary);    }    .tg-df-search-input {      width: 100%;      padding: 16px 64px 16px 24px;      font-size: 16px;      border: 2px solid transparent;      border-radius: 40px;      outline: none;      transition: border-color 0.2s ease, box-shadow 0.2s ease;      color: var(--tg-df-text);      background: transparent;    }    .tg-df-search-input:focus {      border-color: transparent;      box-shadow: 0 0 0 3px rgba(0, 108, 196, 0.15);    }    .tg-df-search-input::placeholder {      color: #999999;    }        .tg-df-search-btn {      position: absolute;      right: 8px;      top: 50%;      transform: translateY(-50%);      width: 40px;      height: 40px;      border-radius: 50%;      background: #222;      border: none;      display: flex;      align-items: center;      justify-content: center;      cursor: pointer;      transition: background 0.2s ease;    }        .tg-df-search-btn:hover {      background: #000;    }    .tg-df-search-icon {      width: 16px;      height: 16px;      fill: #fff;    }    .tg-df-settings-wrapper {      position: relative;    }        .tg-df-settings-btn {      width: 48px;      height: 48px;      border-radius: 50%;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      box-shadow: 0 4px 12px rgba(0,0,0,0.04);      display: flex;      align-items: center;      justify-content: center;      cursor: pointer;      transition: all 0.2s ease;      color: var(--tg-df-text-muted);      flex-shrink: 0;    }    .tg-df-settings-btn:hover {      background: var(--tg-df-bg-secondary);      border-color: #0000ff;      color: var(--tg-df-text);    }    .tg-df-settings-btn svg {      width: 24px;      height: 24px;      fill: currentColor;    }    .tg-df-settings-dropdown {      position: absolute;      top: calc(100% + 8px);      right: 0;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 12px;      box-shadow: 0 8px 32px rgba(0,0,0,0.12);      width: 280px;      padding: 20px;      display: none;      z-index: 100;      flex-direction: column;      gap: 20px;    }    .tg-df-settings-dropdown.active {      display: flex;    }        .tg-df-settings-dropdown-backdrop {      display: none;      position: fixed;      inset: 0;      z-index: 99;    }        .tg-df-settings-dropdown-backdrop.active {      display: block;    }    .tg-df-setting-item {      display: flex;      flex-direction: column;      gap: 10px;    }    .tg-df-setting-label {      font-size: 11px;      font-weight: 700;      color: var(--tg-df-text-muted);      text-transform: uppercase;      letter-spacing: 0.5px;    }        .tg-df-region-select {        padding: 10px 12px;        border-radius: 8px;        border: 1px solid var(--tg-df-border);        font-size: 15px;        outline: none;        background: var(--tg-df-bg-secondary);        color: var(--tg-df-text);        cursor: pointer;        width: 100%;    }    .tg-df-toggle {        position: relative;        display: inline-block;        width: 44px;        height: 24px;        flex-shrink: 0;    }    .tg-df-toggle input {        opacity: 0;        width: 0;        height: 0;    }    .tg-df-slider {        position: absolute;        cursor: pointer;        top: 0; left: 0; right: 0; bottom: 0;        background-color: #ccc;        transition: .2s;        border-radius: 24px;    }    .tg-df-slider:before {        position: absolute;        content: "";        height: 18px;        width: 18px;        left: 3px;        bottom: 3px;        background-color: white;        transition: .2s;        border-radius: 50%;    }    .tg-df-toggle input:checked + .tg-df-slider {        background-color: #1F69FF;    }    .tg-df-toggle input:checked + .tg-df-slider:before {        transform: translateX(20px);    }    .tg-df-dl-row {        flex-direction: row;        align-items: center;        justify-content: space-between;    }    .tg-df-dl-row-text {        font-size: 14px;        font-weight: 600;        color: var(--tg-df-text);    }    .tg-df-dl-row-subtext {        font-size: 12px;        font-weight: 400;        line-height: 1.3;        color: var(--tg-df-text-muted);        margin-top: 4px;        display: block;    }    .tg-df-filters {      display: flex;      gap: 12px;      justify-content: center;      flex-wrap: wrap;    }    .tg-df-sort-wrapper {      position: relative;      display: flex;      align-items: center;    }        .tg-df-sort-icon {      position: absolute;      left: 14px;      width: 14px;      height: 14px;      fill: var(--tg-df-text-muted);      pointer-events: none;    }    .tg-df-sort-select, .tg-df-filter-select {      padding: 10px 36px 10px 38px;      font-size: 14px;      border: 1px solid var(--tg-df-border);      border-radius: 100px;      outline: none;      appearance: none;      background-color: var(--tg-df-bg-secondary);      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12'%3E%3Cpath fill='%23555555' d='M6 8L1 3h10z'/%3E%3C/svg%3E");      background-repeat: no-repeat;      background-position: right 14px center;      color: var(--tg-df-text);      cursor: pointer;      font-weight: 500;      transition: all 0.2s ease;    }        .tg-df-price-input::-webkit-outer-spin-button,    .tg-df-price-input::-webkit-inner-spin-button {      -webkit-appearance: none;      margin: 0;    }    .tg-df-price-input {      -moz-appearance: textfield;    }    .tg-df-sort-select:hover, .tg-df-filter-select:hover {      background-color: #e2e8f0;    }    .tg-df-multiselect-container {      position: relative;    }        .tg-df-multiselect-trigger {      display: block;      background: #fff;      user-select: none;      width: 100%;      overflow: hidden;      white-space: nowrap;      text-overflow: ellipsis;    }        .tg-df-multiselect-dropdown {      display: none;      position: absolute;      top: calc(100% + 4px);      left: 0;      width: 100%;      min-width: 220px;      max-height: 300px;      overflow-y: auto;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 8px;      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);      z-index: 100;      padding: 8px 0;    }    .tg-df-multiselect-dropdown.active {      display: block;    }    .tg-df-ms-option {      padding: 8px 16px;      display: flex;      align-items: center;      gap: 8px;      cursor: pointer;      font-size: 14px;    }    .tg-df-ms-option:hover {      background-color: var(--tg-df-bg-secondary);    }        .tg-df-ms-option input {      cursor: pointer;      accent-color: #1f69ff;    }    .tg-df-sort-select:focus, .tg-df-filter-select:focus {      border-color: #0000ff;      box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.2);      background-color: var(--tg-df-bg);    }    /*       3. Deal Grid Layout    */    .tg-df-grid.tg-df-grid-auto {      padding-top: 24px;    }    .tg-df-grid, .tg-df-grid.layout-grid {      display: grid;      grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));      gap: 10px;    }    .tg-df-grid.layout-row {      grid-template-columns: 1fr;      gap: 16px;    }        .tg-df-grid.layout-row .tg-df-card {      flex-direction: row;      align-items: stretch;      height: auto;      box-shadow: none;      border-bottom: 1px solid var(--tg-df-border);    }    .tg-df-grid.layout-row .tg-df-card:hover {      box-shadow: none;    }    .tg-df-grid.layout-row .tg-df-card-image-box {      width: 140px;      min-width: 140px;      aspect-ratio: 3/4;      border-right: none;      padding: 16px 16px 16px 32px;    }    .tg-df-grid.layout-row .tg-df-card-body {      padding: 16px;      justify-content: space-between;    }    .tg-df-grid.layout-row .tg-df-card-title {      font-size: 15px;      margin-bottom: 16px;    }    .tg-df-grid.layout-row .tg-df-card-stars { margin-bottom: 8px; }    .tg-df-grid.layout-row .tg-df-card-footer {      flex-direction: column;      align-items: flex-start;      gap: 0;    }    .tg-df-grid.layout-row .tg-df-card-merchant-pill {      margin-bottom: 4px;    }    .tg-df-grid.layout-row .tg-df-card-price-group {      margin-bottom: 8px;    }    .tg-df-grid.layout-row .tg-df-price-group {      width: auto;    }    .tg-df-grid.layout-row .tg-df-card-cta {      width: 100%;      max-width: 200px;      padding: 10px 24px;      font-size: 13px;      flex-shrink: 0;      text-align: center;      justify-content: center;    }    /*       4. Deal Card Design    */    .tg-df-card {      position: relative;      display: flex;      flex-direction: column;      background-color: #ffffff;      border-radius: 0;      overflow: hidden;      transition: transform 0.2s ease, box-shadow 0.2s ease;      text-decoration: none;      color: inherit;      height: 100%;      box-shadow: 0 0 16px rgba(0, 0, 0, 0.08);      border: 1px solid var(--tg-df-border);    }    .tg-df-card:hover {      box-shadow: 0 0 24px rgba(0, 0, 0, 0.12);    }    .tg-df-card-image-box {      width: 100%;      aspect-ratio: 3/4;      background-color: #f8f8f8;      display: flex;      align-items: center;      justify-content: center;      position: relative;      overflow: hidden;      padding: 32px;      flex: 0 0 auto;    }    .tg-df-card-image {      max-width: 100%;      max-height: 100%;      width: auto;      height: auto;      object-fit: contain;      mix-blend-mode: multiply; /* Helps white background images blend into secondary bg */      transition: transform 0.3s ease;    }    .tg-df-card:hover .tg-df-card-image {      transform: scale(1.05); /* Zoom in on hover */    }    .tg-df-card-discount-badge {      position: absolute;      top: 12px;      left: 12px;      background: #dc2626; /* Red */      color: #ffffff;      padding: 6px 8px;      font-size: 11px;      font-weight: 500;      text-transform: uppercase;      letter-spacing: 0.5px;      border-radius: 0;      z-index: 10;    }        .tg-df-card-merchant-pill {      display: block;      padding: 0;      font-size: 11px;      font-weight: 600;      text-transform: uppercase;      letter-spacing: 0.5px;      border-radius: 0;      color: var(--tg-df-text-muted);      margin-bottom: 8px;      white-space: nowrap;      overflow: hidden;      text-overflow: ellipsis;    }    .tg-df-card-body {      padding: 16px;      display: flex;      flex-direction: column;      flex-grow: 1;      min-width: 0;    }    .tg-df-card-badges {      display: flex;      flex-wrap: wrap;      gap: 6px;      margin-bottom: 8px;    }    .tg-df-tag {      display: inline-flex;      align-items: center;      padding: 4px 6px;      font-size: 11px;      font-weight: 700;      text-transform: uppercase;      border-radius: 4px;      gap: 4px;    }    .tg-df-tag-prime {      background-color: #00A8E1;      color: #fff;    }    .tg-df-tag-coupons {      background-color: #f1f5f9;      color: #334155;      border: 1px solid #cbd5e1;      cursor: pointer;      transition: background-color 0.2s;    }    .tg-df-tag-coupons:hover {      background-color: #e2e8f0;    }        .tg-df-tag-outline {      background-color: #f1f5f9;      color: #334155;      border: 1px solid #cbd5e1;      cursor: pointer;      transition: background-color 0.2s;    }    .tg-df-tag-outline:hover {      background-color: #e2e8f0;    }        @keyframes tg-df-spin {      0% { transform: rotate(0deg); }      100% { transform: rotate(360deg); }    }    .tg-df-coupon-spinner {      border: 2px solid #e2e8f0;      border-top: 2px solid #3b82f6;      border-radius: 50%;      width: 14px;      height: 14px;      animation: tg-df-spin 1s linear infinite;      margin: 4px 8px;      display: inline-block;    }        /* Vouchers Modal */    .tg-df-modal-backdrop {      position: fixed;      top: 0; left: 0; right: 0; bottom: 0;      background: rgba(0,0,0,0.5);      z-index: 10000;      display: flex;      align-items: center;      justify-content: center;      opacity: 0;      pointer-events: none;      transition: opacity 0.3s;    }    .tg-df-modal-backdrop.active {      opacity: 1;      pointer-events: auto;    }    .tg-df-modal {      background: #fff;      border-radius: 12px;      width: 90%;      max-width: 400px;      max-height: 80vh;      display: flex;      flex-direction: column;      box-shadow: 0 10px 40px rgba(0,0,0,0.2);      transform: translateY(20px);      transition: transform 0.3s;    }    .tg-df-modal-backdrop.active .tg-df-modal {      transform: translateY(0);    }    .tg-df-modal-header {      padding: 16px;      border-bottom: 1px solid #e2e8f0;      display: flex;      align-items: center;      justify-content: space-between;    }    .tg-df-modal-title {      font-size: 16px;      font-weight: 600;      margin: 0;    }    .tg-df-modal-close {      background: none;      border: none;      cursor: pointer;      padding: 4px;      color: #64748b;    }    .tg-df-modal-body {      padding: 16px;      overflow-y: auto;    }    .tg-df-voucher-item {      padding: 12px;      border: 1px dashed #cbd5e1;      border-radius: 8px;      margin-bottom: 10px;      background: #f8fafc;      display: flex;      align-items: center;      gap: 12px;      text-decoration: none;      color: inherit;      transition: background-color 0.2s, border-color 0.2s;    }    .tg-df-voucher-item:hover {      background: #f1f5f9;      border-color: #94a3b8;    }    .tg-df-voucher-item:last-child {      margin-bottom: 0;    }    .tg-df-voucher-logo {      width: 48px;      height: 48px;      object-fit: contain;      border-radius: 4px;      background: #fff;      border: 1px solid #e2e8f0;      flex-shrink: 0;    }    .tg-df-voucher-content {      flex: 1;      min-width: 0;    }    .tg-df-voucher-title {      font-size: 14px;      font-weight: 600;      margin: 0 0 4px 0;      line-height: 1.3;      color: #0f172a;    }    .tg-df-voucher-expiry {      font-size: 12px;      color: #64748b;      display: flex;      align-items: center;      gap: 4px;      margin-top: 6px;    }    .tg-df-voucher-code {      display: inline-flex;      align-items: center;      background: #f1f5f9;      border: 1px dashed #cbd5e1;      padding: 6px 10px;      font-family: monospace;      font-weight: 700;      font-size: 14px;      color: #0f172a;      border-radius: 4px;      margin-top: 8px;      cursor: pointer;      transition: all 0.2s ease;    }    .tg-df-voucher-code:hover {      background: #e2e8f0;      border-color: #94a3b8;    }    .tg-df-voucher-code.copied {      background: #ecfdf5;      border-color: #10b981;      color: #10b981;    }    .tg-df-voucher-cta {      display: inline-block;      margin-top: 8px;      font-size: 13px;      font-weight: 600;      color: #2563eb;      text-decoration: none;    }    .tg-df-card-title {      font-size: 15px;      font-weight: 400;      line-height: 1.4;      margin: 0 0 12px 0;      color: var(--tg-df-text);      display: -webkit-box;      -webkit-line-clamp: 2;      -webkit-box-orient: vertical;      overflow: hidden;    }    .tg-df-card-footer {      margin-top: auto;      display: flex;      flex-direction: column;      width: 100%;    }    .tg-df-card-price-group {      display: flex;      flex-direction: row;      align-items: center;      gap: 8px;      margin-bottom: 12px;    }    .tg-df-card-price {      font-size: 16px;      font-weight: 700;      color: #dc2626; /* Red price */      line-height: 1;    }        .tg-df-card-msrp {      font-size: 13px;      color: var(--tg-df-text-muted);      text-decoration: line-through;    }    .tg-df-container .tg-df-card-cta {      display: flex;      align-items: center;      justify-content: center;      width: 100%;      box-sizing: border-box;      background-color: #1f69ff;      color: #ffffff;      font-size: 12px;      font-weight: 700;      text-transform: uppercase;      letter-spacing: 0.5px;      padding: 12px 16px;      border-radius: 0;      border: none;      cursor: pointer;      transition: background-color 0.2s ease;    }    .tg-df-card:hover .tg-df-card-cta,    .tg-df-card-cta:hover {      background-color: #1555cc;    }    .tg-df-container .tg-df-card-cta.tg-df-cta-savings-squad {      background-color: #3c8d0d;    }    .tg-df-card:hover .tg-df-card-cta.tg-df-cta-savings-squad,    .tg-df-card-cta.tg-df-cta-savings-squad:hover {      background-color: #2b6509;    }    /*       5. State & Skeleton Styles    */    .tg-df-message {      grid-column: 1 / -1;      text-align: center;      padding: 48px 24px;      color: var(--tg-df-text-muted);      font-size: 16px;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 8px;    }    @keyframes tg-df-shimmer {      0% { background-position: -200% 0; }      100% { background-position: 200% 0; }    }    .tg-df-skeleton {      background: linear-gradient(90deg, var(--tg-df-bg-secondary) 25%, #e2e8f0 50%, var(--tg-df-bg-secondary) 75%);      background-size: 200% 100%;      animation: tg-df-shimmer 1.5s infinite;      border-radius: 4px;    }    .tg-df-skeleton-img {      width: 100%;      height: 100%;      position: absolute;      top: 0; left: 0;    }        .tg-df-skeleton-text {      height: 16px;      margin-bottom: 8px;      width: 100%;    }    .tg-df-skeleton-text.short { width: 40%; }    .tg-df-skeleton-text.title { height: 20px; margin-bottom: 16px; }    /* Editor Floating Bar & Elements */    .tg-df-editor-bar {      position: sticky;      top: 0;      z-index: 1000;      background: #111827;      color: #fff;      padding: 12px 16px;      border-radius: 8px;      margin-bottom: 16px;      display: flex;      align-items: center;      justify-content: space-between;      box-shadow: 0 4px 12px rgba(0,0,0,0.15);    }    .tg-df-editor-bar-text {      font-weight: 600;      font-size: 14px;    }    .tg-df-editor-copy-btn {      background: #10b981;      color: #fff;      padding: 6px 16px;      border: none;      border-radius: 4px;      font-weight: 600;      cursor: pointer;      display: flex;      align-items: center;      font-size: 13px;    }    .tg-df-editor-copy-btn:hover { background: #059669; }        .tg-df-deal-checkbox {      position: absolute;      top: 12px;      right: 12px;      z-index: 10;      width: 20px;      height: 20px;      cursor: pointer;      pointer-events: auto;    }    /*       6. Mobile List View (Stacks into a cleaner horizontal row/list)    */    @container tg-df (max-width: 599px) {      .tg-df-controls {        padding: 0 16px;      }            .tg-df-top-bar {        width: 100%;      }            .tg-df-settings-dropdown {        position: fixed;        top: auto;        bottom: 0;        left: 0;        right: 0;        width: 100%;        border-radius: 20px 20px 0 0;        padding: 24px;        box-shadow: 0 -8px 32px rgba(0,0,0,0.15);        z-index: 1000;        border: none;        border-top: 1px solid var(--tg-df-border);      }            .tg-df-settings-dropdown-backdrop.active {        background: rgba(0,0,0,0.4);      }            .tg-df-search-wrapper {        box-shadow: 0 0 16px rgba(0,0,0,0.08);      }            .tg-df-filters {        width: calc(100% + 32px);        margin: 0 -16px;        padding: 0 16px 4px 16px;        display: flex;        justify-content: flex-start;        gap: 8px;        flex-wrap: nowrap;        overflow-x: auto;        -webkit-overflow-scrolling: touch;        scrollbar-width: none;      }      .tg-df-filters::after {        content: "";        display: block;        flex: 0 0 8px;      }      .tg-df-filters::-webkit-scrollbar {        display: none;      }            .tg-df-sort-wrapper {        flex: 0 0 max(42%, 130px);        min-width: 0;      }      .tg-df-sort-wrapper.tg-df-price-range-wrapper {        flex: 0 0 auto;        min-width: max-content;      }            .tg-df-sort-select, .tg-df-filter-select {        width: 100%;        text-align: left;        padding: 10px 24px 10px 32px;        background-position: right 8px center;        text-overflow: ellipsis;        white-space: nowrap;        overflow: hidden;      }      .tg-df-sort-icon {        left: 10px;      }      .tg-df-grid:not(.layout-grid):not(.layout-row),      .tg-df-grid.layout-row {        grid-template-columns: 1fr;        gap: 16px;      }            .tg-df-grid.tg-df-grid-auto {        padding-top: 24px;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card,      .tg-df-grid.layout-row .tg-df-card {        flex-direction: row;        align-items: stretch;        height: auto;        box-shadow: none; /* simple line on mobile if preferred, or keep */        border-bottom: 1px solid var(--tg-df-border);      }      .tg-df-grid.tg-df-grid-auto .tg-df-card:hover,      .tg-df-grid.layout-row .tg-df-card:hover {        box-shadow: none;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-image-box,      .tg-df-grid.layout-row .tg-df-card-image-box {        width: 120px;        min-width: 120px;        aspect-ratio: 3/4;        border-right: none;        padding: 12px;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-body,      .tg-df-grid.layout-row .tg-df-card-body {        padding: 12px;        justify-content: space-between;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-title,      .tg-df-grid.layout-row .tg-df-card-title {        font-size: 14px;        margin-bottom: 12px;        -webkit-line-clamp: 3;      }      /* Single column mobile grid override */      .tg-df-grid.layout-grid {        grid-template-columns: 1fr;        gap: 16px;      }      .tg-df-grid.layout-grid .tg-df-card-image-box {        padding: 12px;      }      .tg-df-grid.layout-grid .tg-df-card-body {        padding: 10px;      }      .tg-df-grid.layout-grid .tg-df-card-title {        font-size: 13px;        -webkit-line-clamp: 3;        margin-bottom: 8px;      }      .tg-df-grid.layout-grid .tg-df-card-price {        font-size: 14px;      }            .tg-df-card-footer {        flex-direction: column;        align-items: stretch;        gap: 0;        width: 100%;        min-width: 0;      }      .tg-df-card-merchant-pill {        margin-bottom: 4px;      }      .tg-df-card-price-group {        flex: 1 1 auto;        margin-bottom: 8px;      }      .tg-df-card-price {        font-size: 16px;      }      .tg-df-card-msrp {        display: block;       }      .tg-df-grid.layout-row .tg-df-card-cta,      .tg-df-container .tg-df-card-cta {        width: 100%;        max-width: none;        min-width: 0;        box-sizing: border-box;        padding: 8px 16px;        font-size: 12px;        flex: 0 0 auto;        text-align: center;        white-space: normal;        line-height: 1.2;      }    }    .tg-df-container.is-carousel {      min-height: 760px;      background-color: #E7F0FF;      padding: 0 0 24px 0;      border-radius: 24px;    }    .tg-df-container.is-carousel.hide-header-details {      min-height: 480px;    }    /*       7. Carousel View Mode    */    .tg-df-container .tg-df-carousel-host {      /* Layout is now handled by container wrapper */    }    .tg-df-container .tg-df-carousel-eyebrow {      color: #1F69FF;      font-weight: 700;      font-size: 14px;      text-transform: uppercase;      letter-spacing: 1px;      padding: 24px 16px 0 16px;      display: none;    }    .tg-df-container .tg-df-carousel-query-title {      color: #011535;      font-size: 28px;      font-weight: 600;      padding: 0 16px 24px 16px;      line-height: 1.2;      display: none;    }    .tg-df-container .tg-df-carousel-blue-box {      background-color: transparent;      border-radius: 0;      padding: 24px 24px 0 24px;      margin: 0;      color: #1F69FF;          position: relative;      overflow: hidden;    }    .tg-df-container .tg-df-carousel-bg-circle-1 {      display: none;    }    .tg-df-container .tg-df-carousel-bg-circle-2 {      display: none;    }    .tg-df-container .tg-df-carousel-bg-circle-3 {      display: none;    }    .tg-df-container .tg-df-carousel-box-content {      position: relative;      z-index: 10;    }    .tg-df-container .tg-df-carousel-box-eyebrow {      background-color: transparent;      color: #1F69FF;      font-weight: 700;      font-size: 14px;      text-transform: uppercase;      letter-spacing: 1px;      display: inline-block;      padding: 0;      border-radius: 0;    }    .tg-df-container .tg-df-carousel-box-title {      font-size: 28px;      font-weight: 600;      line-height: 1.2;      margin-top: 8px;      color: #1e293b;    }    .tg-df-container .tg-df-countdown-wrapper {      position: absolute;      top: 0;      right: 0;      display: flex;      flex-direction: column;      align-items: flex-end;      gap: 12px;      transform: scale(0.67);      transform-origin: top right;    }    .tg-df-container .tg-df-countdown-title {      font-size: 16px;      text-align: center;      width: 100%;      font-weight: 600;      color: #011535;      margin: 0;    }    .tg-df-container .tg-df-countdown-blocks {      display: flex;      gap: 16px;    }    .tg-df-container .tg-df-countdown-item {      display: flex;      flex-direction: column;      align-items: center;      gap: 4px;    }    .tg-df-container .tg-df-countdown-box {      width: 59px;      height: 59px;      background: #03FE9E;      border-radius: 15px;      display: flex;      align-items: center;      justify-content: center;    }    .tg-df-container .tg-df-countdown-num {      font-family: 'Inter', sans-serif;      font-weight: 700;      font-size: 20px;      line-height: normal;      color: #011535;    }    .tg-df-container .tg-df-countdown-label {      font-family: 'Inter', sans-serif;      font-weight: 500;      font-size: 16px;      line-height: normal;      color: #1e293b;      text-transform: uppercase;    }    .tg-df-container .tg-df-carousel-box-subtitle {      font-size: 16px;      margin-top: 8px;      font-weight: 300;      color: #1e293b;      line-height: 24px;    }    .tg-df-container .tg-df-carousel-roundels-wrapper {      position: relative;      margin-top: 24px;      margin-left: -24px;      margin-right: -24px;    }    .tg-df-container .tg-df-carousel-roundels {      display: flex;      gap: 16px;      overflow-x: auto;            scrollbar-width: none;      padding-top: 12px;      padding-bottom: 24px;      padding-left: 24px;      padding-right: 24px;      margin-left: 0;      margin-right: 0;    }        .tg-df-container .tg-df-carousel-scroll-left,    .tg-df-container .tg-df-carousel-scroll-right {      position: absolute;      top: 50%;      transform: translateY(-50%);      height: 36px;      width: 36px;      display: flex;      align-items: center;      justify-content: center;      border-radius: 50%;      background-color: #ffffff;      border: 1px solid #e2e8f0;      box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);      color: #1F69FF;      cursor: pointer;      transition: all 0.2s;      margin-top: -4px;      z-index: 20;    }    .tg-df-container .tg-df-carousel-scroll-left { left: 8px; }    .tg-df-container .tg-df-carousel-scroll-right { right: 8px; }    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-left { left: 0px; }    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-right { right: 0px; }    .tg-df-carousel-filters-outer { margin-left: -24px; margin-right: -24px; padding-left: 24px; padding-right: 24px; }    @container tg-df (max-width: 599px) { .tg-df-carousel-filters-outer { margin-left: -16px; margin-right: -16px; padding-left: 16px; padding-right: 16px; } }        .tg-df-container .tg-df-carousel-scroll-left:hover,    .tg-df-container .tg-df-carousel-scroll-right:hover {      background-color: #f8fafc;      border-color: #cbd5e1;    }        .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left,    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right,    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-left,    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-right {      background-color: rgba(255, 255, 255, 0.4);      border: none;      box-shadow: none;      backdrop-filter: blur(4px);      -webkit-backdrop-filter: blur(4px);    }    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left { left: 0; }    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right { right: 0; }    .tg-df-grid-wrapper .tg-df-carousel-scroll-left { left: 0; }    .tg-df-grid-wrapper .tg-df-carousel-scroll-right { right: 0; }        .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left:hover,    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right:hover {      background-color: rgba(255, 255, 255, 0.6);      border: none;    }    .tg-df-container .tg-df-carousel-roundels::-webkit-scrollbar {      display: none;    }    .tg-df-container .tg-df-carousel-roundels::after {      content: "";      flex: 0 0 32px;    }    .tg-df-container .tg-df-roundel {      display: flex;      flex-direction: column;      align-items: center;      gap: 8px;      cursor: pointer;      min-width: 120px;      flex-shrink: 0;    }    .tg-df-container .tg-df-roundel-img-box {      width: 120px;      height: 120px;      border-radius: 50%;      background: white;      display: flex;      align-items: center;      justify-content: center;      overflow: hidden;      box-shadow: 0px 3px 14px 0px rgba(30, 41, 59, 0.08);      transition: box-shadow 0.2s;    }    .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box {      box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px #1F69FF;    }    .tg-df-container .tg-df-roundel.active .tg-df-roundel-img-box {      box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px #1F69FF;    }    .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box img {      transform: scale(1.08);    }    .tg-df-container .tg-df-roundel-img-box img {      width: 100%;      height: 100%;      object-fit: contain;      padding: 10px;      box-sizing: border-box;      transition: transform 0.3s ease;    }    .tg-df-container .tg-df-roundel-label {      font-size: 13px;      font-weight: 400;      color: #1e293b;      text-align: center;      transition: font-weight 0.2s;    }    .tg-df-container .tg-df-roundel.active .tg-df-roundel-label {      font-weight: 700;    }    .tg-df-container .tg-df-carousel-filters-label {      font-size: 16px;      font-weight: 400;      color: #1e293b;      white-space: nowrap;      margin-right: 4px;    }    .tg-df-container .tg-df-carousel-filters-wrap {      display: flex;      align-items: center;      flex-wrap: nowrap;      gap: 8px;      margin-top: 8px;      overflow-x: auto;      scrollbar-width: none;      -webkit-overflow-scrolling: touch;      padding-bottom: 8px;      margin-left: -24px;      margin-right: -24px;      padding-left: 24px;      padding-right: 24px;    }    .tg-df-container .tg-df-carousel-filters-wrap::-webkit-scrollbar {      display: none;    }        .tg-df-container .tg-df-carousel-filter-btn img,    .tg-df-container .tg-df-carousel-filter-btn picture {      height: 20px;      width: 20px;      object-fit: contain;      object-position: center;      display: inline-flex;      align-items: center;      justify-content: center;      margin-right: 6px;    }    .tg-df-container .tg-df-carousel-filter-btn picture img {      margin-right: 0;      height: 100%;      width: 100%;    }    .tg-df-container .tg-df-carousel-filter-btn img.active-img,    .tg-df-container .tg-df-carousel-filter-btn picture:has(.active-img) {      display: none;    }    .tg-df-container .tg-df-carousel-filter-btn:hover img.inactive-img,    .tg-df-container .tg-df-carousel-filter-btn.active img.inactive-img,    .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.inactive-img),    .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.inactive-img) {      display: none;    }    .tg-df-container .tg-df-carousel-filter-btn:hover img.active-img,    .tg-df-container .tg-df-carousel-filter-btn.active img.active-img,    .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.active-img),    .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.active-img) {      display: inline-flex;    }    .tg-df-container .tg-df-carousel-filter-btn {      background: #ffffff;      border: 2px solid #1e293b;      color: #1e293b;      border-radius: 24px;      padding: 6px 16px;      font-size: 14px;      font-weight: 600;      cursor: pointer;      transition: all 0.2s;      flex-shrink: 0;      white-space: nowrap;      display: inline-flex;      align-items: center;      justify-content: center;      min-height: 36px;      box-sizing: border-box;    }    .tg-df-container .tg-df-carousel-filter-btn svg {      margin-right: 6px;    }    .tg-df-container .tg-df-carousel-filter-btn:hover {      background: #1e293b;      color: white;      border-color: #1e293b;    }    .tg-df-container .tg-df-carousel-filter-btn.active {      background: #1e293b;      color: white;      border-color: #1e293b;    }        .tg-df-grid.carousel-compact {      display: flex;      flex-wrap: nowrap;      overflow-x: auto;      gap: 16px;      padding: 16px 24px;      align-items: stretch;      scrollbar-width: none;    }    .tg-df-grid.carousel-compact::after {      content: "";      flex: 0 0 32px;    }    .tg-df-grid-wrapper {      position: relative;    }    .tg-df-grid.carousel-compact::-webkit-scrollbar {      display: none;    }    .tg-df-grid.carousel-compact .tg-df-load-more-card {      flex: 0 0 auto;      width: 100px;      border-radius: 15px;      box-shadow: 0 0 16px rgba(0,0,0,0.08);      border: 2px solid #1e293b;      background: white;      color: #1e293b;      display: flex;      flex-direction: column;      justify-content: center;      align-items: center;      font-weight: 600;      font-size: 14px;      cursor: pointer;      padding: 16px;      text-align: center;      transition: all 0.2s;    }    .tg-df-grid.carousel-compact .tg-df-load-more-card:hover {      background: #1e293b;      color: white;    }    .tg-df-grid.carousel-compact .tg-df-card {      flex: 0 0 auto;      width: 200px;      min-height: auto;      height: auto;      display: flex;      flex-direction: column;      border-radius: 15px;      border: none;      box-shadow: 0 0 16px rgba(0,0,0,0.08);      overflow: visible;    }    .tg-df-grid.carousel-compact .tg-df-card-image-box {      padding: 12px;      background-color: transparent;      border-radius: 15px 15px 0 0;      height: 130px;    }    .tg-df-grid.carousel-compact .tg-df-card-image {      mix-blend-mode: normal;    }    .tg-df-grid.carousel-compact .tg-df-card-discount-badge {      border-radius: 0;      top: 0px;      left: 0px;      padding: 4px 8px;      font-size: 11px;    }    .tg-df-grid.carousel-compact .tg-df-card-body {      padding: 8px 12px 12px 12px;    }    .tg-df-grid.carousel-compact .tg-df-card-title {      font-size: 14px;      font-weight: 400;      -webkit-line-clamp: 2;      margin-bottom: 8px;      color: #011535;    }    .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):not(:has(.tg-df-tag-prime)):not(:has(.tg-df-coupon-wrapper:not([style*="none"]))) > .tg-df-card-title,    .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):has(> .tg-df-card-title:first-child) > .tg-df-card-title {      -webkit-line-clamp: 3;    }    .tg-df-grid.carousel-compact .tg-df-card-cta {      border-radius: 5px;      padding: 8px 10px;      margin-top: 4px;      background-color: #1F69FF;    }    .tg-df-grid.carousel-compact .tg-df-card-price-group {      margin-bottom: 2px;    }    .tg-df-grid.carousel-compact .tg-df-card-merchant-pill {      margin-bottom: 2px;    }    @container tg-df (max-width: 599px) {      .tg-df-container .tg-df-carousel-blue-box-title {        font-size: 24px;      }      .tg-df-container .tg-df-countdown-title {        display: none;      }      .tg-df-container .tg-df-countdown-wrapper {        position: absolute;        top: 0;        right: 0;        align-items: flex-end;        transform: scale(0.45);        transform-origin: top right;      }      .tg-df-container .tg-df-roundel {        min-width: 88px;      }      .tg-df-container .tg-df-roundel-img-box {        width: 88px;        height: 88px;      }    }    /* REPLICA BLOCK STYLES */    .tg-df-grid.layout-replica-2 { grid-template-columns: repeat(2, 1fr) !important; gap: 20px; }    .tg-df-grid.layout-replica-1 { grid-template-columns: 1fr !important; gap: 20px; }        .tg-df-container .hawk-deal-widget-container { border-bottom: 1px solid #e5e7eb; display: flex; flex-direction: column; margin: 0; padding: 20px 0; box-sizing: border-box; font-family: inherit; }    .tg-df-container .hawk-deal-widget-wrap { display: flex; flex-direction: row; align-items: flex-start; width: 100%; gap: 24px; }    .tg-df-container .hawk-deal-widget-image-container { display: flex; flex-shrink: 0; justify-content: center; width: 160px; height: 160px; align-items: center; background: white; margin-bottom: 0px; }    .tg-df-container .hawk-deal-widget-title-product-title { color: #111827; font-size: 18px; font-weight: 700; line-height: 1.4; display: inline; }    .tg-df-container .hawk-deal-widget-title-price { font-size: 18px; font-weight: 700; line-height: 1.4; white-space: nowrap; color: #2563eb; }    .tg-df-container .hawk-deal-widget-title-price-now { font-weight: 700; }    .tg-df-container .hawk-deal-widget-title-retailer-price:hover { text-decoration: underline; }    .tg-df-container .hawk-deal-widget-title-retailer { font-size: 18px; font-weight: 700; line-height: 1.4; color: #2563eb; }    .tg-df-container .hawk-deal-widget-title-was-price { color: #dc2626; font-size: 16px; font-weight: 500; line-height: 1.4; text-decoration: line-through; white-space: nowrap; margin-left: 8px; margin-right: 8px; }    .tg-df-container .hawk-deal-widget-text-body-container { position: relative; width: 100%; box-sizing: border-box; }    .tg-df-container .hawk-deal-widget-text-body-main { font-size: 16px; width: 100%; margin-bottom: 12px; }    .tg-df-container .hawk-deal-widget-text-body-description { display: block; font-size: 15px; margin-top: 12px; color: #4b5563; line-height: 1.6; }    .tg-df-container .hawk-deal-widget-text-body-description p { margin: 0; line-height: 1.6; }    .tg-df-container .hawk-deal-widget-text-cta-container { display: flex; flex-direction: column; gap: 12px; width: 100%; flex: 1; min-width: 0; box-sizing: border-box; }    .tg-df-container .hawk-deal-widget-footer { display: flex; justify-content: flex-end; width: 100%; margin-top: auto; }    .tg-df-container .hawk-deal-widget-button-wrapper { display: flex; flex-direction: column; align-items: flex-end; justify-content: flex-end; width: 100%; }    .tg-df-container .hawk-deal-widget-preferred-partner-wrapper { display: flex; flex-direction: row; }        @container tg-df (min-width: 600px) {      .tg-df-mobile-only { display: none !important; }    }    @container tg-df (max-width: 599px) {      .tg-df-desktop-only { display: none !important; }      .tg-df-grid.layout-replica-2 { grid-template-columns: 1fr !important; }      .tg-df-grid.savings-squad-cards { grid-template-columns: 1fr !important; display: flex; flex-direction: column; }    }    .tg-df-grid.savings-squad-cards .tg-df-card-title {      -webkit-line-clamp: unset !important;      display: block !important;      overflow: visible !important;    }    @container tg-df (max-width: 500px) {      .tg-df-container .hawk-deal-widget-wrap { display: block; }      .tg-df-container .hawk-deal-widget-image-container { display: block; float: left; margin: 0 16px 8px 0; width: 120px; max-width: 120px; height: auto; align-items: normal; justify-content: normal; }      .tg-df-container .hawk-deal-widget-text-cta-container { display: block; text-align: left; }      .tg-df-container .hawk-deal-widget-footer { display: block; margin-top: 16px; clear: both; width: 100%; }      .tg-df-container .hawk-deal-widget-button-wrapper { display: block; width: 100%; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-deal-widget-preferred-partner-wrapper { display: block; width: 100%; }      .tg-df-container .hawk-affiliate-link-deal-button { box-sizing: border-box !important; display: flex !important; max-width: none !important; width: 100% !important; margin: 0 !important; }    }        .tg-df-container .hawk-affiliate-link-deal-button {       align-items: center; background-color: #5aaf0b; box-sizing: border-box; color: #ffffff !important; display: flex; font-size: 14px; font-weight: 700; justify-content: center; letter-spacing: 0.5px; line-height: 1; min-width: 160px; padding: 14px 24px; text-align: center; text-decoration: none; text-transform: uppercase; width: 100%; word-break: normal; border-radius: 4px; border: 0; transition: background-color 0.2s;     }    .tg-df-container .hawk-affiliate-link-deal-button:hover { background-color: #4a9109; text-decoration: none; }    .tg-df-container .hawk-lazy-image-deal-widget { display: block; height: auto; margin: auto; max-height: 160px; max-width: 100%; mix-blend-mode: multiply; object-fit: contain; }    .tg-df-container .hawk-deal-widget-text-cta-container a { color: #2563eb; text-decoration: none; display: inline; }    .tg-df-container .hawk-deal-widget-text-cta-container a:hover { text-decoration: underline; }    .tg-df-container .hawk-deal-widget-text-cta-container a:has(.hawk-deal-widget-title-product-title) { color: #111827; }    .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-product-title,    .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-retailer-price { text-decoration: underline; }  \x3C/style>  \x3C!-- Widget Container --\x3E  \x3Cdiv class="tg-df-container" id="signal-deals-finder-root">    \x3C!-- Editor Floating Bar --\x3E    \x3Cdiv class="tg-df-editor-bar" id="tg-df-editor-bar" style="display:none;">      \x3Cdiv class="tg-df-editor-bar-text" style="display: flex; align-items: center;">        \x3Cspan id="tg-df-selected-count">0\x3C/span>\x26nbsp;Deals Selected        \x3Cbutton class="tg-df-editor-clear-btn" id="tg-df-editor-clear" type="button" style="margin-left: 12px; font-size: 13px; color: #9ca3af; background: none; border: none; cursor: pointer; text-decoration: underline;">Clear All\x3C/button>      \x3C/div>      \x3Cbutton class="tg-df-editor-copy-btn" id="tg-df-editor-copy" type="button">        \x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2">\x3C/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1">\x3C/path>\x3C/svg>        Copy to CMS      \x3C/button>    \x3C/div>    \x3Cdiv class="tg-df-carousel-host" id="tg-df-carousel-host" style="display: none;">      \x3Cdiv class="tg-df-carousel-eyebrow">DEAL FINDER\x3C/div>      \x3Cdiv class="tg-df-carousel-query-title" id="tg-df-carousel-title-label">Best Deals\x3C/div>            \x3Cdiv class="tg-df-carousel-blue-box">        \x3Cdiv class="tg-df-carousel-bg-circle-1" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-bg-circle-2" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-bg-circle-3" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-box-content">          \x3Cdiv class="tg-df-countdown-wrapper" id="tg-df-countdown-wrapper" style="display:none;">            \x3Cdiv class="tg-df-countdown-title" id="tg-df-countdown-title">Prime Day starts in\x3C/div>            \x3Cdiv class="tg-df-countdown-blocks">              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-days">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">DAYS\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-hrs">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">HRS\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-min">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">MIN\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-sec">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">SEC\x3C/div>\x3C/div>            \x3C/div>          \x3C/div>          \x3Cdiv class="tg-df-carousel-box-eyebrow">DEAL FINDER\x3C/div>          \x3Cdiv class="tg-df-carousel-box-title">Find Deals Fast\x3C/div>          \x3Cdiv class="tg-df-carousel-box-subtitle">The latest deals from the biggest retailers, all in one place\x3C/div>                    \x3Cdiv class="tg-df-carousel-roundels-wrapper">          \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-roundels').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>          \x3Cdiv class="tg-df-carousel-roundels">            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>          \x3C/div>          \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" onclick="this.parentElement.querySelector('.tg-df-carousel-roundels').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>        \x3C/div>        \x3Cdiv class="tg-df-carousel-filters-outer" style="position: relative;">          \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-filters-wrap').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>          \x3Cdiv class="tg-df-carousel-filters-wrap">                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="0">All\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-ot="amazon_lightning">              \x3Cimg src="https://cdn.mos.cms.futurecdn.net/HqAui7w97ft2NPqBtQ5r38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/yWPQ5yyQRhUwVKzGwYbh38-600-100.png" class="active-img" alt="" /> Lightning deals\x3C/button>            \x3Cbutton class="tg-df-carousel-filter-btn" data-ot="amazon_prime">              \x3Cimg src="https://cdn.mos.cms.futurecdn.net/fwoVXvL79turN3Ph535m38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/u75QjVpt3w2EsMimJiRo38-600-100.png" class="active-img" alt="" /> Prime deals\x3C/button>            \x3Cbutton class="tg-df-carousel-filter-btn" data-d="10">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 10% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="15">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 15% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="25">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 25% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-pr="under50">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-badge-dollar-sign">\x3Cpath d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z">\x3C/path>\x3Cpath d="M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8">\x3C/path>\x3Cpath d="M12 18V6">\x3C/path>\x3C/svg>            Under $50\x3C/button>        \x3C/div>        \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-filters-wrap').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>      \x3C/div>    \x3C/div>    \x3C/div>      \x3C!-- Search & Filter Controls --\x3E    \x3Cdiv class="tg-df-controls" id="tg-df-controls" style="display:flex;">      \x3Cdiv class="tg-df-top-bar">        \x3Cdiv class="tg-df-search-wrapper">          \x3Cinput type="text" class="tg-df-search-input" placeholder="Search for deals, products, or brands...">          \x3Cbutton type="button" class="tg-df-search-btn" aria-label="Search">              \x3Csvg class="tg-df-search-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">                \x3Cpath d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/>              \x3C/svg>          \x3C/button>          \x3Cdiv class="tg-df-autocomplete-dropdown" id="tg-df-autocomplete">\x3C/div>        \x3C/div>                \x3Cdiv class="tg-df-settings-wrapper">          \x3Cbutton type="button" class="tg-df-settings-btn" aria-label="Settings" id="tg-df-settings-toggle">            \x3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20">                \x3Cpath d="M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.06-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.73 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.06.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .43-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.49-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z"/>            \x3C/svg>          \x3C/button>          \x3Cdiv class="tg-df-settings-dropdown-backdrop" id="tg-df-settings-backdrop">\x3C/div>          \x3Cdiv class="tg-df-settings-dropdown" id="tg-df-settings-panel">            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Search Region\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-region-select">                \x3Coption value="auto">🌍 Auto-detect\x3C/option>                \x3Coption value="US">🇺🇸 United States (US)\x3C/option>                \x3Coption value="GB">🇬🇧 United Kingdom (UK)\x3C/option>                \x3Coption value="CA">🇨🇦 Canada (CA)\x3C/option>                \x3Coption value="AU">🇦🇺 Australia (AU)\x3C/option>                \x3Coption value="DE">🇩🇪 Germany (DE)\x3C/option>                \x3Coption value="FR">🇫🇷 France (FR)\x3C/option>                \x3Coption value="IT">🇮🇹 Italy (IT)\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Retailer\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-retailer-select">                \x3Coption value="">All Retailers\x3C/option>                \x3Coption value="Amazon">Amazon\x3C/option>                \x3Coption value="Walmart">Walmart\x3C/option>                \x3Coption value="Best Buy">Best Buy\x3C/option>                \x3Coption value="Target">Target\x3C/option>                \x3Coption value="John Lewis">John Lewis\x3C/option>                \x3Coption value="Currys">Currys\x3C/option>                \x3Coption value="Argos">Argos\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Offer Type\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-offer-type-select">                \x3Coption value="">All Offers\x3C/option>                \x3Coption value="amazon_prime">Amazon Prime\x3C/option>                \x3Coption value="recommended_promo">Recommended Promo\x3C/option>                \x3Coption value="amazon_lightning">Amazon Lightning Deal\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Result Count\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-rows-select">                \x3Coption value="3">3 Items\x3C/option>                \x3Coption value="4">4 Items\x3C/option>                \x3Coption value="6">6 Items\x3C/option>                \x3Coption value="12" selected>12 Items\x3C/option>                \x3Coption value="24">24 Items\x3C/option>                \x3Coption value="48">48 Items\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item tg-df-dl-row">              \x3Cdiv>                \x3Cspan class="tg-df-dl-row-text">Deal Mode\x3C/span>                \x3Cspan class="tg-df-dl-row-subtext">Only show products with active offers or previous prices (was_price)\x3C/span>              \x3C/div>              \x3Clabel class="tg-df-toggle">                \x3Cinput type="checkbox" id="tg-df-deal-mode">                \x3Cspan class="tg-df-slider">\x3C/span>              \x3C/label>            \x3C/div>            \x3Cdiv class="tg-df-setting-item tg-df-dl-row">              \x3Cdiv>                \x3Cspan class="tg-df-dl-row-text">Editor Mode\x3C/span>                \x3Cspan class="tg-df-dl-row-subtext">Enable multi-select to copy deals to CMS\x3C/span>              \x3C/div>              \x3Clabel class="tg-df-toggle">                \x3Cinput type="checkbox" id="tg-df-editor-mode">                \x3Cspan class="tg-df-slider">\x3C/span>              \x3C/label>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">View Mode\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-view-mode-select">                \x3Coption value="auto">Auto Collection\x3C/option>                \x3Coption value="carousel">Carousel\x3C/option>                \x3Coption value="savings_squad">Savings Squad\x3C/option>                \x3Coption value="grid">Grid (Columns)\x3C/option>                \x3Coption value="row">Row (List)\x3C/option>              \x3C/select>            \x3C/div>          \x3C/div>        \x3C/div>      \x3C/div>      \x3Cdiv class="tg-df-filters">        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-category-filter-wrapper" style="display: none;">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-category-filter" aria-label="Category">            \x3Coption value="all">All Categories\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper tg-df-multiselect-container" id="tg-df-brand-filter-wrapper" style="display:none;">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M4.25 5.61C6.27 8.2 10 13 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-6s3.72-4.8 5.74-7.39A.998.998 0 0 0 18.95 4H5.04c-.83 0-1.3.95-.79 1.61z"/>          \x3C/svg>          \x3Cdiv class="tg-df-filter-select tg-df-multiselect-trigger" id="tg-df-brand-trigger" tabindex="0">            Any Brand          \x3C/div>          \x3Cdiv class="tg-df-multiselect-dropdown" id="tg-df-brand-dropdown">            \x3C!-- Populated via script --\x3E          \x3C/div>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M9 3L5 6.99h3V14h2V6.99h3L9 3zm7 14.01V10h-2v7.01h-3L15 21l4-3.99h-3z"/>          \x3C/svg>          \x3Cselect class="tg-df-sort-select" aria-label="Sort Deals">            \x3Coption value="date_desc">Newest First\x3C/option>            \x3Coption value="best_match">Sort by: Match\x3C/option>            \x3Coption value="price_asc">Price Low to High\x3C/option>            \x3Coption value="price_desc">Price High to Low\x3C/option>            \x3Coption value="discount_desc">Biggest Discount\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper tg-df-price-range-wrapper" id="tg-df-custom-price-wrapper" style="display: flex; align-items:center; justify-content:center; padding: 10px 20px; gap: 8px; border: 1px solid var(--tg-df-border); border-radius: 100px; background-color: var(--tg-df-bg);">          \x3Cspan style="font-size:14px; font-weight:500; color:var(--tg-df-text-primary);">Price\x3C/span>          \x3Cinput type="number" class="tg-df-price-input" id="tg-df-custom-price-min" placeholder="Min" style="width: 48px; background: transparent; border: none; color: var(--tg-df-text-primary); outline: none; font-size: 14px; text-align: center; padding: 0;">          \x3Cspan style="color:var(--tg-df-text-muted)">-\x3C/span>          \x3Cinput type="number" class="tg-df-price-input" id="tg-df-custom-price-max" placeholder="Max" style="width: 48px; background: transparent; border: none; color: var(--tg-df-text-primary); outline: none; font-size: 14px; text-align: center; padding: 0;">        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-legacy-price-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-price-filter" aria-label="Filter Prices">            \x3Coption value="all">All Prices\x3C/option>            \x3Coption value="under50">Under $50\x3C/option>            \x3Coption value="50_100">$50 - $100\x3C/option>            \x3Coption value="100_200">$100 - $200\x3C/option>            \x3Coption value="200_500">$200 - $500\x3C/option>            \x3Coption value="over500">Over $500\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-discount-filter-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">            \x3Cpath d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-discount-filter" aria-label="Discount Amount">            \x3Coption value="all">Any discount\x3C/option>            \x3Coption value="5">Min 5%\x3C/option>            \x3Coption value="10">Min 10%\x3C/option>            \x3Coption value="15">Min 15%\x3C/option>            \x3Coption value="20">Min 20%\x3C/option>            \x3Coption value="25">Min 25%\x3C/option>            \x3Coption value="30">Min 30%\x3C/option>            \x3Coption value="40">Min 40%\x3C/option>            \x3Coption value="50">Min 50%\x3C/option>            \x3Coption value="60">Min 60%\x3C/option>            \x3Coption value="70">Min 70%\x3C/option>          \x3C/select>        \x3C/div>      \x3C/div>    \x3C/div>    \x3C!-- Deals Grid Wrapper --\x3E    \x3Cdiv class="tg-df-grid-wrapper tg-df-carousel-cards-wrapper" id="tg-df-grid-wrapper">      \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('#tg-df-grid').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>      \x3Cdiv class="tg-df-grid" id="tg-df-grid">        \x3C!-- Content populated by JavaScript --\x3E      \x3C/div>      \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" style="display:none;" onclick="this.parentElement.querySelector('#tg-df-grid').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>    \x3C/div>        \x3C!-- Vouchers Modal --\x3E    \x3Cdiv class="tg-df-modal-backdrop" id="tg-df-vouchers-modal">      \x3Cdiv class="tg-df-modal">        \x3Cdiv class="tg-df-modal-header">          \x3Ch3 class="tg-df-modal-title" id="tg-df-vouchers-title">Available Coupons & Deals\x3C/h3>          \x3Cbutton class="tg-df-modal-close" id="tg-df-vouchers-close">            \x3Csvg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">              \x3Cline x1="18" y1="6" x2="6" y2="18">\x3C/line>              \x3Cline x1="6" y1="6" x2="18" y2="18">\x3C/line>            \x3C/svg>          \x3C/button>        \x3C/div>        \x3Cdiv class="tg-df-modal-body" id="tg-df-vouchers-content">          \x3C!-- Vouchers injected here --\x3E        \x3C/div>      \x3C/div>    \x3C/div>  \x3C/div>`;      if (!template) {        template = document.createElement('template');        template.innerHTML = rawTemplate;      }      let shadowRoot = null;      if (hostContainer && template) {        hostContainer.setAttribute('data-initialized', 'true');        shadowRoot = hostContainer.attachShadow({ mode: 'open' });        shadowRoot.appendChild(template.content.cloneNode(true));      }      class DealsFinderWidget {        constructor(config) {          this.rootNode = config.rootNode || document;          this.hostContainer = config.hostContainer || null;          this.rootId = config.rootId || 'signal-deals-finder-root';          this.root = this.rootNode.querySelector('#' + this.rootId);          if (!this.root) return;          this.widgetId = (window.crypto && window.crypto.randomUUID) ? window.crypto.randomUUID() : 'widget-' + Date.now() + '-' + Math.random().toString(36).slice(2);          this.grid = this.root.querySelector('#tg-df-grid');          this.tagsContainer = this.root.querySelector('#tg-df-tags-container');          this.categoryFilter = this.root.querySelector('#tg-df-category-filter');          this.categoryFilterWrapper = this.root.querySelector('#tg-df-category-filter-wrapper');          this.searchInput = this.root.querySelector('.tg-df-search-input');          this.autocompleteDropdown = this.root.querySelector('#tg-df-autocomplete');          this.sortSelect = this.root.querySelector('.tg-df-sort-select');          this.searchBtn = this.root.querySelector('.tg-df-search-btn');                    this.settingsToggle = this.root.querySelector('#tg-df-settings-toggle');          this.settingsPanel = this.root.querySelector('#tg-df-settings-panel');          this.settingsBackdrop = this.root.querySelector('#tg-df-settings-backdrop');          this.regionSelect = this.root.querySelector('#tg-df-region-select');          this.retailerSelect = this.root.querySelector('#tg-df-retailer-select');          this.offerTypeSelect = this.root.querySelector('#tg-df-offer-type-select');          this.viewModeSelect = this.root.querySelector('#tg-df-view-mode-select');          this.rowsSelect = this.root.querySelector('#tg-df-rows-select');          this.dealModeToggle = this.root.querySelector('#tg-df-deal-mode');          this.editorModeToggle = this.root.querySelector('#tg-df-editor-mode');          this.priceFilter = this.root.querySelector('#tg-df-price-filter');          this.discountFilter = this.root.querySelector('#tg-df-discount-filter');                    this.editorBar = this.root.querySelector('#tg-df-editor-bar');          this.editorSelectedCount = this.root.querySelector('#tg-df-selected-count');          this.editorCopyBtn = this.root.querySelector('#tg-df-editor-copy');          this.editorClearBtn = this.root.querySelector('#tg-df-editor-clear');                    this.apiUrl = 'https://search-api.fie.future.net.uk/widget.php';          this.deals = [];          this.displayLimit = 12;          this.airedaleArticles = null;          this.airedaleTags = [];          this.airedaleTagCounts = {};          this.activeDealTag = null;          this.selectedBrands = [];          this.currentQuery = '';          this.editorMode = this.hostContainer ? this.hostContainer.hasAttribute('data-editor-mode') : false;          this.viewModeOverride = this.hostContainer ? this.hostContainer.getAttribute('data-view-mode') : null;          this.selectedDeals = new Map();                    this.brandFilterWrapper = this.root.querySelector('#tg-df-brand-filter-wrapper');          this.brandTrigger = this.root.querySelector('#tg-df-brand-trigger');          this.brandDropdown = this.root.querySelector('#tg-df-brand-dropdown');                    this.customPriceWrapper = this.root.querySelector('#tg-df-custom-price-wrapper');          this.customPriceMin = this.root.querySelector('#tg-df-custom-price-min');          this.customPriceMax = this.root.querySelector('#tg-df-custom-price-max');          this.legacyPriceWrapper = this.root.querySelector('#tg-df-legacy-price-wrapper');          this.discountFilterWrapper = this.root.querySelector('#tg-df-discount-filter-wrapper');          this.initResizeObserver();          this.init();            if (['carousel', 'carousel-compact', 'auto', 'grid', 'row'].includes(this.getViewMode())) { this.loadCarouselSpreadsheet(); }        }        getViewMode() {          if (this.viewModeOverride && (!this.editorMode || !this.viewModeSelect)) {            return this.viewModeOverride;          }          return (this.viewModeSelect && this.viewModeSelect.value) ? this.viewModeSelect.value : (this.viewModeOverride || 'auto');        }        applyLayoutMode() {          if (!this.grid) return;          const mode = this.getViewMode();          this.grid.classList.remove('layout-row', 'layout-grid', 'tg-df-grid-auto', 'carousel-compact', 'layout-replica-1', 'layout-replica-2');                    const carouselHost = this.root.querySelector('#tg-df-carousel-host');          const controlsDiv = this.root.querySelector('#tg-df-controls');          if (mode === 'carousel' || mode === 'auto' || mode === 'grid' || mode === 'row') {             if (mode === 'carousel') this.grid.classList.add('carousel-compact');             if (carouselHost) carouselHost.style.display = 'block';             if (controlsDiv) controlsDiv.style.display = 'none';             if (this.root.classList.contains('tg-df-container') && mode === 'carousel') {               this.root.classList.add('is-carousel');             } else if (this.root.classList.contains('tg-df-container')) {               this.root.classList.remove('is-carousel');             }          } else {             if (carouselHost) carouselHost.style.display = 'none';             if (controlsDiv) controlsDiv.style.display = 'flex';             if (this.root.classList.contains('tg-df-container')) {               this.root.classList.remove('is-carousel');             }          }          if (mode === 'grid') {            this.grid.classList.add('layout-grid');          } else if (mode === 'row') {            this.grid.classList.add('layout-row');          } else if (mode === 'savings_squad') {            this.grid.classList.add('tg-df-grid-auto', 'savings-squad-cards');          } else if (mode !== 'carousel') {            this.grid.classList.add('tg-df-grid-auto');          }                    const settingsWrapper = this.root.querySelector('.tg-df-settings-wrapper');          if (settingsWrapper) {            settingsWrapper.style.display = mode === 'auto' ? 'none' : 'block';          }          if (this.customPriceWrapper) {             this.customPriceWrapper.style.display = mode === 'auto' ? 'flex' : 'none';          }          if (this.legacyPriceWrapper) {             this.legacyPriceWrapper.style.display = mode === 'auto' ? 'none' : 'flex';          }          if (this.discountFilterWrapper) {             this.discountFilterWrapper.style.display = mode === 'auto' ? 'none' : 'flex';          }        }        initResizeObserver() {          try {            if (window.parent === window) return;          } catch (e) {            // cross origin frame check threw          }          const emitHeight = () => {            try {              const height = document.documentElement.scrollHeight || document.body.scrollHeight;              const msg = { type: 'embed-size', height: height };              if (window.parent && window.parent !== window) {                window.parent.postMessage(msg, '*');                window.parent.postMessage(JSON.stringify({ ...msg, sentinel: 'amp' }), '*');              }            } catch (e) {}          };                    if (window.ResizeObserver) {            try {              const ro = new ResizeObserver(() => emitHeight());              ro.observe(document.body);              if (this.root) ro.observe(this.root);            } catch(e){ console.warn(e); }          }          window.addEventListener('resize', emitHeight);          setTimeout(emitHeight, 300);        }        initCountdown() {          this.cdWrapper = this.root.querySelector('#tg-df-countdown-wrapper');                    let searchSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {            searchSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {            searchSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(searchSource);          this.showCountdown = params.get('show_countdown') === 'true';          const showHeaderDetails = params.get('show_header_details') !== 'false';          const eyebrow = this.root.querySelector('.tg-df-carousel-box-eyebrow');          const title = this.root.querySelector('.tg-df-carousel-box-title');          const subtitle = this.root.querySelector('.tg-df-carousel-box-subtitle');          if (!showHeaderDetails) {            let containerElement = this.root.classList.contains('tg-df-container') ? this.root : this.root.querySelector('.tg-df-container');            if (containerElement) containerElement.classList.add('hide-header-details');            if (eyebrow) eyebrow.style.display = 'none';            if (title) title.style.display = 'none';            if (subtitle) subtitle.style.display = 'none';          }          if (!this.cdWrapper) return;          this.cdTitle = this.root.querySelector('#tg-df-countdown-title');          this.cdDays = this.root.querySelector('#tg-df-cd-days');          this.cdHrs = this.root.querySelector('#tg-df-cd-hrs');          this.cdMin = this.root.querySelector('#tg-df-cd-min');          this.cdSec = this.root.querySelector('#tg-df-cd-sec');          this.updateCountdown();          this.cdInterval = setInterval(() => this.updateCountdown(), 1000);        }        updateCountdown() {          if (!this.cdWrapper) return;          if (!this.showCountdown) {            this.cdWrapper.style.display = 'none';            return;          }          const area = this.getAreaCode();          let offset = '-04:00';          if (['DE', 'FR', 'IT', 'ES', 'NL'].includes(area)) {             offset = '+02:00';          } else if (['GB', 'IE', 'UK'].includes(area)) {             offset = '+01:00';          }          const startTime = new Date('2026-06-23T00:00:00' + offset).getTime();          const endTime = new Date('2026-06-26T00:00:00' + offset).getTime();          const now = Date.now();          let targetTime = 0;          if (now < startTime) {             targetTime = startTime;             if (this.cdTitle) this.cdTitle.textContent = 'Prime Day starts in';             this.cdWrapper.style.display = 'flex';          } else if (now < endTime) {             targetTime = endTime;             if (this.cdTitle) this.cdTitle.textContent = 'Prime Day ends in';             this.cdWrapper.style.display = 'flex';          } else {             this.cdWrapper.style.display = 'none';             if (this.cdInterval) clearInterval(this.cdInterval);             return;          }          const diff = Math.max(0, targetTime - now);          const d = Math.floor(diff / (1000 * 60 * 60 * 24));          const h = Math.floor((diff / (1000 * 60 * 60)) % 24);          const m = Math.floor((diff / 1000 / 60) % 60);          const s = Math.floor((diff / 1000) % 60);          if (this.cdDays) this.cdDays.textContent = d;          if (this.cdHrs) this.cdHrs.textContent = h;          if (this.cdMin) this.cdMin.textContent = m;          if (this.cdSec) this.cdSec.textContent = s;        }        init() {          this.initCountdown();          try {            initAnalytics();          } catch (e) {            console.warn('Deals Widget Analytics Error:', e);          }                    this.bindEvents();                    let initialQuery = '';                    let searchSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {            searchSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {            searchSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(searchSource);          let initialViewMode = params.get('view_mode');          if (!params.has('search') && !params.has('q') && !params.has('query') && initialViewMode !== 'savings_squad') {             initialQuery = 'Everything';             if (this.discountFilter && !params.has('min_discount_ratio')) {               this.discountFilter.value = '5';             }          }          const website = params.get('website') || 'tomsguide';          this.website = website;          if (website === 'techradar') {            const squadHeader = this.root.querySelector('.tg-df-savings-squad-header');            if (squadHeader) {               const pic = squadHeader.querySelector('picture');               if (pic) pic.style.display = 'none';            }            const style = document.createElement('style');            style.innerHTML = `              .tg-df-container .hawk-affiliate-link-deal-button, .tg-df-container .tg-df-card-cta { background-color: #5DAF08 !important; }              .tg-df-container .hawk-affiliate-link-deal-button:hover, .tg-df-container .tg-df-card-cta:hover { background-color: #4a8c06 !important; }            `;            this.root.appendChild(style);          }                    if (this.regionSelect) {            this.regionSelect.value = params.get('region') || 'auto';            this.updatePriceDropdownCurrency();          }                    if (this.retailerSelect && params.has('retailer')) {            this.retailerSelect.value = params.get('retailer');          }                    if (params.has('brands')) {            const b = params.get('brands');            if (b) {              this.selectedBrands = b.split(',');            }          }                    if (this.offerTypeSelect && params.has('offer_type')) {            this.offerTypeSelect.value = params.get('offer_type');          }          if (params.has('bg_color')) {            const bg = params.get('bg_color');            if (bg === 'white') {              this.root.style.setProperty('background-color', '#ffffff', 'important');            } else if (bg === 'transparent') {              this.root.style.setProperty('background-color', 'transparent', 'important');            } else if (bg === 'light_blue') {              this.root.style.setProperty('background-color', '#E7F0FF', 'important');            }          } else {             this.root.style.removeProperty('background-color');          }                    if (params.has('view_mode')) {            if (this.viewModeSelect) {              this.viewModeSelect.value = params.get('view_mode');            } else {              this.viewModeOverride = params.get('view_mode');            }          }          if (this.rowsSelect && params.has('rows')) {            this.rowsSelect.value = params.get('rows');          }          if (params.has('price')) {            const priceVal = params.get('price');            if (this.priceFilter) {               // Try assigning it directly to select. If it's not present implicitly ignores               this.priceFilter.value = priceVal;            }            if (priceVal.includes('_')) {               const parts = priceVal.split('_');               if (this.customPriceMin && parts[0]) this.customPriceMin.value = parts[0];               if (this.customPriceMax && parts[1]) this.customPriceMax.value = parts[1];            }          }          if (this.discountFilter && params.has('min_discount_ratio')) {            // Need to convert back from ratio (e.g. 0.8) to select value (e.g. "20")            const ratioStr = params.get('min_discount_ratio');            const ratioFloat = parseFloat(ratioStr);            if (!isNaN(ratioFloat)) {               const percentage = Math.round((1 - ratioFloat) * 100);               this.discountFilter.value = percentage.toString();            }          }          if (this.sortSelect) {            this.sortSelect.value = params.get('sort') || 'discount_desc';          }          if (this.dealModeToggle && params.has('deal_mode')) {            this.dealModeToggle.checked = params.get('deal_mode') === 'true' || params.get('deal_mode') === '1';          }                    // Re-apply layout after params have updated control values          this.applyLayoutMode();                    if (params.get('search')) {            initialQuery = params.get('search');          } else if (params.get('q')) {            initialQuery = params.get('q');          } else if (params.get('query')) {            initialQuery = params.get('query');          }                    this.currentQuery = initialQuery;          if (this.searchInput) {            this.searchInput.value = this.currentQuery;          }                    if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {            this.fetchDeals(this.currentQuery);          } else {            this.render();          }        }        updatePriceDropdownCurrency() {          if (!this.priceFilter || !this.regionSelect) return;          const currencySymbols = {            'US': '$',            'GB': '£',            'CA': '$CA',            'AU': '$AU',            'DE': '€',            'FR': '€',            'IT': '€',          };          const area = this.getAreaCode();          const cur = currencySymbols[area || 'US'] || '$';                    const options = this.priceFilter.options;          for (let i = 0; i < options.length; i++) {            const opt = options[i];            if (opt.value === 'all') {              opt.innerText = 'All Prices';            } else if (opt.value === 'under50') {              opt.innerText = `Under ${cur}50`;            } else if (opt.value === '50_100') {              opt.innerText = `${cur}50 - ${cur}100`;            } else if (opt.value === '100_200') {              opt.innerText = `${cur}100 - ${cur}200`;            } else if (opt.value === '200_500') {              opt.innerText = `${cur}200 - ${cur}500`;            } else if (opt.value === 'over500') {              opt.innerText = `Over ${cur}500`;            }          }        }        populateBrandDropdown(values) {          if (!this.brandDropdown || !this.brandFilterWrapper) return;          this.brandFilterWrapper.style.display = 'flex'; // show the wrapper                    let html = '';          const allChecked = this.selectedBrands.length === 0 ? 'checked' : '';          const _div = '<' + '/div>';          const _span = '<' + '/span>';          html += `\x3Cdiv class="tg-df-ms-option">\x3Cinput type="checkbox" value="" ${allChecked} class="tg-df-brand-chk"> Any Brand${_div}`;                    values.forEach(v => {             if (!v.formatted_value || v.formatted_value === 'Any Brand') return;             const isChecked = this.selectedBrands.includes(v.formatted_value) ? 'checked' : '';             html += `\x3Cdiv class="tg-df-ms-option">\x3Cinput type="checkbox" value="${this.escapeHTML(v.formatted_value)}" ${isChecked} class="tg-df-brand-chk"> ${this.escapeHTML(v.formatted_value)} \x3Cspan style="color:var(--tg-df-text-muted);font-size:12px">(${v.count || 0})${_span}${_div}`;          });                    this.brandDropdown.innerHTML = html;                    // Re-bind listeners          const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');          chks.forEach(chk => {            chk.addEventListener('change', (e) => {              const val = e.target.value;              if (val === '') {                this.selectedBrands = [];              } else {                if (e.target.checked) {                   if (!this.selectedBrands.includes(val)) this.selectedBrands.push(val);                } else {                   this.selectedBrands = this.selectedBrands.filter(b => b !== val);                }              }                            if (this.selectedBrands.length === 0) {                 this.brandTrigger.innerText = 'Any Brand';              } else if (this.selectedBrands.length === 1) {                 this.brandTrigger.innerText = this.selectedBrands[0];              } else {                 this.brandTrigger.innerText = `${this.selectedBrands.length} Brands selected`;              }                            // Only call API if changed from UI interactions              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                 this.updateURLParams();                 this.fetchDeals(this.currentQuery);              }            });          });                    // Update button text on load          if (this.selectedBrands.length === 0) {             this.brandTrigger.innerText = 'Any Brand';          } else if (this.selectedBrands.length === 1) {             this.brandTrigger.innerText = this.selectedBrands[0];          } else {             this.brandTrigger.innerText = `${this.selectedBrands.length} Brands selected`;          }        }        updateURLParams() {          const url = new URL(window.location);          if (this.currentQuery && this.currentQuery !== 'Gaming laptops') {            url.searchParams.set('q', this.currentQuery);          } else {            url.searchParams.delete('q');            url.searchParams.delete('search');            url.searchParams.delete('query');          }                    if (this.regionSelect && this.regionSelect.value !== 'auto') {            url.searchParams.set('region', this.regionSelect.value);          } else {            url.searchParams.delete('region');          }                    if (this.retailerSelect && this.retailerSelect.value) {            url.searchParams.set('retailer', this.retailerSelect.value);          } else {            url.searchParams.delete('retailer');          }                    if (this.selectedBrands && this.selectedBrands.length > 0) {            url.searchParams.set('brands', this.selectedBrands.join(','));          } else {            url.searchParams.delete('brands');          }                    if (this.offerTypeSelect && this.offerTypeSelect.value) {            url.searchParams.set('offer_type', this.offerTypeSelect.value);          } else {            url.searchParams.delete('offer_type');          }                    if (this.viewModeSelect && this.viewModeSelect.value !== 'auto') {            url.searchParams.set('view_mode', this.viewModeSelect.value);          } else {            url.searchParams.delete('view_mode');          }                    if (this.rowsSelect && this.rowsSelect.value !== '12') {            url.searchParams.set('rows', this.rowsSelect.value);          } else {            url.searchParams.delete('rows');          }                    const min = this.customPriceMin ? this.customPriceMin.value : '';          const max = this.customPriceMax ? this.customPriceMax.value : '';          if (min || max) {             url.searchParams.set('price', `${min}_${max}`);          } else if (this.priceFilter && this.priceFilter.value !== 'all') {            url.searchParams.set('price', this.priceFilter.value);          } else {            url.searchParams.delete('price');          }                    if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {            const v = parseInt(this.discountFilter.value);            if (!isNaN(v) && v > 0) {               const ratio = (100 - v) / 100;               url.searchParams.set('min_discount_ratio', ratio.toString());            }          } else {            url.searchParams.delete('min_discount_ratio');          }                    if (this.sortSelect && this.sortSelect.value !== 'discount_desc') {            url.searchParams.set('sort', this.sortSelect.value);          } else {            url.searchParams.delete('sort');          }                    if (this.dealModeToggle && this.dealModeToggle.checked) {            url.searchParams.set('deal_mode', 'true');          } else {            url.searchParams.delete('deal_mode');          }                    window.history.replaceState({}, '', url);        }        bindEvents() {          const roundels = this.root.querySelectorAll('.tg-df-carousel-cat.original-hardcoded');          roundels.forEach(r => {             r.addEventListener('click', () => {                const q = r.getAttribute('data-query');                const pr = r.getAttribute('data-pr');                if (typeof trackHawkEvent !== 'undefined') {                     trackHawkEvent({                         clickType: "CC",                         widgetId: this.widgetId,                         productCategoryName: "deals",                         zeroBasedProductIndexOrNull: null,                         totalDealsOrProducts: null,                         areaClicked: "Category Roundel",                         revenueId: this.revenueId,                         isoCurrencyCode: typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD',                         queryName: q,                         widgetTypeName: this.widgetTypeName                     });                 }                this.currentQuery = q;                const label = this.root.querySelector('#tg-df-carousel-title-label');                if (label) label.textContent = 'Best ' + q;                if (this.priceFilter) this.priceFilter.value = pr || 'all';                if (this.discountFilter) this.discountFilter.value = '5';                if (this.searchInput) this.searchInput.value = q;                                roundels.forEach(ro => ro.classList.remove('active'));                r.classList.add('active');                this.fetchDeals(this.currentQuery);             });          });          const discBtns = this.root.querySelectorAll('.tg-df-carousel-filter-btn');          discBtns.forEach(b => {             b.addEventListener('click', () => {                const d = b.getAttribute('data-d');                const pr = b.getAttribute('data-pr');                const ot = b.getAttribute('data-ot');                let label = b.innerText ? b.innerText.trim() : '';                let filterType = 'unknown';                let filterVal = 'unknown';                if (d !== null) { filterType = 'discount'; filterVal = d; }                else if (pr !== null) { filterType = 'price'; filterVal = pr; }                else if (ot !== null) { filterType = 'offertype'; filterVal = ot; }                if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: `filter-${filterType}-${filterVal}`, name: 'Filter Button', label: label });                                if (d !== null) {                   if (this.discountFilter) this.discountFilter.value = this.discountFilter.value === d ? '0' : d;                } else if (pr !== null) {                   if (this.priceFilter) this.priceFilter.value = this.priceFilter.value === pr ? 'all' : pr;                } else if (ot !== null) {                   if (this.offerTypeSelect) this.offerTypeSelect.value = this.offerTypeSelect.value === ot ? 'all' : ot;                } else {                   if (this.discountFilter) this.discountFilter.value = '0';                   if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.offerTypeSelect) this.offerTypeSelect.value = 'all';                }                if (d === null && pr === null && ot === null && b.getAttribute("data-type") !== "custom") {                   discBtns.forEach(ro => ro.classList.remove('active'));                   b.classList.add('active');                } else if (b.getAttribute("data-type") !== "custom") {                   // Only operate on hardcoded buttons (those without data-type)                   discBtns.forEach(ro => {                      if (!ro.getAttribute('data-d') && !ro.getAttribute('data-pr') && !ro.getAttribute('data-ot') && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active');                   });                                      let makeActive = true;                   if (d !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-d') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   } else if (pr !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-pr') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   } else if (ot !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-ot') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   }                                      if (makeActive) b.classList.add('active');                                      // Check if anything is active, if not activate "All"                   let anyActive = false;                   discBtns.forEach(ro => { if (ro.classList.contains('active') && ro.getAttribute('data-type') !== 'custom') anyActive = true; });                   if (!anyActive) {                       discBtns.forEach(ro => { if (!ro.getAttribute('data-d') && !ro.getAttribute('data-pr') && !ro.getAttribute('data-ot') && ro.getAttribute('data-type') !== 'custom') ro.classList.add('active'); });                   }                }                                this.fetchDeals(this.currentQuery);             });          });          if (this.brandTrigger && this.brandDropdown) {            this.brandTrigger.addEventListener('click', () => {              this.brandDropdown.classList.toggle('active');            });            document.addEventListener('click', (e) => {              if (this.brandFilterWrapper && !e.composedPath().includes(this.brandFilterWrapper)) {                this.brandDropdown.classList.remove('active');              }            });          }          let debounceTimer;          if(this.searchInput) {            this.searchInput.addEventListener('input', (e) => {              clearTimeout(debounceTimer);              const query = e.target.value.trim();              this.currentQuery = query;              if (this.getViewMode() === 'savings_squad' && this.autocompleteDropdown && this.airedaleTags && query.length > 0) {                 const matches = this.airedaleTags.filter(t => t.toLowerCase().includes(query.toLowerCase()) && t.toLowerCase() !== query.toLowerCase()).slice(0, 5);                 if (matches.length > 0) {                    this.autocompleteDropdown.innerHTML = matches.map(m => `\x3Cdiv class="tg-df-autocomplete-item" data-tag="${this.escapeHTML(m)}">${this.escapeHTML(m)}<` + `/div>`).join('');                    this.autocompleteDropdown.classList.add('active');                 } else {                    this.autocompleteDropdown.classList.remove('active');                 }              } else if (this.autocompleteDropdown) {                 this.autocompleteDropdown.classList.remove('active');              }              debounceTimer = setTimeout(() => {                this.updateURLParams();                if (query.length > 2) {                  this.fetchDeals(query);                } else if (query.length === 0) {                  this.deals = [];                  this.render();                }              }, 400);            });            this.searchInput.addEventListener('keypress', (e) => {              if (e.key === 'Enter') {                if (this.autocompleteDropdown) this.autocompleteDropdown.classList.remove('active');                clearTimeout(debounceTimer);                const query = e.target.value.trim();                this.currentQuery = query;                this.activeDealTag = null;                trackElementInteraction({ id: 'search-submit', name: 'Ask', label: 'Ask (main search)', text: query });                this.updateURLParams();                if (query.length > 2 || (this.getViewMode() === 'savings_squad')) {                   this.fetchDeals(query);                }              }            });          }          if (this.autocompleteDropdown) {             this.autocompleteDropdown.addEventListener('click', (e) => {                const item = e.target.closest('.tg-df-autocomplete-item');                if (item) {                   const tag = item.getAttribute('data-tag');                   this.currentQuery = tag;                   if (this.searchInput) this.searchInput.value = tag;                   this.activeDealTag = tag;                   this.autocompleteDropdown.classList.remove('active');                   this.updateURLParams();                   this.fetchDeals(tag);                }             });             document.addEventListener('click', (e) => {               if (this.autocompleteDropdown && this.searchInput && !e.composedPath().includes(this.searchInput) && !e.composedPath().includes(this.autocompleteDropdown)) {                 this.autocompleteDropdown.classList.remove('active');               }             });          }          if (this.searchBtn) {            this.searchBtn.addEventListener('click', () => {              if (this.autocompleteDropdown) this.autocompleteDropdown.classList.remove('active');              clearTimeout(debounceTimer);              const query = this.searchInput.value.trim();              trackElementInteraction({ id: 'search-submit', name: 'Ask', label: 'Ask (main search)', text: query });              this.activeDealTag = null;              this.currentQuery = query;              this.updateURLParams();              if (query.length > 2 || (this.getViewMode() === 'savings_squad')) {                 this.fetchDeals(query);              }            });          }          if(this.sortSelect) this.sortSelect.addEventListener('change', () => {            trackElementInteraction({ id: `sort-option-${this.sortSelect.value}`, name: 'Sort', label: `Sort: ${this.sortSelect.options[this.sortSelect.selectedIndex].text}` });            this.updateURLParams();            if (this.deals.length > 0) {              this.sortData();              this.render();            }          });                    const priceFilter = this.root.querySelector('#tg-df-price-filter');          if (priceFilter) {            this.priceFilter = priceFilter;            this.priceFilter.addEventListener('change', () => {              trackElementInteraction({ id: `filter-price-${this.priceFilter.value}`, name: 'Price', label: this.priceFilter.options[this.priceFilter.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }            });          }          const updateCustomPrice = () => {             this.updateURLParams();             if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);             } else {                this.render();             }          };          if (this.customPriceMin) {             this.customPriceMin.addEventListener('change', updateCustomPrice);             this.customPriceMin.addEventListener('keypress', (e) => {                if (e.key === 'Enter') updateCustomPrice();             });          }          if (this.customPriceMax) {             this.customPriceMax.addEventListener('change', updateCustomPrice);             this.customPriceMax.addEventListener('keypress', (e) => {                if (e.key === 'Enter') updateCustomPrice();             });          }          const discountFilter = this.root.querySelector('#tg-df-discount-filter');          if (discountFilter) {            this.discountFilter = discountFilter;            this.discountFilter.addEventListener('change', () => {              trackElementInteraction({ id: `filter-discount-${this.discountFilter.value}`, name: 'Discount', label: this.discountFilter.options[this.discountFilter.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }            });          }          if (this.categoryFilter) {            this.categoryFilter.addEventListener('change', (e) => {               const val = e.target.value === 'all' ? null : e.target.value;               this.activeDealTag = val;               this.fetchSavingsSquad();            });          }                    if (this.settingsToggle) {            this.settingsToggle.addEventListener('click', () => {              const o = this.settingsPanel.classList.toggle('active');              this.settingsBackdrop.classList.toggle('active');              if (o) trackElementInteraction({ id: 'filter-open', name: 'Filters', label: 'Open filters' });            });          }                    if (this.settingsBackdrop) {            this.settingsBackdrop.addEventListener('click', () => {              this.settingsPanel.classList.remove('active');              this.settingsBackdrop.classList.remove('active');            });          }                    if (this.regionSelect) {            this.regionSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-region-${this.regionSelect.value}`, name: 'Region', label: this.regionSelect.options[this.regionSelect.selectedIndex].text });              this.updateURLParams();              this.updatePriceDropdownCurrency();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.retailerSelect) {            this.retailerSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-merchant-${this.retailerSelect.value}`, name: 'Retailer', label: this.retailerSelect.options[this.retailerSelect.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.offerTypeSelect) {            this.offerTypeSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-offertype-${this.offerTypeSelect.value}`, name: 'Offer Type', label: this.offerTypeSelect.options[this.offerTypeSelect.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.viewModeSelect) {            this._prevViewMode = this.viewModeSelect.value;            this.viewModeSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-viewmode-${this.viewModeSelect.value}`, name: 'View Mode', label: this.viewModeSelect.options[this.viewModeSelect.selectedIndex].text });                            // Reset all active toggles and filters to prevent config carry-over              this.selectedBrands = [];              if (this.brandTrigger) this.brandTrigger.innerText = 'Select Brands';              if (this.brandDropdown) {                const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                chks.forEach(chk => { chk.checked = false; });              }              if (this.priceFilter) this.priceFilter.value = 'all';              if (this.customPriceMin) this.customPriceMin.value = '';              if (this.customPriceMax) this.customPriceMax.value = '';              if (this.sortSelect) this.sortSelect.value = this.viewModeSelect.value === 'savings_squad' ? 'date_desc' : 'discount_desc';              if (this.discountFilter) this.discountFilter.value = '0';              if (this.retailerSelect) this.retailerSelect.value = '';              if (this.offerTypeSelect) this.offerTypeSelect.value = '';              if (this.rowsSelect) this.rowsSelect.value = '12';              if (this.categoryFilter) this.categoryFilter.value = 'all';              this.activeDealTag = null;              this.updateURLParams();              this.applyLayoutMode();                            if (this.getViewMode() === 'savings_squad' || this._prevViewMode === 'savings_squad') {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }              this._prevViewMode = this.viewModeSelect.value;            });          }                    if (this.rowsSelect) {            this.rowsSelect.addEventListener('change', () => {              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.dealModeToggle) {            this.dealModeToggle.addEventListener('change', () => {              this.updateURLParams();              this.render();            });          }          if (this.editorModeToggle) {             this.editorModeToggle.addEventListener('change', (e) => {                this.editorMode = e.target.checked;                this.render();                this.updateFloatingCopyBar();             });          }          if (this.editorCopyBtn) {             this.editorCopyBtn.addEventListener('click', () => {                this.copySelectedDealsToCMS();             });          }          if (this.editorClearBtn) {             this.editorClearBtn.addEventListener('click', () => {                this.selectedDeals.clear();                this.render();                this.updateFloatingCopyBar();             });          }          if (this.grid) {            this.grid.addEventListener('change', (e) => {               if (e.target.classList.contains('tg-df-deal-checkbox')) {                  const dealId = e.target.getAttribute('data-id');                  if (e.target.checked) {                     const dealObj = this.deals.find(d => d.id === dealId);                     if (dealObj) this.selectedDeals.set(dealId, dealObj);                  } else {                     this.selectedDeals.delete(dealId);                  }                  this.updateFloatingCopyBar();               }            });            this.grid.addEventListener('click', (e) => {              const dealCard = e.target.closest('[data-action="deal-click"]');              const similarCard = e.target.closest('[data-action="view-similar-click"]');              const cardLink = dealCard || similarCard;              if (cardLink) {                const productName = cardLink.getAttribute('data-product-name');                const merchantName = cardLink.getAttribute('data-merchant-name');                const productId = cardLink.getAttribute('data-analytics-id');                const price = parseFloat(cardLink.getAttribute('data-price')) || null;                const prevPriceStr = cardLink.getAttribute('data-previous-price');                const previousPrice = prevPriceStr ? parseFloat(prevPriceStr) : null;                const originalLink = cardLink.getAttribute('data-original-link');                const rewrittenLink = cardLink.getAttribute('href');                const revenueId = cardLink.getAttribute('data-revenue-id');                const index = parseInt(cardLink.getAttribute('data-index'), 10) || 0;                const inStock = cardLink.getAttribute('data-in-stock') === 'true';                const totalText = cardLink.getAttribute('data-total');                const totalDeals = parseInt(totalText, 10) || 0;                const productCategoryName = 'deals';                const trackingParams = {                  widgetId: this.widgetId,                  productCategoryName: productCategoryName,                  product: {                    modelId: cardLink.getAttribute('data-model-id') || null,                    matchId: cardLink.getAttribute('data-match-id') || null,                    brand: cardLink.getAttribute('data-model-brand') || null,                    parent: cardLink.getAttribute('data-model-parent') || null,                    name: productName,                    price: price,                    previousPrice: previousPrice,                    link: rewrittenLink,                    originalLink: originalLink,                    inStock: inStock                  },                  zeroBasedProductIndexOrNull: index,                  totalDealsOrProducts: totalDeals,                   merchant: {                    id: cardLink.getAttribute('data-merchant-id') || null,                    network: cardLink.getAttribute('data-merchant-network') || null,                    url: cardLink.getAttribute('data-merchant-url') || null,                    name: merchantName                  },                  revenueId: revenueId,                  widgetTypeName: this.widgetTypeName,                  isoCurrencyCode: normalizeCurrency(this.escapeHTML(cardLink.getAttribute('data-currency') || '$'))                };                if (dealCard) {                  trackDealClick(trackingParams);                } else {                  trackViewSimilarClick(trackingParams);                }              }              const couponsBtn = e.target.closest('[data-action="coupons-click"]');              if (couponsBtn) {                trackElementInteraction({                  id: 'product-card-show-coupons',                  name: 'Coupons',                  label: `Product card coupons: ${couponsBtn.getAttribute('data-merchant')}`                });              }            });          }          this.setupScrollListeners();        }        setupScrollListeners() {          const containers = [             this.root.querySelector('.tg-df-carousel-roundels'),             this.root.querySelector('.tg-df-carousel-filters-wrap'),             this.root.querySelector('#tg-df-grid')          ];                    containers.forEach(container => {             if (!container) return;                          const checkScroll = () => {                if (!container.parentElement) return;                const leftBtn = container.parentElement.querySelector('.tg-df-carousel-scroll-left');                const rightBtn = container.parentElement.querySelector('.tg-df-carousel-scroll-right');                                if (leftBtn) {                   if (container.scrollLeft <= 5) leftBtn.style.display = 'none';                   else leftBtn.style.display = 'flex';                }                                if (rightBtn) {                   if (container.scrollWidth <= container.clientWidth) {                       rightBtn.style.display = 'none';                   } else if (container.scrollLeft >= container.scrollWidth - container.clientWidth - 5) {                       rightBtn.style.display = 'none';                   } else {                       rightBtn.style.display = 'flex';                   }                }             };                          container.addEventListener('scroll', checkScroll);             checkScroll();                          window.addEventListener('resize', checkScroll);                          const observer = new MutationObserver(checkScroll);             observer.observe(container, { childList: true, subtree: true, characterData: false });          });        }        get widgetTypeName() {          const mode = this.viewModeSelect ? this.viewModeSelect.value : (this.viewModeOverride || 'auto');          switch(mode) {              case 'carousel': return 'Carousel';              case 'savings_squad': return 'Savings Squad';              case 'grid': return 'Grid';              case 'row': return 'Row';              default: return 'Auto Collection';          }        }        getRowsLimit() {          if (this.rowsSelect && this.rowsSelect.value) return parseInt(this.rowsSelect.value, 10);          let configSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {             configSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {             configSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(configSource);          if (params.has('rows')) return parseInt(params.get('rows'), 10) || 12;          return 12;        }        getAreaCode() {          if (this.regionSelect && this.regionSelect.value) {            if (this.regionSelect.value === 'auto') return null;            return this.regionSelect.value;          }          let area = null;          try {            const locale = window.navigator.language || window.navigator.userLanguage;            if (locale && locale.includes('-')) {              area = locale.split('-')[1].toUpperCase();            } else if (locale && locale.length === 2) {              if (locale.toUpperCase() === 'EN') { area = 'US'; }              else { area = locale.toUpperCase(); }            }          } catch (e) { /* Ignore */ }                    // Map to known valid options or fallback to US          const valid = ['US', 'GB', 'CA', 'AU', 'DE', 'FR', 'IT'];          if (area === 'UK') area = 'GB';          if (valid.includes(area)) {             return area;          }          return 'US';        }                async loadCarouselSpreadsheet() {          try {              const parseCSVRow = (str) => {                  let result = [], cur = '', inQuotes = false;                  for (let i = 0; i < str.length; i++) {                      let char = str[i];                      if (inQuotes) {                          if (char === '"') {                              if (str[i + 1] === '"') { cur += '"'; i++; }                              else { inQuotes = false; }                          } else { cur += char; }                      } else {                          if (char === '"') { inQuotes = true; }                          else if (char === ',') { result.push(cur); cur = ''; }                          else { cur += char; }                      }                  }                  result.push(cur); return result;              };              const parseCSV = (str) => {                  const rows = []; let curRow = '', inQuotes = false;                  for (let i = 0; i < str.length; i++) {                      let char = str[i];                      if (char === '"') inQuotes = !inQuotes;                      if ((char === '\n' || char === '\r') && !inQuotes) {                          if (char === '\r' && str[i+1] === '\n') i++;                          if (curRow) rows.push(parseCSVRow(curRow));                          curRow = '';                      } else { curRow += char; }                  }                  if (curRow) rows.push(parseCSVRow(curRow));                  return rows;              };              const preloadedCSV = decodeURIComponent(escape(atob("LCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNQ0KUm91bmRlbCB0ZXh0LEFsbCxUVnMsRm9vdHdlYXIsQXBwYXJlbCxNYXR0cmVzZXMsQXBwbGlhbmNlcyxXZWFyYWJsZSB0ZWNoLEhlYWRwaG9uZXMsU21hcnQgSG9tZSxTcGVha2VycyxMYXB0b3BzLFRhYmxldHMsQ29tcHV0aW5nLFBob25lcyxHYW1pbmcsTGVnbw0KUm91bmRlbCBpbWFnZSxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL2FpLnBuZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL3R2cy5wbmcsaHR0cHM6Ly9pbWFnZXMuZmllLmZ1dHVyZWNkbi5uZXQvcHJvZHVjdHMvN2IzYTIyNGIwNzk2M2M2MjdiNmI5MDliZDc4MzM4MzZlMDJmZjgxOS5qcGcud2VicCxodHRwczovL2ltYWdlcy5maWUuZnV0dXJlY2RuLm5ldC9wcm9kdWN0cy84NGRhYzVkNDhlZDJkNDQ4NTU5ZWJhNjdhY2U4MzE0Y2M2N2NjZDk0LmpwZy53ZWJwLGh0dHBzOi8vd3d3LnRvbXNndWlkZS5jb20vc2hvcC1hc3NldHMvY2Fyb3VzZWwvbWF0dHJlc3Nlcy5wbmcsaHR0cHM6Ly9pbWFnZXMuZmllLmZ1dHVyZWNkbi5uZXQvcHJvZHVjdHMvNzY4ZTk3Y2ViMDcxODAxZmFlMjA5MTBkMDgyMGIxNmY3NDdhZjkzOS5qcGcud2VicCxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL3dlbGxuZXNzLnBuZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL2hlYWRwaG9uZXMuanBnLGh0dHBzOi8vaW1hZ2VzLmZpZS5mdXR1cmVjZG4ubmV0L3Byb2R1Y3RzLzg5NTM1YmVlYmUyMGRiYmQ0YTM0NmQ2ZDZiZGZlOTFkOGE4ODRhMjEuanBnLndlYnAsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9zaG9wLWFzc2V0cy9jYXJvdXNlbC9hdWRpby5qcGcsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9zaG9wLWFzc2V0cy9jYXJvdXNlbC9sYXB0b3BzLmpwZyxodHRwczovL2ltYWdlcy5maWUuZnV0dXJlY2RuLm5ldC9wcm9kdWN0cy8yMzk3NTY0ZWQ3YTVmZjk0N2U5YjZiMzBlNTRmNDc0OTRiODQxZjg5LmpwZy53ZWJwLGh0dHBzOi8vd3d3LnRvbXNndWlkZS5jb20vc2hvcC1hc3NldHMvY2Fyb3VzZWwvY29tcHV0aW5nLmpwZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL3Bob25lcy5wbmcsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9zaG9wLWFzc2V0cy9jYXJvdXNlbC9nYW1pbmcucG5nLGh0dHBzOi8vaW1hZ2VzLmZpZS5mdXR1cmVjZG4ubmV0L3Byb2R1Y3RzLzRmNmM2MjFjYWMwYmMxYTg1ZDU5M2UzNTk0YmE1YjM0OWVmZmQyOTIuanBnLndlYnANClNlYXJjaCBRdWVyeSxFdmVyeXRoaW5nLFRlbGV2aXNpb25zLCJTbmVha2VycywgcnVubmluZyBzaG9lcywgc2FuZGFscyIsQ2xvdGhpbmcsTWF0dHJlc3NlcyxIb21lIEFwcGxpYW5jZXMsV2VhcmFibGVzICYgRml0bmVzcyBUZWNoLEhlYWRwaG9uZXMsSG9tZSBUZWNoLFNwZWFrZXJzLExhcHRvcHMsVGFibGV0cyxDb21wdXRpbmcsUGhvbmVzLEdhbWluZyxDb25zdHJ1Y3Rpb24gVG95cw0KRGlzY291bnQgQW1vdW50LG1pbiA1JSxtaW4gMTAlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUNClByaWNlIFJhbmdlLCwsLCxtaW4gJDQwMCwsLCxtaW4gJDI1LCxtaW4gJDMwMCwsLG1pbiAkMTAwLCwNCkJyYW5kIFNlbGVjdGlvbiwsLCwsLCwsLCwsLCwsLCwNCkZpbHRlciBidXR0b25zLCwsLCwsLCwsLCwsLCwsLA0KMSxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMNCjIsQW1hem9uIGRlYWxzLFVuZGVyICQxMDAwLDUwJSBvZmYsQWRpZGFzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsNTAlIG9mZixBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscw0KMyxPdmVyICQ0MDAsVW5kZXIgJDUwMCxIb2thLE5pa2UsU2FhdHZhLE5pbmphLDQwJSBvZmYsSkxhYiwsSkJMLERlbGwsLEFzdXMsQXBwbGUsQ29uc29sZXMsU3RhciBXYXJzDQo0LFVuZGVyICQxMDAwLDUwJSBvZmYsU2tlY2hlcnMsVW5kZXIgQXJtb3VyLEhlbGl4LFNoYXJrLEdhcm1pbixBbmtlciBTb3VuZGNvcmUsUmluZyxTb25vcyxBcHBsZSxBcHBsZSxUUC1saW5rLFNhbXN1bmcsQWNjZXNzb3JpZXMsVW5kZXIgJDI1DQo1LFVuZGVyICQ1MDAsTEcsQXNpY3MsQ29sdW1iaWEsRHJlYW1DbG91ZCxLZXVyaWcsQXBwbGUsU29ueSxHb3ZlZSxUcmliaXQsTGVub3ZvLFNhbXN1bmcsRWVybyxHb29nbGUsR2FtZXMsVW5kZXIgJDUwDQo2LDUwJSBvZmYsU2Ftc3VuZyxOaWtlLFBhdGFnb25pYSxOZWN0YXIsRGUnTG9uZ2hpLEFtYXpmaXQsQXBwbGUsS2FzYSBzbWFydCxTb255LEFsaWVud2FyZSxUQ0wsTmV0Z2VhcixNb3Rvcm9sYSxOaW50ZW5kbyxCb3RhbmljYWxzDQo3LEFtYXpvbixIaXNlbnNlLE5ldyBCYWxhbmNlLEFyYyd0ZXJ5eCxUZW1wdXItcGVkaWMsRHlzb24sRml0Yml0LEJlYXRzLFBoaWxpcHMgSHVlLEFua2VyLEFjZXIsT25lUGx1cyxEZWxsLE9uZVBsdXMsU29ueSxEaXNuZXkNCjgsQXBwbGUsVENMLEFkaWRhcyxDYXJoYXJ0dCxCZWFyLEJpc3NlbGwsU2Ftc3VuZyxFYXJmdW4sQmxpbmssQmVhdHMsTVNJLE1pY3Jvc29mdCxBY2VyLE5vdGhpbmcsWGJveCxNYXJ2ZWwNCjksLFNvbnksU2F1Y29ueSxUaGUgTm9ydGggRmFjZSxTaWVuYSxOdXRyaWJ1bGxldCxPdXJhLFNhbXN1bmcsR29vZ2xlIE5lc3QgLE1hcnNoYWxsLFNhbXN1bmcsTGVub3ZvLExlbm92bywsLFBva2Vtb24NCjEwLCxSb2t1LEJpcmtlbnN0b2NrLENSWiBZb2dhLFdpbmtCZWRzLEJsYWNrIGFuZCBEZWNrZXIsUmluZ2Nvbm4sQ01GLEV1ZnksU2Ftc3VuZyxNaWNyb3NvZnQsUmVNYXJrYWJsZSxBbGllbndhcmUsLCwNCjExLCwsQnJvb2tzLFRoZSBHeW0gUGVvcGxlLEJyb29rbHluIGJlZGRpbmcsTmVzcHJlc3NvLCwxTW9yZSxBcmxvLCxSYXplciwsQ29yc2FpciwsLA0KMTIsLCxDcm9jcywsRWlnaHQgU2xlZXAsQ3Vpc2luYXJ0LCxKQkwsLCwsLEhQLCwsDQpOb3RlcywsLCwsLCwsLCwsLCwsLCwNCiwsIlByaW9yaXRpc2UgYmlnZ2VzdCAlLyQgZGlzY291bnQsIFR2cyB3aXRoIH41MCUgb2ZmIGhhdmUgYmVlbiB0aGUgbW9zdCBwb3B1bGFyIGV2ZW4gaWYgdGhleSBhcmUgc3RpbGwgZXhwZW5zaXZlIiwiTm8gcGF0dGVybiB0byBwcmljaW5nL2Rpc2NvdW50LCByZWFkZXJzIG1haW5seSBzaG9wIGJ5IGJyYW5kL3JlY29nbmlzYWJsZSBzaG9lcyIsIk5vIHBhdHRlcm4gdG8gcHJpY2luZy9kaXNjb3VudCwgcmVhZGVycyBtYWlubHkgc2hvcCBieSBicmFuZCIsIkEgbGFiZWwgd2lsbCBkZWZpbml0ZWx5IGhlbHAgaGVyZSBlLmcuIGJlc3QgZm9yIHNpZGUgc2xlZXBlciwgYmVzdCBtZW1vcnkgZm9hbSIsIkFwcGxpYW5jZXMgaXMgYSBiaWcgY2F0ZWdvcnksIGlzIGl0IHBvc3NpYmxlIHRvIHNwbGl0IGludG8ga2l0Y2hlbiBhcHBsaWFuY2VzLCBmbG9vcmNhcmUsIGFpciBoZWFsdGgvY29vbGluZz8gT3Igc2ltaWxhciIsIkZvY3VzIG9uIHZhbHVlIGZvciBtb25leSwgR2FybWlucyB3aXRoIH41MCUgb2ZmIGhhdmUgYmVlbiBwb3B1bGFyIGV2ZW4gdGhvdWdoIHRoZXkgYXJlIHN0aWxsICQ1MDAiLCwsLCxJbmNsdWRlIEtpbmRsZXMsSSB3b3VsZCBpbmNsdWRlIHdpZmkgcm91dGVycyBoZXJlIGluc3RlYWQgb2Ygc21hcnQgaG9tZSxDYW4gd2Ugc3VyZmFjZSBwaG9uZSBwcm92aWRlciBkZWFscz8gVC1tb2JpbGUgYW5kIHZlcml6b24gd291bGQgbWFrZSBhIGxvdCBtb3JlIG1vbmV5IHRoYW4gQW1hem9uLCwNCiwsaGF2aW5nIGEgJ2Jlc3QgZm9yJyBsYWJlbCB3b3VsZCBiZSBoZWxwZnVsIGUuZy4gYmVzdCBmb3IgYnJpZ2h0IHJvb20sQ2FuIHdlIHN0b3Aga2lkcyBzaG9lcyBmcm9tIHB1bGxpbmcgdGhyb3VnaD8sIldpbGwgdGhpcyBpbmNsdWRlIGFjY2Vzc29yaWVzIGUuZy4gY2FwcywgYmFncywgaWYgc28gbWFrZSBzdXJlIHRoZXNlIGFyZSBtaXhlZCB0aHJvdWdob3V0IGNsb3RoaW5nIGRlYWxzIixXaWxsIHRoaXMgaW5jbHVkZSB0b3BwZXJzIGFuZCBwaWxsb3dzPyBTZWVpbmcgbW9yZSBtb21lbnR1bSB3aXRoIHRoaXMgY2F0ZWdvcnkgcmVjZW50bHkgc28gYSBiZWRkaW5nIHRhYiBtaWdodCB3b3JrLCwiTmVlZCB0byBtYWtlIHN1cmUgYmFuZHMsIHNjcmVlbiBwcm90ZWN0b3JzIGV0Yy4gZG9uJ3QgcHVsbCBpbnRvIGhlcmUiLCwsLCwsLCwsDQosLCJQcmlvcml0aXNlIDY1JycgYW5kIDU1JyBpbmNoIFRWcywgdGhlbiBiaWdnZXIgc2NyZWVucyBiZWZvcmUgdGhlIHNtYWxsZXIgc2l6ZXMiLCwsUXVlZW4gaXMgdGhlIG1vc3QgcG9wdWxhciBzaXplIGluIHRoZSBVUyAtIHByaW9yaXRpc2UgZGVhbHMgZm9yIHRoaXMgc2l6ZSwsLCwsLCwsLCwsDQosLCwsLCwsLCwsLCwsLCwsDQpDYXRlZ29yaWVzIHRvIGNvbnNpZGVyLCxQcm9kdWN0cyBpbmNsdWRlZCwsLCwsLCwsLCwsLCwsDQpVbmRlciAkNTA/LCxBaXIgdGFncywsLCwsLCwsLCwsLCwsDQosLFBvcnRhYmxlIGNoYXJnZXJzL3dpcmVsZXNzIGNoYXJnZXJzLCwsLCwsLCwsLCwsLCwNCiwsIldhdGVyIGJvdHRsZXMgKHN0YW5sZXlzLCBPd2FsYSwgSHlkcm8gZmxhc2ssIFlldGkpIiwsLCwsLCwsLCwsLCwsDQosLEhhbmQgaGVsZCBmYW5zLCwsLCwsLCwsLCwsLCwNCiwsLCwsLCwsLCwsLCwsLCwNCmhvbWUgb2ZmaWNlLCxvZmZpY2UgY2hhaXJzLCwsLCwsLCwsLCwsLCwNCiwsc3RhbmRpbmcgZGVza3MsLCwsLCwsLCwsLCwsLA0KLCxtb25pdG9ycywsLCwsLCwsLCwsLCwsDQosLEtleWJvYXJkcywsLCwsLCwsLCwsLCwsDQosLGRvY2tpbmcgc3RhdGlvbiwsLCwsLCwsLCwsLCwsDQosLCwsLCwsLCwsLCwsLCwsDQpHYW1pbmcsLENvbnNvbGVzLCwsLCwsLCwsLCwsLCwNCiwsQWNjZXNzb3JpZXMsLCwsLCwsLCwsLCwsLA0KLCxHYW1lcywsLCwsLCwsLCwsLCwsDQosLENvdWxkIGluY2x1ZGUgTGVnbz8sLCwsLCwsLCwsLCwsLA==")));              const text = preloadedCSV;              const parsed = parseCSV(text);                            const rowsByName = {};              let filterStart = -1;              parsed.forEach((rc, i) => {                 if (rc && rc.length > 0 && rc[0]) rowsByName[rc[0]] = rc;                 if (rc && rc.length > 0 && rc[0] === 'Filter buttons') filterStart = i;              });                            const cols = [];              if(rowsByName['Roundel text']) {                const headerRow = rowsByName['Roundel text'];                for(let col = 1; col < headerRow.length; col++) {                   let label = headerRow[col];                   if (!label) continue;                                      let q = rowsByName['Search Query'] && rowsByName['Search Query'][col] ? rowsByName['Search Query'][col] : '';                   let img = rowsByName['Roundel image'] && rowsByName['Roundel image'][col] ? rowsByName['Roundel image'][col] : '';                   let ds = rowsByName['Discount Amount'] && rowsByName['Discount Amount'][col] ? rowsByName['Discount Amount'][col] : '';                   let pr = rowsByName['Price Range'] && rowsByName['Price Range'][col] ? rowsByName['Price Range'][col] : '';                   let rt = rowsByName['Retailer'] && rowsByName['Retailer'][col] ? rowsByName['Retailer'][col] : '';                   let ot = rowsByName['Offer Type'] && rowsByName['Offer Type'][col] ? rowsByName['Offer Type'][col] : '';                                      let filters = [];                   if(filterStart > 0) {                     for(let r = filterStart + 1; r < parsed.length; r++) {                         if(!parsed[r] || parsed[r][0] === 'Notes' || parsed[r][0] === 'Categories to consider') break;                         let f = parsed[r][col];                         if(f) filters.push(f);                     }                   }                   cols.push({ label, img, q, ds, pr, rt, ot, filters });                }              }              this.carouselData = cols;              if (this.carouselData && this.carouselData.length > 0) {                 const isMatched = this.carouselData.some(c => c.q === this.currentQuery || c.label === this.currentQuery);                 if (!isMatched) {                    const first = this.carouselData[0];                    this.currentQuery = first.q || first.label;                    if (this.priceFilter) this.priceFilter.value = 'all';                    if (this.customPriceMin) this.customPriceMin.value = '';                    if (this.customPriceMax) this.customPriceMax.value = '';                    let dPr = first.pr || 'all';                    if (typeof dPr === 'string' && dPr !== 'all') {                       let prLower = dPr.toLowerCase();                       if (prLower.includes('min') || prLower.includes('over')) {                          let m = dPr.match(/(\d+)/);                          if (m && this.customPriceMin) this.customPriceMin.value = m[1];                       } else if (prLower.includes('max') || prLower.includes('under')) {                          let m = dPr.match(/(\d+)/);                          if (m && this.customPriceMax) this.customPriceMax.value = m[1];                       }                    }                    let dAm = '0';                    if(first.ds && typeof first.ds === 'string') {                       let m = first.ds.match(/(\d+)/);                       if(m) dAm = m[1];                    }                    if (this.discountFilter) this.discountFilter.value = dAm;                    if (this.offerTypeSelect) this.offerTypeSelect.value = first.ot || '';                    if (this.retailerSelect) this.retailerSelect.value = first.rt || '';                    this.selectedBrands = [];                    if (this.brandDropdown) {                        const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                        chks.forEach(chk => chk.checked = false);                    }                    if (this.searchInput) this.searchInput.value = this.currentQuery;                 }              }              this.renderCarouselUI();          } catch(e){ console.warn(e); }        }                renderCarouselUI() {           const roundelWrapper = this.root.querySelector('.tg-df-carousel-roundels');           if(!roundelWrapper || !this.carouselData) return;                      let html = '';           this.carouselData.forEach(r => {              const q = r.q || r.label;              const isActive = (this.currentQuery === q || this.currentQuery === r.label) ? 'active' : '';              const imgHtml = r.img ? `\x3Cimg src="${r.img}" alt="${r.label}" />` : `\x3Csvg width="32" height="32" fill="#1F69FF" viewBox="0 0 24 24">\x3Cpath d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/>\x3C/svg>`;              html += `                \x3Cdiv class="tg-df-roundel tg-df-carousel-cat ${isActive}" data-label="${this.escapeHTML(r.label)}">                  \x3Cdiv class="tg-df-roundel-img-box">${imgHtml}\x3C/div>                  \x3Cspan class="tg-df-roundel-label">${this.escapeHTML(r.label)}\x3C/span>                \x3C/div>              `;           });           roundelWrapper.innerHTML = html;                      // Rebind clicks           const roundels = this.root.querySelectorAll('.tg-df-carousel-cat');           roundels.forEach(rNode => {             rNode.addEventListener('click', () => {                const r = this.carouselData.find(c => c.label === rNode.getAttribute('data-label'));                 if(!r) return;                                  if (typeof trackHawkEvent !== 'undefined') {                     trackHawkEvent({                         clickType: "CC",                         widgetId: this.widgetId,                         productCategoryName: "deals",                         zeroBasedProductIndexOrNull: null,                         totalDealsOrProducts: null,                         areaClicked: "Category Roundel",                         revenueId: this.revenueId,                         isoCurrencyCode: typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD',                         queryName: r.label,                         widgetTypeName: this.widgetTypeName                     });                 }                this.currentQuery = r.q || r.label;                const labelTitle = this.root.querySelector('#tg-df-carousel-title-label');                if (labelTitle) labelTitle.textContent = 'Best ' + this.currentQuery;                if (this.priceFilter) this.priceFilter.value = 'all';                if (this.customPriceMin) this.customPriceMin.value = '';                if (this.customPriceMax) this.customPriceMax.value = '';                let dPr = r.pr || 'all';                if (typeof dPr === 'string' && dPr !== 'all') {                   let prLower = dPr.toLowerCase();                   if (prLower.includes('min') || prLower.includes('over')) {                      let m = dPr.match(/(\d+)/);                      if (m && this.customPriceMin) this.customPriceMin.value = m[1];                   } else if (prLower.includes('max') || prLower.includes('under')) {                      let m = dPr.match(/(\d+)/);                      if (m && this.customPriceMax) this.customPriceMax.value = m[1];                   }                }                                let discountAmount = '0';                if(r.ds && typeof r.ds === 'string') {                   let m = r.ds.match(/(\d+)/);                   if(m) discountAmount = m[1];                }                if (this.discountFilter) this.discountFilter.value = discountAmount;                if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                                // Clear brands                    this.selectedBrands = [];                    if (this.brandDropdown) {                    const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                    chks.forEach(chk => chk.checked = false);                }                                if (this.searchInput) this.searchInput.value = this.currentQuery;                                roundels.forEach(ro => ro.classList.remove('active'));                if (rNode) rNode.classList.add('active');                                this.renderCarouselFilters(r);                this.fetchDeals(this.currentQuery);             });           });                      // Auto-highlight active           const activeR = this.carouselData.find(c => c.q === this.currentQuery || c.label === this.currentQuery);           if(activeR) this.renderCarouselFilters(activeR);        }                renderCarouselFilters(r) {           const filtersWrap = this.root.querySelector('.tg-df-carousel-filters-wrap');           if(!filtersWrap) return;                      let html = `\x3Cbutton class="tg-df-carousel-filter-btn" data-type="all">All\x3C/button>`;                      r.filters.forEach(f => {              let fL = f.toLowerCase();              let icon = '';              let logic = `data-type="custom" data-v="${this.escapeHTML(f)}"`;              if (fL === 'amazon deals' || fL === 'prime deals') {                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>\x3Cimg src="https://cdn.mos.cms.futurecdn.net/fwoVXvL79turN3Ph535m38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/u75QjVpt3w2EsMimJiRo38-600-100.png" class="active-img" alt="" /> Prime deals\x3C/button>`;              } else if (fL === 'lightning deals') {                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>\x3Cimg src="https://cdn.mos.cms.futurecdn.net/HqAui7w97ft2NPqBtQ5r38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/yWPQ5yyQRhUwVKzGwYbh38-600-100.png" class="active-img" alt="" /> Lightning deals\x3C/button>`;              } else {                 if (fL.includes('lightning')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap">\x3Cpolygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2">\x3C/polygon>\x3C/svg>`;                 } else if (fL.includes('% off')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>`;                 } else if (fL.includes('under') || fL.includes('min ')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-badge-dollar-sign">\x3Cpath d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z">\x3C/path>\x3Cpath d="M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8">\x3C/path>\x3Cpath d="M12 18V6">\x3C/path>\x3C/svg>`;                 }                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>${icon} ${this.escapeHTML(f)}\x3C/button>`;              }           });                      filtersWrap.innerHTML = html;                      const btns = filtersWrap.querySelectorAll('button');           btns.forEach(b => {             b.addEventListener('click', () => {                const type = b.getAttribute('data-type');                if (type === 'custom') {                   const v = b.getAttribute('data-v');                   if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: `filter-custom-${(v||'').toLowerCase().replace(/[^a-z0-9]+/g, '-')}`, name: 'Custom Filter', label: v });                }                if (type === 'all') {                   if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: 'filter-clear-all', name: 'Clear all', label: 'Clear all filters' });                   // reset everything                   btns.forEach(btn => btn.classList.remove('active'));                   b.classList.add('active');                                      // Reset prices                   if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.customPriceMin) this.customPriceMin.value = '';                   if (this.customPriceMax) this.customPriceMax.value = '';                   let dPr = r.pr || 'all';                   if (typeof dPr === 'string' && dPr !== 'all') {                      let prLower = dPr.toLowerCase();                      if (prLower.includes('min') || prLower.includes('over')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMin) this.customPriceMin.value = m[1];                      } else if (prLower.includes('max') || prLower.includes('under')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMax) this.customPriceMax.value = m[1];                      }                   }                                      let discountAmount = '0';                   if(r.ds && typeof r.ds === 'string') {                      let m = r.ds.match(/(\d+)/);                      if(m) discountAmount = m[1];                   }                   if (this.discountFilter) this.discountFilter.value = discountAmount;                   if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                   if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                   this.selectedBrands = [];                   if (this.brandDropdown) {                     const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                     chks.forEach(chk => chk.checked = false);                   }                } else {                   const v = b.getAttribute('data-v');                   const fL = v.toLowerCase();                                      let mapRet = ['amazon', 'walmart', 'best buy', 'target', 'john lewis', 'currys', 'argos'];                   const getCategory = (s) => {                      if (s === 'lightning deals' || s === 'amazon deals' || s === 'prime deals') return 'offer';                      if (s.includes('% off')) return 'discount';                      if (s.includes('under') || s.includes('over') || s.includes('min') || s.includes('max')) return 'price';                      if (mapRet.includes(s)) return 'retailer';                      return 'brand';                   };                   const cat = getCategory(fL);                   const wasActive = b.classList.contains('active');                   if (cat !== 'brand') {                      btns.forEach(btn => {                          if (btn === b) return;                          if (btn.getAttribute('data-type') === 'all') return;                          const bV = btn.getAttribute('data-v');                          if (!bV) return;                          if (getCategory(bV.toLowerCase()) === cat) btn.classList.remove('active');                      });                   }                   if (wasActive) b.classList.remove('active');                   else b.classList.add('active');                   let anyActive = Array.from(btns).some(btn => btn !== btns[0] && btn.classList.contains('active'));                   if (!anyActive) {                       btns[0].click();                       return;                   } else {                       btns[0].classList.remove('active');                   }                                      if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.customPriceMin) this.customPriceMin.value = '';                   if (this.customPriceMax) this.customPriceMax.value = '';                   let dPr = r.pr || 'all';                   if (typeof dPr === 'string' && dPr !== 'all') {                      let prLower = dPr.toLowerCase();                      if (prLower.includes('min') || prLower.includes('over')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMin) this.customPriceMin.value = m[1];                      } else if (prLower.includes('max') || prLower.includes('under')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMax) this.customPriceMax.value = m[1];                      }                   }                                      let discountAmount = '0';                   if(r.ds && typeof r.ds === 'string') {                      let m = r.ds.match(/(\d+)/);                      if(m) discountAmount = m[1];                   }                   if (this.discountFilter) this.discountFilter.value = discountAmount;                   if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                   if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                   this.selectedBrands = [];                   btns.forEach(btn => {                       if (!btn.classList.contains('active') || btn.getAttribute('data-type') === 'all') return;                       const vv = btn.getAttribute('data-v');                       const vl = vv.toLowerCase();                                              if (vl === 'lightning deals') {                          if (this.offerTypeSelect) this.offerTypeSelect.value = 'amazon_lightning';                       } else if (vl === 'amazon deals' || vl === 'prime deals') {                          if (this.offerTypeSelect) this.offerTypeSelect.value = 'amazon_prime';                       } else if (vl.includes('% off')) {                          let m = vl.match(/(\d+)%/);                          if (m && this.discountFilter) this.discountFilter.value = m[1];                       } else if (vl.includes('under') || vl.includes('max')) {                          let m = vl.match(/(\d+)/);                          if (m && this.customPriceMax) this.customPriceMax.value = m[1];                       } else if (vl.includes('min') || vl.includes('over')) {                          let m = vl.match(/(\d+)/);                          if (m && this.customPriceMin) this.customPriceMin.value = m[1];                       } else {                          let foundR = mapRet.find(x => x === vl);                          if (foundR) {                             let realR = ['Amazon', 'Walmart', 'Best Buy', 'Target', 'John Lewis', 'Currys', 'Argos'].find(x => x.toLowerCase() === vl);                             if (this.retailerSelect) this.retailerSelect.value = realR;                          } else {                             this.selectedBrands.push(vv);                          }                       }                   });                                      if (this.brandDropdown) {                       const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                       chks.forEach(c => c.checked = this.selectedBrands.includes(c.value));                   }                                      if (r.pr && typeof r.pr === 'string') {                       let prL = r.pr.toLowerCase();                       if (prL.includes('under $')) {                           let m = prL.match(/under \$(\d+)/i);                           if (m && this.customPriceMax && !this.customPriceMax.value) this.customPriceMax.value = m[1];                       }                   }                }                                this.fetchDeals(this.currentQuery);             });           });                      // default to highlighting first           btns[0].classList.add('active');        }async fetchDeals(query, append = false) {          if (!append) {             this.showLoading();             this.deals = [];             this.displayLimit = this.getRowsLimit();          } else {             this.displayLimit += this.getRowsLimit();          }                    try {            if (this.getViewMode() === 'savings_squad') {               await this.fetchSavingsSquad(append);            } else {               if (this.isBroadQuery(query)) {                 await this.fetchAdviserDeals(query, append);               } else {                 await this.fetchHawkDeals(query, append);                 if (this.deals.length === 0) {                   await this.fetchAdviserDeals(query, append);                 }               }            }          } catch (error) {            console.warn("[Tom's Guide Widget] Fetch error:", error);            this.showError();          }        }        async fetchSavingsSquad() {          let topArticles = this.airedaleArticles;          if (!topArticles) {            const airedaleUrl = `https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50`;            let res;            try {               res = await fetch(airedaleUrl);            } catch(e) {               try { res = await fetch(`https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50`); } catch (err) { console.warn("Fallback fetch failed", err); return; }            }            if (!res.ok) throw new Error('Airedale API Error');            const articles = await res.json();            topArticles = Array.isArray(articles) ? articles.slice(0, 50) : ((articles.data && Array.isArray(articles.data)) ? articles.data.slice(0, 50) : []);            this.airedaleArticles = topArticles;                        let tagCounts = {};            topArticles.forEach((a) => {              let articleTags = new Set();              if (a.articlecategory && Array.isArray(a.articlecategory)) {                 a.articlecategory.forEach((t) => articleTags.add(t));              }              articleTags.forEach(t => {                 tagCounts[t] = (tagCounts[t] || 0) + 1;              });            });                        this.airedaleTags = Object.keys(tagCounts).sort((a, b) => tagCounts[b] - tagCounts[a]);            this.airedaleTagCounts = tagCounts;          }                    let targetArticles = topArticles;          if (this.activeDealTag) {             const cleanTag = this.activeDealTag.toLowerCase().replace(/&/g, '').replace(/[^a-z0-9]+/g, '-').replace(/-+/g, '-').replace(/^-|-$/g, '');             const encodedTag = encodeURIComponent(cleanTag);             const url = `https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50&articleCategoryHandle=${encodedTag}`;             try {                const res = await fetch(url);                if (res.ok) {                   const articles = await res.json();                   targetArticles = Array.isArray(articles) ? articles.slice(0, 50) : ((articles.data && Array.isArray(articles.data)) ? articles.data.slice(0, 50) : []);                }             } catch(e) {                console.warn("Failed to fetch by activeDealTag", e);             }          }          let extractedDeals = [];          let dynamicBrandsCounts = {};                    targetArticles.forEach((article) => {             if (!article.articlepage) return;                          let pageData = [];             try {                pageData = JSON.parse(article.articlepage[0]);             } catch(e){ console.warn(e); }                          const savingsSquad = pageData.filter((p) => p.type === 'deal' || p.type === 'featured-product');                          savingsSquad.forEach((block, idx) => {                const data = block.data || {};                const isFeatured = block.type === 'featured-product';                                const link = data.link || {};                const priceObj = data.price || {};                const image = data.image || {};                                if (data.brand) {                   data.brand = data.brand.replace(/^\d+\.\s*/, '').trim();                   dynamicBrandsCounts[data.brand] = (dynamicBrandsCounts[data.brand] || 0) + 1;                }                const externalUrl = isFeatured ? data.url : (link.href || null);                let summaryTitle = isFeatured ? (data.name || data.brand) : (data.productName || link.label || article.articlename);                let description = isFeatured ? (data.strapline || '') : (data.text || '');                                if (!isFeatured && !data.productName && data.text) {                   const brSplit = data.text.split(new RegExp('\x3Cbr\\s*\\/?\\x3E', 'i'));                   if (brSplit.length > 1) {                     summaryTitle = brSplit[0].replace(/<[^>]+>/g, '').trim();                     description = brSplit.slice(1).join(' ').replace(/<br\s*\/?>/gi, ' ').replace(/<\/?(p|div)[^>]*>/gi, ' ').replace(/<[^>]+>/g, '').replace(/\s+/g, ' ').trim();                   } else {                     const match = data.text.match(/\x3Cstrong>(.*?)<\/strong>/);                     if (match) {                       summaryTitle = match[1].replace(/<[^>]+>/g, '').trim();                       if (summaryTitle.endsWith(':')) summaryTitle = summaryTitle.slice(0, -1);                     }                   }                }                                let imageUrl = isFeatured ? image.mos : (image.src || null);                if (imageUrl && imageUrl.startsWith('//')) imageUrl = 'https:' + imageUrl;                                description = description.replace(/<br\s*\/?>/gi, ' ').replace(/<\/?(p|div)[^>]*>/gi, ' ').replace(/<[^>]+>/g, '').replace(/\s+/g, ' ').replace(/View Deal$/i, '').trim();                                let merchantName = data.retailer || '';                if (!merchantName && externalUrl) {                   try {                     merchantName = new URL(externalUrl).hostname.replace('www.', '').split('.')[0];                     merchantName = merchantName.charAt(0).toUpperCase() + merchantName.slice(1);                   }catch(e){ console.warn(e); }                }                if (!merchantName) merchantName = 'Retailer';                const q = (this.currentQuery || '').toLowerCase();                const activeTagLogic = (this.activeDealTag || '').toLowerCase();                if (q.length > 2 && q !== activeTagLogic) {                   const searchTarget = `${summaryTitle || ''} ${description || ''}`.toLowerCase();                   if (!searchTarget.includes(q)) return;                }                let rawPrice = 0;                let rawMsrp = 0;                let currencyStr = '$';                if (isFeatured) {                   rawPrice = typeof data.salePrice === 'number' && data.salePrice > 0 ? data.salePrice : (typeof data.price === 'number' ? data.price : 0);                   rawMsrp = typeof data.salePrice === 'number' && typeof data.price === 'number' && data.price > data.salePrice ? data.price : 0;                   currencyStr = data.currency === 'GBP' ? '£' : '$';                } else {                   rawPrice = priceObj.amount ? parseFloat(priceObj.amount) : 0;                   rawMsrp = priceObj.amountWas ? parseFloat(priceObj.amountWas) : 0;                   currencyStr = priceObj.currency === 'GBP' ? '£' : '$';                }                                let savingAmt = 0;                let savingLabel = '';                if (rawPrice > 0 && rawMsrp > rawPrice) {                   savingAmt = parseFloat((rawMsrp - rawPrice).toFixed(2));                   savingLabel = `Save ${currencyStr}${savingAmt}`;                }                                // Apply Brand filter                if (this.selectedBrands && this.selectedBrands.length > 0) {                   const itemBrand = (data.brand || '').toLowerCase();                   const hasMatch = this.selectedBrands.some(sb => sb.toLowerCase() === itemBrand);                   if (!hasMatch) return;                }                // Apply Price filter                let priceFilterVal = null;                const min = this.customPriceMin ? this.customPriceMin.value : '';                const max = this.customPriceMax ? this.customPriceMax.value : '';                if (min || max) {                   priceFilterVal = `${min}_${max}`;                } else if (this.priceFilter && this.priceFilter.value !== 'all') {                   priceFilterVal = this.priceFilter.value;                }                if (priceFilterVal && rawPrice > 0) {                   if (priceFilterVal === 'under50' && rawPrice >= 50) return;                   if (priceFilterVal === 'over50' && rawPrice <= 50) return;                   if (priceFilterVal === 'over30' && rawPrice <= 30) return;                   if (priceFilterVal === 'over500' && rawPrice <= 500) return;                   if (priceFilterVal.includes('_')) {                      const parts = priceFilterVal.split('_');                      const min = parseFloat(parts[0]);                      const max = parseFloat(parts[1]);                      if (!isNaN(min) && rawPrice < min) return;                      if (!isNaN(max) && rawPrice > max) return;                   }                }                // Apply Discount filter                if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {                   const requiredDiscount = parseInt(this.discountFilter.value);                   if (!isNaN(requiredDiscount) && requiredDiscount > 0) {                      if (!rawMsrp || rawMsrp <= rawPrice) return;                      const ratio = Math.round((1 - (rawPrice / rawMsrp)) * 100);                      if (ratio < requiredDiscount) return;                   }                }                                extractedDeals.push({                   id: `airedale-${article.id || Math.random()}-${idx}`,                   url: externalUrl,                   image: imageUrl,                   fallbackImage: imageUrl,                   title: summaryTitle,                   brand: data.brand || '',                   productName: data.productName || '',                   merchant: merchantName,                   rawPrice: rawPrice,                   rawMsrp: rawMsrp,                   price: rawPrice > 0 ? rawPrice.toString() : '',                   msrp: rawMsrp > 0 ? rawMsrp.toString() : '',                   currency: currencyStr,                   isCheckPrice: !rawPrice,                   savingLabel: savingLabel,                   savingType: rawMsrp > rawPrice ? 'amount' : 'none',                   isPrime: false,                   starRating: null,                   description: description,                   text: data.text || ''                });             });          });                    const airedaleBrandsList = Object.keys(dynamicBrandsCounts).map(b => ({              formatted_value: b,              count: dynamicBrandsCounts[b]          })).sort((a,b) => b.count - a.count);                    if (this.getViewMode() === 'savings_squad') {             this.populateBrandDropdown(airedaleBrandsList.slice(0, 15));             if (this.brandFilterWrapper) {                if (airedaleBrandsList.length === 0) {                    this.brandFilterWrapper.style.display = 'none';                } else {                    this.brandFilterWrapper.style.display = 'flex';                }             }          }                    this.deals = extractedDeals;          this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.deals, this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        isBroadQuery(query) {          const q = query.toLowerCase();          const intentModifiers = ['deals', 'best', 'sale', 'under', 'cheap', 'offers', 'discount'];          return intentModifiers.some(term => q.includes(term));        }        async fetchHawkDeals(query, append = false) {          const url = new URL(this.apiUrl);          url.searchParams.append('model_name', query);          const areaCode = this.getAreaCode();          if (areaCode) {            url.searchParams.append('area', areaCode);          }                    if (append && this.deals.length > 0) {            url.searchParams.append('offset', this.deals.length.toString());          }                    if (this.retailerSelect && this.retailerSelect.value) {            url.searchParams.append('filter_merchant_name', this.retailerSelect.value);          }                    if (this.selectedBrands && this.selectedBrands.length > 0) {            url.searchParams.append('filter_label[text_brand]', this.selectedBrands.join(','));          }                    let priceVal = null;          const min = this.customPriceMin ? this.customPriceMin.value : '';          const max = this.customPriceMax ? this.customPriceMax.value : '';          if (min || max) {             priceVal = `${min}_${max}`;          } else if (this.priceFilter && this.priceFilter.value !== 'all') {             priceVal = this.priceFilter.value;          }          if (priceVal) {            if (priceVal === 'under50') {              url.searchParams.append('filter_max_price', '50');            } else if (priceVal === 'over50') {              url.searchParams.append('filter_min_price', '50');            } else if (priceVal === 'over30') {              url.searchParams.append('filter_min_price', '30');            } else if (priceVal === 'over500') {              url.searchParams.append('filter_min_price', '500');            } else if (priceVal.includes('_')) {              const parts = priceVal.split('_');              if (parts[0]) url.searchParams.append('filter_min_price', parts[0]);              if (parts[1]) url.searchParams.append('filter_max_price', parts[1]);            }          }                    if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {            const v = parseInt(this.discountFilter.value);            if (!isNaN(v) && v > 0) {              const ratio = (100 - v) / 100;              url.searchParams.append('min_discount_ratio', ratio.toString());            }          }                    if (this.offerTypeSelect && this.offerTypeSelect.value) {            url.searchParams.append('offer', this.offerTypeSelect.value);          }                    url.searchParams.append('filter_product_types', 'deals');                    url.searchParams.append('rows', this.getRowsLimit().toString());          let response;          try {             response = await fetch(url.toString());          } catch(e) {             if (window.location.protocol === 'file:') {                console.warn("[Tom's Guide Widget] fetch from file:// blocked by local CORS policy, falling back to Adviser mock.");                await this.fetchAdviserDeals(query);                return;             }             console.warn("Hawk fetch failed", e);             this.deals = [];             this.render();             return;          }          if (!response.ok) {            throw new Error('Hawk API Response Error');          }          const rawData = await response.json();          // Safely locate data array from potentially wrapped response          let offers = [];          let modelInfoArray = [];                    let brandFilterData = null;          if (rawData && rawData.widget && rawData.widget.data && Array.isArray(rawData.widget.data.filters)) {             brandFilterData = rawData.widget.data.filters.find(f => f.type === 'label_text_brand');          } else if (rawData && rawData.data && Array.isArray(rawData.data.filters)) {             brandFilterData = rawData.data.filters.find(f => f.type === 'label_text_brand');          }          if (brandFilterData && Array.isArray(brandFilterData.values) && brandFilterData.values.length > 0) {             this.populateBrandDropdown(brandFilterData.values);          } else {             if (this.brandFilterWrapper && this.selectedBrands.length === 0) {                this.brandFilterWrapper.style.display = 'none';             }          }                    if (rawData && rawData.widget && rawData.widget.data) {            if (Array.isArray(rawData.widget.data.offers)) offers = rawData.widget.data.offers;            if (rawData.widget.data.model_info && typeof rawData.widget.data.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.widget.data.model_info) ? rawData.widget.data.model_info : Object.values(rawData.widget.data.model_info);            }          } else if (rawData && rawData.data) {            if (Array.isArray(rawData.data.offers)) offers = rawData.data.offers;            if (rawData.data.model_info && typeof rawData.data.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.data.model_info) ? rawData.data.model_info : Object.values(rawData.data.model_info);            }          } else {            if (Array.isArray(rawData)) offers = rawData;            else if (rawData && Array.isArray(rawData.offers)) offers = rawData.offers;            else if (rawData && rawData.offers && Array.isArray(rawData.offers.offer)) offers = rawData.offers.offer;            else if (rawData && rawData.offers) offers = [].concat(rawData.offers);                        if (rawData && rawData.model_info && typeof rawData.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.model_info) ? rawData.model_info : Object.values(rawData.model_info);            }          }          let modelDetails = {};          modelInfoArray.forEach(m => {            const mId = m.model_id || m.id;            if (mId) {              modelDetails[mId] = {                score: m.score != null ? parseFloat(m.score) : null,                brand: m.brand || null,                parent: (m.parents && Array.isArray(m.parents) && m.parents.length > 0) ? m.parents[0].name : null              };            }          });          offers.forEach(item => {            let data = { ...item };            const mId = data.model_id;            if (mId && modelDetails[mId]) {              data.review_score = modelDetails[mId].score;              data.model_brand = modelDetails[mId].brand;              data.model_parent = modelDetails[mId].parent;            } else {              data.review_score = null;            }                        let itemOffers = [];            if (Array.isArray(item.offers)) itemOffers = item.offers;            else if (Array.isArray(item.offer)) itemOffers = item.offer;            else if (item.offers && typeof item.offers === 'object') itemOffers = [item.offers];            else if (item.offer && typeof item.offer === 'object') itemOffers = [item.offer];            if (itemOffers.length > 0) {              itemOffers.forEach(subItem => {                let subData = { ...item, ...subItem };                const subId = subData.model_id;                if (subId && modelDetails[subId]) {                  subData.review_score = modelDetails[subId].score;                  subData.model_brand = modelDetails[subId].brand;                  subData.model_parent = modelDetails[subId].parent;                } else if (data.review_score != null) {                  subData.review_score = data.review_score;                }                if (subData.merchant && typeof subData.merchant === 'object') {                  subData.merchant_name = subData.merchant.name;                }                this.deals.push(this.extractDealData(subData));              });              return;            }                        if (item.merchant && typeof item.merchant === 'object') {              data.merchant_name = item.merchant.name;            }                        this.deals.push(this.extractDealData(data));          });                    this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.deals, this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        async fetchAdviserDeals(query) {          // ======================================================================          // TODO: ADVISER API REPLACEMENT          // The code below simulates the Adviser API response using mock data.          // Once the real endpoint is ready, remove getAdviserMockData() and           // perform an actual fetch() request similar to fetchHawkDeals().          // Example:          // const area = this.getAreaCode();          // let apiUrl = `https://your-adviser-api.com/search?q=${query}&area=${area}`;          // if (this.priceFilter && this.priceFilter.value !== 'all') {          //   const val = this.priceFilter.value;          //   if (val === 'under50') apiUrl += '&filter_max_price=50';          //   else if (val === '50_100') apiUrl += '&filter_max_price=100';          //   else if (val === '100_200') apiUrl += '&filter_max_price=200';          //   else if (val === '200_500') apiUrl += '&filter_max_price=500';          // }          // const res = await fetch(apiUrl);          // const rawData = await res.json();          // ======================================================================          // Simulating network latency          await new Promise(resolve => setTimeout(resolve, 400));                    const rawData = this.getAdviserMockData();          let offers = [];                    if (rawData && rawData.data && rawData.data.Get && Array.isArray(rawData.data.Get.Deal)) {            offers = rawData.data.Get.Deal;          }                    // Basic client-side filtering for the mock if we want it to react to the query          const q = query.toLowerCase();          const selectedRetailer = (this.retailerSelect && this.retailerSelect.value) ? this.retailerSelect.value.toLowerCase() : null;                    offers.forEach(item => {            const dataObj = item;                        // Apply retailer filter            const itemRetailer = (dataObj.dataRetailer || '').toLowerCase();            if (selectedRetailer && itemRetailer !== selectedRetailer && !itemRetailer.includes(selectedRetailer)) {              return;            }                        // Apply mock price filter            let price = dataObj.dataDiscountedPrice || 0;            if (typeof price === 'string') {              price = parseFloat(price.replace(/[^0-9.]/g, ''));            }            let priceVal = null;            const min = this.customPriceMin ? this.customPriceMin.value : '';            const max = this.customPriceMax ? this.customPriceMax.value : '';            if (min || max) {               priceVal = `${min}_${max}`;            } else if (this.priceFilter && this.priceFilter.value !== 'all') {               priceVal = this.priceFilter.value;            }            if (priceVal) {              if (priceVal === 'under50' && price >= 50) return;              if (priceVal === 'over50' && price <= 50) return;              if (priceVal === 'over30' && price <= 30) return;              if (priceVal === 'over500' && price <= 500) return;              if (priceVal.includes('_')) {                 const parts = priceVal.split('_');                 if (parts[0] && price < parseFloat(parts[0])) return;                 if (parts[1] && price > parseFloat(parts[1])) return;              }            }                        // Map Adviser schema to our widget's expected schema            const mappedData = {              url: dataObj.linkHREF || dataObj.dataLink || '#',              image: dataObj.imageURL || (dataObj.image && dataObj.image.src) || '',              title: dataObj.dataProduct || (dataObj.product && dataObj.product.name) || 'Product Deal',              merchant: dataObj.dataRetailer || 'Retailer',              price: dataObj.dataDiscountedPrice || 0,              currency: dataObj.dataCurrency === 'USD' ? '$' : (dataObj.dataCurrency || '$'),              msrp: dataObj.dataOriginalPrice || null            };                        const titleLow = mappedData.title.toLowerCase();            const merchLow = mappedData.merchant.toLowerCase();                        // Smarter mock filtering            let isMatch = false;            if (q === '' || this.isBroadQuery(q)) {              isMatch = true;            } else if (titleLow.includes(q) || merchLow.includes(q)) {              isMatch = true;            } else if ((q.includes('laptop') || q.includes('mac') || q.includes('pc')) && (titleLow.includes('macbook') || titleLow.includes('laptop'))) {              isMatch = true;            } else if ((q.includes('tv') || q.includes('television')) && (titleLow.includes('tv') || titleLow.includes('oled') || titleLow.includes('qled'))) {              isMatch = true;            } else if ((q.includes('phone') || q.includes('smartphone')) && (titleLow.includes('galaxy') || titleLow.includes('phone'))) {              isMatch = true;            } else if ((q.match(/watch|fitness|run|shoe/)) && (titleLow.includes('forerunner') || titleLow.includes('saucony') || titleLow.includes('watch'))) {              isMatch = true;            }                        if (isMatch) {               this.deals.push(this.extractDealData(mappedData));            }          });                    let rowLimit = this.getRowsLimit();          // Intentionally omitting the slice here to allow "Load More" to work if the API returns more                    this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.deals, this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        getAdviserMockData() {          return {            "data": {              "Get": {                "Deal": [                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 300,                    "dataOriginalPrice": 399,                    "dataProduct": "Samsung Galaxy A36",                    "dataRetailer": "Samsung",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/MqDYsukV3JBG54te6dEs7j.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 14,                    "dataOriginalPrice": 24,                    "dataProduct": "Blink Mini",                    "dataRetailer": "Amazon",                    "imageURL": "http://cdn.mos.cms.futurecdn.net/3JurmAjHsDa5tPdaHAwEV8.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 59,                    "dataOriginalPrice": 99,                    "dataProduct": "Ring Video Doorbell",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/rAh4uR7AsAsALCCLTXnLNJ.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 10,                    "dataOriginalPrice": 599,                    "dataProduct": "MacBook Neo",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/Lg4Dvg68j9SbB5CPNrTEpH.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 749,                    "dataOriginalPrice": 849,                    "dataProduct": "65\\\" Fire TV Omni 4K QLED TV",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/SG34ZWodUkLTxJvMTbjPYR.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 71,                    "dataOriginalPrice": 160,                    "dataProduct": "Saucony Hurricane 24",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/vxf7UD5T2Am7guVzFoFcZ4.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 649,                    "dataOriginalPrice": 749,                    "dataProduct": "Garmin Forerunner 970",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/3GKnEu7CdhtxPMfnPCMCiA.png"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 1049,                    "dataOriginalPrice": 1499,                    "dataProduct": "LG 48\\\" C4 4K OLED TV",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/imvwZV9zoMD6fn9Afuge35.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 1499,                    "dataOriginalPrice": 2199,                    "dataProduct": "Samsung 49\\\" Odyssey Neo G9 4K Gaming Monitor",                    "dataRetailer": "Amazon",                    "imageURL": "http://cdn.mos.cms.futurecdn.net/XWDEJ5dUAE2nhK8k3Jk7k7.png"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 299,                    "dataOriginalPrice": 699,                    "dataProduct": "EGOHOME Black Memory Foam Mattress (queen)",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/hMUemtAejNETLVYxNrktzm.jpg"                  }                ]              }            }          };        }        decodeHTML(html) {          if (!html) return '';          const txt = document.createElement("textarea");          txt.innerHTML = String(html);          return txt.value;        }        extractDealData(item) {          const priceRawStr = String(item.price || item.current_price || '0');          const msrpRawStr = String(item.was_price || item.msrp || item.original_price || '0');          const rawPrice = parseFloat(priceRawStr.replace(/[^\d.]/g, '')) || 0;          const rawMsrp = parseFloat(msrpRawStr.replace(/[^\d.]/g, '')) || 0;          const isCheckPrice = rawPrice === 0 || priceRawStr === '0.00' || priceRawStr === '0';                    let originalImageUrl = item.image || item.image_url || item.product_image || '';          let imageUrl = originalImageUrl;          if ((!imageUrl || isCheckPrice) && item.model_image_url) {             imageUrl = item.model_image_url;             originalImageUrl = imageUrl;          } else if ((!imageUrl || isCheckPrice) && item.model_image) {             imageUrl = item.model_image;             originalImageUrl = imageUrl;          }                    if (imageUrl) {            imageUrl = imageUrl.replace(/-(\d+)-(\d+)(\.[a-z.]+)$/i, '$3');          }                    let fallbackImage = '';          if (originalImageUrl && originalImageUrl !== imageUrl) {             fallbackImage = originalImageUrl;          } else if (item.model_image && item.model_image !== imageUrl) {             fallbackImage = item.model_image;          } else if (item.model_image_url && item.model_image_url !== imageUrl) {             fallbackImage = item.model_image_url;          }                    const rawCurrency = item.currency || item.currency_symbol || '$';                    let savingLabel = item.percentage_saving_label || '';          if (!savingLabel && rawMsrp > rawPrice && rawPrice > 0) {            const pct = Math.round(((rawMsrp - rawPrice) / rawMsrp) * 100);            if (pct > 0) {              savingLabel = `${pct}% OFF`;            }          }                    const isPrime = item.shipping && item.shipping.prime === true;                    let scoreRaw = (item.review_score !== undefined && item.review_score !== null && item.review_score > 0) ? parseFloat(item.review_score) : null;          let starRating = 0;          if (scoreRaw !== null) {            starRating = Math.round((scoreRaw > 10 ? scoreRaw / 20 : scoreRaw / 2) * 2) / 2;          }                    return {            id: item.offer_id || item.link || item.url || item.offer_link || Math.random().toString(),            url: item.link || item.url || item.offer_link || '#',            image: imageUrl,            fallbackImage: fallbackImage,            title: item.name || item.title || item.model_name || item.product_name || 'Unknown Product',            brand: item.brand || '',            productName: item.model_name || item.product_name || item.name || '',            merchant: item.merchant_name || item.merchant || item.retailer || 'Retailer',            price: item.price !== undefined ? String(item.price) : '0.00',            currency: this.decodeHTML(rawCurrency),            msrp: item.was_price || item.msrp || item.original_price || null,            rawPrice: rawPrice,            rawMsrp: rawMsrp,            hasWasPrice: (item.was_price !== undefined && item.was_price !== null),            isCheckPrice: isCheckPrice,            savingLabel: savingLabel,            isPrime: isPrime,            starRating: starRating > 0 ? starRating : null,            modelId: item.model_id || '',            productKey: item.product_key || '',            merchantId: (item.merchant && typeof item.merchant === 'object') ? item.merchant.id || '' : '',            matchId: item.match_id || '',            merchantNetwork: (item.merchant && typeof item.merchant === 'object') ? item.merchant.an || '' : '',            merchantUrl: (item.merchant && typeof item.merchant === 'object') ? item.merchant.url || '' : '',            modelBrand: item.model_brand || item.brand || '',            modelParent: item.model_parent || ''          };        }        sortData() {          const sortVal = this.sortSelect ? this.sortSelect.value : (this.getViewMode() === 'savings_squad' ? 'date_desc' : 'discount_desc');          if (sortVal === 'price_asc') {            this.deals.sort((a, b) => a.rawPrice - b.rawPrice);          } else if (sortVal === 'price_desc') {            this.deals.sort((a, b) => b.rawPrice - a.rawPrice);          } else if (sortVal === 'discount_desc') {            this.deals.sort((a, b) => {              const aDiscount = a.rawMsrp > a.rawPrice ? (a.rawMsrp - a.rawPrice) : 0;              const bDiscount = b.rawMsrp > b.rawPrice ? (b.rawMsrp - b.rawPrice) : 0;              return bDiscount - aDiscount;            });          } else if (sortVal === 'date_desc') {             this.deals.sort((a, b) => {                let dateA = 0;                let dateB = 0;                if (a && a.modifiedDate) {                   const valA = Array.isArray(a.modifiedDate) ? a.modifiedDate[0] : a.modifiedDate;                   dateA = new Date(valA).getTime();                   if (isNaN(dateA)) dateA = 0;                }                if (b && b.modifiedDate) {                   const valB = Array.isArray(b.modifiedDate) ? b.modifiedDate[0] : b.modifiedDate;                   dateB = new Date(valB).getTime();                   if (isNaN(dateB)) dateB = 0;                }                return dateB - dateA;             });          }        }        getFilteredDeals() {          let filteredDeals = [...this.deals];                    if (this.dealModeToggle && this.dealModeToggle.checked) {            filteredDeals = filteredDeals.filter(d => d.hasWasPrice || (d.msrp && d.rawMsrp > d.rawPrice));          }                    return filteredDeals;        }        showLoading() {          const _div = '<' + '/div>';          const skeletonCardHtml = `            \x3Cdiv class="tg-df-card">              \x3Cdiv class="tg-df-card-image-box">                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-img">${_div}              ${_div}              \x3Cdiv class="tg-df-card-body">                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short">${_div}                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text title">${_div}                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text title">${_div}                \x3Cdiv class="tg-df-card-footer mt-auto">                  \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="height:24px;">${_div}                  \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text" style="height:44px; margin-top:8px;">${_div}                ${_div}              ${_div}            ${_div}`;          this.grid.innerHTML = Array(4).fill(skeletonCardHtml).join('');        }        showError() {          const _div = '<' + '/div>';          this.grid.innerHTML = `\x3Cdiv class="tg-df-message">            An error occurred while finding deals. Please check your connection and try again.          ${_div}`;        }        escapeHTML(str) {          if (!str) return '';          return String(str).replace(/[&<>'"]/g, tag => ({              '&': '&', '<': '<', '>': '>', "'": ''', '"': '"'          }[tag] || tag));        }                bindCouponButtons() {          const btns = this.root.querySelectorAll('.tg-df-tag-coupons');          btns.forEach(btn => {            btn.addEventListener('click', (e) => {              e.preventDefault();              e.stopPropagation();              const merchant = btn.getAttribute('data-merchant');              this.openVouchersModal(merchant);            });          });                    const closeBtn = this.root.querySelector('#tg-df-vouchers-close');          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          if (closeBtn) {            closeBtn.onclick = () => this.closeVouchersModal();          }          if (backdrop) {            backdrop.onclick = (e) => {              if (e.target === backdrop) this.closeVouchersModal();            };          }        }                closeVouchersModal() {          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          if (backdrop) backdrop.classList.remove('active');        }                async checkMerchantsCouponsBulk(merchants) {          if (!merchants || merchants.length === 0) return {};          const controller = new AbortController();          const timeoutId = setTimeout(() => controller.abort(), 4000);          try {            const area = this.getAreaCode();            const url = new URL('https://search-api.fie.future.net.uk/widget.php');            url.searchParams.append('model_name', 'Everything');            url.searchParams.append('language', 'en-GB');            if (area) url.searchParams.append('area', area);            url.searchParams.append('combine_product_types', '1');            url.searchParams.append('filter_merchant_name', merchants.join(','));            url.searchParams.append('all_filters', 'false');            url.searchParams.append('exclude_unlabelled', 'false');            url.searchParams.append('include_specs', 'false');            url.searchParams.append('sort', 'voucher');            url.searchParams.append('distinct_merchants', 'natural');            url.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');            url.searchParams.append('rows', '120');            url.searchParams.append('origin', 'widgets-clientside');                        let res; try { res = await fetch(url.toString(), { signal: controller.signal }); } catch (e) { return {}; }            clearTimeout(timeoutId);            if (!res.ok) return {};            const data = await res.json();                        let offers = [];            if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {              offers = data.widget.data.offers;            } else if (data && data.data && Array.isArray(data.data.offers)) {              offers = data.data.offers;            } else if (Array.isArray(data)) {              offers = data;            } else if (data && Array.isArray(data.offers)) {              offers = data.offers;            } else if (data && data.offers && Array.isArray(data.offers.offer)) {              offers = data.offers.offer;            } else if (data && Array.isArray(data.data)) {              offers = data.data;            }                        const foundMerchants = new Set();            offers.forEach(o => {              let mName = o.merchant_name || o.merchant || o.retailer;              if (mName && typeof mName === 'object') mName = mName.name;              if (mName) foundMerchants.add(String(mName).toLowerCase());            });            const resultMap = {};            merchants.forEach(m => {              if (m) resultMap[m] = foundMerchants.has(String(m).toLowerCase());            });            return resultMap;          } catch (e) {            return {};          }        }                async openVouchersModal(merchantName) {          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          const title = this.root.querySelector('#tg-df-vouchers-title');          const content = this.root.querySelector('#tg-df-vouchers-content');                    if (!backdrop || !content) return;                    // HACK: Hide closing tags          const _div = '<' + '/div>';          const _span = '<' + '/span>';          const _a = '<' + '/a>';          const _h4 = '<' + '/h4>';          const _svg = '<' + '/svg>';          const _circle = '<' + '/circle>';          const _polyline = '<' + '/polyline>';          const _rect = '<' + '/rect>';          const _path = '<' + '/path>';                    title.innerText = `${merchantName} Coupons & Deals`;          content.innerHTML = `\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text">${_div}                               \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text">${_div}`;          backdrop.classList.add('active');                    try {            const area = this.getAreaCode();            const url = new URL('https://search-api.fie.future.net.uk/widget.php');            url.searchParams.append('model_name', 'Everything');            url.searchParams.append('language', 'en-GB');            if (area) url.searchParams.append('area', area);            url.searchParams.append('combine_product_types', '1');            url.searchParams.append('filter_merchant_name', merchantName);            url.searchParams.append('all_filters', 'false');            url.searchParams.append('exclude_unlabelled', 'false');            url.searchParams.append('include_specs', 'false');            url.searchParams.append('sort', 'voucher');            url.searchParams.append('distinct_merchants', 'natural');            url.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');            url.searchParams.append('rows', '50');            url.searchParams.append('origin', 'widgets-clientside');                        const res = await fetch(url.toString());            if (!res.ok) throw new Error('API Error');            const data = await res.json();                        let offers = [];            if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {              offers = data.widget.data.offers;            } else if (data && data.data && Array.isArray(data.data.offers)) {              offers = data.data.offers;            } else if (Array.isArray(data)) {              offers = data;            } else if (data && Array.isArray(data.offers)) {              offers = data.offers;            } else if (data && data.offers && Array.isArray(data.offers.offer)) {              offers = data.offers.offer;            } else if (data && Array.isArray(data.data)) {              offers = data.data;            }                        if (offers.length === 0) {              content.innerHTML = `\x3Cdiv class="tg-df-message">No vouchers currently available for ${this.escapeHTML(merchantName)}.${_div}`;              return;            }                        content.innerHTML = offers.map((v, idx) => {              let offerObj = v;              if (v.offers && v.offers.offer) {                offerObj = Array.isArray(v.offers.offer) ? v.offers.offer[0] : v.offers.offer;              } else if (v.offer) {                offerObj = Array.isArray(v.offer) ? v.offer[0] : v.offer;              }              let logoUrl = v.logo_url || offerObj.logo_url || '';              if (!logoUrl && v.merchant) {                if (Array.isArray(v.merchant) && v.merchant.length > 0) logoUrl = v.merchant[0].logo_url || '';                else logoUrl = v.merchant.logo_url || '';              }                            const offerName = offerObj.name || offerObj.title || v.name || v.title || 'Special Offer';              const endTime = offerObj.end_time || v.end_time || '';              const linkUrl = offerObj.link || offerObj.url || v.link || v.url || '#';                            let foundVoucherCode = '';              const findVoucherCode = (obj) => {                if (!obj || typeof obj !== 'object') return;                if (obj.type === 'voucher_code' && obj.display_value) {                  foundVoucherCode = obj.display_value;                  return;                }                if (Array.isArray(obj)) {                  for (const item of obj) {                    findVoucherCode(item);                    if (foundVoucherCode) return;                  }                } else {                  for (const k in obj) {                    if (Object.prototype.hasOwnProperty.call(obj, k)) {                      findVoucherCode(obj[k]);                      if (foundVoucherCode) return;                    }                  }                }              };              findVoucherCode(offerObj);              if (!foundVoucherCode) findVoucherCode(v);                            const voucherCode = foundVoucherCode || offerObj.voucher_code || v.voucher_code || '';              const codeHtml = voucherCode ? `\x3Cspan class="tg-df-voucher-code" data-action="copy-code" data-code="${this.escapeHTML(voucherCode)}" title="Copy to clipboard">                \x3Cspan class="tg-df-voucher-code-text">${this.escapeHTML(voucherCode)}${_span}                \x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-left:6px;flex-shrink:0;" class="tg-df-voucher-copy-icon">                  \x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2">${_rect}                  \x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1">${_path}                ${_svg}              ${_span}` : '';                            const logoHtml = logoUrl                 ? `\x3Cimg src="${this.escapeHTML(logoUrl)}" alt="${this.escapeHTML(offerName)}" class="tg-df-voucher-logo" />`                 : `\x3Cdiv class="tg-df-voucher-logo" style="background:#e2e8f0;">${_div}`;                            let expiryHtml = '';              if (endTime) {                let dStr = endTime;                if (!isNaN(dStr) && String(dStr).length === 10) dStr = Number(dStr) * 1000;                const d = new Date(dStr);                if (!isNaN(d.getTime())) {                  const options = { year: 'numeric', month: 'short', day: 'numeric' };                  expiryHtml = `                    \x3Cdiv class="tg-df-voucher-expiry">                      \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">                        \x3Ccircle cx="12" cy="12" r="10">${_circle}                        \x3Cpolyline points="12 6 12 12 16 14">${_polyline}                      ${_svg}                      Expires ${d.toLocaleDateString(undefined, options)}                    ${_div}`;                }              }              const revenueIdVal = generateRevenueId(linkUrl, offerName, merchantName, null);              const rewrittenLinkUrl = rewriteAffiliateLink(linkUrl, area, revenueIdVal);              return `                \x3Ca href="${this.escapeHTML(rewrittenLinkUrl)}" target="_blank" rel="noopener nofollow" class="tg-df-voucher-item"                  data-action="voucher-click"                  data-product-name="${this.escapeHTML(offerName)}"                  data-merchant-name="${this.escapeHTML(merchantName)}"                  data-analytics-id="${this.escapeHTML(offerObj.offer_id || offerObj.id || v.id || '')}"                  data-price=""                  data-previous-price=""                  data-original-link="${this.escapeHTML(linkUrl)}"                  data-revenue-id="${revenueIdVal}"                  data-index="${idx}"                  data-total="${offers.length}"                  data-in-stock="true"                  data-currency="USD"                  data-model-id="${this.escapeHTML(offerObj.model_id || v.model_id || offerObj.id || v.id || '')}"                  data-merchant-id="${this.escapeHTML(offerObj.merchant_id || offerObj.merchant?.id || '')}"                >                  ${logoHtml}                  \x3Cdiv class="tg-df-voucher-content">                    \x3Ch4 class="tg-df-voucher-title">${this.escapeHTML(offerName)}${_h4}                    ${codeHtml}                    ${expiryHtml}                  ${_div}                ${_a}              `;            }).join('');                        // Attach copy functionality            const copyBtns = content.querySelectorAll('[data-action="copy-code"]');            copyBtns.forEach(btn => {              btn.addEventListener('click', async (e) => {                e.preventDefault();                e.stopPropagation();                                const code = btn.getAttribute('data-code');                if (!code) return;                                try {                  const copyToClipboard = async (text) => {                     if (window.navigator.clipboard && window.isSecureContext) {                        try { await window.navigator.clipboard.writeText(text); return; } catch (e) {}                     }                     const textArea = document.createElement("textarea");                     textArea.value = text;                     textArea.style.position = "fixed";                     document.body.appendChild(textArea);                     textArea.focus();                     textArea.select();                     document.execCommand('copy');                     textArea.remove();                  };                  await copyToClipboard(code);                                    // Visual feedback                  btn.classList.add('copied');                  const textSpan = btn.querySelector('.tg-df-voucher-code-text');                  const iconSvg = btn.querySelector('.tg-df-voucher-copy-icon');                                    const origText = textSpan.innerText;                  const origIcon = iconSvg.innerHTML;                                    textSpan.innerText = 'Copied!';                  iconSvg.innerHTML = `\x3Cpolyline points="20 6 9 17 4 12">${_polyline}`;                                    setTimeout(() => {                    if (btn) {                      btn.classList.remove('copied');                      if (textSpan) textSpan.innerText = origText;                      if (iconSvg) iconSvg.innerHTML = origIcon;                    }                  }, 2000);                                    trackElementInteraction({                    id: 'voucher-code-copy',                    name: 'Copy Voucher Code',                    label: `Copied ${code} for ${merchantName}`                  });                } catch (err) {                  console.warn('Failed to copy text: ', err);                }              });            });            // Attach voucher click tracking            const voucherBtns = content.querySelectorAll('[data-action="voucher-click"]');            voucherBtns.forEach(btn => {              btn.addEventListener('click', (e) => {                if (e.target.closest('[data-action="copy-code"]')) return;                                const productName = btn.getAttribute('data-product-name');                const merchantNameAttr = btn.getAttribute('data-merchant-name');                const productId = btn.getAttribute('data-analytics-id');                const price = parseFloat(btn.getAttribute('data-price')) || null;                const prevPriceStr = btn.getAttribute('data-previous-price');                const previousPrice = prevPriceStr ? parseFloat(prevPriceStr) : null;                const originalLink = btn.getAttribute('data-original-link');                const rewrittenLink = btn.getAttribute('href');                const revenueId = btn.getAttribute('data-revenue-id');                const index = parseInt(btn.getAttribute('data-index'), 10) || 0;                const inStock = btn.getAttribute('data-in-stock') === 'true';                const totalText = btn.getAttribute('data-total');                const totalDeals = parseInt(totalText, 10) || 0;                const productCategoryName = 'deals';                const trackingParams = {                  widgetId: this.widgetId,                  productCategoryName: productCategoryName,                  product: {                    modelId: btn.getAttribute('data-model-id') || null,                    matchId: btn.getAttribute('data-match-id') || null,                    brand: btn.getAttribute('data-model-brand') || null,                    parent: btn.getAttribute('data-model-parent') || null,                    name: productName,                    price: price,                    previousPrice: previousPrice,                    link: rewrittenLink,                    originalLink: originalLink,                    inStock: inStock                  },                  zeroBasedProductIndexOrNull: index,                  totalDealsOrProducts: totalDeals,                   merchant: {                    id: btn.getAttribute('data-merchant-id') || null,                    network: btn.getAttribute('data-merchant-network') || null,                    url: btn.getAttribute('data-merchant-url') || null,                    name: merchantNameAttr                  },                  revenueId: revenueId,                  widgetTypeName: this.widgetTypeName,                  isoCurrencyCode: btn.getAttribute('data-currency') || 'USD'                };                if (typeof trackDealClick === 'function') {                  trackDealClick(trackingParams);                }              });            });                                  } catch (e) {            console.warn(e);            content.innerHTML = `\x3Cdiv class="tg-df-message">Failed to load vouchers.${_div}`;          }        }        render() {          try {            if (this.getViewMode() === 'savings_squad' && this.airedaleTags.length > 0) {              if (this.categoryFilterWrapper) {                 this.categoryFilterWrapper.style.display = 'flex';              }              if (this.categoryFilter) {                 const _option = '<' + '/option>';                 let optionsHtml = `\x3Coption value="all">All Categories${_option}`;                 this.airedaleTags.forEach(tag => {                    const isSelected = this.activeDealTag === tag ? 'selected' : '';                    optionsHtml += `\x3Coption value="${this.escapeHTML(tag)}" ${isSelected}>${this.escapeHTML(tag)} (${this.airedaleTagCounts[tag] || 0})${_option}`;                 });                 this.categoryFilter.innerHTML = optionsHtml;                 this.categoryFilter.value = this.activeDealTag || 'all';              }            } else {               if (this.categoryFilterWrapper) {                  this.categoryFilterWrapper.style.display = 'none';               }            }            const displayDeals = this.getFilteredDeals();          // HACK: Hide closing tags from the CMS HTML sanitizer so it doesn't strip them during in-page injection          const _div = '<' + '/div>';          const _span = '<' + '/span>';          const _a = '<' + '/a>';          const _h3 = '<' + '/h3>';          const _p = '<' + '/p>';          const _strong = '<' + '/strong>';          const _sup = '<' + '/sup>';          const _button = '<' + '/button>';          if (displayDeals.length === 0) {            if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {              if (this.deals.length > 0) {                 this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                  No deals match your selected filters.                ${_div}`;              } else if (this.getViewMode() === 'savings_squad' && this.currentQuery.length <= 2) {                 // Do not show "no exact matches" if query is empty for savings_squad                 this.grid.innerHTML = '';              } else {                 this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                  No exact matches found for "\x3Cstrong>${this.escapeHTML(this.currentQuery)}${_strong}". Try adjusting your search term.                ${_div}`;              }            } else {              this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                Search product or category names to discover the best deals from across the web.              ${_div}`;            }            return;          }          let dealsHtml = displayDeals.slice(0, this.displayLimit).map((deal, index) => {            try {               const currencySym = this.escapeHTML(deal.currency);               const isoCurrencyCode = normalizeCurrency(currencySym);               const escapedPrice = this.escapeHTML(deal.price);               const escapedMsrp = this.escapeHTML(deal.msrp);               const areaCode = this.getAreaCode();                              const revenueId = generateRevenueId(deal.url, deal.title, deal.merchant, null);               const originalLink = deal.url;               const rewrittenLink = rewriteAffiliateLink(deal.url, areaCode, revenueId);                        const productCategoryName = 'deals';            const dataAttr = `              data-action="${deal.isCheckPrice ? 'view-similar-click' : 'deal-click'}"              data-analytics-id="${this.escapeHTML(deal.externalProductId || deal.id || '')}"              data-product-name="${this.escapeHTML(deal.title)}"              data-merchant-name="${this.escapeHTML(deal.merchant)}"              data-price="${deal.rawPrice || ''}"              data-previous-price="${deal.rawMsrp || ''}"              data-original-link="${this.escapeHTML(originalLink)}"              data-revenue-id="${revenueId}"              data-index="${index}"              data-total="${displayDeals.length}"              data-in-stock="${deal.inStock !== false}"              data-currency="${this.escapeHTML(isoCurrencyCode)}"              data-model-id="${this.escapeHTML(deal.modelId || '')}"              data-product-key="${this.escapeHTML(deal.productKey || '')}"              data-merchant-id="${this.escapeHTML(deal.merchantId || '')}"            `;                        let priceGroupHtml = '';            let isSavingsSquadMode = this.getViewMode() === 'savings_squad';            let ctaText = 'View Deal';            let formattedPrice = '';            let msrpHtml = '';                        if (deal.isCheckPrice) {              ctaText = isSavingsSquadMode ? 'View Deal' : 'Check Price';              if (isSavingsSquadMode) {                priceGroupHtml = `                  \x3Cdiv class="tg-df-card-merchant-wrapper">                    \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                  ${_div}                  \x3Cdiv class="tg-df-card-price-group">                  ${_div}                `;              } else {                priceGroupHtml = `                  \x3Cdiv class="tg-df-card-merchant-wrapper">                    \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                  ${_div}                  \x3Cdiv class="tg-df-card-price-group">                    \x3Cspan class="tg-df-card-price" style="font-size: 15px; font-weight: 500; font-style: italic;">See price at retailer${_span}                  ${_div}                `;              }            } else {              // Format Price              formattedPrice = escapedPrice.includes(currencySym)                 ? escapedPrice                 : `${currencySym}${escapedPrice}`;                              // Format MSRP              msrpHtml = deal.msrp && deal.rawMsrp > deal.rawPrice                ? `\x3Cspan class="tg-df-card-msrp">${escapedMsrp.includes(currencySym) ? escapedMsrp : currencySym + escapedMsrp}${_span}`                : '';                              priceGroupHtml = `                \x3Cdiv class="tg-df-card-merchant-wrapper">                  \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                ${_div}                \x3Cdiv class="tg-df-card-price-group">                  ${isSavingsSquadMode ? '' : `                  \x3Cspan class="tg-df-card-price">${formattedPrice}${_span}                  ${msrpHtml}                  `}                ${_div}              `;            }                        const discountBadgeHtml = deal.savingLabel && !deal.isCheckPrice              ? `\x3Cspan class="tg-df-card-discount-badge">${this.escapeHTML(deal.savingLabel)}${_span}`              : '';                          // HACK for CMS            const _button = '<' + '/button>';            const _svg = '<' + '/svg>';            const _path = '<' + '/path>';            const _rect = '<' + '/rect>';            const _circle = '<' + '/circle>';            const _polyline = '<' + '/polyline>';            const _line = '<' + '/line>';                        let badgesHtml = '';            const primeBadge = deal.isPrime ? `              \x3Cspan class="tg-df-tag tg-df-tag-prime">                \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="currentColor">                  \x3Cpath d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z">${_path}                ${_svg} Prime              ${_span}            ` : '';                        const couponsBadge = deal.merchant && deal.merchant.toLowerCase().includes('amazon') ? '' : `              \x3Cdiv class="tg-df-coupon-wrapper" data-merchant="${this.escapeHTML(deal.merchant)}" style="display:inline-flex; align-items:center;">                \x3Cdiv class="tg-df-coupon-spinner">${_div}                \x3Cbutton type="button" class="tg-df-tag tg-df-tag-coupons" data-action="coupons-click" data-merchant="${this.escapeHTML(deal.merchant)}" style="display:none;">                  \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">                    \x3Cpath d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z">${_path}                    \x3Cline x1="7" y1="7" x2="7.01" y2="7">${_line}                  ${_svg} Coupons                ${_button}              ${_div}            `;                        // Note: We always add coupons badge if there's a chance, but to allow 3-line titles we check wrapper display state            badgesHtml = `              \x3Cdiv class="tg-df-card-badges">                ${primeBadge}                ${couponsBadge}              ${_div}            `;            const _linearGradient = '<' + '/linearGradient>';            const _polygon = '<' + '/polygon>';            const _stop = '<' + '/stop>';            const _defs = '<' + '/defs>';                        let starHtml = '';            if (deal.starRating) {              let rating = deal.starRating;                            if (rating > 0) {                const fullStars = Math.floor(rating);                const halfStar = (rating - fullStars) >= 0.5 ? 1 : 0;                const emptyStars = Math.max(0, 5 - fullStars - halfStar);                const blue = '#1f69ff'; // Tom's guide brand color from VIEW DEAL button                const gray = '#cbd5e1';                                const starSvgFull = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="${blue}" stroke="${blue}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26">${_polygon}${_svg}`;                                const gradId = 'half_grad_' + Math.floor(Math.random()*1000000);                const starSvgHalf = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" stroke="${blue}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cdefs>\x3ClinearGradient id="${gradId}" x1="0" x2="1" y1="0" y2="0">\x3Cstop offset="50%" stop-color="${blue}">${_stop}\x3Cstop offset="50%" stop-color="transparent">${_stop}${_linearGradient}${_defs}                  \x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26" fill="url(#${gradId})">${_polygon}${_svg}`;                                  const starSvgEmpty = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="${gray}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26">${_polygon}${_svg}`;                                let stars = [];                for (let i=0; i<fullStars; i++) stars.push(starSvgFull);                if (halfStar) stars.push(starSvgHalf);                for (let i=0; i<emptyStars; i++) stars.push(starSvgEmpty);                                starHtml = `\x3Cdiv class="tg-df-card-stars" style="display:flex;align-items:center;margin-bottom:8px;font-size:13px;font-weight:600;color:var(--tg-df-text-muted);">                  \x3Cspan style="margin-right:6px;">Tom's Guide:${_span}                  \x3Cdiv style="display:flex;gap:2px;">                    ${stars.join('')}                  ${_div}                ${_div}`;              }            }            let htmlOutput = '';            if (isSavingsSquadMode) {              htmlOutput += `              \x3Cdiv class="hawk-deal-widget-container tg-df-mobile-only" data-collapsible="true">                ${this.editorMode ? `\x3Cinput type="checkbox" class="tg-df-deal-checkbox" data-id="${this.escapeHTML(deal.id)}" ${this.selectedDeals.has(deal.id) ? 'checked' : ''} style="margin-bottom: 10px;">` : ''}                \x3Cdiv class="hawk-deal-widget-wrap">                  \x3Cdiv class="hawk-deal-widget-image-container">                    \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" rel="sponsored noopener" target="_blank" class="hawk-affiliate-link-deal-widget" ${dataAttr}>                      \x3Cimg ${deal.image ? `src="${this.escapeHTML(deal.image)}"` : ''} alt="${this.escapeHTML(deal.title)}" class="hawk-lazy-image-deal-widget" loading="lazy" width="140" height="160" onerror="${deal.fallbackImage ? `if(!this.dataset.fb) { this.dataset.fb='1'; this.src='${this.escapeHTML(deal.fallbackImage)}'; } else { this.style.opacity='0'; }` : `this.style.opacity='0';`}">                    ${_a}                  ${_div}                  \x3Cdiv class="hawk-deal-widget-text-cta-container">                    \x3Cdiv class="hawk-deal-widget-text-body-container">                      \x3Cdiv class="hawk-deal-widget-text-body-main">                        \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                          ${deal.isCheckPrice ? `                            \x3Cspan class="hawk-deal-widget-title-product-title">${this.escapeHTML(deal.title)}${_span}                          ` : `                            \x3Cspan class="hawk-deal-widget-title-product-title">${deal.brand ? this.escapeHTML(deal.brand) + ' ' : ''}${this.escapeHTML(deal.productName || deal.title || '')}:${_span}                          `}                        ${_a}                        ${!deal.isCheckPrice && deal.rawMsrp && deal.rawMsrp > deal.rawPrice ? `                          \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                            \x3Cspan class="hawk-deal-widget-title-was-price">was ${currencySym}${escapedMsrp}${_span}                          ${_a}                        ` : ''}                        \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                          \x3Cspan class="hawk-deal-widget-title-retailer-price">                            ${!deal.isCheckPrice ? `                              \x3Cspan class="hawk-deal-widget-title-price">now ${formattedPrice}${_span}                              \x3Cspan class="hawk-deal-widget-title-retailer"> at ${this.escapeHTML(deal.merchant)}${_span}                            ` : `                              \x3Cspan class="hawk-deal-widget-title-price">See price at ${this.escapeHTML(deal.merchant)}${_span}                            `}                          ${_span}                        ${_a}                        ${deal.description ? `\x3Cdiv class="hawk-deal-widget-text-body-description">\x3Cp>${this.escapeHTML(deal.description)}${_p}${_div}` : ''}                      ${_div}                    ${_div}                    \x3Cdiv class="hawk-deal-widget-footer">                      \x3Cdiv class="hawk-deal-widget-button-wrapper">                        \x3Cdiv class="hawk-deal-widget-preferred-partner-wrapper">                          \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-deal-button" rel="sponsored noopener" target="_blank" ${dataAttr}>                            \x3Cspan>${deal.isCheckPrice ? 'Check Price' : 'View Deal'}${_span}                          ${_a}                        ${_div}                      ${_div}                    ${_div}                  ${_div}                ${_div}              ${_div}              `;            }            htmlOutput += `              \x3Cdiv class="tg-df-card ${isSavingsSquadMode ? 'tg-df-desktop-only' : ''}">                ${this.editorMode ? `\x3Cinput type="checkbox" class="tg-df-deal-checkbox" data-id="${this.escapeHTML(deal.id)}" ${this.selectedDeals.has(deal.id) ? 'checked' : ''}>` : ''}                \x3Cdiv class="tg-df-card-image-box">                  ${discountBadgeHtml}                  \x3Ca href="${this.escapeHTML(rewrittenLink)}" ${dataAttr} target="_blank" rel="noopener nofollow" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;">                    \x3Cimg ${deal.image ? `src="${this.escapeHTML(deal.image)}"` : ''} alt="${this.escapeHTML(deal.title)}" class="tg-df-card-image" loading="lazy" onerror="${deal.fallbackImage ? `if(!this.dataset.fb) { this.dataset.fb='1'; this.src='${this.escapeHTML(deal.fallbackImage)}'; } else { this.style.opacity='0'; }` : `this.style.opacity='0';`}">                  ${_a}                ${_div}                \x3Cdiv class="tg-df-card-body">                  ${starHtml}                  ${badgesHtml}                  \x3Ch3 class="tg-df-card-title tg-df-custom-savings-squad-title" title="${this.escapeHTML(deal.title)}">                    \x3Ca href="${this.escapeHTML(rewrittenLink)}" disable-tracking="true" target="_blank" rel="noopener nofollow" style="text-decoration: none; color: inherit;">                      ${isSavingsSquadMode                         ? (deal.isCheckPrice                             ? (deal.title && deal.title.includes(':')                                 ? `\x3Cstrong>${this.escapeHTML(deal.title.substring(0, deal.title.indexOf(':') + 1))}${_strong}\x3Cspan style="color: #1f69ff; font-weight: normal;">${this.escapeHTML(deal.title.substring(deal.title.indexOf(':') + 1))}${_span}`                                : this.escapeHTML(deal.title)                              )                             : `\x3Cstrong>${deal.brand ? this.escapeHTML(deal.brand) + ' ' : ''}${this.escapeHTML(deal.productName || deal.title || '')}:${_strong} ${deal.rawMsrp && deal.rawMsrp > deal.rawPrice ? `\x3Cspan style="color: #d0021b; text-decoration: line-through; font-weight: normal; margin-right: 4px;">was ${currencySym}${escapedMsrp}${_span} ` : ''}\x3Cspan style="color: #1f69ff; font-weight: normal;">now ${formattedPrice} at ${this.escapeHTML(deal.merchant)}${_span}`                          )                        : this.escapeHTML(deal.title)                      }                    ${_a}                  ${_h3}                  ${deal.description ? `\x3Cp style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 12px; line-height: 1.4;">${this.escapeHTML(deal.description)}${_p}` : ''}                  \x3Cdiv class="tg-df-card-footer">                    ${priceGroupHtml}                    \x3Ca href="${this.escapeHTML(rewrittenLink)}" ${dataAttr} target="_blank" rel="noopener nofollow" class="tg-df-card-cta ${isSavingsSquadMode ? 'tg-df-cta-savings-squad' : ''}" style="text-decoration: none;">${ctaText}${_a}                  ${_div}                ${_div}              ${_div}            `;                        return htmlOutput;            } catch (e) {               console.log("Error rendering deal in map for index", index, typeof deal === 'object' ? JSON.stringify(deal) : deal, "MSG:", e.message);               return '';            }          }).join('');                    if (displayDeals.length > this.displayLimit || ((this.getViewMode() === 'carousel' || this.getViewMode() === 'auto') && displayDeals.length > 0 && displayDeals.length % ((this.rowsSelect && this.rowsSelect.value) ? parseInt(this.rowsSelect.value, 10) : 12) === 0)) {            if (this.getViewMode() === 'carousel') {               dealsHtml += `                 \x3Cbutton type="button" class="tg-df-load-more-card tg-df-load-more">                   \x3Csvg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-bottom: 8px;">\x3Cpath d="M5 12h14">\x3C/path>\x3Cpath d="m12 5 7 7-7 7">\x3C/path>\x3C/svg>                   Load More                 ${_button}               `;            } else {               dealsHtml += `                 \x3Cdiv style="width: 100%; display: flex; justify-content: center; margin-top: 16px; grid-column: 1 / -1;">                   \x3Cbutton type="button" class="tg-df-tag-outline tg-df-load-more" style="padding: 8px 24px; border-radius: 100px; font-weight: 600; font-size: 14px; cursor: pointer; display: flex; align-items: center;">Load More${_button}                 ${_div}               `;            }          }                    this.grid.innerHTML = dealsHtml;          // Inject JSON-LD          try {            let targetNode = this.hostContainer || document.head;            let jsonLdScript = targetNode.querySelector('#tg-df-json-ld-' + this.widgetId);            if (!jsonLdScript) {                jsonLdScript = document.createElement('script');                jsonLdScript.type = 'application/ld+json';                jsonLdScript.id = 'tg-df-json-ld-' + this.widgetId;                targetNode.appendChild(jsonLdScript);            }            const jsonLdData = {              "@context": "https://schema.org",              "@type": "ItemList",              "itemListElement": displayDeals.slice(0, this.displayLimit).map((deal, index) => {                 let isoCurrency = "USD";                 if (deal.currency === '£') isoCurrency = "GBP";                 else if (deal.currency === '€') isoCurrency = "EUR";                 else if (deal.currency === 'A$') isoCurrency = "AUD";                 else if (deal.currency === 'CA$') isoCurrency = "CAD";                 const areaCode = typeof this.getAreaCode === 'function' ? this.getAreaCode() : 'US';                 const revenueId = typeof generateRevenueId === 'function' ? generateRevenueId(deal.url, deal.title, deal.merchant, null) : '';                 const rewrittenLink = typeof rewriteAffiliateLink === 'function' ? rewriteAffiliateLink(deal.url, areaCode, revenueId) : deal.url;                 return {                   "@type": "ListItem",                   "position": index + 1,                   "item": {                     "@type": "Product",                     "name": deal.title,                     "image": deal.image || "",                     "description": deal.description || "",                     "brand": {                       "@type": "Brand",                       "name": deal.brand || ""                     },                     "offers": {                       "@type": "Offer",                       "priceCurrency": isoCurrency,                       "price": deal.rawPrice || 0,                       "url": rewrittenLink,                       "seller": {                         "@type": "Organization",                         "name": deal.merchant || ""                       }                     }                   }                 };              }).filter(item => item.item.name)            };            jsonLdScript.textContent = JSON.stringify(jsonLdData);          } catch(e) { console.warn("JSON-LD generation failed", e); }                    let gridWrapper = this.grid.parentElement;          if (gridWrapper && gridWrapper.classList.contains('tg-df-grid-wrapper')) {             let rightChevron = gridWrapper.querySelector('.tg-df-carousel-scroll-right');             let leftChevron = gridWrapper.querySelector('.tg-df-carousel-scroll-left');             if (this.getViewMode() === 'carousel') {                 // The observer set up in setupScrollListeners handles visibility.                 if (rightChevron) rightChevron.style.display = 'flex';                 if (leftChevron) leftChevron.style.display = 'none'; // reset correctly             } else {                 if (rightChevron) rightChevron.style.display = 'none';                 if (leftChevron) leftChevron.style.display = 'none';             }          }                    const loadMoreBtn = this.grid.querySelector('.tg-df-load-more');          if (loadMoreBtn) {            loadMoreBtn.addEventListener('click', async () => {              if (typeof trackElementInteraction === 'function') {                trackElementInteraction({ id: 'load-more', name: 'Load more', label: 'Load More Results' });              }              if (displayDeals.length <= this.displayLimit) {                 loadMoreBtn.innerHTML = `                  <svg class="tg-df-spinner" style="width: 16px; height: 16px; display: inline-block; vertical-align: middle; margin-right: 8px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" d="M12 2v4m0 12v4M4.93 4.93l2.83 2.83m8.48 8.48l2.83 2.83M2 12h4m12 0h4M4.93 19.07l2.83-2.83m8.48-8.48l2.83-2.83"/></svg>                  Loading...                 `;                 loadMoreBtn.disabled = true;                 await this.fetchDeals(this.currentQuery, true);              } else {                 this.displayLimit += this.getRowsLimit();                 this.render();              }            });          }                      this.bindCouponButtons();            this.checkAndUpdateCoupons();                        // Allow hawklinks.js to discover and rewrite our widget links             // by appending the .article-body class and manually triggering processArticle.            let container = this.root.classList.contains('tg-df-container') ? this.root : this.root.querySelector('.tg-df-container');            if (container && !container.classList.contains('article-body')) {               container.classList.add('article-body');            }            setTimeout(() => {               if (this.grid && !this.grid.classList.contains('article-body')) this.grid.classList.add('article-body');               document.dispatchEvent(new CustomEvent('processArticle', { detail: { element: this.root } }));            }, 50);          } catch(e) {            console.warn("Widget render error", e);          }        }                async checkAndUpdateCoupons() {          const wrappers = Array.from(this.root.querySelectorAll('.tg-df-coupon-wrapper'));          if (wrappers.length === 0) return;                    const merchants = [...new Set(wrappers.map(w => w.getAttribute('data-merchant')).filter(Boolean))];          if (merchants.length === 0) return;          const couponResultsMap = await this.checkMerchantsCouponsBulk(merchants);                    for (const merchant of merchants) {            const hasCoupons = !!couponResultsMap[merchant];            const merchantWrappers = wrappers.filter(w => w.getAttribute('data-merchant') === merchant);            merchantWrappers.forEach(wrapper => {              const spinner = wrapper.querySelector('.tg-df-coupon-spinner');              const btn = wrapper.querySelector('.tg-df-tag-coupons');                            if (spinner) spinner.style.display = 'none';                            if (hasCoupons && btn) {                btn.style.display = 'inline-flex';              } else if (!hasCoupons) {                wrapper.style.display = 'none';              }            });          }        }        updateFloatingCopyBar() {          if (!this.editorBar || !this.editorSelectedCount) return;          if (this.editorMode && this.selectedDeals.size > 0) {            this.editorBar.style.display = 'flex';            this.editorSelectedCount.innerText = this.selectedDeals.size;          } else {            this.editorBar.style.display = 'none';          }        }        async copySelectedDealsToCMS() {           function htmlToSlate(htmlString) {              if (!htmlString) return [{ type: 'paragraph', children: [{ text: '' }] }];              let doc;              if (typeof window !== 'undefined' && window.DOMParser) {                 doc = new DOMParser().parseFromString(htmlString, 'text/html');              } else {                 doc = document.implementation.createHTMLDocument('');                 doc.body.innerHTML = htmlString;              }                            function parseNode(node, marks = {}) {                  if (node.nodeType === 3) {                      const text = node.textContent;                      if (!text) return null;                      return { text: text, ...marks };                  }                  if (node.nodeType === 1) {                      const tagName = node.tagName.toLowerCase();                      if (tagName === 'br') {                          return { type: 'line-break', children: [{ text: '' }] };                      }                      if (tagName === 'p') {                          let children = Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                          if (children.length === 0) children.push({ text: "" });                          return { type: 'paragraph', children };                      }                      if (tagName === 'strong' || tagName === 'b') {                          const newMarks = { ...marks, bold: true };                          return Array.from(node.childNodes).map(child => parseNode(child, newMarks)).flat().filter(Boolean);                      }                      if (tagName === 'em' || tagName === 'i') {                          const newMarks = { ...marks, italic: true };                          return Array.from(node.childNodes).map(child => parseNode(child, newMarks)).flat().filter(Boolean);                      }                      if (tagName === 'a') {                          const href = node.getAttribute('href') || '';                          let children = Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                          if (children.length === 0) children.push({ text: "" });                          return {                              type: 'link',                              url: href,                              isNoFollow: (node.getAttribute('rel') || '').includes('nofollow'),                              isSponsored: (node.getAttribute('rel') || '').includes('sponsored'),                              isOpenNewTab: node.getAttribute('target') === '_blank',                              isPreventDataRewrite: false,                              children: children                          };                      }                      return Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                  }                  return null;              }                            let blocksArray = [];              let currentParagraphChildren = [];              function flushParagraph() {                  if (currentParagraphChildren.length > 0) {                      blocksArray.push({ type: 'paragraph', children: currentParagraphChildren });                      currentParagraphChildren = [];                  }              }              Array.from(doc.body.childNodes).forEach(node => {                  const parsed = parseNode(node, {});                  const parsedItems = Array.isArray(parsed) ? parsed : (parsed ? [parsed] : []);                  parsedItems.forEach(item => {                      if (item.type === 'paragraph') {                          flushParagraph();                          blocksArray.push(item);                      } else {                          currentParagraphChildren.push(item);                      }                  });              });              flushParagraph();              if (blocksArray.length === 0) {                  blocksArray = [{ type: 'paragraph', children: [{ text: '' }] }];              }              return blocksArray;           }           const blocks = [];                      this.editorCopyBtn.innerHTML = '\x3Cspan class="tg-df-coupon-spinner" style="display:inline-block; margin-right:8px; border-top-color:#fff;">' + '<' + '/span> Copying...';           for (const deal of Array.from(this.selectedDeals.values())) {              const url = deal.url;              const merchant = deal.merchant;              const title = deal.title;              const image = deal.image;              const currentPrice = deal.currency + deal.rawPrice;              const wasPrice = deal.hasWasPrice && deal.rawMsrp > deal.rawPrice ? deal.currency + deal.rawMsrp : '';                            let couponsChildren = [];              try {                  const area = this.getAreaCode();                  const apiUrl = new URL('https://search-api.fie.future.net.uk/widget.php');                  apiUrl.searchParams.append('model_name', 'Everything');                  apiUrl.searchParams.append('language', 'en-GB');                  apiUrl.searchParams.append('area', area);                  apiUrl.searchParams.append('combine_product_types', '1');                  apiUrl.searchParams.append('filter_merchant_name', merchant);                  apiUrl.searchParams.append('all_filters', 'false');                  apiUrl.searchParams.append('exclude_unlabelled', 'false');                  apiUrl.searchParams.append('include_specs', 'false');                  apiUrl.searchParams.append('sort', 'voucher');                  apiUrl.searchParams.append('distinct_merchants', 'natural');                  apiUrl.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');                  apiUrl.searchParams.append('rows', '3');                  apiUrl.searchParams.append('origin', 'widgets-clientside');                                    let res; try { res = await fetch(apiUrl.toString()); } catch (e) { return; }                  if (res.ok) {                      const data = await res.json();                      let offers = [];                      if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {                        offers = data.widget.data.offers;                      } else if (data && data.data && Array.isArray(data.data.offers)) {                        offers = data.data.offers;                      }                                            if (offers.length > 0) {                          couponsChildren.push({ text: "Also check out these coupons: ", bold: true });                          offers.slice(0, 3).forEach((offer, idx) => {                              const actualOffer = offer.offer || offer;                              const offerName = actualOffer.name || actualOffer.title || offer.model_name || offer.title || offer.name || 'Coupon';                              const linkUrl = actualOffer.link || actualOffer.url || actualOffer.offer_link || '#';                              couponsChildren.push({ type: "line-break", children: [{ text: "" }] });                              couponsChildren.push({ text: "🎟️ " });                              couponsChildren.push({                                  type: "link",                                  url: linkUrl,                                  isNoFollow: true,                                  isSponsored: false,                                  isOpenNewTab: true,                                  isPreventDataRewrite: false,                                  children: [{ text: offerName, bold: true }]                              });                          });                      }                  }              } catch (err) {                  console.warn('Failed to fetch coupons for', merchant, err);              }              let descriptionValue = [];              if (deal.text) {                 descriptionValue = htmlToSlate(deal.text);              } else {                 const dealDescriptions = [                   `Don't miss out on this fantastic deal for the ${title}. It is currently available at ${merchant} for a highly competitive price.`,                   `We've spotted an excellent price drop on the ${title}. Grab it now at ${merchant} before it's gone.`,                   `The ${title} is currently seeing a generous discount over at ${merchant}. This is a perfect time to buy if you've been holding out.`,                   `If you're in the market for the ${title}, ${merchant} has just the deal for you.`,                   `Score the ${title} for less at ${merchant} right now. This is a rare chance to save big.`,                   `Upgrade your setup with the ${title}, now available at a stellar price via ${merchant}.`                 ];                 const randomDescription = dealDescriptions[Math.floor(Math.random() * dealDescriptions.length)];                 descriptionValue = [                    { type: "paragraph", children: [{ text: randomDescription }] }                 ];              }                            if (couponsChildren.length > 0) {                 let lastBlock = descriptionValue[descriptionValue.length - 1];                 if (lastBlock && lastBlock.type === 'paragraph') {                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children.push({ text: "Also check out these coupons: ", bold: true });                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children = lastBlock.children.concat(couponsChildren);                 } else {                     descriptionValue.push({                         type: "paragraph",                         children: [                             { type: "line-break", children: [{ text: "" }] },                             { type: "line-break", children: [{ text: "" }] },                             { text: "Also check out these coupons: ", bold: true },                             { type: "line-break", children: [{ text: "" }] },                             ...couponsChildren                         ]                     });                 }              }              function normalizeCurrencyToISO(symbol) {                const map = { '£': 'GBP', '$': 'USD', 'A$': 'AUD', 'CA$': 'CAD', '€': 'EUR' };                return map[symbol] || symbol;              }              const isoCurrency = normalizeCurrencyToISO(deal.currency);              blocks.push({                 id: (window.crypto && window.crypto.randomUUID) ? window.crypto.randomUUID() : 'cms-' + Date.now() + Math.random(),                 blockTypeName: "deal",                 excludeFrom: [],                 collapsible: false,                 props: {                    description: {                       value: descriptionValue,                       touched: false,                       validationMessage: ""                    },                    image: {                       value: {                          credit: [{ type: "paragraph", children: [{ text: merchant }] }],                          dateCreated: Date.now(),                          dateModified: Date.now(),                          distribution: [],                          fileSize: 0,                          height: 1000,                          id: deal.id,                          imageRights: "",                          src: image,                          name: title + ".jpg",                          tags: [],                          width: 1000                       },                       touched: false,                       validationMessage: ""                    },                    showDealButton: { value: true, touched: false, validationMessage: "" },                    isPreferredPartner: { value: false, touched: false, validationMessage: "" },                    linkHref: { value: url, touched: false, validationMessage: "" },                    linkLabel: { value: "", touched: false, validationMessage: "" },                    linkIsNoFollow: { value: true, touched: false, validationMessage: "" },                    linkIsSponsored: { value: false, touched: false, validationMessage: "" },                    linkIsOpenNewWindow: { value: true, touched: false, validationMessage: "" },                    customPromoFlags: { value: [], touched: false, validationMessage: "" },                    showStarDeal: { value: false, touched: false, validationMessage: "" },                    savingType: { value: "none", touched: false, validationMessage: "" },                    starDealPromoFlag: { value: "", touched: false, validationMessage: "" },                    showEditorsChoice: { value: false, touched: false, validationMessage: "" },                    editorsChoiceTitle: { value: "", touched: false, validationMessage: "" },                    hawkPriceCurrency: { value: { value: isoCurrency, label: isoCurrency }, touched: false, validationMessage: "" },                    hawkPrice: { value: deal.hasWasPrice ? String(deal.rawMsrp) : String(deal.rawPrice), touched: false, validationMessage: "" },                    hawkSalePrice: { value: String(deal.rawPrice), touched: false, validationMessage: "" },                    lastCheckedPriceDate: { value: "", touched: false, validationMessage: "" },                    hawkModel: { touched: false, validationMessage: "" },                    productId: { value: "", touched: false, validationMessage: "" },                    voucherId: { value: "", touched: false, validationMessage: "" },                    brand: { value: deal.brand || merchant, touched: false, validationMessage: "" },                    productName: { value: title, touched: false, validationMessage: "" },                    label: { value: "", touched: false, validationMessage: "" },                    retailer: { value: merchant, touched: false, validationMessage: "" },                    priceCheckError: false                 },                 failedFetchError: ""              });           }           const payload = {              type: "articleBuilderPages",              data: blocks           };           const jsonStr = JSON.stringify(payload);                      if (navigator.clipboard && navigator.clipboard.writeText) {              navigator.clipboard.writeText(jsonStr).then(() => {                 this.editorCopyBtn.innerHTML = 'Copied!';                 setTimeout(() => {                    this.editorCopyBtn.innerHTML = '\x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2"><' + '/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"><' + '/path><' + '/svg> Copy to CMS';                 }, 2000);              }).catch(err => {                 console.warn('Failed to copy text: ', err);                 alert('Failed to copy deals to clipboard. See console.');              });           } else {              // Fallback              const textArea = document.createElement("textarea");              textArea.value = jsonStr;              document.body.appendChild(textArea);              textArea.focus();              textArea.select();              try {                 document.execCommand('copy');                 this.editorCopyBtn.innerHTML = 'Copied!';                 setTimeout(() => {                    this.editorCopyBtn.innerHTML = '\x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2"><' + '/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"><' + '/path><' + '/svg> Copy to CMS';                 }, 2000);              } catch (err) {                 console.warn('Fallback: Oops, unable to copy', err);                 alert('Fallback: Failed to copy deals to clipboard.');              }              document.body.removeChild(textArea);           }        }      }      // Initialize the Widget      if (document.readyState === 'loading') {        document.addEventListener('DOMContentLoaded', () => new DealsFinderWidget({ rootId: 'signal-deals-finder-root', rootNode: shadowRoot, hostContainer: hostContainer }));      } else {        new DealsFinderWidget({ rootId: 'signal-deals-finder-root', rootNode: shadowRoot, hostContainer: hostContainer });      }    })();  </script></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ New Windows zero-day flaw could give hackers deep access to your PC — how to stay safe ]]></title>
                                                                                                <dc:content><![CDATA[ <p>This week two different <a href="https://www.tomsguide.com/computing/online-security/over-1-billion-windows-users-at-risk-after-disgruntled-security-researcher-leaks-defender-zero-days">Windows vulnerabilities</a> were revealed that attack your PC from different angles. However, there is one unfortunate thread that connects them; both are capable of allowing a malicious actor to gain system privileges on your Windows device, and neither has been patched yet.</p><p>The flaws are a <a href="https://www.tomsguide.com/computing/online-security/do-you-use-microsoft-exchange-hackers-are-actively-exploiting-a-new-zero-day-flaw">zero-day vulnerability</a> that can circumnavigate a previous RoguePlanet and a new "Plug and Pwn" attack that emulates USB devices.</p><p>Read on to find out what each attack can do and how to potentially stay safe until they get patched. </p><h2 id="shieldbreak-zero-day">Shieldbreak Zero-Day</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="JU27PbrhCr9X35AbQFzAdR" name="virtual vpn" alt="Hands typing on a laptop with a digital shield and lock icon, symbolizing cybersecurity. Surrounded by binary code and glowing elements." src="https://cdn.mos.cms.futurecdn.net/JU27PbrhCr9X35AbQFzAdR.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: TU IS (via Getty Images))</span></figcaption></figure><p>The zero-day vulnerability was found by Nightmare Eclipse, a bug hunter who reportedly has major beef with Microsoft and no qualms sharing the latest vulnerabilities they've discovered before a patch has released.</p><p>The latest, dubbed <a href="https://github.com/MSNightmare/ShieldBreak" target="_blank">ShieldBreak</a>, can apparently get around the RoguePlanet patch and allows attackers to gain system privileges on patched Windows 10, Windows 11 and Windows Server system.</p><p>Per <a href="https://www.theregister.com/cyber-crime/2026/08/12/microsoft-vendetta-hacker-has-a-new-zero-day-that-gives-system-privileges-on-fully-patched-windows/5286889" target="_blank">The Register</a>, the exploit has been tested by other security researchers and confirmed.</p><p>ShieldBreak apparently uses a "user-mode callback hook" to change file contents during a Defender cloud-hydration scan via cfapi (Cloud Filter API)," according to security researcher <a href="https://cyberplace.social/@GossiTheDog/117082629057300721" target="_blank">Kevin Beaumont</a>.</p><p>Basically, it uses <a href="https://www.tomsguide.com/computing/antivirus/microsoft-defender-review">Microsoft Defender</a>, if enabled, when it runs a scan. Then the flaw can be exploited to gain System privileges. Another researcher, <a href="https://infosec.exchange/@wdormann/117079587486018149" target="_blank">Will Dormann</a>, says that Defender has to be active for the exploit to work.</p><h2 id="how-to-stay-safe-from-shieldbreak">How to stay safe from Shieldbreak</h2><p>Until Microsoft patches this vulnerability, one way to stay safe is to disable Microsoft Defender. </p><p>If you think your system might be vulnerable, Kevin Beaumont did <a href="https://cyberplace.social/@GossiTheDog/117082629057300721" target="_blank">publish three detections </a>that are supposed to be able to catch Shieldbreak in action. If you have the knowledge, you could try running them.</p><h2 id="plug-and-pwn">Plug and Pwn</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="jDguSN4dyAxkcNZQD5iamP" name="USB-A.jpg" alt="USB-A" src="https://cdn.mos.cms.futurecdn.net/jDguSN4dyAxkcNZQD5iamP.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>The other flaw is a new "plug and pwn" disclosed by security researchers <a href="https://x.com/0xedh" target="_blank">Alejandro Hernando</a> and <a href="https://x.com/Qm9yamFN" target="_blank">Borja Martinez </a>(via <a href="https://www.bleepingcomputer.com/news/security/plug-and-pwn-attack-uses-fake-usb-devices-for-windows-system-access/" target="_blank">Bleeping Computer</a>) during the recent DEF CON 34 hacking conference. This vulnerability exploits how Windows identifies and automatically connects USB hardware, finds matching driver packages and then installs software as the Authority/System account.</p><p>Simply, the flaw emulates USB devices and can be used to force Windows to install vendor packages with exploitable components that can be used to gain system privileges on a Windows device.</p><p>Apparently, in some attacks, they didn't even require user interaction or physical USB hardware to gain access. This is enabled because Windows uses something called a co-installer, which automatically downloads and installs software and drivers when a new USB device is inserted in the computer.</p><p>This specific version is different from previous ones because it follows the Windows installation path and not something from a specific vendor. Notably, the remote attacks only seem to work on systems where USB redirection is enabled, which Alejandro Hernando said is common with virtual desktop environments.</p><p>Bleeping Computer gets far more granular if you're interested in how Hernando and Martinez discovered the flaw and the tools they used to instigate it.</p><h2 id="how-to-stay-safe-from-this-usb-attack">How to stay safe from this USB attack</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="CSFXsX24TGg5qRaKfGEjC6" name="USB-A vs USB-C.jpg" alt="USB-A vs USB-C" src="https://cdn.mos.cms.futurecdn.net/CSFXsX24TGg5qRaKfGEjC6.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>If you are concerned about this kind of attack and willing, you could enable a 'DisableCoInstallers' registry value. This prevents driver packages from utilizing co-installers during device installtion. </p><p>You can do this by searching for it in the Start menu or using the keyboard short cut of the Windows key +R. Then navigate to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Device Installer Registry key. Then add DWORD-32 value named DisableCoInstallers and set it to 1.</p><p>It doesn't totally eliminate plug and pwn attacks, but it could break some of them.</p><p>"In anything sensitive I'd pair it with device installation restrictions or hardware-ID allow-lists, and turn off PnP device redirection on RDP and VDI hosts that don't need it (`fDisablePNPRedir`)," Hernando told BleepingComputer.</p><p>It's a good reminder either way to make sure you're only plugging in trusted devices to your system or downloading software from official sources when you can to ensure the safety of what you're putting into your computer.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/computing/windows-operating-systems/windows-11-is-broken-and-microsoft-is-fixing-the-wrong-things#viafoura-comments"><strong>Windows 11 is broken — and Microsoft is fixing the wrong things</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/computing/browsers/microsoft-is-still-using-deceptive-tactics-and-design-to-force-you-to-use-edge"><strong>Microsoft is still using ‘deceptive tactics and design’ to force you to use Edge</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/computing/windows-operating-systems/microsoft-extends-windows-10-support-for-another-year-what-you-need-to-know"><strong>Microsoft extends Windows 10 support for another year: what you need to know</strong></a><strong></strong></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/online-security/new-windows-zero-day-flaw-could-give-hackers-deep-access-to-your-pc-how-to-stay-safe</link>
                                                                            <description>
                            <![CDATA[ Two different Windows flaws popped up this week. What connects them is that both could give bad actors system privileges. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">pn79hVmH7mpAKpDpKoxV3Z</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/pjRoZBt6XiSUTK6dUoB8Jh-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 13 Aug 2026 01:09:52 +0000</pubDate>                                                                                                                                <updated>Thu, 13 Aug 2026 16:02:19 +0000</updated>
                                                                                                                                            <category><![CDATA[Online Security]]></category>
                                                    <category><![CDATA[Windows Operating Systems]]></category>
                                                    <category><![CDATA[Computing Peripherals]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                                                                <author><![CDATA[ scott.younker@futurenet.com (Scott Younker) ]]></author>                    <dc:creator><![CDATA[ Scott Younker ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/RZsUpqcJ6Uj2q83oCUwNhQ.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Scott Younker is the West Coast Reporter at Tom’s Guide. He covers all the latest tech news, including phones, computing and more. He’s been involved in tech since 2011 covering everything from cameras and swimming pool equipment to the latest gaming consoles and smart TVs. He is on a seemingly never ending hunt to build the easiest to use home media system. &lt;/p&gt;&lt;p&gt;Before Tom’s Guide, Scott worked for publications like &lt;em&gt;Digital Trends, Outdoor Photographer, Dead Beats Panel&lt;/em&gt;, and in a brief detour, &lt;em&gt;America’s Funniest Home Videos&lt;/em&gt;. Yes, he has seen more pratfalls, silly pets and ridiculous home movie fails than is reasonably healthy. &lt;/p&gt;&lt;p&gt;When not writing about the latest devices or advances in chipsets, be sure to ask about Scott about disc golf and sustainability, or just if you’re being cheeky, ask about his noodle arm. If you truly want to get nerdy, bring up board games and his ongoing losing streak. &lt;/p&gt;&lt;p&gt;Scott joined Tom&#039;s Guide in 2024 as the West Coast Reporter. He graduated from the School of Journalism at the University of Oregon with a degree in magazine journalism and a minor in communications. While there he blogged or wrote for several magazines including the Fluxx, Ethos and the Oregon Commentator. He briefly wrote and managed a moderately successful blog focused on web comics. &lt;br&gt;Send secure tips on Signal: scyo1.55.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/pjRoZBt6XiSUTK6dUoB8Jh-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock / Edited by Gemini]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A Windows 11 laptop displaying a large warning sign]]></media:description>                                                            <media:text><![CDATA[A Windows 11 laptop displaying a large warning sign]]></media:text>
                                <media:title type="plain"><![CDATA[A Windows 11 laptop displaying a large warning sign]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/pjRoZBt6XiSUTK6dUoB8Jh-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>This week two different <a href="https://www.tomsguide.com/computing/online-security/over-1-billion-windows-users-at-risk-after-disgruntled-security-researcher-leaks-defender-zero-days">Windows vulnerabilities</a> were revealed that attack your PC from different angles. However, there is one unfortunate thread that connects them; both are capable of allowing a malicious actor to gain system privileges on your Windows device, and neither has been patched yet.</p><p>The flaws are a <a href="https://www.tomsguide.com/computing/online-security/do-you-use-microsoft-exchange-hackers-are-actively-exploiting-a-new-zero-day-flaw">zero-day vulnerability</a> that can circumnavigate a previous RoguePlanet and a new "Plug and Pwn" attack that emulates USB devices.</p><p>Read on to find out what each attack can do and how to potentially stay safe until they get patched. </p><h2 id="shieldbreak-zero-day">Shieldbreak Zero-Day</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="JU27PbrhCr9X35AbQFzAdR" name="virtual vpn" alt="Hands typing on a laptop with a digital shield and lock icon, symbolizing cybersecurity. Surrounded by binary code and glowing elements." src="https://cdn.mos.cms.futurecdn.net/JU27PbrhCr9X35AbQFzAdR.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: TU IS (via Getty Images))</span></figcaption></figure><p>The zero-day vulnerability was found by Nightmare Eclipse, a bug hunter who reportedly has major beef with Microsoft and no qualms sharing the latest vulnerabilities they've discovered before a patch has released.</p><p>The latest, dubbed <a href="https://github.com/MSNightmare/ShieldBreak" target="_blank">ShieldBreak</a>, can apparently get around the RoguePlanet patch and allows attackers to gain system privileges on patched Windows 10, Windows 11 and Windows Server system.</p><p>Per <a href="https://www.theregister.com/cyber-crime/2026/08/12/microsoft-vendetta-hacker-has-a-new-zero-day-that-gives-system-privileges-on-fully-patched-windows/5286889" target="_blank">The Register</a>, the exploit has been tested by other security researchers and confirmed.</p><p>ShieldBreak apparently uses a "user-mode callback hook" to change file contents during a Defender cloud-hydration scan via cfapi (Cloud Filter API)," according to security researcher <a href="https://cyberplace.social/@GossiTheDog/117082629057300721" target="_blank">Kevin Beaumont</a>.</p><p>Basically, it uses <a href="https://www.tomsguide.com/computing/antivirus/microsoft-defender-review">Microsoft Defender</a>, if enabled, when it runs a scan. Then the flaw can be exploited to gain System privileges. Another researcher, <a href="https://infosec.exchange/@wdormann/117079587486018149" target="_blank">Will Dormann</a>, says that Defender has to be active for the exploit to work.</p><h2 id="how-to-stay-safe-from-shieldbreak">How to stay safe from Shieldbreak</h2><p>Until Microsoft patches this vulnerability, one way to stay safe is to disable Microsoft Defender. </p><p>If you think your system might be vulnerable, Kevin Beaumont did <a href="https://cyberplace.social/@GossiTheDog/117082629057300721" target="_blank">publish three detections </a>that are supposed to be able to catch Shieldbreak in action. If you have the knowledge, you could try running them.</p><h2 id="plug-and-pwn">Plug and Pwn</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="jDguSN4dyAxkcNZQD5iamP" name="USB-A.jpg" alt="USB-A" src="https://cdn.mos.cms.futurecdn.net/jDguSN4dyAxkcNZQD5iamP.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>The other flaw is a new "plug and pwn" disclosed by security researchers <a href="https://x.com/0xedh" target="_blank">Alejandro Hernando</a> and <a href="https://x.com/Qm9yamFN" target="_blank">Borja Martinez </a>(via <a href="https://www.bleepingcomputer.com/news/security/plug-and-pwn-attack-uses-fake-usb-devices-for-windows-system-access/" target="_blank">Bleeping Computer</a>) during the recent DEF CON 34 hacking conference. This vulnerability exploits how Windows identifies and automatically connects USB hardware, finds matching driver packages and then installs software as the Authority/System account.</p><p>Simply, the flaw emulates USB devices and can be used to force Windows to install vendor packages with exploitable components that can be used to gain system privileges on a Windows device.</p><p>Apparently, in some attacks, they didn't even require user interaction or physical USB hardware to gain access. This is enabled because Windows uses something called a co-installer, which automatically downloads and installs software and drivers when a new USB device is inserted in the computer.</p><p>This specific version is different from previous ones because it follows the Windows installation path and not something from a specific vendor. Notably, the remote attacks only seem to work on systems where USB redirection is enabled, which Alejandro Hernando said is common with virtual desktop environments.</p><p>Bleeping Computer gets far more granular if you're interested in how Hernando and Martinez discovered the flaw and the tools they used to instigate it.</p><h2 id="how-to-stay-safe-from-this-usb-attack">How to stay safe from this USB attack</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="CSFXsX24TGg5qRaKfGEjC6" name="USB-A vs USB-C.jpg" alt="USB-A vs USB-C" src="https://cdn.mos.cms.futurecdn.net/CSFXsX24TGg5qRaKfGEjC6.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>If you are concerned about this kind of attack and willing, you could enable a 'DisableCoInstallers' registry value. This prevents driver packages from utilizing co-installers during device installtion. </p><p>You can do this by searching for it in the Start menu or using the keyboard short cut of the Windows key +R. Then navigate to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Device Installer Registry key. Then add DWORD-32 value named DisableCoInstallers and set it to 1.</p><p>It doesn't totally eliminate plug and pwn attacks, but it could break some of them.</p><p>"In anything sensitive I'd pair it with device installation restrictions or hardware-ID allow-lists, and turn off PnP device redirection on RDP and VDI hosts that don't need it (`fDisablePNPRedir`)," Hernando told BleepingComputer.</p><p>It's a good reminder either way to make sure you're only plugging in trusted devices to your system or downloading software from official sources when you can to ensure the safety of what you're putting into your computer.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/computing/windows-operating-systems/windows-11-is-broken-and-microsoft-is-fixing-the-wrong-things#viafoura-comments"><strong>Windows 11 is broken — and Microsoft is fixing the wrong things</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/computing/browsers/microsoft-is-still-using-deceptive-tactics-and-design-to-force-you-to-use-edge"><strong>Microsoft is still using ‘deceptive tactics and design’ to force you to use Edge</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/computing/windows-operating-systems/microsoft-extends-windows-10-support-for-another-year-what-you-need-to-know"><strong>Microsoft extends Windows 10 support for another year: what you need to know</strong></a><strong></strong></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Windows 11 is broken — and Microsoft is fixing the wrong things ]]></title>
                                                                                                <dc:content><![CDATA[ <p>It’s a little sad being a fan of tech these days. AI is consuming the world’s art and emotion and spitting out slop, and it’s driving up the price of just about every piece of consumer electronics as it does.</p><p>If you don’t need to upgrade your computer anytime soon, then you’re in a good spot - except <a href="https://www.tomsguide.com/reviews/windows-11">Windows 11</a> is doing its damnedest to be a mess of Copilot and bugs. While Microsoft is moving to improve things (with Windows head honcho Pavan Davuluri <a href="https://www.tomsguide.com/computing/windows-operating-systems/microsoft-promises-windows-11-reset-new-focus-on-performance-reliability-and-reducing-unnecessary-copilot-ai">promising big changes back in March</a>), it feels as though we might be better off nuking the whole thing from orbit.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-OLq4ZX"></div>                            </div>                            <script src="https://kwizly.com/embed/OLq4ZX.js" async></script><h2 id="a-bloated-mess">A bloated mess</h2><p><a href="https://blogs.windows.com/windows-insider/2026/07/31/windows-quality-an-update-on-the-commitment-we-made-in-march/" target="_blank">In an update published last week</a>, Davuluri shared a number of changes the team had made in the months since committing to improving Windows 11.</p><p>It’s well worth a read, but what strikes me are the elements that feel so foundational to Windows. Windows 11 is almost 5 years old, and yet the team is now working on a “faster and more dependable File Explorer” and allowing “more taskbar customization”.</p><p>In many ways, these feel like table stakes. These are things that should have been hammered home a long time ago, and it shows how disconnected from its consumers’ reality Microsoft is at this point. People have been using Windows 11 and calling for a smaller memory footprint for 8GB machines, and now Microsoft is finally on board.</p><p>The Copilot-addled, bloated mess that Windows 11 has become can no longer be considered the price to pay for a more modular, customizable OS than its Apple or Linux contemporaries.</p><p>My <a href="https://www.tomsguide.com/computing/macbooks/macbook-air-13-inch-m3-review">MacBook Air M3</a> is the device I reach for to do work, despite having a beefy gaming rig with more RAM than I know what to do with. It’s perhaps unsurprising that Microsoft can’t seem to pick a lane.</p><p>The company is all about AI now, but not long ago it was being able to run Android apps on Windows, before that it was mixed reality and before that it was Cortana.</p><div><blockquote><p>The company keeps chasing trends while ignoring what many customers want</p></blockquote></div><p>The company keeps chasing trends while ignoring what many customers want: A steady, stable, secure OS.</p><p>Recent updates have helped fix those cracked foundations, but I fear Windows 11 might be too far gone, even with the upcoming option to uninstall AI models from Copilot+ PCs, the app toggles, and more.</p><h2 id="i-don-t-know-if-it-can-rebuild">I don't know if it can rebuild</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="hDNix4fYdmJGsVB26D4tkN" name="windows 11.shutterstock_2000666507" alt="A laptop with the Windows 11 logo" src="https://cdn.mos.cms.futurecdn.net/hDNix4fYdmJGsVB26D4tkN.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Back in 2024, <a href="https://www.tomshardware.com/software/windows/ex-windows-developer-calls-windows-11-start-menu-performance-comically-bad-even-with-a-core-i9-and-128gb-of-ram" target="_blank">former Windows developer Andy Young</a> showcased how even with 128GB of RAM, Microsoft’s Search Bar was a laggy mess and causing major issues when just trying to find something.</p><p>In the months that followed, Microsoft fixed it, but it took one of their own to put them on blast to achieve it. It’s almost as if the staff there aren’t using Windows 11 day-to-day; seeing adverts, the constant Copilot interjections, and more.</p><p>That makes me think that it’s run its race, and that the company is moving to Windows 12 (or at least thinking about it), almost certainly with a sizeable AI component.</p><div><blockquote><p>Do you agree? Or are you happy with Windows 11? Drop a message in the comments with your thoughts.</p></blockquote></div><p>One only has to look across the platform divide to see that Apple has taken its own kickings in recent years. Customers became so used to the thoughtful updates to macOS that something like the borders of windows not lining up was seen as a huge issue as part of the <a href="https://www.tomsguide.com/computing/online-security/even-if-you-hate-liquid-glass-you-shouldnt-skip-updating-to-ios-26-for-the-sake-of-your-iphone">Liquid Glass rollout last year</a>.</p><p>Windows 11’s modularity has always been one of its strengths: It’s a gaming platform, it’s a workspace, it’s somewhere you can install something for everything and get what you need done. But in recent years, it’s lost its way big time, and I feel like Microsoft simply doesn’t know how to turn this massive ship around without rebuilding it all from scratch.</p><p>But hey, those are just my thoughts. Do you agree with me? Or are you happy with the way Windows 11 is running for you? Drop me a message in the comments with your thoughts.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/i-asked-chatgpt-for-the-best-ways-to-reduce-stress-these-7-simple-techniques-helped-me-feel-like-myself-again">I asked ChatGPT for the best ways to reduce stress — these 7 simple techniques helped me feel like myself again</a></li><li><a href="https://www.tomsguide.com/phones/samsung-phones/samsung-galaxy-z-fold-8-ultra-vs-galaxy-s26-ultra">I tested the Samsung Galaxy Z Fold 8 Ultra vs Galaxy S26 Ultra for 2 weeks — here’s the one I’d buy</a></li><li><a href="https://www.tomsguide.com/ai/google-maps-just-got-a-major-ai-upgrade-these-7-ask-maps-prompts-let-you-order-food-find-events-and-more">Google Maps just got a major AI upgrade — these 7 Ask Maps prompts let you order food, find events and more</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/windows-operating-systems/windows-11-is-broken-and-microsoft-is-fixing-the-wrong-things</link>
                                                                            <description>
                            <![CDATA[ Microsoft has been rolling out updates and corrections to Windows 11 but perhaps the operating system is past saving? ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">vW7qXXckYSx3XgkuFXudmS</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/efn9hKA2gxWvbcovTTtjwZ-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 10 Aug 2026 07:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Windows Operating Systems]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                                                                                    <dc:creator><![CDATA[ Lloyd Coombes ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/xcWocVTwa9yiwXRs559XNA.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Lloyd Coombes is a freelance tech and fitness writer. He&#039;s an expert in all things Apple as well as in computer and gaming tech, with previous works published on TechRadar, Tom&#039;s Guide, Live Science and more. You&#039;ll find him regularly testing the latest MacBook or iPhone, but he spends most of his time writing about video games as Gaming Editor for the Daily Star. He also covers board games and virtual reality, just to round out the nerdy pursuits.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/efn9hKA2gxWvbcovTTtjwZ-1280-80.jpg">
                                                            <media:credit><![CDATA[Generated using Google Gemini]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A greyscale laptop showing a Windows 11 screen with a red cross on it]]></media:description>                                                            <media:text><![CDATA[A greyscale laptop showing a Windows 11 screen with a red cross on it]]></media:text>
                                <media:title type="plain"><![CDATA[A greyscale laptop showing a Windows 11 screen with a red cross on it]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/efn9hKA2gxWvbcovTTtjwZ-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>It’s a little sad being a fan of tech these days. AI is consuming the world’s art and emotion and spitting out slop, and it’s driving up the price of just about every piece of consumer electronics as it does.</p><p>If you don’t need to upgrade your computer anytime soon, then you’re in a good spot - except <a href="https://www.tomsguide.com/reviews/windows-11">Windows 11</a> is doing its damnedest to be a mess of Copilot and bugs. While Microsoft is moving to improve things (with Windows head honcho Pavan Davuluri <a href="https://www.tomsguide.com/computing/windows-operating-systems/microsoft-promises-windows-11-reset-new-focus-on-performance-reliability-and-reducing-unnecessary-copilot-ai">promising big changes back in March</a>), it feels as though we might be better off nuking the whole thing from orbit.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-OLq4ZX"></div>                            </div>                            <script src="https://kwizly.com/embed/OLq4ZX.js" async></script><h2 id="a-bloated-mess">A bloated mess</h2><p><a href="https://blogs.windows.com/windows-insider/2026/07/31/windows-quality-an-update-on-the-commitment-we-made-in-march/" target="_blank">In an update published last week</a>, Davuluri shared a number of changes the team had made in the months since committing to improving Windows 11.</p><p>It’s well worth a read, but what strikes me are the elements that feel so foundational to Windows. Windows 11 is almost 5 years old, and yet the team is now working on a “faster and more dependable File Explorer” and allowing “more taskbar customization”.</p><p>In many ways, these feel like table stakes. These are things that should have been hammered home a long time ago, and it shows how disconnected from its consumers’ reality Microsoft is at this point. People have been using Windows 11 and calling for a smaller memory footprint for 8GB machines, and now Microsoft is finally on board.</p><p>The Copilot-addled, bloated mess that Windows 11 has become can no longer be considered the price to pay for a more modular, customizable OS than its Apple or Linux contemporaries.</p><p>My <a href="https://www.tomsguide.com/computing/macbooks/macbook-air-13-inch-m3-review">MacBook Air M3</a> is the device I reach for to do work, despite having a beefy gaming rig with more RAM than I know what to do with. It’s perhaps unsurprising that Microsoft can’t seem to pick a lane.</p><p>The company is all about AI now, but not long ago it was being able to run Android apps on Windows, before that it was mixed reality and before that it was Cortana.</p><div><blockquote><p>The company keeps chasing trends while ignoring what many customers want</p></blockquote></div><p>The company keeps chasing trends while ignoring what many customers want: A steady, stable, secure OS.</p><p>Recent updates have helped fix those cracked foundations, but I fear Windows 11 might be too far gone, even with the upcoming option to uninstall AI models from Copilot+ PCs, the app toggles, and more.</p><h2 id="i-don-t-know-if-it-can-rebuild">I don't know if it can rebuild</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="hDNix4fYdmJGsVB26D4tkN" name="windows 11.shutterstock_2000666507" alt="A laptop with the Windows 11 logo" src="https://cdn.mos.cms.futurecdn.net/hDNix4fYdmJGsVB26D4tkN.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Back in 2024, <a href="https://www.tomshardware.com/software/windows/ex-windows-developer-calls-windows-11-start-menu-performance-comically-bad-even-with-a-core-i9-and-128gb-of-ram" target="_blank">former Windows developer Andy Young</a> showcased how even with 128GB of RAM, Microsoft’s Search Bar was a laggy mess and causing major issues when just trying to find something.</p><p>In the months that followed, Microsoft fixed it, but it took one of their own to put them on blast to achieve it. It’s almost as if the staff there aren’t using Windows 11 day-to-day; seeing adverts, the constant Copilot interjections, and more.</p><p>That makes me think that it’s run its race, and that the company is moving to Windows 12 (or at least thinking about it), almost certainly with a sizeable AI component.</p><div><blockquote><p>Do you agree? Or are you happy with Windows 11? Drop a message in the comments with your thoughts.</p></blockquote></div><p>One only has to look across the platform divide to see that Apple has taken its own kickings in recent years. Customers became so used to the thoughtful updates to macOS that something like the borders of windows not lining up was seen as a huge issue as part of the <a href="https://www.tomsguide.com/computing/online-security/even-if-you-hate-liquid-glass-you-shouldnt-skip-updating-to-ios-26-for-the-sake-of-your-iphone">Liquid Glass rollout last year</a>.</p><p>Windows 11’s modularity has always been one of its strengths: It’s a gaming platform, it’s a workspace, it’s somewhere you can install something for everything and get what you need done. But in recent years, it’s lost its way big time, and I feel like Microsoft simply doesn’t know how to turn this massive ship around without rebuilding it all from scratch.</p><p>But hey, those are just my thoughts. Do you agree with me? Or are you happy with the way Windows 11 is running for you? Drop me a message in the comments with your thoughts.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/i-asked-chatgpt-for-the-best-ways-to-reduce-stress-these-7-simple-techniques-helped-me-feel-like-myself-again">I asked ChatGPT for the best ways to reduce stress — these 7 simple techniques helped me feel like myself again</a></li><li><a href="https://www.tomsguide.com/phones/samsung-phones/samsung-galaxy-z-fold-8-ultra-vs-galaxy-s26-ultra">I tested the Samsung Galaxy Z Fold 8 Ultra vs Galaxy S26 Ultra for 2 weeks — here’s the one I’d buy</a></li><li><a href="https://www.tomsguide.com/ai/google-maps-just-got-a-major-ai-upgrade-these-7-ask-maps-prompts-let-you-order-food-find-events-and-more">Google Maps just got a major AI upgrade — these 7 Ask Maps prompts let you order food, find events and more</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Update your Mac right now to block this major screen sharing flaw ]]></title>
                                                                                                <dc:content><![CDATA[ <p>You're going to want to update your Mac to address a serious Screen Sharing vulnerability that could letter a malicious actor initiate screen sharing without authentic credentials.</p><p>This week <a href="https://support.apple.com/en-us/100100" target="_blank">Apple released</a> macOS Sonoma 14.8.9, macOS Sequoia 15.7.9, and macOS Tahoe 26.6.1 with release notes. Notably, all three releases claim that Apple made "important security fixes" and recommended the updates for everyone. </p><p><strong>"Impact: An attacker on the network may be able to authenticate to Screen Sharing without valid credentials</strong></p><p><strong>Description: An authentication issue was addressed with improved state management."</strong></p><p>That message is the same across all three versions of macOS. </p><p>It doesn't appear that the bug has been exploited in the wild, but if you haven't updated your Mac recently, now is the time to do so. Based on Apple's description, it appears that a bad actor could bypass Screen Sharing authentication checks, which would give them remote access to your computer.</p><p>Potentially, this would allow them to view the screen, open apps or files or perform other actions on the computer.</p><p>You may not use screen sharing, but it's still a good idea to install this update. Apple clearly deemed the flaw serious enough to patch three different versions of macOS before the next round of major OS updates.</p><h2 id="keep-your-mac-safe">Keep your Mac safe</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:56.30%;"><img id="F9ybS7WNwSK95hqxotZgYM" name="apple shutterstock.jpg" alt="A padlock resting next to the Apple logo on the lid of a gold-colored Apple laptop." src="https://cdn.mos.cms.futurecdn.net/F9ybS7WNwSK95hqxotZgYM.jpg" mos="" align="middle" fullscreen="" width="1000" height="563" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: robert coolen/Shutterstock)</span></figcaption></figure><p>To keep your Mac safe you may want to ensure that updates are automatically applied. Understandably if you're cautious about updates before they're settled you may wait. So you'll want to track updates and make sure you get the security-focused ones to protect your computer.</p><p>For screen sharing specifically, this vulnerability may have been able to sneak around you. But if you do any screen sharing, make sure it's with a trusted partner that you know to protect your computer. Additionally, keep any sensitive information closed before passing permissions just as a way to introduce a little bit of a block.</p><p>At the end of your session, double-check that screen sharing is turned off.</p><p>Beyond that, Apple does have Gatekeeper built-in which can block or warn you before you install unverified apps from the web. Still, you might want to consider using one of the <a href="https://www.tomsguide.com/best-picks/best-mac-antivirus">best Mac antivirus software </a>along side Apple's built-in ones.</p><p>Again, these macOS updates are available right now, so make sure you've installed them.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/phones/iphones/how-to-turn-off-ios-27s-automatic-subtitles-that-no-one-asked-for">How to disable iOS 27’s annoying auto-subtitles for good</a></li><li><a href="https://www.tomsguide.com/phones/iphones/iphone-ultra-rumors-everything-you-need-to-know-about-the-foldable-iphone">iPhone Ultra rumors: Everything you need to know about the foldable iPhone</a></li><li><a href="https://www.tomsguide.com/phones/i-asked-siri-ai-and-gemini-a-series-of-increasingly-bizarre-questions-to-see-how-they-responded-heres-what-happened">I asked Siri AI and Gemini a series of increasingly bizarre questions to see how they responded —here's what happened</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/macos/update-your-mac-right-now-to-block-this-major-screen-sharing-flaw</link>
                                                                            <description>
                            <![CDATA[ Apple has just released new macOS updates that fix a major Screen Sharing flaw. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">UfniTUGWvQ9LcgZBT8hYna</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/znDgFDFV46cYDQFRnVHdR7-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 07 Aug 2026 20:37:22 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[macOS]]></category>
                                                    <category><![CDATA[Online Security]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                                                                <author><![CDATA[ scott.younker@futurenet.com (Scott Younker) ]]></author>                    <dc:creator><![CDATA[ Scott Younker ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/RZsUpqcJ6Uj2q83oCUwNhQ.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Scott Younker is the West Coast Reporter at Tom’s Guide. He covers all the latest tech news, including phones, computing and more. He’s been involved in tech since 2011 covering everything from cameras and swimming pool equipment to the latest gaming consoles and smart TVs. He is on a seemingly never ending hunt to build the easiest to use home media system. &lt;/p&gt;&lt;p&gt;Before Tom’s Guide, Scott worked for publications like &lt;em&gt;Digital Trends, Outdoor Photographer, Dead Beats Panel&lt;/em&gt;, and in a brief detour, &lt;em&gt;America’s Funniest Home Videos&lt;/em&gt;. Yes, he has seen more pratfalls, silly pets and ridiculous home movie fails than is reasonably healthy. &lt;/p&gt;&lt;p&gt;When not writing about the latest devices or advances in chipsets, be sure to ask about Scott about disc golf and sustainability, or just if you’re being cheeky, ask about his noodle arm. If you truly want to get nerdy, bring up board games and his ongoing losing streak. &lt;/p&gt;&lt;p&gt;Scott joined Tom&#039;s Guide in 2024 as the West Coast Reporter. He graduated from the School of Journalism at the University of Oregon with a degree in magazine journalism and a minor in communications. While there he blogged or wrote for several magazines including the Fluxx, Ethos and the Oregon Commentator. He briefly wrote and managed a moderately successful blog focused on web comics. &lt;br&gt;Send secure tips on Signal: scyo1.55.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/znDgFDFV46cYDQFRnVHdR7-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock/Apple]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[macOS Tahoe 26 desktop screen on an MacBook]]></media:description>                                                            <media:text><![CDATA[macOS Tahoe 26 desktop screen on an MacBook]]></media:text>
                                <media:title type="plain"><![CDATA[macOS Tahoe 26 desktop screen on an MacBook]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/znDgFDFV46cYDQFRnVHdR7-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>You're going to want to update your Mac to address a serious Screen Sharing vulnerability that could letter a malicious actor initiate screen sharing without authentic credentials.</p><p>This week <a href="https://support.apple.com/en-us/100100" target="_blank">Apple released</a> macOS Sonoma 14.8.9, macOS Sequoia 15.7.9, and macOS Tahoe 26.6.1 with release notes. Notably, all three releases claim that Apple made "important security fixes" and recommended the updates for everyone. </p><p><strong>"Impact: An attacker on the network may be able to authenticate to Screen Sharing without valid credentials</strong></p><p><strong>Description: An authentication issue was addressed with improved state management."</strong></p><p>That message is the same across all three versions of macOS. </p><p>It doesn't appear that the bug has been exploited in the wild, but if you haven't updated your Mac recently, now is the time to do so. Based on Apple's description, it appears that a bad actor could bypass Screen Sharing authentication checks, which would give them remote access to your computer.</p><p>Potentially, this would allow them to view the screen, open apps or files or perform other actions on the computer.</p><p>You may not use screen sharing, but it's still a good idea to install this update. Apple clearly deemed the flaw serious enough to patch three different versions of macOS before the next round of major OS updates.</p><h2 id="keep-your-mac-safe">Keep your Mac safe</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:56.30%;"><img id="F9ybS7WNwSK95hqxotZgYM" name="apple shutterstock.jpg" alt="A padlock resting next to the Apple logo on the lid of a gold-colored Apple laptop." src="https://cdn.mos.cms.futurecdn.net/F9ybS7WNwSK95hqxotZgYM.jpg" mos="" align="middle" fullscreen="" width="1000" height="563" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: robert coolen/Shutterstock)</span></figcaption></figure><p>To keep your Mac safe you may want to ensure that updates are automatically applied. Understandably if you're cautious about updates before they're settled you may wait. So you'll want to track updates and make sure you get the security-focused ones to protect your computer.</p><p>For screen sharing specifically, this vulnerability may have been able to sneak around you. But if you do any screen sharing, make sure it's with a trusted partner that you know to protect your computer. Additionally, keep any sensitive information closed before passing permissions just as a way to introduce a little bit of a block.</p><p>At the end of your session, double-check that screen sharing is turned off.</p><p>Beyond that, Apple does have Gatekeeper built-in which can block or warn you before you install unverified apps from the web. Still, you might want to consider using one of the <a href="https://www.tomsguide.com/best-picks/best-mac-antivirus">best Mac antivirus software </a>along side Apple's built-in ones.</p><p>Again, these macOS updates are available right now, so make sure you've installed them.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/phones/iphones/how-to-turn-off-ios-27s-automatic-subtitles-that-no-one-asked-for">How to disable iOS 27’s annoying auto-subtitles for good</a></li><li><a href="https://www.tomsguide.com/phones/iphones/iphone-ultra-rumors-everything-you-need-to-know-about-the-foldable-iphone">iPhone Ultra rumors: Everything you need to know about the foldable iPhone</a></li><li><a href="https://www.tomsguide.com/phones/i-asked-siri-ai-and-gemini-a-series-of-increasingly-bizarre-questions-to-see-how-they-responded-heres-what-happened">I asked Siri AI and Gemini a series of increasingly bizarre questions to see how they responded —here's what happened</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I found a free Mac app that solves the worst thing about USB-C cables ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Over a decade ago, when we first made the transition to USB-C, cable manufacturers promised things would be different. Sure, we no longer had to worry about which side of our cables we plugged in, but now we’re facing a completely different problem: there’s no easy way to know how fast (and capable) our cables really are.</p><p>At least with USB-A to USB-C cables, the larger end often gives us some insights. For instance, USB 2.0 cables are black, USB 3.0 ones are blue, and the less aptly named USB 3.2 Gen 2x2 ones are red. With USB-C to USB-C cables, though, it’s a different story entirely.</p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="high" data-lazy-src="https://www.youtube-nocookie.com/embed/121_xI4Icao" allowfullscreen></iframe></div></div><p>While some manufacturers label the ends of their cables with their respective specs, this isn’t always the case. And depending on where you buy your cables, those labels might not even be accurate. For this reason, some people end up buying dedicated cable testers to see whether that high-speed USB-C cable is actually as fast as it claims to be.</p><p>Just when I was considering buying one of these devices to test my own cables, I stumbled upon an open-source Mac app that can do the exact same thing for free. Here’s what I learned after testing 10 of my own USB-C to USB-C cables, and why I ended up paying the full $13 for the pro version of the <a href="https://www.whatcable.uk/" target="_blank">WhatCable</a> app.</p><h2 id="branded-but-untested">Branded, but untested</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="MyP6kabw8myEshRULx9t5A" name="WhatCable-2" alt="A MacBook Pro running the WhatCable app on a desk with 10 different USB-C to USB-C cables laid out in front of it" src="https://cdn.mos.cms.futurecdn.net/MyP6kabw8myEshRULx9t5A.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Although I’ll occasionally order several cables at a time online, for the most part, I’ve amassed a huge collection just by keeping the ones that come with the various devices I review. I have a few generic, rubber ones I use in more complex <a href="https://www.tomsguide.com/computing/monitors/i-spent-a-week-trying-3-different-stacked-monitor-setups-and-this-is-my-favorite">desk setups</a> — mainly behind monitors and tucked under my desk — but over the years, I’ve really come to appreciate braided cables a whole lot more.</p><p>Braided cables not only look better, but they also feel more premium. They’re easier to manage too, since they tend to hold their shape when laid flat across a desk. However, they do have one major downside: a total lack of information.</p><p>With rubber cables, manufacturers will often print their specs directly on the cord itself, where there is more room for text. You see this a lot with <a href="https://www.tomsguide.com/tvs/hdmi-2-1-vs-hdmi-2-2-biggest-differences-explained-and-when-you-should-upgrade">HDMI 2.1</a> cables, which are frequently labeled “Ultra High Speed” to signify they can handle the high bandwidth needed for VRR and 4K/120Hz gaming. Some companies even go the extra mile and include extra details on these labels, like whether or not the cable supports Ethernet, or even the brand name. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:6000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="uRvhB683KTwLEc5oqMVY3m" name="Straightening Cables-5" alt="Two braided USB-C cables next to each other with a monitor in the background" src="https://cdn.mos.cms.futurecdn.net/uRvhB683KTwLEc5oqMVY3m.jpg" mos="" align="middle" fullscreen="" width="6000" height="3376" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>When it comes to braided cables, though, you’re lucky to get a brand name stamped on either connector end. Even if they do list specs, it’s usually just a brief note like “5A” for 5 amps or “10 Gbps” for 10 gigabits per second. Then again, this kind of labeling is few and far between; only my cables from Fasgear actually have it.</p><p>So what’s a tech nerd to do? Well, test them, of course. Dedicated USB cable testers can be found for under $10 if you don’t mind a bare PCB, but they can easily run over $100 for premium models with a proper case and a built-in display. </p><p>I was honestly considering picking one up until I saw a few news stories about WhatCable. Given that it's open-source and completely free to use, I decided to test it out for myself before investing in yet another gadget for my home office.</p><p>After downloading and installing the app on my MacBook, I grabbed a few of my favorite braided USB-C to USB-C cables — some labeled and some completely blank — and decided to see what they were actually capable of.</p><h2 id="plug-it-in-plug-it-in">Plug it in, plug it in</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="uDAQRZXr5LUSnka8Axbh8F" name="WhatCable-6" alt="A person holding up a TCL NXTPAPER 70 Pro smartphone connected to a MacBook Pro running the WhatCable app" src="https://cdn.mos.cms.futurecdn.net/uDAQRZXr5LUSnka8Axbh8F.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>When I first booted up WhatCable, I was greeted with four sections in the app which correlate with the three Thunderbolt 5 ports and the MagSafe charging port on the <a href="https://www.tomsguide.com/computing/macbooks/macbook-pro-16-inch-m5-pro-review">MacBook Pro 16-inch M5 Pro</a> I’m currently using.</p><p>Of course, depending on which of the <a href="https://www.tomsguide.com/best-picks/best-macbook">best MacBooks</a> you have, the sections that show up will vary. I haven’t installed WhatCable on my <a href="https://www.tomsguide.com/computing/desktop-computers/mac-mini-m4-review">Mac mini M4</a> yet, but I’m curious to know whether or not the extra USB-C and USB-A ports on the <a href="https://www.tomsguide.com/computing/apple-desktops/i-thought-i-was-done-customizing-my-mac-mini-m4-until-i-tried-the-last-dock-ill-ever-need">Ugreen Mac Mini M4 Dock & Stand</a> I’m currently using will show up in the app. If you’re as curious as I am about this, let me know in the comments below.</p><p>It’s worth noting that even with cables plugged into your Mac, those sections will be blank until you plug in another device on the other end. Since I’m in the process of testing out the <a href="https://www.tomsguide.com/phones/android-phones/the-tcl-nxtpaper-70-pros-stylus-just-fixed-an-issue-i-never-knew-i-had-with-handwriting-digital-notes">TCL NXTPAPER 70 Pro</a> smartphone, I decided to plug that in first and see what WhatCable had to say about the cable connecting the two. </p><p>Before the app can give you all the details on the cable you’re currently using, you will have to “Allow” the accessory in question — in this case the smartphone — to connect first.</p><p>With that taken care of, I learned that the retractable, 100W Ugreen USB-C to USB-C cable I had connected is only rated at USB 2.0. It can carry 100W of power just like the circular case the cable retracts into says on the side though. </p><p>From the get-go with WhatCable, I was very impressed by all the details the app managed to glean from this cable and how it explained them to me. For instance, this USB 2.0 only cable has a max data transfer rate of 480 Mbps and isn’t capable of “high-speed data” transfer.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="yUofSQ3ZeTHvq65C8hmiZL" name="WhatCable-3" alt="A MacBook Pro running the WhatCable app with a Lenovo Legion Tab 3 tablet connected to it" src="https://cdn.mos.cms.futurecdn.net/yUofSQ3ZeTHvq65C8hmiZL.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Since the NXTPAPER 70 Pro is a budget phone after all, for my next test, I decided to bump up the capabilities of the device on the other end. For this, I plugged in my <a href="https://www.tomsguide.com/computing/tablets/i-thought-the-ipad-mini-was-the-perfect-small-tablet-until-i-tried-the-lenovo-legion-tab-3-heres-why">Lenovo Legion Tab 3</a> which I know features USB 3.2 as well as DisplayPort Alt Mode over USB-C since I was able to use it seamlessly with a pair of the <a href="https://www.tomsguide.com/computing/vr-ar/best-smart-glasses">best smart glasses</a> from Xreal. The untested variable here was one of Apple’s own white braided USB-C to USB-C cables that I can’t remember which device it came with.</p><p>With the two connected, WhatCable correctly identified the cable as a USB 2.0 one and it even identified my tablet by its model name, the Legion Tab Y700. One term I hadn’t heard before trying out this app, despite being about as immersed in tech as you can be, is E-marker. </p><p>Apparently, this is a tiny, 1mm² microchip that’s embedded directly into the plastic or metal housing of a USB-C connector. Like a digital passport, these E-marker chips allow the USB-C Power Delivery controllers inside the ports of your laptop and other devices to know exactly what a particular cable is capable of. That way, they send the correct amount of power or data and don’t overload the device on the other end.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3421px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="H3NHTZiqJPqAsyLZ7j8rRS" name="whatcable-technical-details.jpg" alt="A screenshot showing the WhatCable app running on a Mac with the technical details of its cable testing expanded" src="https://cdn.mos.cms.futurecdn.net/H3NHTZiqJPqAsyLZ7j8rRS.png" mos="" align="middle" fullscreen="" width="3421" height="1924" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Even with the free version of WhatCable, you can actually drill down further into each section to learn more about the cable you’re testing. By clicking “Show technical details” you can see all of the supported protocols and standards the current connection can handle. </p><p>For instance here, while the cable itself is bottlenecked at USB 2.0 speeds, the underlying port architecture supports USB2, USB3, power delivery, and video out over DisplayPort. So not only can you use this app to test your cables, but you can also get a clear picture of exactly what your Mac's ports are capable of at the same time. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ePakpW"></div>                            </div>                            <script src="https://kwizly.com/embed/ePakpW.js" async></script><h2 id="cables-may-be-faster-than-they-appear">Cables may be faster than they appear</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="2kCaQdEetYGYom8rsbtc6X" name="WhatCable-5" alt="A person holding up a portable SSD in front of a MacBook Pro running the WhatCable app to test the speed of the cable connecting the two" src="https://cdn.mos.cms.futurecdn.net/2kCaQdEetYGYom8rsbtc6X.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>For my next round of cable testing, I decided to completely switch up devices. I started with a 1TB M.2 drive I’m using inside this SSD enclosure from Ugreen. Given its rated for speeds up to 10 Gbps, I figured it would be an ideal companion for cable testing and it absolutely was. </p><p>In the WhatCable app, that Fasgear cable — remember the one with 5A, 10Gbps written on the connector? — actually turned out to be as fast as the company claimed. Surprisingly though, according to the app, the E-marker inside it didn’t have a vendor ID, though apparently this is common with genuine cables. Or maybe Fasgear was too humble to take credit for it, I guess we'll never know.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="D2DGGaE9VvEun7XJWCiePa" name="WhatCable-4" alt="A Nintendo Switch 2 Pro Controller connected to a MacBook Pro running the WhatCable app" src="https://cdn.mos.cms.futurecdn.net/D2DGGaE9VvEun7XJWCiePa.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Next up, I decided to test a cable that wasn’t labeled, but I did know its full capabilities based on the description on the box. Alongside its Vagabond mobile game controller, Elo recently sent over all of the accessories to go with it, including the company’s Link <a href="https://www.tomsguide.com/features/thunderbolt-4-vs-usb4-whats-the-difference">Thunderbolt 4</a> cable which can deliver up to 240W of power and 40 Gbps of data.</p><p>I’ve tried it out with other devices and it definitely works as advertised. However, when I used it to connect a <a href="https://www.tomsguide.com/gaming/gaming-peripherals/i-tried-the-nintendo-switch-2-pro-controller-and-it-adds-the-one-feature-ive-always-wanted">Nintendo Switch 2 Pro Controller</a> to my MacBook, it only reached USB 2.0 speeds in WhatCable. </p><p>You see, in this case, it was the controller and not the cable that was the bottleneck. While the console hardware itself handles modern high-speed connections, the Switch 2 Pro Controller internally relies on basic USB 2.0 protocols to process your inputs. Since game controllers prioritize low latency over raw bandwidth, the hardware only needs a tiny data pipe to pass along button presses to your console.</p><p>If you decide to download WhatCable and run into a similar situation where you know you have a high-speed cable but you’re seeing slower speeds while testing, I’d recommend connecting a different device. After I swapped out that controller for my Legion tablet, the app instantly registered the Elo Link cable as a high-speed one.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3452px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="6nDUAxJ5VpM7PhBNPjrtXf" name="whatcable-pro-license" alt="A screenshot showing the extra features and insights available in the pro version of the WhatCable app for Mac" src="https://cdn.mos.cms.futurecdn.net/6nDUAxJ5VpM7PhBNPjrtXf.png" mos="" align="middle" fullscreen="" width="3452" height="1942" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>I learned so much testing the power delivery and data transfer speeds of those 10 cables that I decided to spend the $13 on the pro version of WhatCable and I’m glad I did. </p><p>Not only do you get additional insights like live power monitoring but you can also add the various cables you test to the app and give them names. This way, you get a timeline of when that cable was last used, what it was connected to and whether or not you ran into any issues while using it.</p><h2 id="no-more-second-guessing">No more second guessing</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="MTtxYnr3SDGVeo9JDaLa66" name="WhatCable-1-LEDE" alt="A MacBook Pro running the WhatCable app with several cables on top of its keyboard" src="https://cdn.mos.cms.futurecdn.net/MTtxYnr3SDGVeo9JDaLa66.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Over the years, I’ve accumulated a massive collection of cables. From USB-A to USB-C, HDMI to DisplayPort and even some less common ones like USB Type-B and Micro-USB B, I have a lot of cables — and while I try to get rid of the slower and less full-featured ones when I can, I still have too many.</p><p>A few years ago, I decided to repurpose a <a href="https://www.tomsguide.com/opinion/i-used-this-simple-hack-to-tame-my-tangled-box-of-cables">hanging, over-the-door shoe rack</a> to house them all and before I started adding Thunderbolt ones and longer, braided DisplayPort cables to the mix, it worked quite well. Now though, I’m due for a cable audit.</p><p>While I plan on coming up with a solution that’s a bit more elegant than hanging them in various compartments over the back of my closet door, I also want to separate the wheat from the chaff and only keep the best of the best cables. To do that, I need to test them all.</p><p>Although I’ll probably end up buying a standalone tester for some of those more obscure cables and the video ones, WhatCable has done a lot of the groundwork for me. At the same time, it’s made me realize that testing cables isn’t nearly as difficult or time consuming as I thought it would be back when I first looked into getting a dedicated cable tester.</p><p>If you’ve ever plugged in your smartphone, tablet or laptop and seen less than ideal charging or data transfer speeds and you have a Mac, you owe it to yourself to give this open-source app a try. I’m glad I did because when it comes to USB-C to USB-C cables, I’ll never have to doubt their capabilities again.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/home/i-used-this-free-trick-to-finally-make-my-braided-cables-lay-flat">I finally found the secret to perfectly straight braided cables and it doesn't cost a thing</a></li><li><a href="https://www.tomsguide.com/computing/peripherals/i-built-a-rollable-workstation-by-repurposing-this-classic-ikea-cart-and-its-a-game-changer-for-working-from-my-laptop">I used this classic IKEA cart to build a rollable workstation for my laptop and it lets me work comfortably from anywhere</a></li><li><a href="https://www.tomsguide.com/computing/monitors/i-spent-a-week-with-dual-apple-studio-displays-and-realized-ive-been-lying-to-myself-about-glossy-screens-for-years">I spent a week with dual Apple Studio Displays and realized I’ve been lying to myself about glossy screens for years</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/software/i-tested-all-my-usb-c-cables-with-this-free-mac-app-instead-of-guessing-each-time-i-plugged-one-in</link>
                                                                            <description>
                            <![CDATA[ The WhatCable app takes the guesswork out of cable speeds and functionality by letting you test cables right from your Mac. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">ZbVAfjCbPxaJsfkk6wcTUb</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/2kCaQdEetYGYom8rsbtc6X-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 18 Jul 2026 07:14:16 +0000</pubDate>                                                                                                                                <updated>Mon, 20 Jul 2026 14:16:21 +0000</updated>
                                                                                                                                            <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[macOS]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                                                                <author><![CDATA[ anthony.spadafora@futurenet.com (Anthony Spadafora) ]]></author>                    <dc:creator><![CDATA[ Anthony Spadafora ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/z73LEoj7FkUjNG85GcWHtH.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Anthony Spadafora is the managing editor for security and home office furniture at Tom’s Guide where he covers everything from data breaches and malware to password managers and the best way to cover your whole home or business with a strong Wi-Fi signal.&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Before joining the team, he spent three years covering cybersecurity and B2B tech for ITProPortal while living in South Korea. After moving back to the US. Anthony joined the TechRadar Pro team where he covered these topics along with VPNs, web hosting, online collaboration software and video conferencing for four years. Anthony also has his ears to the ground and is on the lookout for the next major cyberattack or data breach.&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Based in Houston, Texas, Anthony also handles VPN testing for both Tom’s Guide and TechRadar. As someone who has worked from home exclusively since 2018, he has reviewed dozens of standing desks as well as office chairs and has taken a closer look at other essential remote working accessories. As part of these reviews, Anthony frequently builds intricate desk setups which is why he’s such a big advocate for cable management and keeping things organized. When he’s not writing, he can be found tinkering with PCs and game consoles, managing cables and making upgrades to his smart home.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/2kCaQdEetYGYom8rsbtc6X-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A person holding up a portable SSD in front of a MacBook Pro running the WhatCable app to test the speed of the cable connecting the two]]></media:description>                                                            <media:text><![CDATA[A person holding up a portable SSD in front of a MacBook Pro running the WhatCable app to test the speed of the cable connecting the two]]></media:text>
                                <media:title type="plain"><![CDATA[A person holding up a portable SSD in front of a MacBook Pro running the WhatCable app to test the speed of the cable connecting the two]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/2kCaQdEetYGYom8rsbtc6X-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Over a decade ago, when we first made the transition to USB-C, cable manufacturers promised things would be different. Sure, we no longer had to worry about which side of our cables we plugged in, but now we’re facing a completely different problem: there’s no easy way to know how fast (and capable) our cables really are.</p><p>At least with USB-A to USB-C cables, the larger end often gives us some insights. For instance, USB 2.0 cables are black, USB 3.0 ones are blue, and the less aptly named USB 3.2 Gen 2x2 ones are red. With USB-C to USB-C cables, though, it’s a different story entirely.</p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="high" data-lazy-src="https://www.youtube-nocookie.com/embed/121_xI4Icao" allowfullscreen></iframe></div></div><p>While some manufacturers label the ends of their cables with their respective specs, this isn’t always the case. And depending on where you buy your cables, those labels might not even be accurate. For this reason, some people end up buying dedicated cable testers to see whether that high-speed USB-C cable is actually as fast as it claims to be.</p><p>Just when I was considering buying one of these devices to test my own cables, I stumbled upon an open-source Mac app that can do the exact same thing for free. Here’s what I learned after testing 10 of my own USB-C to USB-C cables, and why I ended up paying the full $13 for the pro version of the <a href="https://www.whatcable.uk/" target="_blank">WhatCable</a> app.</p><h2 id="branded-but-untested">Branded, but untested</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="MyP6kabw8myEshRULx9t5A" name="WhatCable-2" alt="A MacBook Pro running the WhatCable app on a desk with 10 different USB-C to USB-C cables laid out in front of it" src="https://cdn.mos.cms.futurecdn.net/MyP6kabw8myEshRULx9t5A.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Although I’ll occasionally order several cables at a time online, for the most part, I’ve amassed a huge collection just by keeping the ones that come with the various devices I review. I have a few generic, rubber ones I use in more complex <a href="https://www.tomsguide.com/computing/monitors/i-spent-a-week-trying-3-different-stacked-monitor-setups-and-this-is-my-favorite">desk setups</a> — mainly behind monitors and tucked under my desk — but over the years, I’ve really come to appreciate braided cables a whole lot more.</p><p>Braided cables not only look better, but they also feel more premium. They’re easier to manage too, since they tend to hold their shape when laid flat across a desk. However, they do have one major downside: a total lack of information.</p><p>With rubber cables, manufacturers will often print their specs directly on the cord itself, where there is more room for text. You see this a lot with <a href="https://www.tomsguide.com/tvs/hdmi-2-1-vs-hdmi-2-2-biggest-differences-explained-and-when-you-should-upgrade">HDMI 2.1</a> cables, which are frequently labeled “Ultra High Speed” to signify they can handle the high bandwidth needed for VRR and 4K/120Hz gaming. Some companies even go the extra mile and include extra details on these labels, like whether or not the cable supports Ethernet, or even the brand name. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:6000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="uRvhB683KTwLEc5oqMVY3m" name="Straightening Cables-5" alt="Two braided USB-C cables next to each other with a monitor in the background" src="https://cdn.mos.cms.futurecdn.net/uRvhB683KTwLEc5oqMVY3m.jpg" mos="" align="middle" fullscreen="" width="6000" height="3376" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>When it comes to braided cables, though, you’re lucky to get a brand name stamped on either connector end. Even if they do list specs, it’s usually just a brief note like “5A” for 5 amps or “10 Gbps” for 10 gigabits per second. Then again, this kind of labeling is few and far between; only my cables from Fasgear actually have it.</p><p>So what’s a tech nerd to do? Well, test them, of course. Dedicated USB cable testers can be found for under $10 if you don’t mind a bare PCB, but they can easily run over $100 for premium models with a proper case and a built-in display. </p><p>I was honestly considering picking one up until I saw a few news stories about WhatCable. Given that it's open-source and completely free to use, I decided to test it out for myself before investing in yet another gadget for my home office.</p><p>After downloading and installing the app on my MacBook, I grabbed a few of my favorite braided USB-C to USB-C cables — some labeled and some completely blank — and decided to see what they were actually capable of.</p><h2 id="plug-it-in-plug-it-in">Plug it in, plug it in</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="uDAQRZXr5LUSnka8Axbh8F" name="WhatCable-6" alt="A person holding up a TCL NXTPAPER 70 Pro smartphone connected to a MacBook Pro running the WhatCable app" src="https://cdn.mos.cms.futurecdn.net/uDAQRZXr5LUSnka8Axbh8F.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>When I first booted up WhatCable, I was greeted with four sections in the app which correlate with the three Thunderbolt 5 ports and the MagSafe charging port on the <a href="https://www.tomsguide.com/computing/macbooks/macbook-pro-16-inch-m5-pro-review">MacBook Pro 16-inch M5 Pro</a> I’m currently using.</p><p>Of course, depending on which of the <a href="https://www.tomsguide.com/best-picks/best-macbook">best MacBooks</a> you have, the sections that show up will vary. I haven’t installed WhatCable on my <a href="https://www.tomsguide.com/computing/desktop-computers/mac-mini-m4-review">Mac mini M4</a> yet, but I’m curious to know whether or not the extra USB-C and USB-A ports on the <a href="https://www.tomsguide.com/computing/apple-desktops/i-thought-i-was-done-customizing-my-mac-mini-m4-until-i-tried-the-last-dock-ill-ever-need">Ugreen Mac Mini M4 Dock & Stand</a> I’m currently using will show up in the app. If you’re as curious as I am about this, let me know in the comments below.</p><p>It’s worth noting that even with cables plugged into your Mac, those sections will be blank until you plug in another device on the other end. Since I’m in the process of testing out the <a href="https://www.tomsguide.com/phones/android-phones/the-tcl-nxtpaper-70-pros-stylus-just-fixed-an-issue-i-never-knew-i-had-with-handwriting-digital-notes">TCL NXTPAPER 70 Pro</a> smartphone, I decided to plug that in first and see what WhatCable had to say about the cable connecting the two. </p><p>Before the app can give you all the details on the cable you’re currently using, you will have to “Allow” the accessory in question — in this case the smartphone — to connect first.</p><p>With that taken care of, I learned that the retractable, 100W Ugreen USB-C to USB-C cable I had connected is only rated at USB 2.0. It can carry 100W of power just like the circular case the cable retracts into says on the side though. </p><p>From the get-go with WhatCable, I was very impressed by all the details the app managed to glean from this cable and how it explained them to me. For instance, this USB 2.0 only cable has a max data transfer rate of 480 Mbps and isn’t capable of “high-speed data” transfer.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="yUofSQ3ZeTHvq65C8hmiZL" name="WhatCable-3" alt="A MacBook Pro running the WhatCable app with a Lenovo Legion Tab 3 tablet connected to it" src="https://cdn.mos.cms.futurecdn.net/yUofSQ3ZeTHvq65C8hmiZL.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Since the NXTPAPER 70 Pro is a budget phone after all, for my next test, I decided to bump up the capabilities of the device on the other end. For this, I plugged in my <a href="https://www.tomsguide.com/computing/tablets/i-thought-the-ipad-mini-was-the-perfect-small-tablet-until-i-tried-the-lenovo-legion-tab-3-heres-why">Lenovo Legion Tab 3</a> which I know features USB 3.2 as well as DisplayPort Alt Mode over USB-C since I was able to use it seamlessly with a pair of the <a href="https://www.tomsguide.com/computing/vr-ar/best-smart-glasses">best smart glasses</a> from Xreal. The untested variable here was one of Apple’s own white braided USB-C to USB-C cables that I can’t remember which device it came with.</p><p>With the two connected, WhatCable correctly identified the cable as a USB 2.0 one and it even identified my tablet by its model name, the Legion Tab Y700. One term I hadn’t heard before trying out this app, despite being about as immersed in tech as you can be, is E-marker. </p><p>Apparently, this is a tiny, 1mm² microchip that’s embedded directly into the plastic or metal housing of a USB-C connector. Like a digital passport, these E-marker chips allow the USB-C Power Delivery controllers inside the ports of your laptop and other devices to know exactly what a particular cable is capable of. That way, they send the correct amount of power or data and don’t overload the device on the other end.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3421px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="H3NHTZiqJPqAsyLZ7j8rRS" name="whatcable-technical-details.jpg" alt="A screenshot showing the WhatCable app running on a Mac with the technical details of its cable testing expanded" src="https://cdn.mos.cms.futurecdn.net/H3NHTZiqJPqAsyLZ7j8rRS.png" mos="" align="middle" fullscreen="" width="3421" height="1924" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Even with the free version of WhatCable, you can actually drill down further into each section to learn more about the cable you’re testing. By clicking “Show technical details” you can see all of the supported protocols and standards the current connection can handle. </p><p>For instance here, while the cable itself is bottlenecked at USB 2.0 speeds, the underlying port architecture supports USB2, USB3, power delivery, and video out over DisplayPort. So not only can you use this app to test your cables, but you can also get a clear picture of exactly what your Mac's ports are capable of at the same time. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ePakpW"></div>                            </div>                            <script src="https://kwizly.com/embed/ePakpW.js" async></script><h2 id="cables-may-be-faster-than-they-appear">Cables may be faster than they appear</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="2kCaQdEetYGYom8rsbtc6X" name="WhatCable-5" alt="A person holding up a portable SSD in front of a MacBook Pro running the WhatCable app to test the speed of the cable connecting the two" src="https://cdn.mos.cms.futurecdn.net/2kCaQdEetYGYom8rsbtc6X.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>For my next round of cable testing, I decided to completely switch up devices. I started with a 1TB M.2 drive I’m using inside this SSD enclosure from Ugreen. Given its rated for speeds up to 10 Gbps, I figured it would be an ideal companion for cable testing and it absolutely was. </p><p>In the WhatCable app, that Fasgear cable — remember the one with 5A, 10Gbps written on the connector? — actually turned out to be as fast as the company claimed. Surprisingly though, according to the app, the E-marker inside it didn’t have a vendor ID, though apparently this is common with genuine cables. Or maybe Fasgear was too humble to take credit for it, I guess we'll never know.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="D2DGGaE9VvEun7XJWCiePa" name="WhatCable-4" alt="A Nintendo Switch 2 Pro Controller connected to a MacBook Pro running the WhatCable app" src="https://cdn.mos.cms.futurecdn.net/D2DGGaE9VvEun7XJWCiePa.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Next up, I decided to test a cable that wasn’t labeled, but I did know its full capabilities based on the description on the box. Alongside its Vagabond mobile game controller, Elo recently sent over all of the accessories to go with it, including the company’s Link <a href="https://www.tomsguide.com/features/thunderbolt-4-vs-usb4-whats-the-difference">Thunderbolt 4</a> cable which can deliver up to 240W of power and 40 Gbps of data.</p><p>I’ve tried it out with other devices and it definitely works as advertised. However, when I used it to connect a <a href="https://www.tomsguide.com/gaming/gaming-peripherals/i-tried-the-nintendo-switch-2-pro-controller-and-it-adds-the-one-feature-ive-always-wanted">Nintendo Switch 2 Pro Controller</a> to my MacBook, it only reached USB 2.0 speeds in WhatCable. </p><p>You see, in this case, it was the controller and not the cable that was the bottleneck. While the console hardware itself handles modern high-speed connections, the Switch 2 Pro Controller internally relies on basic USB 2.0 protocols to process your inputs. Since game controllers prioritize low latency over raw bandwidth, the hardware only needs a tiny data pipe to pass along button presses to your console.</p><p>If you decide to download WhatCable and run into a similar situation where you know you have a high-speed cable but you’re seeing slower speeds while testing, I’d recommend connecting a different device. After I swapped out that controller for my Legion tablet, the app instantly registered the Elo Link cable as a high-speed one.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3452px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="6nDUAxJ5VpM7PhBNPjrtXf" name="whatcable-pro-license" alt="A screenshot showing the extra features and insights available in the pro version of the WhatCable app for Mac" src="https://cdn.mos.cms.futurecdn.net/6nDUAxJ5VpM7PhBNPjrtXf.png" mos="" align="middle" fullscreen="" width="3452" height="1942" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>I learned so much testing the power delivery and data transfer speeds of those 10 cables that I decided to spend the $13 on the pro version of WhatCable and I’m glad I did. </p><p>Not only do you get additional insights like live power monitoring but you can also add the various cables you test to the app and give them names. This way, you get a timeline of when that cable was last used, what it was connected to and whether or not you ran into any issues while using it.</p><h2 id="no-more-second-guessing">No more second guessing</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="MTtxYnr3SDGVeo9JDaLa66" name="WhatCable-1-LEDE" alt="A MacBook Pro running the WhatCable app with several cables on top of its keyboard" src="https://cdn.mos.cms.futurecdn.net/MTtxYnr3SDGVeo9JDaLa66.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Over the years, I’ve accumulated a massive collection of cables. From USB-A to USB-C, HDMI to DisplayPort and even some less common ones like USB Type-B and Micro-USB B, I have a lot of cables — and while I try to get rid of the slower and less full-featured ones when I can, I still have too many.</p><p>A few years ago, I decided to repurpose a <a href="https://www.tomsguide.com/opinion/i-used-this-simple-hack-to-tame-my-tangled-box-of-cables">hanging, over-the-door shoe rack</a> to house them all and before I started adding Thunderbolt ones and longer, braided DisplayPort cables to the mix, it worked quite well. Now though, I’m due for a cable audit.</p><p>While I plan on coming up with a solution that’s a bit more elegant than hanging them in various compartments over the back of my closet door, I also want to separate the wheat from the chaff and only keep the best of the best cables. To do that, I need to test them all.</p><p>Although I’ll probably end up buying a standalone tester for some of those more obscure cables and the video ones, WhatCable has done a lot of the groundwork for me. At the same time, it’s made me realize that testing cables isn’t nearly as difficult or time consuming as I thought it would be back when I first looked into getting a dedicated cable tester.</p><p>If you’ve ever plugged in your smartphone, tablet or laptop and seen less than ideal charging or data transfer speeds and you have a Mac, you owe it to yourself to give this open-source app a try. I’m glad I did because when it comes to USB-C to USB-C cables, I’ll never have to doubt their capabilities again.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/home/i-used-this-free-trick-to-finally-make-my-braided-cables-lay-flat">I finally found the secret to perfectly straight braided cables and it doesn't cost a thing</a></li><li><a href="https://www.tomsguide.com/computing/peripherals/i-built-a-rollable-workstation-by-repurposing-this-classic-ikea-cart-and-its-a-game-changer-for-working-from-my-laptop">I used this classic IKEA cart to build a rollable workstation for my laptop and it lets me work comfortably from anywhere</a></li><li><a href="https://www.tomsguide.com/computing/monitors/i-spent-a-week-with-dual-apple-studio-displays-and-realized-ive-been-lying-to-myself-about-glossy-screens-for-years">I spent a week with dual Apple Studio Displays and realized I’ve been lying to myself about glossy screens for years</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ How to download the macOS Golden Gate public beta right now ]]></title>
                                                                                                <dc:content><![CDATA[ <p>The <a href="https://www.tomsguide.com/computing/macos/macos-27">macOS Golden Gate</a> public beta is now live, giving you a chance to check out all the new features coming to the <a href="https://www.tomsguide.com/best-picks/best-macbook">best MacBooks</a>.</p><p>Expected to launch this Fall, macOS Golden Gate primarily focuses on updating Apple Intelligence and Siri, with the latter now officially called <a href="https://www.tomsguide.com/ai/apple-finally-fixed-siri-heres-all-the-features-for-the-new-siri-ai-announced-at-wwdc">Siri AI</a>. You don’t get many new features, but improvements to Liquid Glass’s readability, easier customization, and smoother performance make for an overall better experience.</p><p>While Apple’s public betas are generally more stable than the developer builds, it might still be buggy and could cause issues for your Mac. I’ve never experienced serious issues using any of these betas over the years, but it’s worth being cautious. With that said, here’s how to download the macOS Golden Gate public beta.</p><h2 id="how-to-download-the-macos-golden-gate-developer-beta">How to download the macOS Golden Gate developer beta</h2><p>Downloading the macOS Golden Gate public beta is pretty simple. First, enroll your Apple ID in <a href="https://go.redirectingat.com/?id=92X1584493&xcust=tomsguide_us_6501826667653749260&xs=1&url=https%3A%2F%2Fbeta.apple.com%2F&sref=https%3A%2F%2Fwww.tomsguide.com" target="_blank">Apple's Beta Program</a> and make sure your Mac is compatible. Here's the full list of Macs that can install and run macOS Golden Gate:</p><ul><li><strong>MacBook Neo (2026)</strong></li><li><strong>MacBook Air with Apple silicon (2020 and later)</strong></li><li><strong>MacBook Pro with Apple silicon (2020 and later)</strong></li><li><strong>iMac with Apple silicon (2021 and later)</strong></li><li><strong>Mac mini with Apple silicon (2020 and later)</strong></li><li><strong>Mac Studio with Apple silicon (2022 and later)</strong></li><li><strong>Mac Pro with Apple silicon (2023 and later)</strong></li></ul><section class="howto-block">                    <h3>1. Open System Settings</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/VwiWUWktjrNv3uJFyMfMpn.jpg"                                        alt="macOS 27"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/VwiWUWktjrNv3uJFyMfMpn.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide / Apple)</div></figure>                    <p><p>To start, <strong>open the System Settings menu</strong> on your Mac by <strong>clicking on the Apple icon in the top-left corner</strong>, then <strong>select "System Settings" from the drop-down menu</strong>. Similarly, <strong>you can also click on the gear icon in the dock</strong>.</p></p>                </section><section class="howto-block">                    <h3>2. Navigate to General > Software Update</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/ASM9wMhQK6Vgae6MPBKatV.jpg"                                        alt="macOS 27"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/ASM9wMhQK6Vgae6MPBKatV.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide / Apple)</div></figure>                    <p><p>After that, <strong>navigate to the Software Update section of your General settings menu</strong>. To get there, <strong>click General in the left-hand menu of the System Settings menu</strong>, then <strong>click Software Update</strong>.</p></p>                </section><section class="howto-block">                    <h3>3. Enable Beta Updates and select macOS Golden Gate</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/Pgd6SzoQMj9LQ3GEeqnBgC.jpg"                                        alt="macOS 27"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/Pgd6SzoQMj9LQ3GEeqnBgC.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Apple)</div></figure>                    <p><p>Then, make sure the Beta Updates setting is switched to On. If it's switched Off, turn it on by clicking the corresponding button. <strong>When the Beta Updates menu opens, select macOS Golden Gate public Beta from the drop-down menu</strong>. Double-check that your Apple account is enrolled in Apple’s Beta Program if you don’t see the beta listed.</p></p>                </section><section class="howto-block">                    <h3>4. Install the beta</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/vuXcGtL37LYW58XQFZLKmg.jpg"                                        alt="macOS 27"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/vuXcGtL37LYW58XQFZLKmg.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Apple)</div></figure>                    <p><p>Once that's done, <strong>you should see the macOS 27 public Beta appear as available to download</strong>. All you have to do now is <strong>hit the Upgrade Now button to start downloading</strong>, and you're all set!</p></p>                </section><p>That’s all that’s required to download the macOS Golden Gate public beta. Your Mac will restart once the download finishes. After that, you can start trying out all the new features. Depending on your connection speed, the download might take a few minutes, so be patient.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/macos/i-just-downloaded-macos-27-public-beta-skip-the-ai-and-try-these-5-hidden-features-instead">I just downloaded macOS 27 public beta — skip Siri AI and try these 5 hidden features instead</a></li><li><a href="https://www.tomsguide.com/computing/laptops/haptic-vs-mechanical-trackpads-i-put-them-both-through-a-gauntlet-and-one-almost-made-me-throw-my-laptop-into-the-sun">Haptic vs. Mechanical trackpads: I put them both through a gauntlet, and one almost made me throw my laptop into the sun</a></li><li><a href="https://www.tomsguide.com/computing/monitors/exclusive-i-asked-lenovos-gm-to-predict-the-future-of-monitors-and-its-the-end-of-our-chaotic-cable-cluttered-desks-and-monitors-that-fry-your-retinas">Exclusive: I asked Lenovo’s GM to predict the future of monitors, and it's the end of our chaotic, cable-cluttered desks and monitors that fry your retinas</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/macos/how-to-download-the-macos-golden-gate-public-beta-right-now</link>
                                                                            <description>
                            <![CDATA[ Apple's macOS Golden Gate public beta is now available. Here's how you can download it and test out all the new Apple Intelligence features for Macs. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">Nqh3m4FZxMAgw4pbpXa4vh</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/6onBfgc6zZedV7zQBmGFw8-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 14 Jul 2026 23:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[macOS]]></category>
                                                    <category><![CDATA[MacBooks]]></category>
                                                    <category><![CDATA[Apple Desktops]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                    <category><![CDATA[Laptops]]></category>
                                                    <category><![CDATA[Desktop Computers]]></category>
                                                                                                <author><![CDATA[ tony.polanco@futurenet.com (Tony Polanco) ]]></author>                    <dc:creator><![CDATA[ Tony Polanco ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/atzRNqFt5wYgEUPBDahWsD.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/6onBfgc6zZedV7zQBmGFw8-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[macOS 27]]></media:description>                                                            <media:text><![CDATA[macOS 27]]></media:text>
                                <media:title type="plain"><![CDATA[macOS 27]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/6onBfgc6zZedV7zQBmGFw8-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The <a href="https://www.tomsguide.com/computing/macos/macos-27">macOS Golden Gate</a> public beta is now live, giving you a chance to check out all the new features coming to the <a href="https://www.tomsguide.com/best-picks/best-macbook">best MacBooks</a>.</p><p>Expected to launch this Fall, macOS Golden Gate primarily focuses on updating Apple Intelligence and Siri, with the latter now officially called <a href="https://www.tomsguide.com/ai/apple-finally-fixed-siri-heres-all-the-features-for-the-new-siri-ai-announced-at-wwdc">Siri AI</a>. You don’t get many new features, but improvements to Liquid Glass’s readability, easier customization, and smoother performance make for an overall better experience.</p><p>While Apple’s public betas are generally more stable than the developer builds, it might still be buggy and could cause issues for your Mac. I’ve never experienced serious issues using any of these betas over the years, but it’s worth being cautious. With that said, here’s how to download the macOS Golden Gate public beta.</p><h2 id="how-to-download-the-macos-golden-gate-developer-beta">How to download the macOS Golden Gate developer beta</h2><p>Downloading the macOS Golden Gate public beta is pretty simple. First, enroll your Apple ID in <a href="https://go.redirectingat.com/?id=92X1584493&xcust=tomsguide_us_6501826667653749260&xs=1&url=https%3A%2F%2Fbeta.apple.com%2F&sref=https%3A%2F%2Fwww.tomsguide.com" target="_blank">Apple's Beta Program</a> and make sure your Mac is compatible. Here's the full list of Macs that can install and run macOS Golden Gate:</p><ul><li><strong>MacBook Neo (2026)</strong></li><li><strong>MacBook Air with Apple silicon (2020 and later)</strong></li><li><strong>MacBook Pro with Apple silicon (2020 and later)</strong></li><li><strong>iMac with Apple silicon (2021 and later)</strong></li><li><strong>Mac mini with Apple silicon (2020 and later)</strong></li><li><strong>Mac Studio with Apple silicon (2022 and later)</strong></li><li><strong>Mac Pro with Apple silicon (2023 and later)</strong></li></ul><section class="howto-block">                    <h3>1. Open System Settings</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/VwiWUWktjrNv3uJFyMfMpn.jpg"                                        alt="macOS 27"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/VwiWUWktjrNv3uJFyMfMpn.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide / Apple)</div></figure>                    <p><p>To start, <strong>open the System Settings menu</strong> on your Mac by <strong>clicking on the Apple icon in the top-left corner</strong>, then <strong>select "System Settings" from the drop-down menu</strong>. Similarly, <strong>you can also click on the gear icon in the dock</strong>.</p></p>                </section><section class="howto-block">                    <h3>2. Navigate to General > Software Update</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/ASM9wMhQK6Vgae6MPBKatV.jpg"                                        alt="macOS 27"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/ASM9wMhQK6Vgae6MPBKatV.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide / Apple)</div></figure>                    <p><p>After that, <strong>navigate to the Software Update section of your General settings menu</strong>. To get there, <strong>click General in the left-hand menu of the System Settings menu</strong>, then <strong>click Software Update</strong>.</p></p>                </section><section class="howto-block">                    <h3>3. Enable Beta Updates and select macOS Golden Gate</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/Pgd6SzoQMj9LQ3GEeqnBgC.jpg"                                        alt="macOS 27"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/Pgd6SzoQMj9LQ3GEeqnBgC.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Apple)</div></figure>                    <p><p>Then, make sure the Beta Updates setting is switched to On. If it's switched Off, turn it on by clicking the corresponding button. <strong>When the Beta Updates menu opens, select macOS Golden Gate public Beta from the drop-down menu</strong>. Double-check that your Apple account is enrolled in Apple’s Beta Program if you don’t see the beta listed.</p></p>                </section><section class="howto-block">                    <h3>4. Install the beta</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/vuXcGtL37LYW58XQFZLKmg.jpg"                                        alt="macOS 27"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/vuXcGtL37LYW58XQFZLKmg.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Apple)</div></figure>                    <p><p>Once that's done, <strong>you should see the macOS 27 public Beta appear as available to download</strong>. All you have to do now is <strong>hit the Upgrade Now button to start downloading</strong>, and you're all set!</p></p>                </section><p>That’s all that’s required to download the macOS Golden Gate public beta. Your Mac will restart once the download finishes. After that, you can start trying out all the new features. Depending on your connection speed, the download might take a few minutes, so be patient.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/macos/i-just-downloaded-macos-27-public-beta-skip-the-ai-and-try-these-5-hidden-features-instead">I just downloaded macOS 27 public beta — skip Siri AI and try these 5 hidden features instead</a></li><li><a href="https://www.tomsguide.com/computing/laptops/haptic-vs-mechanical-trackpads-i-put-them-both-through-a-gauntlet-and-one-almost-made-me-throw-my-laptop-into-the-sun">Haptic vs. Mechanical trackpads: I put them both through a gauntlet, and one almost made me throw my laptop into the sun</a></li><li><a href="https://www.tomsguide.com/computing/monitors/exclusive-i-asked-lenovos-gm-to-predict-the-future-of-monitors-and-its-the-end-of-our-chaotic-cable-cluttered-desks-and-monitors-that-fry-your-retinas">Exclusive: I asked Lenovo’s GM to predict the future of monitors, and it's the end of our chaotic, cable-cluttered desks and monitors that fry your retinas</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I just downloaded macOS 27 public beta — skip Siri AI and try these 5 hidden features instead ]]></title>
                                                                                                <dc:content><![CDATA[ <p>It’s official — the macOS 27 Golden Gate public beta has just launched, and with it we’re getting a slew of new features! Not that you’d know, because back at WWDC, Apple couldn’t stop talking about the new Siri AI that’s deeply integrated into everything here.</p><p>So while I’ll leave the <a href="https://www.tomsguide.com/computing/macos/macos-golden-gate-public-beta-hands-on-preview">hands-on impressions</a> of the OS and its big features to my boy Tony, I want to tell you about the lesser known additions that you should definitely be trying out first. Because this new version is about <strong>a lot </strong>more than just AI.</p><h2 id="refining-liquid-glass-improving-the-ui">Refining Liquid Glass - improving the UI</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="kbVSEAeYD7AF3N9vqnbxhG" name="macOS 27 liquid glass slider" alt="macOS 27 Liquid Glass" src="https://cdn.mos.cms.futurecdn.net/kbVSEAeYD7AF3N9vqnbxhG.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide / Apple)</span></figcaption></figure><p>Let’s be real. Liquid Glass had a rough start. Personally, I thought it was kind of cool, but I can totally understand how it impacted readability and consistency of design across the OS. Apple’s addressed this with some small but impactful changes that bring it all together nicely.</p><p>First, there’s now a Liquid Glass slider to adjust how see-through the glassy elements are — great for improving legibility. Then there’s uniformity across macOS toolbars for more logical use, and the rounded corners of all the app windows match up now.</p><p>Like I said, it’s all small tweaks. But put them all together (as well as smoother animations for Mission Control and Spaces), and the end result is a nicer-feeling UI to get around.</p><h2 id="faster-airdrop">Faster AirDrop</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:766px;"><p class="vanilla-image-block" style="padding-top:63.71%;"><img id="rcdYtJtmeAot6ukrUGkTQ5" name="Screen Shot 2019-10-04 at 1.04.13 PM.png" alt="Airdrop on Mac" src="https://cdn.mos.cms.futurecdn.net/rcdYtJtmeAot6ukrUGkTQ5.png" mos="" align="middle" fullscreen="" width="766" height="488" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>There’s been general performance upgrades across the board, as it seems Apple has gone all “Snow Leopard” on this version by looking under the hood and tweaking the efficiency of tasks.</p><p>But the real feature here is that AirDrop is going to get a turboboost. How much faster? I don’t know — but by optimizing the underlying network protocols, wireless file transfers are speedier. For someone who has a Final Cut Pro workload between my iPhone and MacBook Pro, this is huge for high capacity files.</p><p>Beyond this, Apple says you can look forward to faster app opens and JavaScript improvements to make Safari browsing a whole lot smoother. Speaking of Safari…</p><h2 id="safari-s-big-upgrade">Safari’s big upgrade</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="j37YCKEsDn3UwjGEkWTuz9" name="macos 27" alt="macos 27" src="https://cdn.mos.cms.futurecdn.net/j37YCKEsDn3UwjGEkWTuz9.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Apple)</span></figcaption></figure><p>Safari is catching up with the likes of Chrome and Opera with some AI-powered features like automatic tab organization, but Apple’s browser facelift goes deeper than that.</p><p>First up is probably a significant one for those who has gig tickets to buy or want to wait for a price drop. With Notify Me, you can set some conditions to get a notification whenever the content on a webpage changes.</p><p>Second, with a little help from Apple Intelligence, you can use natural language to describe a browser extension, and Safari will build it. So whether it’s a Recipe Keeper like in Apple’s example or maybe a Tom’s Guide story feed, you’re not limited to the developer range of extensions.</p><p>Oh, and shout-out to one of the underrated game changers here — swipe down to refresh. Just like in iOS, you can scroll up on a webpage to trigger a page refresh, and bringing that intuitive piece of UI design to the desktop experience feels so natural in a “why didn’t they think of that before” kind of way.</p><h2 id="drawing-in-messages-notes-and-freeform">Drawing in Messages, Notes and Freeform</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2732px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="AhhTuxyCS296pURQkU9qtk" name="applefreeform2.png" alt="Apple Freeform app showing side-by-side asset retrieval" src="https://cdn.mos.cms.futurecdn.net/AhhTuxyCS296pURQkU9qtk.png" mos="" align="middle" fullscreen="" width="2732" height="1537" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>On iPhone and iPad, you can draw directly into Notes and Freeform, and this feature is now (finally) coming to Mac too. Using the touchpad as a canvas, you can sketch out your mini masterpiece — plus this drawing app is also being added directly into iMessage too for a huge upgrade over the handwriting feature you used to get.</p><p>Now, this is definitely an understated feature that you may only use once or twice (depending on what your use cases are of course), but I see this as something different. Apple has snuck in a couple of things that I think may be setting the stage for some new devices coming in.</p><p>Having expanded drawing capabilities in your OS? To me, that feels like something more purpose-built for a touchscreen device…maybe the <a href="https://www.tomsguide.com/computing/laptops/macbook-ultra-everything-we-know-so-far">MacBook Ultra</a>?</p><h2 id="iphone-mirroring-that-teases-a-foldable">iPhone mirroring that teases a foldable</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="46TQG8D24qBjR9HsaRj4XG" name="Article - 3.png" alt="iPhone Mirroring on MacOs Sequoia" src="https://cdn.mos.cms.futurecdn.net/46TQG8D24qBjR9HsaRj4XG.png" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>And this is the other feature that I believe is teasing a new device. iPhone mirroring has been one of the biggest features since its debut for me — giving me rapid access to my phone’s apps without needing to break my focus on my MacBook screen to pull out another device (and inevitably go down a TikTok wormhole).</p><p>With Golden Gate, you can watch DRM-protected video on your big screen now (Netflix content for example), and you can get into your iPhone’s Control Center. </p><p>But biggest of all, you can resize the app’s screen to be bigger and see more content on the screen.</p><p>Now again, this seems to be a weird addition. Why put that demand for responsive app design in iPhone mirroring? Well, you <em>may </em>have heard about this new foldable <a href="https://www.tomsguide.com/phones/iphones/iphone-ultra-vs-iphone-18-pro-max-five-biggest-expected-differences">iPhone Ultra</a> coming up…this seems too convenient to me.</p><h2 id="outlook">Outlook</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="krBLMKLEe5WDr9uGduZ6w9" name="macos 27" alt="macos 27" src="https://cdn.mos.cms.futurecdn.net/krBLMKLEe5WDr9uGduZ6w9.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Apple)</span></figcaption></figure><p>All-in-all, this isn’t necessarily the most feature-packed macOS update, but Golden Gate does sharpen some things up while also giving us what I feel are some future hardware teases.</p><p>These alongside a complete rebuild in the way search works across Spotlight, Photos and Mail, the tweaks here will be felt throughout by both casual and pro users alike.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/laptops/haptic-vs-mechanical-trackpads-i-put-them-both-through-a-gauntlet-and-one-almost-made-me-throw-my-laptop-into-the-sun">Haptic vs. Mechanical trackpads: I put them both through a gauntlet, and one almost made me throw my laptop into the sun</a></li><li><a href="https://www.tomsguide.com/computing/monitors/exclusive-i-asked-lenovos-gm-to-predict-the-future-of-monitors-and-its-the-end-of-our-chaotic-cable-cluttered-desks-and-monitors-that-fry-your-retinas">Exclusive: I asked Lenovo’s GM to predict the future of monitors, and it's the end of our chaotic, cable-cluttered desks and monitors that fry your retinas</a></li><li><a href="https://www.tomsguide.com/best-picks/best-macbook">Which MacBook should you buy in 2026? I ranked the 5 best Apple laptops for every need</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/macos/i-just-downloaded-macos-27-public-beta-skip-the-ai-and-try-these-5-hidden-features-instead</link>
                                                                            <description>
                            <![CDATA[ The macOS 27 Golden Gate public beta is here. Beyond Siri AI, here are the 5 best hidden features, design fixes, and Safari updates you should try first. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">sFnK3g3qiEmrYh8P4J7LGJ</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/otQPhMJG3G3aoN2Ddhr4zX-1280-80.png" type="image/png" length="0"></enclosure>
                                                                        <pubDate>Tue, 14 Jul 2026 06:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[macOS]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                                                                                    <dc:creator><![CDATA[ Jason England ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/v4fSq5U4uZUEtGY2BwNuJ6.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Jason brings a decade of tech and gaming journalism experience to his role as a Managing Editor of Computing at Tom&#039;s Guide. He has previously written for Laptop Mag, Tom&#039;s Hardware, Kotaku, Stuff and BBC Science Focus. In his spare time, you&#039;ll find Jason looking for good dogs to pet or thinking about eating pizza if he isn&#039;t already.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/png" url="https://cdn.mos.cms.futurecdn.net/otQPhMJG3G3aoN2Ddhr4zX-1280-80.png">
                                                            <media:credit><![CDATA[Apple ]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Siri on Mac]]></media:description>                                                            <media:text><![CDATA[Siri on Mac]]></media:text>
                                <media:title type="plain"><![CDATA[Siri on Mac]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/otQPhMJG3G3aoN2Ddhr4zX-1280-80.png" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>It’s official — the macOS 27 Golden Gate public beta has just launched, and with it we’re getting a slew of new features! Not that you’d know, because back at WWDC, Apple couldn’t stop talking about the new Siri AI that’s deeply integrated into everything here.</p><p>So while I’ll leave the <a href="https://www.tomsguide.com/computing/macos/macos-golden-gate-public-beta-hands-on-preview">hands-on impressions</a> of the OS and its big features to my boy Tony, I want to tell you about the lesser known additions that you should definitely be trying out first. Because this new version is about <strong>a lot </strong>more than just AI.</p><h2 id="refining-liquid-glass-improving-the-ui">Refining Liquid Glass - improving the UI</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="kbVSEAeYD7AF3N9vqnbxhG" name="macOS 27 liquid glass slider" alt="macOS 27 Liquid Glass" src="https://cdn.mos.cms.futurecdn.net/kbVSEAeYD7AF3N9vqnbxhG.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide / Apple)</span></figcaption></figure><p>Let’s be real. Liquid Glass had a rough start. Personally, I thought it was kind of cool, but I can totally understand how it impacted readability and consistency of design across the OS. Apple’s addressed this with some small but impactful changes that bring it all together nicely.</p><p>First, there’s now a Liquid Glass slider to adjust how see-through the glassy elements are — great for improving legibility. Then there’s uniformity across macOS toolbars for more logical use, and the rounded corners of all the app windows match up now.</p><p>Like I said, it’s all small tweaks. But put them all together (as well as smoother animations for Mission Control and Spaces), and the end result is a nicer-feeling UI to get around.</p><h2 id="faster-airdrop">Faster AirDrop</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:766px;"><p class="vanilla-image-block" style="padding-top:63.71%;"><img id="rcdYtJtmeAot6ukrUGkTQ5" name="Screen Shot 2019-10-04 at 1.04.13 PM.png" alt="Airdrop on Mac" src="https://cdn.mos.cms.futurecdn.net/rcdYtJtmeAot6ukrUGkTQ5.png" mos="" align="middle" fullscreen="" width="766" height="488" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>There’s been general performance upgrades across the board, as it seems Apple has gone all “Snow Leopard” on this version by looking under the hood and tweaking the efficiency of tasks.</p><p>But the real feature here is that AirDrop is going to get a turboboost. How much faster? I don’t know — but by optimizing the underlying network protocols, wireless file transfers are speedier. For someone who has a Final Cut Pro workload between my iPhone and MacBook Pro, this is huge for high capacity files.</p><p>Beyond this, Apple says you can look forward to faster app opens and JavaScript improvements to make Safari browsing a whole lot smoother. Speaking of Safari…</p><h2 id="safari-s-big-upgrade">Safari’s big upgrade</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="j37YCKEsDn3UwjGEkWTuz9" name="macos 27" alt="macos 27" src="https://cdn.mos.cms.futurecdn.net/j37YCKEsDn3UwjGEkWTuz9.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Apple)</span></figcaption></figure><p>Safari is catching up with the likes of Chrome and Opera with some AI-powered features like automatic tab organization, but Apple’s browser facelift goes deeper than that.</p><p>First up is probably a significant one for those who has gig tickets to buy or want to wait for a price drop. With Notify Me, you can set some conditions to get a notification whenever the content on a webpage changes.</p><p>Second, with a little help from Apple Intelligence, you can use natural language to describe a browser extension, and Safari will build it. So whether it’s a Recipe Keeper like in Apple’s example or maybe a Tom’s Guide story feed, you’re not limited to the developer range of extensions.</p><p>Oh, and shout-out to one of the underrated game changers here — swipe down to refresh. Just like in iOS, you can scroll up on a webpage to trigger a page refresh, and bringing that intuitive piece of UI design to the desktop experience feels so natural in a “why didn’t they think of that before” kind of way.</p><h2 id="drawing-in-messages-notes-and-freeform">Drawing in Messages, Notes and Freeform</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2732px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="AhhTuxyCS296pURQkU9qtk" name="applefreeform2.png" alt="Apple Freeform app showing side-by-side asset retrieval" src="https://cdn.mos.cms.futurecdn.net/AhhTuxyCS296pURQkU9qtk.png" mos="" align="middle" fullscreen="" width="2732" height="1537" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>On iPhone and iPad, you can draw directly into Notes and Freeform, and this feature is now (finally) coming to Mac too. Using the touchpad as a canvas, you can sketch out your mini masterpiece — plus this drawing app is also being added directly into iMessage too for a huge upgrade over the handwriting feature you used to get.</p><p>Now, this is definitely an understated feature that you may only use once or twice (depending on what your use cases are of course), but I see this as something different. Apple has snuck in a couple of things that I think may be setting the stage for some new devices coming in.</p><p>Having expanded drawing capabilities in your OS? To me, that feels like something more purpose-built for a touchscreen device…maybe the <a href="https://www.tomsguide.com/computing/laptops/macbook-ultra-everything-we-know-so-far">MacBook Ultra</a>?</p><h2 id="iphone-mirroring-that-teases-a-foldable">iPhone mirroring that teases a foldable</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="46TQG8D24qBjR9HsaRj4XG" name="Article - 3.png" alt="iPhone Mirroring on MacOs Sequoia" src="https://cdn.mos.cms.futurecdn.net/46TQG8D24qBjR9HsaRj4XG.png" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>And this is the other feature that I believe is teasing a new device. iPhone mirroring has been one of the biggest features since its debut for me — giving me rapid access to my phone’s apps without needing to break my focus on my MacBook screen to pull out another device (and inevitably go down a TikTok wormhole).</p><p>With Golden Gate, you can watch DRM-protected video on your big screen now (Netflix content for example), and you can get into your iPhone’s Control Center. </p><p>But biggest of all, you can resize the app’s screen to be bigger and see more content on the screen.</p><p>Now again, this seems to be a weird addition. Why put that demand for responsive app design in iPhone mirroring? Well, you <em>may </em>have heard about this new foldable <a href="https://www.tomsguide.com/phones/iphones/iphone-ultra-vs-iphone-18-pro-max-five-biggest-expected-differences">iPhone Ultra</a> coming up…this seems too convenient to me.</p><h2 id="outlook">Outlook</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="krBLMKLEe5WDr9uGduZ6w9" name="macos 27" alt="macos 27" src="https://cdn.mos.cms.futurecdn.net/krBLMKLEe5WDr9uGduZ6w9.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Apple)</span></figcaption></figure><p>All-in-all, this isn’t necessarily the most feature-packed macOS update, but Golden Gate does sharpen some things up while also giving us what I feel are some future hardware teases.</p><p>These alongside a complete rebuild in the way search works across Spotlight, Photos and Mail, the tweaks here will be felt throughout by both casual and pro users alike.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/laptops/haptic-vs-mechanical-trackpads-i-put-them-both-through-a-gauntlet-and-one-almost-made-me-throw-my-laptop-into-the-sun">Haptic vs. Mechanical trackpads: I put them both through a gauntlet, and one almost made me throw my laptop into the sun</a></li><li><a href="https://www.tomsguide.com/computing/monitors/exclusive-i-asked-lenovos-gm-to-predict-the-future-of-monitors-and-its-the-end-of-our-chaotic-cable-cluttered-desks-and-monitors-that-fry-your-retinas">Exclusive: I asked Lenovo’s GM to predict the future of monitors, and it's the end of our chaotic, cable-cluttered desks and monitors that fry your retinas</a></li><li><a href="https://www.tomsguide.com/best-picks/best-macbook">Which MacBook should you buy in 2026? I ranked the 5 best Apple laptops for every need</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ macOS Golden Gate public beta hands-on preview: Apple Intelligence is finally useful ]]></title>
                                                                                                <dc:content><![CDATA[ <p>The public beta for macOS 27, also known as <a href="https://www.tomsguide.com/computing/macos/macos-27">macOS Golden Gate</a>, is here! While this update isn’t as monumental as <a href="https://www.tomsguide.com/computing/macos/macos-sequoia">macOS Sequoia</a>, it delivers a slew of AI features and smoother overall performance, making the <a href="https://www.tomsguide.com/best-picks/best-macbook">best MacBooks</a> more personal and streamlined.</p><p>I’ve had the <a href="https://www.tomsguide.com/computing/macos/the-macos-golden-gate-developer-beta-is-live-heres-how-to-download-it">developer beta of macOS Golden Gate</a> installed for a month, with the latest version close to what the public beta is offering. While the beta is still very much a work in progress, I’ve had a smooth time using it and testing out its new features.</p><p>If you’re signed into the (free) <a href="https://beta.apple.com/" target="_blank">Apple beta software program</a>, you can try the public beta of macOS Golden Gate right now. Here are my thoughts on the beta and the key features worth checking out.</p><h3 class="article-body__section" id="section-macos-golden-gate-public-beta-hands-on-supported-macs"><span>macOS Golden Gate public beta hands-on: Supported Macs</span></h3><p>The Intel era is over, as macOS Golden Gate doesn’t run on those older machines. Here is a complete list of Macs that support Golden Gate.</p><ul><li><strong>MacBook Neo (2026)</strong></li><li><strong>MacBook Air with Apple silicon (2020 and later)</strong></li><li><strong>MacBook Pro with Apple silicon (2020 and later)</strong></li><li><strong>iMac with Apple silicon (2021 and later)</strong></li><li><strong>Mac mini with Apple silicon (2020 and later)</strong></li><li><strong>Mac Studio with Apple silicon (2022 and later)</strong></li><li><strong>Mac Pro with Apple silicon (2023 and later)</strong></li></ul><h3 class="article-body__section" id="section-macos-golden-gate-public-beta-hands-on-features"><span>macOS Golden Gate public beta hands-on: Features</span></h3><p>Most of macOS Golden Gate’s new features center around updated versions of Siri and Apple Intelligence. These are the ones that have stood out the most during my testing.</p><h2 id="siri-ai">Siri AI</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3777px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="RJQ9US5qZUL5xu3z9FTSpn" name="macOS 27 Golden Gate Siri AI-5" alt="Siri AI on macOS 27" src="https://cdn.mos.cms.futurecdn.net/RJQ9US5qZUL5xu3z9FTSpn.jpg" mos="" align="middle" fullscreen="" width="3777" height="2125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>There is now a dedicated <a href="https://www.tomsguide.com/ai/apple-intelligence/i-spent-48-hours-with-siri-ai-on-macos-golden-gate-heres-what-i-like-and-what-i-dont">Siri AI app for macOS Golden Gate</a> that functions similarly to chatbots like ChatGPT and <a href="https://www.tomsguide.com/ai/google-gemini/google-gemini-everything-you-need-to-know">Google Gemini</a>. This app is also available on <a href="https://www.tomsguide.com/computing/vr-ar/ipados-27-everything-coming-to-the-apples-beloved-tablets">iPadOS 27</a> and <a href="https://www.tomsguide.com/phones/iphones/ios-27-11-biggest-features-coming-to-your-iphone">iOS 27,</a> and is arguably the biggest new feature for the Apple devices that support it.</p><p>You can access the Siri AI app either by clicking it in the Dock or in the Menu bar. You can also bring it up by pulling up Spotlight. Doing this brings up a dedicated chat window where you can ask Siri AI questions or just talk to it about whatever’s on your mind. Again, this functions exactly like the chatbots you’re already familiar with.</p><p>And since Siri AI is now baked into the operating system, it can do more than just chat. For example, if you’re looking at a schedule, you’ll see an “add to calendar” button appear. I’ve even had this happen when I suggest a date/time to meet with friends. When you right-click on folders, files, or apps, you’ll often see an “Ask Siri” option at the very top, where you can begin asking questions about whatever you’re highlighting.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5184px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="zW8Y5gvHBBuuUMEQHd93FL" name="macOS 27 Golden Gate Siri AI-LIST2" alt="Siri AI on macOS 27" src="https://cdn.mos.cms.futurecdn.net/zW8Y5gvHBBuuUMEQHd93FL.jpg" mos="" align="middle" fullscreen="" width="5184" height="2916" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>You can even create Shortcuts by typing or speaking what you want instead of manually building complications. While I wouldn’t call this vibe coding, it can feel that way since you’re using natural language.</p><p>For those in the Apple ecosystem, Siri AI can be more useful than other chatbots because it’s integrated into the system. However, third-party integrations are still a work in progress, so Siri AI’s usability for you might be limited if you use Google apps like Gmail, since Siri AI doesn’t work with them (yet).</p><h2 id="liquid-glass-slider">Liquid Glass slider</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="kbVSEAeYD7AF3N9vqnbxhG" name="macOS 27 liquid glass slider" alt="macOS 27 Liquid Glass" src="https://cdn.mos.cms.futurecdn.net/kbVSEAeYD7AF3N9vqnbxhG.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide / Apple)</span></figcaption></figure><p>If you’re not a fan of the <a href="https://www.tomsguide.com/phones/iphones/ios-26s-liquid-glass-design-brings-big-changes-to-your-iphone-heres-everything-coming-in-the-public-beta">Liquid Glass UI</a>, you’ll be happy to know there’s now a slider to adjust its opacity. It lets you dial the effect up or down to your liking, and I’m surprised it took this long to implement it this way.</p><p>Beyond the slider, you’ll notice that more complex background visuals appear more diffused, which improves text readability (which was a big issue for some). The edges of icons are also more pronounced, so they stand out more from the background. All app windows now have a uniform corner radius to help them pop out as well.</p><p>I've never had a problem with Liquid Glass because I think it’s an interesting visual effect. That said, I’m glad that folks can now fine-tune it to their liking. The slider is especially neat because it’s easy to use and makes it clear how much of a difference there is when you go from one extreme to the other.</p><h2 id="spatial-reframing">Spatial Reframing</h2><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/2vyL4w3WxVGjQJPBPpoqq5.jpg" alt="MacBook Air M5" /><figcaption><small role="credit">Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/vUC8TZ34UKYuqHaQC7jN6R.jpg" alt="MacBook Air M5" /><figcaption>A MacBook Air after Reframe<small role="credit">Tom's Guide</small></figcaption></figure></figure><p>Spatial Reframing isn’t exclusive to macOS Golden Gate, but since the <a href="https://www.tomsguide.com/phones/iphones/apples-ai-powered-spatial-reframing-tool-just-stole-the-show-at-wwdc"><u>Reframe tool stole the show at WWDC</u></a>, it’s a feature worth spotlighting if you take a lot of photos.</p><p>As its name suggests, Reframe lets you reframe existing photos and adjust the perspective to your liking. This can be especially handy if you need to take photos in a hurry, as you can come back to them later to fix them.</p><p>After you select Reframe in the new Tools option in Photos’ editing mode, Apple Intelligence scans the photo you’ve selected. After that, you can pull your finger across the touchpad to change the perspective. Sliders on the side also give you more precise control over the angle, orientation, or size. When you’re done, the AI shifts things around to fill in any blanks.</p><p>This isn’t a feature I use often since I like photos in their original form, even if they’re not perfect. That said, I can’t knock the results, as Reframe does an excellent job of living up to its name. And to be fair, the changes made don’t radically alter the image — you just get a better version of what you’ve already snapped.</p><h3 class="article-body__section" id="section-macos-golden-gate-public-beta-hands-on-outlook"><span>macOS Golden Gate public beta hands-on: Outlook</span></h3><p>Apple Intelligence didn’t live up to the hype after it was first announced, but it’s now living up to its potential on Macs and the other Apple devices it can run on. If you’re a big AI user already, then macOS Golden Gate could arguably be a significant update. I imagine Siri AI will only improve between now and the OS’ expected fall launch.</p><p>Other features such as the more customizable Liquid Glass UI and Spatial Reframing might not be monumental game-changers, but they’re nice additions regardless. Apple also said there’s improved performance on devices using the upcoming operating systems, but during my time with macOS Golden Gate, I haven’t seen any noticeable improvements or hiccups on that front.</p><p>Apple’s new operating systems are still being worked on, so things could change before the official launch. I’ll have a full review for you then, but based on my experience with macOS Golden Gate, I’ll say that the new features are a step in the right direction.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/apple-intelligence/the-apple-car-development-may-not-have-been-as-big-a-waste-of-time-and-money-as-everyone-thought-in-fact-it-may-be-the-thing-that-enabled-apples-new-ai-boom">The Apple Car development may not have been a waste of time</a></li><li><a href="https://www.tomsguide.com/phones/iphones/7-hidden-ios-27-features-apple-didnt-tell-you-about-at-wwdc">7 hidden iOS 27 features Apple didn't tell you about</a></li><li><a href="https://www.tomsguide.com/ai/the-4-biggest-allegations-in-apples-lawsuit-against-openai">The 4 biggest allegations in Apple's lawsuit against OpenAI</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/macos/macos-golden-gate-public-beta-hands-on-preview</link>
                                                                            <description>
                            <![CDATA[ The public beta for macOS Golden Gate is now live for Apple beta software program participants. Here are the top features coming to Macs this fall. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">tgPY5apaRRsn7L4Q4gxNU3</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/6onBfgc6zZedV7zQBmGFw8-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 13 Jul 2026 20:44:14 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[macOS]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                                                                <author><![CDATA[ tony.polanco@futurenet.com (Tony Polanco) ]]></author>                    <dc:creator><![CDATA[ Tony Polanco ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/atzRNqFt5wYgEUPBDahWsD.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/6onBfgc6zZedV7zQBmGFw8-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[macOS 27]]></media:description>                                                            <media:text><![CDATA[macOS 27]]></media:text>
                                <media:title type="plain"><![CDATA[macOS 27]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/6onBfgc6zZedV7zQBmGFw8-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The public beta for macOS 27, also known as <a href="https://www.tomsguide.com/computing/macos/macos-27">macOS Golden Gate</a>, is here! While this update isn’t as monumental as <a href="https://www.tomsguide.com/computing/macos/macos-sequoia">macOS Sequoia</a>, it delivers a slew of AI features and smoother overall performance, making the <a href="https://www.tomsguide.com/best-picks/best-macbook">best MacBooks</a> more personal and streamlined.</p><p>I’ve had the <a href="https://www.tomsguide.com/computing/macos/the-macos-golden-gate-developer-beta-is-live-heres-how-to-download-it">developer beta of macOS Golden Gate</a> installed for a month, with the latest version close to what the public beta is offering. While the beta is still very much a work in progress, I’ve had a smooth time using it and testing out its new features.</p><p>If you’re signed into the (free) <a href="https://beta.apple.com/" target="_blank">Apple beta software program</a>, you can try the public beta of macOS Golden Gate right now. Here are my thoughts on the beta and the key features worth checking out.</p><h3 class="article-body__section" id="section-macos-golden-gate-public-beta-hands-on-supported-macs"><span>macOS Golden Gate public beta hands-on: Supported Macs</span></h3><p>The Intel era is over, as macOS Golden Gate doesn’t run on those older machines. Here is a complete list of Macs that support Golden Gate.</p><ul><li><strong>MacBook Neo (2026)</strong></li><li><strong>MacBook Air with Apple silicon (2020 and later)</strong></li><li><strong>MacBook Pro with Apple silicon (2020 and later)</strong></li><li><strong>iMac with Apple silicon (2021 and later)</strong></li><li><strong>Mac mini with Apple silicon (2020 and later)</strong></li><li><strong>Mac Studio with Apple silicon (2022 and later)</strong></li><li><strong>Mac Pro with Apple silicon (2023 and later)</strong></li></ul><h3 class="article-body__section" id="section-macos-golden-gate-public-beta-hands-on-features"><span>macOS Golden Gate public beta hands-on: Features</span></h3><p>Most of macOS Golden Gate’s new features center around updated versions of Siri and Apple Intelligence. These are the ones that have stood out the most during my testing.</p><h2 id="siri-ai">Siri AI</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3777px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="RJQ9US5qZUL5xu3z9FTSpn" name="macOS 27 Golden Gate Siri AI-5" alt="Siri AI on macOS 27" src="https://cdn.mos.cms.futurecdn.net/RJQ9US5qZUL5xu3z9FTSpn.jpg" mos="" align="middle" fullscreen="" width="3777" height="2125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>There is now a dedicated <a href="https://www.tomsguide.com/ai/apple-intelligence/i-spent-48-hours-with-siri-ai-on-macos-golden-gate-heres-what-i-like-and-what-i-dont">Siri AI app for macOS Golden Gate</a> that functions similarly to chatbots like ChatGPT and <a href="https://www.tomsguide.com/ai/google-gemini/google-gemini-everything-you-need-to-know">Google Gemini</a>. This app is also available on <a href="https://www.tomsguide.com/computing/vr-ar/ipados-27-everything-coming-to-the-apples-beloved-tablets">iPadOS 27</a> and <a href="https://www.tomsguide.com/phones/iphones/ios-27-11-biggest-features-coming-to-your-iphone">iOS 27,</a> and is arguably the biggest new feature for the Apple devices that support it.</p><p>You can access the Siri AI app either by clicking it in the Dock or in the Menu bar. You can also bring it up by pulling up Spotlight. Doing this brings up a dedicated chat window where you can ask Siri AI questions or just talk to it about whatever’s on your mind. Again, this functions exactly like the chatbots you’re already familiar with.</p><p>And since Siri AI is now baked into the operating system, it can do more than just chat. For example, if you’re looking at a schedule, you’ll see an “add to calendar” button appear. I’ve even had this happen when I suggest a date/time to meet with friends. When you right-click on folders, files, or apps, you’ll often see an “Ask Siri” option at the very top, where you can begin asking questions about whatever you’re highlighting.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5184px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="zW8Y5gvHBBuuUMEQHd93FL" name="macOS 27 Golden Gate Siri AI-LIST2" alt="Siri AI on macOS 27" src="https://cdn.mos.cms.futurecdn.net/zW8Y5gvHBBuuUMEQHd93FL.jpg" mos="" align="middle" fullscreen="" width="5184" height="2916" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>You can even create Shortcuts by typing or speaking what you want instead of manually building complications. While I wouldn’t call this vibe coding, it can feel that way since you’re using natural language.</p><p>For those in the Apple ecosystem, Siri AI can be more useful than other chatbots because it’s integrated into the system. However, third-party integrations are still a work in progress, so Siri AI’s usability for you might be limited if you use Google apps like Gmail, since Siri AI doesn’t work with them (yet).</p><h2 id="liquid-glass-slider">Liquid Glass slider</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="kbVSEAeYD7AF3N9vqnbxhG" name="macOS 27 liquid glass slider" alt="macOS 27 Liquid Glass" src="https://cdn.mos.cms.futurecdn.net/kbVSEAeYD7AF3N9vqnbxhG.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide / Apple)</span></figcaption></figure><p>If you’re not a fan of the <a href="https://www.tomsguide.com/phones/iphones/ios-26s-liquid-glass-design-brings-big-changes-to-your-iphone-heres-everything-coming-in-the-public-beta">Liquid Glass UI</a>, you’ll be happy to know there’s now a slider to adjust its opacity. It lets you dial the effect up or down to your liking, and I’m surprised it took this long to implement it this way.</p><p>Beyond the slider, you’ll notice that more complex background visuals appear more diffused, which improves text readability (which was a big issue for some). The edges of icons are also more pronounced, so they stand out more from the background. All app windows now have a uniform corner radius to help them pop out as well.</p><p>I've never had a problem with Liquid Glass because I think it’s an interesting visual effect. That said, I’m glad that folks can now fine-tune it to their liking. The slider is especially neat because it’s easy to use and makes it clear how much of a difference there is when you go from one extreme to the other.</p><h2 id="spatial-reframing">Spatial Reframing</h2><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/2vyL4w3WxVGjQJPBPpoqq5.jpg" alt="MacBook Air M5" /><figcaption><small role="credit">Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/vUC8TZ34UKYuqHaQC7jN6R.jpg" alt="MacBook Air M5" /><figcaption>A MacBook Air after Reframe<small role="credit">Tom's Guide</small></figcaption></figure></figure><p>Spatial Reframing isn’t exclusive to macOS Golden Gate, but since the <a href="https://www.tomsguide.com/phones/iphones/apples-ai-powered-spatial-reframing-tool-just-stole-the-show-at-wwdc"><u>Reframe tool stole the show at WWDC</u></a>, it’s a feature worth spotlighting if you take a lot of photos.</p><p>As its name suggests, Reframe lets you reframe existing photos and adjust the perspective to your liking. This can be especially handy if you need to take photos in a hurry, as you can come back to them later to fix them.</p><p>After you select Reframe in the new Tools option in Photos’ editing mode, Apple Intelligence scans the photo you’ve selected. After that, you can pull your finger across the touchpad to change the perspective. Sliders on the side also give you more precise control over the angle, orientation, or size. When you’re done, the AI shifts things around to fill in any blanks.</p><p>This isn’t a feature I use often since I like photos in their original form, even if they’re not perfect. That said, I can’t knock the results, as Reframe does an excellent job of living up to its name. And to be fair, the changes made don’t radically alter the image — you just get a better version of what you’ve already snapped.</p><h3 class="article-body__section" id="section-macos-golden-gate-public-beta-hands-on-outlook"><span>macOS Golden Gate public beta hands-on: Outlook</span></h3><p>Apple Intelligence didn’t live up to the hype after it was first announced, but it’s now living up to its potential on Macs and the other Apple devices it can run on. If you’re a big AI user already, then macOS Golden Gate could arguably be a significant update. I imagine Siri AI will only improve between now and the OS’ expected fall launch.</p><p>Other features such as the more customizable Liquid Glass UI and Spatial Reframing might not be monumental game-changers, but they’re nice additions regardless. Apple also said there’s improved performance on devices using the upcoming operating systems, but during my time with macOS Golden Gate, I haven’t seen any noticeable improvements or hiccups on that front.</p><p>Apple’s new operating systems are still being worked on, so things could change before the official launch. I’ll have a full review for you then, but based on my experience with macOS Golden Gate, I’ll say that the new features are a step in the right direction.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/apple-intelligence/the-apple-car-development-may-not-have-been-as-big-a-waste-of-time-and-money-as-everyone-thought-in-fact-it-may-be-the-thing-that-enabled-apples-new-ai-boom">The Apple Car development may not have been a waste of time</a></li><li><a href="https://www.tomsguide.com/phones/iphones/7-hidden-ios-27-features-apple-didnt-tell-you-about-at-wwdc">7 hidden iOS 27 features Apple didn't tell you about</a></li><li><a href="https://www.tomsguide.com/ai/the-4-biggest-allegations-in-apples-lawsuit-against-openai">The 4 biggest allegations in Apple's lawsuit against OpenAI</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Microsoft extends Windows 10 support for another year: what you need to know ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Good news for those of you who have yet to upgrade to Windows 11: You're going to get another year of reprieve.</p><p>Microsoft officially <a href="https://www.tomsguide.com/news/live/windows-10-end-of-support-2025">ended support for Windows 10</a> in October 2025, but you could sign up for the Extended Security Update (ESU) program, which will keep support going through October 13,  2026. </p><p>At that point, support was going to be cut off for good. However, that's changed thanks to a <a href="https://www.microsoft.com/en-gb/windows/extended-security-updates?r=1" target="_blank">quiet change Microsoft introduced</a> this week and spotted by <a href="https://www.gsmarena.com/microsoft_quietly_extends_windows_10_support_for_another_year-news-73453.php" target="_blank">GSMArena</a>. The new end date has been extended to October 12, 2027. </p><h2 id="ram-crisis-relief">RAM crisis relief</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="DucJVEzwF4KJNbcg2WW9PJ" name="RAM" alt="RAM" src="https://cdn.mos.cms.futurecdn.net/DucJVEzwF4KJNbcg2WW9PJ.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: fabrikasimf / Freepik)</span></figcaption></figure><p>I can't find anything beyond the FAQ page, but Microsoft hasn't really promoted this update. The company is desparate for people to upgrade to Windows 11, something users have avoided because of <a href="https://www.tomsguide.com/computing/windows-operating-systems/we-need-to-improve-windows-in-ways-that-are-meaningful-for-people-microsoft-is-urgently-trying-to-fix-windows-11-issues">core problems with the operating system</a>.</p><p>Still, this is extra breathing room for people who haven't upgraded. Plus, it alleviates the need to purchase a new laptop, just as every tech company is raising prices due to the <a href="https://www.tomsguide.com/computing/hardware/the-squeeze-is-real-i-spoke-to-ram-crisis-oracle-carmen-li-about-when-this-nightmare-ends-heres-what-she-told-me">ongoing memory shortage</a>.</p><p>PC makers have been <a href="https://www.tomsguide.com/computing/lenovo-is-planning-another-pc-price-hike-in-march-and-im-all-out-of-patience-with-this-ai-bubble">ringing the warning bell</a> since early 2026, with <a href="https://www.tomsguide.com/computing/buy-it-as-soon-as-you-can-lenovo-issues-urgent-warning-on-ram-crisis-spiking-prices">Lenovo saying "Buy it soon as you can"</a> in February.</p><p><a href="https://www.tomsguide.com/computing/macbooks/apple-price-hikes-are-official-heres-how-much-more-youll-pay-for-macbooks-and-ipads-now">Apple just raised prices</a> on its laptops and <a href="https://www.tomsguide.com/gaming/xbox/microsoft-blames-components-crisis-for-rising-xbox-prices-amidst-ai-greed-which-has-been-partly-caused-by-microsoft">Microsoft hiked Xbox console prices</a> for the third time in a year while blaming the memory shortage this week.</p><p>With purchasing power becoming untenable, even a year is a nice break.</p><h2 id="how-to-sign-up-for-the-esu">How to sign up for the ESU</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4642px;"><p class="vanilla-image-block" style="padding-top:62.32%;"><img id="fF7acrg8AUVF4uUadMVr69" name="Windows 10.jpg" alt="Windows 10" src="https://cdn.mos.cms.futurecdn.net/fF7acrg8AUVF4uUadMVr69.jpg" mos="" align="middle" fullscreen="" width="4642" height="2893" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>To sign up for the ESU program, <strong>your device needs to run Windows 10, version 22H2</strong> Home, Professional, Pro Education or Workstations edition.  It also needs to have the latest Windows update installed.</p><p>You need to have a Microsoft account that is an administrator.</p><p><strong>There's</strong> <strong>no cost if you sync your PC settings</strong>. You can also redeem 1,000 Microsoft Rewards points or make a one-time $30 purchase. </p><p>To get the ESU running you can go to Settings > Update & Security > Windows Update. If you meet the requirements you should see an Enroll Now button for ESU. </p><p>You can extend the ESU license on up to 10 devices. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/xbox/microsoft-blames-components-crisis-for-rising-xbox-prices-amidst-ai-greed-which-has-been-partly-caused-by-microsoft">Microsoft blames "components crisis" for rising Xbox prices amidst AI greed, which was partly caused by...Microsoft?</a></li><li><a href="https://www.tomsguide.com/ai/nvidia-claims-its-new-ai-data-centers-use-almost-no-water-heres-what-that-actually-means">NVIDIA claims its new AI data centers use almost no water — here's what that actually means</a></li><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/here-are-some-way-too-early-windows-12-predictions-based-on-how-microsoft-is-changing-windows-11">Here are some way-too-early Windows 12 predictions based on how Microsoft is changing Windows 11</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/windows-operating-systems/microsoft-extends-windows-10-support-for-another-year-what-you-need-to-know</link>
                                                                            <description>
                            <![CDATA[ Windows 10 support was supposed to end for good this year, but Microsoft quietly extended it for at least one more. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">XEwdeuuKYAKACuF84UZoJX</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/qNMZdaX6mztsXXhqkDijd3-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 26 Jun 2026 21:19:43 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Windows Operating Systems]]></category>
                                                    <category><![CDATA[Computing Peripherals]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                                                                <author><![CDATA[ scott.younker@futurenet.com (Scott Younker) ]]></author>                    <dc:creator><![CDATA[ Scott Younker ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/RZsUpqcJ6Uj2q83oCUwNhQ.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Scott Younker is the West Coast Reporter at Tom’s Guide. He covers all the latest tech news, including phones, computing and more. He’s been involved in tech since 2011 covering everything from cameras and swimming pool equipment to the latest gaming consoles and smart TVs. He is on a seemingly never ending hunt to build the easiest to use home media system. &lt;/p&gt;&lt;p&gt;Before Tom’s Guide, Scott worked for publications like &lt;em&gt;Digital Trends, Outdoor Photographer, Dead Beats Panel&lt;/em&gt;, and in a brief detour, &lt;em&gt;America’s Funniest Home Videos&lt;/em&gt;. Yes, he has seen more pratfalls, silly pets and ridiculous home movie fails than is reasonably healthy. &lt;/p&gt;&lt;p&gt;When not writing about the latest devices or advances in chipsets, be sure to ask about Scott about disc golf and sustainability, or just if you’re being cheeky, ask about his noodle arm. If you truly want to get nerdy, bring up board games and his ongoing losing streak. &lt;/p&gt;&lt;p&gt;Scott joined Tom&#039;s Guide in 2024 as the West Coast Reporter. He graduated from the School of Journalism at the University of Oregon with a degree in magazine journalism and a minor in communications. While there he blogged or wrote for several magazines including the Fluxx, Ethos and the Oregon Commentator. He briefly wrote and managed a moderately successful blog focused on web comics. &lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/qNMZdaX6mztsXXhqkDijd3-1280-80.jpg">
                                                            <media:credit><![CDATA[Shuttershock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[How to update Windows 10 ]]></media:description>                                                            <media:text><![CDATA[How to update Windows 10 ]]></media:text>
                                <media:title type="plain"><![CDATA[How to update Windows 10 ]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/qNMZdaX6mztsXXhqkDijd3-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Good news for those of you who have yet to upgrade to Windows 11: You're going to get another year of reprieve.</p><p>Microsoft officially <a href="https://www.tomsguide.com/news/live/windows-10-end-of-support-2025">ended support for Windows 10</a> in October 2025, but you could sign up for the Extended Security Update (ESU) program, which will keep support going through October 13,  2026. </p><p>At that point, support was going to be cut off for good. However, that's changed thanks to a <a href="https://www.microsoft.com/en-gb/windows/extended-security-updates?r=1" target="_blank">quiet change Microsoft introduced</a> this week and spotted by <a href="https://www.gsmarena.com/microsoft_quietly_extends_windows_10_support_for_another_year-news-73453.php" target="_blank">GSMArena</a>. The new end date has been extended to October 12, 2027. </p><h2 id="ram-crisis-relief">RAM crisis relief</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="DucJVEzwF4KJNbcg2WW9PJ" name="RAM" alt="RAM" src="https://cdn.mos.cms.futurecdn.net/DucJVEzwF4KJNbcg2WW9PJ.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: fabrikasimf / Freepik)</span></figcaption></figure><p>I can't find anything beyond the FAQ page, but Microsoft hasn't really promoted this update. The company is desparate for people to upgrade to Windows 11, something users have avoided because of <a href="https://www.tomsguide.com/computing/windows-operating-systems/we-need-to-improve-windows-in-ways-that-are-meaningful-for-people-microsoft-is-urgently-trying-to-fix-windows-11-issues">core problems with the operating system</a>.</p><p>Still, this is extra breathing room for people who haven't upgraded. Plus, it alleviates the need to purchase a new laptop, just as every tech company is raising prices due to the <a href="https://www.tomsguide.com/computing/hardware/the-squeeze-is-real-i-spoke-to-ram-crisis-oracle-carmen-li-about-when-this-nightmare-ends-heres-what-she-told-me">ongoing memory shortage</a>.</p><p>PC makers have been <a href="https://www.tomsguide.com/computing/lenovo-is-planning-another-pc-price-hike-in-march-and-im-all-out-of-patience-with-this-ai-bubble">ringing the warning bell</a> since early 2026, with <a href="https://www.tomsguide.com/computing/buy-it-as-soon-as-you-can-lenovo-issues-urgent-warning-on-ram-crisis-spiking-prices">Lenovo saying "Buy it soon as you can"</a> in February.</p><p><a href="https://www.tomsguide.com/computing/macbooks/apple-price-hikes-are-official-heres-how-much-more-youll-pay-for-macbooks-and-ipads-now">Apple just raised prices</a> on its laptops and <a href="https://www.tomsguide.com/gaming/xbox/microsoft-blames-components-crisis-for-rising-xbox-prices-amidst-ai-greed-which-has-been-partly-caused-by-microsoft">Microsoft hiked Xbox console prices</a> for the third time in a year while blaming the memory shortage this week.</p><p>With purchasing power becoming untenable, even a year is a nice break.</p><h2 id="how-to-sign-up-for-the-esu">How to sign up for the ESU</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4642px;"><p class="vanilla-image-block" style="padding-top:62.32%;"><img id="fF7acrg8AUVF4uUadMVr69" name="Windows 10.jpg" alt="Windows 10" src="https://cdn.mos.cms.futurecdn.net/fF7acrg8AUVF4uUadMVr69.jpg" mos="" align="middle" fullscreen="" width="4642" height="2893" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>To sign up for the ESU program, <strong>your device needs to run Windows 10, version 22H2</strong> Home, Professional, Pro Education or Workstations edition.  It also needs to have the latest Windows update installed.</p><p>You need to have a Microsoft account that is an administrator.</p><p><strong>There's</strong> <strong>no cost if you sync your PC settings</strong>. You can also redeem 1,000 Microsoft Rewards points or make a one-time $30 purchase. </p><p>To get the ESU running you can go to Settings > Update & Security > Windows Update. If you meet the requirements you should see an Enroll Now button for ESU. </p><p>You can extend the ESU license on up to 10 devices. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/xbox/microsoft-blames-components-crisis-for-rising-xbox-prices-amidst-ai-greed-which-has-been-partly-caused-by-microsoft">Microsoft blames "components crisis" for rising Xbox prices amidst AI greed, which was partly caused by...Microsoft?</a></li><li><a href="https://www.tomsguide.com/ai/nvidia-claims-its-new-ai-data-centers-use-almost-no-water-heres-what-that-actually-means">NVIDIA claims its new AI data centers use almost no water — here's what that actually means</a></li><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/here-are-some-way-too-early-windows-12-predictions-based-on-how-microsoft-is-changing-windows-11">Here are some way-too-early Windows 12 predictions based on how Microsoft is changing Windows 11</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Here are some way-too-early Windows 12 predictions based on how Microsoft is changing Windows 11 ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Now that <a href="https://www.tomsguide.com/news/live/microsoft-build-2026">Microsoft Build 2026</a> is in the rearview, we have a much clearer picture of the <a href="https://www.tomsguide.com/computing/windows-operating-systems/the-future-of-windows-11-what-is-microsoft-building-next">future of Windows 11</a>. Agentic AI systems! Smart work ID badges! Always-on personal assistants! The path ahead for Microsoft’s current operating system will clearly feature AI in some form or fashion at every turn. But what about <a href="https://www.tomsguide.com/news/windows-12">Windows 12</a>?</p><p>Though it wasn’t a surprise that Microsoft didn’t announce its next OS during this year's Build keynote, we’d be amazed if work on Windows 12 hasn’t been motoring away in the background for quite some time over in Redmond. As such, we thought now would be an opportune time to speculate on a platform that will likely usher in a new era of AI integration. </p><p>Whether dealing with the petaflop power of the Surface RTX Spark Dev Box or the potentially paradigm-shifting Project Solara, AI agents will be run both locally and through the cloud to forge next-level hybrid computing on Windows 12. </p><p>But it’s not all about AI with our predictions for an OS we’re expecting in the not-too-distant future. The future of Xbox could also be intrinsically tied to Windows 12. With <a href="https://www.tomsguide.com/gaming/xbox/all-windows-based-handheld-gaming-consoles-are-getting-the-xbox-full-screen-experience-what-you-need-to-know">Xbox Mode continuing to bloom on Windows 11</a>, don’t be surprised if Microsoft commits hard to PC gaming going forward, with more focus on creating a UI that can truly compete with Steam. </p><p>Without further ado, let’s get into some Windows 12 predictions, even if it does seem ludicrously early to be making them.</p><h2 id="windows-12-will-be-all-about-ai">Windows 12 will be all about AI</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="dMwUdeVcgTcgchLUnQgpQ3" name="Microsoft Surface Laptop (2026)-5" alt="Microsoft Surface Laptop 8" src="https://cdn.mos.cms.futurecdn.net/dMwUdeVcgTcgchLUnQgpQ3.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Forget Copilot. The level of AI integration Windows 12 is going to embrace will be far more impactful than asking a digital assistant what the weather will be in a couple of hours. Microsoft’s new OS will have AI baked into its very core, with agentic systems that exhibit real autonomy handling the jobs you’d previously have done with apps. </p><p>This year’s Build made it clear that <a href="https://www.tomsguide.com/ai/a-guide-to-agentic-ai-how-windows-is-going-to-do-more-things-for-you">AI agents are a huge priority for Microsoft</a>. As much as they’re shaping the future of your current OS, the use of agentic systems will likely leap to a new level with Windows 12. </p><p>Just take <a href="https://www.microsoft.com/en-us/microsoft-365/blog/2026/06/02/introducing-microsoft-scout-your-always-on-personal-agent/">Microsoft Scout</a>. This new Autopilot AI agent acts as an always-on personal agent. Rather than needing to be prompted like Copilot, Scout uses the MAI-Thinking-1 reasoning model to act autonomously. As such, it learns how you work over time, quickly becoming aware of your routines in order to better service your needs on any given day. </p><p>By the time Windows 12 launches, Scout and similar agentic systems will have had plenty of time to percolate. When Microsoft’s next OS is out in the wild, we could be looking at a platform where AI runs far deeper than mere surface-level window dressing. The days of manually setting meetings or switching between spreadsheets and emails could be over, as AI agents like Scout take control of your workflow, autonomously handling tasks so that you can fully focus on the most important aspects of your job. </p><p>Essentially, Windows 12 is going to be an AI OS, one that could potentially transform the way you work. </p><h2 id="hybrid-computing-will-be-central-to-windows-12">Hybrid computing will be central to Windows 12</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1200px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="B7VDkWBHZGqQNifR89nryg" name="Project-Solara (credit Microsoft)" alt="Microsoft Build press images" src="https://cdn.mos.cms.futurecdn.net/B7VDkWBHZGqQNifR89nryg.jpg" mos="" align="middle" fullscreen="" width="1200" height="675" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft)</span></figcaption></figure><p>The era of AI PCs has been around for a while now, yet it looks like Windows 12 could fully realize the potential of AI, in part, by turning the focus more heavily on hybrid computing. In this future of Jaws 19, hoverboards and flying Deloreans, users won’t need to worry about whether tasks are running on their NPU, CPU or GPU. Instead, Windows 12’s AI-influenced OS will autonomously figure out where workloads should be handled. </p><p>This isn’t about Microsoft pitting cloud AI and local AI against each other. The future we envisage for Windows 12 is where hybrid workflows are commonplace, with AI agents running locally on the systems like the Spark Dev Box (which we’ll touch on shortly) and through the cloud, too. </p><p>Ideally, users won’t even know where tasks are running. Less demanding AI tasks may operate locally, while heavy duty rendering could be split up between hardware and cloud-based infrastructures. If Windows 12 fully embraces the concept of hybrid computing, the end result will hopefully be an OS that balances performance more efficiently, as tasks run discretely across local hardware and the cloud.</p><h2 id="ai-agents-will-replace-apps">AI agents will replace apps</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1200px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="YsPaUc5ean2R2rGU87rDrg" name="Project-Solara-1" alt="Microsoft Build press images" src="https://cdn.mos.cms.futurecdn.net/YsPaUc5ean2R2rGU87rDrg.jpg" mos="" align="middle" fullscreen="" width="1200" height="675" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft)</span></figcaption></figure><p>Much of the focus of this year’s Build centered around agentic systems. AI agents aren’t just the future of Windows, they’re the here and now. We’ve already touched on Microsoft Spark being rolled out to Frontier customers, and before too long <a href="https://commandline.microsoft.com/project-solara-build-2026/">Project Solara</a> will be upon this. </p><p>Built from the ground up on a Microsoft-tailored Android platform, the focus for Solara is on AI agents, not apps. Indeed, Solara seems keen to move away from traditional Windows hardware, instead taking the forms of a smart clock-like device and a work ID badge. The latter has been designed to assist users on the go, and it’s capable of recording notes before using AI to clean up audio that can then be sent to colleagues. It potentially represents a future of computing where you no longer need to be chained to a laptop to get work done. </p><p>Microsoft is clearly betting the farm on AI, and it’s entirely possible Windows 12 will be a heavily AI-assisted OS. Unlike past operating systems, AI agents will have far more importance than old-school apps. In this (potentially soon to be realized) future, your day will no longer be taken up by sifting through emails and spreadsheets. Rather, agentic systems will act as personal AI assistants, acting autonomously as they help declutter your workday to help you complete tasks more effortlessly and efficiently. </p><h2 id="windows-12-will-light-the-spark">Windows 12 will light the Spark</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1200px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="rPdwCgeWPVoHuMhfpUNv5h" name="Microsoft-Build-2026 (credit Microsoft)" alt="Microsoft Build press images" src="https://cdn.mos.cms.futurecdn.net/rPdwCgeWPVoHuMhfpUNv5h.jpg" mos="" align="middle" fullscreen="" width="1200" height="675" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft)</span></figcaption></figure><p>There’s a line of thinking that’s easy to buy into following Microsoft's Build keynote: Windows 12 will be a “dev-first” OS. Now, Redmond isn’t suddenly going to forget regular consumers. But looking forward, it’s hard not to see the Big M being more focused on servicing developers' needs than at any other point in its history.</p><p>Enter the <a href="https://blogs.windows.com/devices/2026/06/02/building-the-next-generation-of-devices-for-developers-surface-rtx-spark-dev-box/">Surface RTX Spark Dev Box</a>. Initially shipping as a Windows 11 Pro mini PC that’s built around the Nvidia RTX Spark superchip, there’s no question more enhanced versions of this little rig will support Windows 12 in the future. Designed to support locally-based AI development, this is a box that has been built to service agentic workflows that eat up huge compute costs. Thankfully, the numbers suggest the Spark Dev Box will be more than capable of handling such tasks, as this dev-focused mini marvel gives users up to an astonishing 1 petaflop of AI compute and 128GB of unified memory. </p><p>Rocking the power of a combined Nvidia Blackwell RTX GPU and Nvidia Grace CPU, the Spark Dev Box can power 120B+ parameter models locally. And that last word really is key. Spark has been designed to service the most demanding<em> local</em> AI tasks, in turn taking the focus away from cloud-based AI pipelines. Spark feels like a test run for what the future of high-end Windows 12 devices will look like: a workstation where the emphasis is on locally supporting AI agents to give developers more control.</p><h2 id="xbox-mode-could-change-the-game">Xbox Mode could change the game</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:832px;"><p class="vanilla-image-block" style="padding-top:56.61%;"><img id="YdX6MSjaSYxj7PKuhgJzwN" name="Screenshot 2026-05-20 155209" alt="xbox" src="https://cdn.mos.cms.futurecdn.net/YdX6MSjaSYxj7PKuhgJzwN.png" mos="" align="middle" fullscreen="" width="832" height="471" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p>Microsoft didn’t shine any light on its gaming endeavors during the dev-focused Build keynote, and that wasn’t a surprise. That doesn’t mean there aren’t big plans for the future of Xbox, particularly with how it ties into Windows 12 going forward. </p><p>With Phil Spencer gone, replaced by new Head of Xbox Asha Sharma, don’t be shocked if Microsoft’s gaming division goes through big changes in the next couple of years. We’ve known about <a href="https://www.tomsguide.com/gaming/xbox/microsoft-reveals-new-details-on-its-project-helix-pc-console-hybrid-heres-all-the-latest-on-the-next-xbox">Project Helix</a> for ages at this point. And with the next Xbox promising to bridge the gap between consoles and PCs like never before, how Windows 12 handles Microsoft games may look quite different to the way Windows 11 currently deals with Xbox titles.</p><p><a href="https://www.tomsguide.com/gaming/xbox/all-windows-based-handheld-gaming-consoles-are-getting-the-xbox-full-screen-experience-what-you-need-to-know">Xbox Full Screen Mode</a> rolled out on Windows not too long ago, giving gamers an experience that’s more in line with Steam’s Big Picture. As Xbox integration continues to evolve, it would make sense for Microsoft to double down on providing a more console-like OS for next-gen games. </p><p>As for what Xbox Mode on Windows 12 could look like, there’s a reasonable chance we could see a gaming-focused app that’s more deeply integrated with Microsoft’s next OS. Imagine a more streamlined platform that you could boot directly into as soon as you fire up your PC. One that uses fewer Windows background processes to provide an experience that’s every bit as seamless as Steam. </p><p>It seems clear the future of Xbox is more deeply tied to Windows than ever before. As rumors swirl suggesting Sony could soon stop releasing PS5 games on PC, next-gen Xbox titles could provide the most premium console-like experience on Windows 12.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/im-a-windows-user-and-these-are-5-upgrades-i-want-from-windows-12">I’m a Windows user — and these are 5 upgrades I want from Windows 12</a></li><li><a href="https://www.tomsguide.com/best-picks/best-computers">The 7 best computers in 2026: tested by experts</a></li><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/15-top-windows-11-tips-everyone-needs-to-know">15 top Windows 11 tips everyone needs to know</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/windows-operating-systems/here-are-some-way-too-early-windows-12-predictions-based-on-how-microsoft-is-changing-windows-11</link>
                                                                            <description>
                            <![CDATA[ We might not see Windows 12 for a good while yet, but in the wake of Microsoft Build 2026, now seems like an ideal time to start speculating on Microsoft’s next OS. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">8VCE6ThwdjPdQXQLKCKEE7</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/43feUogzceEtWd5Y4KTf7e-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sun, 21 Jun 2026 05:15:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Windows Operating Systems]]></category>
                                                    <category><![CDATA[Computing Peripherals]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                                                                <author><![CDATA[ dave.meikleham@futurenet.com (Dave Meikleham) ]]></author>                    <dc:creator><![CDATA[ Dave Meikleham ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/Rda8e7jGfyTdZLWYJQQ8VY.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Dave is a computing editor at Tom’s Guide and covers everything from cutting-edge laptops, the latest GPU tech, to ultrawide monitors. When he’s not worrying about dead pixels, Dave enjoys regularly rebuilding his PC for absolutely no reason at all. He built his first rig over 20 years ago, and he’s gone through more motherboards than he’s had hot dinners. Probably. &lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;In a previous life, he worked as a video game journalist during a career spanning the best part of two decades. Over that time he worked across both online and print, with bylines for GamesRadar+, PC Gamer, TechRadar, Edge and the Official UK PlayStation Magazine. He’s almost amassed an immeasurable amount of bad puns.&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;An avid PC and console gamer, Dave enjoys breaking out Fraps way too often as he obsesses over frame rates. Despite owning a graphics card that costs roughly the same as your average used car, he still enjoys gaming on the go and is regularly glued to his Switch. Away from tech, most of Dave’s time is taken up by walking his husky, obsessing about his various OLED displays and sweating over the fitness of half a dozen Arsenal players on any given week.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/43feUogzceEtWd5Y4KTf7e-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[How to disable the Windows key]]></media:description>                                                            <media:text><![CDATA[How to disable the Windows key]]></media:text>
                                <media:title type="plain"><![CDATA[How to disable the Windows key]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/43feUogzceEtWd5Y4KTf7e-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Now that <a href="https://www.tomsguide.com/news/live/microsoft-build-2026">Microsoft Build 2026</a> is in the rearview, we have a much clearer picture of the <a href="https://www.tomsguide.com/computing/windows-operating-systems/the-future-of-windows-11-what-is-microsoft-building-next">future of Windows 11</a>. Agentic AI systems! Smart work ID badges! Always-on personal assistants! The path ahead for Microsoft’s current operating system will clearly feature AI in some form or fashion at every turn. But what about <a href="https://www.tomsguide.com/news/windows-12">Windows 12</a>?</p><p>Though it wasn’t a surprise that Microsoft didn’t announce its next OS during this year's Build keynote, we’d be amazed if work on Windows 12 hasn’t been motoring away in the background for quite some time over in Redmond. As such, we thought now would be an opportune time to speculate on a platform that will likely usher in a new era of AI integration. </p><p>Whether dealing with the petaflop power of the Surface RTX Spark Dev Box or the potentially paradigm-shifting Project Solara, AI agents will be run both locally and through the cloud to forge next-level hybrid computing on Windows 12. </p><p>But it’s not all about AI with our predictions for an OS we’re expecting in the not-too-distant future. The future of Xbox could also be intrinsically tied to Windows 12. With <a href="https://www.tomsguide.com/gaming/xbox/all-windows-based-handheld-gaming-consoles-are-getting-the-xbox-full-screen-experience-what-you-need-to-know">Xbox Mode continuing to bloom on Windows 11</a>, don’t be surprised if Microsoft commits hard to PC gaming going forward, with more focus on creating a UI that can truly compete with Steam. </p><p>Without further ado, let’s get into some Windows 12 predictions, even if it does seem ludicrously early to be making them.</p><h2 id="windows-12-will-be-all-about-ai">Windows 12 will be all about AI</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="dMwUdeVcgTcgchLUnQgpQ3" name="Microsoft Surface Laptop (2026)-5" alt="Microsoft Surface Laptop 8" src="https://cdn.mos.cms.futurecdn.net/dMwUdeVcgTcgchLUnQgpQ3.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Forget Copilot. The level of AI integration Windows 12 is going to embrace will be far more impactful than asking a digital assistant what the weather will be in a couple of hours. Microsoft’s new OS will have AI baked into its very core, with agentic systems that exhibit real autonomy handling the jobs you’d previously have done with apps. </p><p>This year’s Build made it clear that <a href="https://www.tomsguide.com/ai/a-guide-to-agentic-ai-how-windows-is-going-to-do-more-things-for-you">AI agents are a huge priority for Microsoft</a>. As much as they’re shaping the future of your current OS, the use of agentic systems will likely leap to a new level with Windows 12. </p><p>Just take <a href="https://www.microsoft.com/en-us/microsoft-365/blog/2026/06/02/introducing-microsoft-scout-your-always-on-personal-agent/">Microsoft Scout</a>. This new Autopilot AI agent acts as an always-on personal agent. Rather than needing to be prompted like Copilot, Scout uses the MAI-Thinking-1 reasoning model to act autonomously. As such, it learns how you work over time, quickly becoming aware of your routines in order to better service your needs on any given day. </p><p>By the time Windows 12 launches, Scout and similar agentic systems will have had plenty of time to percolate. When Microsoft’s next OS is out in the wild, we could be looking at a platform where AI runs far deeper than mere surface-level window dressing. The days of manually setting meetings or switching between spreadsheets and emails could be over, as AI agents like Scout take control of your workflow, autonomously handling tasks so that you can fully focus on the most important aspects of your job. </p><p>Essentially, Windows 12 is going to be an AI OS, one that could potentially transform the way you work. </p><h2 id="hybrid-computing-will-be-central-to-windows-12">Hybrid computing will be central to Windows 12</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1200px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="B7VDkWBHZGqQNifR89nryg" name="Project-Solara (credit Microsoft)" alt="Microsoft Build press images" src="https://cdn.mos.cms.futurecdn.net/B7VDkWBHZGqQNifR89nryg.jpg" mos="" align="middle" fullscreen="" width="1200" height="675" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft)</span></figcaption></figure><p>The era of AI PCs has been around for a while now, yet it looks like Windows 12 could fully realize the potential of AI, in part, by turning the focus more heavily on hybrid computing. In this future of Jaws 19, hoverboards and flying Deloreans, users won’t need to worry about whether tasks are running on their NPU, CPU or GPU. Instead, Windows 12’s AI-influenced OS will autonomously figure out where workloads should be handled. </p><p>This isn’t about Microsoft pitting cloud AI and local AI against each other. The future we envisage for Windows 12 is where hybrid workflows are commonplace, with AI agents running locally on the systems like the Spark Dev Box (which we’ll touch on shortly) and through the cloud, too. </p><p>Ideally, users won’t even know where tasks are running. Less demanding AI tasks may operate locally, while heavy duty rendering could be split up between hardware and cloud-based infrastructures. If Windows 12 fully embraces the concept of hybrid computing, the end result will hopefully be an OS that balances performance more efficiently, as tasks run discretely across local hardware and the cloud.</p><h2 id="ai-agents-will-replace-apps">AI agents will replace apps</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1200px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="YsPaUc5ean2R2rGU87rDrg" name="Project-Solara-1" alt="Microsoft Build press images" src="https://cdn.mos.cms.futurecdn.net/YsPaUc5ean2R2rGU87rDrg.jpg" mos="" align="middle" fullscreen="" width="1200" height="675" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft)</span></figcaption></figure><p>Much of the focus of this year’s Build centered around agentic systems. AI agents aren’t just the future of Windows, they’re the here and now. We’ve already touched on Microsoft Spark being rolled out to Frontier customers, and before too long <a href="https://commandline.microsoft.com/project-solara-build-2026/">Project Solara</a> will be upon this. </p><p>Built from the ground up on a Microsoft-tailored Android platform, the focus for Solara is on AI agents, not apps. Indeed, Solara seems keen to move away from traditional Windows hardware, instead taking the forms of a smart clock-like device and a work ID badge. The latter has been designed to assist users on the go, and it’s capable of recording notes before using AI to clean up audio that can then be sent to colleagues. It potentially represents a future of computing where you no longer need to be chained to a laptop to get work done. </p><p>Microsoft is clearly betting the farm on AI, and it’s entirely possible Windows 12 will be a heavily AI-assisted OS. Unlike past operating systems, AI agents will have far more importance than old-school apps. In this (potentially soon to be realized) future, your day will no longer be taken up by sifting through emails and spreadsheets. Rather, agentic systems will act as personal AI assistants, acting autonomously as they help declutter your workday to help you complete tasks more effortlessly and efficiently. </p><h2 id="windows-12-will-light-the-spark">Windows 12 will light the Spark</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1200px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="rPdwCgeWPVoHuMhfpUNv5h" name="Microsoft-Build-2026 (credit Microsoft)" alt="Microsoft Build press images" src="https://cdn.mos.cms.futurecdn.net/rPdwCgeWPVoHuMhfpUNv5h.jpg" mos="" align="middle" fullscreen="" width="1200" height="675" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft)</span></figcaption></figure><p>There’s a line of thinking that’s easy to buy into following Microsoft's Build keynote: Windows 12 will be a “dev-first” OS. Now, Redmond isn’t suddenly going to forget regular consumers. But looking forward, it’s hard not to see the Big M being more focused on servicing developers' needs than at any other point in its history.</p><p>Enter the <a href="https://blogs.windows.com/devices/2026/06/02/building-the-next-generation-of-devices-for-developers-surface-rtx-spark-dev-box/">Surface RTX Spark Dev Box</a>. Initially shipping as a Windows 11 Pro mini PC that’s built around the Nvidia RTX Spark superchip, there’s no question more enhanced versions of this little rig will support Windows 12 in the future. Designed to support locally-based AI development, this is a box that has been built to service agentic workflows that eat up huge compute costs. Thankfully, the numbers suggest the Spark Dev Box will be more than capable of handling such tasks, as this dev-focused mini marvel gives users up to an astonishing 1 petaflop of AI compute and 128GB of unified memory. </p><p>Rocking the power of a combined Nvidia Blackwell RTX GPU and Nvidia Grace CPU, the Spark Dev Box can power 120B+ parameter models locally. And that last word really is key. Spark has been designed to service the most demanding<em> local</em> AI tasks, in turn taking the focus away from cloud-based AI pipelines. Spark feels like a test run for what the future of high-end Windows 12 devices will look like: a workstation where the emphasis is on locally supporting AI agents to give developers more control.</p><h2 id="xbox-mode-could-change-the-game">Xbox Mode could change the game</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:832px;"><p class="vanilla-image-block" style="padding-top:56.61%;"><img id="YdX6MSjaSYxj7PKuhgJzwN" name="Screenshot 2026-05-20 155209" alt="xbox" src="https://cdn.mos.cms.futurecdn.net/YdX6MSjaSYxj7PKuhgJzwN.png" mos="" align="middle" fullscreen="" width="832" height="471" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p>Microsoft didn’t shine any light on its gaming endeavors during the dev-focused Build keynote, and that wasn’t a surprise. That doesn’t mean there aren’t big plans for the future of Xbox, particularly with how it ties into Windows 12 going forward. </p><p>With Phil Spencer gone, replaced by new Head of Xbox Asha Sharma, don’t be shocked if Microsoft’s gaming division goes through big changes in the next couple of years. We’ve known about <a href="https://www.tomsguide.com/gaming/xbox/microsoft-reveals-new-details-on-its-project-helix-pc-console-hybrid-heres-all-the-latest-on-the-next-xbox">Project Helix</a> for ages at this point. And with the next Xbox promising to bridge the gap between consoles and PCs like never before, how Windows 12 handles Microsoft games may look quite different to the way Windows 11 currently deals with Xbox titles.</p><p><a href="https://www.tomsguide.com/gaming/xbox/all-windows-based-handheld-gaming-consoles-are-getting-the-xbox-full-screen-experience-what-you-need-to-know">Xbox Full Screen Mode</a> rolled out on Windows not too long ago, giving gamers an experience that’s more in line with Steam’s Big Picture. As Xbox integration continues to evolve, it would make sense for Microsoft to double down on providing a more console-like OS for next-gen games. </p><p>As for what Xbox Mode on Windows 12 could look like, there’s a reasonable chance we could see a gaming-focused app that’s more deeply integrated with Microsoft’s next OS. Imagine a more streamlined platform that you could boot directly into as soon as you fire up your PC. One that uses fewer Windows background processes to provide an experience that’s every bit as seamless as Steam. </p><p>It seems clear the future of Xbox is more deeply tied to Windows than ever before. As rumors swirl suggesting Sony could soon stop releasing PS5 games on PC, next-gen Xbox titles could provide the most premium console-like experience on Windows 12.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/im-a-windows-user-and-these-are-5-upgrades-i-want-from-windows-12">I’m a Windows user — and these are 5 upgrades I want from Windows 12</a></li><li><a href="https://www.tomsguide.com/best-picks/best-computers">The 7 best computers in 2026: tested by experts</a></li><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/15-top-windows-11-tips-everyone-needs-to-know">15 top Windows 11 tips everyone needs to know</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I just tested the macOS Golden Gate developer beta — here are my early thoughts ]]></title>
                                                                                                <dc:content><![CDATA[ <p>The macOS 27 or <a href="https://www.tomsguide.com/computing/macos/macos-27">macOS Golden Gate</a> developer beta is now live, and I’ve begun testing out some of the available features that this upcoming (and unfinished) operating system has to offer. </p><p>We don’t get a substantial update as we did with last year’s <a href="https://www.tomsguide.com/computing/macos/macos-26">macOS 26</a>. Instead, this year’s update is mostly focused on <a href="https://www.tomsguide.com/ai/apple-finally-fixed-siri-heres-all-the-features-for-the-new-siri-ai-announced-at-wwdc">Siri AI</a> and <a href="https://www.tomsguide.com/ai/apple-intelligence/apple-intelligence-finally-comes-into-its-own-but-wwdc-26-was-missing-something">Apple Intelligence</a>. While I’ve yet to try the former, the latter offers nifty tricks for Mac users to try out.</p><p>Keeping in mind that this is a developer beta and features are subject to change, here are my early thoughts on macOS Golden Gate and some features that stand out.</p><h2 id="spatial-reframing-2">Spatial Reframing</h2><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/2vyL4w3WxVGjQJPBPpoqq5.jpg" alt="MacBook Air M5" /><figcaption>A MacBook Air before Reframe<small role="credit">Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/vUC8TZ34UKYuqHaQC7jN6R.jpg" alt="MacBook Air M5" /><figcaption>A MacBook Air after Reframe<small role="credit">Tom's Guide</small></figcaption></figure></figure><p>The new <a href="https://www.tomsguide.com/phones/iphones/apples-ai-powered-spatial-reframing-tool-just-stole-the-show-at-wwdc">Reframe tool stole the show at WWDC</a>, and it’s a lot of fun to use. The feature is self-explanatory: you can take existing photos and adjust the perspective to your liking. Basically, if you’re not happy with a photo’s angle, you can change that.</p><p>After selecting Reframe in the new Tools option in Photos’ editing mode, the AI scans your photo. When that’s done, you can pull your finger across the touchpad to change the perspective. There are also sliders on the side if you prefer more precise control over the angle, orientation, or size. Once you’re happy with the result, the AI shifts things around to fill in any blanks.</p><p>While you can argue that you’re not seeing the real image after you’ve effectively doctored it, the result isn’t radically different from the original. If you don’t worry about getting a perfect picture the first time around, Reframe can definitely remove that stress since you can always come back to your photo later.</p><h2 id="liquid-glass-slider-2">Liquid Glass slider</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="kbVSEAeYD7AF3N9vqnbxhG" name="macOS 27 liquid glass slider" alt="macOS 27 Liquid Glass" src="https://cdn.mos.cms.futurecdn.net/kbVSEAeYD7AF3N9vqnbxhG.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide / Apple)</span></figcaption></figure><p>I didn’t mind the Liquid Glass UI as much as others, but it has certainly been a controversial element introduced to iPhones, iPads, and Macs with their respective updates last year. Now, Apple has updated Liquid Glass so you can tailor it to your liking.</p><p>For example, there’s a new preference slider that lets you dial in the exact intensity of the Liquid Glass effect. You can go from highly transparent to more opaque. More complex background visuals are more diffuse, increasing text readability. The edges of icons are more pronounced, so they stand out from the background, and all app windows now have a uniform corner radius.</p><p>As before, I don’t mind Liquid Glass, but the relatively subtle updates do help windows, icons, and text pop out more.</p><h2 id="siri-ai-on-mac">Siri AI on Mac</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="cFZGBBx3BSPBb2Us9ENxHK" name="Siri AI Mac" alt="Siri AI" src="https://cdn.mos.cms.futurecdn.net/cFZGBBx3BSPBb2Us9ENxHK.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>This feature isn’t available in the developer beta yet for me, but Siri AI on macOS 27 should be a pretty big deal. This is especially true if you’re used to using chatbots like ChatGPT or <a href="https://www.tomsguide.com/ai/google-gemini/google-gemini-everything-you-need-to-know">Google Gemini</a>, as Siri AI now functions like them.</p><p>As Mark Spoonauer said when he <a href="https://www.tomsguide.com/ai/apple-intelligence/i-just-saw-the-new-siri-ai-in-action-at-wwdc-heres-what-i-like-and-what-still-needs-work">saw the new Siri AI in action</a> on a Mac, you can access it by simply pulling up Spotlight. When you begin typing, Spotlight knows which questions should go to Siri rather than launching apps. Siri will bring up answers in a new window, where you can continue the conversation if you need more in-depth information.</p><p>It can even go beyond simple conversations. For example, if you’re looking at a schedule, an “add to calendar” button will appear, letting you do just that. With AI agents being all the rage these days, it makes sense for Siri to function more like one.</p><p>If what Apple showed us is anything to go by, Siri AI could be used for more than just asking questions. Of course, I’d have to go hands-on to see whether Siri AI works with other apps outside the Apple ecosystem, since Mark noted it doesn’t work with Gmail at the moment.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eBj8ke"></div>                            </div>                            <script src="https://kwizly.com/embed/eBj8ke.js" async></script><h2 id="outlook-2">Outlook</h2><p>We should get a better sense of what macOS Golden Gate and the other Apple operating systems can truly do once Siri AI begins rolling out to those who signed up for it.</p><p>Beyond that, I like the refinements being made to Liquid Glass, and Spatial Reframing should be a game-changer for folks who love taking photos. These aren't monumental changes, but I like them for what they provide right now.</p><p>Again, keep in mind that I’m testing a developer beta of macOS 27, and things are likely to change between now and the full release this fall. I’m going to keep using it and will update you all on any new features it introduces. Stay tuned!</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/vpns/apples-wwdc-is-the-perfect-time-to-lock-down-your-iphone-and-expressvpn-is-down-to-usd2-49-a-month-to-help-you-do-it">Apple's WWDC is the perfect time to lock down your iPhone – and ExpressVPN is down to $2.49 a month to help you do it</a></li><li><a href="https://www.tomsguide.com/phones/iphones/tomsguide.com/computing/smart-glasses/apples-john-ternus-orders-major-overhaul-for-vision-devices-weve-gone-from-6-products-to-these-2" target="_blank">Kuo: Apple is scrapping Vision headsets in favor of 2 smart glasses — but there's bad news for the release dates</a></li><li><a href="https://www.tomsguide.com/phones/iphones/i-just-installed-the-ios-27-beta-and-reframe-is-unlike-any-other-ai-feature-ive-come-across">I just installed the iOS 27 beta — and Reframe is unlike any other AI feature I’ve come across</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/macos/i-just-tested-the-macos-golden-gate-developer-beta-here-are-my-early-thoughts</link>
                                                                            <description>
                            <![CDATA[ The macOS Golden Gate developer beta is now live, and I've gone hands-on with it to try some of the new features. Here's what I think so far. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">aJhsCMBJuLbjGxMQsXoHr6</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/vP4WAj95g5ew6J3KNXWH7E-1280-80.png" type="image/png" length="0"></enclosure>
                                                                        <pubDate>Wed, 10 Jun 2026 10:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[macOS]]></category>
                                                    <category><![CDATA[Computing Peripherals]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                                                                <author><![CDATA[ tony.polanco@futurenet.com (Tony Polanco) ]]></author>                    <dc:creator><![CDATA[ Tony Polanco ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/atzRNqFt5wYgEUPBDahWsD.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/png" url="https://cdn.mos.cms.futurecdn.net/vP4WAj95g5ew6J3KNXWH7E-1280-80.png">
                                                            <media:credit><![CDATA[Apple]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Describe an Extension in Safari at WWDC 2026]]></media:description>                                                            <media:text><![CDATA[Describe an Extension in Safari at WWDC 2026]]></media:text>
                                <media:title type="plain"><![CDATA[Describe an Extension in Safari at WWDC 2026]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/vP4WAj95g5ew6J3KNXWH7E-1280-80.png" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The macOS 27 or <a href="https://www.tomsguide.com/computing/macos/macos-27">macOS Golden Gate</a> developer beta is now live, and I’ve begun testing out some of the available features that this upcoming (and unfinished) operating system has to offer. </p><p>We don’t get a substantial update as we did with last year’s <a href="https://www.tomsguide.com/computing/macos/macos-26">macOS 26</a>. Instead, this year’s update is mostly focused on <a href="https://www.tomsguide.com/ai/apple-finally-fixed-siri-heres-all-the-features-for-the-new-siri-ai-announced-at-wwdc">Siri AI</a> and <a href="https://www.tomsguide.com/ai/apple-intelligence/apple-intelligence-finally-comes-into-its-own-but-wwdc-26-was-missing-something">Apple Intelligence</a>. While I’ve yet to try the former, the latter offers nifty tricks for Mac users to try out.</p><p>Keeping in mind that this is a developer beta and features are subject to change, here are my early thoughts on macOS Golden Gate and some features that stand out.</p><h2 id="spatial-reframing-2">Spatial Reframing</h2><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/2vyL4w3WxVGjQJPBPpoqq5.jpg" alt="MacBook Air M5" /><figcaption>A MacBook Air before Reframe<small role="credit">Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/vUC8TZ34UKYuqHaQC7jN6R.jpg" alt="MacBook Air M5" /><figcaption>A MacBook Air after Reframe<small role="credit">Tom's Guide</small></figcaption></figure></figure><p>The new <a href="https://www.tomsguide.com/phones/iphones/apples-ai-powered-spatial-reframing-tool-just-stole-the-show-at-wwdc">Reframe tool stole the show at WWDC</a>, and it’s a lot of fun to use. The feature is self-explanatory: you can take existing photos and adjust the perspective to your liking. Basically, if you’re not happy with a photo’s angle, you can change that.</p><p>After selecting Reframe in the new Tools option in Photos’ editing mode, the AI scans your photo. When that’s done, you can pull your finger across the touchpad to change the perspective. There are also sliders on the side if you prefer more precise control over the angle, orientation, or size. Once you’re happy with the result, the AI shifts things around to fill in any blanks.</p><p>While you can argue that you’re not seeing the real image after you’ve effectively doctored it, the result isn’t radically different from the original. If you don’t worry about getting a perfect picture the first time around, Reframe can definitely remove that stress since you can always come back to your photo later.</p><h2 id="liquid-glass-slider-2">Liquid Glass slider</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="kbVSEAeYD7AF3N9vqnbxhG" name="macOS 27 liquid glass slider" alt="macOS 27 Liquid Glass" src="https://cdn.mos.cms.futurecdn.net/kbVSEAeYD7AF3N9vqnbxhG.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide / Apple)</span></figcaption></figure><p>I didn’t mind the Liquid Glass UI as much as others, but it has certainly been a controversial element introduced to iPhones, iPads, and Macs with their respective updates last year. Now, Apple has updated Liquid Glass so you can tailor it to your liking.</p><p>For example, there’s a new preference slider that lets you dial in the exact intensity of the Liquid Glass effect. You can go from highly transparent to more opaque. More complex background visuals are more diffuse, increasing text readability. The edges of icons are more pronounced, so they stand out from the background, and all app windows now have a uniform corner radius.</p><p>As before, I don’t mind Liquid Glass, but the relatively subtle updates do help windows, icons, and text pop out more.</p><h2 id="siri-ai-on-mac">Siri AI on Mac</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="cFZGBBx3BSPBb2Us9ENxHK" name="Siri AI Mac" alt="Siri AI" src="https://cdn.mos.cms.futurecdn.net/cFZGBBx3BSPBb2Us9ENxHK.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>This feature isn’t available in the developer beta yet for me, but Siri AI on macOS 27 should be a pretty big deal. This is especially true if you’re used to using chatbots like ChatGPT or <a href="https://www.tomsguide.com/ai/google-gemini/google-gemini-everything-you-need-to-know">Google Gemini</a>, as Siri AI now functions like them.</p><p>As Mark Spoonauer said when he <a href="https://www.tomsguide.com/ai/apple-intelligence/i-just-saw-the-new-siri-ai-in-action-at-wwdc-heres-what-i-like-and-what-still-needs-work">saw the new Siri AI in action</a> on a Mac, you can access it by simply pulling up Spotlight. When you begin typing, Spotlight knows which questions should go to Siri rather than launching apps. Siri will bring up answers in a new window, where you can continue the conversation if you need more in-depth information.</p><p>It can even go beyond simple conversations. For example, if you’re looking at a schedule, an “add to calendar” button will appear, letting you do just that. With AI agents being all the rage these days, it makes sense for Siri to function more like one.</p><p>If what Apple showed us is anything to go by, Siri AI could be used for more than just asking questions. Of course, I’d have to go hands-on to see whether Siri AI works with other apps outside the Apple ecosystem, since Mark noted it doesn’t work with Gmail at the moment.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eBj8ke"></div>                            </div>                            <script src="https://kwizly.com/embed/eBj8ke.js" async></script><h2 id="outlook-2">Outlook</h2><p>We should get a better sense of what macOS Golden Gate and the other Apple operating systems can truly do once Siri AI begins rolling out to those who signed up for it.</p><p>Beyond that, I like the refinements being made to Liquid Glass, and Spatial Reframing should be a game-changer for folks who love taking photos. These aren't monumental changes, but I like them for what they provide right now.</p><p>Again, keep in mind that I’m testing a developer beta of macOS 27, and things are likely to change between now and the full release this fall. I’m going to keep using it and will update you all on any new features it introduces. Stay tuned!</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/vpns/apples-wwdc-is-the-perfect-time-to-lock-down-your-iphone-and-expressvpn-is-down-to-usd2-49-a-month-to-help-you-do-it">Apple's WWDC is the perfect time to lock down your iPhone – and ExpressVPN is down to $2.49 a month to help you do it</a></li><li><a href="https://www.tomsguide.com/phones/iphones/tomsguide.com/computing/smart-glasses/apples-john-ternus-orders-major-overhaul-for-vision-devices-weve-gone-from-6-products-to-these-2" target="_blank">Kuo: Apple is scrapping Vision headsets in favor of 2 smart glasses — but there's bad news for the release dates</a></li><li><a href="https://www.tomsguide.com/phones/iphones/i-just-installed-the-ios-27-beta-and-reframe-is-unlike-any-other-ai-feature-ive-come-across">I just installed the iOS 27 beta — and Reframe is unlike any other AI feature I’ve come across</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ The macOS Golden Gate developer beta is live — here’s how to download it ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Apple announced <a href="https://www.tomsguide.com/computing/macos/macos-27">macOS Golden Gate</a> at <a href="https://www.tomsguide.com/news/live/wwdc-2026-live-news-updates">WWDC 2026</a>, which means developers are already working hard to update their apps for the upcoming operating system. The developer beta is now live, but it’s open to anyone who signs up for Apple’s Beta program and is willing to deal with potential headaches associated with in-development code.</p><p>This year, Apple has placed most of its focus on updating Apple Intelligence and Siri, which it now calls <a href="https://www.tomsguide.com/ai/apple-finally-fixed-siri-heres-all-the-features-for-the-new-siri-ai-announced-at-wwdc">Siri AI</a>. macOS 27 doesn’t include many new features, so the development team focused on improving performance, which should make this OS run more smoothly. Improvements have also been made to the Liquid Glass UI, making it more customizable (and readable).</p><p>A word of warning: macOS Golden Gate is unfinished, so it might be buggy and could cause issues for your Mac. If you’re willing to take the chance (most of these betas are relatively safe in my experience), then read on to find out how to download the macOS Golden Gate developer beta.</p><h2 id="how-to-download-the-macos-golden-gate-developer-beta-2">How to download the macOS Golden Gate developer beta</h2><p>Downloading the macOS Golden Gate developer beta is a relatively simple process. First, enroll your Apple ID in <a href="https://go.redirectingat.com/?id=92X1584493&xcust=tomsguide_us_2424893525236134601&xs=1&url=https%3A%2F%2Fbeta.apple.com%2F&sref=https%3A%2F%2Fwww.tomsguide.com" target="_blank"><u>Apple's Beta Program</u></a> and make sure your Mac is compatible. Here's the full list of Macs that can install and run macOS Golden Gate:</p><ul><li>MacBook Neo (2026)</li><li>MacBook Air with Apple silicon (2020 and later)</li><li>MacBook Pro with Apple silicon (2020 and later)</li><li>iMac with Apple silicon (2021 and later)</li><li>Mac mini with Apple silicon (2020 and later)</li><li>Mac Studio with Apple silicon (2022 and later)</li><li>Mac Pro with Apple silicon (2023 and later)</li></ul><section class="howto-block">                    <h3>1. Open System Settings</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/VwiWUWktjrNv3uJFyMfMpn.jpg"                                        alt="macOS 27"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/VwiWUWktjrNv3uJFyMfMpn.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide / Apple)</div></figure>                    <p><p>To start, <strong>open the System Settings menu on your Mac by clicking on the Apple icon in the top-left corner</strong>, then <strong>select "System Settings" from the drop-down menu</strong>. Similarly, <strong>you can also click on the gear icon in the dock</strong>.</p></p>                </section><section class="howto-block">                    <h3>2. Navigate to General > Software Update</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/ASM9wMhQK6Vgae6MPBKatV.jpg"                                        alt="macOS 27"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/ASM9wMhQK6Vgae6MPBKatV.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide / Apple)</div></figure>                    <p><p>After that, <strong>navigate to the Software Update section of your General settings menu</strong>. To get there, <strong>click General in the left-hand menu of the System Settings menu</strong>, then <strong>click Software Update</strong>.</p></p>                </section><section class="howto-block">                    <h3>3. Enable Beta Updates and select macOS Golden Gate</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/84hw5yBW7Ax4KWhLunkzt4.jpg"                                        alt="macOS 27"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/84hw5yBW7Ax4KWhLunkzt4.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide / Apple)</div></figure>                    <p><p>Then, <strong>make sure the Beta Updates setting is switched to On</strong>. If it's switched Off, turn it on by clicking the corresponding button. <strong>When the Beta Updates menu opens, select macOS Golden Gate Developer Beta from the dropdown menu</strong>. Double-check that your Apple account is enrolled in Apple’s Beta Program if you don’t see the beta listed.</p></p>                </section><section class="howto-block">                    <h3>4. Install the beta</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/CnQztVMjDEAGY5o3m2vjfJ.jpg"                                        alt="macOS 27"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/CnQztVMjDEAGY5o3m2vjfJ.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide / Apple)</div></figure>                    <p><p>Once that's done, <strong>you should see the macOS 27 Beta appear as available to download</strong>. All you have to do now is hit the <strong>Upgrade Now button to start downloading</strong>, and you're all set!</p></p>                </section><p>And that’s how you download the macOS Golden Gate developer beta. After the download finishes, your Mac will restart, and you’ll get your first taste of the upcoming OS. Depending on your connection speed, the download might take a few minutes, so be patient. Enjoy the new features!</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/phones/wwdc-2026-is-here-and-these-are-the-3-things-im-most-excited-for">3 things I'm excited to see revealed at today's WWDC 2026 keynote</a></li><li><a href="https://www.tomsguide.com/computing/vr-ar/ipados-27-everything-coming-to-the-apples-beloved-tablets">iPadOS 27: Everything announced for Apple's beloved tablets at WWDC 2026</a></li><li><a href="https://www.tomsguide.com/phones/iphones/ios-27-is-official-all-the-new-upgrades-and-features-announced-at-wwdc-2026">iOS 27 is official: All the new upgrades and features announced at WWDC 2026</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/macos/the-macos-golden-gate-developer-beta-is-live-heres-how-to-download-it</link>
                                                                            <description>
                            <![CDATA[ Apple's macOS Golden Gate developer beta is available now. Here's how you can download it and test out all the new Apple Intelligence features for Macs. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">2EZDEpTx2dvB7VbS6fPST5</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/BKrgHb2ruGAESvEL7JGQ8f-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 09 Jun 2026 10:30:00 +0000</pubDate>                                                                                                                                <updated>Thu, 16 Jul 2026 13:29:36 +0000</updated>
                                                                                                                                            <category><![CDATA[macOS]]></category>
                                                    <category><![CDATA[Computing Peripherals]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                                                                <author><![CDATA[ tony.polanco@futurenet.com (Tony Polanco) ]]></author>                    <dc:creator><![CDATA[ Tony Polanco ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/atzRNqFt5wYgEUPBDahWsD.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/BKrgHb2ruGAESvEL7JGQ8f-1280-80.jpg">
                                                            <media:credit><![CDATA[Apple]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[macOS 27]]></media:description>                                                            <media:text><![CDATA[macOS 27]]></media:text>
                                <media:title type="plain"><![CDATA[macOS 27]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/BKrgHb2ruGAESvEL7JGQ8f-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Apple announced <a href="https://www.tomsguide.com/computing/macos/macos-27">macOS Golden Gate</a> at <a href="https://www.tomsguide.com/news/live/wwdc-2026-live-news-updates">WWDC 2026</a>, which means developers are already working hard to update their apps for the upcoming operating system. The developer beta is now live, but it’s open to anyone who signs up for Apple’s Beta program and is willing to deal with potential headaches associated with in-development code.</p><p>This year, Apple has placed most of its focus on updating Apple Intelligence and Siri, which it now calls <a href="https://www.tomsguide.com/ai/apple-finally-fixed-siri-heres-all-the-features-for-the-new-siri-ai-announced-at-wwdc">Siri AI</a>. macOS 27 doesn’t include many new features, so the development team focused on improving performance, which should make this OS run more smoothly. Improvements have also been made to the Liquid Glass UI, making it more customizable (and readable).</p><p>A word of warning: macOS Golden Gate is unfinished, so it might be buggy and could cause issues for your Mac. If you’re willing to take the chance (most of these betas are relatively safe in my experience), then read on to find out how to download the macOS Golden Gate developer beta.</p><h2 id="how-to-download-the-macos-golden-gate-developer-beta-2">How to download the macOS Golden Gate developer beta</h2><p>Downloading the macOS Golden Gate developer beta is a relatively simple process. First, enroll your Apple ID in <a href="https://go.redirectingat.com/?id=92X1584493&xcust=tomsguide_us_2424893525236134601&xs=1&url=https%3A%2F%2Fbeta.apple.com%2F&sref=https%3A%2F%2Fwww.tomsguide.com" target="_blank"><u>Apple's Beta Program</u></a> and make sure your Mac is compatible. Here's the full list of Macs that can install and run macOS Golden Gate:</p><ul><li>MacBook Neo (2026)</li><li>MacBook Air with Apple silicon (2020 and later)</li><li>MacBook Pro with Apple silicon (2020 and later)</li><li>iMac with Apple silicon (2021 and later)</li><li>Mac mini with Apple silicon (2020 and later)</li><li>Mac Studio with Apple silicon (2022 and later)</li><li>Mac Pro with Apple silicon (2023 and later)</li></ul><section class="howto-block">                    <h3>1. Open System Settings</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/VwiWUWktjrNv3uJFyMfMpn.jpg"                                        alt="macOS 27"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/VwiWUWktjrNv3uJFyMfMpn.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide / Apple)</div></figure>                    <p><p>To start, <strong>open the System Settings menu on your Mac by clicking on the Apple icon in the top-left corner</strong>, then <strong>select "System Settings" from the drop-down menu</strong>. Similarly, <strong>you can also click on the gear icon in the dock</strong>.</p></p>                </section><section class="howto-block">                    <h3>2. Navigate to General > Software Update</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/ASM9wMhQK6Vgae6MPBKatV.jpg"                                        alt="macOS 27"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/ASM9wMhQK6Vgae6MPBKatV.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide / Apple)</div></figure>                    <p><p>After that, <strong>navigate to the Software Update section of your General settings menu</strong>. To get there, <strong>click General in the left-hand menu of the System Settings menu</strong>, then <strong>click Software Update</strong>.</p></p>                </section><section class="howto-block">                    <h3>3. Enable Beta Updates and select macOS Golden Gate</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/84hw5yBW7Ax4KWhLunkzt4.jpg"                                        alt="macOS 27"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/84hw5yBW7Ax4KWhLunkzt4.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide / Apple)</div></figure>                    <p><p>Then, <strong>make sure the Beta Updates setting is switched to On</strong>. If it's switched Off, turn it on by clicking the corresponding button. <strong>When the Beta Updates menu opens, select macOS Golden Gate Developer Beta from the dropdown menu</strong>. Double-check that your Apple account is enrolled in Apple’s Beta Program if you don’t see the beta listed.</p></p>                </section><section class="howto-block">                    <h3>4. Install the beta</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/CnQztVMjDEAGY5o3m2vjfJ.jpg"                                        alt="macOS 27"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/CnQztVMjDEAGY5o3m2vjfJ.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide / Apple)</div></figure>                    <p><p>Once that's done, <strong>you should see the macOS 27 Beta appear as available to download</strong>. All you have to do now is hit the <strong>Upgrade Now button to start downloading</strong>, and you're all set!</p></p>                </section><p>And that’s how you download the macOS Golden Gate developer beta. After the download finishes, your Mac will restart, and you’ll get your first taste of the upcoming OS. Depending on your connection speed, the download might take a few minutes, so be patient. Enjoy the new features!</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/phones/wwdc-2026-is-here-and-these-are-the-3-things-im-most-excited-for">3 things I'm excited to see revealed at today's WWDC 2026 keynote</a></li><li><a href="https://www.tomsguide.com/computing/vr-ar/ipados-27-everything-coming-to-the-apples-beloved-tablets">iPadOS 27: Everything announced for Apple's beloved tablets at WWDC 2026</a></li><li><a href="https://www.tomsguide.com/phones/iphones/ios-27-is-official-all-the-new-upgrades-and-features-announced-at-wwdc-2026">iOS 27 is official: All the new upgrades and features announced at WWDC 2026</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ macOS Golden Gate: The biggest updates coming to Macs ]]></title>
                                                                                                <dc:content><![CDATA[ <p>At <a href="https://www.tomsguide.com/news/live/wwdc-2026-live-news-updates">WWDC 2026</a>, Apple announced a slew of updates coming to macOS 27, now called macOS Golden Gate. This OS update officially sees the end of the Intel era, but is more future-focused thanks to better AI and smoother performance.</p><p>Apple Intelligence and Siri are getting big upgrades for macOS 27, iPadOS 27, and iOS 27. Powered by Google Gemini, Apple's AI is now on par with competitors and is specifically designed to work with the Apple ecosystem.</p><p>While most of the updates for macOS Golden Gate are part of the company's greater AI efforts, features like on-device editing and a more conversational Siri should make using Macs more seamless and intuitive.</p><p>Here is everything announced for macOS 27 at WWDC.</p><figure class="inline-layout"><div style="min-height: 400px;"><fw-embed-feed channel="toms_guide" playlist="gK4rJ8" mode="row" player_placement="bottom-right"></fw-embed-feed></div></figure><h3 class="article-body__section" id="section-macos-27-quick-news"><span>macOS 27: Quick news</span></h3><ul><li>macOS Golden Gate is the name for macOS 27</li><li>Under-the-hood performance upgrades</li><li>Smarter Siri and better Apple Intelligence</li><li>Liquid Glass UI is more customizable</li></ul><h3 class="article-body__section" id="section-siri-ai-and-apple-intelligence"><span>Siri AI and Apple Intelligence</span></h3><p>Powered by Google Gemini, the new AI-infused Siri acts like a proper chatbot. It has features such as contextual awareness, conversational capabilities, improved natural-language support, and more.</p><p>You can use Siri AI through Spotlight to easily find files or messages you need. For example, you can ask or type to find a PDF invoice in one of your emails and add its contents to your Numbers budget spreadsheet. This should make Siri a true assistant rather than just an AI that helps you with recipes.</p><p>For writers, Siri AI can help you generate drafts from scratch and help proofread your work. And since it's powered by AI, it can learn how you respond to specific people, and even give you suggestions as you write. This should make it a better writing assistant, whether you're working on a big project or just checking in with friends.</p><p>Visual Intelligence with Siri is arriving on Macs for the first time. This feature lets you search visually, ask questions, and take actions on your screen. There is a dedicated keyboard shortcut that lets you select something on your Mac's display and type directly to Siri to get answers.</p><h3 class="article-body__section" id="section-liquid-glass"><span>Liquid Glass</span></h3><p>Liquid Glass was introduced last year as the big design overhaul for Apple's operating systems, but it didn't go over well with many Mac users. While Liquid Glass isn't going anywhere, it has been fine-tuned for better readability on Macs.</p><p>For instance, you now have finer control over its opacity and color. The edges of apps are also more defined, so they stand out more from the background. These updates should alleviate some of the issues users have had since macOS 26.</p><h3 class="article-body__section" id="section-smoother-performance"><span>Smoother performance</span></h3><p>Since macOS Golden Gate doesn't introduce major changes from macOS 26, the team was able to make more under-the-hood updates to help everything run more smoothly.</p><p>On iPhones, performance has apparently increased by 30%. We don't have exact numbers for macOS, but it should be in that range. This should also lead to better battery life, which would be interesting given how M-series MacBooks already have astonishing battery life.</p><h3 class="article-body__section" id="section-macos-golden-gate-outlook"><span>macOS Golden Gate: Outlook</span></h3><p>macOS Golden Gate primarily focuses on the latest updates to Apple Intelligence and Siri.  While we didn't hear about any macOS-specific updates, what we're getting should create a more unified ecosystem across Apple's devices. Beyond all the AI updates, the claimed performance boost for Macs and other devices should be especially beneficial.</p><p>We'll update this post with the latest macOS Golden Gate news as we hear it, so stay tuned for more.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/macos/macos-27</link>
                                                                            <description>
                            <![CDATA[ During WWDC 2026, Apple detailed what's coming to macOS 27. From a more intelligent Siri to performance upgrades and UI updates, here's what you need to know. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">wXY7aU493uwzjftfRkANm4</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/pWw6pR2WPasWkQFcaXPQnX-1280-80.png" type="image/png" length="0"></enclosure>
                                                                        <pubDate>Mon, 08 Jun 2026 17:20:06 +0000</pubDate>                                                                                                                                <updated>Mon, 08 Jun 2026 18:57:12 +0000</updated>
                                                                                                                                            <category><![CDATA[macOS]]></category>
                                                    <category><![CDATA[Computing Peripherals]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                                                                <author><![CDATA[ tony.polanco@futurenet.com (Tony Polanco) ]]></author>                    <dc:creator><![CDATA[ Tony Polanco ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/atzRNqFt5wYgEUPBDahWsD.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/png" url="https://cdn.mos.cms.futurecdn.net/pWw6pR2WPasWkQFcaXPQnX-1280-80.png">
                                                            <media:credit><![CDATA[Apple]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Write with Siri on Mac at WWDC 2026]]></media:description>                                                            <media:text><![CDATA[Write with Siri on Mac at WWDC 2026]]></media:text>
                                <media:title type="plain"><![CDATA[Write with Siri on Mac at WWDC 2026]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/pWw6pR2WPasWkQFcaXPQnX-1280-80.png" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>At <a href="https://www.tomsguide.com/news/live/wwdc-2026-live-news-updates">WWDC 2026</a>, Apple announced a slew of updates coming to macOS 27, now called macOS Golden Gate. This OS update officially sees the end of the Intel era, but is more future-focused thanks to better AI and smoother performance.</p><p>Apple Intelligence and Siri are getting big upgrades for macOS 27, iPadOS 27, and iOS 27. Powered by Google Gemini, Apple's AI is now on par with competitors and is specifically designed to work with the Apple ecosystem.</p><p>While most of the updates for macOS Golden Gate are part of the company's greater AI efforts, features like on-device editing and a more conversational Siri should make using Macs more seamless and intuitive.</p><p>Here is everything announced for macOS 27 at WWDC.</p><figure class="inline-layout"><div style="min-height: 400px;"><fw-embed-feed channel="toms_guide" playlist="gK4rJ8" mode="row" player_placement="bottom-right"></fw-embed-feed></div></figure><h3 class="article-body__section" id="section-macos-27-quick-news"><span>macOS 27: Quick news</span></h3><ul><li>macOS Golden Gate is the name for macOS 27</li><li>Under-the-hood performance upgrades</li><li>Smarter Siri and better Apple Intelligence</li><li>Liquid Glass UI is more customizable</li></ul><h3 class="article-body__section" id="section-siri-ai-and-apple-intelligence"><span>Siri AI and Apple Intelligence</span></h3><p>Powered by Google Gemini, the new AI-infused Siri acts like a proper chatbot. It has features such as contextual awareness, conversational capabilities, improved natural-language support, and more.</p><p>You can use Siri AI through Spotlight to easily find files or messages you need. For example, you can ask or type to find a PDF invoice in one of your emails and add its contents to your Numbers budget spreadsheet. This should make Siri a true assistant rather than just an AI that helps you with recipes.</p><p>For writers, Siri AI can help you generate drafts from scratch and help proofread your work. And since it's powered by AI, it can learn how you respond to specific people, and even give you suggestions as you write. This should make it a better writing assistant, whether you're working on a big project or just checking in with friends.</p><p>Visual Intelligence with Siri is arriving on Macs for the first time. This feature lets you search visually, ask questions, and take actions on your screen. There is a dedicated keyboard shortcut that lets you select something on your Mac's display and type directly to Siri to get answers.</p><h3 class="article-body__section" id="section-liquid-glass"><span>Liquid Glass</span></h3><p>Liquid Glass was introduced last year as the big design overhaul for Apple's operating systems, but it didn't go over well with many Mac users. While Liquid Glass isn't going anywhere, it has been fine-tuned for better readability on Macs.</p><p>For instance, you now have finer control over its opacity and color. The edges of apps are also more defined, so they stand out more from the background. These updates should alleviate some of the issues users have had since macOS 26.</p><h3 class="article-body__section" id="section-smoother-performance"><span>Smoother performance</span></h3><p>Since macOS Golden Gate doesn't introduce major changes from macOS 26, the team was able to make more under-the-hood updates to help everything run more smoothly.</p><p>On iPhones, performance has apparently increased by 30%. We don't have exact numbers for macOS, but it should be in that range. This should also lead to better battery life, which would be interesting given how M-series MacBooks already have astonishing battery life.</p><h3 class="article-body__section" id="section-macos-golden-gate-outlook"><span>macOS Golden Gate: Outlook</span></h3><p>macOS Golden Gate primarily focuses on the latest updates to Apple Intelligence and Siri.  While we didn't hear about any macOS-specific updates, what we're getting should create a more unified ecosystem across Apple's devices. Beyond all the AI updates, the claimed performance boost for Macs and other devices should be especially beneficial.</p><p>We'll update this post with the latest macOS Golden Gate news as we hear it, so stay tuned for more.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Windows laptops are entering their MacBook Neo era, but is Windows 11 actually ready for it? 8GB of RAM has me worried ]]></title>
                                                                                                <dc:content><![CDATA[ <p>One thing was clear at <a href="https://www.tomsguide.com/computing/best-of-computex-2026">Computex 2026</a>: every laptop maker is terrified of the <a href="https://www.tomsguide.com/computing/macbooks/apple-macbook-neo-review">MacBook Neo</a>, and they’re <a href="https://www.tomsguide.com/computing/laptops/forget-the-macbook-neo-these-4-windows-laptops-are-just-as-powerful">fighting back in a big way</a>. But I’m worried about whether Windows 11 is <em>actually </em>ready for this shift.</p><p>A $599 machine powered by an A18 Pro chip, Apple has essentially forced the hands of PC manufacturers who had gotten far too comfortable giving us mid systems at this price. But I’m glad the Neo-shaped earthquake has shaken up some change here. The <a href="https://www.tomsguide.com/computing/laptops/i-held-the-macbook-neo-in-one-hand-and-the-new-xps-13-in-the-other-and-dells-affordable-laptop-is-surprisingly-lighter">new Dell XPS 13</a> is looking mighty tasty at that lower price, but with better I/O and a touchscreen display, alongside that aluminum body.</p><p>But there’s a big Windows 11-related question here, because as <a href="https://www.tomsguide.com/computing/macbooks/windows-fans-say-macbook-neos-8gb-ram-is-ridiculous-so-i-tested-it-and-the-results-are-shocking">I found out testing it</a>, the way it's built makes it quite RAM hungry. I caught it using nearly 3X more memory than macOS, and with all the new features announced at <a href="https://www.tomsguide.com/news/live/microsoft-build-2026">Microsoft Build</a>, things could get worse.</p><div ><table><thead><tr><th class="firstcol " ><p><strong>Laptop</strong></p></th><th  ><p>MacBook Neo</p></th><th  ><p>Asus ProArt GoPro Edition</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Google Chrome + 20 Tabs RAM usage</strong></p></td><td  ><p>1.67 GB</p></td><td  ><p>4.76 GB</p></td></tr><tr><td class="firstcol " ><p><strong>Adobe Photoshop RAM usage</strong></p></td><td  ><p>3.86 GB</p></td><td  ><p>3.85 GB</p></td></tr><tr><td class="firstcol " ><p><strong>Apple Music RAM usage</strong></p></td><td  ><p>157.6 MB</p></td><td  ><p>239.1 MB</p></td></tr><tr><td class="firstcol " ><p><strong>System memory usage TOTAL</strong></p></td><td  ><p><strong>7.24 GB</strong></p></td><td  ><p><strong>27.1 GB</strong></p></td></tr></tbody></table></div><p>So while it’s all fair and good in the world of RAMageddon to shift to 8GB (not something I like to see, but something that is necessary given the insane pricing), Windows has to follow suit and trim some of the fat. Here are some ideas.</p><h2 id="give-me-a-compact-mode">Give me a compact mode</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="hqB3iMGH3DpBcLNjw8SSJX" name="Asus ProArt GoPro Edition (PX13)" alt="Asus ProArt GoPro Edition (PX13)" src="https://cdn.mos.cms.futurecdn.net/hqB3iMGH3DpBcLNjw8SSJX.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Right now, Windows 11 treats a $600 8GB thin-and-light the same way it treats a $3,000 workstation with 64GB of RAM. Yes, the OS’ memory management can be highly dynamic, but the core fundamentals take around 6GB, and the system aggressively caches background apps, so as to not waste any unused RAM.</p><p>This may work if you have a ton of memory, but we’re not in that world at the moment and every precious bit is sacred. So what we need is a modular, adaptive OS shell. If Windows 11 detects 8GB, it should trigger an aggressive “Compact mode” right out of the box to throttle background tasks, pause any non-essential tasks and prioritize anything active in the foreground.</p><h2 id="kill-the-widget-and-web-overhear">Kill the “widget and web” overhear</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="9hJiHSP3dYfHR6gQC88xu5" name="MSI Modern 14S AI+" alt="MSI Modern 14S AI+" src="https://cdn.mos.cms.futurecdn.net/9hJiHSP3dYfHR6gQC88xu5.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>There’s this thing called WebView 2, which is actually the culprit behind some of the most unnecessary bloat within Windows 11 — namely web-heavy dependencies like news widgets you never look at or some of the always-connected elements like Start Menu details or Copilot feeds.</p><p>A user should never have to lose up to 1.5GB of RAM to useless stuff like this, so it needs to be decoupled from the core UI. If a feature isn’t actively on screen (or used) it’s background RAM allocation should be aggressively cut down.</p><h2 id="standardize-the-vanilla-baseline">Standardize the vanilla baseline</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="hp2ttKct7XEsSX9q3Jnknm" name="Asus Zenbook 14" alt="Asus Zenbook 14" src="https://cdn.mos.cms.futurecdn.net/hp2ttKct7XEsSX9q3Jnknm.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Bloatware. You hate it — you’ve heard us complain excessively about it. Asus, Dell, MSI and Acer all ship their budget laptops layered with their own resource-heavy management software, which on an 8GB system is a death sentence.</p><p>Microsoft needs to enforce strict RAM-usage guardrails for laptop makers who create 8GB configurations, ensuring that third-party battery trackers, lighting software and trial anti-virus programs don’t choke that last slot of 2GB remaining after the OS.</p><h2 id="outlook-3">Outlook</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="oYLxEGMrcPAJTZy2V4Uu8g" name="Acer Swift Air 14" alt="Acer Swift Air 14" src="https://cdn.mos.cms.futurecdn.net/oYLxEGMrcPAJTZy2V4Uu8g.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>PC makers have just proven they can match Apple’s budget hardware pricing. Now, it’s up to Microsoft to prove that Windows 11 can survive the diet Apple forced upon it.</p><p>And sure, there are other things that can be done here, such as smarter compression of background apps, getting on with moving the entire OS over to WinUI 3 framework (the thing that’s removing some of that memory overhead) and much more. But these three items are the main RAM killers here.</p><p>Will it happen? God I hope so, otherwise this fightback against the MacBook Neo is over before it even begins.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/laptops/ive-gone-hands-on-with-every-nvidia-rtx-spark-laptop-coming-this-fall-heres-my-ranked-list-of-the-best-options">I’ve gone hands-on with every Nvidia RTX Spark laptop coming this fall — here’s my brutal tier list of the best options</a></li><li><a href="https://www.tomsguide.com/computing/laptops/msi-prestige-14-flip-ai-vincent-van-gogh-edition-hands-on-review">I just held the most beautiful laptop, but I’m not sure Vincent van Gogh would be happy with his name connected to AI</a></li><li><a href="https://www.tomsguide.com/gaming/handheld-gaming/msi-claw-8-ex-ai-plus-hands-on-review">I just tested the MSI Claw 8 EX AI+ — it leaves ROG Xbox Ally in the dust with breakthrough Intel Arc G3 power</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/laptops/windows-laptops-are-entering-their-macbook-neo-era-but-is-windows-11-actually-ready-for-it-8gb-of-ram-has-me-worried</link>
                                                                            <description>
                            <![CDATA[ Windows laptops are fighting back against the MacBook Neo, but Windows 11 needs to lose weight fast for 8GB of RAM! ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">feEN8u8rHwsygggmoc7r5U</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/TYkv4WneuaJrWRbBapzdyR-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sun, 07 Jun 2026 11:15:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Laptops]]></category>
                                                    <category><![CDATA[Windows Operating Systems]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                                                                                    <dc:creator><![CDATA[ Jason England ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/v4fSq5U4uZUEtGY2BwNuJ6.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Jason brings a decade of tech and gaming journalism experience to his role as a Managing Editor of Computing at Tom&#039;s Guide. He has previously written for Laptop Mag, Tom&#039;s Hardware, Kotaku, Stuff and BBC Science Focus. In his spare time, you&#039;ll find Jason looking for good dogs to pet or thinking about eating pizza if he isn&#039;t already.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/TYkv4WneuaJrWRbBapzdyR-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[The Dell XPS 13 (2026) side by side with the MacBook Neo]]></media:description>                                                            <media:text><![CDATA[The Dell XPS 13 (2026) side by side with the MacBook Neo]]></media:text>
                                <media:title type="plain"><![CDATA[The Dell XPS 13 (2026) side by side with the MacBook Neo]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/TYkv4WneuaJrWRbBapzdyR-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>One thing was clear at <a href="https://www.tomsguide.com/computing/best-of-computex-2026">Computex 2026</a>: every laptop maker is terrified of the <a href="https://www.tomsguide.com/computing/macbooks/apple-macbook-neo-review">MacBook Neo</a>, and they’re <a href="https://www.tomsguide.com/computing/laptops/forget-the-macbook-neo-these-4-windows-laptops-are-just-as-powerful">fighting back in a big way</a>. But I’m worried about whether Windows 11 is <em>actually </em>ready for this shift.</p><p>A $599 machine powered by an A18 Pro chip, Apple has essentially forced the hands of PC manufacturers who had gotten far too comfortable giving us mid systems at this price. But I’m glad the Neo-shaped earthquake has shaken up some change here. The <a href="https://www.tomsguide.com/computing/laptops/i-held-the-macbook-neo-in-one-hand-and-the-new-xps-13-in-the-other-and-dells-affordable-laptop-is-surprisingly-lighter">new Dell XPS 13</a> is looking mighty tasty at that lower price, but with better I/O and a touchscreen display, alongside that aluminum body.</p><p>But there’s a big Windows 11-related question here, because as <a href="https://www.tomsguide.com/computing/macbooks/windows-fans-say-macbook-neos-8gb-ram-is-ridiculous-so-i-tested-it-and-the-results-are-shocking">I found out testing it</a>, the way it's built makes it quite RAM hungry. I caught it using nearly 3X more memory than macOS, and with all the new features announced at <a href="https://www.tomsguide.com/news/live/microsoft-build-2026">Microsoft Build</a>, things could get worse.</p><div ><table><thead><tr><th class="firstcol " ><p><strong>Laptop</strong></p></th><th  ><p>MacBook Neo</p></th><th  ><p>Asus ProArt GoPro Edition</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Google Chrome + 20 Tabs RAM usage</strong></p></td><td  ><p>1.67 GB</p></td><td  ><p>4.76 GB</p></td></tr><tr><td class="firstcol " ><p><strong>Adobe Photoshop RAM usage</strong></p></td><td  ><p>3.86 GB</p></td><td  ><p>3.85 GB</p></td></tr><tr><td class="firstcol " ><p><strong>Apple Music RAM usage</strong></p></td><td  ><p>157.6 MB</p></td><td  ><p>239.1 MB</p></td></tr><tr><td class="firstcol " ><p><strong>System memory usage TOTAL</strong></p></td><td  ><p><strong>7.24 GB</strong></p></td><td  ><p><strong>27.1 GB</strong></p></td></tr></tbody></table></div><p>So while it’s all fair and good in the world of RAMageddon to shift to 8GB (not something I like to see, but something that is necessary given the insane pricing), Windows has to follow suit and trim some of the fat. Here are some ideas.</p><h2 id="give-me-a-compact-mode">Give me a compact mode</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="hqB3iMGH3DpBcLNjw8SSJX" name="Asus ProArt GoPro Edition (PX13)" alt="Asus ProArt GoPro Edition (PX13)" src="https://cdn.mos.cms.futurecdn.net/hqB3iMGH3DpBcLNjw8SSJX.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Right now, Windows 11 treats a $600 8GB thin-and-light the same way it treats a $3,000 workstation with 64GB of RAM. Yes, the OS’ memory management can be highly dynamic, but the core fundamentals take around 6GB, and the system aggressively caches background apps, so as to not waste any unused RAM.</p><p>This may work if you have a ton of memory, but we’re not in that world at the moment and every precious bit is sacred. So what we need is a modular, adaptive OS shell. If Windows 11 detects 8GB, it should trigger an aggressive “Compact mode” right out of the box to throttle background tasks, pause any non-essential tasks and prioritize anything active in the foreground.</p><h2 id="kill-the-widget-and-web-overhear">Kill the “widget and web” overhear</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="9hJiHSP3dYfHR6gQC88xu5" name="MSI Modern 14S AI+" alt="MSI Modern 14S AI+" src="https://cdn.mos.cms.futurecdn.net/9hJiHSP3dYfHR6gQC88xu5.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>There’s this thing called WebView 2, which is actually the culprit behind some of the most unnecessary bloat within Windows 11 — namely web-heavy dependencies like news widgets you never look at or some of the always-connected elements like Start Menu details or Copilot feeds.</p><p>A user should never have to lose up to 1.5GB of RAM to useless stuff like this, so it needs to be decoupled from the core UI. If a feature isn’t actively on screen (or used) it’s background RAM allocation should be aggressively cut down.</p><h2 id="standardize-the-vanilla-baseline">Standardize the vanilla baseline</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="hp2ttKct7XEsSX9q3Jnknm" name="Asus Zenbook 14" alt="Asus Zenbook 14" src="https://cdn.mos.cms.futurecdn.net/hp2ttKct7XEsSX9q3Jnknm.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Bloatware. You hate it — you’ve heard us complain excessively about it. Asus, Dell, MSI and Acer all ship their budget laptops layered with their own resource-heavy management software, which on an 8GB system is a death sentence.</p><p>Microsoft needs to enforce strict RAM-usage guardrails for laptop makers who create 8GB configurations, ensuring that third-party battery trackers, lighting software and trial anti-virus programs don’t choke that last slot of 2GB remaining after the OS.</p><h2 id="outlook-3">Outlook</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="oYLxEGMrcPAJTZy2V4Uu8g" name="Acer Swift Air 14" alt="Acer Swift Air 14" src="https://cdn.mos.cms.futurecdn.net/oYLxEGMrcPAJTZy2V4Uu8g.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>PC makers have just proven they can match Apple’s budget hardware pricing. Now, it’s up to Microsoft to prove that Windows 11 can survive the diet Apple forced upon it.</p><p>And sure, there are other things that can be done here, such as smarter compression of background apps, getting on with moving the entire OS over to WinUI 3 framework (the thing that’s removing some of that memory overhead) and much more. But these three items are the main RAM killers here.</p><p>Will it happen? God I hope so, otherwise this fightback against the MacBook Neo is over before it even begins.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/laptops/ive-gone-hands-on-with-every-nvidia-rtx-spark-laptop-coming-this-fall-heres-my-ranked-list-of-the-best-options">I’ve gone hands-on with every Nvidia RTX Spark laptop coming this fall — here’s my brutal tier list of the best options</a></li><li><a href="https://www.tomsguide.com/computing/laptops/msi-prestige-14-flip-ai-vincent-van-gogh-edition-hands-on-review">I just held the most beautiful laptop, but I’m not sure Vincent van Gogh would be happy with his name connected to AI</a></li><li><a href="https://www.tomsguide.com/gaming/handheld-gaming/msi-claw-8-ex-ai-plus-hands-on-review">I just tested the MSI Claw 8 EX AI+ — it leaves ROG Xbox Ally in the dust with breakthrough Intel Arc G3 power</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ macOS 27: 5 biggest WWDC 2026 announcements we expect ]]></title>
                                                                                                <dc:content><![CDATA[ <p>With <a href="https://www.tomsguide.com/phones/iphones/wwdc-2026">WWDC 2026</a> kicking off on June 8, we’ll soon learn about all the latest updates coming to macOS 27. According to rumors, the Mac-based operating system should receive iterative updates rather than substantial ones. That doesn’t mean there isn’t anything to look forward to, however.</p><p>The biggest thing happening for operating systems like <a href="https://www.tomsguide.com/phones/iphones/ios-27-7-biggest-rumored-upgrades-coming-to-your-iphone-this-fall">iOS 27</a>, iPadOS 27, and macOS 27 is an upgrade for <a href="https://www.tomsguide.com/ai/apple-intelligence">Apple Intelligence</a> and Siri. Apple launched its AI back in 2024, but it’s lagged behind competitors. Ironically enough, Apple Intelligence should now be more useful since <a href="https://www.tomsguide.com/ai/google-gemini/google-gemini-everything-you-need-to-know">Google Gemini</a> will power it.</p><p>The other big thing is the end of support for Intel-based Macs. We knew this was coming since last year, but it’s now happening. Other than that, we expect fixes for Liquid Glass so it works better on Macs, built-in app updates, and perhaps a glimpse (or full reveal) of the <a href="https://www.tomsguide.com/computing/macbooks/a-touchscreen-macbook-is-reportedly-on-the-way-but-it-might-not-be-what-you-want">first touch-screen MacBook</a>.</p><p>Here are some of the macOS announcements we expect to see at WWDC 2026.</p><figure class="inline-layout"><div style="min-height: 400px;"><fw-embed-feed channel="toms_guide" playlist="gK4rJ8" mode="row" player_placement="bottom-right"></fw-embed-feed></div></figure><h3 class="article-body__section" id="section-end-of-the-intel-era"><span>End of the Intel era</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="B9nsuipLajySKH8FjfdovX" name="MacBook Pro 13 2020_front2.jpg" alt="Apple MacBook Pro 13-inch (2020) review" src="https://cdn.mos.cms.futurecdn.net/B9nsuipLajySKH8FjfdovX.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Apple already announced that <a href="https://www.tomsguide.com/computing/macos/apple-is-ending-support-for-all-intel-based-macs-next-year-heres-whats-getting-cut">macOS 26 would be the last macOS for Intel Macs</a>, so this one doesn’t come as a big surprise. Still, if you’re rocking an older Intel Mac, you won’t be able to run the new operating system. That said, you won’t be completely left adrift.</p><p>Apple has confirmed that macOS 26 will continue receiving critical security updates for about the next three years. If you’re not ready to upgrade yet, this is certainly good news. Just keep in mind that while you are getting security updates, you won’t get the fancy new features coming to macOS 27.</p><p>Here are the Intel-based Macs that can run macOS 26 but won’t support macOS 27:</p><ul><li><strong>MacBook Pro 13-inch (2020)</strong></li><li><strong>MacBook Pro 16-inch (2019)</strong></li><li><strong>iMac 27-inch (2020)</strong></li><li><strong>Mac Pro (2019)</strong></li></ul><h3 class="article-body__section" id="section-a-smarter-siri-for-real-this-time"><span>A smarter Siri (for real this time)</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="bfJ2tCCf47YP4JK8FJQZyi" name="WWDC 2024 — June 10 _ Apple 1-20-23 screenshot.png" alt="WWDC 2024" src="https://cdn.mos.cms.futurecdn.net/bfJ2tCCf47YP4JK8FJQZyi.png" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Apple)</span></figcaption></figure><p>Powered by Google Gemini, the new AI-infused Siri will reportedly be a proper AI chatbot. That means it should include features such as contextual awareness, conversational capabilities, improved natural-language support, and more. Expect Google’s multimodal capabilities and agentic AI to come to Siri as well. In short, Siri should behave much more like <a href="https://www.tomsguide.com/news/chatgpt">ChatGPT</a> or <a href="https://www.tomsguide.com/ai/claude-is-my-favorite-ai-model-heres-how-i-use-it">Claude</a>.</p><p>Apple will reportedly let you integrate third-party models (such as Claude or ChatGPT) into Siri via a new “<a href="https://www.tomsguide.com/phones/iphones/beyond-chatgpt-ios-27-extensions-will-reportedly-allow-siri-to-use-google-gemini-and-claude">Extensions</a>” marketplace in the App Store. You might be able to choose distinct voices for these third-party AI responses so you know which one is answering.</p><p>Agentic AI is the latest buzz term, and Siri may have deeper system-level context to execute multi-step tasks across apps. For example, you can ask it to find a PDF invoice in one of your emails and add its contents to your Numbers budget spreadsheet. This would make Siri a true assistant.</p><h3 class="article-body__section" id="section-liquid-glass-fixes"><span>Liquid Glass fixes</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="aBR3HP2VVMPQteUEbMehfF" name="WWDC 2025 — June 9 _ Apple 58-49 screenshot" alt="Clear Command Center" src="https://cdn.mos.cms.futurecdn.net/aBR3HP2VVMPQteUEbMehfF.png" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Apple)</span></figcaption></figure><p>Liquid Glass was the major design overhaul introduced last year, but some users weren’t exactly happy with it, as it drew criticism for its lack of contrast, harsh transparency, and poor sidebar readability.</p><p>According to Bloomberg’s Mark Gurman, <a href="https://www.tomsguide.com/phones/iphones/liquid-glass-will-be-sticking-around-for-ios-27-but-theres-some-good-news">macOS 27 will have a visual tune-up to address these complaints</a>. If true, we could see the sleek, polished look that Apple’s design team originally intended. There are also reports of a Mac-adapted version of the iPhone’s Dynamic Island coming to the menu bar.</p><h3 class="article-body__section" id="section-built-in-app-upgrades"><span>Built-in app upgrades</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="EyYgyZa5ktC9tLjhxr3ZwE" name="TG_MacBook-Pro-16_M1-Max_LIST-1.jpg" alt="MacBook Pro 2021 (16-inch) review unit sitting on a coffee table" src="https://cdn.mos.cms.futurecdn.net/EyYgyZa5ktC9tLjhxr3ZwE.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>A feature that’s also expected for iOS 27 and iPadOS 27 will bring three AI-powered tools to Photos. This includes <a href="https://www.tomsguide.com/phones/iphones/ios-27-reportedly-getting-ai-photo-editing-overhaul-heres-all-the-new-features">Extend, Enhance, and Reframe</a>. The first two are self-explanatory, while Reframe is designed to change the perspective in spatial photos seen in 3D.</p><p>For fans of the Safari browser, a new AI feature is rumored to automatically categorize and organize browser tabs into clean, contextual groups. If you frequently have dozens of tabs open, this should be a major win.</p><p>Since macOS 27 isn’t a huge overhaul from last year, the team has reportedly focused on fixing bugs and improving performance. As with OS X Snow Leopard, a chunk of code is being optimized for raw efficiency, stability, and better battery life. The latter would be especially interesting given that MacBooks with M-series chips already have epic battery life.</p><h3 class="article-body__section" id="section-preparing-for-touchscreen-macs"><span>Preparing for touchscreen Macs</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="bYKZ5S3aKLFWZQPU3t6aZJ" name="Intricuit Magic Screen" alt="Intricuit Magic Screen" src="https://cdn.mos.cms.futurecdn.net/bYKZ5S3aKLFWZQPU3t6aZJ.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>WWDC usually focuses on software, but we have seen hardware announcements, such as the <a href="https://www.tomsguide.com/reviews/macbook-air-2022-m2">M2 MacBook Air</a> at WWDC 2022. Rumors suggest that <a href="https://www.tomsguide.com/computing/macbooks/a-touchscreen-macbook-is-reportedly-on-the-way-but-it-might-not-be-what-you-want">Apple is working on the first touchscreen MacBook</a>, so it’s possible it could debut at WWDC 2026 — or at least be teased.</p><p>To take advantage of a touchscreen, macOS 27 will reportedly have a dynamic user interface that adjusts on the fly. For instance, if you click on an item with the mouse cursor, the UI remains compact. If you tap the screen, menus and controls will automatically expand to be touch-friendly. It should also incorporate iPad-style gestures like fast scrolling and pinch-to-zoom.</p><p>Of all the rumors we’ve heard, this one is arguably the most exciting and would bring something substantially new to Macs. I’m curious to see if these touch features will be exclusive to the rumored <a href="https://www.tomsguide.com/computing/laptops/macbook-ultra-everything-we-know-so-far">MacBook Ultra</a>.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-Xk3M3X"></div>                            </div>                            <script src="https://kwizly.com/embed/Xk3M3X.js" async></script><h3 class="article-body__section" id="section-macos-27-outlook"><span>macOS 27: Outlook</span></h3><p>If rumors are correct, then we shouldn’t see a massive overhaul of macOS 27. That said, an improved Siri could actually be a game-changer if it’s as helpful as intended. The same is true if MacBooks with touchscreens get announced.</p><p>Nothing is set in stone, so let’s look forward to WWDC giving us some concrete answers. June 8 is almost here, so it won’t be long. We’ll be live on the ground covering the event as it happens, so keep it locked here for the latest!</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/phones/iphones/how-to-watch-the-apple-wwdc-2026-keynote-live">How to watch the Apple WWDC 2026 keynote live</a></li><li><a href="https://www.tomsguide.com/phones/iphones/wwdc-2026-7-biggest-announcements-we-expect">Apple WWDC 2026 event — 9 biggest announcements we expect</a></li><li><a href="https://www.tomsguide.com/computing/macos/ive-been-covering-apple-events-for-8-years-heres-what-im-excited-for-from-wwdc-2026">Here's what I'm excited for from WWDC 2026</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/macos/macos-27-the-5-biggest-wwdc-2026-announcements-we-expect</link>
                                                                            <description>
                            <![CDATA[ WWDC 2026 is days away, and we'll soon learn about all the new features coming to macOS 26. Here's what we expect to hear, based on rumors and reports. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">oktsuifR8FgCfUnApb7Xci</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/WW8of96PXTSaCwTnfGABUQ-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 06 Jun 2026 09:00:00 +0000</pubDate>                                                                                                                                <updated>Mon, 08 Jun 2026 18:56:00 +0000</updated>
                                                                                                                                            <category><![CDATA[macOS]]></category>
                                                    <category><![CDATA[Computing Peripherals]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                                                                <author><![CDATA[ tony.polanco@futurenet.com (Tony Polanco) ]]></author>                    <dc:creator><![CDATA[ Tony Polanco ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/atzRNqFt5wYgEUPBDahWsD.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/WW8of96PXTSaCwTnfGABUQ-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide/Apple/Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[macOS 27 logo shown on a MacBook Pro 16]]></media:description>                                                            <media:text><![CDATA[macOS 27 logo shown on a MacBook Pro 16]]></media:text>
                                <media:title type="plain"><![CDATA[macOS 27 logo shown on a MacBook Pro 16]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/WW8of96PXTSaCwTnfGABUQ-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>With <a href="https://www.tomsguide.com/phones/iphones/wwdc-2026">WWDC 2026</a> kicking off on June 8, we’ll soon learn about all the latest updates coming to macOS 27. According to rumors, the Mac-based operating system should receive iterative updates rather than substantial ones. That doesn’t mean there isn’t anything to look forward to, however.</p><p>The biggest thing happening for operating systems like <a href="https://www.tomsguide.com/phones/iphones/ios-27-7-biggest-rumored-upgrades-coming-to-your-iphone-this-fall">iOS 27</a>, iPadOS 27, and macOS 27 is an upgrade for <a href="https://www.tomsguide.com/ai/apple-intelligence">Apple Intelligence</a> and Siri. Apple launched its AI back in 2024, but it’s lagged behind competitors. Ironically enough, Apple Intelligence should now be more useful since <a href="https://www.tomsguide.com/ai/google-gemini/google-gemini-everything-you-need-to-know">Google Gemini</a> will power it.</p><p>The other big thing is the end of support for Intel-based Macs. We knew this was coming since last year, but it’s now happening. Other than that, we expect fixes for Liquid Glass so it works better on Macs, built-in app updates, and perhaps a glimpse (or full reveal) of the <a href="https://www.tomsguide.com/computing/macbooks/a-touchscreen-macbook-is-reportedly-on-the-way-but-it-might-not-be-what-you-want">first touch-screen MacBook</a>.</p><p>Here are some of the macOS announcements we expect to see at WWDC 2026.</p><figure class="inline-layout"><div style="min-height: 400px;"><fw-embed-feed channel="toms_guide" playlist="gK4rJ8" mode="row" player_placement="bottom-right"></fw-embed-feed></div></figure><h3 class="article-body__section" id="section-end-of-the-intel-era"><span>End of the Intel era</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="B9nsuipLajySKH8FjfdovX" name="MacBook Pro 13 2020_front2.jpg" alt="Apple MacBook Pro 13-inch (2020) review" src="https://cdn.mos.cms.futurecdn.net/B9nsuipLajySKH8FjfdovX.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Apple already announced that <a href="https://www.tomsguide.com/computing/macos/apple-is-ending-support-for-all-intel-based-macs-next-year-heres-whats-getting-cut">macOS 26 would be the last macOS for Intel Macs</a>, so this one doesn’t come as a big surprise. Still, if you’re rocking an older Intel Mac, you won’t be able to run the new operating system. That said, you won’t be completely left adrift.</p><p>Apple has confirmed that macOS 26 will continue receiving critical security updates for about the next three years. If you’re not ready to upgrade yet, this is certainly good news. Just keep in mind that while you are getting security updates, you won’t get the fancy new features coming to macOS 27.</p><p>Here are the Intel-based Macs that can run macOS 26 but won’t support macOS 27:</p><ul><li><strong>MacBook Pro 13-inch (2020)</strong></li><li><strong>MacBook Pro 16-inch (2019)</strong></li><li><strong>iMac 27-inch (2020)</strong></li><li><strong>Mac Pro (2019)</strong></li></ul><h3 class="article-body__section" id="section-a-smarter-siri-for-real-this-time"><span>A smarter Siri (for real this time)</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="bfJ2tCCf47YP4JK8FJQZyi" name="WWDC 2024 — June 10 _ Apple 1-20-23 screenshot.png" alt="WWDC 2024" src="https://cdn.mos.cms.futurecdn.net/bfJ2tCCf47YP4JK8FJQZyi.png" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Apple)</span></figcaption></figure><p>Powered by Google Gemini, the new AI-infused Siri will reportedly be a proper AI chatbot. That means it should include features such as contextual awareness, conversational capabilities, improved natural-language support, and more. Expect Google’s multimodal capabilities and agentic AI to come to Siri as well. In short, Siri should behave much more like <a href="https://www.tomsguide.com/news/chatgpt">ChatGPT</a> or <a href="https://www.tomsguide.com/ai/claude-is-my-favorite-ai-model-heres-how-i-use-it">Claude</a>.</p><p>Apple will reportedly let you integrate third-party models (such as Claude or ChatGPT) into Siri via a new “<a href="https://www.tomsguide.com/phones/iphones/beyond-chatgpt-ios-27-extensions-will-reportedly-allow-siri-to-use-google-gemini-and-claude">Extensions</a>” marketplace in the App Store. You might be able to choose distinct voices for these third-party AI responses so you know which one is answering.</p><p>Agentic AI is the latest buzz term, and Siri may have deeper system-level context to execute multi-step tasks across apps. For example, you can ask it to find a PDF invoice in one of your emails and add its contents to your Numbers budget spreadsheet. This would make Siri a true assistant.</p><h3 class="article-body__section" id="section-liquid-glass-fixes"><span>Liquid Glass fixes</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="aBR3HP2VVMPQteUEbMehfF" name="WWDC 2025 — June 9 _ Apple 58-49 screenshot" alt="Clear Command Center" src="https://cdn.mos.cms.futurecdn.net/aBR3HP2VVMPQteUEbMehfF.png" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Apple)</span></figcaption></figure><p>Liquid Glass was the major design overhaul introduced last year, but some users weren’t exactly happy with it, as it drew criticism for its lack of contrast, harsh transparency, and poor sidebar readability.</p><p>According to Bloomberg’s Mark Gurman, <a href="https://www.tomsguide.com/phones/iphones/liquid-glass-will-be-sticking-around-for-ios-27-but-theres-some-good-news">macOS 27 will have a visual tune-up to address these complaints</a>. If true, we could see the sleek, polished look that Apple’s design team originally intended. There are also reports of a Mac-adapted version of the iPhone’s Dynamic Island coming to the menu bar.</p><h3 class="article-body__section" id="section-built-in-app-upgrades"><span>Built-in app upgrades</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="EyYgyZa5ktC9tLjhxr3ZwE" name="TG_MacBook-Pro-16_M1-Max_LIST-1.jpg" alt="MacBook Pro 2021 (16-inch) review unit sitting on a coffee table" src="https://cdn.mos.cms.futurecdn.net/EyYgyZa5ktC9tLjhxr3ZwE.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>A feature that’s also expected for iOS 27 and iPadOS 27 will bring three AI-powered tools to Photos. This includes <a href="https://www.tomsguide.com/phones/iphones/ios-27-reportedly-getting-ai-photo-editing-overhaul-heres-all-the-new-features">Extend, Enhance, and Reframe</a>. The first two are self-explanatory, while Reframe is designed to change the perspective in spatial photos seen in 3D.</p><p>For fans of the Safari browser, a new AI feature is rumored to automatically categorize and organize browser tabs into clean, contextual groups. If you frequently have dozens of tabs open, this should be a major win.</p><p>Since macOS 27 isn’t a huge overhaul from last year, the team has reportedly focused on fixing bugs and improving performance. As with OS X Snow Leopard, a chunk of code is being optimized for raw efficiency, stability, and better battery life. The latter would be especially interesting given that MacBooks with M-series chips already have epic battery life.</p><h3 class="article-body__section" id="section-preparing-for-touchscreen-macs"><span>Preparing for touchscreen Macs</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="bYKZ5S3aKLFWZQPU3t6aZJ" name="Intricuit Magic Screen" alt="Intricuit Magic Screen" src="https://cdn.mos.cms.futurecdn.net/bYKZ5S3aKLFWZQPU3t6aZJ.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>WWDC usually focuses on software, but we have seen hardware announcements, such as the <a href="https://www.tomsguide.com/reviews/macbook-air-2022-m2">M2 MacBook Air</a> at WWDC 2022. Rumors suggest that <a href="https://www.tomsguide.com/computing/macbooks/a-touchscreen-macbook-is-reportedly-on-the-way-but-it-might-not-be-what-you-want">Apple is working on the first touchscreen MacBook</a>, so it’s possible it could debut at WWDC 2026 — or at least be teased.</p><p>To take advantage of a touchscreen, macOS 27 will reportedly have a dynamic user interface that adjusts on the fly. For instance, if you click on an item with the mouse cursor, the UI remains compact. If you tap the screen, menus and controls will automatically expand to be touch-friendly. It should also incorporate iPad-style gestures like fast scrolling and pinch-to-zoom.</p><p>Of all the rumors we’ve heard, this one is arguably the most exciting and would bring something substantially new to Macs. I’m curious to see if these touch features will be exclusive to the rumored <a href="https://www.tomsguide.com/computing/laptops/macbook-ultra-everything-we-know-so-far">MacBook Ultra</a>.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-Xk3M3X"></div>                            </div>                            <script src="https://kwizly.com/embed/Xk3M3X.js" async></script><h3 class="article-body__section" id="section-macos-27-outlook"><span>macOS 27: Outlook</span></h3><p>If rumors are correct, then we shouldn’t see a massive overhaul of macOS 27. That said, an improved Siri could actually be a game-changer if it’s as helpful as intended. The same is true if MacBooks with touchscreens get announced.</p><p>Nothing is set in stone, so let’s look forward to WWDC giving us some concrete answers. June 8 is almost here, so it won’t be long. We’ll be live on the ground covering the event as it happens, so keep it locked here for the latest!</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/phones/iphones/how-to-watch-the-apple-wwdc-2026-keynote-live">How to watch the Apple WWDC 2026 keynote live</a></li><li><a href="https://www.tomsguide.com/phones/iphones/wwdc-2026-7-biggest-announcements-we-expect">Apple WWDC 2026 event — 9 biggest announcements we expect</a></li><li><a href="https://www.tomsguide.com/computing/macos/ive-been-covering-apple-events-for-8-years-heres-what-im-excited-for-from-wwdc-2026">Here's what I'm excited for from WWDC 2026</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Vibe coding is coming to Windows — how Microsoft Copilot turns anyone into a creator ]]></title>
                                                                                                <dc:content><![CDATA[ <p>The AI Age has begun, and our digital assistants are ready and waiting to take on translation, transcription, complex calculations and many other processes. What used to take hours can now be achieved with the right prompts and tools in just minutes.</p><p>The same can be said of software development. Whether building apps to share with the world or just building tools to solve issues you’re facing in your daily workflows, <a href="https://www.tomsguide.com/ai/i-write-about-ai-for-a-living-and-vibe-coding-is-going-to-change-everything-heres-why">“vibe coding” is here to stay</a> and has democratized the development process for all. </p><p>Ten years ago, building software required years of programming knowledge. Now, you can describe an app in plain English, and AI can generate large portions of it for you. When you need to refine or debug, the AI will do that for you too. Microsoft's Copilot lays claim to be a particularly useful co-developer basically since it’s baked into just about every facet of Windows by now.</p><h2 id="what-vibe-coding-actually-means">What 'vibe coding' actually means</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1200px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="cGuhwEyqrXLG6iuwGBu29h" name="GitHub-Copilot-(credit Shutterstock)" alt="Microsoft Build press images" src="https://cdn.mos.cms.futurecdn.net/cGuhwEyqrXLG6iuwGBu29h.jpg" mos="" align="middle" fullscreen="" width="1200" height="675" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft)</span></figcaption></figure><p>Vibe coding is all about making sure you’re feeling comfortable while building. To that end, it relies on natural language input to build code that would otherwise have taken years to learn, like asking for a certain UI element to be resized, or suggesting color changes.</p><p>It’s less about digging through code, and more about explaining what you want: Intent over syntax. Copilot is already doing much of the lifting for the development community, too.</p><p>GitHub Copilot helps suggest how to finish lines of code while you’re in the zone, while you iterate using words instead of numbers and brackets. <a href="https://www.tomsguide.com/ai/a-guide-to-agentic-ai-how-windows-is-going-to-do-more-things-for-you">Agentic AI can run in the background</a> while you’re working on Task A, getting Tasks B to Z done down to your specifications.</p><p>It’s not just apps, either. Ask Copilot to put together a spreadsheet that tracks your workouts, or a website for your personal blog, and it’ll do just that while following guardrails you put in place.</p><h2 id="why-copilot">Why Copilot?</h2><p>Microsoft is in a unique spot when it comes to AI integration, because it’s running it across the Windows OS that <em>millions</em> of people use daily. Oh, and it also owns GitHub, Azure servers, enterprise apps, and much more.</p><p>There’s an argument to be made that Microsoft is very close to creating the ultimate “vibe coding ecosystem” where Copilot writes code, Windows tests it, Azure deploys it, and GitHub distributes it. It could mean that having access to Microsoft’s Copilot AI can turn you from a solo bedroom dev into an app entrepreneur who’s able to share projects across the globe.</p><p>An app factory in your home? That’s the dream.</p><h2 id="following-a-precedent">Following a precedent</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="gEJ6YcYEpSoiPbQZqEAwJ7" name="Woman on laptop" alt="Woman on laptop" src="https://cdn.mos.cms.futurecdn.net/gEJ6YcYEpSoiPbQZqEAwJ7.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>OK, we’re not quite there yet, but it feels like Copilot is on the cusp of delivering something that we’ve not seen since, well, ever.</p><p>That kind of code-to-user pipeline is unheard of right now, but there are other examples of how AI and web tools have smoothed out challenging computing and design concepts.</p><p>It’s not all that long ago that you’d need pro-level software like Photoshop to make an awesome design, but now Canva can build what you’re looking for in minutes.</p><p>It used to take hours of research to compare products you were trying to decide between, but AI tools like Claude, ChatGPT and our own <a href="https://www.tomsguide.com/products">Tom's Guide Product Finder</a> can now pull up every minor detail with ease.</p><p>Microsoft now stands on the verge of doing something similar for every aspiring developer, letting you build something for your phone, your PC, or someone else’s screen and provide support after release, too.</p><h2 id="what-about-the-risks">What about the risks?</h2><p>That’s not to say there’s not due diligence needed when building an app through an AI tool. Bugs will need to be ironed out, and security best practices will be imperative.</p><p>After all, if you build an app in 5 minutes but it requires a month of fixes afterward, is the process really as smooth as you need it to be?</p><p>From another perspective, however, it means development teams will still be needed, and with the power of GitHub and Azure, you could even build an app by day and help others fix theirs by night.</p><h2 id="looking-out-for-the-little-guy">Looking out for the little guy</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="QWK2Lmd9N6RQDaJqAj2w3n" name="GettyImages-1189144531E.jpg" alt="Programmers and developer teams are coding and developing software" src="https://cdn.mos.cms.futurecdn.net/QWK2Lmd9N6RQDaJqAj2w3n.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p>If you’re a teacher building a bespoke app for a single lesson, you can put together a small piece of interactive software in minutes, built to your exact specifications. New parents can automate bedtime, feeding, and chore schedules, while aspiring artists can build a professional website to showcase their work.</p><p>Small businesses can avoid expensive accounting tools and keep everything in-house, using Copilot to jot down Excel formulas they could only have dreamt of.</p><p>The potential applications are colossal, and it could end up feeling like a second coming of Windows 11. Forget Windows 12, you could be telling your PC what applications you need to get through the day more quickly and watching them build in real time.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/the-future-of-windows-11-what-is-microsoft-building-next">The future of Windows 11 — what is Microsoft building next?</a></li><li><a href="https://www.tomsguide.com/ai/i-reclaimed-15-hours-this-week-with-ai-agents-here-is-the-exact-setup-i-used-to-automate-my-workflow">I reclaimed 15 hours this week with AI Agents — here is the exact setup I used to automate my workflow</a></li><li><a href="https://www.tomsguide.com/ai/google-gemini/google-unveils-gemini-spark-a-24-7-personal-ai-agent-that-could-be-a-game-changer-for-agentic-ai">Google unveils Gemini Spark — a '24/7 personal AI agent'</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/windows-operating-systems/vibe-coding-is-coming-to-windows-how-microsoft-copilot-turns-anyone-into-a-creator</link>
                                                                            <description>
                            <![CDATA[ Vibe coding is going mainstream and Microsoft is in a unique position to capitalize with Copilot integrating itself across the Windows platform. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">Nt9nCiuXcvwTPHxdNYNkBK</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/QWf8Be7J98BCAJpgkMdu9Z-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 06 Jun 2026 08:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Windows Operating Systems]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                                                                                    <dc:creator><![CDATA[ Lloyd Coombes ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/xcWocVTwa9yiwXRs559XNA.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Lloyd Coombes is a freelance tech and fitness writer. He&#039;s an expert in all things Apple as well as in computer and gaming tech, with previous works published on TechRadar, Tom&#039;s Guide, Live Science and more. You&#039;ll find him regularly testing the latest MacBook or iPhone, but he spends most of his time writing about video games as Gaming Editor for the Daily Star. He also covers board games and virtual reality, just to round out the nerdy pursuits.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/QWf8Be7J98BCAJpgkMdu9Z-1280-80.jpg">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Windows 11 Copilot]]></media:description>                                                            <media:text><![CDATA[Windows 11 Copilot]]></media:text>
                                <media:title type="plain"><![CDATA[Windows 11 Copilot]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/QWf8Be7J98BCAJpgkMdu9Z-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The AI Age has begun, and our digital assistants are ready and waiting to take on translation, transcription, complex calculations and many other processes. What used to take hours can now be achieved with the right prompts and tools in just minutes.</p><p>The same can be said of software development. Whether building apps to share with the world or just building tools to solve issues you’re facing in your daily workflows, <a href="https://www.tomsguide.com/ai/i-write-about-ai-for-a-living-and-vibe-coding-is-going-to-change-everything-heres-why">“vibe coding” is here to stay</a> and has democratized the development process for all. </p><p>Ten years ago, building software required years of programming knowledge. Now, you can describe an app in plain English, and AI can generate large portions of it for you. When you need to refine or debug, the AI will do that for you too. Microsoft's Copilot lays claim to be a particularly useful co-developer basically since it’s baked into just about every facet of Windows by now.</p><h2 id="what-vibe-coding-actually-means">What 'vibe coding' actually means</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1200px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="cGuhwEyqrXLG6iuwGBu29h" name="GitHub-Copilot-(credit Shutterstock)" alt="Microsoft Build press images" src="https://cdn.mos.cms.futurecdn.net/cGuhwEyqrXLG6iuwGBu29h.jpg" mos="" align="middle" fullscreen="" width="1200" height="675" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft)</span></figcaption></figure><p>Vibe coding is all about making sure you’re feeling comfortable while building. To that end, it relies on natural language input to build code that would otherwise have taken years to learn, like asking for a certain UI element to be resized, or suggesting color changes.</p><p>It’s less about digging through code, and more about explaining what you want: Intent over syntax. Copilot is already doing much of the lifting for the development community, too.</p><p>GitHub Copilot helps suggest how to finish lines of code while you’re in the zone, while you iterate using words instead of numbers and brackets. <a href="https://www.tomsguide.com/ai/a-guide-to-agentic-ai-how-windows-is-going-to-do-more-things-for-you">Agentic AI can run in the background</a> while you’re working on Task A, getting Tasks B to Z done down to your specifications.</p><p>It’s not just apps, either. Ask Copilot to put together a spreadsheet that tracks your workouts, or a website for your personal blog, and it’ll do just that while following guardrails you put in place.</p><h2 id="why-copilot">Why Copilot?</h2><p>Microsoft is in a unique spot when it comes to AI integration, because it’s running it across the Windows OS that <em>millions</em> of people use daily. Oh, and it also owns GitHub, Azure servers, enterprise apps, and much more.</p><p>There’s an argument to be made that Microsoft is very close to creating the ultimate “vibe coding ecosystem” where Copilot writes code, Windows tests it, Azure deploys it, and GitHub distributes it. It could mean that having access to Microsoft’s Copilot AI can turn you from a solo bedroom dev into an app entrepreneur who’s able to share projects across the globe.</p><p>An app factory in your home? That’s the dream.</p><h2 id="following-a-precedent">Following a precedent</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="gEJ6YcYEpSoiPbQZqEAwJ7" name="Woman on laptop" alt="Woman on laptop" src="https://cdn.mos.cms.futurecdn.net/gEJ6YcYEpSoiPbQZqEAwJ7.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>OK, we’re not quite there yet, but it feels like Copilot is on the cusp of delivering something that we’ve not seen since, well, ever.</p><p>That kind of code-to-user pipeline is unheard of right now, but there are other examples of how AI and web tools have smoothed out challenging computing and design concepts.</p><p>It’s not all that long ago that you’d need pro-level software like Photoshop to make an awesome design, but now Canva can build what you’re looking for in minutes.</p><p>It used to take hours of research to compare products you were trying to decide between, but AI tools like Claude, ChatGPT and our own <a href="https://www.tomsguide.com/products">Tom's Guide Product Finder</a> can now pull up every minor detail with ease.</p><p>Microsoft now stands on the verge of doing something similar for every aspiring developer, letting you build something for your phone, your PC, or someone else’s screen and provide support after release, too.</p><h2 id="what-about-the-risks">What about the risks?</h2><p>That’s not to say there’s not due diligence needed when building an app through an AI tool. Bugs will need to be ironed out, and security best practices will be imperative.</p><p>After all, if you build an app in 5 minutes but it requires a month of fixes afterward, is the process really as smooth as you need it to be?</p><p>From another perspective, however, it means development teams will still be needed, and with the power of GitHub and Azure, you could even build an app by day and help others fix theirs by night.</p><h2 id="looking-out-for-the-little-guy">Looking out for the little guy</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="QWK2Lmd9N6RQDaJqAj2w3n" name="GettyImages-1189144531E.jpg" alt="Programmers and developer teams are coding and developing software" src="https://cdn.mos.cms.futurecdn.net/QWK2Lmd9N6RQDaJqAj2w3n.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p>If you’re a teacher building a bespoke app for a single lesson, you can put together a small piece of interactive software in minutes, built to your exact specifications. New parents can automate bedtime, feeding, and chore schedules, while aspiring artists can build a professional website to showcase their work.</p><p>Small businesses can avoid expensive accounting tools and keep everything in-house, using Copilot to jot down Excel formulas they could only have dreamt of.</p><p>The potential applications are colossal, and it could end up feeling like a second coming of Windows 11. Forget Windows 12, you could be telling your PC what applications you need to get through the day more quickly and watching them build in real time.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/the-future-of-windows-11-what-is-microsoft-building-next">The future of Windows 11 — what is Microsoft building next?</a></li><li><a href="https://www.tomsguide.com/ai/i-reclaimed-15-hours-this-week-with-ai-agents-here-is-the-exact-setup-i-used-to-automate-my-workflow">I reclaimed 15 hours this week with AI Agents — here is the exact setup I used to automate my workflow</a></li><li><a href="https://www.tomsguide.com/ai/google-gemini/google-unveils-gemini-spark-a-24-7-personal-ai-agent-that-could-be-a-game-changer-for-agentic-ai">Google unveils Gemini Spark — a '24/7 personal AI agent'</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ The future of Windows 11 — what is Microsoft building next? ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Now that <a href="https://www.tomsguide.com/news/live/microsoft-build-2026">Microsoft Build 2026</a> is officially in the can, a clearer picture of the future of Windows 11 has appeared. Rather than announcing <a href="https://www.tomsguide.com/computing/windows-operating-systems/im-a-windows-user-and-these-are-5-upgrades-i-want-from-windows-12">Windows 12</a>, Microsoft is utterly dedicated to its current OS. That doesn’t mean the operating system you’re currently using is going to remain the same, though. Far from it. </p><p>After CEO Satya Nadella wrapped his keynote, it was hard to shake the feeling that the traditional desktop OS may soon be a thing of the past. Microsoft’s focus seems to be squarely aimed on delivering an AI-centred platform, where agentic systems are cooked into every corner of the Windows 11 experience. </p><p>Perhaps the main takeaway from Build concerning Windows 11’s future is that the OS could well make your day job easier going forward… well, unless you're a trapeze artist or a lion tamer. Using Microsoft IQ and MAI-Thinking-1, always-on AI agents will deploy real workplace knowledge to help users structure their daily workflow. The first of these to be announced was Microsoft Scout, and it could be a legit lifesaver for folks who struggle to organize hectic work schedules.    </p><p>Microsoft is giving developers more tools to assist users with day-to-day tasks. That’s where the GitHub Copilot app (that uses the Big M’s new reasoning model) enters the equation. It’s available in preview to <a href="https://www.microsoft.com/en-us/windowsinsider/" target="_blank">Microsoft Insider Program</a> members now, and it’s just one of a number of productivity-focused features that could transform Windows 11 going forward. Let’s get into what that shiny new future might look like.</p><h2 id="scout-and-about">Scout and about</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1200px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="qirrUcA4m4GjSrpyJXaaug" name="Microsoft-Scout (credit Microsoft)" alt="Microsoft Build press images" src="https://cdn.mos.cms.futurecdn.net/qirrUcA4m4GjSrpyJXaaug.jpg" mos="" align="middle" fullscreen="" width="1200" height="675" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft)</span></figcaption></figure><p>Following the latest Microsoft Build keynote, there can be little doubt as to where Microsoft’s focus is on when it comes to the future of Windows 11. Productivity-focused AI agents are going to play a key part in the evolution of the operating system, which is where <a href="https://www.microsoft.com/en-us/microsoft-365/blog/2026/06/02/introducing-microsoft-scout-your-always-on-personal-agent/" target="_blank">Microsoft Scout</a> enters the picture. </p><p>Available now to Microsoft Frontier customers, Scout is Microsoft’s first Autopilot agent. Focused on full Microsoft 365 app integration, this “always on” agentic AI can operate across the cloud, web and desktop, allowing users to connect to Outlook, Teams and OneDrive. To put that in more digestible terms, think of Scout as your very own personal assistant; one that constantly organizes your day as it learns and adapts to how you work. </p><p>Whereas traditional agents constantly needed to be prompted, Scout has been designed to work autonomously, allowing it to take proactive actions. This means it can help shape your working day by coordinating your schedule through 365 apps, be it organizing meetings across time zones or monitoring your inbox and Teams to flag any outstanding responses that need to be made. In theory, this should mean you no longer have to constantly flit between emails, docs and browser tabs, as much of this plate-spinning busywork can be delegated to Scout. </p><p>Powered by <a href="https://www.tomsguide.com/ai/openclaw-is-the-viral-ai-assistant-that-lives-on-your-device-what-you-need-to-know">OpenClaw</a>, Scout monitors your working habits through Work IQ, in turn becoming more efficient at helping you complete tasks the more it observes your daily practices. Clearly, Scout is going to be more useful for business environments than Windows 11 users lounging around on the couch. Yet if this Autopilot agent lives up to its virtual co-worker potential, it could genuinely change the way people go about their jobs.</p><h2 id="windows-is-thinking-on-its-feet">Windows is thinking on its feet</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="chUUcacsFZEJ3n3N5vK9pW" name="Microsoft Build 2025" alt="Microsoft Build 2025." src="https://cdn.mos.cms.futurecdn.net/chUUcacsFZEJ3n3N5vK9pW.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft)</span></figcaption></figure><p>Another huge announcement at Build — one that is directly tied to Scout — was the unveiling of <a href="https://microsoft.ai/news/building-a-hillclimbing-machine-launching-seven-new-mai-models/">MAI-Thinking-1</a>. Microsoft’s new reasoning model helps the Autopilot AI out with planning tasks, and senior product manager Tanaya Yadav briefly demoed the tech during the keynote. While the task of training Scout could take hours, the endgame benefit should hopefully be AI agents that prove hugely useful for workflow purposes. </p><p>MAI Thinking could have a big and broad impact across Windows 11 going forward. With the future of Copilot and 365 tied to agentic systems, this reasoning model may shape Microsoft’s AI-focused goals going forward. </p><p>The pivot to MAI is also interesting in that it looks to free Microsoft from being reliant on OpenAI. As Windows 11 continues to evolve, Copilot should primarily take instructions from the Redmond giant’s internal reasoning tech. MAI is just the starting point too, as Microsoft’s AI Superintelligence Team (that must be one seriously cool business card) is also developing a further six in-house reasoning models.</p><h2 id="say-hello-to-solara">Say hello to Solara</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1200px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="B7VDkWBHZGqQNifR89nryg" name="Project-Solara (credit Microsoft)" alt="Microsoft Build press images" src="https://cdn.mos.cms.futurecdn.net/B7VDkWBHZGqQNifR89nryg.jpg" mos="" align="middle" fullscreen="" width="1200" height="675" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft)</span></figcaption></figure><p>One of the most pleasant surprises to come out of Build this year was the announcement of <a href="https://commandline.microsoft.com/project-solara-build-2026/" target="_blank">Project Solara</a>. This chip-to-cloud platform has been built from the ground up to ensure interacting with AI agents works in seamless fashion. </p><p>Probably the coolest feature of Solara is its eye-catching form factor. Because it’s been designed for spaces where traditional PCs and laptops might not be around, Microsoft has focused on delivering products that don’t take up much space. Enter devices which resemble a smart clock, and even more niftily, a work ID badge. </p><p>The clock-aping gizmo is intended to remain stationary, whereas the badge has been designed to be used while you’re on the move. On the latter, it can be unlocked with your fingerprint. The badge can even record video and take voice instructions, and it will subsequently clean up said audio so that you can send the note to colleagues in easily decipherable chunks.    </p><p>Engineered with a new era of AI agents in mind, Project Solara takes cues from Android devices. The daring design of this new agent-focused OS seems to suggest Microsoft is fully committed to a new era of AI that thumbs its nose at traditional hardware by embracing imaginative new forms.</p><h2 id="security-is-being-geared-for-ai-agents">Security is being geared for AI agents</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1200px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="rCPAPKNcNyTT7HNtYFu6Dh" name="Microsoft-Execution-Containers (credit Windows Forum)" alt="Microsoft Build press images" src="https://cdn.mos.cms.futurecdn.net/rCPAPKNcNyTT7HNtYFu6Dh.jpg" mos="" align="middle" fullscreen="" width="1200" height="675" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft)</span></figcaption></figure><p>With Microsoft increasingly pivoting towards AI as the future of Windows 11 takes shape, the matter of security becomes ever more vital. While the prospect of Scout mapping out your workday as you sip on your morning mocha is undoubtedly an appealing one for folks who get easily flustered, protections do need to be in place. </p><p>This is where the announcement of <a href="https://blogs.windows.com/windowsdeveloper/2026/06/02/windows-platform-security-for-ai-agents/">Microsoft Execution Containers</a> (MXC) becomes crucial. Now in preview, this security framework allows developers to run containment boundaries that are enforced by Windows 11. Essentially, a dev describes the security parameters it needs its agents to adhere to, then the OS enforces them everywhere these agentic systems run. </p><p>Now, while this probably sounds roughly as exciting to you as the prospect of dining in a restaurant that only serves steamed celery, MXC is important to the future of AI agents. As they become more autonomous, it’s crucial that these agents can’t accidentally access sensitive info or make decisions they’re not permitted to. With MXC in place, admins should be able to rest safe in the knowledge that this agent-native runtime is operating under safe security parameters.</p><h2 id="github-copilot-shifts-the-focus-to-devs">GitHub Copilot shifts the focus to devs</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1200px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="cGuhwEyqrXLG6iuwGBu29h" name="GitHub-Copilot-(credit Shutterstock)" alt="Microsoft Build press images" src="https://cdn.mos.cms.futurecdn.net/cGuhwEyqrXLG6iuwGBu29h.jpg" mos="" align="middle" fullscreen="" width="1200" height="675" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft)</span></figcaption></figure><p>Now available in preview to developers, the GitHub Copilot app is an AI-assisted engineering platform that brings agentic workflows to native desktop experiences. One of the major Build takeaways concerning the app is how it will work autonomously, though not in an unfettered manner (devs will most definitely still be in control). </p><p>GitHub Copilot will use the newly revealed MAI-Code-1-Flash, an internal coding model that should improve coding performance through latency reduction. The deployment of this MAI model is to ensure the GitHub Copilot app is more aware of good workspace practices. In turn, this allows it to function like a true agentic assistant, rather than a glorified chatbot that continually needs to be prompted. </p><p>Going forward, GitHub Copilot should make developers' lives easier, taking some coding pressures off their shoulders as it tests and deploys code with genuine autonomy thanks to AI agents. In an ideal world, this app will decrease developer workloads, rather than physically replacing them. </p><p>Again, none of this is particularly focused on the Average Joe/Jenny Windows 11 experience. Then again, Build has always been focused on developers over consumers. Ultimately, the agentic benefits of GitHub Copilot that developers receive will ideally lead to smoother OS experiences for all of us.</p><h2 id="the-future-of-windows-11-centers-around-ai">The future of Windows 11 centers around AI</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Yd5Q8e8pXNBAzLmiovivbY" name="Microsoft Build 2025" alt="Microsoft Build 2025." src="https://cdn.mos.cms.futurecdn.net/Yd5Q8e8pXNBAzLmiovivbY.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft)</span></figcaption></figure><p>If Windows 11 is just a gateway that allows you to jump into the <a href="https://www.tomsguide.com/best-picks/best-PC-games">best PC games</a>, there likely wasn’t much for you to get excited about coming out of Build 2026. Yet if you’re a dev or someone who is looking to use AI tools to coordinate workflows, the latest keynote definitely provided a peek into the future of Microsoft’s OS.</p><p>Rather than revealing <a href="https://www.tomsguide.com/news/windows-12">Windows 12</a>, Microsoft doubled down on its commitment to its current operating system. Moving forward, AI is clearly going to be the cornerstone of everyday Windows functions. With agentic systems like Microsoft Scout leaning on reasoning models to help business-minded folks map out their day by coordinating schedules, and Project Solara devices that have been crafted to replace traditional hardware, the focus is on agents that have real autonomy in order to assist users. The Redmond Giant is going hard on a vision for Windows 11 where agentic AI is baked into its very fabric.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/15-top-windows-11-tips-everyone-needs-to-know">15 top Windows 11 tips everyone needs to know</a></li><li><a href="https://www.tomsguide.com/computing/laptops/best-windows-laptops">The best Windows laptops of 2026, tested by experts</a></li><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/i-sped-up-my-sluggish-windows-11-pc-with-these-6-free-tricks-heres-how">I sped up my sluggish Windows 11 PC with these 6 free tricks — here's how</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/windows-operating-systems/the-future-of-windows-11-what-is-microsoft-building-next</link>
                                                                            <description>
                            <![CDATA[ The latest Microsoft Build keynote pointed to a future for Windows 11 where the focus is on deeply baked in agentic systems that could transform the way you work. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">VGAvj9wCPSfuDoxq9vbAvQ</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/rPdwCgeWPVoHuMhfpUNv5h-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 03 Jun 2026 15:46:18 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Windows Operating Systems]]></category>
                                                    <category><![CDATA[Computing Peripherals]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                                                                <author><![CDATA[ dave.meikleham@futurenet.com (Dave Meikleham) ]]></author>                    <dc:creator><![CDATA[ Dave Meikleham ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/Rda8e7jGfyTdZLWYJQQ8VY.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Dave is a computing editor at Tom’s Guide and covers everything from cutting-edge laptops, the latest GPU tech, to ultrawide monitors. When he’s not worrying about dead pixels, Dave enjoys regularly rebuilding his PC for absolutely no reason at all. He built his first rig over 20 years ago, and he’s gone through more motherboards than he’s had hot dinners. Probably. &lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;In a previous life, he worked as a video game journalist during a career spanning the best part of two decades. Over that time he worked across both online and print, with bylines for GamesRadar+, PC Gamer, TechRadar, Edge and the Official UK PlayStation Magazine. He’s almost amassed an immeasurable amount of bad puns.&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;An avid PC and console gamer, Dave enjoys breaking out Fraps way too often as he obsesses over frame rates. Despite owning a graphics card that costs roughly the same as your average used car, he still enjoys gaming on the go and is regularly glued to his Switch. Away from tech, most of Dave’s time is taken up by walking his husky, obsessing about his various OLED displays and sweating over the fitness of half a dozen Arsenal players on any given week.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/rPdwCgeWPVoHuMhfpUNv5h-1280-80.jpg">
                                                            <media:credit><![CDATA[Microsoft]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Microsoft Build press images]]></media:description>                                                            <media:text><![CDATA[Microsoft Build press images]]></media:text>
                                <media:title type="plain"><![CDATA[Microsoft Build press images]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/rPdwCgeWPVoHuMhfpUNv5h-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Now that <a href="https://www.tomsguide.com/news/live/microsoft-build-2026">Microsoft Build 2026</a> is officially in the can, a clearer picture of the future of Windows 11 has appeared. Rather than announcing <a href="https://www.tomsguide.com/computing/windows-operating-systems/im-a-windows-user-and-these-are-5-upgrades-i-want-from-windows-12">Windows 12</a>, Microsoft is utterly dedicated to its current OS. That doesn’t mean the operating system you’re currently using is going to remain the same, though. Far from it. </p><p>After CEO Satya Nadella wrapped his keynote, it was hard to shake the feeling that the traditional desktop OS may soon be a thing of the past. Microsoft’s focus seems to be squarely aimed on delivering an AI-centred platform, where agentic systems are cooked into every corner of the Windows 11 experience. </p><p>Perhaps the main takeaway from Build concerning Windows 11’s future is that the OS could well make your day job easier going forward… well, unless you're a trapeze artist or a lion tamer. Using Microsoft IQ and MAI-Thinking-1, always-on AI agents will deploy real workplace knowledge to help users structure their daily workflow. The first of these to be announced was Microsoft Scout, and it could be a legit lifesaver for folks who struggle to organize hectic work schedules.    </p><p>Microsoft is giving developers more tools to assist users with day-to-day tasks. That’s where the GitHub Copilot app (that uses the Big M’s new reasoning model) enters the equation. It’s available in preview to <a href="https://www.microsoft.com/en-us/windowsinsider/" target="_blank">Microsoft Insider Program</a> members now, and it’s just one of a number of productivity-focused features that could transform Windows 11 going forward. Let’s get into what that shiny new future might look like.</p><h2 id="scout-and-about">Scout and about</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1200px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="qirrUcA4m4GjSrpyJXaaug" name="Microsoft-Scout (credit Microsoft)" alt="Microsoft Build press images" src="https://cdn.mos.cms.futurecdn.net/qirrUcA4m4GjSrpyJXaaug.jpg" mos="" align="middle" fullscreen="" width="1200" height="675" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft)</span></figcaption></figure><p>Following the latest Microsoft Build keynote, there can be little doubt as to where Microsoft’s focus is on when it comes to the future of Windows 11. Productivity-focused AI agents are going to play a key part in the evolution of the operating system, which is where <a href="https://www.microsoft.com/en-us/microsoft-365/blog/2026/06/02/introducing-microsoft-scout-your-always-on-personal-agent/" target="_blank">Microsoft Scout</a> enters the picture. </p><p>Available now to Microsoft Frontier customers, Scout is Microsoft’s first Autopilot agent. Focused on full Microsoft 365 app integration, this “always on” agentic AI can operate across the cloud, web and desktop, allowing users to connect to Outlook, Teams and OneDrive. To put that in more digestible terms, think of Scout as your very own personal assistant; one that constantly organizes your day as it learns and adapts to how you work. </p><p>Whereas traditional agents constantly needed to be prompted, Scout has been designed to work autonomously, allowing it to take proactive actions. This means it can help shape your working day by coordinating your schedule through 365 apps, be it organizing meetings across time zones or monitoring your inbox and Teams to flag any outstanding responses that need to be made. In theory, this should mean you no longer have to constantly flit between emails, docs and browser tabs, as much of this plate-spinning busywork can be delegated to Scout. </p><p>Powered by <a href="https://www.tomsguide.com/ai/openclaw-is-the-viral-ai-assistant-that-lives-on-your-device-what-you-need-to-know">OpenClaw</a>, Scout monitors your working habits through Work IQ, in turn becoming more efficient at helping you complete tasks the more it observes your daily practices. Clearly, Scout is going to be more useful for business environments than Windows 11 users lounging around on the couch. Yet if this Autopilot agent lives up to its virtual co-worker potential, it could genuinely change the way people go about their jobs.</p><h2 id="windows-is-thinking-on-its-feet">Windows is thinking on its feet</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="chUUcacsFZEJ3n3N5vK9pW" name="Microsoft Build 2025" alt="Microsoft Build 2025." src="https://cdn.mos.cms.futurecdn.net/chUUcacsFZEJ3n3N5vK9pW.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft)</span></figcaption></figure><p>Another huge announcement at Build — one that is directly tied to Scout — was the unveiling of <a href="https://microsoft.ai/news/building-a-hillclimbing-machine-launching-seven-new-mai-models/">MAI-Thinking-1</a>. Microsoft’s new reasoning model helps the Autopilot AI out with planning tasks, and senior product manager Tanaya Yadav briefly demoed the tech during the keynote. While the task of training Scout could take hours, the endgame benefit should hopefully be AI agents that prove hugely useful for workflow purposes. </p><p>MAI Thinking could have a big and broad impact across Windows 11 going forward. With the future of Copilot and 365 tied to agentic systems, this reasoning model may shape Microsoft’s AI-focused goals going forward. </p><p>The pivot to MAI is also interesting in that it looks to free Microsoft from being reliant on OpenAI. As Windows 11 continues to evolve, Copilot should primarily take instructions from the Redmond giant’s internal reasoning tech. MAI is just the starting point too, as Microsoft’s AI Superintelligence Team (that must be one seriously cool business card) is also developing a further six in-house reasoning models.</p><h2 id="say-hello-to-solara">Say hello to Solara</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1200px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="B7VDkWBHZGqQNifR89nryg" name="Project-Solara (credit Microsoft)" alt="Microsoft Build press images" src="https://cdn.mos.cms.futurecdn.net/B7VDkWBHZGqQNifR89nryg.jpg" mos="" align="middle" fullscreen="" width="1200" height="675" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft)</span></figcaption></figure><p>One of the most pleasant surprises to come out of Build this year was the announcement of <a href="https://commandline.microsoft.com/project-solara-build-2026/" target="_blank">Project Solara</a>. This chip-to-cloud platform has been built from the ground up to ensure interacting with AI agents works in seamless fashion. </p><p>Probably the coolest feature of Solara is its eye-catching form factor. Because it’s been designed for spaces where traditional PCs and laptops might not be around, Microsoft has focused on delivering products that don’t take up much space. Enter devices which resemble a smart clock, and even more niftily, a work ID badge. </p><p>The clock-aping gizmo is intended to remain stationary, whereas the badge has been designed to be used while you’re on the move. On the latter, it can be unlocked with your fingerprint. The badge can even record video and take voice instructions, and it will subsequently clean up said audio so that you can send the note to colleagues in easily decipherable chunks.    </p><p>Engineered with a new era of AI agents in mind, Project Solara takes cues from Android devices. The daring design of this new agent-focused OS seems to suggest Microsoft is fully committed to a new era of AI that thumbs its nose at traditional hardware by embracing imaginative new forms.</p><h2 id="security-is-being-geared-for-ai-agents">Security is being geared for AI agents</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1200px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="rCPAPKNcNyTT7HNtYFu6Dh" name="Microsoft-Execution-Containers (credit Windows Forum)" alt="Microsoft Build press images" src="https://cdn.mos.cms.futurecdn.net/rCPAPKNcNyTT7HNtYFu6Dh.jpg" mos="" align="middle" fullscreen="" width="1200" height="675" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft)</span></figcaption></figure><p>With Microsoft increasingly pivoting towards AI as the future of Windows 11 takes shape, the matter of security becomes ever more vital. While the prospect of Scout mapping out your workday as you sip on your morning mocha is undoubtedly an appealing one for folks who get easily flustered, protections do need to be in place. </p><p>This is where the announcement of <a href="https://blogs.windows.com/windowsdeveloper/2026/06/02/windows-platform-security-for-ai-agents/">Microsoft Execution Containers</a> (MXC) becomes crucial. Now in preview, this security framework allows developers to run containment boundaries that are enforced by Windows 11. Essentially, a dev describes the security parameters it needs its agents to adhere to, then the OS enforces them everywhere these agentic systems run. </p><p>Now, while this probably sounds roughly as exciting to you as the prospect of dining in a restaurant that only serves steamed celery, MXC is important to the future of AI agents. As they become more autonomous, it’s crucial that these agents can’t accidentally access sensitive info or make decisions they’re not permitted to. With MXC in place, admins should be able to rest safe in the knowledge that this agent-native runtime is operating under safe security parameters.</p><h2 id="github-copilot-shifts-the-focus-to-devs">GitHub Copilot shifts the focus to devs</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1200px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="cGuhwEyqrXLG6iuwGBu29h" name="GitHub-Copilot-(credit Shutterstock)" alt="Microsoft Build press images" src="https://cdn.mos.cms.futurecdn.net/cGuhwEyqrXLG6iuwGBu29h.jpg" mos="" align="middle" fullscreen="" width="1200" height="675" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft)</span></figcaption></figure><p>Now available in preview to developers, the GitHub Copilot app is an AI-assisted engineering platform that brings agentic workflows to native desktop experiences. One of the major Build takeaways concerning the app is how it will work autonomously, though not in an unfettered manner (devs will most definitely still be in control). </p><p>GitHub Copilot will use the newly revealed MAI-Code-1-Flash, an internal coding model that should improve coding performance through latency reduction. The deployment of this MAI model is to ensure the GitHub Copilot app is more aware of good workspace practices. In turn, this allows it to function like a true agentic assistant, rather than a glorified chatbot that continually needs to be prompted. </p><p>Going forward, GitHub Copilot should make developers' lives easier, taking some coding pressures off their shoulders as it tests and deploys code with genuine autonomy thanks to AI agents. In an ideal world, this app will decrease developer workloads, rather than physically replacing them. </p><p>Again, none of this is particularly focused on the Average Joe/Jenny Windows 11 experience. Then again, Build has always been focused on developers over consumers. Ultimately, the agentic benefits of GitHub Copilot that developers receive will ideally lead to smoother OS experiences for all of us.</p><h2 id="the-future-of-windows-11-centers-around-ai">The future of Windows 11 centers around AI</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Yd5Q8e8pXNBAzLmiovivbY" name="Microsoft Build 2025" alt="Microsoft Build 2025." src="https://cdn.mos.cms.futurecdn.net/Yd5Q8e8pXNBAzLmiovivbY.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft)</span></figcaption></figure><p>If Windows 11 is just a gateway that allows you to jump into the <a href="https://www.tomsguide.com/best-picks/best-PC-games">best PC games</a>, there likely wasn’t much for you to get excited about coming out of Build 2026. Yet if you’re a dev or someone who is looking to use AI tools to coordinate workflows, the latest keynote definitely provided a peek into the future of Microsoft’s OS.</p><p>Rather than revealing <a href="https://www.tomsguide.com/news/windows-12">Windows 12</a>, Microsoft doubled down on its commitment to its current operating system. Moving forward, AI is clearly going to be the cornerstone of everyday Windows functions. With agentic systems like Microsoft Scout leaning on reasoning models to help business-minded folks map out their day by coordinating schedules, and Project Solara devices that have been crafted to replace traditional hardware, the focus is on agents that have real autonomy in order to assist users. The Redmond Giant is going hard on a vision for Windows 11 where agentic AI is baked into its very fabric.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/15-top-windows-11-tips-everyone-needs-to-know">15 top Windows 11 tips everyone needs to know</a></li><li><a href="https://www.tomsguide.com/computing/laptops/best-windows-laptops">The best Windows laptops of 2026, tested by experts</a></li><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/i-sped-up-my-sluggish-windows-11-pc-with-these-6-free-tricks-heres-how">I sped up my sluggish Windows 11 PC with these 6 free tricks — here's how</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I've been covering Apple events for 8 years: Here's what I'm excited for from WWDC 2026 ]]></title>
                                                                                                <dc:content><![CDATA[ <p><a href="https://www.tomsguide.com/phones/iphones/wwdc-2026">Apple’s Worldwide Developers Conference</a>, or WWDC, returns on June 8, 2026. While Tom’s Guide will be covering the event live, there’s nothing quite like a good wishlist.</p><p>I’ve been a fan of Apple for decades, and since I moved into writing as a career, I’ve gone from a hand-me-down iMac to writing on the <a href="https://www.tomsguide.com/computing/ipads/ipad-pro-m5-review">iPad Pro M5</a> and covering Apple events for plenty of outlets in the meantime.</p><p>With that in mind, here are the three things I’m most excited about at WWDC 26.</p><h2 id="ipados">iPadOS</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="TUJmhtVWGraSXDJp3oy887" name="iPad Pro M5" alt="iPad Pro M5 on a blue background" src="https://cdn.mos.cms.futurecdn.net/TUJmhtVWGraSXDJp3oy887.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Apple)</span></figcaption></figure><p>For years, I’ve owned an iPad Pro and not really known why, because I basically use it for movies while travelling and reading books and digital magazines.</p><p>That all changed with the recent improvements to iPadOS, and while there’s still a way to go, last year’s iPadOS 26 felt like it <a href="https://www.tomsguide.com/computing/i-switched-from-my-laptop-to-the-ipad-pro-m5-and-its-now-a-tablet-i-can-finally-work-on">ticked plenty of boxes for me</a>.</p><p>Multitasking got a huge boost (and without Stage Manager, too!), apps got Menu Bar-like interfaces, the Journal app finally arrived, and we got Preview on an iPad at long last. Then there were background tasks and more, all of which coalesced into making the iPad feel fresh again. I loved it so much I picked up the M5 model.</p><p>As a result, I’m curious to know what Apple brings this year. Will we finally get multi-user support? Clamshell mode with an external monitor? The addition of small, utility apps? Time will tell.</p><h2 id="a-new-mac-mini">A new Mac Mini?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NPkgT3FdyUHiFWrEfxaAZo" name="Mac mini M4-05-LIST2" alt="The Mac mini M4 on top of a desk riser shelf" src="https://cdn.mos.cms.futurecdn.net/NPkgT3FdyUHiFWrEfxaAZo.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Sure, it’s not likely. Apple traditionally goes all-in on software for WWDC, but 2023 was a big year for hardware between M2 chips and Apple Vision Pro.</p><p>We’re expecting Apple Watch and iPhone around the usual September slot, but I can’t think of a better place to debut a new Mac Mini model than at WWDC with the devs who will have fallen in love with the prior versions.</p><p>Apple’s diminutive desktop is tough to get hold of, partially due to people getting particularly inventive with its AI potential, but it’s also a very capable family or work computer in its own right. With MacBook Neo turning Windows users into Mac newcomers, this could be a great time to showcase the desktop side of the product lineup.</p><h2 id="siri-and-gemini">Siri and Gemini</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="nChN6QF6WoLSu7FdeqPcdX" name="siri.shutterstock_2476041331" alt="Siri logo on phone" src="https://cdn.mos.cms.futurecdn.net/nChN6QF6WoLSu7FdeqPcdX.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>This is the big one, isn’t it? Apple Intelligence and Siri should go hand-in-hand, but it’s been anything but smooth sailing so far. In fact, I’d wager no one would have predicted Apple would be this far behind its peers.</p><p>I use Siri less than ever, leaning on just about anything else to get an answer for something, be that a Google Search or Claude, but if Apple can successfully work out a way to power its assistant with Google’s Gemini (<a href="https://www.tomsguide.com/ai/google-promises-siri-powered-by-gemini-is-coming-later-this-year">which it sounds like it will</a>) it could be like the ChatGPT connection taken to a whole new level.</p><p>What kind of additions can we expect? Well, we may be some way off of the screen-reading, context-aware Siri that was infamously confirmed to be vaporware a couple of years back, but we’re getting some big improvements worth the money Apple will have to siphon off to Google.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide </span></h3><ul><li><a href="https://www.tomsguide.com/phones/iphones/ios-27-and-siri-could-have-a-new-darker-look-at-wwdc-2026">iOS 27 and Siri could have a new darker look at WWDC 2026</a></li><li><a href="https://www.tomsguide.com/news/live/computex-2026">Computex 2026 Day 1 LIVE — Nvidia RTX Spark tested, and can Dell XPS 13 beat MacBook Neo?</a></li><li><a href="https://www.tomsguide.com/computing/i-spoke-to-nvidia-ceo-jensen-huang-about-rtx-spark-he-is-willing-to-work-on-an-rtx-gaming-handheld-n2x-and-n3x-are-already-planned-and-the-chip-is-more-like-r2d2-than-a-laptop-cpu">I spoke to Nvidia CEO Jensen Huang about RTX Spark — he is ‘willing to work’ on an RTX gaming handheld, N2X and N3X are already planned and the chip is 'more like R2D2’ than a laptop CPU</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/macos/ive-been-covering-apple-events-for-8-years-heres-what-im-excited-for-from-wwdc-2026</link>
                                                                            <description>
                            <![CDATA[ A trio of treats awaits at WWDC - here’s what I’m most excited for. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">rpk5Mu8tqto6FJQXXdmD3K</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/mBG2BLb2nByp25qbZsfocP-1280-80.png" type="image/png" length="0"></enclosure>
                                                                        <pubDate>Tue, 02 Jun 2026 10:44:44 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[macOS]]></category>
                                                    <category><![CDATA[Computing Peripherals]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                                                                                    <dc:creator><![CDATA[ Lloyd Coombes ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/xcWocVTwa9yiwXRs559XNA.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Lloyd Coombes is a freelance tech and fitness writer. He&#039;s an expert in all things Apple as well as in computer and gaming tech, with previous works published on TechRadar, Tom&#039;s Guide, Live Science and more. You&#039;ll find him regularly testing the latest MacBook or iPhone, but he spends most of his time writing about video games as Gaming Editor for the Daily Star. He also covers board games and virtual reality, just to round out the nerdy pursuits.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/png" url="https://cdn.mos.cms.futurecdn.net/mBG2BLb2nByp25qbZsfocP-1280-80.png">
                                                            <media:credit><![CDATA[Apple]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Mac Mini M4]]></media:description>                                                            <media:text><![CDATA[Mac Mini M4]]></media:text>
                                <media:title type="plain"><![CDATA[Mac Mini M4]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/mBG2BLb2nByp25qbZsfocP-1280-80.png" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p><a href="https://www.tomsguide.com/phones/iphones/wwdc-2026">Apple’s Worldwide Developers Conference</a>, or WWDC, returns on June 8, 2026. While Tom’s Guide will be covering the event live, there’s nothing quite like a good wishlist.</p><p>I’ve been a fan of Apple for decades, and since I moved into writing as a career, I’ve gone from a hand-me-down iMac to writing on the <a href="https://www.tomsguide.com/computing/ipads/ipad-pro-m5-review">iPad Pro M5</a> and covering Apple events for plenty of outlets in the meantime.</p><p>With that in mind, here are the three things I’m most excited about at WWDC 26.</p><h2 id="ipados">iPadOS</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="TUJmhtVWGraSXDJp3oy887" name="iPad Pro M5" alt="iPad Pro M5 on a blue background" src="https://cdn.mos.cms.futurecdn.net/TUJmhtVWGraSXDJp3oy887.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Apple)</span></figcaption></figure><p>For years, I’ve owned an iPad Pro and not really known why, because I basically use it for movies while travelling and reading books and digital magazines.</p><p>That all changed with the recent improvements to iPadOS, and while there’s still a way to go, last year’s iPadOS 26 felt like it <a href="https://www.tomsguide.com/computing/i-switched-from-my-laptop-to-the-ipad-pro-m5-and-its-now-a-tablet-i-can-finally-work-on">ticked plenty of boxes for me</a>.</p><p>Multitasking got a huge boost (and without Stage Manager, too!), apps got Menu Bar-like interfaces, the Journal app finally arrived, and we got Preview on an iPad at long last. Then there were background tasks and more, all of which coalesced into making the iPad feel fresh again. I loved it so much I picked up the M5 model.</p><p>As a result, I’m curious to know what Apple brings this year. Will we finally get multi-user support? Clamshell mode with an external monitor? The addition of small, utility apps? Time will tell.</p><h2 id="a-new-mac-mini">A new Mac Mini?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NPkgT3FdyUHiFWrEfxaAZo" name="Mac mini M4-05-LIST2" alt="The Mac mini M4 on top of a desk riser shelf" src="https://cdn.mos.cms.futurecdn.net/NPkgT3FdyUHiFWrEfxaAZo.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Sure, it’s not likely. Apple traditionally goes all-in on software for WWDC, but 2023 was a big year for hardware between M2 chips and Apple Vision Pro.</p><p>We’re expecting Apple Watch and iPhone around the usual September slot, but I can’t think of a better place to debut a new Mac Mini model than at WWDC with the devs who will have fallen in love with the prior versions.</p><p>Apple’s diminutive desktop is tough to get hold of, partially due to people getting particularly inventive with its AI potential, but it’s also a very capable family or work computer in its own right. With MacBook Neo turning Windows users into Mac newcomers, this could be a great time to showcase the desktop side of the product lineup.</p><h2 id="siri-and-gemini">Siri and Gemini</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="nChN6QF6WoLSu7FdeqPcdX" name="siri.shutterstock_2476041331" alt="Siri logo on phone" src="https://cdn.mos.cms.futurecdn.net/nChN6QF6WoLSu7FdeqPcdX.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>This is the big one, isn’t it? Apple Intelligence and Siri should go hand-in-hand, but it’s been anything but smooth sailing so far. In fact, I’d wager no one would have predicted Apple would be this far behind its peers.</p><p>I use Siri less than ever, leaning on just about anything else to get an answer for something, be that a Google Search or Claude, but if Apple can successfully work out a way to power its assistant with Google’s Gemini (<a href="https://www.tomsguide.com/ai/google-promises-siri-powered-by-gemini-is-coming-later-this-year">which it sounds like it will</a>) it could be like the ChatGPT connection taken to a whole new level.</p><p>What kind of additions can we expect? Well, we may be some way off of the screen-reading, context-aware Siri that was infamously confirmed to be vaporware a couple of years back, but we’re getting some big improvements worth the money Apple will have to siphon off to Google.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide </span></h3><ul><li><a href="https://www.tomsguide.com/phones/iphones/ios-27-and-siri-could-have-a-new-darker-look-at-wwdc-2026">iOS 27 and Siri could have a new darker look at WWDC 2026</a></li><li><a href="https://www.tomsguide.com/news/live/computex-2026">Computex 2026 Day 1 LIVE — Nvidia RTX Spark tested, and can Dell XPS 13 beat MacBook Neo?</a></li><li><a href="https://www.tomsguide.com/computing/i-spoke-to-nvidia-ceo-jensen-huang-about-rtx-spark-he-is-willing-to-work-on-an-rtx-gaming-handheld-n2x-and-n3x-are-already-planned-and-the-chip-is-more-like-r2d2-than-a-laptop-cpu">I spoke to Nvidia CEO Jensen Huang about RTX Spark — he is ‘willing to work’ on an RTX gaming handheld, N2X and N3X are already planned and the chip is 'more like R2D2’ than a laptop CPU</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Microsoft admits Windows users 'experienced some challenges' with the forced CoPilot key — now it's finally doing something about it ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Microsoft made the biggest change to Windows keyboards in 30 years by adding a dedicated <a href="https://www.tomsguide.com/news/windows-copilot-is-getting-its-own-key-on-the-keyboard-heres-why-thats-a-big-deal">Copilot key</a> to its <a href="https://www.tomsguide.com/news/windows-11-ai-copilot-now-available-to-try-heres-everything-you-can-do">Copilot+ PCs when they started rolling out </a>a couple of years ago. </p><p>Unfortunately, what looked like a means of leveraging Windows' massive adoption into an AI leadership position seems to have backfired. All it takes is a scroll through <a href="https://www.reddit.com/r/microsoft/comments/1oay0qg/the_copilot_key_was_a_terrible_idea/">Reddit</a> to see how much people dislike the button, and my colleague Tony Polanco called it the<a href="https://www.tomsguide.com/computing/microsoft-may-finally-fix-the-worst-thing-about-copilot-pcs"> worst thing about Copilot+ PCs last year</a>.</p><p>Now, Microsoft appears to be relenting by officially announcing it will let users remap the Copilot button back to the Right Ctrl or Context menu options it replaced. </p><p>In a recently published <a href="https://support.microsoft.com/en-us/accessibility/windows/copilot/understand-updates-to-the-copilot-key-on-windows-devices#cw" target="_blank">support document</a>, Microsoft stated: "Customers who rely on the Right Ctrl key or Context menu key for keyboard shortcuts or assistive technologies (such as screen readers) experienced some challenges to their workflows when using these devices."</p><p>"A Windows 11 update will ship later this year that will add a setting option to let you remap the Copilot key to act as the Context menu key or Right Ctrl key. When available, you can find this setting in: <strong>Settings</strong> > <strong>Bluetooth & devices</strong> > <strong>Keyboard</strong>" </p><div><blockquote><p>A Windows 11 update will ship later this year that will add a setting option to let you remap the Copilot key</p><p>Microsoft</p></blockquote></div><p>While I've never needed the Right Ctrl or Context menu for my own typical workflow, I've lost count of the number of times I've accidentally triggered Copilot by hitting that key. And while I use a number of different AI assistants over the course of a week, Copilot is very rarely among them.</p><div><blockquote><p>I've lost count of the number of times I've accidentally triggered Copilot by hitting that key.</p></blockquote></div><p>Some PC manufacturers do let users remap the Copilot key with their own on-device software and we have our own Tom's Guide tutorial on <a href="https://www.tomsguide.com/computing/windows-operating-systems/how-to-remap-the-copilot-key-on-windows-11">how to remap the Copilot key on Windows 11</a>. However, both of those solutions will require additional steps and won't be as simple as a native solution within the OS that applies universally to all Windows 11 laptops with a Copilot key.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1384px;"><p class="vanilla-image-block" style="padding-top:56.21%;"><img id="yvkdgPgnazUMRxASPCg3BA" name="copilotkeylead1.jpg" alt="Windows Copilot key" src="https://cdn.mos.cms.futurecdn.net/yvkdgPgnazUMRxASPCg3BA.jpg" mos="" align="middle" fullscreen="" width="1384" height="778" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft)</span></figcaption></figure><p>Microsoft hasn't specified exactly when we may see this update, only noting it will be in a "future Windows 11 update." Microsoft typically drops major updates for Windows in October and, occasionally, in September. So in all likelihood, it could still be another five months before we see this change rolled out. </p><p>In the meantime, here are <a href="https://www.tomsguide.com/ai/7-copilot-prompts-that-make-windows-11-way-more-useful">7 genius Copilot prompts that make Windows 11 instantly more useful</a>.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-XpJL8W"></div>                            </div>                            <script src="https://kwizly.com/embed/XpJL8W.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/online-security/do-you-use-microsoft-exchange-hackers-are-actively-exploiting-a-new-zero-day-flaw">Do you use Microsoft Exchange? Hackers are actively exploiting a new zero-day flaw</a></li><li><a href="https://www.tomsguide.com/home/home-office/corsair-platform-4-elevate-review">I’ve spent almost a year testing the Corsair Platform 4 — and it’s my gaming desk setup endgame</a></li><li><a href="https://www.tomsguide.com/computing/laptops/9-laptop-accessories-under-usd50-id-buy-with-my-own-money-right-now">9 laptop accessories under $50 I'd buy with my own money right now</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/windows-operating-systems/microsoft-admits-windows-users-experienced-some-challenges-with-the-forced-copilot-key-now-its-finally-doing-something-about-it</link>
                                                                            <description>
                            <![CDATA[ Microsoft has acknowledged the dedicated Copilot key on Windows hasn't been universally loved, and a future Windows 11 update will allow users to remap it. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">XmUBzPF3ccGMxGeJc8MVEB</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/p4EYbySyHqVQhoTUeNqd5Z-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 18 May 2026 12:27:36 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Windows Operating Systems]]></category>
                                                    <category><![CDATA[Copilot]]></category>
                                                    <category><![CDATA[Computing Peripherals]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                    <category><![CDATA[AI]]></category>
                                                                                                <author><![CDATA[ jeff.parsons@futurenet.com (Jeff Parsons) ]]></author>                    <dc:creator><![CDATA[ Jeff Parsons ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/7z3UTGGrmSokMKxTWHmhjX.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Jeff is U.K. Editor-in-Chief for Tom’s Guide looking after the day-to-day output of the site’s British contingent. &lt;/p&gt;&lt;p&gt;Rising early and heading straight for the coffee machine, Jeff loves nothing more than dialling into the zeitgeist of the day’s tech news. A journalist for over a decade, he&#039;s travelled around the world testing and reviewing any gadget he can get his hands on.&lt;/p&gt;&lt;p&gt;Before joining the team at Tom’s Guide, Jeff covered technology and science for two of the U.K.’s biggest national news sites: Metro.co.uk and the Daily Mirror. Memorable moments include getting lost in Vienna in an electric Audi, touring Lockheed Martin’s mile-long jet factory in Fort Worth and filming a Netflix documentary about Elon Musk in West London.&lt;/p&gt;&lt;p&gt;When not plugged into the current news agenda, editing or commissioning a series of articles or debating the merits of Apple vs Android, Jeff can usually be found out for a run trying to shave precious seconds off his PB. Or lifting weights in a vain attempt to offset the ageing process.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/p4EYbySyHqVQhoTUeNqd5Z-1280-80.jpg">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Windows 11 Copilot]]></media:description>                                                            <media:text><![CDATA[Windows 11 Copilot]]></media:text>
                                <media:title type="plain"><![CDATA[Windows 11 Copilot]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/p4EYbySyHqVQhoTUeNqd5Z-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Microsoft made the biggest change to Windows keyboards in 30 years by adding a dedicated <a href="https://www.tomsguide.com/news/windows-copilot-is-getting-its-own-key-on-the-keyboard-heres-why-thats-a-big-deal">Copilot key</a> to its <a href="https://www.tomsguide.com/news/windows-11-ai-copilot-now-available-to-try-heres-everything-you-can-do">Copilot+ PCs when they started rolling out </a>a couple of years ago. </p><p>Unfortunately, what looked like a means of leveraging Windows' massive adoption into an AI leadership position seems to have backfired. All it takes is a scroll through <a href="https://www.reddit.com/r/microsoft/comments/1oay0qg/the_copilot_key_was_a_terrible_idea/">Reddit</a> to see how much people dislike the button, and my colleague Tony Polanco called it the<a href="https://www.tomsguide.com/computing/microsoft-may-finally-fix-the-worst-thing-about-copilot-pcs"> worst thing about Copilot+ PCs last year</a>.</p><p>Now, Microsoft appears to be relenting by officially announcing it will let users remap the Copilot button back to the Right Ctrl or Context menu options it replaced. </p><p>In a recently published <a href="https://support.microsoft.com/en-us/accessibility/windows/copilot/understand-updates-to-the-copilot-key-on-windows-devices#cw" target="_blank">support document</a>, Microsoft stated: "Customers who rely on the Right Ctrl key or Context menu key for keyboard shortcuts or assistive technologies (such as screen readers) experienced some challenges to their workflows when using these devices."</p><p>"A Windows 11 update will ship later this year that will add a setting option to let you remap the Copilot key to act as the Context menu key or Right Ctrl key. When available, you can find this setting in: <strong>Settings</strong> > <strong>Bluetooth & devices</strong> > <strong>Keyboard</strong>" </p><div><blockquote><p>A Windows 11 update will ship later this year that will add a setting option to let you remap the Copilot key</p><p>Microsoft</p></blockquote></div><p>While I've never needed the Right Ctrl or Context menu for my own typical workflow, I've lost count of the number of times I've accidentally triggered Copilot by hitting that key. And while I use a number of different AI assistants over the course of a week, Copilot is very rarely among them.</p><div><blockquote><p>I've lost count of the number of times I've accidentally triggered Copilot by hitting that key.</p></blockquote></div><p>Some PC manufacturers do let users remap the Copilot key with their own on-device software and we have our own Tom's Guide tutorial on <a href="https://www.tomsguide.com/computing/windows-operating-systems/how-to-remap-the-copilot-key-on-windows-11">how to remap the Copilot key on Windows 11</a>. However, both of those solutions will require additional steps and won't be as simple as a native solution within the OS that applies universally to all Windows 11 laptops with a Copilot key.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1384px;"><p class="vanilla-image-block" style="padding-top:56.21%;"><img id="yvkdgPgnazUMRxASPCg3BA" name="copilotkeylead1.jpg" alt="Windows Copilot key" src="https://cdn.mos.cms.futurecdn.net/yvkdgPgnazUMRxASPCg3BA.jpg" mos="" align="middle" fullscreen="" width="1384" height="778" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft)</span></figcaption></figure><p>Microsoft hasn't specified exactly when we may see this update, only noting it will be in a "future Windows 11 update." Microsoft typically drops major updates for Windows in October and, occasionally, in September. So in all likelihood, it could still be another five months before we see this change rolled out. </p><p>In the meantime, here are <a href="https://www.tomsguide.com/ai/7-copilot-prompts-that-make-windows-11-way-more-useful">7 genius Copilot prompts that make Windows 11 instantly more useful</a>.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-XpJL8W"></div>                            </div>                            <script src="https://kwizly.com/embed/XpJL8W.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/online-security/do-you-use-microsoft-exchange-hackers-are-actively-exploiting-a-new-zero-day-flaw">Do you use Microsoft Exchange? Hackers are actively exploiting a new zero-day flaw</a></li><li><a href="https://www.tomsguide.com/home/home-office/corsair-platform-4-elevate-review">I’ve spent almost a year testing the Corsair Platform 4 — and it’s my gaming desk setup endgame</a></li><li><a href="https://www.tomsguide.com/computing/laptops/9-laptop-accessories-under-usd50-id-buy-with-my-own-money-right-now">9 laptop accessories under $50 I'd buy with my own money right now</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Is your Mac slowing down? Try these 3 monthly resets before you give up ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Your Mac isn't as fast as it used to be. Apps take longer to open, the spinning wheel appears constantly, and simple tasks feel sluggish. Before assuming you need a new computer or expensive upgrades, try basic maintenance that actually works.</p><p>Macs slow down over time not because hardware fails, but because software accumulates. Files pile up, apps run in the background you forgot about, and startup processes multiply until your Mac is struggling under the weight of digital clutter.</p><p>I run these three maintenance tasks on my MacBook every month. They take about 15 minutes total and consistently improve performance without costing anything. Here's what keeps my aging Mac running smoothly.</p><section class="howto-block">                    <h3> 1. Free up storage space</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/zvggxRQ7DLTXjq9TBTuGM6.jpg"                                        alt="Mac storage in settings"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/zvggxRQ7DLTXjq9TBTuGM6.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>A full hard drive is the primary cause of Mac slowdowns. When storage fills beyond 85-90% capacity, macOS struggles to manage files and runs noticeably slower.</p><p>macOS includes a built-in storage optimizer that automatically identifies what's consuming space and suggests actions to free it up. This does the heavy lifting without requiring manual file hunting.</p><p><strong>Click the Apple logo in the top left corner and select "System Settings." Then go to General, Storage</strong>. The "Recommendations" section displays optimization options like <strong>"Store in iCloud"</strong> (moves older files to cloud storage) and <strong>"Optimize Storage" </strong>(removes watched movies and email attachments automatically).</p><p><strong>Hover over the colored storage bar</strong> at the top to see exactly what's consuming space — Apps, Documents, System Data, Photos, and other categories. Each color represents a different file type, making it easy to identify the biggest storage hogs at a glance.</p><p><strong>Click individual recommendations to enable them</strong>. These settings work continuously in the background, automatically managing storage without you manually hunting through folders deciding what to delete.</p></p>                </section><section class="howto-block">                    <h3>2. Check Activity Monitor for resource hogs</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/Qd5diKbD64u2QfGwZWN36V.jpg"                                        alt="Mac Activity Monitor"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/Qd5diKbD64u2QfGwZWN36V.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>Activity Monitor shows which apps consume CPU power, memory, and energy in real time. A single misbehaving app can slow your entire Mac.</p><p><strong>Open Finder, go to Applications, Utilities, and Activity Monitor</strong>. Next, <strong>click the "CPU" tab and sort by "% CPU" </strong>to see which apps use the most processing power. Anything consistently above 80-100% is problematic.</p><p>To <a href="https://www.tomsguide.com/how-to/how-to-check-ram-usage-on-mac">check RAM usage</a>, <strong>click the "Memory" tab</strong>.<strong> </strong>The "Memory Pressure" graph at the bottom should stay green. If it's yellow or red, your Mac is running out of RAM and slowing down.</p><p>Quit apps using excessive resources that you're not actively using. <strong>Select the app in Activity Monitor and click the X button in the toolbar</strong> to force quit it.</p><p>You can also check the "Energy" tab to see which apps drain battery fastest. Reducing energy-intensive apps extends battery life and reduces heat.</p></p>                </section><section class="howto-block">                    <h3>3. Update macOS and apps if possible </h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/msgbFFdTymieFpvewFyty8.jpg"                                        alt="Software Update highlighted in Mac settings"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/msgbFFdTymieFpvewFyty8.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>Outdated software often runs slower than newer versions with performance optimizations and bug fixes. Updates frequently include speed improvements specifically designed to help older Macs run more smoothly.</p><p>Check for macOS updates by going to <strong>System Settings, General, and Software Update</strong>.<strong> </strong>If an update is available, <strong>install it</strong>. Major updates can take a while, so plan accordingly.</p><p>Update installed apps through the App Store.<strong> Open the App Store app and click "Updates" in the sidebar</strong>. Install all available updates, even apps you rarely use can slow your Mac if they're outdated and running background processes.</p><p>You could also enable automatic updates to handle this maintenance without remembering. In System Settings<strong> go to General, Software Update, click the info button next to "Automatic Updates" and turn on all options</strong>.</p></p>                </section><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ONV22O"></div>                            </div>                            <script src="https://kwizly.com/embed/ONV22O.js" async></script><figure class="van-image-figure pull-right inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:676px;"><p class="vanilla-image-block" style="padding-top:31.51%;"><img id="8RpLeaq6UZxfGpTcqGj7HX" name="Google" alt="Google" src="https://cdn.mos.cms.futurecdn.net/8RpLeaq6UZxfGpTcqGj7HX.jpg" mos="" align="right" fullscreen="" width="676" height="213" attribution="" endorsement="" class="pull-rightinline"></p></div></div></figure><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide </span></h3><ul><li><a href="https://www.tomsguide.com/computing/macos/ive-been-using-macs-for-years-here-are-3-power-user-tweaks-that-changed-everything">I've been using Macs for years — here are 3 power user tweaks that changed everything</a></li><li><a href="https://www.tomsguide.com/phones/you-can-schedule-your-mac-to-turn-off-and-on-heres-how">You can schedule your Mac to turn off and on — here's how</a></li><li><a href="https://www.tomsguide.com/ai/this-new-mac-shortcut-is-the-fastest-way-to-use-google-gemini">This new Mac shortcut is the fastest way to use Google Gemini</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/macos/is-your-mac-slowing-down-try-these-3-monthly-resets-before-you-give-up</link>
                                                                            <description>
                            <![CDATA[ Keep your aging Mac running smoothly with these three monthly maintenance tasks. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">QvaxUsWpDQisxga8nCFZCK</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/6aKndonNntj8ta66tvXPJT-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sun, 17 May 2026 05:45:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[macOS]]></category>
                                                    <category><![CDATA[Computing Peripherals]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                                                                <author><![CDATA[ kaycee.hill@futurenet.com (Kaycee Hill) ]]></author>                    <dc:creator><![CDATA[ Kaycee Hill ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/xHn6RmpEqg87cvtLwrBu9G.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/6aKndonNntj8ta66tvXPJT-1280-80.jpg">
                                                            <media:credit><![CDATA[Krisda/Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[MacBook]]></media:description>                                                            <media:text><![CDATA[MacBook]]></media:text>
                                <media:title type="plain"><![CDATA[MacBook]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/6aKndonNntj8ta66tvXPJT-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Your Mac isn't as fast as it used to be. Apps take longer to open, the spinning wheel appears constantly, and simple tasks feel sluggish. Before assuming you need a new computer or expensive upgrades, try basic maintenance that actually works.</p><p>Macs slow down over time not because hardware fails, but because software accumulates. Files pile up, apps run in the background you forgot about, and startup processes multiply until your Mac is struggling under the weight of digital clutter.</p><p>I run these three maintenance tasks on my MacBook every month. They take about 15 minutes total and consistently improve performance without costing anything. Here's what keeps my aging Mac running smoothly.</p><section class="howto-block">                    <h3> 1. Free up storage space</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/zvggxRQ7DLTXjq9TBTuGM6.jpg"                                        alt="Mac storage in settings"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/zvggxRQ7DLTXjq9TBTuGM6.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>A full hard drive is the primary cause of Mac slowdowns. When storage fills beyond 85-90% capacity, macOS struggles to manage files and runs noticeably slower.</p><p>macOS includes a built-in storage optimizer that automatically identifies what's consuming space and suggests actions to free it up. This does the heavy lifting without requiring manual file hunting.</p><p><strong>Click the Apple logo in the top left corner and select "System Settings." Then go to General, Storage</strong>. The "Recommendations" section displays optimization options like <strong>"Store in iCloud"</strong> (moves older files to cloud storage) and <strong>"Optimize Storage" </strong>(removes watched movies and email attachments automatically).</p><p><strong>Hover over the colored storage bar</strong> at the top to see exactly what's consuming space — Apps, Documents, System Data, Photos, and other categories. Each color represents a different file type, making it easy to identify the biggest storage hogs at a glance.</p><p><strong>Click individual recommendations to enable them</strong>. These settings work continuously in the background, automatically managing storage without you manually hunting through folders deciding what to delete.</p></p>                </section><section class="howto-block">                    <h3>2. Check Activity Monitor for resource hogs</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/Qd5diKbD64u2QfGwZWN36V.jpg"                                        alt="Mac Activity Monitor"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/Qd5diKbD64u2QfGwZWN36V.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>Activity Monitor shows which apps consume CPU power, memory, and energy in real time. A single misbehaving app can slow your entire Mac.</p><p><strong>Open Finder, go to Applications, Utilities, and Activity Monitor</strong>. Next, <strong>click the "CPU" tab and sort by "% CPU" </strong>to see which apps use the most processing power. Anything consistently above 80-100% is problematic.</p><p>To <a href="https://www.tomsguide.com/how-to/how-to-check-ram-usage-on-mac">check RAM usage</a>, <strong>click the "Memory" tab</strong>.<strong> </strong>The "Memory Pressure" graph at the bottom should stay green. If it's yellow or red, your Mac is running out of RAM and slowing down.</p><p>Quit apps using excessive resources that you're not actively using. <strong>Select the app in Activity Monitor and click the X button in the toolbar</strong> to force quit it.</p><p>You can also check the "Energy" tab to see which apps drain battery fastest. Reducing energy-intensive apps extends battery life and reduces heat.</p></p>                </section><section class="howto-block">                    <h3>3. Update macOS and apps if possible </h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/msgbFFdTymieFpvewFyty8.jpg"                                        alt="Software Update highlighted in Mac settings"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/msgbFFdTymieFpvewFyty8.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>Outdated software often runs slower than newer versions with performance optimizations and bug fixes. Updates frequently include speed improvements specifically designed to help older Macs run more smoothly.</p><p>Check for macOS updates by going to <strong>System Settings, General, and Software Update</strong>.<strong> </strong>If an update is available, <strong>install it</strong>. Major updates can take a while, so plan accordingly.</p><p>Update installed apps through the App Store.<strong> Open the App Store app and click "Updates" in the sidebar</strong>. Install all available updates, even apps you rarely use can slow your Mac if they're outdated and running background processes.</p><p>You could also enable automatic updates to handle this maintenance without remembering. In System Settings<strong> go to General, Software Update, click the info button next to "Automatic Updates" and turn on all options</strong>.</p></p>                </section><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ONV22O"></div>                            </div>                            <script src="https://kwizly.com/embed/ONV22O.js" async></script><figure class="van-image-figure pull-right inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:676px;"><p class="vanilla-image-block" style="padding-top:31.51%;"><img id="8RpLeaq6UZxfGpTcqGj7HX" name="Google" alt="Google" src="https://cdn.mos.cms.futurecdn.net/8RpLeaq6UZxfGpTcqGj7HX.jpg" mos="" align="right" fullscreen="" width="676" height="213" attribution="" endorsement="" class="pull-rightinline"></p></div></div></figure><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide </span></h3><ul><li><a href="https://www.tomsguide.com/computing/macos/ive-been-using-macs-for-years-here-are-3-power-user-tweaks-that-changed-everything">I've been using Macs for years — here are 3 power user tweaks that changed everything</a></li><li><a href="https://www.tomsguide.com/phones/you-can-schedule-your-mac-to-turn-off-and-on-heres-how">You can schedule your Mac to turn off and on — here's how</a></li><li><a href="https://www.tomsguide.com/ai/this-new-mac-shortcut-is-the-fastest-way-to-use-google-gemini">This new Mac shortcut is the fastest way to use Google Gemini</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Microsoft will soon automatically uninstall bad Windows drivers and this new tool could be a game changer for your PC ]]></title>
                                                                                                <dc:content><![CDATA[ <p>This week Microsoft introduced a new tool that allows the company to remotely roll back bad Windows drivers even after they're delivered via Windows Update. The tool, Cloud-Initiated Driver Recovery, makes it so hardware makers and users don't need to manually fix bad drivers once they've been distributed.</p><p>According to a <a href="https://techcommunity.microsoft.com/blog/hardware-dev-center/introducing-cloud-initiated-driver-recovery-for-windows-update/4519075" target="_blank">Microsoft Hardware Dev Center blog post</a>, once a bad driver is identified Microsoft can initiate a recovery action that replaces the the faulty driver without intervention from you or a device maker. The problematic driver will be rolled back to the last known good version. </p><p>Seemingly, it's the latest in a series of moves from Microsoft to fix Windows 11. The company has spent much of 2026 <a href="https://www.tomsguide.com/computing/windows-operating-systems/we-need-to-improve-windows-in-ways-that-are-meaningful-for-people-microsoft-is-urgently-trying-to-fix-windows-11-issues">promising to make Windows better</a> with a <a href="https://www.tomsguide.com/computing/windows-operating-systems/microsoft-promises-windows-11-reset-new-focus-on-performance-reliability-and-reducing-unnecessary-copilot-ai">Windows 11 reset</a>, <a href="https://www.tomsguide.com/computing/windows-operating-systems/microsoft-reportedly-redesigning-start-menu-in-windows-11-after-actually-listening-to-user-complaints">redesigning the Start menu</a> and now, better driver patching.</p><h2 id="how-it-works">How it works</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="GnxC9DC3NTqVEkaufcRyM6" name="delete key" alt="Trash can key" src="https://cdn.mos.cms.futurecdn.net/GnxC9DC3NTqVEkaufcRyM6.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p>The action will only be initiated if a bad driver is rejected during "shiproom evaluation." That process evaluates drivers and notes quality issues.</p><p>Currently, when a bad driver ships in a Windows Update, a hardware partner must submit a replacement driver, or end users have to manually uninstall the faulty driver, which can leave PCs with outdated drivers for too long.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-W5rm3O"></div>                            </div>                            <script src="https://kwizly.com/embed/W5rm3O.js" async></script><p>"Today, when a driver published through Windows Update is identified after distribution to have quality issues, the remediation path relies on the hardware partner to submit an updated driver — or on end users to manually uninstall the problematic driver themselves.," Microsoft said.</p><p>Microsoft does note that if a "Driver Shiproom-approved" driver cannot be found a CIDR action will not be attempted. </p><p>However, if one is identified, recovery will be sent via the existing Windows Update infrastructure. You won't need a new client or update from the third-party manufacturer.</p><h2 id="better-drivers-in-general">Better drivers in general</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3423px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="KQbE8W9xF5htWqfEL2b2K5" name="Microsoft HQ" alt="View of Microsoft Romania headquarters in City Gate Towers situated in Free Press Square, in Bucharest, Romania" src="https://cdn.mos.cms.futurecdn.net/KQbE8W9xF5htWqfEL2b2K5.jpg" mos="" align="middle" fullscreen="" width="3423" height="1925" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p>According to the blog, the company is testing the tool between May and August this year. Microsoft is shooting to roll back rejected drivers starting in September 2026.</p><p>It appears this could be part of an overall initiative by Microsoft to improve the overall quality of drivers. As pointed out by <a href="https://www.bleepingcomputer.com/news/microsoft/microsoft-to-automatically-roll-back-faulty-windows-drivers/" target="_blank">Bleeping Computer</a>, the company announced a new<a href="https://blogs.windows.com/windowsexperience/2026/05/14/raising-the-bar-together-introducing-the-driver-quality-initiative-at-winhec-2026/" target="_blank"> Driver Quality Initiative</a> last week at the WinHEC 2026 conference in Taipei.</p><p>"When drivers are high quality, customers experience reliable, secure, performant devices. When drivers fail, customers experience it as a device problem, regardless of where the root cause sits," the company said in an announcement.</p><p>Microsoft announced it will invest in partners and tools to improve drivers overall.</p><p>"In the months ahead, we will keep investing in the fundamentals that matter most to customers: reliability, security, performance, compatibility and quality."</p><p>If these tools and initiatives hold up, it could mean the end of frustrating driver experiences on your PC. Instead of hunting down the faulty driver, now Microsoft will do it for you. Fingers crossed this new tool works well.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/online-security/microsofts-urgent-window-11-patch-fixes-30-critical-bugs-update-your-pc-now">Microsoft's urgent Window 11 patch fixes 30 'critical' bugs — update your PC now</a></li><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/dells-own-support-software-is-crashing-its-pcs-and-laptops-the-irony-is-strong-but-there-is-a-quick-fix">Dell's own support software is crashing its PCs and laptops — the irony is strong, but there is a quick fix</a></li><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/microsoft-reportedly-redesigning-start-menu-in-windows-11-after-actually-listening-to-user-complaints">Microsoft reportedly redesigning Start Menu in Windows 11 after actually listening to user complaints</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/windows-operating-systems/microsoft-will-soon-automatically-uninstall-bad-windows-drivers-and-this-new-tool-could-be-a-game-changer-for-your-pc</link>
                                                                            <description>
                            <![CDATA[ Microsoft has released a new Windows 11 tool that lets it remove faulty drivers after updates. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">evs2CHE6SJxqyPbrAuwgE7</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/nM2QA9SAJTB9Hq3ATzrtdC-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 15 May 2026 23:05:32 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Windows Operating Systems]]></category>
                                                    <category><![CDATA[Computing Peripherals]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                                                                <author><![CDATA[ scott.younker@futurenet.com (Scott Younker) ]]></author>                    <dc:creator><![CDATA[ Scott Younker ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/RZsUpqcJ6Uj2q83oCUwNhQ.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Scott Younker is the West Coast Reporter at Tom’s Guide. He covers all the latest tech news, including phones, computing and more. He’s been involved in tech since 2011 covering everything from cameras and swimming pool equipment to the latest gaming consoles and smart TVs. He is on a seemingly never ending hunt to build the easiest to use home media system. &lt;/p&gt;&lt;p&gt;Before Tom’s Guide, Scott worked for publications like &lt;em&gt;Digital Trends, Outdoor Photographer, Dead Beats Panel&lt;/em&gt;, and in a brief detour, &lt;em&gt;America’s Funniest Home Videos&lt;/em&gt;. Yes, he has seen more pratfalls, silly pets and ridiculous home movie fails than is reasonably healthy. &lt;/p&gt;&lt;p&gt;When not writing about the latest devices or advances in chipsets, be sure to ask about Scott about disc golf and sustainability, or just if you’re being cheeky, ask about his noodle arm. If you truly want to get nerdy, bring up board games and his ongoing losing streak. &lt;/p&gt;&lt;p&gt;Scott joined Tom&#039;s Guide in 2024 as the West Coast Reporter. He graduated from the School of Journalism at the University of Oregon with a degree in magazine journalism and a minor in communications. While there he blogged or wrote for several magazines including the Fluxx, Ethos and the Oregon Commentator. He briefly wrote and managed a moderately successful blog focused on web comics. &lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/nM2QA9SAJTB9Hq3ATzrtdC-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Windows 11 logo on a laptop screen]]></media:description>                                                            <media:text><![CDATA[Windows 11 logo on a laptop screen]]></media:text>
                                <media:title type="plain"><![CDATA[Windows 11 logo on a laptop screen]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/nM2QA9SAJTB9Hq3ATzrtdC-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>This week Microsoft introduced a new tool that allows the company to remotely roll back bad Windows drivers even after they're delivered via Windows Update. The tool, Cloud-Initiated Driver Recovery, makes it so hardware makers and users don't need to manually fix bad drivers once they've been distributed.</p><p>According to a <a href="https://techcommunity.microsoft.com/blog/hardware-dev-center/introducing-cloud-initiated-driver-recovery-for-windows-update/4519075" target="_blank">Microsoft Hardware Dev Center blog post</a>, once a bad driver is identified Microsoft can initiate a recovery action that replaces the the faulty driver without intervention from you or a device maker. The problematic driver will be rolled back to the last known good version. </p><p>Seemingly, it's the latest in a series of moves from Microsoft to fix Windows 11. The company has spent much of 2026 <a href="https://www.tomsguide.com/computing/windows-operating-systems/we-need-to-improve-windows-in-ways-that-are-meaningful-for-people-microsoft-is-urgently-trying-to-fix-windows-11-issues">promising to make Windows better</a> with a <a href="https://www.tomsguide.com/computing/windows-operating-systems/microsoft-promises-windows-11-reset-new-focus-on-performance-reliability-and-reducing-unnecessary-copilot-ai">Windows 11 reset</a>, <a href="https://www.tomsguide.com/computing/windows-operating-systems/microsoft-reportedly-redesigning-start-menu-in-windows-11-after-actually-listening-to-user-complaints">redesigning the Start menu</a> and now, better driver patching.</p><h2 id="how-it-works">How it works</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="GnxC9DC3NTqVEkaufcRyM6" name="delete key" alt="Trash can key" src="https://cdn.mos.cms.futurecdn.net/GnxC9DC3NTqVEkaufcRyM6.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p>The action will only be initiated if a bad driver is rejected during "shiproom evaluation." That process evaluates drivers and notes quality issues.</p><p>Currently, when a bad driver ships in a Windows Update, a hardware partner must submit a replacement driver, or end users have to manually uninstall the faulty driver, which can leave PCs with outdated drivers for too long.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-W5rm3O"></div>                            </div>                            <script src="https://kwizly.com/embed/W5rm3O.js" async></script><p>"Today, when a driver published through Windows Update is identified after distribution to have quality issues, the remediation path relies on the hardware partner to submit an updated driver — or on end users to manually uninstall the problematic driver themselves.," Microsoft said.</p><p>Microsoft does note that if a "Driver Shiproom-approved" driver cannot be found a CIDR action will not be attempted. </p><p>However, if one is identified, recovery will be sent via the existing Windows Update infrastructure. You won't need a new client or update from the third-party manufacturer.</p><h2 id="better-drivers-in-general">Better drivers in general</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3423px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="KQbE8W9xF5htWqfEL2b2K5" name="Microsoft HQ" alt="View of Microsoft Romania headquarters in City Gate Towers situated in Free Press Square, in Bucharest, Romania" src="https://cdn.mos.cms.futurecdn.net/KQbE8W9xF5htWqfEL2b2K5.jpg" mos="" align="middle" fullscreen="" width="3423" height="1925" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p>According to the blog, the company is testing the tool between May and August this year. Microsoft is shooting to roll back rejected drivers starting in September 2026.</p><p>It appears this could be part of an overall initiative by Microsoft to improve the overall quality of drivers. As pointed out by <a href="https://www.bleepingcomputer.com/news/microsoft/microsoft-to-automatically-roll-back-faulty-windows-drivers/" target="_blank">Bleeping Computer</a>, the company announced a new<a href="https://blogs.windows.com/windowsexperience/2026/05/14/raising-the-bar-together-introducing-the-driver-quality-initiative-at-winhec-2026/" target="_blank"> Driver Quality Initiative</a> last week at the WinHEC 2026 conference in Taipei.</p><p>"When drivers are high quality, customers experience reliable, secure, performant devices. When drivers fail, customers experience it as a device problem, regardless of where the root cause sits," the company said in an announcement.</p><p>Microsoft announced it will invest in partners and tools to improve drivers overall.</p><p>"In the months ahead, we will keep investing in the fundamentals that matter most to customers: reliability, security, performance, compatibility and quality."</p><p>If these tools and initiatives hold up, it could mean the end of frustrating driver experiences on your PC. Instead of hunting down the faulty driver, now Microsoft will do it for you. Fingers crossed this new tool works well.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/online-security/microsofts-urgent-window-11-patch-fixes-30-critical-bugs-update-your-pc-now">Microsoft's urgent Window 11 patch fixes 30 'critical' bugs — update your PC now</a></li><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/dells-own-support-software-is-crashing-its-pcs-and-laptops-the-irony-is-strong-but-there-is-a-quick-fix">Dell's own support software is crashing its PCs and laptops — the irony is strong, but there is a quick fix</a></li><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/microsoft-reportedly-redesigning-start-menu-in-windows-11-after-actually-listening-to-user-complaints">Microsoft reportedly redesigning Start Menu in Windows 11 after actually listening to user complaints</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Microsoft's urgent Window 11 patch fixes 30 'critical' bugs — update your PC now ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Now is the perfect time to update your laptop or desktop PC as Microsoft has released its <a href="https://msrc.microsoft.com/update-guide/releaseNote/2026-May" target="_blank">May Patch Tuesday</a> updates which contain fixes for 30 flaws rated as important or critical severity. </p><p>In total, the latest security patch applies fixes to 138 bugs including many that made network privileges vulnerable. Fortunately, none of the bugs are listed as publicly known or under active attack. </p><p>The patch was released at the same time as one from Google that addressed 127 security flaws in Chromium, which undergirds the Microsoft Edge browser.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-OzLE0e"></div>                            </div>                            <script src="https://kwizly.com/embed/OzLE0e.js" async></script><p>Many of the flaws appear to be related to Azure and more business-focused Microsoft products. However, one of the more severe bugs impacts Windows DNS via a <a href="https://www.tomsguide.com/news/chrome-zero-day-fix-feb21">heap-based buffer overflow flaw</a> that would let a malicious actor execute code over a network.</p><p>"An attacker could exploit this vulnerability by sending a specially crafted DNS response to a vulnerable Windows system, causing the DNS Client to incorrectly process the response and corrupt memory," Microsoft said in its patch notes. "In certain configurations, this could allow the attacker to run code remotely on the affected system without authentication."</p><h2 id="hundreds-of-flaws-fixed-this-year">Hundreds of flaws fixed this year</h2><p>Since January, when the <a href="https://www.tomsguide.com/computing/online-security/microsofts-first-patch-tuesday-of-2026-fixes-over-100-bugs-and-one-active-zero-day-flaw-dont-wait-to-update-your-pc">first patch Tuesday of 2026 </a>fixed 114 flaws, Microsoft has apparently fixed more than 500 CVE bugs already this year. </p><p>According to <a href="https://thehackernews.com/2026/05/microsoft-patches-138-vulnerabilities.html" target="_blank">Hacker News</a>, this can be attributed to a greater focus by Microsoft on vulnerability discovery, some of which is heavily assisted by AI-based flagging. Microsoft claimed as much in a recent <a href="https://www.microsoft.com/en-us/msrc/blog/2026/05/a-note-on-patch-tuesday" target="_blank">Microsoft Security Response Center report</a> released this week.</p><p>"Microsoft engineers and the wider security community alike are <a href="https://www.microsoft.com/en-us/msrc/blog/2026/04/strengthening-secure-software-global-scale-how-msrc-is-evolving-with-ai">increasingly using AI</a> to examine software more carefully and more often than was practical even a few years ago," Tom Gallagher said in the report.</p><h2 id="how-to-stay-safe-with-patch-tuesday">How to stay safe with Patch Tuesday</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5342px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="MC3iNmQLKLcYS2fWGgAouZ" name="shutterstock_631810814" alt="A man clicking on a mouse while browsing the web on his laptop" src="https://cdn.mos.cms.futurecdn.net/MC3iNmQLKLcYS2fWGgAouZ.jpg" mos="" align="middle" fullscreen="" width="5342" height="3005" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>First and foremost, update your Windows laptop or desktop with the latest system update or patches. You also want to make sure that <a href="https://www.tomsguide.com/news/windows-defender-good-enough-for-new-laptop">Windows Defender</a> is enabled so that it can scan your system for <a href="https://www.tomsguide.com/computing/malware-adware/dont-click-this-malicious-ads-impersonating-google-chrome-spreading-dangerous-malware">dangerous malware</a>.</p><p>Of course, we always recommend using one of the <a href="https://www.tomsguide.com/computing/antivirus/best-antivirus-software">best antivirus software</a> packages for extra protection. </p><p>In the MSRC report, Gallagher recommends practicing good cyber hygiene, which we wholeheartedly agree with. This includes enabling <a href="https://www.tomsguide.com/computing/online-security/two-factor-authentication-provides-an-easy-way-to-secure-your-accounts-heres-how-it-works-and-how-to-enable-it">multi-factor authentication</a>, creating <a href="https://www.tomsguide.com/computing/password-managers/people-are-the-password-problem-how-youre-creating-your-biggest-security-risks">strong passwords</a>, and using one of the <a href="https://www.tomsguide.com/us/best-password-managers,review-3785.html">best password managers</a></p><p>As always, and in general, don't click links or attachments from <a href="https://www.tomsguide.com/news/avoid-these-email-attachments-if-you-dont-want-to-get-phished">unknown </a><a href="https://www.tomsguide.com/news/avoid-these-email-attachments-if-you-dont-want-to-get-phished" target="_blank">senders</a>, as they could contain malware or send you to <a href="https://www.tomsguide.com/news/hackers-often-use-this-clever-trick-to-take-you-to-phishing-sites-can-you-spot-it">phishing sites</a> designed to steal your personal information. </p><p>By practicing good cyber hygiene and regularly updating your computer, you should be safe from most attacks. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/online-security/is-your-personal-information-public-the-simple-step-to-securing-your-privacy-online">Is your personal information public? The simple step to securing your privacy online</a></li><li><a href="https://www.tomsguide.com/computing/online-security/android-alert-7-million-users-downloaded-stalking-apps-that-were-actually-scams">Android alert: 7 million users downloaded ‘stalking’ apps that were actually scams</a></li><li><a href="https://www.tomsguide.com/computing/online-security/what-is-agego-and-is-it-safe-to-use">What is AgeGO, and is it safe to use?</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/online-security/microsofts-urgent-window-11-patch-fixes-30-critical-bugs-update-your-pc-now</link>
                                                                            <description>
                            <![CDATA[ Microsoft's big May 2026 Patch Tuesday fixes more than 138 vulnerabilities overall. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">9PYXF7f4Aa9u8mYLuifMdT</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/hDNix4fYdmJGsVB26D4tkN-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 13 May 2026 20:24:26 +0000</pubDate>                                                                                                                                <updated>Wed, 13 May 2026 20:54:28 +0000</updated>
                                                                                                                                            <category><![CDATA[Online Security]]></category>
                                                    <category><![CDATA[Windows Operating Systems]]></category>
                                                    <category><![CDATA[Computing Peripherals]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                                                                <author><![CDATA[ scott.younker@futurenet.com (Scott Younker) ]]></author>                    <dc:creator><![CDATA[ Scott Younker ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/RZsUpqcJ6Uj2q83oCUwNhQ.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Scott Younker is the West Coast Reporter at Tom’s Guide. He covers all the latest tech news, including phones, computing and more. He’s been involved in tech since 2011 covering everything from cameras and swimming pool equipment to the latest gaming consoles and smart TVs. He is on a seemingly never ending hunt to build the easiest to use home media system. &lt;/p&gt;&lt;p&gt;Before Tom’s Guide, Scott worked for publications like &lt;em&gt;Digital Trends, Outdoor Photographer, Dead Beats Panel&lt;/em&gt;, and in a brief detour, &lt;em&gt;America’s Funniest Home Videos&lt;/em&gt;. Yes, he has seen more pratfalls, silly pets and ridiculous home movie fails than is reasonably healthy. &lt;/p&gt;&lt;p&gt;When not writing about the latest devices or advances in chipsets, be sure to ask about Scott about disc golf and sustainability, or just if you’re being cheeky, ask about his noodle arm. If you truly want to get nerdy, bring up board games and his ongoing losing streak. &lt;/p&gt;&lt;p&gt;Scott joined Tom&#039;s Guide in 2024 as the West Coast Reporter. He graduated from the School of Journalism at the University of Oregon with a degree in magazine journalism and a minor in communications. While there he blogged or wrote for several magazines including the Fluxx, Ethos and the Oregon Commentator. He briefly wrote and managed a moderately successful blog focused on web comics. &lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/hDNix4fYdmJGsVB26D4tkN-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A laptop with the Windows 11 logo]]></media:description>                                                            <media:text><![CDATA[A laptop with the Windows 11 logo]]></media:text>
                                <media:title type="plain"><![CDATA[A laptop with the Windows 11 logo]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/hDNix4fYdmJGsVB26D4tkN-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Now is the perfect time to update your laptop or desktop PC as Microsoft has released its <a href="https://msrc.microsoft.com/update-guide/releaseNote/2026-May" target="_blank">May Patch Tuesday</a> updates which contain fixes for 30 flaws rated as important or critical severity. </p><p>In total, the latest security patch applies fixes to 138 bugs including many that made network privileges vulnerable. Fortunately, none of the bugs are listed as publicly known or under active attack. </p><p>The patch was released at the same time as one from Google that addressed 127 security flaws in Chromium, which undergirds the Microsoft Edge browser.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-OzLE0e"></div>                            </div>                            <script src="https://kwizly.com/embed/OzLE0e.js" async></script><p>Many of the flaws appear to be related to Azure and more business-focused Microsoft products. However, one of the more severe bugs impacts Windows DNS via a <a href="https://www.tomsguide.com/news/chrome-zero-day-fix-feb21">heap-based buffer overflow flaw</a> that would let a malicious actor execute code over a network.</p><p>"An attacker could exploit this vulnerability by sending a specially crafted DNS response to a vulnerable Windows system, causing the DNS Client to incorrectly process the response and corrupt memory," Microsoft said in its patch notes. "In certain configurations, this could allow the attacker to run code remotely on the affected system without authentication."</p><h2 id="hundreds-of-flaws-fixed-this-year">Hundreds of flaws fixed this year</h2><p>Since January, when the <a href="https://www.tomsguide.com/computing/online-security/microsofts-first-patch-tuesday-of-2026-fixes-over-100-bugs-and-one-active-zero-day-flaw-dont-wait-to-update-your-pc">first patch Tuesday of 2026 </a>fixed 114 flaws, Microsoft has apparently fixed more than 500 CVE bugs already this year. </p><p>According to <a href="https://thehackernews.com/2026/05/microsoft-patches-138-vulnerabilities.html" target="_blank">Hacker News</a>, this can be attributed to a greater focus by Microsoft on vulnerability discovery, some of which is heavily assisted by AI-based flagging. Microsoft claimed as much in a recent <a href="https://www.microsoft.com/en-us/msrc/blog/2026/05/a-note-on-patch-tuesday" target="_blank">Microsoft Security Response Center report</a> released this week.</p><p>"Microsoft engineers and the wider security community alike are <a href="https://www.microsoft.com/en-us/msrc/blog/2026/04/strengthening-secure-software-global-scale-how-msrc-is-evolving-with-ai">increasingly using AI</a> to examine software more carefully and more often than was practical even a few years ago," Tom Gallagher said in the report.</p><h2 id="how-to-stay-safe-with-patch-tuesday">How to stay safe with Patch Tuesday</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5342px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="MC3iNmQLKLcYS2fWGgAouZ" name="shutterstock_631810814" alt="A man clicking on a mouse while browsing the web on his laptop" src="https://cdn.mos.cms.futurecdn.net/MC3iNmQLKLcYS2fWGgAouZ.jpg" mos="" align="middle" fullscreen="" width="5342" height="3005" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>First and foremost, update your Windows laptop or desktop with the latest system update or patches. You also want to make sure that <a href="https://www.tomsguide.com/news/windows-defender-good-enough-for-new-laptop">Windows Defender</a> is enabled so that it can scan your system for <a href="https://www.tomsguide.com/computing/malware-adware/dont-click-this-malicious-ads-impersonating-google-chrome-spreading-dangerous-malware">dangerous malware</a>.</p><p>Of course, we always recommend using one of the <a href="https://www.tomsguide.com/computing/antivirus/best-antivirus-software">best antivirus software</a> packages for extra protection. </p><p>In the MSRC report, Gallagher recommends practicing good cyber hygiene, which we wholeheartedly agree with. This includes enabling <a href="https://www.tomsguide.com/computing/online-security/two-factor-authentication-provides-an-easy-way-to-secure-your-accounts-heres-how-it-works-and-how-to-enable-it">multi-factor authentication</a>, creating <a href="https://www.tomsguide.com/computing/password-managers/people-are-the-password-problem-how-youre-creating-your-biggest-security-risks">strong passwords</a>, and using one of the <a href="https://www.tomsguide.com/us/best-password-managers,review-3785.html">best password managers</a></p><p>As always, and in general, don't click links or attachments from <a href="https://www.tomsguide.com/news/avoid-these-email-attachments-if-you-dont-want-to-get-phished">unknown </a><a href="https://www.tomsguide.com/news/avoid-these-email-attachments-if-you-dont-want-to-get-phished" target="_blank">senders</a>, as they could contain malware or send you to <a href="https://www.tomsguide.com/news/hackers-often-use-this-clever-trick-to-take-you-to-phishing-sites-can-you-spot-it">phishing sites</a> designed to steal your personal information. </p><p>By practicing good cyber hygiene and regularly updating your computer, you should be safe from most attacks. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/online-security/is-your-personal-information-public-the-simple-step-to-securing-your-privacy-online">Is your personal information public? The simple step to securing your privacy online</a></li><li><a href="https://www.tomsguide.com/computing/online-security/android-alert-7-million-users-downloaded-stalking-apps-that-were-actually-scams">Android alert: 7 million users downloaded ‘stalking’ apps that were actually scams</a></li><li><a href="https://www.tomsguide.com/computing/online-security/what-is-agego-and-is-it-safe-to-use">What is AgeGO, and is it safe to use?</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ The Mac mini's ridiculously-placed power button just became irrelevant thanks to this new macOS 26.5 feature — here's how to activate it ]]></title>
                                                                                                <dc:content><![CDATA[ <p>The Mac mini is a great computer, and we love it here at Tom's Guide, but that doesn't mean we won't criticise Apple's design choices. In fact, in my colleague Anthony's review of the <a href="https://www.tomsguide.com/computing/desktop-computers/mac-mini-m4-review">Mac mini M4</a>, he said that, "if only Apple hadn’t put the power button on the bottom of the device, this would be a near perfect upgrade over the Mac mini M2."</p><p>Well, there's some good news to share today because with the release of <a href="https://www.tomsguide.com/computing/macbooks/macos-26-supported-devices-these-macs-may-not-make-the-cut">macOS 26.5 Tahoe</a>, Apple has finally delivered a software solution to this hardware headache.</p><p>The latest update introduces a new 'Power Control' section within the Energy settings, specifically designed for Mac desktops like the Mac mini, <a href="https://www.tomsguide.com/computing/apple-desktops/apple-mac-studio-m4-max-review">Mac Studio</a>, and <a href="https://www.tomsguide.com/computing/apple-desktops/apple-imac-m4-review">iMac</a>. The standout feature as far as a lot of users (and Anthony) are concerned? Support for external switches. </p><p>That means you'll be able to use compatible accessories to power off or restart the Mac mini without ever needing to access the physical button on the underside of the chassis. What's more, according to Apple's <a href="https://support.apple.com/en-us/125517" target="_blank">support document</a>, the new update will also give users the choice to have their Mac mini, Mac Studio, or iMac automatically turn on when connected to power. Nice!</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="TUpMErrBpjcZASartetyE8" name="Mac mini M4-06" alt="Lifting the Mac mini M4 up in order to press its power button" src="https://cdn.mos.cms.futurecdn.net/TUpMErrBpjcZASartetyE8.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Despite Apple categorizing this as an accessibility feature, I'd argue the addition of switch support is a big quality-of-life upgrade for all users. Especially if you like to tinker with your desk setup. For example, you could mount a compatible third-party switch to the side of your keyboard and have it always within reach.</p><p>Apple itself seems to quietly acknowledge the design misstep, noting this new feature is particularly helpful, “when you don't have easy access to the computer's power button.” </p><h2 id="how-to-enable-power-control">How to enable Power Control</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="mBG2BLb2nByp25qbZsfocP" name="Apple-Mac-mini-lifestyle-music-studio-min" alt="Mac Mini M4" src="https://cdn.mos.cms.futurecdn.net/mBG2BLb2nByp25qbZsfocP.png" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Apple)</span></figcaption></figure><p>If you’ve updated to macOS 26.5, you can find these new options by navigating to <strong>System Settings > Energy</strong>. From there, a new <strong>Power Control</strong> menu allows you to pair your external switches. </p><p>Additionally, the update includes a toggle to have your Mac automatically boot up as soon as it’s connected to power — a feature previously reserved for server-grade hardware but now available to the Mac mini M4, iMac M4, and the 2025 Mac Studio.</p><h2 id="bottom-line">Bottom line</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="QmjZCJY7EmTEVJPLPFiCn3" name="Mac mini M4--1-LEDE" alt="A desk setup built around the Mac mini M4 with an Apple Studio Display on an all wooden desk" src="https://cdn.mos.cms.futurecdn.net/QmjZCJY7EmTEVJPLPFiCn3.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The macOS 26.5 is a relatively small update for Mac, but this particular addition does seem like it'll make a meaningful difference. </p><p>Hopefully, this small change means Apple is taking on board feedback that users and reviewers are pointing out — even if it's through software solutions rather than hardware revamps. </p><p>Of course, whether or not the next iteration of the Mac mini keeps the power button on the underside remains to be seen. Maybe that's a question for John Ternus to answer when he <a href="https://www.tomsguide.com/phones/iphones/massive-changes-at-apple-john-ternus-takes-over-as-ceo-sept-1-while-tim-cook-moves-to-executive-chairman">takes the reins at Apple in September</a>.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-egn65X"></div>                            </div>                            <script src="https://kwizly.com/embed/egn65X.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/dells-own-support-software-is-crashing-its-pcs-and-laptops-the-irony-is-strong-but-there-is-a-quick-fix">Dell's own support software is crashing its PCs and laptops — the irony is strong, but there is a quick fix</a></li><li><a href="https://www.tomsguide.com/ai/i-tried-the-goldfish-prompt-with-chatgpt-and-it-instantly-stopped-my-overthinking">I tried the ‘Goldfish Prompt’ with ChatGPT — and it instantly stopped my overthinking</a></li><li><a href="https://www.tomsguide.com/phones/iphones/your-iphone-keyboard-can-do-math-heres-how-to-use-the-secret-calculator">Your iPhone keyboard can do math — here's how to use the secret calculator</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/macos/the-mac-minis-ridiculously-placed-power-button-just-became-irrelevant-thanks-to-this-new-macos-26-5-feature-heres-how-to-activate-it</link>
                                                                            <description>
                            <![CDATA[ The Mac mini is a great computer with a badly-designed power switch, but Apple has introduced a software solution with macOS 26.5. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">VL4H8cNWzuQCAMxTTKXFnL</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/ipJ7pLV33kb9Csq3heQYEV-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 12 May 2026 11:35:47 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[macOS]]></category>
                                                    <category><![CDATA[Computing Peripherals]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                                                                <author><![CDATA[ jeff.parsons@futurenet.com (Jeff Parsons) ]]></author>                    <dc:creator><![CDATA[ Jeff Parsons ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/7z3UTGGrmSokMKxTWHmhjX.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Jeff is U.K. Editor-in-Chief for Tom’s Guide looking after the day-to-day output of the site’s British contingent. &lt;/p&gt;&lt;p&gt;Rising early and heading straight for the coffee machine, Jeff loves nothing more than dialling into the zeitgeist of the day’s tech news. A journalist for over a decade, he&#039;s travelled around the world testing and reviewing any gadget he can get his hands on.&lt;/p&gt;&lt;p&gt;Before joining the team at Tom’s Guide, Jeff covered technology and science for two of the U.K.’s biggest national news sites: Metro.co.uk and the Daily Mirror. Memorable moments include getting lost in Vienna in an electric Audi, touring Lockheed Martin’s mile-long jet factory in Fort Worth and filming a Netflix documentary about Elon Musk in West London.&lt;/p&gt;&lt;p&gt;When not plugged into the current news agenda, editing or commissioning a series of articles or debating the merits of Apple vs Android, Jeff can usually be found out for a run trying to shave precious seconds off his PB. Or lifting weights in a vain attempt to offset the ageing process.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/ipJ7pLV33kb9Csq3heQYEV-1280-80.jpg">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Mac Mini M4 front and underside ]]></media:description>                                                            <media:text><![CDATA[Mac Mini M4 front and underside ]]></media:text>
                                <media:title type="plain"><![CDATA[Mac Mini M4 front and underside ]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/ipJ7pLV33kb9Csq3heQYEV-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The Mac mini is a great computer, and we love it here at Tom's Guide, but that doesn't mean we won't criticise Apple's design choices. In fact, in my colleague Anthony's review of the <a href="https://www.tomsguide.com/computing/desktop-computers/mac-mini-m4-review">Mac mini M4</a>, he said that, "if only Apple hadn’t put the power button on the bottom of the device, this would be a near perfect upgrade over the Mac mini M2."</p><p>Well, there's some good news to share today because with the release of <a href="https://www.tomsguide.com/computing/macbooks/macos-26-supported-devices-these-macs-may-not-make-the-cut">macOS 26.5 Tahoe</a>, Apple has finally delivered a software solution to this hardware headache.</p><p>The latest update introduces a new 'Power Control' section within the Energy settings, specifically designed for Mac desktops like the Mac mini, <a href="https://www.tomsguide.com/computing/apple-desktops/apple-mac-studio-m4-max-review">Mac Studio</a>, and <a href="https://www.tomsguide.com/computing/apple-desktops/apple-imac-m4-review">iMac</a>. The standout feature as far as a lot of users (and Anthony) are concerned? Support for external switches. </p><p>That means you'll be able to use compatible accessories to power off or restart the Mac mini without ever needing to access the physical button on the underside of the chassis. What's more, according to Apple's <a href="https://support.apple.com/en-us/125517" target="_blank">support document</a>, the new update will also give users the choice to have their Mac mini, Mac Studio, or iMac automatically turn on when connected to power. Nice!</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="TUpMErrBpjcZASartetyE8" name="Mac mini M4-06" alt="Lifting the Mac mini M4 up in order to press its power button" src="https://cdn.mos.cms.futurecdn.net/TUpMErrBpjcZASartetyE8.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Despite Apple categorizing this as an accessibility feature, I'd argue the addition of switch support is a big quality-of-life upgrade for all users. Especially if you like to tinker with your desk setup. For example, you could mount a compatible third-party switch to the side of your keyboard and have it always within reach.</p><p>Apple itself seems to quietly acknowledge the design misstep, noting this new feature is particularly helpful, “when you don't have easy access to the computer's power button.” </p><h2 id="how-to-enable-power-control">How to enable Power Control</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="mBG2BLb2nByp25qbZsfocP" name="Apple-Mac-mini-lifestyle-music-studio-min" alt="Mac Mini M4" src="https://cdn.mos.cms.futurecdn.net/mBG2BLb2nByp25qbZsfocP.png" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Apple)</span></figcaption></figure><p>If you’ve updated to macOS 26.5, you can find these new options by navigating to <strong>System Settings > Energy</strong>. From there, a new <strong>Power Control</strong> menu allows you to pair your external switches. </p><p>Additionally, the update includes a toggle to have your Mac automatically boot up as soon as it’s connected to power — a feature previously reserved for server-grade hardware but now available to the Mac mini M4, iMac M4, and the 2025 Mac Studio.</p><h2 id="bottom-line">Bottom line</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="QmjZCJY7EmTEVJPLPFiCn3" name="Mac mini M4--1-LEDE" alt="A desk setup built around the Mac mini M4 with an Apple Studio Display on an all wooden desk" src="https://cdn.mos.cms.futurecdn.net/QmjZCJY7EmTEVJPLPFiCn3.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The macOS 26.5 is a relatively small update for Mac, but this particular addition does seem like it'll make a meaningful difference. </p><p>Hopefully, this small change means Apple is taking on board feedback that users and reviewers are pointing out — even if it's through software solutions rather than hardware revamps. </p><p>Of course, whether or not the next iteration of the Mac mini keeps the power button on the underside remains to be seen. Maybe that's a question for John Ternus to answer when he <a href="https://www.tomsguide.com/phones/iphones/massive-changes-at-apple-john-ternus-takes-over-as-ceo-sept-1-while-tim-cook-moves-to-executive-chairman">takes the reins at Apple in September</a>.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-egn65X"></div>                            </div>                            <script src="https://kwizly.com/embed/egn65X.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/dells-own-support-software-is-crashing-its-pcs-and-laptops-the-irony-is-strong-but-there-is-a-quick-fix">Dell's own support software is crashing its PCs and laptops — the irony is strong, but there is a quick fix</a></li><li><a href="https://www.tomsguide.com/ai/i-tried-the-goldfish-prompt-with-chatgpt-and-it-instantly-stopped-my-overthinking">I tried the ‘Goldfish Prompt’ with ChatGPT — and it instantly stopped my overthinking</a></li><li><a href="https://www.tomsguide.com/phones/iphones/your-iphone-keyboard-can-do-math-heres-how-to-use-the-secret-calculator">Your iPhone keyboard can do math — here's how to use the secret calculator</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Dell's own support software is crashing its PCs and laptops — the irony is strong, but there is a quick fix ]]></title>
                                                                                                <dc:content><![CDATA[ <p>If you’re a Windows 11 user, you’re already familiar with the Blue Screen of Death (BSOD) — popping up when a critical error forces the operating system to stop. Normally, the blame falls on Microsoft (although its team is working hard on improving Windows soon). But if you’ve been seeing this happen on your Dell PC, it turns out the culprit is so much more ironic.</p><p>As spotted by <a href="https://www.neowin.net/news/dell-pcs-are-running-into-constant-bsod-reboot-loops-and-windows-11-isnt-the-culprit/" target="_blank">Neowin</a>, Dell’s own SupportAssist software (the company calls it “your personalized PC support experience”) is causing some Dell PCs to hit a BSOD every 30 minutes after a recent update. So far, we’re seeing confirmation that the following laptops are affected:</p><ul><li><a href="https://www.tomsguide.com/reviews/alienware-m16-r2">Alienware M16 R2</a></li><li>Dell Pro 16 Plus</li><li>Dell Pro 14 Plus</li><li>Dell XPS 16</li><li>Dell XPS 15</li><li><a href="https://www.tomsguide.com/computing/laptops/dell-xps-14-2026-review">Dell XPS 14</a></li><li>Dell XPS 13</li></ul><p>This is based on what Dell forum members are saying, but given it’s widespread, I wouldn’t be surprised if it’s a far wider problem than this. If you’re one of these folks who just installed the Dell software update and are seeing this issue, there is a simple fix.</p><h2 id="just-uninstall-supportassist">Just uninstall SupportAssist</h2><p>The situation was revealed after <a href="https://www.dell.com/community/en/conversations/supportassist-for-pcs/bsod-random-reboots-may-2026-dell-updates-dell-support-assist-probable-cause/6a017bde657052398888e805" target="_blank">keen-eyed users</a> took a look into the system log to see what was going on. It was identified after some people reported their laptops “kept randomly rebooting” roughly every 30 minutes. This suggests that the SupportAssist is trying to check system health on a regular half-hour schedule, where it hits a corrupted piece of code and crashes it.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:901px;"><p class="vanilla-image-block" style="padding-top:96.56%;"><img id="z2DtRHZQEkvQ69BKk9FUsh" name="Dell System event checker" alt="Dell System event checker" src="https://cdn.mos.cms.futurecdn.net/z2DtRHZQEkvQ69BKk9FUsh.png" mos="" align="middle" fullscreen="" width="901" height="870" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dell)</span></figcaption></figure><p>As you can see, there’s a lot of critical errors at the Kernel-Power level — basically the system level — and after a check, the critical process that dies has consistently been the “Dell SupportAssist Remediation” service. Giving a “CRITICAL_PROCESS_DIED (0xEF)” code, it’s taking down the entire operating system with it.</p><p>And it’s not the first time this has happened, with a similar SupportAssist problem happening at the end of 2024. Luckily, just like the last time, the issue is simple. <strong>Go to Settings > Apps > Installed Apps, find Dell SupportAssist, select More > Uninstall.</strong></p><p>Users who have already done this are reporting that it fixes the issue and they’re not seeing any more random BSOD crashes.</p><h2 id="can-we-cool-it-with-the-bloatware">Can we cool it with the bloatware?</h2><p><a href="https://www.tomsguide.com/computing/macbooks/windows-fans-say-macbook-neos-8gb-ram-is-ridiculous-so-i-tested-it-and-the-results-are-shocking">Windows 11 already has a RAM problem</a>. It’s inherent to how the OS prioritizes preloading parts of apps into system memory before you click them, but what that means is all these little additions actually harm the experience rather than enrich it.</p><p>Things like Dell SupportAssist take up another chunk of that precious RAM that could be better used elsewhere on apps people actually use. And while the <a href="https://www.windowscentral.com/microsoft/windows-11/what-is-windows-k2-everything-you-need-to-know-saving-windows-11" target="_blank">Windows K2</a> project may be aiming squarely at tackling some of these challenges at an OS-level, I can only imagine that the additional bloatware won’t help the situation. </p><p>So I beg of you, Dell and others, please just let us have a clean install, so we don’t have to uninstall all the unnecessary heft!</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/macbooks/i-can-finally-turn-my-macbook-pro-into-a-gaming-laptop-sort-of-gamehub-just-fixed-my-macs-biggest-weakness-in-minutes">I can finally turn my MacBook Pro into a gaming laptop (sort of) — GameHub just fixed my Mac’s biggest weakness in minutes</a></li><li><a href="https://www.tomsguide.com/computing/laptops/asus-zenbook-a14-a16-2026-review">I loved Asus’s Zenbook A14 and A16 — but a $200 price hike changes everything</a></li><li><a href="https://www.tomsguide.com/computing/macos/ai-is-changing-how-we-transcribe-and-this-might-be-the-best-example-of-it-on-mac-yet">AI is changing how we transcribe, and this might be the best example of it on Mac yet</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/windows-operating-systems/dells-own-support-software-is-crashing-its-pcs-and-laptops-the-irony-is-strong-but-there-is-a-quick-fix</link>
                                                                            <description>
                            <![CDATA[ Dell’s SupportAssist software is causing constant BSOD crashes on XPS and Alienware laptops. After a buggy May 2026 update, users are seeing reboots every 30 minutes. Here is the simple fix to stop the crashes and reclaim your RAM. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">t8AJfgCayhiT8gQS8mbucQ</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/nhsTmywy9QLjWLsPZk7zAe-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 12 May 2026 10:47:15 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Windows Operating Systems]]></category>
                                                    <category><![CDATA[Computing Peripherals]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                                                                                    <dc:creator><![CDATA[ Jason England ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/v4fSq5U4uZUEtGY2BwNuJ6.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Jason brings a decade of tech and gaming journalism experience to his role as a Managing Editor of Computing at Tom&#039;s Guide. He has previously written for Laptop Mag, Tom&#039;s Hardware, Kotaku, Stuff and BBC Science Focus. In his spare time, you&#039;ll find Jason looking for good dogs to pet or thinking about eating pizza if he isn&#039;t already.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/nhsTmywy9QLjWLsPZk7zAe-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Dell XPS 14 (2026)]]></media:description>                                                            <media:text><![CDATA[Dell XPS 14 (2026)]]></media:text>
                                <media:title type="plain"><![CDATA[Dell XPS 14 (2026)]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/nhsTmywy9QLjWLsPZk7zAe-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>If you’re a Windows 11 user, you’re already familiar with the Blue Screen of Death (BSOD) — popping up when a critical error forces the operating system to stop. Normally, the blame falls on Microsoft (although its team is working hard on improving Windows soon). But if you’ve been seeing this happen on your Dell PC, it turns out the culprit is so much more ironic.</p><p>As spotted by <a href="https://www.neowin.net/news/dell-pcs-are-running-into-constant-bsod-reboot-loops-and-windows-11-isnt-the-culprit/" target="_blank">Neowin</a>, Dell’s own SupportAssist software (the company calls it “your personalized PC support experience”) is causing some Dell PCs to hit a BSOD every 30 minutes after a recent update. So far, we’re seeing confirmation that the following laptops are affected:</p><ul><li><a href="https://www.tomsguide.com/reviews/alienware-m16-r2">Alienware M16 R2</a></li><li>Dell Pro 16 Plus</li><li>Dell Pro 14 Plus</li><li>Dell XPS 16</li><li>Dell XPS 15</li><li><a href="https://www.tomsguide.com/computing/laptops/dell-xps-14-2026-review">Dell XPS 14</a></li><li>Dell XPS 13</li></ul><p>This is based on what Dell forum members are saying, but given it’s widespread, I wouldn’t be surprised if it’s a far wider problem than this. If you’re one of these folks who just installed the Dell software update and are seeing this issue, there is a simple fix.</p><h2 id="just-uninstall-supportassist">Just uninstall SupportAssist</h2><p>The situation was revealed after <a href="https://www.dell.com/community/en/conversations/supportassist-for-pcs/bsod-random-reboots-may-2026-dell-updates-dell-support-assist-probable-cause/6a017bde657052398888e805" target="_blank">keen-eyed users</a> took a look into the system log to see what was going on. It was identified after some people reported their laptops “kept randomly rebooting” roughly every 30 minutes. This suggests that the SupportAssist is trying to check system health on a regular half-hour schedule, where it hits a corrupted piece of code and crashes it.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:901px;"><p class="vanilla-image-block" style="padding-top:96.56%;"><img id="z2DtRHZQEkvQ69BKk9FUsh" name="Dell System event checker" alt="Dell System event checker" src="https://cdn.mos.cms.futurecdn.net/z2DtRHZQEkvQ69BKk9FUsh.png" mos="" align="middle" fullscreen="" width="901" height="870" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dell)</span></figcaption></figure><p>As you can see, there’s a lot of critical errors at the Kernel-Power level — basically the system level — and after a check, the critical process that dies has consistently been the “Dell SupportAssist Remediation” service. Giving a “CRITICAL_PROCESS_DIED (0xEF)” code, it’s taking down the entire operating system with it.</p><p>And it’s not the first time this has happened, with a similar SupportAssist problem happening at the end of 2024. Luckily, just like the last time, the issue is simple. <strong>Go to Settings > Apps > Installed Apps, find Dell SupportAssist, select More > Uninstall.</strong></p><p>Users who have already done this are reporting that it fixes the issue and they’re not seeing any more random BSOD crashes.</p><h2 id="can-we-cool-it-with-the-bloatware">Can we cool it with the bloatware?</h2><p><a href="https://www.tomsguide.com/computing/macbooks/windows-fans-say-macbook-neos-8gb-ram-is-ridiculous-so-i-tested-it-and-the-results-are-shocking">Windows 11 already has a RAM problem</a>. It’s inherent to how the OS prioritizes preloading parts of apps into system memory before you click them, but what that means is all these little additions actually harm the experience rather than enrich it.</p><p>Things like Dell SupportAssist take up another chunk of that precious RAM that could be better used elsewhere on apps people actually use. And while the <a href="https://www.windowscentral.com/microsoft/windows-11/what-is-windows-k2-everything-you-need-to-know-saving-windows-11" target="_blank">Windows K2</a> project may be aiming squarely at tackling some of these challenges at an OS-level, I can only imagine that the additional bloatware won’t help the situation. </p><p>So I beg of you, Dell and others, please just let us have a clean install, so we don’t have to uninstall all the unnecessary heft!</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/macbooks/i-can-finally-turn-my-macbook-pro-into-a-gaming-laptop-sort-of-gamehub-just-fixed-my-macs-biggest-weakness-in-minutes">I can finally turn my MacBook Pro into a gaming laptop (sort of) — GameHub just fixed my Mac’s biggest weakness in minutes</a></li><li><a href="https://www.tomsguide.com/computing/laptops/asus-zenbook-a14-a16-2026-review">I loved Asus’s Zenbook A14 and A16 — but a $200 price hike changes everything</a></li><li><a href="https://www.tomsguide.com/computing/macos/ai-is-changing-how-we-transcribe-and-this-might-be-the-best-example-of-it-on-mac-yet">AI is changing how we transcribe, and this might be the best example of it on Mac yet</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ AI is changing how we transcribe, and this might be the best example of it on Mac yet ]]></title>
                                                                                                <dc:content><![CDATA[ <p>For all the things I (and many others) are wary about in the <a href="https://www.tomsguide.com/uk/ai">AI future</a>, there are certainly some obvious uses for the technology.</p><p>Running huge calculations in a fraction of the time, translating text, and other “donkey work” is what it should be used for, rather than an excuse to overwrite humankind’s propensity for creativity.</p><p>As a writer, one of the most frustrating parts of interviews has long been transcribing voice to text. It’s got much better in recent years, but it’s often required expensive, sometimes demanding software tools.</p><p>I stumbled upon <a href="https://www.typewhisper.com/en/" target="_blank" rel="nofollow">TypeWhisper</a>, and it’s a fantastic AI tool for transcription - and it runs locally.</p><h2 id="talking-to-myself">Talking to myself</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="TYWj6m5egvgdri6hJeUAXH" name="Dictionary" alt="TypeWhisper App macOS" src="https://cdn.mos.cms.futurecdn.net/TYWj6m5egvgdri6hJeUAXH.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: TypeWhisper)</span></figcaption></figure><p>TypeWhisper is free to use for non-commercial purposes, but you can pay for additional models. I’ve been testing the app with the WhisperKit LLM, installed locally on my MacBook Air.</p><p>This means there are multiple sizes to choose from, and I’ve settled on the Large v3 model at 1.5GB - but some models are as small as 40MB.</p><p>Out of the box, though, it’s pretty fantastic. I use a hotkey (tied to <a href="https://www.tomsguide.com/computing/i-found-the-ultimate-mac-productivity-hack-and-its-completely-free" target="_blank" rel="nofollow">HyperKey</a>, which I wrote about recently) to trigger voice-to-text, and that allows me to speak and see live transcription at the top of my screen within the Mac’s ‘notch’ - almost like an iPhone’s Dynamic Island.</p><p>In my testing, I’ve found it’s a great way to get ideas down so I can copy them into my writing app of choice (usually Drafts or Google Docs). It’s not perfect, but when pointing it at an American Dad episode playing in the room, it did a great job of transcribing its absurdist humor to text.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="nVGGu39RShBNWKT7bDc4RH" name="Header" alt="TypeWhisper App macOS" src="https://cdn.mos.cms.futurecdn.net/nVGGu39RShBNWKT7bDc4RH.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: TypeWhisper)</span></figcaption></figure><p>I can add phrases to the dictionary so that “Eggs Box” becomes “Xbox” more consistently, and more besides.</p><h2 id="you-talking-to-me">You talking to me?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="s2hB2B4GowHRLWobX25BWH" name="Workflows" alt="TypeWhisper App macOS" src="https://cdn.mos.cms.futurecdn.net/s2hB2B4GowHRLWobX25BWH.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: TypeWhisper)</span></figcaption></figure><p>That brings us to the real draw, though - file transcription. The majority of interviews I’ve conducted are recorded on messaging platforms and sent over as audio or video files.</p><p>What once involved slowly working through with headphones on now needs to be dragged, dropped, and transcribed by TypeWhisper. Naturally, larger models will have more consistent results (particularly if you’re plugging in cloud models like Chat-GPT), but in wanting to keep my environmental footprint to a minimum, I’ve been very pleased with the local model. It can even export to subtitle files with timestamps - ideal for content creation.</p><p>There’s a Workflow function to take transcriptions and run automations on them, like dropping them into a specific application.</p><p>All in all, what began as a curiosity in my own workflows has become something I can see myself using more and more often.</p><p>TypeWhisper is stable in macOS right now, and it’s in beta for Windows and alpha for iOS.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/software/i-ditched-apple-mail-for-this-game-changing-app-and-im-not-going-back">I ditched Apple Mail for this game-changing app and I’m not going back</a></li><li><a href="https://www.tomsguide.com/computing/i-found-the-ultimate-mac-productivity-hack-and-its-completely-free">I found the ultimate Mac productivity hack and it's completely free</a></li><li><a href="https://www.tomsguide.com/computing/this-mac-app-made-me-realize-how-easily-distracted-i-am-and-helped-me-combat-it">I tried the Monocle app for Mac and it completely changed how I handle digital distractions</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/macos/ai-is-changing-how-we-transcribe-and-this-might-be-the-best-example-of-it-on-mac-yet</link>
                                                                            <description>
                            <![CDATA[ TypeWhisper is a local AI model that’s ideal for transcription and runs right on your Mac. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">BY2XRj8gAFJRF4zW4vzbzB</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/SupVSbx9xbZoDmUN6ncjUj-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 11 May 2026 11:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[macOS]]></category>
                                                    <category><![CDATA[AI]]></category>
                                                    <category><![CDATA[Computing Peripherals]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                                                                                    <dc:creator><![CDATA[ Lloyd Coombes ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/xcWocVTwa9yiwXRs559XNA.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Lloyd Coombes is a freelance tech and fitness writer. He&#039;s an expert in all things Apple as well as in computer and gaming tech, with previous works published on TechRadar, Tom&#039;s Guide, Live Science and more. You&#039;ll find him regularly testing the latest MacBook or iPhone, but he spends most of his time writing about video games as Gaming Editor for the Daily Star. He also covers board games and virtual reality, just to round out the nerdy pursuits.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/SupVSbx9xbZoDmUN6ncjUj-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[How to check Macbook battery health]]></media:description>                                                            <media:text><![CDATA[How to check Macbook battery health]]></media:text>
                                <media:title type="plain"><![CDATA[How to check Macbook battery health]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/SupVSbx9xbZoDmUN6ncjUj-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>For all the things I (and many others) are wary about in the <a href="https://www.tomsguide.com/uk/ai">AI future</a>, there are certainly some obvious uses for the technology.</p><p>Running huge calculations in a fraction of the time, translating text, and other “donkey work” is what it should be used for, rather than an excuse to overwrite humankind’s propensity for creativity.</p><p>As a writer, one of the most frustrating parts of interviews has long been transcribing voice to text. It’s got much better in recent years, but it’s often required expensive, sometimes demanding software tools.</p><p>I stumbled upon <a href="https://www.typewhisper.com/en/" target="_blank" rel="nofollow">TypeWhisper</a>, and it’s a fantastic AI tool for transcription - and it runs locally.</p><h2 id="talking-to-myself">Talking to myself</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="TYWj6m5egvgdri6hJeUAXH" name="Dictionary" alt="TypeWhisper App macOS" src="https://cdn.mos.cms.futurecdn.net/TYWj6m5egvgdri6hJeUAXH.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: TypeWhisper)</span></figcaption></figure><p>TypeWhisper is free to use for non-commercial purposes, but you can pay for additional models. I’ve been testing the app with the WhisperKit LLM, installed locally on my MacBook Air.</p><p>This means there are multiple sizes to choose from, and I’ve settled on the Large v3 model at 1.5GB - but some models are as small as 40MB.</p><p>Out of the box, though, it’s pretty fantastic. I use a hotkey (tied to <a href="https://www.tomsguide.com/computing/i-found-the-ultimate-mac-productivity-hack-and-its-completely-free" target="_blank" rel="nofollow">HyperKey</a>, which I wrote about recently) to trigger voice-to-text, and that allows me to speak and see live transcription at the top of my screen within the Mac’s ‘notch’ - almost like an iPhone’s Dynamic Island.</p><p>In my testing, I’ve found it’s a great way to get ideas down so I can copy them into my writing app of choice (usually Drafts or Google Docs). It’s not perfect, but when pointing it at an American Dad episode playing in the room, it did a great job of transcribing its absurdist humor to text.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="nVGGu39RShBNWKT7bDc4RH" name="Header" alt="TypeWhisper App macOS" src="https://cdn.mos.cms.futurecdn.net/nVGGu39RShBNWKT7bDc4RH.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: TypeWhisper)</span></figcaption></figure><p>I can add phrases to the dictionary so that “Eggs Box” becomes “Xbox” more consistently, and more besides.</p><h2 id="you-talking-to-me">You talking to me?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="s2hB2B4GowHRLWobX25BWH" name="Workflows" alt="TypeWhisper App macOS" src="https://cdn.mos.cms.futurecdn.net/s2hB2B4GowHRLWobX25BWH.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: TypeWhisper)</span></figcaption></figure><p>That brings us to the real draw, though - file transcription. The majority of interviews I’ve conducted are recorded on messaging platforms and sent over as audio or video files.</p><p>What once involved slowly working through with headphones on now needs to be dragged, dropped, and transcribed by TypeWhisper. Naturally, larger models will have more consistent results (particularly if you’re plugging in cloud models like Chat-GPT), but in wanting to keep my environmental footprint to a minimum, I’ve been very pleased with the local model. It can even export to subtitle files with timestamps - ideal for content creation.</p><p>There’s a Workflow function to take transcriptions and run automations on them, like dropping them into a specific application.</p><p>All in all, what began as a curiosity in my own workflows has become something I can see myself using more and more often.</p><p>TypeWhisper is stable in macOS right now, and it’s in beta for Windows and alpha for iOS.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/software/i-ditched-apple-mail-for-this-game-changing-app-and-im-not-going-back">I ditched Apple Mail for this game-changing app and I’m not going back</a></li><li><a href="https://www.tomsguide.com/computing/i-found-the-ultimate-mac-productivity-hack-and-its-completely-free">I found the ultimate Mac productivity hack and it's completely free</a></li><li><a href="https://www.tomsguide.com/computing/this-mac-app-made-me-realize-how-easily-distracted-i-am-and-helped-me-combat-it">I tried the Monocle app for Mac and it completely changed how I handle digital distractions</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ macOS 27 set to launch with three huge new features — and no, Apple’s not killing Liquid Glass at WWDC 2026 ]]></title>
                                                                                                <dc:content><![CDATA[ <p><a href="https://www.tomsguide.com/phones/iphones/wwdc-2026">WWDC 2026</a> is just around the corner, and so is macOS 27. Will Apple get rid of Liquid Glass? No, but according to the latest <a href="https://www.bloomberg.com/news/newsletters/2026-05-10/apple-plans-macos-27-design-changes-latest-on-ios-27-visionos-safari-wwdc-26-mozuaz9m" target="_blank">Mark Gurman report</a>, the company looks set to address some of the key frustrations about it — all while adding some nifty new features and optimizations to the OS too.</p><p>With it being quite the make-or-break year for Apple’s AI ambitions, Safari looks set to get awesome new tech to automate tab grouping (alongside the revamped Gemini-infused Siri), and there is even talk about prepping the desktop OS for touch.</p><h2 id="a-slight-redesign-to-tackle-liquid-glass-problems">A ‘slight redesign’ to tackle Liquid Glass problems</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="aBR3HP2VVMPQteUEbMehfF" name="WWDC 2025 — June 9 _ Apple 58-49 screenshot" alt="Clear Command Center" src="https://cdn.mos.cms.futurecdn.net/aBR3HP2VVMPQteUEbMehfF.png" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Apple)</span></figcaption></figure><p>In his newsletter, Gurman has reported that a “slight redesign” is coming to help address the readability problems that Liquid Glass has caused — namely the “shadows and transparency quirks.”</p><p>It’s been one of my biggest pet peeves with macOS over the past few months, but also one I’ve been conflicted about because I do actually like the transparency of Liquid Glass giving me subtle context clues of where my windows are. So if we could get better text visibility, improved scroll bar placement and less shadow effects taking over the screen, that would be a damn good place to start.</p><h2 id="thoughtful-ai-usage-in-safari">Thoughtful AI usage in Safari</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Gvdmm9HZT4DwWH6WPi4FW8" name="TG-safari-iphone-shutterstock.jpg" alt="An image of an iPhone screen showing the Safari app icon in the center" src="https://cdn.mos.cms.futurecdn.net/Gvdmm9HZT4DwWH6WPi4FW8.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Same as what Gurman has been told about test versions of iOS 27, a new “Organize Tabs” button is set to be added to Safari for AI-infused automatic tab grouping in Apple’s Safari.</p><p>Taking the manual process out of figuring out all your browser tabs (and catching up with other browsers that have been doing this for a while), Apple is dealing with the groups for you and “you can choose whether you want the grouping to occur automatically or not.”</p><h2 id="touch-ready-for-macbook-ultra">Touch-ready for MacBook Ultra</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="wEVUQu4Nkt57ntu3kiC4eS" name="ALogic Aspekt Touch-2" alt="Browsing the web on the ALogic Aspekt Touch 32-inch touchscreen monitor connected to a Mac mini" src="https://cdn.mos.cms.futurecdn.net/wEVUQu4Nkt57ntu3kiC4eS.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>This is the big question mark. All rumors are pointing to a touchscreen <a href="https://www.tomsguide.com/computing/laptops/macbook-ultra-everything-we-know-so-far">MacBook Ultra</a> launching later this year — it’s gotten us so excited that we got impatient and <a href="https://www.tomsguide.com/computing/i-got-tired-of-waiting-for-a-touchscreen-imac-so-i-made-one-myself-heres-how-i-did-it">created our own touch iMac</a>. </p><p>So it stands to reason that with new hardware, the software needs to catch up. macOS may look rather touch-friendly with its iOS stylings, but it’s certainly a bit awkward to use in this way. In another <a href="https://www.bloomberg.com/news/articles/2026-02-24/apple-s-touch-screen-macbook-pro-to-have-dynamic-island-new-interface" target="_blank">Gurman report</a>, it sounds like this is finally the year where we’ll see it happen.</p><p>However, don’t expect it to be out in the wild for you to test in betas. Given it’s potentially connected to new devices, you can expect the Cupertino Crew to keep this one hidden until the Ultra reportedly breaks cover towards the end of this year/beginning of next year.</p><h2 id="this-needs-to-be-a-snow-leopard-moment">This needs to be a ‘Snow Leopard’ moment</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="aeAsuGHPsdeNftt767USaK" name="MacBook Pro M5--01-LIST" alt="MacBook Pro M5" src="https://cdn.mos.cms.futurecdn.net/aeAsuGHPsdeNftt767USaK.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Remember Snow Leopard? This came after a particularly massive feature-rich version of macOS Leopard — bringing a lot of stuff to the table while introducing some bloat to say the least.</p><p>Snow Leopard is easily my favorite version of the OS that Apple has ever launched because it focused simply on everything under the hood. It was a night-and-day difference in speeds and feeds, and everything just felt much more “put together.” </p><p>And it’s this feeling that I’ll be looking for in macOS 27. An improved Siri looks ready to potentially bring some agentic capabilities, Liquid Glass needs a tune-up, and while macOS is in a much more power-optimized place now with Apple Silicon, there are still plenty of stability improvements to be made.</p><p>If we get this version of Craig Federighi (and his magnificent hair) on stage in June, then you’ll know Apple’s been cooking.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/phones/android-phones/honor-600-hands-on-review">I’m an iPhone stan, but the Honor 600 is making me seriously consider switching — here’s why</a></li><li><a href="https://www.tomsguide.com/best-picks/best-macbook">Which MacBook should you buy in 2026? I ranked the 5 best Apple laptops for every need</a></li><li><a href="https://www.tomsguide.com/computing/macbooks/i-can-finally-turn-my-macbook-pro-into-a-gaming-laptop-sort-of-gamehub-just-fixed-my-macs-biggest-weakness-in-minutes">I can finally turn my MacBook Pro into a gaming laptop (sort of) — GameHub just fixed my Mac’s biggest weakness in minutes</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/macos/macos-27-set-to-launch-with-three-huge-new-features-and-no-apples-not-killing-liquid-glass-at-wwdc-2026</link>
                                                                            <description>
                            <![CDATA[ macOS 27 is set to be unveiled at WWDC 2026, and rumors are pointing to a "Snow Leopard" focus on stability, a crucial Liquid Glass redesign and an AI-powered Safari. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">gHqDHX3yT5jv2NvJSuVugJ</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/9WewLFGGuEX6mfwAKBrohk-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 11 May 2026 08:23:08 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[macOS]]></category>
                                                    <category><![CDATA[Computing Peripherals]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                                                                                    <dc:creator><![CDATA[ Jason England ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/v4fSq5U4uZUEtGY2BwNuJ6.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Jason brings a decade of tech and gaming journalism experience to his role as a Managing Editor of Computing at Tom&#039;s Guide. He has previously written for Laptop Mag, Tom&#039;s Hardware, Kotaku, Stuff and BBC Science Focus. In his spare time, you&#039;ll find Jason looking for good dogs to pet or thinking about eating pizza if he isn&#039;t already.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/9WewLFGGuEX6mfwAKBrohk-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[MacBook Neo open on a desk]]></media:description>                                                            <media:text><![CDATA[MacBook Neo open on a desk]]></media:text>
                                <media:title type="plain"><![CDATA[MacBook Neo open on a desk]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/9WewLFGGuEX6mfwAKBrohk-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p><a href="https://www.tomsguide.com/phones/iphones/wwdc-2026">WWDC 2026</a> is just around the corner, and so is macOS 27. Will Apple get rid of Liquid Glass? No, but according to the latest <a href="https://www.bloomberg.com/news/newsletters/2026-05-10/apple-plans-macos-27-design-changes-latest-on-ios-27-visionos-safari-wwdc-26-mozuaz9m" target="_blank">Mark Gurman report</a>, the company looks set to address some of the key frustrations about it — all while adding some nifty new features and optimizations to the OS too.</p><p>With it being quite the make-or-break year for Apple’s AI ambitions, Safari looks set to get awesome new tech to automate tab grouping (alongside the revamped Gemini-infused Siri), and there is even talk about prepping the desktop OS for touch.</p><h2 id="a-slight-redesign-to-tackle-liquid-glass-problems">A ‘slight redesign’ to tackle Liquid Glass problems</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="aBR3HP2VVMPQteUEbMehfF" name="WWDC 2025 — June 9 _ Apple 58-49 screenshot" alt="Clear Command Center" src="https://cdn.mos.cms.futurecdn.net/aBR3HP2VVMPQteUEbMehfF.png" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Apple)</span></figcaption></figure><p>In his newsletter, Gurman has reported that a “slight redesign” is coming to help address the readability problems that Liquid Glass has caused — namely the “shadows and transparency quirks.”</p><p>It’s been one of my biggest pet peeves with macOS over the past few months, but also one I’ve been conflicted about because I do actually like the transparency of Liquid Glass giving me subtle context clues of where my windows are. So if we could get better text visibility, improved scroll bar placement and less shadow effects taking over the screen, that would be a damn good place to start.</p><h2 id="thoughtful-ai-usage-in-safari">Thoughtful AI usage in Safari</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Gvdmm9HZT4DwWH6WPi4FW8" name="TG-safari-iphone-shutterstock.jpg" alt="An image of an iPhone screen showing the Safari app icon in the center" src="https://cdn.mos.cms.futurecdn.net/Gvdmm9HZT4DwWH6WPi4FW8.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Same as what Gurman has been told about test versions of iOS 27, a new “Organize Tabs” button is set to be added to Safari for AI-infused automatic tab grouping in Apple’s Safari.</p><p>Taking the manual process out of figuring out all your browser tabs (and catching up with other browsers that have been doing this for a while), Apple is dealing with the groups for you and “you can choose whether you want the grouping to occur automatically or not.”</p><h2 id="touch-ready-for-macbook-ultra">Touch-ready for MacBook Ultra</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="wEVUQu4Nkt57ntu3kiC4eS" name="ALogic Aspekt Touch-2" alt="Browsing the web on the ALogic Aspekt Touch 32-inch touchscreen monitor connected to a Mac mini" src="https://cdn.mos.cms.futurecdn.net/wEVUQu4Nkt57ntu3kiC4eS.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>This is the big question mark. All rumors are pointing to a touchscreen <a href="https://www.tomsguide.com/computing/laptops/macbook-ultra-everything-we-know-so-far">MacBook Ultra</a> launching later this year — it’s gotten us so excited that we got impatient and <a href="https://www.tomsguide.com/computing/i-got-tired-of-waiting-for-a-touchscreen-imac-so-i-made-one-myself-heres-how-i-did-it">created our own touch iMac</a>. </p><p>So it stands to reason that with new hardware, the software needs to catch up. macOS may look rather touch-friendly with its iOS stylings, but it’s certainly a bit awkward to use in this way. In another <a href="https://www.bloomberg.com/news/articles/2026-02-24/apple-s-touch-screen-macbook-pro-to-have-dynamic-island-new-interface" target="_blank">Gurman report</a>, it sounds like this is finally the year where we’ll see it happen.</p><p>However, don’t expect it to be out in the wild for you to test in betas. Given it’s potentially connected to new devices, you can expect the Cupertino Crew to keep this one hidden until the Ultra reportedly breaks cover towards the end of this year/beginning of next year.</p><h2 id="this-needs-to-be-a-snow-leopard-moment">This needs to be a ‘Snow Leopard’ moment</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="aeAsuGHPsdeNftt767USaK" name="MacBook Pro M5--01-LIST" alt="MacBook Pro M5" src="https://cdn.mos.cms.futurecdn.net/aeAsuGHPsdeNftt767USaK.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Remember Snow Leopard? This came after a particularly massive feature-rich version of macOS Leopard — bringing a lot of stuff to the table while introducing some bloat to say the least.</p><p>Snow Leopard is easily my favorite version of the OS that Apple has ever launched because it focused simply on everything under the hood. It was a night-and-day difference in speeds and feeds, and everything just felt much more “put together.” </p><p>And it’s this feeling that I’ll be looking for in macOS 27. An improved Siri looks ready to potentially bring some agentic capabilities, Liquid Glass needs a tune-up, and while macOS is in a much more power-optimized place now with Apple Silicon, there are still plenty of stability improvements to be made.</p><p>If we get this version of Craig Federighi (and his magnificent hair) on stage in June, then you’ll know Apple’s been cooking.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/phones/android-phones/honor-600-hands-on-review">I’m an iPhone stan, but the Honor 600 is making me seriously consider switching — here’s why</a></li><li><a href="https://www.tomsguide.com/best-picks/best-macbook">Which MacBook should you buy in 2026? I ranked the 5 best Apple laptops for every need</a></li><li><a href="https://www.tomsguide.com/computing/macbooks/i-can-finally-turn-my-macbook-pro-into-a-gaming-laptop-sort-of-gamehub-just-fixed-my-macs-biggest-weakness-in-minutes">I can finally turn my MacBook Pro into a gaming laptop (sort of) — GameHub just fixed my Mac’s biggest weakness in minutes</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Microsoft reportedly redesigning Start Menu in Windows 11 after actually listening to user complaints ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Microsoft has been <a href="https://www.tomsguide.com/computing/windows-operating-systems/we-need-to-improve-windows-in-ways-that-are-meaningful-for-people-microsoft-is-urgently-trying-to-fix-windows-11-issues">promising to improve Windows 11</a> since January and we may see that overhaul begin with the <a href="https://www.tomsguide.com/news/windows-11-new-start-menu-everything-you-need-to-know">Start Menu</a>. The tech giant is rebuilding the Start menu with customization options and improved performance.</p><p>According to our friends at <a href="https://www.windowscentral.com/gaming/indies-idxbox/starship-troopers-ultimate-bug-war-xbox" target="_blank">Windows Central</a>, Microsoft is working on an update that's designed to give you more control over how the the menu looks and operates. It fits with <a href="https://www.tomsguide.com/computing/windows-operating-systems/microsoft-promises-windows-11-reset-new-focus-on-performance-reliability-and-reducing-unnecessary-copilot-ai">promises made in March</a> that detailed more customization and performance improvements for Windows 11 as a whole.</p><h2 id="what-is-microsoft-potentially-changing">What is Microsoft potentially changing</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="WWfVQoKyhS6ocSop9eu59R" name="Windows 11 laptop.jpg" alt="Windows 11" src="https://cdn.mos.cms.futurecdn.net/WWfVQoKyhS6ocSop9eu59R.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft)</span></figcaption></figure><p>Per Window Central, the initial look of the Start Menu will appear similar to how it already does in Windows 11. The difference will be in customization options configurable in the Windows Settings app. </p><p>Examples include the ability to turn off specific sections of the menu and choosing between small or large layouts. Currently, you can only see the small and large layouts depending on your screen size and device. This would let you set the menu to your preferred size regardless of what kind of device you're using.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eM7bDO"></div>                            </div>                            <script src="https://kwizly.com/embed/eM7bDO.js" async></script><p>As for toggling off sections, allegedly, you can turn off different things like the recommended feed or pinning apps in the menu. You could potentially even disable the all apps list.</p><p>Beyond customization, the new Start menu is supposed to be much more responsive, even when under intense load. This is supposed to extend to the search bar in the menu where you'll be able to type and search without any noticeable slowdown or missed keys.</p><h2 id="what-could-have-been">What could have been</h2><p>The alleged changes come out as Microsoft's design team shared on its Instagram page the approach that was taken to redesigning the Start menu. Unfortunately, the comments under that post are not kind.</p><p>"I don't like the new Start Menu at all. It doesn't fulfill my personal necessities and it makes everything more frustrating and time consuming. I even pay a third party software that modify it," one person wrote.</p><p>The comments were eventually turned off.</p><div class="instagram-embed"><blockquote class="instagram-media"  data-instgrm-version="6" style="width:99.375%; width:-webkit-calc(100% - 2px); width:calc(100% - 2px);"><p><a href="https://www.instagram.com/p/DWmNoyilCOw/" target="_blank">A post shared by Microsoft Design (@microsoft.design)</a></p><p>A photo posted by </p></blockquote></div><p><a href="https://www.windowslatest.com/2026/04/10/microsoft-tested-5-different-start-menus-for-windows-11-before-choosing-the-current-one/" target="_blank">Windows Latest</a> points out that the Windows Design team <a href="https://microsoft.design/articles/start-fresh-redesigning-windows-start-menu/" target="_blank">released a blog post</a> last year that revealed five prototype Start menus. Some commentators called the prototypes more beautiful. However, looking at some of the images, all five still appear to have the same problems that the current menu does.</p><p>To be honest, it just makes us <a href="https://www.tomsguide.com/news/windows-10s-stunning-new-start-menu-revealed-heres-your-first-look">miss the Windows 10 Start Menu</a>, which mixed app lists and tiles in a more usable way. </p><p>Microsoft says it wants to solve the pain points in Windows 11 throughout 2026. It appears the Start Menu will be one of the first changes.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/microsoft-starts-removing-copilot-from-windows-11-im-saying-that-sarcastically-because-its-clearly-just-lip-service">Microsoft starts removing Copilot from Windows 11 — I’m saying that sarcastically because it's clearly just lip service</a></li><li><a href="https://www.tomsguide.com/computing/windows-is-using-your-internet-to-update-other-peoples-pcs-disable-this-hidden-setting-to-speed-up-your-connection">Windows is using your internet to update other people’s PCs — disable this hidden setting to speed up your connection</a></li><li><a href="https://www.tomsguide.com/ai/i-ditched-copilot-for-claude-in-microsoft-word-and-im-never-going-back">I ditched Copilot for Claude in Microsoft Word — and I’m never going back</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/windows-operating-systems/microsoft-reportedly-redesigning-start-menu-in-windows-11-after-actually-listening-to-user-complaints</link>
                                                                            <description>
                            <![CDATA[ Microsoft is reportedly redesigning the Windows 11 Start Menu after listening to user complaints. Here's what's coming. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">ckX6ZCN86Tefb6EAuYkRjC</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/PLRu6JNgfn6MqNXq2G4BWj-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 17 Apr 2026 23:26:55 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Windows Operating Systems]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                                                                <author><![CDATA[ scott.younker@futurenet.com (Scott Younker) ]]></author>                    <dc:creator><![CDATA[ Scott Younker ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/RZsUpqcJ6Uj2q83oCUwNhQ.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Scott Younker is the West Coast Reporter at Tom’s Guide. He covers all the latest tech news, including phones, computing and more. He’s been involved in tech since 2011 covering everything from cameras and swimming pool equipment to the latest gaming consoles and smart TVs. He is on a seemingly never ending hunt to build the easiest to use home media system. &lt;/p&gt;&lt;p&gt;Before Tom’s Guide, Scott worked for publications like &lt;em&gt;Digital Trends, Outdoor Photographer, Dead Beats Panel&lt;/em&gt;, and in a brief detour, &lt;em&gt;America’s Funniest Home Videos&lt;/em&gt;. Yes, he has seen more pratfalls, silly pets and ridiculous home movie fails than is reasonably healthy. &lt;/p&gt;&lt;p&gt;When not writing about the latest devices or advances in chipsets, be sure to ask about Scott about disc golf and sustainability, or just if you’re being cheeky, ask about his noodle arm. If you truly want to get nerdy, bring up board games and his ongoing losing streak. &lt;/p&gt;&lt;p&gt;Scott joined Tom&#039;s Guide in 2024 as the West Coast Reporter. He graduated from the School of Journalism at the University of Oregon with a degree in magazine journalism and a minor in communications. While there he blogged or wrote for several magazines including the Fluxx, Ethos and the Oregon Commentator. He briefly wrote and managed a moderately successful blog focused on web comics. &lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/PLRu6JNgfn6MqNXq2G4BWj-1280-80.jpg">
                                                            <media:credit><![CDATA[Microsoft]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Windows 11 Start Menu - dark mode]]></media:description>                                                            <media:text><![CDATA[Windows 11 Start Menu - dark mode]]></media:text>
                                <media:title type="plain"><![CDATA[Windows 11 Start Menu - dark mode]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/PLRu6JNgfn6MqNXq2G4BWj-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Microsoft has been <a href="https://www.tomsguide.com/computing/windows-operating-systems/we-need-to-improve-windows-in-ways-that-are-meaningful-for-people-microsoft-is-urgently-trying-to-fix-windows-11-issues">promising to improve Windows 11</a> since January and we may see that overhaul begin with the <a href="https://www.tomsguide.com/news/windows-11-new-start-menu-everything-you-need-to-know">Start Menu</a>. The tech giant is rebuilding the Start menu with customization options and improved performance.</p><p>According to our friends at <a href="https://www.windowscentral.com/gaming/indies-idxbox/starship-troopers-ultimate-bug-war-xbox" target="_blank">Windows Central</a>, Microsoft is working on an update that's designed to give you more control over how the the menu looks and operates. It fits with <a href="https://www.tomsguide.com/computing/windows-operating-systems/microsoft-promises-windows-11-reset-new-focus-on-performance-reliability-and-reducing-unnecessary-copilot-ai">promises made in March</a> that detailed more customization and performance improvements for Windows 11 as a whole.</p><h2 id="what-is-microsoft-potentially-changing">What is Microsoft potentially changing</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="WWfVQoKyhS6ocSop9eu59R" name="Windows 11 laptop.jpg" alt="Windows 11" src="https://cdn.mos.cms.futurecdn.net/WWfVQoKyhS6ocSop9eu59R.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft)</span></figcaption></figure><p>Per Window Central, the initial look of the Start Menu will appear similar to how it already does in Windows 11. The difference will be in customization options configurable in the Windows Settings app. </p><p>Examples include the ability to turn off specific sections of the menu and choosing between small or large layouts. Currently, you can only see the small and large layouts depending on your screen size and device. This would let you set the menu to your preferred size regardless of what kind of device you're using.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eM7bDO"></div>                            </div>                            <script src="https://kwizly.com/embed/eM7bDO.js" async></script><p>As for toggling off sections, allegedly, you can turn off different things like the recommended feed or pinning apps in the menu. You could potentially even disable the all apps list.</p><p>Beyond customization, the new Start menu is supposed to be much more responsive, even when under intense load. This is supposed to extend to the search bar in the menu where you'll be able to type and search without any noticeable slowdown or missed keys.</p><h2 id="what-could-have-been">What could have been</h2><p>The alleged changes come out as Microsoft's design team shared on its Instagram page the approach that was taken to redesigning the Start menu. Unfortunately, the comments under that post are not kind.</p><p>"I don't like the new Start Menu at all. It doesn't fulfill my personal necessities and it makes everything more frustrating and time consuming. I even pay a third party software that modify it," one person wrote.</p><p>The comments were eventually turned off.</p><div class="instagram-embed"><blockquote class="instagram-media"  data-instgrm-version="6" style="width:99.375%; width:-webkit-calc(100% - 2px); width:calc(100% - 2px);"><p><a href="https://www.instagram.com/p/DWmNoyilCOw/" target="_blank">A post shared by Microsoft Design (@microsoft.design)</a></p><p>A photo posted by </p></blockquote></div><p><a href="https://www.windowslatest.com/2026/04/10/microsoft-tested-5-different-start-menus-for-windows-11-before-choosing-the-current-one/" target="_blank">Windows Latest</a> points out that the Windows Design team <a href="https://microsoft.design/articles/start-fresh-redesigning-windows-start-menu/" target="_blank">released a blog post</a> last year that revealed five prototype Start menus. Some commentators called the prototypes more beautiful. However, looking at some of the images, all five still appear to have the same problems that the current menu does.</p><p>To be honest, it just makes us <a href="https://www.tomsguide.com/news/windows-10s-stunning-new-start-menu-revealed-heres-your-first-look">miss the Windows 10 Start Menu</a>, which mixed app lists and tiles in a more usable way. </p><p>Microsoft says it wants to solve the pain points in Windows 11 throughout 2026. It appears the Start Menu will be one of the first changes.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/microsoft-starts-removing-copilot-from-windows-11-im-saying-that-sarcastically-because-its-clearly-just-lip-service">Microsoft starts removing Copilot from Windows 11 — I’m saying that sarcastically because it's clearly just lip service</a></li><li><a href="https://www.tomsguide.com/computing/windows-is-using-your-internet-to-update-other-peoples-pcs-disable-this-hidden-setting-to-speed-up-your-connection">Windows is using your internet to update other people’s PCs — disable this hidden setting to speed up your connection</a></li><li><a href="https://www.tomsguide.com/ai/i-ditched-copilot-for-claude-in-microsoft-word-and-im-never-going-back">I ditched Copilot for Claude in Microsoft Word — and I’m never going back</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Microsoft starts removing Copilot from Windows 11 — I’m saying that sarcastically because it's clearly just lip service ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Let’s be real. Nobody I know has anything good to say about Microsoft Copilot. Shoved down our throats in any way possible in Windows 11, it’s turned the OS into a bloated behemoth that consumes the very thing we’re all seeing get way more expensive — RAM. And for what? Some rewriting tools, AI image generation in Paint and a searchable visual timeline of everything you do that’s quite a security risk, which is all ignored by users.</p><p>So it’s fair to say that I got a little hyped when I saw the <a href="https://www.tomsguide.com/computing/windows-operating-systems/microsoft-promises-windows-11-reset-new-focus-on-performance-reliability-and-reducing-unnecessary-copilot-ai">“commitment to Windows quality” blog</a>, which confirms a major update with reduced Copilot features and better efficiency. Microsoft listened…at least that’s what I thought. Because what we’re actually getting from the first signs of these changes is a simple rebranding. Copilot is still there — it’s just called something different.</p><h2 id="an-ai-wolf-in-sheep-s-clothing">An AI wolf in sheep’s clothing</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="L4fvJePjWfU8dLsesT8kRG" name="Copilot" alt="Copilot" src="https://cdn.mos.cms.futurecdn.net/L4fvJePjWfU8dLsesT8kRG.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Windows Latest)</span></figcaption></figure><p>As discovered by <a href="https://www.windowslatest.com/2026/04/09/microsoft-begins-removing-copilot-from-windows-11-starting-with-notepad-snipping-tool/" target="_blank">Windows Latest</a>, the Notepad app and Snipping Tool are the first signs of Microsoft starting to rollback Copilot in the latest Windows 11 Insider Preview. Copilot logos have disappeared from Notepad and the Snipping Tool.</p><p>But as is clearly apparent, this is mostly just branding only. Instead of a colorful Copilot button, Notepad gets a “Writing tools” icon, whereas the Snipping Tool is actually AI-free from the looks of it. Being someone who got tired of seeing Copilot everywhere, it’s definitely a welcome change. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1330px;"><p class="vanilla-image-block" style="padding-top:44.14%;"><img id="ZvgnjCyEHVioL2va4cskSG" name="Copilot" alt="Copilot" src="https://cdn.mos.cms.futurecdn.net/ZvgnjCyEHVioL2va4cskSG.jpg" mos="" align="middle" fullscreen="" width="1330" height="587" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Windows Latest)</span></figcaption></figure><p>Though, it does make me nervous that the idea of Microsoft being “intentional about how and where Copilot integrates across Windows” may be more like “let’s just hide it in plain sight.”</p><h2 id="outlook-4">Outlook</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:827px;"><p class="vanilla-image-block" style="padding-top:68.32%;"><img id="LhadVDXS5fLTkQvB7tAZCG" name="Copilot" alt="Copilot" src="https://cdn.mos.cms.futurecdn.net/LhadVDXS5fLTkQvB7tAZCG.png" mos="" align="middle" fullscreen="" width="827" height="565" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Windows Latest)</span></figcaption></figure><p>That’s not to say this Windows 11 commitment is for nothing. We could very well just be seeing a small slither of the wider changes that could reduce AI integration to only where (in Microsoft’s words) it’s “most meaningful, with craft and focus.” </p><p>But early updates do give us an indication of where Microsoft is thinking of going, and simply changing the presentation rather than removing unnecessary feature sets does not instill confidence here.</p><p>Taskbar customization, a faster File explorer and reduced Windows Updates disruption are all good things, but if Microsoft doesn’t genuinely hit the biggest performance consumer here, then we’re right back at square one — only looking prettier. I hope the company goes harder on the run up to Build 2026.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/pc-sales-are-up-but-dont-be-fooled-idc-report-warns-ramageddon-is-just-getting-started">PC sales are up, but don’t be fooled — IDC report warns RAMageddon is just getting started</a></li><li><a href="https://www.tomsguide.com/computing/laptops/i-was-high-on-the-asus-zenbook-a14-and-a16-with-snapdragon-x2-elite-then-something-very-weird-happened-to-the-price">I was high on the Asus Zenbook A14 and A16 with Snapdragon X2 Elite — then something very weird happened to the price</a></li><li><a href="https://www.tomsguide.com/computing/hardware/the-squeeze-is-real-i-spoke-to-ram-crisis-oracle-carmen-li-about-when-this-nightmare-ends-heres-what-she-told-me">‘The squeeze is real’: I spoke to RAM crisis oracle, Carmen Li, about when this nightmare ends — here’s what she told me</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/windows-operating-systems/microsoft-starts-removing-copilot-from-windows-11-im-saying-that-sarcastically-because-its-clearly-just-lip-service</link>
                                                                            <description>
                            <![CDATA[ Is Microsoft finally fixing Windows 11 bloat? The new "Commitment to Windows Quality" update starts rolls back Copilot branding in favor of "Writing Tools," but the RAM-hungry AI might just be hiding in plain sight. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">mwsgK3vYX5VBQnn87VsMmU</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/VLcVjMew2gSrxJdRihT7BH-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 10 Apr 2026 10:47:11 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Windows Operating Systems]]></category>
                                                    <category><![CDATA[Copilot]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                    <category><![CDATA[AI]]></category>
                                                                                                                    <dc:creator><![CDATA[ Jason England ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/v4fSq5U4uZUEtGY2BwNuJ6.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Jason brings a decade of tech and gaming journalism experience to his role as a Managing Editor of Computing at Tom&#039;s Guide. He has previously written for Laptop Mag, Tom&#039;s Hardware, Kotaku, Stuff and BBC Science Focus. In his spare time, you&#039;ll find Jason looking for good dogs to pet or thinking about eating pizza if he isn&#039;t already.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/VLcVjMew2gSrxJdRihT7BH-1280-80.jpg">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Copilot]]></media:description>                                                            <media:text><![CDATA[Copilot]]></media:text>
                                <media:title type="plain"><![CDATA[Copilot]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/VLcVjMew2gSrxJdRihT7BH-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Let’s be real. Nobody I know has anything good to say about Microsoft Copilot. Shoved down our throats in any way possible in Windows 11, it’s turned the OS into a bloated behemoth that consumes the very thing we’re all seeing get way more expensive — RAM. And for what? Some rewriting tools, AI image generation in Paint and a searchable visual timeline of everything you do that’s quite a security risk, which is all ignored by users.</p><p>So it’s fair to say that I got a little hyped when I saw the <a href="https://www.tomsguide.com/computing/windows-operating-systems/microsoft-promises-windows-11-reset-new-focus-on-performance-reliability-and-reducing-unnecessary-copilot-ai">“commitment to Windows quality” blog</a>, which confirms a major update with reduced Copilot features and better efficiency. Microsoft listened…at least that’s what I thought. Because what we’re actually getting from the first signs of these changes is a simple rebranding. Copilot is still there — it’s just called something different.</p><h2 id="an-ai-wolf-in-sheep-s-clothing">An AI wolf in sheep’s clothing</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="L4fvJePjWfU8dLsesT8kRG" name="Copilot" alt="Copilot" src="https://cdn.mos.cms.futurecdn.net/L4fvJePjWfU8dLsesT8kRG.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Windows Latest)</span></figcaption></figure><p>As discovered by <a href="https://www.windowslatest.com/2026/04/09/microsoft-begins-removing-copilot-from-windows-11-starting-with-notepad-snipping-tool/" target="_blank">Windows Latest</a>, the Notepad app and Snipping Tool are the first signs of Microsoft starting to rollback Copilot in the latest Windows 11 Insider Preview. Copilot logos have disappeared from Notepad and the Snipping Tool.</p><p>But as is clearly apparent, this is mostly just branding only. Instead of a colorful Copilot button, Notepad gets a “Writing tools” icon, whereas the Snipping Tool is actually AI-free from the looks of it. Being someone who got tired of seeing Copilot everywhere, it’s definitely a welcome change. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1330px;"><p class="vanilla-image-block" style="padding-top:44.14%;"><img id="ZvgnjCyEHVioL2va4cskSG" name="Copilot" alt="Copilot" src="https://cdn.mos.cms.futurecdn.net/ZvgnjCyEHVioL2va4cskSG.jpg" mos="" align="middle" fullscreen="" width="1330" height="587" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Windows Latest)</span></figcaption></figure><p>Though, it does make me nervous that the idea of Microsoft being “intentional about how and where Copilot integrates across Windows” may be more like “let’s just hide it in plain sight.”</p><h2 id="outlook-4">Outlook</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:827px;"><p class="vanilla-image-block" style="padding-top:68.32%;"><img id="LhadVDXS5fLTkQvB7tAZCG" name="Copilot" alt="Copilot" src="https://cdn.mos.cms.futurecdn.net/LhadVDXS5fLTkQvB7tAZCG.png" mos="" align="middle" fullscreen="" width="827" height="565" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Windows Latest)</span></figcaption></figure><p>That’s not to say this Windows 11 commitment is for nothing. We could very well just be seeing a small slither of the wider changes that could reduce AI integration to only where (in Microsoft’s words) it’s “most meaningful, with craft and focus.” </p><p>But early updates do give us an indication of where Microsoft is thinking of going, and simply changing the presentation rather than removing unnecessary feature sets does not instill confidence here.</p><p>Taskbar customization, a faster File explorer and reduced Windows Updates disruption are all good things, but if Microsoft doesn’t genuinely hit the biggest performance consumer here, then we’re right back at square one — only looking prettier. I hope the company goes harder on the run up to Build 2026.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/pc-sales-are-up-but-dont-be-fooled-idc-report-warns-ramageddon-is-just-getting-started">PC sales are up, but don’t be fooled — IDC report warns RAMageddon is just getting started</a></li><li><a href="https://www.tomsguide.com/computing/laptops/i-was-high-on-the-asus-zenbook-a14-and-a16-with-snapdragon-x2-elite-then-something-very-weird-happened-to-the-price">I was high on the Asus Zenbook A14 and A16 with Snapdragon X2 Elite — then something very weird happened to the price</a></li><li><a href="https://www.tomsguide.com/computing/hardware/the-squeeze-is-real-i-spoke-to-ram-crisis-oracle-carmen-li-about-when-this-nightmare-ends-heres-what-she-told-me">‘The squeeze is real’: I spoke to RAM crisis oracle, Carmen Li, about when this nightmare ends — here’s what she told me</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I put Apple’s new macOS ClickFix warnings to the test and they actually worked — now I want them on Windows too  ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Instead of waiting for you to download a <a href="https://www.tomsguide.com/news/these-mac-apps-are-secretly-spreading-malware-delete-them-now">bad app</a> or a <a href="https://www.tomsguide.com/computing/malware-adware/fbi-issues-warning-over-free-online-file-converters-that-infect-your-pc-with-malware">malicious file</a>, hackers have spent the last two years tricking unsuspecting users into infecting their own computers with malware. Known as <a href="https://www.tomsguide.com/computing/online-security/hackers-are-using-fake-google-meet-errors-to-infect-pcs-and-macs-with-malware-dont-fall-for-this">ClickFix</a>, this tactic is now widely used by both hackers and scammers but with its new <a href="https://www.tomsguide.com/computing/macos/macos-tahoe-26-4-public-beta-is-here-and-these-are-the-best-new-features-for-your-mac">macOS Tahoe 26.4</a> update, Apple has implemented a way to warn potential victims before it’s too late.</p><p>Although it was first used to target Windows devices, this <a href="https://www.tomsguide.com/news/this-social-engineering-trick-can-infect-your-pc-with-malware-what-you-need-to-know">social engineering</a> technique was later tweaked to go after Macs too. Just like with other attacks, it starts with lure and in this case, that’s a fix to a common computer problem. Whether it be a microphone that isn’t working before a video call or a connection error that’s slowing down your internet, everyone wants a quick fix to their problems and that’s exactly what the hackers leveraging this technique gave them, albeit with a twist.</p><p>On the fake websites used in ClickFix attacks, a pop-up tells you there is a problem with your computer. A 'Fix It' button magically appears, promising an instant solution. Clicking on it copies a command to your clipboard and from there, you just have to <a href="https://www.tomsguide.com/computing/online-security/macs-under-threat-from-thousands-of-hacked-sites-spreading-malware-how-to-stay-safe">paste it into Terminal</a> (or a <a href="https://www.tomsguide.com/computing/malware-adware/new-filefix-attack-brings-clickfix-social-engineering-to-windows-file-explorer-how-to-stay-safe">Command Prompt on Windows</a>), hit Enter and then everything should be fixed. Right? Well that couldn’t be further from the truth.</p><p>You see, that command you copied over is actually malicious and as <a href="https://www.bleepingcomputer.com/news/security/apple-adds-macos-terminal-warning-to-block-clickfix-attacks/" target="_blank">BleepingComputer</a> points out, once you paste it, any existing security measures on your computer are bypassed. From there, the hackers behind these ClickFix attacks can then infect your Mac or Windows PC with malware.</p><p>Fortunately though, Apple has added a new warning to macOS which appears when you try to paste potentially harmful commands in Terminal. To see if this really works, I decided to give it a try on one of the <a href="https://www.tomsguide.com/best-picks/best-macbook">best MacBooks</a>. Here’s what happened.</p><h2 id="putting-apple-s-new-warning-to-the-test">Putting Apple’s new warning to the test</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="QsTbwhzF2sBqMErZn3QjU5" name="MacBook Pro 16-inch M5 Pro review-12" alt="MacBook Pro 16-inch M5 Pro on a desk" src="https://cdn.mos.cms.futurecdn.net/QsTbwhzF2sBqMErZn3QjU5.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Since I’m currently testing out the <a href="https://www.tomsguide.com/computing/macbooks/macbook-pro-16-inch-m5-pro-review">MacBook Pro 16-inch M5 Pro</a> we recently reviewed, I wanted to see if I could get one of Apple’s new warning messages to appear for myself. It took a bit of extra work but I finally managed to see one for myself.</p><p>To do so, I first took a look at a <a href="https://www.sophos.com/en-us/blog/evil-evolution-clickfix-and-macos-infostealers" target="_blank">blog post</a> from Sophos on how ClickFix attacks have evolved over the past year. From fake sites using OpenAI’s <a href="https://www.tomsguide.com/computing/browsers/i-just-tried-chatgpt-atlas-as-a-long-time-chrome-user-heres-what-i-love-and-hate">ChatGPT Atlas</a> browser as a lure to a <a href="https://www.tomsguide.com/news/hackers-have-found-an-insidious-way-to-attack-you-with-malware-dont-fall-for-this">malvertising campaign</a> that leveraged sponsored links tied to ChatGPT searches to impersonating legitimate Apple sites, hackers continue to come up with new ways to trick Mac users into infecting their own computers with malware.</p><p>Since I wanted to try out Apple’s new ClickFix warning for myself, I went to the middle of that blog post where Sophos has a table with all of the malicious domains used in one of these campaigns. I tried putting a few of them into my browser’s address bar but fortunately, they have all since been taken down. What was good news for potential victims was bad news for me since I wanted to find a malicious command to copy and try to paste into Terminal.</p><p>From there, I had to get a bit creative and employed the help of Google Gemini. I asked the search giant’s chatbot about whether or not it could come up with a command I could use to trick macOS Tahoe into showing its new warning. It came up with this suspicious looking but harmless string: <strong>echo "SGVsbG8gV29ybGQ=" | base64 --decode</strong>.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2798px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="s5pr3abce5b4hK6pAWQWh3" name="Gemini Terminal macOS-1" alt="A picture of Apple's new warning message that pops-up when you try to paste into Terminal on macOS 26.4 on a MacBook" src="https://cdn.mos.cms.futurecdn.net/s5pr3abce5b4hK6pAWQWh3.jpg" mos="" align="middle" fullscreen="" width="2798" height="1574" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Much to my surprise, when I copied that string and tried to paste it into Terminal on my Mac, the warning message instantly appeared, saying:“Possible malware, Paste blocked. Your Mac has not been harmed. Scammers often encourage pasting text into Terminal to try and harm your Mac or compromise your privacy. These instructions are commonly offered via websites, chat agents, apps, files, or a phone call.”</p><p>Even though the string Gemini came up with was harmless, I still clicked “Don’t Paste” anyway out of an abundance of caution. And with that, my little test was complete.</p><p>While this new warning message will likely keep Mac users safe from falling for ClickFix attacks, oddly enough, Apple doesn’t even mention it in its own <a href="https://developer.apple.com/documentation/macos-release-notes/macos-26_4-release-notes">macOS Tahoe 26.4 release notes</a>. Still, it’s good to know it’s there keeping you safe from infecting your own computer with Mac malware in the background.</p><p>When it comes to Windows, Microsoft has had a multi-line paste warning in Windows Terminal for years now. However, unlike with Apple's new warning, it isn't context-aware. So instead of seeing the warning when copying code from a suspicious website, Windows users see it whenever they try to paste multiple lines of code at the same time.</p><h2 id="how-to-stay-safe-from-clickfix-attacks">How to stay safe from ClickFix attacks</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:56.30%;"><img id="DgqWmPAUgj3TpRQWmkkka7" name="apple shutterstock.jpg" alt="A padlock resting next to the Apple logo on the lid of a gold-colored Apple laptop." src="https://cdn.mos.cms.futurecdn.net/DgqWmPAUgj3TpRQWmkkka7.jpg" mos="" align="middle" fullscreen="" width="1000" height="563" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: robert coolen/Shutterstock)</span></figcaption></figure><p>Although Apple will now warn you when you try to copy something from your browser and paste it into Terminal, you won’t see this new warning message unless you’re running the latest version of macOS. As such, just like with <a href="https://www.tomsguide.com/reference/what-are-phishing-scams">phishing attacks</a>, you still want to know how to spot a ClickFix attack so that you can avoid them entirely.</p><p>Since hackers often try to instill a <a href="https://www.tomsguide.com/news/this-new-phishing-scam-can-steal-your-social-security-number-how-to-stay-safe">sense of urgency</a> to get potential victims to do things they ordinarily wouldn’t like copying something and pasting it into a Terminal window or a Command Prompt, you want to slow down and think things over first. You want to be extra cautious whenever a website or app asks you to do something you normally wouldn’t.</p><p>At the same time, you should also avoid running code or commands that you’ve copied from a website, email or a message. Since most people won’t be able to make heads or tails of what that line of code or command actually does, it’s best to just avoid copying and pasting anything that doesn’t come from a trusted source. If you do have to enter commands, it’s always better to write them out yourself than to just copy and paste them.</p><p>While your Mac comes with built-in security protections in the form of <a href="https://www.tomsguide.com/computing/malware-adware/new-macos-malware-poses-as-legitimate-apps-to-steal-passwords-crypto-wallets-and-more-how-to-stay-safe">Gatekeeper</a> and <a href="https://www.tomsguide.com/news/macos-is-getting-even-better-at-scanning-for-malware-heres-how">XProtect</a>, you can never be too careful. That’s why I recommend running the <a href="https://www.tomsguide.com/best-picks/best-mac-antivirus">best Mac antivirus software</a> alongside Apple’s own security software. That way, you’re protected with an extra layer of security.</p><p>Likewise, you also want to take some extra time and make sure you’re acquainted with all of the latest malware campaigns and tactics currently being used by hackers and other cybercriminals. Given how rapidly ClickFix attacks have evolved and how successful they’ve been in just two short years, I don’t see them going away anytime soon. That’s why it’s up to you to practice good cyber hygiene and to always be careful where you click or in this case, what you copy and paste.</p><p>At least for those running macOS 26.4, Apple has finally provided a 'stop-and-think' moment. It’s a silent guardian that acts as a final safety net if you slip up and try to paste a command that isn’t what it seems."</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/phones/iphones/more-than-220-million-iphones-under-attack-from-new-darksword-exploit-how-to-stay-safe">More than 220 million iPhones under attack from new DarkSword exploit — how to stay safe</a></li><li><a href="https://www.tomsguide.com/computing/online-security/online-age-verification-timeline">Online age verification in the USA – a complete timeline</a></li><li><a href="https://www.tomsguide.com/computing/online-security/identity-protection-company-aura-suffers-massive-900-000-person-data-breach-customer-information-exposed">Identity protection company Aura suffers massive 900,000 person data breach: customer information exposed</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/online-security/i-tried-apples-new-security-feature-in-macos-that-warns-you-about-potential-clickfix-attacks-and-windows-should-take-note</link>
                                                                            <description>
                            <![CDATA[ Apple now shows a warning before pasting anything that could be dangerous in macOS Tahoe 26.4 to help keep you safe from ClickFix attacks. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">UB4Yvgi8W8N4Px5yxdPNyh</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/5DVdp3j2HKs4H835iAiwjD-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 31 Mar 2026 08:30:00 +0000</pubDate>                                                                                                                                <updated>Tue, 31 Mar 2026 15:28:12 +0000</updated>
                                                                                                                                            <category><![CDATA[Online Security]]></category>
                                                    <category><![CDATA[macOS]]></category>
                                                    <category><![CDATA[Computing Peripherals]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                                                                <author><![CDATA[ anthony.spadafora@futurenet.com (Anthony Spadafora) ]]></author>                    <dc:creator><![CDATA[ Anthony Spadafora ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/z73LEoj7FkUjNG85GcWHtH.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Anthony Spadafora is the managing editor for security and home office furniture at Tom’s Guide where he covers everything from data breaches and malware to password managers and the best way to cover your whole home or business with a strong Wi-Fi signal.&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Before joining the team, he spent three years covering cybersecurity and B2B tech for ITProPortal while living in South Korea. After moving back to the US. Anthony joined the TechRadar Pro team where he covered these topics along with VPNs, web hosting, online collaboration software and video conferencing for four years. Anthony also has his ears to the ground and is on the lookout for the next major cyberattack or data breach.&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Based in Houston, Texas, Anthony also handles VPN testing for both Tom’s Guide and TechRadar. As someone who has worked from home exclusively since 2018, he has reviewed dozens of standing desks as well as office chairs and has taken a closer look at other essential remote working accessories. As part of these reviews, Anthony frequently builds intricate desk setups which is why he’s such a big advocate for cable management and keeping things organized. When he’s not writing, he can be found tinkering with PCs and game consoles, managing cables and making upgrades to his smart home.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/5DVdp3j2HKs4H835iAiwjD-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A picture of Apple&#039;s new warning message that pops-up when you try to paste into Terminal on macOS 26.4 on a MacBook Pro on a kitchen table]]></media:description>                                                            <media:text><![CDATA[A picture of Apple&#039;s new warning message that pops-up when you try to paste into Terminal on macOS 26.4 on a MacBook Pro on a kitchen table]]></media:text>
                                <media:title type="plain"><![CDATA[A picture of Apple&#039;s new warning message that pops-up when you try to paste into Terminal on macOS 26.4 on a MacBook Pro on a kitchen table]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/5DVdp3j2HKs4H835iAiwjD-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Instead of waiting for you to download a <a href="https://www.tomsguide.com/news/these-mac-apps-are-secretly-spreading-malware-delete-them-now">bad app</a> or a <a href="https://www.tomsguide.com/computing/malware-adware/fbi-issues-warning-over-free-online-file-converters-that-infect-your-pc-with-malware">malicious file</a>, hackers have spent the last two years tricking unsuspecting users into infecting their own computers with malware. Known as <a href="https://www.tomsguide.com/computing/online-security/hackers-are-using-fake-google-meet-errors-to-infect-pcs-and-macs-with-malware-dont-fall-for-this">ClickFix</a>, this tactic is now widely used by both hackers and scammers but with its new <a href="https://www.tomsguide.com/computing/macos/macos-tahoe-26-4-public-beta-is-here-and-these-are-the-best-new-features-for-your-mac">macOS Tahoe 26.4</a> update, Apple has implemented a way to warn potential victims before it’s too late.</p><p>Although it was first used to target Windows devices, this <a href="https://www.tomsguide.com/news/this-social-engineering-trick-can-infect-your-pc-with-malware-what-you-need-to-know">social engineering</a> technique was later tweaked to go after Macs too. Just like with other attacks, it starts with lure and in this case, that’s a fix to a common computer problem. Whether it be a microphone that isn’t working before a video call or a connection error that’s slowing down your internet, everyone wants a quick fix to their problems and that’s exactly what the hackers leveraging this technique gave them, albeit with a twist.</p><p>On the fake websites used in ClickFix attacks, a pop-up tells you there is a problem with your computer. A 'Fix It' button magically appears, promising an instant solution. Clicking on it copies a command to your clipboard and from there, you just have to <a href="https://www.tomsguide.com/computing/online-security/macs-under-threat-from-thousands-of-hacked-sites-spreading-malware-how-to-stay-safe">paste it into Terminal</a> (or a <a href="https://www.tomsguide.com/computing/malware-adware/new-filefix-attack-brings-clickfix-social-engineering-to-windows-file-explorer-how-to-stay-safe">Command Prompt on Windows</a>), hit Enter and then everything should be fixed. Right? Well that couldn’t be further from the truth.</p><p>You see, that command you copied over is actually malicious and as <a href="https://www.bleepingcomputer.com/news/security/apple-adds-macos-terminal-warning-to-block-clickfix-attacks/" target="_blank">BleepingComputer</a> points out, once you paste it, any existing security measures on your computer are bypassed. From there, the hackers behind these ClickFix attacks can then infect your Mac or Windows PC with malware.</p><p>Fortunately though, Apple has added a new warning to macOS which appears when you try to paste potentially harmful commands in Terminal. To see if this really works, I decided to give it a try on one of the <a href="https://www.tomsguide.com/best-picks/best-macbook">best MacBooks</a>. Here’s what happened.</p><h2 id="putting-apple-s-new-warning-to-the-test">Putting Apple’s new warning to the test</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="QsTbwhzF2sBqMErZn3QjU5" name="MacBook Pro 16-inch M5 Pro review-12" alt="MacBook Pro 16-inch M5 Pro on a desk" src="https://cdn.mos.cms.futurecdn.net/QsTbwhzF2sBqMErZn3QjU5.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Since I’m currently testing out the <a href="https://www.tomsguide.com/computing/macbooks/macbook-pro-16-inch-m5-pro-review">MacBook Pro 16-inch M5 Pro</a> we recently reviewed, I wanted to see if I could get one of Apple’s new warning messages to appear for myself. It took a bit of extra work but I finally managed to see one for myself.</p><p>To do so, I first took a look at a <a href="https://www.sophos.com/en-us/blog/evil-evolution-clickfix-and-macos-infostealers" target="_blank">blog post</a> from Sophos on how ClickFix attacks have evolved over the past year. From fake sites using OpenAI’s <a href="https://www.tomsguide.com/computing/browsers/i-just-tried-chatgpt-atlas-as-a-long-time-chrome-user-heres-what-i-love-and-hate">ChatGPT Atlas</a> browser as a lure to a <a href="https://www.tomsguide.com/news/hackers-have-found-an-insidious-way-to-attack-you-with-malware-dont-fall-for-this">malvertising campaign</a> that leveraged sponsored links tied to ChatGPT searches to impersonating legitimate Apple sites, hackers continue to come up with new ways to trick Mac users into infecting their own computers with malware.</p><p>Since I wanted to try out Apple’s new ClickFix warning for myself, I went to the middle of that blog post where Sophos has a table with all of the malicious domains used in one of these campaigns. I tried putting a few of them into my browser’s address bar but fortunately, they have all since been taken down. What was good news for potential victims was bad news for me since I wanted to find a malicious command to copy and try to paste into Terminal.</p><p>From there, I had to get a bit creative and employed the help of Google Gemini. I asked the search giant’s chatbot about whether or not it could come up with a command I could use to trick macOS Tahoe into showing its new warning. It came up with this suspicious looking but harmless string: <strong>echo "SGVsbG8gV29ybGQ=" | base64 --decode</strong>.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2798px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="s5pr3abce5b4hK6pAWQWh3" name="Gemini Terminal macOS-1" alt="A picture of Apple's new warning message that pops-up when you try to paste into Terminal on macOS 26.4 on a MacBook" src="https://cdn.mos.cms.futurecdn.net/s5pr3abce5b4hK6pAWQWh3.jpg" mos="" align="middle" fullscreen="" width="2798" height="1574" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Much to my surprise, when I copied that string and tried to paste it into Terminal on my Mac, the warning message instantly appeared, saying:“Possible malware, Paste blocked. Your Mac has not been harmed. Scammers often encourage pasting text into Terminal to try and harm your Mac or compromise your privacy. These instructions are commonly offered via websites, chat agents, apps, files, or a phone call.”</p><p>Even though the string Gemini came up with was harmless, I still clicked “Don’t Paste” anyway out of an abundance of caution. And with that, my little test was complete.</p><p>While this new warning message will likely keep Mac users safe from falling for ClickFix attacks, oddly enough, Apple doesn’t even mention it in its own <a href="https://developer.apple.com/documentation/macos-release-notes/macos-26_4-release-notes">macOS Tahoe 26.4 release notes</a>. Still, it’s good to know it’s there keeping you safe from infecting your own computer with Mac malware in the background.</p><p>When it comes to Windows, Microsoft has had a multi-line paste warning in Windows Terminal for years now. However, unlike with Apple's new warning, it isn't context-aware. So instead of seeing the warning when copying code from a suspicious website, Windows users see it whenever they try to paste multiple lines of code at the same time.</p><h2 id="how-to-stay-safe-from-clickfix-attacks">How to stay safe from ClickFix attacks</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:56.30%;"><img id="DgqWmPAUgj3TpRQWmkkka7" name="apple shutterstock.jpg" alt="A padlock resting next to the Apple logo on the lid of a gold-colored Apple laptop." src="https://cdn.mos.cms.futurecdn.net/DgqWmPAUgj3TpRQWmkkka7.jpg" mos="" align="middle" fullscreen="" width="1000" height="563" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: robert coolen/Shutterstock)</span></figcaption></figure><p>Although Apple will now warn you when you try to copy something from your browser and paste it into Terminal, you won’t see this new warning message unless you’re running the latest version of macOS. As such, just like with <a href="https://www.tomsguide.com/reference/what-are-phishing-scams">phishing attacks</a>, you still want to know how to spot a ClickFix attack so that you can avoid them entirely.</p><p>Since hackers often try to instill a <a href="https://www.tomsguide.com/news/this-new-phishing-scam-can-steal-your-social-security-number-how-to-stay-safe">sense of urgency</a> to get potential victims to do things they ordinarily wouldn’t like copying something and pasting it into a Terminal window or a Command Prompt, you want to slow down and think things over first. You want to be extra cautious whenever a website or app asks you to do something you normally wouldn’t.</p><p>At the same time, you should also avoid running code or commands that you’ve copied from a website, email or a message. Since most people won’t be able to make heads or tails of what that line of code or command actually does, it’s best to just avoid copying and pasting anything that doesn’t come from a trusted source. If you do have to enter commands, it’s always better to write them out yourself than to just copy and paste them.</p><p>While your Mac comes with built-in security protections in the form of <a href="https://www.tomsguide.com/computing/malware-adware/new-macos-malware-poses-as-legitimate-apps-to-steal-passwords-crypto-wallets-and-more-how-to-stay-safe">Gatekeeper</a> and <a href="https://www.tomsguide.com/news/macos-is-getting-even-better-at-scanning-for-malware-heres-how">XProtect</a>, you can never be too careful. That’s why I recommend running the <a href="https://www.tomsguide.com/best-picks/best-mac-antivirus">best Mac antivirus software</a> alongside Apple’s own security software. That way, you’re protected with an extra layer of security.</p><p>Likewise, you also want to take some extra time and make sure you’re acquainted with all of the latest malware campaigns and tactics currently being used by hackers and other cybercriminals. Given how rapidly ClickFix attacks have evolved and how successful they’ve been in just two short years, I don’t see them going away anytime soon. That’s why it’s up to you to practice good cyber hygiene and to always be careful where you click or in this case, what you copy and paste.</p><p>At least for those running macOS 26.4, Apple has finally provided a 'stop-and-think' moment. It’s a silent guardian that acts as a final safety net if you slip up and try to paste a command that isn’t what it seems."</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/phones/iphones/more-than-220-million-iphones-under-attack-from-new-darksword-exploit-how-to-stay-safe">More than 220 million iPhones under attack from new DarkSword exploit — how to stay safe</a></li><li><a href="https://www.tomsguide.com/computing/online-security/online-age-verification-timeline">Online age verification in the USA – a complete timeline</a></li><li><a href="https://www.tomsguide.com/computing/online-security/identity-protection-company-aura-suffers-massive-900-000-person-data-breach-customer-information-exposed">Identity protection company Aura suffers massive 900,000 person data breach: customer information exposed</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Microsoft promises Windows 11 reset: new focus on performance, reliability and 'reducing unnecessary Copilot' AI ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Since the beginning of the year, <a href="https://www.tomsguide.com/computing/windows-operating-systems/we-need-to-improve-windows-in-ways-that-are-meaningful-for-people-microsoft-is-urgently-trying-to-fix-windows-11-issues">Microsoft has been quietly promising</a> to improve Windows 11, even going so far as to refocus its engineers to resolve the "core issues" with the operating system. Today, Microsoft released a highly detailed <a href="https://blogs.windows.com/windows-insider/2026/03/20/our-commitment-to-windows-quality/" target="_blank">memo</a> committing to improving "performance, reliability, and craft."</p><p>Microsoft's executive vice president of Windows + Devices Pavan Davuluri wrote in the memo that the company had spent the last few months listening to those "who care deeply about Windows and want it better."</p><p>The memo outlines a broad plan with areas of focus that should start appearing in the April update. Davuluri says we should see "tangible progress" in preview builds throughout the rest of 2026.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-W5rm3O"></div>                            </div>                            <script src="https://kwizly.com/embed/W5rm3O.js" async></script><p>Yes, based on this memo, we can expect a lot of changes, tackling everything from system performance to customization and some AI.</p><p>Davuluri says that everything announced today will be tested first by the Windows Insider community. Including a big redesign to its Feedback Hub to make it faster and easier to submit feedback on Windows 11.</p><p>"Thank you for holding us to a high standard. Windows is as much yours as it is ours," Pavan said.</p><h2 id="what-s-coming">What's coming?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1200px;"><p class="vanilla-image-block" style="padding-top:56.83%;"><img id="PQDoij7pbihTEcxmBY7ni4" name="Windows 11 screenshot.jpeg" alt="Windows 11" src="https://cdn.mos.cms.futurecdn.net/PQDoij7pbihTEcxmBY7ni4.jpeg" mos="" align="middle" fullscreen="" width="1200" height="682" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Albacore on Twitter)</span></figcaption></figure><p>We rarely get such a public commitment with specific types of changes. So, what is Microsoft committing to?</p><p>Initially, in April, the changes will start with the ability to reposition the taskbar to the top or sides of the screen and a reduction of Copilot integration in Windows apps like Photos, Notepad and the Snipping Tool. </p><p>Expect less disruptive Windows updates with “fewer automatic restarts and notifications." Plus, you'll get the ability to skip updates during initial device setup.</p><p>Microsoft is also planning to improve File Explorer in the first rounds of improvements. “Our first round of improvements will focus on a quicker launch experience, reduced flicker, smoother navigation and more reliable performance for everyday file tasks,” Davuluri promises.</p><p>After that, widgets in Windows 11 will get more personalization features and "quieter defaults."</p><p>Reliability and performance are two of the big promises with Microsoft promising to reduce the number of resources Windows consumes and "improving the baseline reliability." That includes what Davuluri calls craft with a focus on "raising the bar" on the overall usability of the Windows 11 experience. </p><p>In all, it's a broad list of fixes. I'm not certain it directly covers everything, including the annoying pop-ups demanding you use Edge or Bing or anything Copilot. You should read the full memo for all the promised fixes.</p><p>Still, Davuluri is promising a more nuanced approach to Copilot integration. This fits with a <a href="https://www.tomsguide.com/computing/windows-operating-systems/microsoft-is-reportedly-pulling-back-on-stuffing-windows-11-with-ai-and-i-couldnt-be-happier">January report that Microsoft is pulling back</a> on stuffing Windows 11 with AI.</p><p>It's one of the few companies that actually seems to be stepping away from AI as everyone else bull rushes through the china shop to shove it in every piece of tech.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/laptops/is-the-macbook-neo-as-good-as-a-budget-windows-laptop-here-are-our-lab-tested-results">We benchmarked the MacBook Neo vs Windows laptops — here's the truth</a></li><li><a href="https://www.tomsguide.com/computing/online-security/microsoft-confirms-copilot-bug-let-its-ai-read-sensitive-and-confidential-emails">Microsoft confirms Copilot bug let its AI read sensitive and confidential emails</a></li><li><a href="https://www.tomsguide.com/gaming/xbox/microsoft-reveals-new-details-on-its-project-helix-pc-console-hybrid-heres-all-the-latest-on-the-next-xbox">Microsoft reveals new details on its Project Helix PC-console hybrid: here's all the latest on the next Xbox</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/windows-operating-systems/microsoft-promises-windows-11-reset-new-focus-on-performance-reliability-and-reducing-unnecessary-copilot-ai</link>
                                                                            <description>
                            <![CDATA[ Microsoft is promising to fix Windows 11, here's how. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">U7oPc3mUkiqjxVQg8zqc3B</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/jdr3dH3puTGPu8RDs42kHQ-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 20 Mar 2026 21:54:30 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Windows Operating Systems]]></category>
                                                    <category><![CDATA[Computing Peripherals]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                                                                <author><![CDATA[ scott.younker@futurenet.com (Scott Younker) ]]></author>                    <dc:creator><![CDATA[ Scott Younker ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/RZsUpqcJ6Uj2q83oCUwNhQ.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Scott Younker is the West Coast Reporter at Tom’s Guide. He covers all the latest tech news, including phones, computing and more. He’s been involved in tech since 2011 covering everything from cameras and swimming pool equipment to the latest gaming consoles and smart TVs. He is on a seemingly never ending hunt to build the easiest to use home media system. &lt;/p&gt;&lt;p&gt;Before Tom’s Guide, Scott worked for publications like &lt;em&gt;Digital Trends, Outdoor Photographer, Dead Beats Panel&lt;/em&gt;, and in a brief detour, &lt;em&gt;America’s Funniest Home Videos&lt;/em&gt;. Yes, he has seen more pratfalls, silly pets and ridiculous home movie fails than is reasonably healthy. &lt;/p&gt;&lt;p&gt;When not writing about the latest devices or advances in chipsets, be sure to ask about Scott about disc golf and sustainability, or just if you’re being cheeky, ask about his noodle arm. If you truly want to get nerdy, bring up board games and his ongoing losing streak. &lt;/p&gt;&lt;p&gt;Scott joined Tom&#039;s Guide in 2024 as the West Coast Reporter. He graduated from the School of Journalism at the University of Oregon with a degree in magazine journalism and a minor in communications. While there he blogged or wrote for several magazines including the Fluxx, Ethos and the Oregon Commentator. He briefly wrote and managed a moderately successful blog focused on web comics. &lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/jdr3dH3puTGPu8RDs42kHQ-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A Windows 11 laptop, demonstrating how to run Android apps on Windows 11]]></media:description>                                                            <media:text><![CDATA[A Windows 11 laptop, demonstrating how to run Android apps on Windows 11]]></media:text>
                                <media:title type="plain"><![CDATA[A Windows 11 laptop, demonstrating how to run Android apps on Windows 11]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/jdr3dH3puTGPu8RDs42kHQ-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Since the beginning of the year, <a href="https://www.tomsguide.com/computing/windows-operating-systems/we-need-to-improve-windows-in-ways-that-are-meaningful-for-people-microsoft-is-urgently-trying-to-fix-windows-11-issues">Microsoft has been quietly promising</a> to improve Windows 11, even going so far as to refocus its engineers to resolve the "core issues" with the operating system. Today, Microsoft released a highly detailed <a href="https://blogs.windows.com/windows-insider/2026/03/20/our-commitment-to-windows-quality/" target="_blank">memo</a> committing to improving "performance, reliability, and craft."</p><p>Microsoft's executive vice president of Windows + Devices Pavan Davuluri wrote in the memo that the company had spent the last few months listening to those "who care deeply about Windows and want it better."</p><p>The memo outlines a broad plan with areas of focus that should start appearing in the April update. Davuluri says we should see "tangible progress" in preview builds throughout the rest of 2026.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-W5rm3O"></div>                            </div>                            <script src="https://kwizly.com/embed/W5rm3O.js" async></script><p>Yes, based on this memo, we can expect a lot of changes, tackling everything from system performance to customization and some AI.</p><p>Davuluri says that everything announced today will be tested first by the Windows Insider community. Including a big redesign to its Feedback Hub to make it faster and easier to submit feedback on Windows 11.</p><p>"Thank you for holding us to a high standard. Windows is as much yours as it is ours," Pavan said.</p><h2 id="what-s-coming">What's coming?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1200px;"><p class="vanilla-image-block" style="padding-top:56.83%;"><img id="PQDoij7pbihTEcxmBY7ni4" name="Windows 11 screenshot.jpeg" alt="Windows 11" src="https://cdn.mos.cms.futurecdn.net/PQDoij7pbihTEcxmBY7ni4.jpeg" mos="" align="middle" fullscreen="" width="1200" height="682" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Albacore on Twitter)</span></figcaption></figure><p>We rarely get such a public commitment with specific types of changes. So, what is Microsoft committing to?</p><p>Initially, in April, the changes will start with the ability to reposition the taskbar to the top or sides of the screen and a reduction of Copilot integration in Windows apps like Photos, Notepad and the Snipping Tool. </p><p>Expect less disruptive Windows updates with “fewer automatic restarts and notifications." Plus, you'll get the ability to skip updates during initial device setup.</p><p>Microsoft is also planning to improve File Explorer in the first rounds of improvements. “Our first round of improvements will focus on a quicker launch experience, reduced flicker, smoother navigation and more reliable performance for everyday file tasks,” Davuluri promises.</p><p>After that, widgets in Windows 11 will get more personalization features and "quieter defaults."</p><p>Reliability and performance are two of the big promises with Microsoft promising to reduce the number of resources Windows consumes and "improving the baseline reliability." That includes what Davuluri calls craft with a focus on "raising the bar" on the overall usability of the Windows 11 experience. </p><p>In all, it's a broad list of fixes. I'm not certain it directly covers everything, including the annoying pop-ups demanding you use Edge or Bing or anything Copilot. You should read the full memo for all the promised fixes.</p><p>Still, Davuluri is promising a more nuanced approach to Copilot integration. This fits with a <a href="https://www.tomsguide.com/computing/windows-operating-systems/microsoft-is-reportedly-pulling-back-on-stuffing-windows-11-with-ai-and-i-couldnt-be-happier">January report that Microsoft is pulling back</a> on stuffing Windows 11 with AI.</p><p>It's one of the few companies that actually seems to be stepping away from AI as everyone else bull rushes through the china shop to shove it in every piece of tech.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/laptops/is-the-macbook-neo-as-good-as-a-budget-windows-laptop-here-are-our-lab-tested-results">We benchmarked the MacBook Neo vs Windows laptops — here's the truth</a></li><li><a href="https://www.tomsguide.com/computing/online-security/microsoft-confirms-copilot-bug-let-its-ai-read-sensitive-and-confidential-emails">Microsoft confirms Copilot bug let its AI read sensitive and confidential emails</a></li><li><a href="https://www.tomsguide.com/gaming/xbox/microsoft-reveals-new-details-on-its-project-helix-pc-console-hybrid-heres-all-the-latest-on-the-next-xbox">Microsoft reveals new details on its Project Helix PC-console hybrid: here's all the latest on the next Xbox</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ macOS Tahoe 26.4 public beta is here — and these are the best new features for your Mac ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Apple began rolling out developer beta 1 for <a href="https://www.tomsguide.com/computing/macos/apple-macos-tahoe-review">macOS Tahoe 26.4</a> yesterday, and it’s now available for public beta users. Some of these releases can be a bit lean, but this one actually has some useful features to check out.</p><p>As <a href="https://9to5mac.com/2026/02/17/macos-tahoe-26-4-public-beta-debuts-heres-whats-new/" target="_blank">9to5Mac</a> reports, the beta is now available for anyone who’s enrolled in Apple’s free Beta Software Program. If you’ve been holding off on the developer build, this is a good time to dive in, so long as you’re comfortable with potential beta bugs.</p><p>Here’s a breakdown of what’s coming to your Mac with version 26.4.</p><h2 id="battery-charge-limit-for-macbooks">Battery charge limit for MacBooks</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4032px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="YFvTBJSXdV8xMVodWMpQw" name="MacBook Air M4 2025-23" alt="MacBook Air M4 vs MacBook Pro M4 with nano display" src="https://cdn.mos.cms.futurecdn.net/YFvTBJSXdV8xMVodWMpQw.jpg" mos="" align="middle" fullscreen="" width="4032" height="2268" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>This is the most notable update in this build. As you can currently do on <a href="https://www.tomsguide.com/phones/iphones/ios-26-review-new-features-liquid-glass">iOS 26</a> and <a href="https://www.tomsguide.com/computing/ipads/apple-ipados-26-review">iPadOS 26</a>, macOS Tahoe now lets you set a specific Battery Charge Limit. You can choose to cap your maximum charge anywhere between 80% and 100%.</p><p>If you’re like me and spend 90% of your time with your MacBook plugged into a wall outlet or dock, this is a good way to maintain long-term battery health. Keeping your battery at a constant 100% can degrade it faster over time, so being able to hard-cap it at 80% while you're at your desk is a feature that has been a long time coming.</p><h2 id="the-end-of-rosetta-apps">The end of Rosetta apps</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:66.67%;"><img id="iV2ReGztVTZK5JWE9R9o4j" name="laptop-2588862_1920.png" alt="How to install Rosetta on Mac" src="https://cdn.mos.cms.futurecdn.net/iV2ReGztVTZK5JWE9R9o4j.png" mos="" align="middle" fullscreen="" width="1920" height="1280" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Pixabay)</span></figcaption></figure><p>Apple has added new Rosetta warning popups that appear whenever you launch an app built for Intel processors. The pop-up serves as a reminder that macOS 27 (which will likely release later this year) will officially drop support for Rosetta and Intel-based apps.</p><p>As we’ve known for a while, <a href="https://www.tomsguide.com/computing/macos/apple-is-ending-support-for-all-intel-based-macs-next-year-heres-whats-getting-cut">macOS Tahoe is the final stop for Intel Macs</a>. If you’re still using a legacy machine, this beta is essentially the beginning of the end. It’s a clear signal from Apple that it’s officially time to upgrade to a Mac with an M-series chip.</p><h2 id="small-fixes-and-safari-tweaks">Small fixes and Safari tweaks</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:6014px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="ZdRvhW7WR3FQQLCqRd9fx7" name="shutterstock_699112741 (1).jpg" alt="The Apple Safari logo on macOS" src="https://cdn.mos.cms.futurecdn.net/ZdRvhW7WR3FQQLCqRd9fx7.jpg" mos="" align="middle" fullscreen="" width="6014" height="3384" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>For Safari fans, the compact tab bar option has returned to System Settings. It was missing from the initial launch of Tahoe, but it's back for those who prefer a more streamlined browser UI.</p><p>Apple also claims to have finally squashed a persistent UI bug regarding window corner radii. Apparently, the window resize pointer wasn't correctly following the curved shape of the windows. That’s a small detail, but one that probably drove some folks crazy.</p><h2 id="how-to-get-the-macos-tahoe-public-beta">How to get the macOS Tahoe Public Beta</h2><p>If you want to try these features yourself, you can head over to beta.apple.com to sign up. Once enrolled, just go to <strong>System Settings > General > Software Update</strong> and toggle on the Tahoe Public Beta.</p><p>Just a word of advice from someone who uses beta builds: Back up your data. While this 26.4 build feels relatively stable, you never want to risk your primary work machine on a beta without a <a href="https://www.tomsguide.com/computing/macos/9-things-windows-users-should-do-first-when-switching-to-macos#section-setting-up-backups-with-time-machine">Time Machine backup</a> ready to go.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-OLKlNW"></div>                            </div>                            <script src="https://kwizly.com/embed/OLKlNW.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/cpus/apples-m-series-chip-gamble-5-years-later-how-ditching-intel-revolutionized-computing-and-whats-next">Apple’s M-series chip 5 years later</a></li><li><a href="https://www.tomsguide.com/computing/macbooks/not-just-iphone-17e-apple-reportedly-announcing-multiple-products-in-early-march">Apple reportedly announcing multiple products in early March</a></li><li><a href="https://www.tomsguide.com/computing/ipads/bummer-new-report-claims-apple-wont-redesign-the-ipad-pro-for-years">New report claims Apple won’t redesign the iPad Pro for years</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/macos/macos-tahoe-26-4-public-beta-is-here-and-these-are-the-best-new-features-for-your-mac</link>
                                                                            <description>
                            <![CDATA[ Apple's macOS Tahoe 26.4 public beta brings a long-awaited iPhone feature to the Mac. Plus, the sunset begins for Intel-based apps. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">yzgZYtiq69GZDdP8Kd7JUF</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/e9ve6YT5G3vircCWjLi6jJ-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 19 Feb 2026 16:36:52 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[macOS]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                                                                <author><![CDATA[ tony.polanco@futurenet.com (Tony Polanco) ]]></author>                    <dc:creator><![CDATA[ Tony Polanco ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/atzRNqFt5wYgEUPBDahWsD.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/e9ve6YT5G3vircCWjLi6jJ-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock/Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[macOS 26]]></media:description>                                                            <media:text><![CDATA[macOS 26]]></media:text>
                                <media:title type="plain"><![CDATA[macOS 26]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/e9ve6YT5G3vircCWjLi6jJ-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Apple began rolling out developer beta 1 for <a href="https://www.tomsguide.com/computing/macos/apple-macos-tahoe-review">macOS Tahoe 26.4</a> yesterday, and it’s now available for public beta users. Some of these releases can be a bit lean, but this one actually has some useful features to check out.</p><p>As <a href="https://9to5mac.com/2026/02/17/macos-tahoe-26-4-public-beta-debuts-heres-whats-new/" target="_blank">9to5Mac</a> reports, the beta is now available for anyone who’s enrolled in Apple’s free Beta Software Program. If you’ve been holding off on the developer build, this is a good time to dive in, so long as you’re comfortable with potential beta bugs.</p><p>Here’s a breakdown of what’s coming to your Mac with version 26.4.</p><h2 id="battery-charge-limit-for-macbooks">Battery charge limit for MacBooks</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4032px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="YFvTBJSXdV8xMVodWMpQw" name="MacBook Air M4 2025-23" alt="MacBook Air M4 vs MacBook Pro M4 with nano display" src="https://cdn.mos.cms.futurecdn.net/YFvTBJSXdV8xMVodWMpQw.jpg" mos="" align="middle" fullscreen="" width="4032" height="2268" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>This is the most notable update in this build. As you can currently do on <a href="https://www.tomsguide.com/phones/iphones/ios-26-review-new-features-liquid-glass">iOS 26</a> and <a href="https://www.tomsguide.com/computing/ipads/apple-ipados-26-review">iPadOS 26</a>, macOS Tahoe now lets you set a specific Battery Charge Limit. You can choose to cap your maximum charge anywhere between 80% and 100%.</p><p>If you’re like me and spend 90% of your time with your MacBook plugged into a wall outlet or dock, this is a good way to maintain long-term battery health. Keeping your battery at a constant 100% can degrade it faster over time, so being able to hard-cap it at 80% while you're at your desk is a feature that has been a long time coming.</p><h2 id="the-end-of-rosetta-apps">The end of Rosetta apps</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:66.67%;"><img id="iV2ReGztVTZK5JWE9R9o4j" name="laptop-2588862_1920.png" alt="How to install Rosetta on Mac" src="https://cdn.mos.cms.futurecdn.net/iV2ReGztVTZK5JWE9R9o4j.png" mos="" align="middle" fullscreen="" width="1920" height="1280" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Pixabay)</span></figcaption></figure><p>Apple has added new Rosetta warning popups that appear whenever you launch an app built for Intel processors. The pop-up serves as a reminder that macOS 27 (which will likely release later this year) will officially drop support for Rosetta and Intel-based apps.</p><p>As we’ve known for a while, <a href="https://www.tomsguide.com/computing/macos/apple-is-ending-support-for-all-intel-based-macs-next-year-heres-whats-getting-cut">macOS Tahoe is the final stop for Intel Macs</a>. If you’re still using a legacy machine, this beta is essentially the beginning of the end. It’s a clear signal from Apple that it’s officially time to upgrade to a Mac with an M-series chip.</p><h2 id="small-fixes-and-safari-tweaks">Small fixes and Safari tweaks</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:6014px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="ZdRvhW7WR3FQQLCqRd9fx7" name="shutterstock_699112741 (1).jpg" alt="The Apple Safari logo on macOS" src="https://cdn.mos.cms.futurecdn.net/ZdRvhW7WR3FQQLCqRd9fx7.jpg" mos="" align="middle" fullscreen="" width="6014" height="3384" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>For Safari fans, the compact tab bar option has returned to System Settings. It was missing from the initial launch of Tahoe, but it's back for those who prefer a more streamlined browser UI.</p><p>Apple also claims to have finally squashed a persistent UI bug regarding window corner radii. Apparently, the window resize pointer wasn't correctly following the curved shape of the windows. That’s a small detail, but one that probably drove some folks crazy.</p><h2 id="how-to-get-the-macos-tahoe-public-beta">How to get the macOS Tahoe Public Beta</h2><p>If you want to try these features yourself, you can head over to beta.apple.com to sign up. Once enrolled, just go to <strong>System Settings > General > Software Update</strong> and toggle on the Tahoe Public Beta.</p><p>Just a word of advice from someone who uses beta builds: Back up your data. While this 26.4 build feels relatively stable, you never want to risk your primary work machine on a beta without a <a href="https://www.tomsguide.com/computing/macos/9-things-windows-users-should-do-first-when-switching-to-macos#section-setting-up-backups-with-time-machine">Time Machine backup</a> ready to go.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-OLKlNW"></div>                            </div>                            <script src="https://kwizly.com/embed/OLKlNW.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/cpus/apples-m-series-chip-gamble-5-years-later-how-ditching-intel-revolutionized-computing-and-whats-next">Apple’s M-series chip 5 years later</a></li><li><a href="https://www.tomsguide.com/computing/macbooks/not-just-iphone-17e-apple-reportedly-announcing-multiple-products-in-early-march">Apple reportedly announcing multiple products in early March</a></li><li><a href="https://www.tomsguide.com/computing/ipads/bummer-new-report-claims-apple-wont-redesign-the-ipad-pro-for-years">New report claims Apple won’t redesign the iPad Pro for years</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ My laptop fan sounded like a jet engine — here's how I fixed it ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Loud laptop fan noise is distracting and often signals your laptop is working harder than it should be. Fans spin faster and louder when you're laptop overheats, struggles with demanding programs, or accumulates dust that blocks airflow. What starts as an occasional noise can escalate into constant whirring that makes working, watching videos, or focusing nearly impossible. </p><p>Most loud fan problems stem from fixable issues rather than hardware failure. Before assuming your laptop is on its way out, here's three straightforward adjustments that reduce fan noise significantly. Plus, these fixes work regardless of what brand of laptop you're using, or model. </p><section class="howto-block">                    <h3>1. Clean your laptop's vents and fan</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="http://cdn.mos.cms.futurecdn.net/KFkQ64PXsuLLedGWTeUcLZ.jpg"                                        alt="A picture of the DataVac ED-500-ESD electric duster with all of its accessories"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="http://cdn.mos.cms.futurecdn.net/KFkQ64PXsuLLedGWTeUcLZ.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>Dust accumulation is the most common cause of loud fan noise. When dust clogs air vents and settles on fan blades, airflow becomes restricted. Your laptop compensates by spinning the fan faster and harder, creating the loud noise you're hearing.</p><p><strong>Power off your laptop completely </strong>and unplug it from any power source. <strong>Locate the air vents  </strong>—usually on the sides, back, or bottom of the laptop. <strong>Use compressed air or an </strong><a href="https://www.tomsguide.com/opinion/i-bought-this-electric-duster-and-cleaning-my-gadgets-has-never-been-easier"><strong>electric duster</strong></a><strong> to blow dust out of these vents</strong>. Hold the can upright and use short bursts rather than continuous spraying to avoid moisture buildup.</p><p><strong>Angle the compressed air or electric duster into vents from different directions to dislodge dust effectively</strong>. You should see dust particles escaping from the vents as you work. Pay particular attention to intake vents where cool air enters and exhaust vents where hot air exits.</p><p>Cleaning vents and fans every few months prevents dust from building up to problematic levels. If your laptop sits in a dusty environment or near floor level, clean it more frequently.</p></p>                </section><section class="howto-block">                    <h3>2. Close resource-heavy programs</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/Wnbnoeswa9M3btYkmQkMVi.jpg"                                        alt="A close up of a person's hands typing on a laptop"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/Wnbnoeswa9M3btYkmQkMVi.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Getty Images)</div></figure>                    <p><p>Your laptop fan speeds up when the processor works hard. Running multiple demanding programs simultaneously generates heat that forces the fan into overdrive. Identifying and closing unnecessary programs reduces the workload and quiets the fan.</p><p><strong>Open Task Manager by pressing Ctrl + Shift + Esc on Windows, or Activity Monitor on Mac (found in Applications and Utilities) and double-click Activity Monitor.</strong> Look at the CPU column to see which programs consume the most processing power.</p><p>Web browsers with dozens of open tabs, video editing software, games, and background applications you forgot about often top the list. <strong>Close programs you're not actively using</strong>. For browsers, close tabs you don't need or use browser extensions that suspend inactive tabs to free up resources.</p><p>Some programs run in the background even after you think you've closed them. <strong>Check your system tray (Windows) or menu bar (Mac) </strong>for icons indicating running applications. <strong>Right-click these icons and select Quit or Exit</strong> to close them properly.</p><p>After closing heavy programs, monitor your fan noise. It should decrease noticeably within a minute or two as your laptop cools down and the fan slows. If fan noise remains high with minimal programs running, move to the next fix.</p></p>                </section><section class="howto-block">                    <h3>3. Adjust your power settings to reduce heat</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="http://cdn.mos.cms.futurecdn.net/SupVSbx9xbZoDmUN6ncjUj.jpg"                                        alt="How to check Macbook battery health"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="http://cdn.mos.cms.futurecdn.net/SupVSbx9xbZoDmUN6ncjUj.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Shutterstock)</div></figure>                    <p><p>Power settings control how hard your laptop's processor works, which directly affects heat generation and fan activity. Default settings often prioritize performance over quietness, pushing your processor harder than necessary for everyday tasks.</p><p><strong>On Windows, open Settings, System, Power & Battery, then click Power Mode</strong>. <strong>Switch from Best Performance to Balanced or Best Power Efficiency</strong>. These modes limit maximum processor speed, reducing heat output and fan noise for tasks that don't require full power.</p><p><strong>On Mac, open System Settings, battery (or Energy Saver on older macOS versions). Enable "Low power mode" </strong>or adjust settings to prevent performance-intensive tasks from running unnecessarily. Macs handle power management automatically, but <strong>reducing screen brightness and disabling unnecessary features like Bluetooth when not in use helps minimize heat</strong>.</p><p>Changing power settings means slightly reduced performance for demanding tasks like video editing or gaming. For everyday use like browsing, email, and document work, the difference is imperceptible while fan noise drops significantly.</p></p>                </section><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-OKQxRe"></div>                            </div>                            <script src="https://kwizly.com/embed/OKQxRe.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide </span></h3><ul><li><a href="https://www.tomsguide.com/computing/macos/ive-been-using-macs-for-years-here-are-3-power-user-tweaks-that-changed-everything">I've been using Macs for years — here are 3 power user tweaks that changed everything</a></li><li><a href="https://www.tomsguide.com/how-to/child-online-safety">How to protect your child online</a></li><li><a href="https://www.tomsguide.com/computing/online-security/how-to-remove-your-home-address-from-the-internet-7-ways-to-protect-your-privacy">How to remove your home address from the internet — 6 ways to protect your privacy</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/macos/my-laptop-fan-sounded-like-a-jet-engine-heres-how-i-fixed-it</link>
                                                                            <description>
                            <![CDATA[ Learn three simple fixes for loud laptop fan noise that work on any laptop brand. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">nyBfhciHs9pmeJ76y22QBf</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/MntZYwbQAkLnjrKiJmFA8R-1280-80.png" type="image/png" length="0"></enclosure>
                                                                        <pubDate>Thu, 19 Feb 2026 13:02:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[macOS]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                                                                <author><![CDATA[ kaycee.hill@futurenet.com (Kaycee Hill) ]]></author>                    <dc:creator><![CDATA[ Kaycee Hill ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/sUwQW8yCGXFHeksAFjqSxZ.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/png" url="https://cdn.mos.cms.futurecdn.net/MntZYwbQAkLnjrKiJmFA8R-1280-80.png">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[MacBook Pro 2023]]></media:description>                                                            <media:text><![CDATA[MacBook Pro 2023]]></media:text>
                                <media:title type="plain"><![CDATA[MacBook Pro 2023]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/MntZYwbQAkLnjrKiJmFA8R-1280-80.png" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Loud laptop fan noise is distracting and often signals your laptop is working harder than it should be. Fans spin faster and louder when you're laptop overheats, struggles with demanding programs, or accumulates dust that blocks airflow. What starts as an occasional noise can escalate into constant whirring that makes working, watching videos, or focusing nearly impossible. </p><p>Most loud fan problems stem from fixable issues rather than hardware failure. Before assuming your laptop is on its way out, here's three straightforward adjustments that reduce fan noise significantly. Plus, these fixes work regardless of what brand of laptop you're using, or model. </p><section class="howto-block">                    <h3>1. Clean your laptop's vents and fan</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="http://cdn.mos.cms.futurecdn.net/KFkQ64PXsuLLedGWTeUcLZ.jpg"                                        alt="A picture of the DataVac ED-500-ESD electric duster with all of its accessories"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="http://cdn.mos.cms.futurecdn.net/KFkQ64PXsuLLedGWTeUcLZ.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>Dust accumulation is the most common cause of loud fan noise. When dust clogs air vents and settles on fan blades, airflow becomes restricted. Your laptop compensates by spinning the fan faster and harder, creating the loud noise you're hearing.</p><p><strong>Power off your laptop completely </strong>and unplug it from any power source. <strong>Locate the air vents  </strong>—usually on the sides, back, or bottom of the laptop. <strong>Use compressed air or an </strong><a href="https://www.tomsguide.com/opinion/i-bought-this-electric-duster-and-cleaning-my-gadgets-has-never-been-easier"><strong>electric duster</strong></a><strong> to blow dust out of these vents</strong>. Hold the can upright and use short bursts rather than continuous spraying to avoid moisture buildup.</p><p><strong>Angle the compressed air or electric duster into vents from different directions to dislodge dust effectively</strong>. You should see dust particles escaping from the vents as you work. Pay particular attention to intake vents where cool air enters and exhaust vents where hot air exits.</p><p>Cleaning vents and fans every few months prevents dust from building up to problematic levels. If your laptop sits in a dusty environment or near floor level, clean it more frequently.</p></p>                </section><section class="howto-block">                    <h3>2. Close resource-heavy programs</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/Wnbnoeswa9M3btYkmQkMVi.jpg"                                        alt="A close up of a person's hands typing on a laptop"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/Wnbnoeswa9M3btYkmQkMVi.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Getty Images)</div></figure>                    <p><p>Your laptop fan speeds up when the processor works hard. Running multiple demanding programs simultaneously generates heat that forces the fan into overdrive. Identifying and closing unnecessary programs reduces the workload and quiets the fan.</p><p><strong>Open Task Manager by pressing Ctrl + Shift + Esc on Windows, or Activity Monitor on Mac (found in Applications and Utilities) and double-click Activity Monitor.</strong> Look at the CPU column to see which programs consume the most processing power.</p><p>Web browsers with dozens of open tabs, video editing software, games, and background applications you forgot about often top the list. <strong>Close programs you're not actively using</strong>. For browsers, close tabs you don't need or use browser extensions that suspend inactive tabs to free up resources.</p><p>Some programs run in the background even after you think you've closed them. <strong>Check your system tray (Windows) or menu bar (Mac) </strong>for icons indicating running applications. <strong>Right-click these icons and select Quit or Exit</strong> to close them properly.</p><p>After closing heavy programs, monitor your fan noise. It should decrease noticeably within a minute or two as your laptop cools down and the fan slows. If fan noise remains high with minimal programs running, move to the next fix.</p></p>                </section><section class="howto-block">                    <h3>3. Adjust your power settings to reduce heat</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="http://cdn.mos.cms.futurecdn.net/SupVSbx9xbZoDmUN6ncjUj.jpg"                                        alt="How to check Macbook battery health"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="http://cdn.mos.cms.futurecdn.net/SupVSbx9xbZoDmUN6ncjUj.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Shutterstock)</div></figure>                    <p><p>Power settings control how hard your laptop's processor works, which directly affects heat generation and fan activity. Default settings often prioritize performance over quietness, pushing your processor harder than necessary for everyday tasks.</p><p><strong>On Windows, open Settings, System, Power & Battery, then click Power Mode</strong>. <strong>Switch from Best Performance to Balanced or Best Power Efficiency</strong>. These modes limit maximum processor speed, reducing heat output and fan noise for tasks that don't require full power.</p><p><strong>On Mac, open System Settings, battery (or Energy Saver on older macOS versions). Enable "Low power mode" </strong>or adjust settings to prevent performance-intensive tasks from running unnecessarily. Macs handle power management automatically, but <strong>reducing screen brightness and disabling unnecessary features like Bluetooth when not in use helps minimize heat</strong>.</p><p>Changing power settings means slightly reduced performance for demanding tasks like video editing or gaming. For everyday use like browsing, email, and document work, the difference is imperceptible while fan noise drops significantly.</p></p>                </section><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-OKQxRe"></div>                            </div>                            <script src="https://kwizly.com/embed/OKQxRe.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide </span></h3><ul><li><a href="https://www.tomsguide.com/computing/macos/ive-been-using-macs-for-years-here-are-3-power-user-tweaks-that-changed-everything">I've been using Macs for years — here are 3 power user tweaks that changed everything</a></li><li><a href="https://www.tomsguide.com/how-to/child-online-safety">How to protect your child online</a></li><li><a href="https://www.tomsguide.com/computing/online-security/how-to-remove-your-home-address-from-the-internet-7-ways-to-protect-your-privacy">How to remove your home address from the internet — 6 ways to protect your privacy</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Windows 11’s taskbar internet speed test is a real quality-of-life upgrade — now, where is Microsoft's AI dial back? ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Microsoft just issued a <a href="https://blogs.windows.com/windows-insider/2026/02/17/releasing-windows-11-builds-26100-7918-and-26200-7918-to-the-release-preview-channel/" target="_blank" rel="nofollow">Windows 11 Release Preview build</a> that previews a bunch of new features coming to the OS. </p><p>The team at Redmond has been doing this on a regular basis for months, but this one follows the company reportedly <a href="https://www.tomsguide.com/computing/windows-operating-systems/microsoft-is-reportedly-pulling-back-on-stuffing-windows-11-with-ai-and-i-couldnt-be-happier">pulling back on stuffing Windows 11 with AI</a>. </p><p>The name of the game here is optimization and upgrading the quality of life of using Windows, and these new features make me cautiously optimistic that we’re heading in the right direction.</p><h2 id="the-taskbar-is-getting-more-helpful">The Taskbar is getting more helpful</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="KFH472wUKHSPF9egYBenug" name="Autohide Windows 11 taskbar" alt="The taskbar settings menu in Windows 11." src="https://cdn.mos.cms.futurecdn.net/KFH472wUKHSPF9egYBenug.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>First of all, there is now an option to run a network speed test directly from the taskbar — great for helping check network performance or identify any issues if you’re not seeing pages load.</p><p>Also, shout-out to the improvement that doesn’t move multiple windows of the same app into an overflow area, and just uses the space available on the bar itself.</p><h2 id="faster-wake-up-times-for-your-pc">Faster ‘wake up’ times for your PC</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="xaL6EAfk6hDbtBpCjbgkfM" name="win11widgets2025" alt="Windows 11 lock screen widgets in action" src="https://cdn.mos.cms.futurecdn.net/xaL6EAfk6hDbtBpCjbgkfM.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft)</span></figcaption></figure><p>Microsoft has made some performance improvements and optimized how Windows resumes from “sleep” mode. If you’ve ever felt like your laptop takes a while to wake up when you leave a lot of apps open before closing the lid, this update specifically targets that.</p><p>You can expect your system (be it notebook or desktop) to feel snappier when you wake it up, which should bring some equality between the zippy Snapdragon X Elite systems and those from Intel and AMD.</p><h2 id="camera-control">Camera control</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="beQ8MGurtXAZXdLqj7APRN" name="Logitech MX Master Series-5" alt="The Logitech MX Brio webcam perched on top of a display" src="https://cdn.mos.cms.futurecdn.net/beQ8MGurtXAZXdLqj7APRN.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Tired of AI trying to frame your face on the webcam? Now there are manual controls! Within “Bluetooth & devices” settings, you’re now able to control the pan and tilt for supported cameras.</p><p>This is because it’s often easy to trick AI framing, and many people may not want dramatic zooms that are out of their control.</p><h2 id="that-s-not-all">That’s not all…</h2><p>There are other noteworthy updates coming, too, and all of them seem to indicate a shift from Microsoft towards “pulling back” from stuffing Windows 11 with AI. Not groundbreaking, but useful features and optimizations:</p><ul><li>You’ll finally be able to set .webp image files as your desktop wallpaper.</li><li>The “Storage Settings” page is now much faster at scanning for temporary files to help you reclaim disk space.</li><li>Windows update page now responds faster when you click “Check for updates.”</li><li>New emoji alongside the <a href="https://www.unicode.org/emoji/charts-16.0/emoji-released.html" target="_blank" rel="nofollow">16.0 release</a> — including a harp, splatter and a face with bags under eyes (hard relate).</li></ul><p>Of course, we have a long way to go in the area of bringing Windows 11 back to the promised land. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2880px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="4UDFLABpZ6ZXYTvrdZRmdQ" name="Screenshot (6) (2024-06-18T17_23_42.980).png" alt="Copilot+ PCs" src="https://cdn.mos.cms.futurecdn.net/4UDFLABpZ6ZXYTvrdZRmdQ.png" mos="" align="middle" fullscreen="" width="2880" height="1620" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Optimizations and efficiencies need to be made to help the OS run smoother (using less memory that is currently being consumed in the <a href="https://www.tomsguide.com/computing/ram-prices-are-exploding-heres-why-and-everything-you-need-to-know-about-surviving-ramageddon">RAM crisis</a>), and my dream would be to see Microsoft tackle the many unnecessary pop-ups promoting different services to subscribe to, alongside the ads.</p><p>But this is definitely a small step in the right direction. These features are all on gradual rollout, so don’t expect to see them all immediately if you’re on the Windows Insider program!</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/windows-10-users-warned-to-upgrade-now-or-risk-a-degraded-security-state-as-microsoft-ends-secure-boot-support">Windows 10 users warned to upgrade now or risk a ‘degraded security state’ as Microsoft ends Secure Boot support</a></li><li><a href="https://www.tomsguide.com/computing/macos/apple-buried-these-5-essential-mac-file-management-features-heres-how-to-find-and-use-them">Apple buried these 5 essential Mac file management features — here's how to use them</a></li><li><a href="https://www.tomsguide.com/computing/operating-systems/googles-leaked-aluminum-os-might-be-the-chromeos-pro-ive-waited-years-for-is-it-finally-time-to-ditch-windows-11-for-good">'Google’s leaked Aluminum OS looks like the ChromeOS I've waited years for': why I might actually ditch Windows 11</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/windows-operating-systems/windows-11-is-getting-3-new-features-in-a-major-quality-of-life-update-is-microsoft-starting-to-pull-back-on-ai-slop</link>
                                                                            <description>
                            <![CDATA[ Microsoft just issued a Windows 11 Release Preview build that previews a bunch of new features coming to the OS. The team at Redmond has been doing this on a regular basis for months, but this one follows the company reportedly pulling back on stuffing Windows 11 with AI. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">UoQW2XvgNzqgSkrG3oA56R</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/eLwm3CRPxvUCFxnXG5QAcF-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 18 Feb 2026 11:28:08 +0000</pubDate>                                                                                                                                <updated>Thu, 19 Feb 2026 18:10:09 +0000</updated>
                                                                                                                                            <category><![CDATA[Windows Operating Systems]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                                                                                    <dc:creator><![CDATA[ Jason England ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/v4fSq5U4uZUEtGY2BwNuJ6.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Jason brings a decade of tech and gaming journalism experience to his role as a Managing Editor of Computing at Tom&#039;s Guide. He has previously written for Laptop Mag, Tom&#039;s Hardware, Kotaku, Stuff and BBC Science Focus. In his spare time, you&#039;ll find Jason looking for good dogs to pet or thinking about eating pizza if he isn&#039;t already.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/eLwm3CRPxvUCFxnXG5QAcF-1280-80.jpg">
                                                            <media:credit><![CDATA[sdx15 / Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A laptop running Windows 11, representing an article about how to use task scheduler on windows]]></media:description>                                                            <media:text><![CDATA[A laptop running Windows 11, representing an article about how to use task scheduler on windows]]></media:text>
                                <media:title type="plain"><![CDATA[A laptop running Windows 11, representing an article about how to use task scheduler on windows]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/eLwm3CRPxvUCFxnXG5QAcF-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Microsoft just issued a <a href="https://blogs.windows.com/windows-insider/2026/02/17/releasing-windows-11-builds-26100-7918-and-26200-7918-to-the-release-preview-channel/" target="_blank" rel="nofollow">Windows 11 Release Preview build</a> that previews a bunch of new features coming to the OS. </p><p>The team at Redmond has been doing this on a regular basis for months, but this one follows the company reportedly <a href="https://www.tomsguide.com/computing/windows-operating-systems/microsoft-is-reportedly-pulling-back-on-stuffing-windows-11-with-ai-and-i-couldnt-be-happier">pulling back on stuffing Windows 11 with AI</a>. </p><p>The name of the game here is optimization and upgrading the quality of life of using Windows, and these new features make me cautiously optimistic that we’re heading in the right direction.</p><h2 id="the-taskbar-is-getting-more-helpful">The Taskbar is getting more helpful</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="KFH472wUKHSPF9egYBenug" name="Autohide Windows 11 taskbar" alt="The taskbar settings menu in Windows 11." src="https://cdn.mos.cms.futurecdn.net/KFH472wUKHSPF9egYBenug.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>First of all, there is now an option to run a network speed test directly from the taskbar — great for helping check network performance or identify any issues if you’re not seeing pages load.</p><p>Also, shout-out to the improvement that doesn’t move multiple windows of the same app into an overflow area, and just uses the space available on the bar itself.</p><h2 id="faster-wake-up-times-for-your-pc">Faster ‘wake up’ times for your PC</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="xaL6EAfk6hDbtBpCjbgkfM" name="win11widgets2025" alt="Windows 11 lock screen widgets in action" src="https://cdn.mos.cms.futurecdn.net/xaL6EAfk6hDbtBpCjbgkfM.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft)</span></figcaption></figure><p>Microsoft has made some performance improvements and optimized how Windows resumes from “sleep” mode. If you’ve ever felt like your laptop takes a while to wake up when you leave a lot of apps open before closing the lid, this update specifically targets that.</p><p>You can expect your system (be it notebook or desktop) to feel snappier when you wake it up, which should bring some equality between the zippy Snapdragon X Elite systems and those from Intel and AMD.</p><h2 id="camera-control">Camera control</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="beQ8MGurtXAZXdLqj7APRN" name="Logitech MX Master Series-5" alt="The Logitech MX Brio webcam perched on top of a display" src="https://cdn.mos.cms.futurecdn.net/beQ8MGurtXAZXdLqj7APRN.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Tired of AI trying to frame your face on the webcam? Now there are manual controls! Within “Bluetooth & devices” settings, you’re now able to control the pan and tilt for supported cameras.</p><p>This is because it’s often easy to trick AI framing, and many people may not want dramatic zooms that are out of their control.</p><h2 id="that-s-not-all">That’s not all…</h2><p>There are other noteworthy updates coming, too, and all of them seem to indicate a shift from Microsoft towards “pulling back” from stuffing Windows 11 with AI. Not groundbreaking, but useful features and optimizations:</p><ul><li>You’ll finally be able to set .webp image files as your desktop wallpaper.</li><li>The “Storage Settings” page is now much faster at scanning for temporary files to help you reclaim disk space.</li><li>Windows update page now responds faster when you click “Check for updates.”</li><li>New emoji alongside the <a href="https://www.unicode.org/emoji/charts-16.0/emoji-released.html" target="_blank" rel="nofollow">16.0 release</a> — including a harp, splatter and a face with bags under eyes (hard relate).</li></ul><p>Of course, we have a long way to go in the area of bringing Windows 11 back to the promised land. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2880px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="4UDFLABpZ6ZXYTvrdZRmdQ" name="Screenshot (6) (2024-06-18T17_23_42.980).png" alt="Copilot+ PCs" src="https://cdn.mos.cms.futurecdn.net/4UDFLABpZ6ZXYTvrdZRmdQ.png" mos="" align="middle" fullscreen="" width="2880" height="1620" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Optimizations and efficiencies need to be made to help the OS run smoother (using less memory that is currently being consumed in the <a href="https://www.tomsguide.com/computing/ram-prices-are-exploding-heres-why-and-everything-you-need-to-know-about-surviving-ramageddon">RAM crisis</a>), and my dream would be to see Microsoft tackle the many unnecessary pop-ups promoting different services to subscribe to, alongside the ads.</p><p>But this is definitely a small step in the right direction. These features are all on gradual rollout, so don’t expect to see them all immediately if you’re on the Windows Insider program!</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/windows-10-users-warned-to-upgrade-now-or-risk-a-degraded-security-state-as-microsoft-ends-secure-boot-support">Windows 10 users warned to upgrade now or risk a ‘degraded security state’ as Microsoft ends Secure Boot support</a></li><li><a href="https://www.tomsguide.com/computing/macos/apple-buried-these-5-essential-mac-file-management-features-heres-how-to-find-and-use-them">Apple buried these 5 essential Mac file management features — here's how to use them</a></li><li><a href="https://www.tomsguide.com/computing/operating-systems/googles-leaked-aluminum-os-might-be-the-chromeos-pro-ive-waited-years-for-is-it-finally-time-to-ditch-windows-11-for-good">'Google’s leaked Aluminum OS looks like the ChromeOS I've waited years for': why I might actually ditch Windows 11</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Windows 10 users warned to upgrade now or risk a ‘degraded security state’ as Microsoft ends Secure Boot support ]]></title>
                                                                                                <dc:content><![CDATA[ <p><a href="https://www.tomsguide.com/computing/windows-operating-systems/windows-10-upgrade-guide">Support for Windows 10</a> ended officially in October 2025, and while over 60% of PC users have made the switch to Windows 11, 35% are still using the older OS. Look, I get that it’s tricky to break an old habit, but for those users, this has become a significant security concern.</p><p>In a <a href="https://blogs.windows.com/windowsexperience/2026/02/10/refreshing-the-root-of-trust-industry-collaboration-on-secure-boot-certificate-updates/" target="_blank">new blog post</a>, Microsoft has announced a “generational refresh” of Secure Boot certificates, which means the current ones are set to expire in late June. </p><p>If you’re on Windows 10 without these certificates, you could miss out on future security updates, and, as Microsoft says, you will risk a “degraded security state.”</p><h2 id="what-is-secure-boot">What is Secure Boot?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="YwKRVzwvLwup6hDGh5bVNM" name="RzdqY6hhVUXJjJYEgfCrVe.jpg" alt="A hacker typing quickly on a keyboard" src="https://cdn.mos.cms.futurecdn.net/YwKRVzwvLwup6hDGh5bVNM.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Secure Boot is an authorization process that only allows the PC to run trusted software on startup, which stops malicious hacks during the boot. </p><p>These certificates have been around for 15 years — since 2011 with Windows 8, so it makes sense that they’re renewed to an updated standard.</p><h2 id="how-could-this-affect-your-system">How could this affect your system?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5712px;"><p class="vanilla-image-block" style="padding-top:57.91%;"><img id="rzF47gsNkUp22vynuaHefg" name="shutterstock_336079358 crop.jpg" alt="Windows 10" src="https://cdn.mos.cms.futurecdn.net/rzF47gsNkUp22vynuaHefg.jpg" mos="" align="middle" fullscreen="" width="5712" height="3308" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>If you’re on Windows 11, you’ll just receive the updated certificates with “no additional action required.” On top of that, chances are some of you reading this may already have them, as Microsoft has been working with PC manufacturers and “provisioning updated certificates” on desktops and laptops sold in 2024 and 2025.</p><p>However, if you’re on “Windows 10 and older”, you won’t be protected from new boot-level vulnerabilities, which will put your computer at risk from the second you hit the power button.</p><h2 id="what-do-you-need-to-do">What do you need to do?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="nM2QA9SAJTB9Hq3ATzrtdC" name="windows-11-stock-image.jpg" alt="Windows 11 logo on a laptop screen" src="https://cdn.mos.cms.futurecdn.net/nM2QA9SAJTB9Hq3ATzrtdC.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Well, you’ve got two options here. The first obvious one that Microsoft is really wanting you to do is upgrade to Windows 11.</p><ul><li>You can either pick up a new system, and we’re always busy testing the <a href="https://www.tomsguide.com/computing/laptops/best-laptops">best laptops</a>, <a href="https://www.tomsguide.com/best-picks/best-gaming-laptops">best gaming laptops</a> and <a href="https://www.tomsguide.com/best-picks/best-computers">best desktops</a> to help you make the right choice.</li><li>Or if you’re keen to stick with your older Windows 10 system, there are ways to bypass Microsoft’s restrictions and install Windows 11. <a href="https://www.tomsguide.com/computing/your-unsupported-pc-can-still-run-windows-11-in-2025-heres-how">We’ve got a guide on how to do that</a>.</li></ul><p>If neither of these are not to your liking — maybe you have a severe allergy to Windows 11, and you want to wait for when <a href="https://www.tomsguide.com/computing/windows-operating-systems/microsoft-is-reportedly-pulling-back-on-stuffing-windows-11-with-ai-and-i-couldnt-be-happier">Microsoft pulls back on stuffing it with AI</a>. Well, there is the Extended Security Updates (ESU) program.</p><p><a href="https://www.tomsguide.com/computing/windows-operating-systems/time-is-running-out-for-millions-of-windows-10-users-but-heres-the-1-trick-for-a-free-one-year-extension">Follow our guide</a> and you can expect to get these new certificates, since this program is set to run for a year starting from its launch in October. </p><p>Though it’s fair to say that by this point, going this route is kind of like kicking the can down the road. We’ll be back in this situation once October 13, 2026 rolls around.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/we-need-to-improve-windows-in-ways-that-are-meaningful-for-people-microsoft-is-urgently-trying-to-fix-windows-11-issues">'We need to improve Windows in ways that are meaningful for people': Microsoft is urgently trying to fix Windows 11 issues</a></li><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/5-hidden-windows-11-features-you-need-to-know-about">Forget the taskbar — 5 hidden gems that finally convinced me to love Windows 11</a></li><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/sleuth-uncovers-office-97-easter-egg-hidden-for-30-years-the-comments-clippy-provides-are-a-cherry-on-top">Sleuth uncovers Office 97 Easter egg hidden for 30 years: 'the comments Clippy provides are a cherry on top'</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/windows-operating-systems/windows-10-users-warned-to-upgrade-now-or-risk-a-degraded-security-state-as-microsoft-ends-secure-boot-support</link>
                                                                            <description>
                            <![CDATA[ Support for Windows 10 officially ended in October 2025, and Microsoft says devices that don’t upgrade could enter a degraded security state — leaving them vulnerable to threats. Here’s what it means for your PC and how to protect it. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">LFrJkxgRzPFTNhTDr3APpG</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/ystSw9obFXtwAKQjbJwpjP-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 11 Feb 2026 11:38:30 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Windows Operating Systems]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                                                                                    <dc:creator><![CDATA[ Jason England ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/v4fSq5U4uZUEtGY2BwNuJ6.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Jason brings a decade of tech and gaming journalism experience to his role as a Managing Editor of Computing at Tom&#039;s Guide. He has previously written for Laptop Mag, Tom&#039;s Hardware, Kotaku, Stuff and BBC Science Focus. In his spare time, you&#039;ll find Jason looking for good dogs to pet or thinking about eating pizza if he isn&#039;t already.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/ystSw9obFXtwAKQjbJwpjP-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Windows 10 logo on laptop]]></media:description>                                                            <media:text><![CDATA[Windows 10 logo on laptop]]></media:text>
                                <media:title type="plain"><![CDATA[Windows 10 logo on laptop]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/ystSw9obFXtwAKQjbJwpjP-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p><a href="https://www.tomsguide.com/computing/windows-operating-systems/windows-10-upgrade-guide">Support for Windows 10</a> ended officially in October 2025, and while over 60% of PC users have made the switch to Windows 11, 35% are still using the older OS. Look, I get that it’s tricky to break an old habit, but for those users, this has become a significant security concern.</p><p>In a <a href="https://blogs.windows.com/windowsexperience/2026/02/10/refreshing-the-root-of-trust-industry-collaboration-on-secure-boot-certificate-updates/" target="_blank">new blog post</a>, Microsoft has announced a “generational refresh” of Secure Boot certificates, which means the current ones are set to expire in late June. </p><p>If you’re on Windows 10 without these certificates, you could miss out on future security updates, and, as Microsoft says, you will risk a “degraded security state.”</p><h2 id="what-is-secure-boot">What is Secure Boot?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="YwKRVzwvLwup6hDGh5bVNM" name="RzdqY6hhVUXJjJYEgfCrVe.jpg" alt="A hacker typing quickly on a keyboard" src="https://cdn.mos.cms.futurecdn.net/YwKRVzwvLwup6hDGh5bVNM.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Secure Boot is an authorization process that only allows the PC to run trusted software on startup, which stops malicious hacks during the boot. </p><p>These certificates have been around for 15 years — since 2011 with Windows 8, so it makes sense that they’re renewed to an updated standard.</p><h2 id="how-could-this-affect-your-system">How could this affect your system?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5712px;"><p class="vanilla-image-block" style="padding-top:57.91%;"><img id="rzF47gsNkUp22vynuaHefg" name="shutterstock_336079358 crop.jpg" alt="Windows 10" src="https://cdn.mos.cms.futurecdn.net/rzF47gsNkUp22vynuaHefg.jpg" mos="" align="middle" fullscreen="" width="5712" height="3308" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>If you’re on Windows 11, you’ll just receive the updated certificates with “no additional action required.” On top of that, chances are some of you reading this may already have them, as Microsoft has been working with PC manufacturers and “provisioning updated certificates” on desktops and laptops sold in 2024 and 2025.</p><p>However, if you’re on “Windows 10 and older”, you won’t be protected from new boot-level vulnerabilities, which will put your computer at risk from the second you hit the power button.</p><h2 id="what-do-you-need-to-do">What do you need to do?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="nM2QA9SAJTB9Hq3ATzrtdC" name="windows-11-stock-image.jpg" alt="Windows 11 logo on a laptop screen" src="https://cdn.mos.cms.futurecdn.net/nM2QA9SAJTB9Hq3ATzrtdC.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Well, you’ve got two options here. The first obvious one that Microsoft is really wanting you to do is upgrade to Windows 11.</p><ul><li>You can either pick up a new system, and we’re always busy testing the <a href="https://www.tomsguide.com/computing/laptops/best-laptops">best laptops</a>, <a href="https://www.tomsguide.com/best-picks/best-gaming-laptops">best gaming laptops</a> and <a href="https://www.tomsguide.com/best-picks/best-computers">best desktops</a> to help you make the right choice.</li><li>Or if you’re keen to stick with your older Windows 10 system, there are ways to bypass Microsoft’s restrictions and install Windows 11. <a href="https://www.tomsguide.com/computing/your-unsupported-pc-can-still-run-windows-11-in-2025-heres-how">We’ve got a guide on how to do that</a>.</li></ul><p>If neither of these are not to your liking — maybe you have a severe allergy to Windows 11, and you want to wait for when <a href="https://www.tomsguide.com/computing/windows-operating-systems/microsoft-is-reportedly-pulling-back-on-stuffing-windows-11-with-ai-and-i-couldnt-be-happier">Microsoft pulls back on stuffing it with AI</a>. Well, there is the Extended Security Updates (ESU) program.</p><p><a href="https://www.tomsguide.com/computing/windows-operating-systems/time-is-running-out-for-millions-of-windows-10-users-but-heres-the-1-trick-for-a-free-one-year-extension">Follow our guide</a> and you can expect to get these new certificates, since this program is set to run for a year starting from its launch in October. </p><p>Though it’s fair to say that by this point, going this route is kind of like kicking the can down the road. We’ll be back in this situation once October 13, 2026 rolls around.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/we-need-to-improve-windows-in-ways-that-are-meaningful-for-people-microsoft-is-urgently-trying-to-fix-windows-11-issues">'We need to improve Windows in ways that are meaningful for people': Microsoft is urgently trying to fix Windows 11 issues</a></li><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/5-hidden-windows-11-features-you-need-to-know-about">Forget the taskbar — 5 hidden gems that finally convinced me to love Windows 11</a></li><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/sleuth-uncovers-office-97-easter-egg-hidden-for-30-years-the-comments-clippy-provides-are-a-cherry-on-top">Sleuth uncovers Office 97 Easter egg hidden for 30 years: 'the comments Clippy provides are a cherry on top'</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Apple buried these 5 essential Mac file management features — here's how to use them ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Your Mac is a versatile machine, but many of its features aren't always apparent until you start doing some digging. For example, you may not have learned <a href="https://www.tomsguide.com/how-to/how-to-show-the-hidden-files-in-mac">how to show the hidden files in Mac</a>, and you may be performing some tasks such as renaming multiple files the long way around. But, as this guide shows, you can quickly become a power user simply by being pointed in the right direction.</p><p>Here are five file and folder features that aren't immediately apparent when you're using your Mac. By working through them, you will speed up your workflow and ensure greater privacy of your documents.</p><section class="howto-block">                    <h3>1. Quickly preview your files</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/dUXuJqCXkRbSWwp4rJodci.png"                                        alt="5 Mac file and folder features that Apple buried"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/dUXuJqCXkRbSWwp4rJodci.png"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Future)</div></figure>                    <p><p>If you’re finding yourself opening a whole bunch of files just to find the one you want, then stop. Instead, <strong>click on a file </strong>(or select more than one file by holding down Shift and clicking) then <strong>press the space bar or Command-Y</strong>. </p><p>This will activate Quick Preview and allow you to take a peek. You can then decide whether or not to open it in the relevant app, just <strong>select the open option in the top-right corner</strong>. </p><p>If you have selected multiple files, you will be able to cycle through them if you <strong>click the arrow buttons</strong>. Previewed files can also be shared if you <strong>click the share icon</strong> in the toolbar.</p></p>                </section><section class="howto-block">                    <h3>2. Change the folder icons</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/jAF7CenhoNBn2M4xxLbghi.png"                                        alt="5 Mac file and folder features that Apple buried"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/jAF7CenhoNBn2M4xxLbghi.png"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Future)</div></figure>                    <p><p>You can change a folder’s icon to make it easier to identify its content. For example, if you have a bunch of files relating to your recent vacation, you can add a holiday-related symbol to the folder or even a photograph (this works for files too). It’s also possible to change the color of a folder from the default blue.</p><p>To do so, you simply need to learn <a href="https://www.tomsguide.com/computing/macos/how-to-customize-your-folders-on-macos-tahoe-26">how to customize your folders on macOS Tahoe 26</a>. In essence, you need to <strong>identify a folder in the Finder app</strong>, <strong>right-click the folder</strong> and <strong>select Customize Folder</strong>. You can then <strong>choose a color and/or a symbol or emoji</strong>. </p><p>To use an image, you need to <strong>open an image</strong> in the Preview app, <strong>copy the image</strong>, <a href="https://www.tomsguide.com/how-to/how-to-right-click-on-mac"><strong>control-click</strong></a><strong> the file or folder</strong> you wish to change and <strong>select Get Info</strong>. You can then <strong>select the icon</strong> and <strong>paste the image</strong>.</p></p>                </section><section class="howto-block">                    <h3>3. Use the favorites section in Finder</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/jW7SMvtTzNZbuphY4VN7pi.png"                                        alt="5 Mac file and folder features that Apple buried"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/jW7SMvtTzNZbuphY4VN7pi.png"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Future)</div></figure>                    <p><p>If you need to have a folder to hand, placing it in the Favorites section of Finder will make it much easier to find. All you need to do is identify the folder you need to pin and <strong>drag the folder to Favorites in the sidebar</strong>. </p><p>It will remain there until you <strong>control-click the folder</strong> and <strong>select Remove from Sidebar</strong>. You could also, if you wish, <strong>select Add to Dock</strong> for even easier access. Any folder can also be dragged to the right-side of the divider line in the Dock.</p></p>                </section><section class="howto-block">                    <h3>4. Rename multiple files</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/Xk4zGHSga44nedvpcMLHvi.png"                                        alt="5 Mac file and folder features that Apple buried"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/Xk4zGHSga44nedvpcMLHvi.png"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Future)</div></figure>                    <p><p>Renaming files individually is a real-pain and it’s also mightily time-consuming. But there is a hidden feature in Finder that allows you to rename them en masse. All you have to do is <strong>select a few files</strong> that you want to rename then <strong>control-click the files</strong> and <strong>select Rename</strong>.</p><p>You will see a number of options. <strong>Select replace text</strong> in the drop-down menu then <strong>enter the text you wish to remove in the Find field</strong> and <strong>enter the replacement text</strong>. </p><p>You can also <strong>add text to filenames</strong>. Just <strong>select Add text in the drop-down menu</strong> and <strong>enter the text that should appear in all of the filenames</strong>. You can then <strong>use the drop-down menu to select before name or after name </strong>depending on where you want that text to appear.</p><p>If you <strong>select Format</strong> in the first drop-down menu, you can also have macOS automatically rename all the files so they follow a particular convention. For example, you can <strong>enter a filename in Custom Format</strong> then <strong>select a name format </strong>and <strong>choose a set format</strong> (perhaps having each one numbered).</p></p>                </section><section class="howto-block">                    <h3>5. Password protect your folders</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/nXTLnH6QWAcnSEoRQcne6M.png"                                        alt="5 Mac file and folder features that Apple buried"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/nXTLnH6QWAcnSEoRQcne6M.png"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Future)</div></figure>                    <p><p>If you want to store sensitive information in a folder such as your financial details, you should consider protecting it with a password. You need to do this using the Disk Utility app: <strong>open the Apps app from the Dock</strong> and <strong>enter Disk Utility</strong> to find it.</p><p><strong>Go to File</strong> and <strong>select New Image</strong> then <strong>choose Image from Folder</strong>. Now look for and <strong>select the folder</strong> that you want to protect and <strong>click Choose</strong>. You can now <strong>choose the level of protection you require</strong>: 256-bit AES encryption is the best. <strong>Enter a password</strong> then <strong>click Save</strong>. The folder will turn into a disk image but if you <strong>click the disk image</strong> and <strong>enter the password</strong>, you will gain access.</p><p>It is also possible to lock a document. <strong>Select the document in Finder</strong> or on the desktop then <strong>control-click the document</strong> and <strong>select Get Info</strong>. You can then <strong>tick Locked</strong>.</p></p>                </section><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-XmowgW"></div>                            </div>                            <script src="https://kwizly.com/embed/XmowgW.js" async></script><ul><li><a href="http://tomsguide.com/computing/macos/getting-started-with-mac-shortcuts-how-to-find-use-and-create-time-saving-automations">Getting started with Mac Shortcuts — how to find, use and create time-saving automations</a></li><li><a href="https://www.tomsguide.com/computing/macos/ive-been-using-macs-for-years-here-are-3-power-user-tweaks-that-changed-everything">I've been using Macs for years — here are 3 power user tweaks that changed everything</a></li><li><a href="https://www.tomsguide.com/computing/you-can-customize-your-mac-wallpaper-in-5-easy-steps-heres-how">You can customize your Mac wallpaper in 5 easy steps — here's how</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/macos/apple-buried-these-5-essential-mac-file-management-features-heres-how-to-find-and-use-them</link>
                                                                            <description>
                            <![CDATA[ Manage your Mac files like a pro with these five essential features. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">bi2QuPzQdyyQETD9DKBthN</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/Ks6KtG9fx9soz6ddidT9iY-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 03 Feb 2026 11:30:00 +0000</pubDate>                                                                                                                                <updated>Thu, 05 Feb 2026 10:23:12 +0000</updated>
                                                                                                                                            <category><![CDATA[macOS]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                                                                                    <dc:creator><![CDATA[ David Crookes ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/yQWsHDmJr9eBZrL4xqd3bE.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;David Crookes has been writing professionally for close to 30 years and, as well as a great fondness for gaming, space, film, music, history, health and politics, he&#039;s largely specialized in technology for much of his career. He particularly focuses on Apple devices, having admired the company&#039;s tech since using iMac G3 in 1998. He also developed a fondness for the older Macintosh LC III that he later used in his first job as a newspaper reporter.&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Since becoming a freelance writer, he has written for a wide number of publications including the Apple-focussed magazines iCreate and Macworld as well as Micro Mart, Web User, T3, Retro Gamer, MagPi, Computer Shopper, Gadget and 3D Artist. His love of gaming has seen him write for Retro Gamer, GamesTM and Wireframe among others and, despite his love of Apple, he still uses a PC – working for PC Pro and once writing for Total PC Gaming.&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;One of his joys is helping others to use technology which has led him to writing many “how to” tutorials explaining many ways of getting the most out of various devices. He&#039;s become an expert user of the iPhone, iPad, Mac, Apple Watch and Apple TV. He also likes to kick back with a gaming session on an PlayStation 5 or Xbox Series X | S while getting his retro fix on an Evercade handheld.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/Ks6KtG9fx9soz6ddidT9iY-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                        <media:description><![CDATA[&lt;p&gt;I loved the Apple iMac 24-inch as a general-purpose family PC, so hopefully the company can deliver an upgraded M3 version this year.&lt;/p&gt;]]></media:description>                                                            <media:text><![CDATA[Apple iMac 24-inch]]></media:text>
                                <media:title type="plain"><![CDATA[Apple iMac 24-inch]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/Ks6KtG9fx9soz6ddidT9iY-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Your Mac is a versatile machine, but many of its features aren't always apparent until you start doing some digging. For example, you may not have learned <a href="https://www.tomsguide.com/how-to/how-to-show-the-hidden-files-in-mac">how to show the hidden files in Mac</a>, and you may be performing some tasks such as renaming multiple files the long way around. But, as this guide shows, you can quickly become a power user simply by being pointed in the right direction.</p><p>Here are five file and folder features that aren't immediately apparent when you're using your Mac. By working through them, you will speed up your workflow and ensure greater privacy of your documents.</p><section class="howto-block">                    <h3>1. Quickly preview your files</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/dUXuJqCXkRbSWwp4rJodci.png"                                        alt="5 Mac file and folder features that Apple buried"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/dUXuJqCXkRbSWwp4rJodci.png"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Future)</div></figure>                    <p><p>If you’re finding yourself opening a whole bunch of files just to find the one you want, then stop. Instead, <strong>click on a file </strong>(or select more than one file by holding down Shift and clicking) then <strong>press the space bar or Command-Y</strong>. </p><p>This will activate Quick Preview and allow you to take a peek. You can then decide whether or not to open it in the relevant app, just <strong>select the open option in the top-right corner</strong>. </p><p>If you have selected multiple files, you will be able to cycle through them if you <strong>click the arrow buttons</strong>. Previewed files can also be shared if you <strong>click the share icon</strong> in the toolbar.</p></p>                </section><section class="howto-block">                    <h3>2. Change the folder icons</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/jAF7CenhoNBn2M4xxLbghi.png"                                        alt="5 Mac file and folder features that Apple buried"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/jAF7CenhoNBn2M4xxLbghi.png"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Future)</div></figure>                    <p><p>You can change a folder’s icon to make it easier to identify its content. For example, if you have a bunch of files relating to your recent vacation, you can add a holiday-related symbol to the folder or even a photograph (this works for files too). It’s also possible to change the color of a folder from the default blue.</p><p>To do so, you simply need to learn <a href="https://www.tomsguide.com/computing/macos/how-to-customize-your-folders-on-macos-tahoe-26">how to customize your folders on macOS Tahoe 26</a>. In essence, you need to <strong>identify a folder in the Finder app</strong>, <strong>right-click the folder</strong> and <strong>select Customize Folder</strong>. You can then <strong>choose a color and/or a symbol or emoji</strong>. </p><p>To use an image, you need to <strong>open an image</strong> in the Preview app, <strong>copy the image</strong>, <a href="https://www.tomsguide.com/how-to/how-to-right-click-on-mac"><strong>control-click</strong></a><strong> the file or folder</strong> you wish to change and <strong>select Get Info</strong>. You can then <strong>select the icon</strong> and <strong>paste the image</strong>.</p></p>                </section><section class="howto-block">                    <h3>3. Use the favorites section in Finder</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/jW7SMvtTzNZbuphY4VN7pi.png"                                        alt="5 Mac file and folder features that Apple buried"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/jW7SMvtTzNZbuphY4VN7pi.png"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Future)</div></figure>                    <p><p>If you need to have a folder to hand, placing it in the Favorites section of Finder will make it much easier to find. All you need to do is identify the folder you need to pin and <strong>drag the folder to Favorites in the sidebar</strong>. </p><p>It will remain there until you <strong>control-click the folder</strong> and <strong>select Remove from Sidebar</strong>. You could also, if you wish, <strong>select Add to Dock</strong> for even easier access. Any folder can also be dragged to the right-side of the divider line in the Dock.</p></p>                </section><section class="howto-block">                    <h3>4. Rename multiple files</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/Xk4zGHSga44nedvpcMLHvi.png"                                        alt="5 Mac file and folder features that Apple buried"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/Xk4zGHSga44nedvpcMLHvi.png"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Future)</div></figure>                    <p><p>Renaming files individually is a real-pain and it’s also mightily time-consuming. But there is a hidden feature in Finder that allows you to rename them en masse. All you have to do is <strong>select a few files</strong> that you want to rename then <strong>control-click the files</strong> and <strong>select Rename</strong>.</p><p>You will see a number of options. <strong>Select replace text</strong> in the drop-down menu then <strong>enter the text you wish to remove in the Find field</strong> and <strong>enter the replacement text</strong>. </p><p>You can also <strong>add text to filenames</strong>. Just <strong>select Add text in the drop-down menu</strong> and <strong>enter the text that should appear in all of the filenames</strong>. You can then <strong>use the drop-down menu to select before name or after name </strong>depending on where you want that text to appear.</p><p>If you <strong>select Format</strong> in the first drop-down menu, you can also have macOS automatically rename all the files so they follow a particular convention. For example, you can <strong>enter a filename in Custom Format</strong> then <strong>select a name format </strong>and <strong>choose a set format</strong> (perhaps having each one numbered).</p></p>                </section><section class="howto-block">                    <h3>5. Password protect your folders</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/nXTLnH6QWAcnSEoRQcne6M.png"                                        alt="5 Mac file and folder features that Apple buried"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/nXTLnH6QWAcnSEoRQcne6M.png"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Future)</div></figure>                    <p><p>If you want to store sensitive information in a folder such as your financial details, you should consider protecting it with a password. You need to do this using the Disk Utility app: <strong>open the Apps app from the Dock</strong> and <strong>enter Disk Utility</strong> to find it.</p><p><strong>Go to File</strong> and <strong>select New Image</strong> then <strong>choose Image from Folder</strong>. Now look for and <strong>select the folder</strong> that you want to protect and <strong>click Choose</strong>. You can now <strong>choose the level of protection you require</strong>: 256-bit AES encryption is the best. <strong>Enter a password</strong> then <strong>click Save</strong>. The folder will turn into a disk image but if you <strong>click the disk image</strong> and <strong>enter the password</strong>, you will gain access.</p><p>It is also possible to lock a document. <strong>Select the document in Finder</strong> or on the desktop then <strong>control-click the document</strong> and <strong>select Get Info</strong>. You can then <strong>tick Locked</strong>.</p></p>                </section><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-XmowgW"></div>                            </div>                            <script src="https://kwizly.com/embed/XmowgW.js" async></script><ul><li><a href="http://tomsguide.com/computing/macos/getting-started-with-mac-shortcuts-how-to-find-use-and-create-time-saving-automations">Getting started with Mac Shortcuts — how to find, use and create time-saving automations</a></li><li><a href="https://www.tomsguide.com/computing/macos/ive-been-using-macs-for-years-here-are-3-power-user-tweaks-that-changed-everything">I've been using Macs for years — here are 3 power user tweaks that changed everything</a></li><li><a href="https://www.tomsguide.com/computing/you-can-customize-your-mac-wallpaper-in-5-easy-steps-heres-how">You can customize your Mac wallpaper in 5 easy steps — here's how</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ 'Google’s leaked Aluminum OS looks like the ChromeOS I've waited years for': why I might actually ditch Windows 11 ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Windows has always felt like a necessary evil. You could switch to Mac or Linux, but until very recently, that wasn’t a real option if you wanted to play games on your PC in addition to working on it. Now, between the clunky "Show more options" context menu addition, being required to log in using a Microsoft Account and Microsoft shoehorning AI via Copilot into every corner of its OS, many of us have finally reached a breaking point.</p><p>While I’ve been <a href="https://www.tomsguide.com/computing/mini-pcs/i-hated-the-mac-mini-m4s-power-button-until-i-accidentally-proved-apple-was-right">experimenting with the Mac mini M4</a>, I’m still just one <a href="https://www.tomsguide.com/computing/windows-operating-systems/how-to-fix-windows-11s-annoying-shutdown-bug-and-why-its-happening">botched Windows update</a> away from saying enough is enough and installing Linux on my PC. But there’s a third option that’s always been held back by its "web-only" reputation: ChromeOS. If you've used one of the <a href="https://www.tomsguide.com/best-picks/best-chromebooks">best Chromebooks</a> before, you’ve likely felt those limitations. And the second you try to do something outside of a browser window, the "Pro" experience vanishes.</p><p>That changed this week though. After years of rumors, we finally got a glimpse of Google’s upcoming <a href="https://www.tomsguide.com/computing/chromebooks/aluminium-os-tipped-to-be-googles-new-android-based-pc-operating-system">Aluminum OS</a> which aims to combine the best parts of ChromeOS with Android. Leaked images show a unified Android-based system that looks and acts like a "real" desktop, complete with native windowing and most importantly, a way to install local apps. As someone who has dreamed of a "ChromeOS Pro" for years now, I wonder if this new operating system will finally be good enough to let me ditch Windows for good.</p><h2 id="a-true-google-desktop">A true Google desktop</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="epk3qoDs7YVmFDJTDzHwFd" name="Monitor Light Bar-6.jpg" alt="A desk setup with a monitor light bar on top of the monitor" src="https://cdn.mos.cms.futurecdn.net/epk3qoDs7YVmFDJTDzHwFd.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>After testing out Neverware’s Chromium-based CloudReady OS a few years ago, I decided that when it came time to buy a new tablet, I’d go with a Chromebook instead. My reasoning at the time was simple: longevity. </p><p>Unlike the <a href="https://www.tomsguide.com/best-picks/best-android-tablets">best Android tablets</a> that might only see a couple of major OS updates, most Chromebooks are now officially supported for a full 10 years after their release, something you don’t see with practically any other device.</p><p>To that end, I bought a <a href="https://www.tomsguide.com/opinion/i-finally-got-the-right-stylus-for-my-chromebook-and-its-a-game-changer">Lenovo Chromebook Duet 3</a>. While I really love the versatility of this 2-in-1, I found myself constantly using it connected to a monitor; I am a desktop user at heart, after all. I did look into getting a Chromebox, but those mini-PCs always seemed to be few and far between, often carrying a premium price tag despite having lower specs than their Windows counterparts. It felt like I was stuck between a laptop I used as a desktop and a desktop that didn't quite exist.</p><p>With Google’s plan to merge Android into its computing platform, I expect we’ll see plenty of new laptops, but focusing only on portables would be a missed opportunity. People are fed up with Windows, yet they don’t necessarily want to spend their weekends <a href="https://www.tomsguide.com/opinion/windows-11-vs-macos-in-2024-will-be-a-mess-so-im-learning-linux">learning Linux</a> or lock themselves into Apple’s hardware ecosystem. </p><p>We’ve seen the <a href="https://www.tomsguide.com/computing/operating-systems/oops-google-accidentally-posted-a-first-look-at-its-unreleased-android-pc-operating-system">leaked screenshots of Aluminum OS</a> (internally called ALOS) running on existing Chromebook hardware like the <a href="https://www.tomsguide.com/news/the-hp-elite-dragonfly-g3-may-be-the-ultimate-hybrid-work-laptop">HP Elite Dragonfly</a> and so far, it looks like the "Pro" leap I’ve been waiting for. The taller status bar, centered taskbar, and proper window controls for minimizing and maximizing apps finally make Google’s software feel like it was built for a 27-inch monitor rather than just a 10-inch screen.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="gTpmxHR9wvVWLdKkJ7hwzP" name="duet 3 tablet mode.jpg" alt="Lenovo Duet 3 in tablet mode" src="https://cdn.mos.cms.futurecdn.net/gTpmxHR9wvVWLdKkJ7hwzP.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>We might have to wait a while for official details, as the <a href="https://www.tomsguide.com/phones/google-pixel-phones/made-by-google-2025-event">Made by Google</a> events have shifted from the fall to late summer — most recently landing in August. But just like when Apple released the iPad after the iPhone, Aluminum OS won’t be launching into a vacuum. </p><p>Since it’s built on an <a href="https://www.tomsguide.com/phones/android-phones/ive-been-using-android-16-for-two-weeks-heres-why-im-so-underwhelmed">Android 16</a> foundation, it will have immediate access to over 2 million apps on day one. Sure, some will need optimizations to feel truly "desktop-class," but for the first time, a Google desktop won't be starting from scratch. It will be starting with the largest app library on the planet.</p><h2 id="for-far-more-than-work">For far more than work</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="hg9bb3PKGbHgCUbuYqnQFA" name="Gaming on Chromebook-1-LEDE" alt="Samsung Galaxy Chromebook Plus playing Ninja Gaiden 2 Black with PS5 DualSense controller" src="https://cdn.mos.cms.futurecdn.net/hg9bb3PKGbHgCUbuYqnQFA.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future / Tom's Guide)</span></figcaption></figure><p>One thing that has always impressed me about ChromeOS is how lightweight it feels. This is true with other Linux-based operating systems too, because, while Windows loads everything you could potentially need at startup, Linux just loads what you actually need. </p><p>All of those extra background processes have long held back Windows gaming. In fact, on identical hardware like the <a href="https://www.tomsguide.com/gaming/handheld-gaming/lenovo-legion-go-s-hands-on-review">Lenovo Legion Go S</a>, recent 2026 benchmarks show that a lean Linux-based OS can get nearly 30% better frame rates in titles like <a href="https://www.tomsguide.com/reviews/cyberpunk-2077-phantom-liberty">Cyberpunk 2077</a> compared to Windows 11.</p><p>When designing its new <a href="https://www.tomsguide.com/gaming/pc-gaming/how-to-enable-xbox-full-screen-experience">Xbox Full Screen Experience</a> for PC gaming handhelds like the <a href="https://www.tomsguide.com/gaming/handheld-gaming/rog-xbox-ally-x-review">ROG Xbox Ally X</a> and the Legion Go S, Microsoft even went as far as to allow users to manually disable unnecessary background tasks and CPU boosting to try and claw back some performance. But even with those tweaks, Windows still struggles with efficiency. In indie games like Dead Cells, the same device can deliver over six hours of play on Linux, while on Windows 11, it will often die in under three.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Z3cqVeL8AwALPeT8mqSD8B" name="TG_Acer-Chromebook-516-GE_2.jpg" alt="Acer Chromebook 516 GE on desk" src="https://cdn.mos.cms.futurecdn.net/Z3cqVeL8AwALPeT8mqSD8B.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>With SteamOS on the Steam Deck, Valve did the hard work for everyone else by proving that, yes, Linux can play games just as well (or even better) than Windows 11. Now with the January 2026 release of Proton 10, roughly 90% of Windows games are able to run seamlessly on Linux-based systems.</p><p>So what does this mean for Google’s upcoming Aluminum OS? Well, the search giant would be making a serious misstep by not incorporating all of this hard work and tech into its new operating system. Yes, there are plenty of Android games — including a few impressive ports of AAA ones — but why limit users to playing mobile games when the majority of them would rather play full-fledged PC games?</p><p>Now, I would love for Aluminum OS devices to be based around X86 chips, but that’s highly unlikely. Instead, the majority of them will likely be powered by ARM-based chips like Qualcomm’s Snapdragon ones. Fortunately, Valve has been funding the open-source FEX-Emu project for seven years now, even paying its core developers to work on it full-time. </p><p>In the same way that Proton translates Windows games so they can run on Linux, FEX-Emu translates games written for X86 chips so that they can run on ARM chips. By using the two together, you can run a Windows game like <a href="https://www.tomsguide.com/news/witcher-3-is-getting-a-huge-upgrade-for-ps5-and-xbox-series-x-in-latter-2021-what-you-need-to-know">The Witcher 3</a> on a Linux system powered by an ARM chip with nearly native performance.</p><p>To avoid ChromeOS’ “web-only” stigma, Google will need to sell potential Aluminum OS users on its new operating system. What better way to do that than to tell them right out the gate that most, if not all, of their favorite PC games are supported?</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-W5rm3O"></div>                            </div>                            <script src="https://kwizly.com/embed/W5rm3O.js" async></script><h2 id="windows-in-the-rearview">Windows in the rearview</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="p4EYbySyHqVQhoTUeNqd5Z" name="Windows 11 Copilot" alt="Windows 11 Copilot" src="https://cdn.mos.cms.futurecdn.net/p4EYbySyHqVQhoTUeNqd5Z.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><div><blockquote><p>Windows 11 is starting to have its Vista moment thanks to all of Microsoft’s unnecessary changes and shoehorned AI</p></blockquote></div><p>Having used one of the <a href="https://www.tomsguide.com/us/best-android-phones,review-6051.html">best Android phones</a> since they first became available and with my experience using ChromeOS over the years, suffice it to say, I’m pretty excited about Aluminum OS. Users of Google’s mobile and its desktop operating system have longed for something a bit more — whether that be <a href="https://www.tomsguide.com/phones/i-just-tried-the-pixel-10s-secret-weapon-and-the-iphone-17-could-be-in-big-trouble">Desktop Mode on Android</a> or <a href="https://www.tomsguide.com/news/i-wanted-a-new-android-tablet-but-i-got-this-chromebook-tablet-instead">Android Apps on Chromebook</a> — for years now and we may finally be able to have our cake and eat it too. </p><p>That doesn’t mean that Aluminum OS won’t have its hiccups or its shortcomings. For instance, unlike with <a href="https://www.tomsguide.com/opinion/chromeos-flex">ChromeOS Flex</a>, I don’t think Google will let you install its new operating system on any PC capable of running it. Instead, like with ChromeOS, I reckon it will be locked to new hardware to entice people to ditch their old Chromebook or Android tablet and upgrade.</p><p>For the most part, this won’t be a problem for me when it comes to ditching Windows because after the crypto-fueled Great GPU Shortage of 2018 and more recently, the ongoing <a href="https://www.tomsguide.com/computing/ram-prices-are-exploding-heres-why-and-everything-you-need-to-know-about-surviving-ramageddon">RAM crisis</a>, I don’t build PCs like I used to. Instead, I’ve downsized to one of the <a href="https://www.tomsguide.com/us/best-mini-pc.html">best mini PCs</a> and this has served me quite well during the time since. Given how close Google and Qualcomm have gotten over the years and how the latter keeps showing off <a href="https://www.tomsguide.com/computing/cpus/qualcomm-is-finally-getting-serious-about-pc-gaming-and-its-snapdragon-x2-elite-chips-prove-it">mini PC concepts</a>, I wouldn’t be surprised to see a desktop computer powered by a Snapdragon chip running Aluminum OS. This would be more than enough for my day to day workload and hopefully, some real PC gaming.</p><p>Still, I’d love a Windows alternative that lets me bring my own hardware. Even though I will need to finally learn some Linux, Valve’s own SteamOS seems like the anti-Aluminum OS, Windows alternative that will scratch that itch. Who knows, maybe I will build a new gaming PC if the <a href="https://www.tomsguide.com/gaming/pc-gaming/i-might-ditch-my-gaming-pc-for-the-steam-machine-heres-why">Steam Machine</a> doesn’t quite meet my expectations.</p><p>While good enough, Windows 11 is starting to have its Vista moment thanks to all of Microsoft’s unnecessary changes, constant OneDrive upgrade prompts and shoehorned AI. Windows has served me well for decades but if Google really nails it, Aluminum OS could easily become my daily driver, especially if it’s as good for work as it is for gaming.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/pc-gaming/i-tried-gaming-on-linux-and-its-better-and-worse-than-you-think">I tried gaming on Linux — and it's better (and worse) than you think</a></li><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/7-free-windows-apps-i-install-first-on-every-laptop-i-review">7 Windows 11 apps I install first on every laptop and desktop PC I review</a></li><li><a href="https://www.tomsguide.com/computing/mini-pcs/i-just-went-hands-on-with-lenovos-new-mini-pc-and-the-yoga-mini-i-could-be-the-perfect-companion-for-your-desk">I  went hands-on with Lenovo’s new Yoga Mini i mini PC and it could be the perfect companion for your desk</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/operating-systems/googles-leaked-aluminum-os-might-be-the-chromeos-pro-ive-waited-years-for-is-it-finally-time-to-ditch-windows-11-for-good</link>
                                                                            <description>
                            <![CDATA[ Windows 11 is at a breaking point, but Google’s newly leaked Aluminum OS could finally deliver the "Pro" desktop and gaming alternative I’ve been waiting for. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">d6WhU9D8EZCJg4XM2G9rFJ</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/mRM9HNcYmd8BGYbW8oSnLU-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 31 Jan 2026 07:30:00 +0000</pubDate>                                                                                                                                <updated>Sat, 31 Jan 2026 18:49:47 +0000</updated>
                                                                                                                                            <category><![CDATA[Operating Systems]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                                                                <author><![CDATA[ anthony.spadafora@futurenet.com (Anthony Spadafora) ]]></author>                    <dc:creator><![CDATA[ Anthony Spadafora ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/z73LEoj7FkUjNG85GcWHtH.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Anthony Spadafora is the managing editor for security and home office furniture at Tom’s Guide where he covers everything from data breaches and malware to password managers and the best way to cover your whole home or business with a strong Wi-Fi signal.&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Before joining the team, he spent three years covering cybersecurity and B2B tech for ITProPortal while living in South Korea. After moving back to the US. Anthony joined the TechRadar Pro team where he covered these topics along with VPNs, web hosting, online collaboration software and video conferencing for four years. Anthony also has his ears to the ground and is on the lookout for the next major cyberattack or data breach.&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Based in Houston, Texas, Anthony also handles VPN testing for both Tom’s Guide and TechRadar. As someone who has worked from home exclusively since 2018, he has reviewed dozens of standing desks as well as office chairs and has taken a closer look at other essential remote working accessories. As part of these reviews, Anthony frequently builds intricate desk setups which is why he’s such a big advocate for cable management and keeping things organized. When he’s not writing, he can be found tinkering with PCs and game consoles, managing cables and making upgrades to his smart home.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/mRM9HNcYmd8BGYbW8oSnLU-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Chrome OS vs Windows 11]]></media:description>                                                            <media:text><![CDATA[Chrome OS vs Windows 11]]></media:text>
                                <media:title type="plain"><![CDATA[Chrome OS vs Windows 11]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/mRM9HNcYmd8BGYbW8oSnLU-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Windows has always felt like a necessary evil. You could switch to Mac or Linux, but until very recently, that wasn’t a real option if you wanted to play games on your PC in addition to working on it. Now, between the clunky "Show more options" context menu addition, being required to log in using a Microsoft Account and Microsoft shoehorning AI via Copilot into every corner of its OS, many of us have finally reached a breaking point.</p><p>While I’ve been <a href="https://www.tomsguide.com/computing/mini-pcs/i-hated-the-mac-mini-m4s-power-button-until-i-accidentally-proved-apple-was-right">experimenting with the Mac mini M4</a>, I’m still just one <a href="https://www.tomsguide.com/computing/windows-operating-systems/how-to-fix-windows-11s-annoying-shutdown-bug-and-why-its-happening">botched Windows update</a> away from saying enough is enough and installing Linux on my PC. But there’s a third option that’s always been held back by its "web-only" reputation: ChromeOS. If you've used one of the <a href="https://www.tomsguide.com/best-picks/best-chromebooks">best Chromebooks</a> before, you’ve likely felt those limitations. And the second you try to do something outside of a browser window, the "Pro" experience vanishes.</p><p>That changed this week though. After years of rumors, we finally got a glimpse of Google’s upcoming <a href="https://www.tomsguide.com/computing/chromebooks/aluminium-os-tipped-to-be-googles-new-android-based-pc-operating-system">Aluminum OS</a> which aims to combine the best parts of ChromeOS with Android. Leaked images show a unified Android-based system that looks and acts like a "real" desktop, complete with native windowing and most importantly, a way to install local apps. As someone who has dreamed of a "ChromeOS Pro" for years now, I wonder if this new operating system will finally be good enough to let me ditch Windows for good.</p><h2 id="a-true-google-desktop">A true Google desktop</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="epk3qoDs7YVmFDJTDzHwFd" name="Monitor Light Bar-6.jpg" alt="A desk setup with a monitor light bar on top of the monitor" src="https://cdn.mos.cms.futurecdn.net/epk3qoDs7YVmFDJTDzHwFd.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>After testing out Neverware’s Chromium-based CloudReady OS a few years ago, I decided that when it came time to buy a new tablet, I’d go with a Chromebook instead. My reasoning at the time was simple: longevity. </p><p>Unlike the <a href="https://www.tomsguide.com/best-picks/best-android-tablets">best Android tablets</a> that might only see a couple of major OS updates, most Chromebooks are now officially supported for a full 10 years after their release, something you don’t see with practically any other device.</p><p>To that end, I bought a <a href="https://www.tomsguide.com/opinion/i-finally-got-the-right-stylus-for-my-chromebook-and-its-a-game-changer">Lenovo Chromebook Duet 3</a>. While I really love the versatility of this 2-in-1, I found myself constantly using it connected to a monitor; I am a desktop user at heart, after all. I did look into getting a Chromebox, but those mini-PCs always seemed to be few and far between, often carrying a premium price tag despite having lower specs than their Windows counterparts. It felt like I was stuck between a laptop I used as a desktop and a desktop that didn't quite exist.</p><p>With Google’s plan to merge Android into its computing platform, I expect we’ll see plenty of new laptops, but focusing only on portables would be a missed opportunity. People are fed up with Windows, yet they don’t necessarily want to spend their weekends <a href="https://www.tomsguide.com/opinion/windows-11-vs-macos-in-2024-will-be-a-mess-so-im-learning-linux">learning Linux</a> or lock themselves into Apple’s hardware ecosystem. </p><p>We’ve seen the <a href="https://www.tomsguide.com/computing/operating-systems/oops-google-accidentally-posted-a-first-look-at-its-unreleased-android-pc-operating-system">leaked screenshots of Aluminum OS</a> (internally called ALOS) running on existing Chromebook hardware like the <a href="https://www.tomsguide.com/news/the-hp-elite-dragonfly-g3-may-be-the-ultimate-hybrid-work-laptop">HP Elite Dragonfly</a> and so far, it looks like the "Pro" leap I’ve been waiting for. The taller status bar, centered taskbar, and proper window controls for minimizing and maximizing apps finally make Google’s software feel like it was built for a 27-inch monitor rather than just a 10-inch screen.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="gTpmxHR9wvVWLdKkJ7hwzP" name="duet 3 tablet mode.jpg" alt="Lenovo Duet 3 in tablet mode" src="https://cdn.mos.cms.futurecdn.net/gTpmxHR9wvVWLdKkJ7hwzP.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>We might have to wait a while for official details, as the <a href="https://www.tomsguide.com/phones/google-pixel-phones/made-by-google-2025-event">Made by Google</a> events have shifted from the fall to late summer — most recently landing in August. But just like when Apple released the iPad after the iPhone, Aluminum OS won’t be launching into a vacuum. </p><p>Since it’s built on an <a href="https://www.tomsguide.com/phones/android-phones/ive-been-using-android-16-for-two-weeks-heres-why-im-so-underwhelmed">Android 16</a> foundation, it will have immediate access to over 2 million apps on day one. Sure, some will need optimizations to feel truly "desktop-class," but for the first time, a Google desktop won't be starting from scratch. It will be starting with the largest app library on the planet.</p><h2 id="for-far-more-than-work">For far more than work</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="hg9bb3PKGbHgCUbuYqnQFA" name="Gaming on Chromebook-1-LEDE" alt="Samsung Galaxy Chromebook Plus playing Ninja Gaiden 2 Black with PS5 DualSense controller" src="https://cdn.mos.cms.futurecdn.net/hg9bb3PKGbHgCUbuYqnQFA.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future / Tom's Guide)</span></figcaption></figure><p>One thing that has always impressed me about ChromeOS is how lightweight it feels. This is true with other Linux-based operating systems too, because, while Windows loads everything you could potentially need at startup, Linux just loads what you actually need. </p><p>All of those extra background processes have long held back Windows gaming. In fact, on identical hardware like the <a href="https://www.tomsguide.com/gaming/handheld-gaming/lenovo-legion-go-s-hands-on-review">Lenovo Legion Go S</a>, recent 2026 benchmarks show that a lean Linux-based OS can get nearly 30% better frame rates in titles like <a href="https://www.tomsguide.com/reviews/cyberpunk-2077-phantom-liberty">Cyberpunk 2077</a> compared to Windows 11.</p><p>When designing its new <a href="https://www.tomsguide.com/gaming/pc-gaming/how-to-enable-xbox-full-screen-experience">Xbox Full Screen Experience</a> for PC gaming handhelds like the <a href="https://www.tomsguide.com/gaming/handheld-gaming/rog-xbox-ally-x-review">ROG Xbox Ally X</a> and the Legion Go S, Microsoft even went as far as to allow users to manually disable unnecessary background tasks and CPU boosting to try and claw back some performance. But even with those tweaks, Windows still struggles with efficiency. In indie games like Dead Cells, the same device can deliver over six hours of play on Linux, while on Windows 11, it will often die in under three.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Z3cqVeL8AwALPeT8mqSD8B" name="TG_Acer-Chromebook-516-GE_2.jpg" alt="Acer Chromebook 516 GE on desk" src="https://cdn.mos.cms.futurecdn.net/Z3cqVeL8AwALPeT8mqSD8B.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>With SteamOS on the Steam Deck, Valve did the hard work for everyone else by proving that, yes, Linux can play games just as well (or even better) than Windows 11. Now with the January 2026 release of Proton 10, roughly 90% of Windows games are able to run seamlessly on Linux-based systems.</p><p>So what does this mean for Google’s upcoming Aluminum OS? Well, the search giant would be making a serious misstep by not incorporating all of this hard work and tech into its new operating system. Yes, there are plenty of Android games — including a few impressive ports of AAA ones — but why limit users to playing mobile games when the majority of them would rather play full-fledged PC games?</p><p>Now, I would love for Aluminum OS devices to be based around X86 chips, but that’s highly unlikely. Instead, the majority of them will likely be powered by ARM-based chips like Qualcomm’s Snapdragon ones. Fortunately, Valve has been funding the open-source FEX-Emu project for seven years now, even paying its core developers to work on it full-time. </p><p>In the same way that Proton translates Windows games so they can run on Linux, FEX-Emu translates games written for X86 chips so that they can run on ARM chips. By using the two together, you can run a Windows game like <a href="https://www.tomsguide.com/news/witcher-3-is-getting-a-huge-upgrade-for-ps5-and-xbox-series-x-in-latter-2021-what-you-need-to-know">The Witcher 3</a> on a Linux system powered by an ARM chip with nearly native performance.</p><p>To avoid ChromeOS’ “web-only” stigma, Google will need to sell potential Aluminum OS users on its new operating system. What better way to do that than to tell them right out the gate that most, if not all, of their favorite PC games are supported?</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-W5rm3O"></div>                            </div>                            <script src="https://kwizly.com/embed/W5rm3O.js" async></script><h2 id="windows-in-the-rearview">Windows in the rearview</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="p4EYbySyHqVQhoTUeNqd5Z" name="Windows 11 Copilot" alt="Windows 11 Copilot" src="https://cdn.mos.cms.futurecdn.net/p4EYbySyHqVQhoTUeNqd5Z.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><div><blockquote><p>Windows 11 is starting to have its Vista moment thanks to all of Microsoft’s unnecessary changes and shoehorned AI</p></blockquote></div><p>Having used one of the <a href="https://www.tomsguide.com/us/best-android-phones,review-6051.html">best Android phones</a> since they first became available and with my experience using ChromeOS over the years, suffice it to say, I’m pretty excited about Aluminum OS. Users of Google’s mobile and its desktop operating system have longed for something a bit more — whether that be <a href="https://www.tomsguide.com/phones/i-just-tried-the-pixel-10s-secret-weapon-and-the-iphone-17-could-be-in-big-trouble">Desktop Mode on Android</a> or <a href="https://www.tomsguide.com/news/i-wanted-a-new-android-tablet-but-i-got-this-chromebook-tablet-instead">Android Apps on Chromebook</a> — for years now and we may finally be able to have our cake and eat it too. </p><p>That doesn’t mean that Aluminum OS won’t have its hiccups or its shortcomings. For instance, unlike with <a href="https://www.tomsguide.com/opinion/chromeos-flex">ChromeOS Flex</a>, I don’t think Google will let you install its new operating system on any PC capable of running it. Instead, like with ChromeOS, I reckon it will be locked to new hardware to entice people to ditch their old Chromebook or Android tablet and upgrade.</p><p>For the most part, this won’t be a problem for me when it comes to ditching Windows because after the crypto-fueled Great GPU Shortage of 2018 and more recently, the ongoing <a href="https://www.tomsguide.com/computing/ram-prices-are-exploding-heres-why-and-everything-you-need-to-know-about-surviving-ramageddon">RAM crisis</a>, I don’t build PCs like I used to. Instead, I’ve downsized to one of the <a href="https://www.tomsguide.com/us/best-mini-pc.html">best mini PCs</a> and this has served me quite well during the time since. Given how close Google and Qualcomm have gotten over the years and how the latter keeps showing off <a href="https://www.tomsguide.com/computing/cpus/qualcomm-is-finally-getting-serious-about-pc-gaming-and-its-snapdragon-x2-elite-chips-prove-it">mini PC concepts</a>, I wouldn’t be surprised to see a desktop computer powered by a Snapdragon chip running Aluminum OS. This would be more than enough for my day to day workload and hopefully, some real PC gaming.</p><p>Still, I’d love a Windows alternative that lets me bring my own hardware. Even though I will need to finally learn some Linux, Valve’s own SteamOS seems like the anti-Aluminum OS, Windows alternative that will scratch that itch. Who knows, maybe I will build a new gaming PC if the <a href="https://www.tomsguide.com/gaming/pc-gaming/i-might-ditch-my-gaming-pc-for-the-steam-machine-heres-why">Steam Machine</a> doesn’t quite meet my expectations.</p><p>While good enough, Windows 11 is starting to have its Vista moment thanks to all of Microsoft’s unnecessary changes, constant OneDrive upgrade prompts and shoehorned AI. Windows has served me well for decades but if Google really nails it, Aluminum OS could easily become my daily driver, especially if it’s as good for work as it is for gaming.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/pc-gaming/i-tried-gaming-on-linux-and-its-better-and-worse-than-you-think">I tried gaming on Linux — and it's better (and worse) than you think</a></li><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/7-free-windows-apps-i-install-first-on-every-laptop-i-review">7 Windows 11 apps I install first on every laptop and desktop PC I review</a></li><li><a href="https://www.tomsguide.com/computing/mini-pcs/i-just-went-hands-on-with-lenovos-new-mini-pc-and-the-yoga-mini-i-could-be-the-perfect-companion-for-your-desk">I  went hands-on with Lenovo’s new Yoga Mini i mini PC and it could be the perfect companion for your desk</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Microsoft is reportedly 'pulling back' on stuffing Windows 11 with AI — and I couldn't be happier ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Is Microsoft finally starting to see the light? It’s no secret that the company’s obsession with AI has gone over about as well as a lead balloon with the Windows faithful. </p><p>For the past year, it has felt like every update was less about making our lives easier and more about cramming <a href="https://www.tomsguide.com/news/what-is-microsoft-copilot-heres-everything-it-can-do">Copilot</a> into every nook and cranny of <a href="https://www.tomsguide.com/reviews/windows-11">Windows 11</a>. The backlash has been so loud and so consistent that a specific, none-too-flattering nickname has been trending across social media: "<a href="https://www.tomsguide.com/computing/windows-operating-systems/we-need-to-improve-windows-in-ways-that-are-meaningful-for-people-microsoft-is-urgently-trying-to-fix-windows-11-issues">MicroSlop</a>."</p><p>It’s a harsh term, but it perfectly captures the exhaustion of a user base that feels like their OS is being filled with non-essential AI features at the expense of stability, privacy, and common sense. </p><p>Whether it’s unwanted buttons in the taskbar or AI-powered "assistance" in apps that don’t need it, the sentiment is clear: people are tired of AI being shoved in their faces.</p><h2 id="turning-the-page-on-ai">Turning the page on AI?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="FqarYKz57mmd5iPY8NyR4Z" name="Windows 11 Copilot" alt="Windows 11 Copilot" src="https://cdn.mos.cms.futurecdn.net/FqarYKz57mmd5iPY8NyR4Z.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Wall Street seems to agree, too. <a href="https://www.businessinsider.com/stock-market-today-tech-selloff-microsoft-earnings-capex-sp500-nasdaq-2026-1" target="_blank">Microsoft’s stock just took a massive 10% nosedive</a> — its biggest single-day drop since the 2020 crash. </p><p>That's $400 billion in market value, and the equivalent of McDonald's, Burger King, Coca-Cola and Starbucks all going to zero overnight. Turns out investors aren't too happy with their returns on AI spending!</p><p>Thankfully, the message seems to have reached the higher-ups in Redmond. According to a new report from Zack Bowden over at <a href="https://www.windowscentral.com/microsoft/windows-11/microsoft-is-reevaluating-its-ai-efforts-on-windows-11-plans-to-reduce-copilot-integrations-and-evolve-recall" target="_blank">Windows Central</a>, Microsoft is reevaluating its AI strategy for Windows 11. </p><p>Citing sources familiar with the company's plans, Bowden details how Microsoft is looking to streamline — or outright remove — Copilot integrations across several "in-box" apps like Notepad and Paint starting in 2026.</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2015948530578587699"><p lang="en" dir="ltr">I was prompted to sign into mspaint today.@Microsoft when you look back and wonder what went wrong for Windows... It was this. This is what went wrong. pic.twitter.com/RjGUPDWjXW<a href="https://twitter.com/cantworkitout/status/2015948530578587699">January 27, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>The report suggests that internal teams have realized that haphazardly slapping a Copilot icon on every UI surface isn't actually helping anyone. In fact, Microsoft has reportedly paused work on adding new Copilot buttons to other built-in apps, signaling a shift toward being more "tactful and deliberate" with where AI actually appears.</p><h2 id="recalling-recall">Recalling Recall</h2><p>The biggest admission of defeat may involve <a href="https://www.tomsguide.com/computing/windows-operating-systems/microsofts-controversial-recall-is-back-but-only-if-youre-a-windows-insider">Windows Recall</a>. According to Bowden’s sources, Microsoft internally views the current implementation of Recall as a failure. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2880px;"><p class="vanilla-image-block" style="padding-top:62.50%;"><img id="JGTTNfSFRwGWcBghnAuX3Y" name="Windows 11 Copilot" alt="Windows 11 Copilot" src="https://cdn.mos.cms.futurecdn.net/JGTTNfSFRwGWcBghnAuX3Y.jpg" mos="" align="middle" fullscreen="" width="2880" height="1800" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>While the company isn't scrapping the "photographic memory" concept entirely, they are reportedly looking to evolve it into something else — possibly even dropping the tainted "Recall" branding in the process.</p><p>While under-the-hood AI efforts like Semantic Search and new APIs for developers are still moving ahead, the heavy-handed, front-facing AI features that have annoyed so many of us are potentially on the chopping block.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-Xmo70W"></div>                            </div>                            <script src="https://kwizly.com/embed/Xmo70W.js" async></script><h2 id="outlook-5">Outlook</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="p4EYbySyHqVQhoTUeNqd5Z" name="Windows 11 Copilot" alt="Windows 11 Copilot" src="https://cdn.mos.cms.futurecdn.net/p4EYbySyHqVQhoTUeNqd5Z.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>I’ve been a Windows user since the late 90s—I've lived through the highs of Windows XP and 7, and the dark days of Vista and 8. </p><p>But even as a long-term fan, I’m getting fed up with how bloated and sluggish the OS has become in recent years. Every time I open a simple text editor or try to find a file, I don't want a digital assistant trying to sell me on a "smarter" way to work.</p><p>I honestly hope this reevaluation is the real deal. Lessening these forced AI integrations would go a long way in making Windows feel like a tool again, rather than an advertising platform for Microsoft’s latest buzzword. </p><p>If Redmond actually follows through on cleaning up the "slop" and focuses on making the core OS fast and reliable, it might finally regain the trust of users like me who just want a clean place to get work done.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/windows-is-40-today-heres-the-20-best-and-worst-moments-in-windows-history">Windows turns 40 — here's the 20 best (and worst) moments in Windows history</a></li><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/pc-taking-forever-to-boot-heres-how-to-speed-it-up">These hidden Windows settings cut my boot time in half — and they're already on your PC</a></li><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/7-free-windows-apps-i-install-first-on-every-laptop-i-review">7 Windows 11 apps I install first on every laptop and desktop PC I review</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/windows-operating-systems/microsoft-is-reportedly-pulling-back-on-stuffing-windows-11-with-ai-and-i-couldnt-be-happier</link>
                                                                            <description>
                            <![CDATA[ Microsoft is reportedly scaling back AI in Windows 11 after the "MicroSlop" backlash. Here's what the report claims. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">jp4MxpbLUKe5p8GfkXaHWi</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/3ARpwRJTsfivWXJxkCV8hh-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 30 Jan 2026 16:20:07 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Windows Operating Systems]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                                                                <author><![CDATA[ tony.polanco@futurenet.com (Tony Polanco) ]]></author>                    <dc:creator><![CDATA[ Tony Polanco ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/atzRNqFt5wYgEUPBDahWsD.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/3ARpwRJTsfivWXJxkCV8hh-1280-80.jpg">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Windows 11 Copilot]]></media:description>                                                            <media:text><![CDATA[Windows 11 Copilot]]></media:text>
                                <media:title type="plain"><![CDATA[Windows 11 Copilot]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/3ARpwRJTsfivWXJxkCV8hh-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Is Microsoft finally starting to see the light? It’s no secret that the company’s obsession with AI has gone over about as well as a lead balloon with the Windows faithful. </p><p>For the past year, it has felt like every update was less about making our lives easier and more about cramming <a href="https://www.tomsguide.com/news/what-is-microsoft-copilot-heres-everything-it-can-do">Copilot</a> into every nook and cranny of <a href="https://www.tomsguide.com/reviews/windows-11">Windows 11</a>. The backlash has been so loud and so consistent that a specific, none-too-flattering nickname has been trending across social media: "<a href="https://www.tomsguide.com/computing/windows-operating-systems/we-need-to-improve-windows-in-ways-that-are-meaningful-for-people-microsoft-is-urgently-trying-to-fix-windows-11-issues">MicroSlop</a>."</p><p>It’s a harsh term, but it perfectly captures the exhaustion of a user base that feels like their OS is being filled with non-essential AI features at the expense of stability, privacy, and common sense. </p><p>Whether it’s unwanted buttons in the taskbar or AI-powered "assistance" in apps that don’t need it, the sentiment is clear: people are tired of AI being shoved in their faces.</p><h2 id="turning-the-page-on-ai">Turning the page on AI?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="FqarYKz57mmd5iPY8NyR4Z" name="Windows 11 Copilot" alt="Windows 11 Copilot" src="https://cdn.mos.cms.futurecdn.net/FqarYKz57mmd5iPY8NyR4Z.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Wall Street seems to agree, too. <a href="https://www.businessinsider.com/stock-market-today-tech-selloff-microsoft-earnings-capex-sp500-nasdaq-2026-1" target="_blank">Microsoft’s stock just took a massive 10% nosedive</a> — its biggest single-day drop since the 2020 crash. </p><p>That's $400 billion in market value, and the equivalent of McDonald's, Burger King, Coca-Cola and Starbucks all going to zero overnight. Turns out investors aren't too happy with their returns on AI spending!</p><p>Thankfully, the message seems to have reached the higher-ups in Redmond. According to a new report from Zack Bowden over at <a href="https://www.windowscentral.com/microsoft/windows-11/microsoft-is-reevaluating-its-ai-efforts-on-windows-11-plans-to-reduce-copilot-integrations-and-evolve-recall" target="_blank">Windows Central</a>, Microsoft is reevaluating its AI strategy for Windows 11. </p><p>Citing sources familiar with the company's plans, Bowden details how Microsoft is looking to streamline — or outright remove — Copilot integrations across several "in-box" apps like Notepad and Paint starting in 2026.</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2015948530578587699"><p lang="en" dir="ltr">I was prompted to sign into mspaint today.@Microsoft when you look back and wonder what went wrong for Windows... It was this. This is what went wrong. pic.twitter.com/RjGUPDWjXW<a href="https://twitter.com/cantworkitout/status/2015948530578587699">January 27, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>The report suggests that internal teams have realized that haphazardly slapping a Copilot icon on every UI surface isn't actually helping anyone. In fact, Microsoft has reportedly paused work on adding new Copilot buttons to other built-in apps, signaling a shift toward being more "tactful and deliberate" with where AI actually appears.</p><h2 id="recalling-recall">Recalling Recall</h2><p>The biggest admission of defeat may involve <a href="https://www.tomsguide.com/computing/windows-operating-systems/microsofts-controversial-recall-is-back-but-only-if-youre-a-windows-insider">Windows Recall</a>. According to Bowden’s sources, Microsoft internally views the current implementation of Recall as a failure. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2880px;"><p class="vanilla-image-block" style="padding-top:62.50%;"><img id="JGTTNfSFRwGWcBghnAuX3Y" name="Windows 11 Copilot" alt="Windows 11 Copilot" src="https://cdn.mos.cms.futurecdn.net/JGTTNfSFRwGWcBghnAuX3Y.jpg" mos="" align="middle" fullscreen="" width="2880" height="1800" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>While the company isn't scrapping the "photographic memory" concept entirely, they are reportedly looking to evolve it into something else — possibly even dropping the tainted "Recall" branding in the process.</p><p>While under-the-hood AI efforts like Semantic Search and new APIs for developers are still moving ahead, the heavy-handed, front-facing AI features that have annoyed so many of us are potentially on the chopping block.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-Xmo70W"></div>                            </div>                            <script src="https://kwizly.com/embed/Xmo70W.js" async></script><h2 id="outlook-5">Outlook</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="p4EYbySyHqVQhoTUeNqd5Z" name="Windows 11 Copilot" alt="Windows 11 Copilot" src="https://cdn.mos.cms.futurecdn.net/p4EYbySyHqVQhoTUeNqd5Z.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>I’ve been a Windows user since the late 90s—I've lived through the highs of Windows XP and 7, and the dark days of Vista and 8. </p><p>But even as a long-term fan, I’m getting fed up with how bloated and sluggish the OS has become in recent years. Every time I open a simple text editor or try to find a file, I don't want a digital assistant trying to sell me on a "smarter" way to work.</p><p>I honestly hope this reevaluation is the real deal. Lessening these forced AI integrations would go a long way in making Windows feel like a tool again, rather than an advertising platform for Microsoft’s latest buzzword. </p><p>If Redmond actually follows through on cleaning up the "slop" and focuses on making the core OS fast and reliable, it might finally regain the trust of users like me who just want a clean place to get work done.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/windows-is-40-today-heres-the-20-best-and-worst-moments-in-windows-history">Windows turns 40 — here's the 20 best (and worst) moments in Windows history</a></li><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/pc-taking-forever-to-boot-heres-how-to-speed-it-up">These hidden Windows settings cut my boot time in half — and they're already on your PC</a></li><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/7-free-windows-apps-i-install-first-on-every-laptop-i-review">7 Windows 11 apps I install first on every laptop and desktop PC I review</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ 'We need to improve Windows in ways that are meaningful for people': Microsoft is urgently trying to fix Windows 11 issues ]]></title>
                                                                                                <dc:content><![CDATA[ <p>After years of warning, <a href="https://www.tomsguide.com/news/live/windows-10-end-of-support-2025">Windows 10 reaches the end of life</a> in October 2025, and <a href="https://www.tomsguide.com/computing/windows-operating-systems/5-things-i-wish-i-knew-about-windows-11-when-i-upgraded-from-windows-10">Windows 11 </a>becomes the supported and default Microsoft operating system. Unfortunately, that transition has not been smooth or friendly to PC users. </p><p><a href="https://www.theverge.com/tech/870045/microsoft-windows-11-issues-rebuilding-trust-notepad" target="_blank">The Verge's Tom Warren</a> just released a massive new report saying that Microsoft is shifting its engineers to focus on resolving core issues with Windows 11 in an attempt to win back customer trust.</p><p>There are a lot of details about what's coming, and you should read Warren's article, but here's what you need to know.</p><p>“The feedback we’re receiving from our community of passionate customers and Windows Insiders has been clear. We need to improve Windows in ways that are meaningful for people,” Pavan Davuluri, president of Windows and devices, told Warren.</p><h2 id="running-list-of-issues">Running list of issues</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="WWfVQoKyhS6ocSop9eu59R" name="Windows 11 laptop.jpg" alt="Windows 11" src="https://cdn.mos.cms.futurecdn.net/WWfVQoKyhS6ocSop9eu59R.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft)</span></figcaption></figure><p>Earlier this month, the company released its <a href="https://www.tomsguide.com/computing/online-security/microsofts-first-patch-tuesday-of-2026-fixes-over-100-bugs-and-one-active-zero-day-flaw-dont-wait-to-update-your-pc">first 2026 patch</a> that was meant to fix over 100 bugs, a fairly common monthly release. That <a href="https://www.tomsguide.com/computing/microsoft-needed-a-win-with-windows-latest-update-but-even-its-fix-needed-fixing">patch was so broken</a> that it introduced new bugs, including one that made it impossible to actually shut down your computer.</p><p>Between an infusion of seemingly unwanted AI, like the ongoing failure that is Recall, so much so that Microsoft has a new "Microslop" nickname. CEO Satya Nadella has begged people to stop calling AI slop.</p><p>Plus, the company has inserted advertisements into core Windows 11 functions, reportedly upsetting customers. </p><h2 id="how-will-things-get-fixed">How will things get fixed?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:56.70%;"><img id="Xk63uudefpEpXrxZN3csEf" name="windows-10-bsod-shst.jpg" alt="A flatscreen monitor displays the Windows 10 'blue screen of death' indicating a system failure." src="https://cdn.mos.cms.futurecdn.net/Xk63uudefpEpXrxZN3csEf.jpg" mos="" align="middle" fullscreen="" width="1000" height="567" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: dennizn/Shutterstock)</span></figcaption></figure><p>Apparently, Microsoft has been tight-lipped about how it plans to improve Windows 11, but is using a process called "swarming," where teams of engineers are redirected to urgently solve Windows 11 performance issues.</p><p>"This year you will see us focus on addressing pain points we hear consistently from customers: improving system performance, reliability, and the overall experience of Windows," Davuluri said.</p><p>Windows is a dominant force in the computing world, from daily consumers to businesses. Even so, the missteps surrounding Windows 11 have eroded Microsoft's standing.</p><p>Tom's Guide will be tracking what Microsoft does this year to see if the engineers are capable of righting the boat. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/news/live/microsoft-q2-earnings-2026">Microsoft earnings — 'You can think of agents as the new apps,' CEO Satya Nadella</a></li><li><a href="https://www.tomsguide.com/computing/microsoft-365-more-like-microsoft-364-why-yesterdays-outage-proves-these-companies-dont-yet-have-a-backup-plan-for-the-internet">Microsoft 365 outages prove cloud services are only one glitch away from chaos, and they still don't have a backup plan for the internet</a></li><li><a href="https://www.tomsguide.com/ai/microsoft-office-is-getting-a-major-ai-overhaul-here-are-all-the-new-updates-coming-soon">Microsoft Office is getting a major AI overhaul — here are all the new updates coming soon</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/windows-operating-systems/we-need-to-improve-windows-in-ways-that-are-meaningful-for-people-microsoft-is-urgently-trying-to-fix-windows-11-issues</link>
                                                                            <description>
                            <![CDATA[ A new report reveals that Microsoft has shifted engineers to solving core issues with Windows 11 that have eroded trust. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">bVifFjzCN5LV6wEJufUAEL</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/BrFuwLRkhyq2A9cuAHy5TG-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 29 Jan 2026 19:53:10 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Windows Operating Systems]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                                                                <author><![CDATA[ scott.younker@futurenet.com (Scott Younker) ]]></author>                    <dc:creator><![CDATA[ Scott Younker ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/RZsUpqcJ6Uj2q83oCUwNhQ.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Scott Younker is the West Coast Reporter at Tom’s Guide. He covers all the latest tech news, including phones, computing and more. He’s been involved in tech since 2011 covering everything from cameras and swimming pool equipment to the latest gaming consoles and smart TVs. He is on a seemingly never ending hunt to build the easiest to use home media system. &lt;/p&gt;&lt;p&gt;Before Tom’s Guide, Scott worked for publications like &lt;em&gt;Digital Trends, Outdoor Photographer, Dead Beats Panel&lt;/em&gt;, and in a brief detour, &lt;em&gt;America’s Funniest Home Videos&lt;/em&gt;. Yes, he has seen more pratfalls, silly pets and ridiculous home movie fails than is reasonably healthy. &lt;/p&gt;&lt;p&gt;When not writing about the latest devices or advances in chipsets, be sure to ask about Scott about disc golf and sustainability, or just if you’re being cheeky, ask about his noodle arm. If you truly want to get nerdy, bring up board games and his ongoing losing streak. &lt;/p&gt;&lt;p&gt;Scott joined Tom&#039;s Guide in 2024 as the West Coast Reporter. He graduated from the School of Journalism at the University of Oregon with a degree in magazine journalism and a minor in communications. While there he blogged or wrote for several magazines including the Fluxx, Ethos and the Oregon Commentator. He briefly wrote and managed a moderately successful blog focused on web comics. &lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/BrFuwLRkhyq2A9cuAHy5TG-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[The Windows 11 logo seen through a digital magnifying glass ]]></media:description>                                                            <media:text><![CDATA[The Windows 11 logo seen through a digital magnifying glass ]]></media:text>
                                <media:title type="plain"><![CDATA[The Windows 11 logo seen through a digital magnifying glass ]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/BrFuwLRkhyq2A9cuAHy5TG-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>After years of warning, <a href="https://www.tomsguide.com/news/live/windows-10-end-of-support-2025">Windows 10 reaches the end of life</a> in October 2025, and <a href="https://www.tomsguide.com/computing/windows-operating-systems/5-things-i-wish-i-knew-about-windows-11-when-i-upgraded-from-windows-10">Windows 11 </a>becomes the supported and default Microsoft operating system. Unfortunately, that transition has not been smooth or friendly to PC users. </p><p><a href="https://www.theverge.com/tech/870045/microsoft-windows-11-issues-rebuilding-trust-notepad" target="_blank">The Verge's Tom Warren</a> just released a massive new report saying that Microsoft is shifting its engineers to focus on resolving core issues with Windows 11 in an attempt to win back customer trust.</p><p>There are a lot of details about what's coming, and you should read Warren's article, but here's what you need to know.</p><p>“The feedback we’re receiving from our community of passionate customers and Windows Insiders has been clear. We need to improve Windows in ways that are meaningful for people,” Pavan Davuluri, president of Windows and devices, told Warren.</p><h2 id="running-list-of-issues">Running list of issues</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="WWfVQoKyhS6ocSop9eu59R" name="Windows 11 laptop.jpg" alt="Windows 11" src="https://cdn.mos.cms.futurecdn.net/WWfVQoKyhS6ocSop9eu59R.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft)</span></figcaption></figure><p>Earlier this month, the company released its <a href="https://www.tomsguide.com/computing/online-security/microsofts-first-patch-tuesday-of-2026-fixes-over-100-bugs-and-one-active-zero-day-flaw-dont-wait-to-update-your-pc">first 2026 patch</a> that was meant to fix over 100 bugs, a fairly common monthly release. That <a href="https://www.tomsguide.com/computing/microsoft-needed-a-win-with-windows-latest-update-but-even-its-fix-needed-fixing">patch was so broken</a> that it introduced new bugs, including one that made it impossible to actually shut down your computer.</p><p>Between an infusion of seemingly unwanted AI, like the ongoing failure that is Recall, so much so that Microsoft has a new "Microslop" nickname. CEO Satya Nadella has begged people to stop calling AI slop.</p><p>Plus, the company has inserted advertisements into core Windows 11 functions, reportedly upsetting customers. </p><h2 id="how-will-things-get-fixed">How will things get fixed?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:56.70%;"><img id="Xk63uudefpEpXrxZN3csEf" name="windows-10-bsod-shst.jpg" alt="A flatscreen monitor displays the Windows 10 'blue screen of death' indicating a system failure." src="https://cdn.mos.cms.futurecdn.net/Xk63uudefpEpXrxZN3csEf.jpg" mos="" align="middle" fullscreen="" width="1000" height="567" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: dennizn/Shutterstock)</span></figcaption></figure><p>Apparently, Microsoft has been tight-lipped about how it plans to improve Windows 11, but is using a process called "swarming," where teams of engineers are redirected to urgently solve Windows 11 performance issues.</p><p>"This year you will see us focus on addressing pain points we hear consistently from customers: improving system performance, reliability, and the overall experience of Windows," Davuluri said.</p><p>Windows is a dominant force in the computing world, from daily consumers to businesses. Even so, the missteps surrounding Windows 11 have eroded Microsoft's standing.</p><p>Tom's Guide will be tracking what Microsoft does this year to see if the engineers are capable of righting the boat. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/news/live/microsoft-q2-earnings-2026">Microsoft earnings — 'You can think of agents as the new apps,' CEO Satya Nadella</a></li><li><a href="https://www.tomsguide.com/computing/microsoft-365-more-like-microsoft-364-why-yesterdays-outage-proves-these-companies-dont-yet-have-a-backup-plan-for-the-internet">Microsoft 365 outages prove cloud services are only one glitch away from chaos, and they still don't have a backup plan for the internet</a></li><li><a href="https://www.tomsguide.com/ai/microsoft-office-is-getting-a-major-ai-overhaul-here-are-all-the-new-updates-coming-soon">Microsoft Office is getting a major AI overhaul — here are all the new updates coming soon</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Oops! Google accidentally posted a first look at its unreleased Android PC operating system ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Google is busy with all kinds of new Android features and updates. The company is working to bring its phone and tablet <a href="https://www.tomsguide.com/computing/chromebooks/aluminium-os-tipped-to-be-googles-new-android-based-pc-operating-system">operating system to personal computers with "Aluminum OS</a>." </p><p>Now, after months of rumors about what the OS could be like, Google looks to have accidentally uploaded brief videos showcasing it. Oops. The videos were intended as bug reports about <a href="https://www.tomsguide.com/news/problem-with-google-chrome-incognito-mode">Chrome Incognito</a> tabs, but the eagle-eyed folks at <a href="https://9to5google.com/2026/01/27/android-desktop-leak/" target="_blank">9To5Google</a> spotted them and pulled them before Google restricted access. There's even a mention of an ALOS software version, which is the shortened version of "Aluminum OS." </p><h2 id="what-we-saw-in-the-leaked-aluminum-os-videos">What we saw in the leaked 'Aluminum OS' videos</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/PnzXh-Tmjc0" allowfullscreen></iframe></div></div><p>The video above was actually shared on YouTube by Android Authority and shows off the upcoming laptop version of Android 16 running on an <a href="https://www.tomsguide.com/reviews/hp-elite-dragonfly">HP Elite Dragonfly 13.5 Chromebook. </a></p><p>The OS looks good and appears to blend elements from Chrome OS and Android. For example, the start button is in the center, and Google put a status bar at the top, which looks and feels a lot like Android on a phone or tablet. We also see some <a href="https://www.tomsguide.com/phones/google-pixel-phones/android-multitasking-tipped-for-a-big-upgrade-just-in-time-for-pixel-9-pro-fold">split-screen multitasking</a> in the video, which is an important aspect of a laptop or desktop OS, since there's much more screen real estate to work with.</p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/c89CqnqpqAg" allowfullscreen></iframe></div></div><p>Google Play is also seen running, further affirming that we're looking at Android. </p><p>Previously, Android head Sameer Samat said we should expect to see more from "Aluminum OS" this year, though I don't think he meant for the new information to come from a leaked bug report. Unfortunately for Google, you can't sneak anything by the internet.</p><p>Hopefully, something more official and deeper will come out from Google soon, as it looks like a useful OS to play around with.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-Oz9mlW"></div>                            </div>                            <script src="https://kwizly.com/embed/Oz9mlW.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/ai-image-video/ai-generated-images-get-roasted-online-but-theyre-brilliant-for-this-one-thing">AI-generated images get roasted online — but they're great for this one thing</a></li><li><a href="https://www.tomsguide.com/computing/mobile-apps/google-maps-gets-four-new-features-to-help-cut-your-travel-time-during-the-holidays">Google Maps is getting 4 big upgrades for millions — here's all the new features</a></li><li><a href="https://www.tomsguide.com/computing/chromebooks/forget-game-pass-google-teams-up-with-nvidia-for-fast-pass-chromebook-cloud-gaming">Gaming on a Chromebook just got better with a free year of Nvidia GeForce Now — here's how to get it</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/operating-systems/oops-google-accidentally-posted-a-first-look-at-its-unreleased-android-pc-operating-system</link>
                                                                            <description>
                            <![CDATA[ A bug report related to Chrome Incognito tabs published to the Google Issue Tracker offered screen recordings of "Aluminium OS." ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">QgQ5cL48VdCmXPuWZXTVXn</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/ygKFeXPW5bxxbavy8ZeTbj-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 28 Jan 2026 15:28:54 +0000</pubDate>                                                                                                                                <updated>Wed, 28 Jan 2026 15:32:01 +0000</updated>
                                                                                                                                            <category><![CDATA[Operating Systems]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                                                                <author><![CDATA[ dave.leclair@futurenet.com (Dave LeClair) ]]></author>                    <dc:creator><![CDATA[ Dave LeClair ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/fyx7qYdxPMTNBhdnMfNmaB.png ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Dave LeClair is the Senior News Editor for Tom&#039;s Guide, keeping his finger on the pulse of all things technology. He loves taking the complicated happenings in the tech world and explaining why they matter. Whether Apple is announcing the next big thing in the mobile space or a small startup advancing generative AI, Dave will apply his experience to help you figure out what&#039;s happening and why it&#039;s relevant to your life.&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Before Tom&#039;s Guide, Dave worked for publications like PCMag, Pocket-lint, MUO, How-To Geek, Digital Trends, and others. He started writing about technology professionally for MUO in 2011 and hasn&#039;t looked back since. In addition to news, you can find reviews, how-to pieces, shopping guides, and many other types of content with Dave&#039;s name attached.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/ygKFeXPW5bxxbavy8ZeTbj-1280-80.jpg">
                                                            <media:credit><![CDATA[Getty Images]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Google logo on the side of its HQ]]></media:description>                                                            <media:text><![CDATA[Google logo on the side of its HQ]]></media:text>
                                <media:title type="plain"><![CDATA[Google logo on the side of its HQ]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/ygKFeXPW5bxxbavy8ZeTbj-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Google is busy with all kinds of new Android features and updates. The company is working to bring its phone and tablet <a href="https://www.tomsguide.com/computing/chromebooks/aluminium-os-tipped-to-be-googles-new-android-based-pc-operating-system">operating system to personal computers with "Aluminum OS</a>." </p><p>Now, after months of rumors about what the OS could be like, Google looks to have accidentally uploaded brief videos showcasing it. Oops. The videos were intended as bug reports about <a href="https://www.tomsguide.com/news/problem-with-google-chrome-incognito-mode">Chrome Incognito</a> tabs, but the eagle-eyed folks at <a href="https://9to5google.com/2026/01/27/android-desktop-leak/" target="_blank">9To5Google</a> spotted them and pulled them before Google restricted access. There's even a mention of an ALOS software version, which is the shortened version of "Aluminum OS." </p><h2 id="what-we-saw-in-the-leaked-aluminum-os-videos">What we saw in the leaked 'Aluminum OS' videos</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/PnzXh-Tmjc0" allowfullscreen></iframe></div></div><p>The video above was actually shared on YouTube by Android Authority and shows off the upcoming laptop version of Android 16 running on an <a href="https://www.tomsguide.com/reviews/hp-elite-dragonfly">HP Elite Dragonfly 13.5 Chromebook. </a></p><p>The OS looks good and appears to blend elements from Chrome OS and Android. For example, the start button is in the center, and Google put a status bar at the top, which looks and feels a lot like Android on a phone or tablet. We also see some <a href="https://www.tomsguide.com/phones/google-pixel-phones/android-multitasking-tipped-for-a-big-upgrade-just-in-time-for-pixel-9-pro-fold">split-screen multitasking</a> in the video, which is an important aspect of a laptop or desktop OS, since there's much more screen real estate to work with.</p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/c89CqnqpqAg" allowfullscreen></iframe></div></div><p>Google Play is also seen running, further affirming that we're looking at Android. </p><p>Previously, Android head Sameer Samat said we should expect to see more from "Aluminum OS" this year, though I don't think he meant for the new information to come from a leaked bug report. Unfortunately for Google, you can't sneak anything by the internet.</p><p>Hopefully, something more official and deeper will come out from Google soon, as it looks like a useful OS to play around with.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-Oz9mlW"></div>                            </div>                            <script src="https://kwizly.com/embed/Oz9mlW.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/ai-image-video/ai-generated-images-get-roasted-online-but-theyre-brilliant-for-this-one-thing">AI-generated images get roasted online — but they're great for this one thing</a></li><li><a href="https://www.tomsguide.com/computing/mobile-apps/google-maps-gets-four-new-features-to-help-cut-your-travel-time-during-the-holidays">Google Maps is getting 4 big upgrades for millions — here's all the new features</a></li><li><a href="https://www.tomsguide.com/computing/chromebooks/forget-game-pass-google-teams-up-with-nvidia-for-fast-pass-chromebook-cloud-gaming">Gaming on a Chromebook just got better with a free year of Nvidia GeForce Now — here's how to get it</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ How to fix Windows 11's annoying shutdown bug (and why it's happening) ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Your computer's supposed to shut down when you tell it to. That's pretty basic. But a recent Windows 11 update threw a wrench in that simple expectation for some users. Hit the shutdown button, and instead of powering down, the PC just restarts. </p><p>Specifically, those using Windows 11 Enterprise with System Guard Secure Launch enabled have run into trouble. Although Microsoft acknowledged the problem and rolled out a fix on January 17 2026, some people are still dealing with computers that refuse to stay off. </p><p>Here's exactly what happened and how you can fix it. </p><section class="howto-block">                    <h3>1. What caused the problem</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="http://cdn.mos.cms.futurecdn.net/BNwj3Vt65irfmQmAqsnGxj.jpg"                                        alt="LG Gram 17 (2020) review"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="http://cdn.mos.cms.futurecdn.net/BNwj3Vt65irfmQmAqsnGxj.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>The culprit was update KB5073455 (23H2), which Microsoft started rolling out on Jan. 13. The bug created a conflict with System Guard Secure Launch, a security feature designed to protect against firmware-level attacks during startup.</p><p>Microsoft acknowledged the issue on its <a href="https://learn.microsoft.com/en-us/windows/release-health/status-windows-11-23h2#devices-with-secure-launch-might-fail-to-shut-down-or-hibernate" target="_blank">Release Health</a> tracker that when users with Secure Launch enabled tried to shut down or sleep their computers, the system would bypass those commands entirely and restart instead. Anything you hadn't saved was potentially gone.</p><p>Secure Launch isn't a feature most casual users would have enabled. It's primarily found in enterprise environments where IT departments prioritize security over convenience. If you don't know whether you have it turned on, you almost certainly don't.</p></p>                </section><section class="howto-block">                    <h3>2. Grab the official patch</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="http://cdn.mos.cms.futurecdn.net/sN6famZzB72kSNZMLrvXs3.jpg"                                        alt="LG Gram 17 Pro (2023) review unit on a table outdoors"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="http://cdn.mos.cms.futurecdn.net/sN6famZzB72kSNZMLrvXs3.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Future)</div></figure>                    <p><p>The patch, labeled KB5077797, is available through the Windows Update Catalog. To download it, <strong>head to the </strong><a href="https://www.catalog.update.microsoft.com/Home.aspx" target="_blank"><strong>catalog website</strong></a><strong> and search for the update number</strong>, or let Windows Update install it automatically.</p><p>Most users should receive the patch through regular Windows Updates without any manual intervention. If you're still experiencing the restart issue after the update installs, <strong>try restarting your computer </strong>once more to ensure the fix takes effect.</p><p>Microsoft also offered a command line solution as a temporary workaround. Simply <strong>type cmd into the Search bar</strong>,<strong> open Command Prompt</strong>, and <strong>enter shutdown /s /t 0</strong> to trigger a proper shutdown. </p><p>With the official patch now available, it's unlikely you'll need this workaround. However, if you're still experiencing issues or waiting for the update to roll out to your machine, this command method is a good short-term solution.</p></p>                </section><figure class="van-image-figure pull-right inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:676px;"><p class="vanilla-image-block" style="padding-top:31.51%;"><img id="ZCwuUFRE3YeboHR4zyEWmb" name="r3t8zZ5ve4GewFTeoCM3R6" alt="Google" src="https://cdn.mos.cms.futurecdn.net/ZCwuUFRE3YeboHR4zyEWmb.jpg" mos="" align="right" fullscreen="" width="676" height="213" attribution="" endorsement="" class="pull-rightinline"></p></div></div><figcaption itemprop="caption description" class="pull-right inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide </span></h3><ul><li><a href="https://www.tomsguide.com/computing/this-hidden-windows-11-feature-lets-you-force-an-emergency-restart-how-it-works-and-where-to-find-it">This hidden Windows 11 feature lets you force an emergency restart </a></li><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/pc-taking-forever-to-boot-heres-how-to-speed-it-up">Here's how you can speed up your PC's boot time</a></li><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/how-to-safely-dispose-of-your-windows-10-laptop-after-upgrading-to-windows-11">How to dispose of your Windows 10 laptop after upgrading to Windows 11</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/windows-operating-systems/how-to-fix-windows-11s-annoying-shutdown-bug-and-why-its-happening</link>
                                                                            <description>
                            <![CDATA[ Learn how to fix the Windows 11 bug preventing some PCs from shutting down and why it only affects certain users. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">wL3fbHFNVm7gpYerVxa3M4</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/ynU5BuH6Taj5rNfWw8mmpV-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 22 Jan 2026 06:15:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Windows Operating Systems]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                                                                <author><![CDATA[ kaycee.hill@futurenet.com (Kaycee Hill) ]]></author>                    <dc:creator><![CDATA[ Kaycee Hill ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/sUwQW8yCGXFHeksAFjqSxZ.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/ynU5BuH6Taj5rNfWw8mmpV-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[LG Gram 17 Pro (2023) review unit on table outdoors running Windows 11]]></media:description>                                                            <media:text><![CDATA[LG Gram 17 Pro (2023) review unit on table outdoors running Windows 11]]></media:text>
                                <media:title type="plain"><![CDATA[LG Gram 17 Pro (2023) review unit on table outdoors running Windows 11]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/ynU5BuH6Taj5rNfWw8mmpV-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Your computer's supposed to shut down when you tell it to. That's pretty basic. But a recent Windows 11 update threw a wrench in that simple expectation for some users. Hit the shutdown button, and instead of powering down, the PC just restarts. </p><p>Specifically, those using Windows 11 Enterprise with System Guard Secure Launch enabled have run into trouble. Although Microsoft acknowledged the problem and rolled out a fix on January 17 2026, some people are still dealing with computers that refuse to stay off. </p><p>Here's exactly what happened and how you can fix it. </p><section class="howto-block">                    <h3>1. What caused the problem</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="http://cdn.mos.cms.futurecdn.net/BNwj3Vt65irfmQmAqsnGxj.jpg"                                        alt="LG Gram 17 (2020) review"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="http://cdn.mos.cms.futurecdn.net/BNwj3Vt65irfmQmAqsnGxj.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>The culprit was update KB5073455 (23H2), which Microsoft started rolling out on Jan. 13. The bug created a conflict with System Guard Secure Launch, a security feature designed to protect against firmware-level attacks during startup.</p><p>Microsoft acknowledged the issue on its <a href="https://learn.microsoft.com/en-us/windows/release-health/status-windows-11-23h2#devices-with-secure-launch-might-fail-to-shut-down-or-hibernate" target="_blank">Release Health</a> tracker that when users with Secure Launch enabled tried to shut down or sleep their computers, the system would bypass those commands entirely and restart instead. Anything you hadn't saved was potentially gone.</p><p>Secure Launch isn't a feature most casual users would have enabled. It's primarily found in enterprise environments where IT departments prioritize security over convenience. If you don't know whether you have it turned on, you almost certainly don't.</p></p>                </section><section class="howto-block">                    <h3>2. Grab the official patch</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="http://cdn.mos.cms.futurecdn.net/sN6famZzB72kSNZMLrvXs3.jpg"                                        alt="LG Gram 17 Pro (2023) review unit on a table outdoors"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="http://cdn.mos.cms.futurecdn.net/sN6famZzB72kSNZMLrvXs3.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Future)</div></figure>                    <p><p>The patch, labeled KB5077797, is available through the Windows Update Catalog. To download it, <strong>head to the </strong><a href="https://www.catalog.update.microsoft.com/Home.aspx" target="_blank"><strong>catalog website</strong></a><strong> and search for the update number</strong>, or let Windows Update install it automatically.</p><p>Most users should receive the patch through regular Windows Updates without any manual intervention. If you're still experiencing the restart issue after the update installs, <strong>try restarting your computer </strong>once more to ensure the fix takes effect.</p><p>Microsoft also offered a command line solution as a temporary workaround. Simply <strong>type cmd into the Search bar</strong>,<strong> open Command Prompt</strong>, and <strong>enter shutdown /s /t 0</strong> to trigger a proper shutdown. </p><p>With the official patch now available, it's unlikely you'll need this workaround. However, if you're still experiencing issues or waiting for the update to roll out to your machine, this command method is a good short-term solution.</p></p>                </section><figure class="van-image-figure pull-right inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:676px;"><p class="vanilla-image-block" style="padding-top:31.51%;"><img id="ZCwuUFRE3YeboHR4zyEWmb" name="r3t8zZ5ve4GewFTeoCM3R6" alt="Google" src="https://cdn.mos.cms.futurecdn.net/ZCwuUFRE3YeboHR4zyEWmb.jpg" mos="" align="right" fullscreen="" width="676" height="213" attribution="" endorsement="" class="pull-rightinline"></p></div></div><figcaption itemprop="caption description" class="pull-right inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide </span></h3><ul><li><a href="https://www.tomsguide.com/computing/this-hidden-windows-11-feature-lets-you-force-an-emergency-restart-how-it-works-and-where-to-find-it">This hidden Windows 11 feature lets you force an emergency restart </a></li><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/pc-taking-forever-to-boot-heres-how-to-speed-it-up">Here's how you can speed up your PC's boot time</a></li><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/how-to-safely-dispose-of-your-windows-10-laptop-after-upgrading-to-windows-11">How to dispose of your Windows 10 laptop after upgrading to Windows 11</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I've been using Macs for years — here are 3 power user tweaks that changed everything ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Most people unbox a new Mac, breeze through the setup steps, and start using it exactly as Apple intended. The Magic Mouse stays. The built-in display is enough. Default settings remain untouched. That approach works fine for basic tasks, but it leaves a lot of capability on the table.</p><p>Power users do things differently. They upgrade their peripherals and expand storage before it becomes a problem. These aren't complicated modifications that require technical know-how — they're straightforward upgrades that make your daily work faster and more comfortable.</p><p>The gap between a stock Mac and a power user setup isn't as wide as you'd think. Three key changes cover the crux of it.</p><section class="howto-block">                    <h3>1. Replace Apple's included accessories </h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="http://cdn.mos.cms.futurecdn.net/TVxrzmmzPQxkmQqkZJtomn.jpg"                                        alt="Logitech MX Master 3 review"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="http://cdn.mos.cms.futurecdn.net/TVxrzmmzPQxkmQqkZJtomn.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Logitech)</div></figure>                    <p><p>The Magic Mouse ships with iMacs and it's the default option when you're buying from Apple. It looks great on a desk, but the charging port is on the bottom, so you can't use it while it charges, which is really annoying.</p><p>Third-party mice fix these problems. <a href="https://www.tomsguide.com/computing/peripherals/logitech-mx-master-3s-review">The Logitech MX Master 3S,</a> which we named best overall in our <a href="https://www.tomsguide.com/best-picks/best-wireless-mouse">wireless mouse buying guide</a>, is  is built for all-day comfort with an ergonomic grip that won't leave your hand aching. The programmable buttons and horizontal scroll wheel turn repetitive tasks into single clicks, and it works seamlessly across multiple device</p><p>Same goes for keyboards. Mechanical keyboards like the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/cooler-master-mk770">Cooler Master MK770 </a>offer deeper key travel and tactile feedback that Apple's keyboards lack. The responsive switches and sturdy design make a noticeable difference during long typing sessions.</p></p>                </section><section class="howto-block">                    <h3>2. Learn the keyboard shortcuts and customize your desktop</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/2UjXeoVBQodZJYw5QJmRvj.jpg"                                        alt="Playing Bioshock Remastered on the Mac mini M4 with a trackball mouse and keyboard"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/2UjXeoVBQodZJYw5QJmRvj.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>You're probably clicking through menus dozens of times a day when you don't need to. Keyboard shortcuts eliminate that repetition. <strong>Command+Space opens Spotlight Search</strong> instantly. </p><p>Mission Control shows all your open windows at once —<strong> map it to a mouse button or keyboard shortcut</strong> you can hit without thinking.</p><p><strong>Widgets put useful information right on your desktop without needing to open apps</strong>. Whatever you check throughout the day can sit there waiting for you. This works especially well on larger displays where you've got space to spare.</p><p><strong>Hide the Dock to recover vertical screen space</strong>. It pops up when you move your cursor to the bottom and automatically shifts to whichever monitor you're using. Enable it in System Settings under Desktop & Dock.</p><p>These small efficiency gains add up fast. Saving a few seconds on actions you repeat dozens of times daily becomes meaningful time over weeks and months.</p></p>                </section><section class="howto-block">                    <h3>3. Expand your storage with external drives</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/6QvmJ7mxgvoxXnfAV3iZqV.jpg"                                        alt="An image of an external hard drive with a brushed metal finish, plugged into a MacBook with a black USB cable"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/6QvmJ7mxgvoxXnfAV3iZqV.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Shutterstock)</div></figure>                    <p><p>Apple charges a premium for internal storage upgrades. Base model Macs often start with just enough space to get you going, but not much more. External drives connected via Thunderbolt or USB-C give you way more capacity for way less money.</p><p><strong>Time Machine makes backups effortless once you plug in an external drive</strong>. It continuously backs up your entire system in the background, so recovering files is as simple as browsing to a date and hitting restore. This is a lifesaver for large video projects that would take forever to upload to the cloud.</p><p>Cloud storage through iCloud takes a different approach. <strong>Turn on Desktop and Documents folder syncing,</strong> and everything you save becomes accessible across all your devices. </p></p>                </section><figure class="van-image-figure pull-right inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:676px;"><p class="vanilla-image-block" style="padding-top:31.51%;"><img id="8RpLeaq6UZxfGpTcqGj7HX" name="Google" alt="Google" src="https://cdn.mos.cms.futurecdn.net/8RpLeaq6UZxfGpTcqGj7HX.jpg" mos="" align="right" fullscreen="" width="676" height="213" attribution="" endorsement="" class="pull-rightinline"></p></div></div></figure><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide </span></h3><ul><li><a href="https://www.tomsguide.com/how-to/18-macos-terminal-commands-to-turn-you-into-a-mac-power-user">18 macOS Terminal commands to turn you into a Mac power user</a></li><li><a href="https://www.tomsguide.com/computing/apple-desktops/5-free-ways-to-speed-up-your-slow-mac">5 free ways to speed up your slow Mac</a></li><li><a href="https://www.tomsguide.com/phones/you-can-schedule-your-mac-to-turn-off-and-on-heres-how">You can schedule your Mac to turn off and on — here's how</a></li></ul><div data-model-name="Creative Sound Blaster GS3,Razer Leviathan V2 X,Creative Stage v2,BlueAnt Soundblade,OXS Thunder Pro,Creative Sound Blaster Katana V2,OXS Thunder Pro+" data-widget-type="multimodelreview" data-widget-title="Today's PC soundbar deals"></div> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/macos/ive-been-using-macs-for-years-here-are-3-power-user-tweaks-that-changed-everything</link>
                                                                            <description>
                            <![CDATA[ Learn how to optimize your Mac setup and become a power user with these tips. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">4h6QtbWRv8YxZKM3uWSPYi</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/YN8VKkCadm8xXawH5NCJtL-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 17 Jan 2026 10:15:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[macOS]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                                                                <author><![CDATA[ kaycee.hill@futurenet.com (Kaycee Hill) ]]></author>                    <dc:creator><![CDATA[ Kaycee Hill ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/XR7uugHJo9GDpoV7ZN22Ae.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/YN8VKkCadm8xXawH5NCJtL-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A dual-monitor desk setup powered by the Mac mini M4 with the Satechi SM3 mechanical keyboard in the foreground]]></media:description>                                                            <media:text><![CDATA[A dual-monitor desk setup powered by the Mac mini M4 with the Satechi SM3 mechanical keyboard in the foreground]]></media:text>
                                <media:title type="plain"><![CDATA[A dual-monitor desk setup powered by the Mac mini M4 with the Satechi SM3 mechanical keyboard in the foreground]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/YN8VKkCadm8xXawH5NCJtL-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Most people unbox a new Mac, breeze through the setup steps, and start using it exactly as Apple intended. The Magic Mouse stays. The built-in display is enough. Default settings remain untouched. That approach works fine for basic tasks, but it leaves a lot of capability on the table.</p><p>Power users do things differently. They upgrade their peripherals and expand storage before it becomes a problem. These aren't complicated modifications that require technical know-how — they're straightforward upgrades that make your daily work faster and more comfortable.</p><p>The gap between a stock Mac and a power user setup isn't as wide as you'd think. Three key changes cover the crux of it.</p><section class="howto-block">                    <h3>1. Replace Apple's included accessories </h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="http://cdn.mos.cms.futurecdn.net/TVxrzmmzPQxkmQqkZJtomn.jpg"                                        alt="Logitech MX Master 3 review"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="http://cdn.mos.cms.futurecdn.net/TVxrzmmzPQxkmQqkZJtomn.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Logitech)</div></figure>                    <p><p>The Magic Mouse ships with iMacs and it's the default option when you're buying from Apple. It looks great on a desk, but the charging port is on the bottom, so you can't use it while it charges, which is really annoying.</p><p>Third-party mice fix these problems. <a href="https://www.tomsguide.com/computing/peripherals/logitech-mx-master-3s-review">The Logitech MX Master 3S,</a> which we named best overall in our <a href="https://www.tomsguide.com/best-picks/best-wireless-mouse">wireless mouse buying guide</a>, is  is built for all-day comfort with an ergonomic grip that won't leave your hand aching. The programmable buttons and horizontal scroll wheel turn repetitive tasks into single clicks, and it works seamlessly across multiple device</p><p>Same goes for keyboards. Mechanical keyboards like the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/cooler-master-mk770">Cooler Master MK770 </a>offer deeper key travel and tactile feedback that Apple's keyboards lack. The responsive switches and sturdy design make a noticeable difference during long typing sessions.</p></p>                </section><section class="howto-block">                    <h3>2. Learn the keyboard shortcuts and customize your desktop</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/2UjXeoVBQodZJYw5QJmRvj.jpg"                                        alt="Playing Bioshock Remastered on the Mac mini M4 with a trackball mouse and keyboard"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/2UjXeoVBQodZJYw5QJmRvj.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>You're probably clicking through menus dozens of times a day when you don't need to. Keyboard shortcuts eliminate that repetition. <strong>Command+Space opens Spotlight Search</strong> instantly. </p><p>Mission Control shows all your open windows at once —<strong> map it to a mouse button or keyboard shortcut</strong> you can hit without thinking.</p><p><strong>Widgets put useful information right on your desktop without needing to open apps</strong>. Whatever you check throughout the day can sit there waiting for you. This works especially well on larger displays where you've got space to spare.</p><p><strong>Hide the Dock to recover vertical screen space</strong>. It pops up when you move your cursor to the bottom and automatically shifts to whichever monitor you're using. Enable it in System Settings under Desktop & Dock.</p><p>These small efficiency gains add up fast. Saving a few seconds on actions you repeat dozens of times daily becomes meaningful time over weeks and months.</p></p>                </section><section class="howto-block">                    <h3>3. Expand your storage with external drives</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/6QvmJ7mxgvoxXnfAV3iZqV.jpg"                                        alt="An image of an external hard drive with a brushed metal finish, plugged into a MacBook with a black USB cable"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/6QvmJ7mxgvoxXnfAV3iZqV.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Shutterstock)</div></figure>                    <p><p>Apple charges a premium for internal storage upgrades. Base model Macs often start with just enough space to get you going, but not much more. External drives connected via Thunderbolt or USB-C give you way more capacity for way less money.</p><p><strong>Time Machine makes backups effortless once you plug in an external drive</strong>. It continuously backs up your entire system in the background, so recovering files is as simple as browsing to a date and hitting restore. This is a lifesaver for large video projects that would take forever to upload to the cloud.</p><p>Cloud storage through iCloud takes a different approach. <strong>Turn on Desktop and Documents folder syncing,</strong> and everything you save becomes accessible across all your devices. </p></p>                </section><figure class="van-image-figure pull-right inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:676px;"><p class="vanilla-image-block" style="padding-top:31.51%;"><img id="8RpLeaq6UZxfGpTcqGj7HX" name="Google" alt="Google" src="https://cdn.mos.cms.futurecdn.net/8RpLeaq6UZxfGpTcqGj7HX.jpg" mos="" align="right" fullscreen="" width="676" height="213" attribution="" endorsement="" class="pull-rightinline"></p></div></div></figure><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide </span></h3><ul><li><a href="https://www.tomsguide.com/how-to/18-macos-terminal-commands-to-turn-you-into-a-mac-power-user">18 macOS Terminal commands to turn you into a Mac power user</a></li><li><a href="https://www.tomsguide.com/computing/apple-desktops/5-free-ways-to-speed-up-your-slow-mac">5 free ways to speed up your slow Mac</a></li><li><a href="https://www.tomsguide.com/phones/you-can-schedule-your-mac-to-turn-off-and-on-heres-how">You can schedule your Mac to turn off and on — here's how</a></li></ul><div data-model-name="Creative Sound Blaster GS3,Razer Leviathan V2 X,Creative Stage v2,BlueAnt Soundblade,OXS Thunder Pro,Creative Sound Blaster Katana V2,OXS Thunder Pro+" data-widget-type="multimodelreview" data-widget-title="Today's PC soundbar deals"></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Forget the taskbar — 5 hidden gems that finally convinced me to love Windows 11  ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Windows 11 has been going strong for five years now, yet I still meet people who use it like Windows 10. And while it works just fine for them, I feel bad when I hear them complaining about it because Windows 11 doesn't work the way they want it to.</p><p>I totally understand, because I too miss the good old days of Windows before it started advertising Microsoft services to you and pushing all your data into Microsoft servers. But the fact is that Windows 11 is here to stay, and now that <a href="https://www.tomsguide.com/computing/windows-operating-systems/windows-10-upgrade-guide">Windows 10 is officially dead</a> you'd be wise to update to Windows 11 and get comfortable using it.</p><p>To help you I figured I'd quickly share my favorite hidden and hard-to-find features in Windows 11 that make it a lot easier and more efficient for me to use during my workday. I wrote our <a href="https://www.tomsguide.com/reviews/windows-11">Windows 11 review</a> so I've been using it since launch and had a front-row seat as Microsoft steadily added new features over the years.</p><p>With that in mind, I wanted to quickly run down my five favorite Windows 11 features that I rarely see people taking advantage of. This is what I use to make Windows 11 more comfortable and more efficient to use. I hope you find something here that works for you! And if you have any favorite Windows 11 tips let us know in the comments.</p><h3 class="article-body__section" id="section-focus-modes"><span>Focus modes</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2875px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="G9XoY464yyo34kH2JR3fXE" name="focussesh1" alt="Windows 11 focus settings menu" src="https://cdn.mos.cms.futurecdn.net/G9XoY464yyo34kH2JR3fXE.jpg" mos="" align="middle" fullscreen="1" width="2875" height="1617" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/G9XoY464yyo34kH2JR3fXE.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">You can enable different focus settings. </span><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>If you're not using Windows 11's focus sessions feature when you're working, you're missing out on a very useful tool for staying productive during the day.</p><p>I know because I use it myself as basically a Pomodoro timer, replacing the old browser extensions and apps I used to use to keep myself on task for focused 45-minute work sessions.</p><p>But with focus modes in Windows 11 you can just tell Windows how long you want to work without distraction. Here's how it works: you can configure a custom focus session from 5 - 240 minutes long, and configure which notifications (if any) you want to see during your session. You can also choose to hide badges on apps, flashing icons on the taskbar and more. You will then see a timer appear on your screen counting down how much time remains in your focus session, with built-in 5 minute breaks.</p><p>The fastest way to set up focus sessions is to open the <strong>Start menu </strong>and type <strong>Focus</strong> to bring up the application’s menu. You can set how long you want a focus session to last, whether you want do not disturb mode to turn on and what notifications will break into your focus session. You might turn off notifications from distracting social meda apps and your web browser when doing deep work, for example, or have an R&R focus session that ignores all your work-related notifications so you can focus on gaming or watching something.</p><p>I really love using this feature to stay productive when working from home, and I can't believe more people don't know about this super-useful feature buried in Windows 11. </p><h3 class="article-body__section" id="section-shake-to-minimize"><span>Shake to minimize</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:600px;"><p class="vanilla-image-block" style="padding-top:56.33%;"><img id="XirZanrQZHaBbtjFv8q2PJ" name="TG_gif.gif" alt="Windows 11 shake to minimize" src="https://cdn.mos.cms.futurecdn.net/XirZanrQZHaBbtjFv8q2PJ.gif" mos="" align="middle" fullscreen="" width="600" height="338" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">The shake to minimize feature not only boosts production, it's also fun to use. </span><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>One of my favorite hidden features of Windows 11 gives you a faster, funnier way to minimize windows so you can focus on the one you care about. It's a silly, easy way to close distractions when you're working: you just grab the window you want to focus on by the title bar and shake it around a bit.</p><p>I say it's hidden because it's not enabled by default and you'd never know it existed if you didn't know to look for it. So I'm telling you how to find it: navigate to <strong>Settings -> System -> Multitasking </strong> and click the radio button to <strong>toggle Title bar windows shake on</strong>. </p><p>Once that's done you should be able to grab your window of choice and shake to close everything else. However, don't close that Multitasking menu just yet — there are settings in there which affect the little-known Windows 11 feature I'm going to tell you about next.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-XkjvzO"></div>                            </div>                            <script src="https://kwizly.com/embed/XkjvzO.js" async></script><h3 class="article-body__section" id="section-clipboard-history"><span>Clipboard history</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3200px;"><p class="vanilla-image-block" style="padding-top:56.28%;"><img id="wqLZJV5oMWNNGqHbyj7XkK" name="clipboardhistory" alt="Windows 11 clipboard menu" src="https://cdn.mos.cms.futurecdn.net/wqLZJV5oMWNNGqHbyj7XkK.jpg" mos="" align="middle" fullscreen="1" width="3200" height="1801" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/wqLZJV5oMWNNGqHbyj7XkK.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">Snap layouts let you customize windows to your liking. </span><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>This feature isn't unique to Windows 11 since it's also on Windows 10 as well as macOS, but for some reason it's often disabled by default. I'm talking of course about clipboard history, which when enabled allows you to view a list of things you've copied to your clipboard.</p><p>This is super useful for me because I work with text and images for a living, so I'm regularly copying and pasting sentences, strings of passwords and images between apps. By default we all tend to assume you can only copy and paste one thing at a time, and when you copy something new it removes the last thing you copied from the clipboard.</p><p>But Windows 11 can remember, and if you turn on clipboard history you'll be able to copy and paste multiple things and then open the clipboard history to access and re-copy multiple things. It's super useful and easy to use once you know how.</p><p>The first step is to <strong>enable clipboard history by navigating to Settings > System > Clipboard. </strong>From that menu <strong>make sure the radio button next to Clipboard History is set to on.</strong></p><p>Once you've turned clipboard history on, <strong>you can view your clipboard history by hitting Windows key + K.</strong> This will pop up a small window with multiple tabs, one of which lets you view recent things you copied to the clipboard. </p><p>But there's extra fun features built into the clipboard history menu if you explore the tabs at the top. One lets you copy and paste special characters and punctuation quickly, another lets you copy and paste GIFs and another lists emoji you can use. It's a super useful little feature that's hidden in Windows 11, and I wish more people knew about it!</p><h3 class="article-body__section" id="section-dynamic-lock"><span>Dynamic lock</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2340px;"><p class="vanilla-image-block" style="padding-top:56.28%;"><img id="4ksybdFnRG72FXNETWsLhA" name="signinoptionswin11" alt="Windows 11 sign-in options menu" src="https://cdn.mos.cms.futurecdn.net/4ksybdFnRG72FXNETWsLhA.jpg" mos="" align="middle" fullscreen="1" width="2340" height="1317" attribution="" endorsement="" class="inline expandable"><a href='https://cdn.mos.cms.futurecdn.net/4ksybdFnRG72FXNETWsLhA.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Windows 11 has a built-in feature that lets it intelligently lock your PC when you walk away, but it's hidden away in a submenu by default. Here's how to turn it on for more peace of mind when you need to leave your PC unattended in a public space.</p><p>While you can automatically lock your Windows 11 PC with the <strong>Windows key + L</strong> keyboard shortcut, you can also set up your PC to do it automatically based on either your phone's movements or (if supported) sensing cameras built into your PC.</p><p><strong>To turn on dynamic lock, navigate to Settings > Accounts > Sign-in options and make sure the dynamic lock feature is enabled.</strong></p><p>However, it won't do much unless you have a means by which Windows can tell when you walk away. Many modern laptops from the likes of Lenovo and HP, for example, come with IR cameras and software you can use to have your laptop intelligently lock itself when it detects you've walked away.</p><p>If you don't have something like that on your PC, you'll want to connect your phone to your PC using the <a href="https://www.tomsguide.com/computing/i-paired-my-iphone-16-with-a-windows-pc-and-microsoft-phone-link-cant-compete-with-a-macbook">Microsoft Phone Link app</a>. Once you do have your phone connected (I have my <a href="https://www.tomsguide.com/phones/motorola-phones/motorola-razr-2025-review">Motorola Razr 2025</a> paired in the screenshot above) you should see it appaer in the dynamic lock section and you're good to go!</p><h3 class="article-body__section" id="section-control-your-pc-with-your-voice"><span>Control your PC with your voice</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1917px;"><p class="vanilla-image-block" style="padding-top:56.23%;"><img id="FXoTdngzKekC2WEUE9JXpm" name="win11_voiceaccess_2.jpg" alt="Windows 11 Voice Access grid overlay in action" src="https://cdn.mos.cms.futurecdn.net/FXoTdngzKekC2WEUE9JXpm.jpg" mos="" align="middle" fullscreen="1" width="1917" height="1078" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/FXoTdngzKekC2WEUE9JXpm.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">Windows 11's voice to text feature is extremely useful. </span><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>There are some awfully robust voice command and control systems built into Windows 11, but you have to know they exist and how to access them before you can ever make use of them.</p><p>I've been using these tools for years, and I wish more people knew about them because they aren't just accessibility aids for folks who have trouble controlling PCs with their hands—they're also productivity enhancers and ergonomic creation tools that make it easier to write and control your PC with just your voice.</p><p>First, you need to know about voice typing in Windows 11. To enable it, simply hit the <strong>Windows key + H </strong>shortcut to pop open a small window with a microphone button. Hit the mic and start talking; Windows will automatically transcribe your words to text and write them in whatever text box you have selected on-screen.</p><p>The other, more powerful voice command feature is called Voice Assist, and it lets you not just type with your voice but actually move your mouse around on the desktop, so you can point and click (sort of) with voice commands.</p><p>To turn on voice assist, navigate to Settings > Accessibility > Voice and make sure the Voice access feature is turned on. You will likely need to wait for the PC to download some additional data to make this work, and then you'll be able to summon or dismiss the voice access menu by hitting Windows key + Ctrl + S. </p><p>I love voice assist because you can open and close programs, transcribe text and click on things with commands like "left click", "go back" and "open [app]". Personally I love it because I have RSI and it lets me give my hands a break in long work sessions, but it's also useful if you like to walk around your office while dictating a memo or if you want to control a PC from across the room.</p><p>Admittedly, while Windows 11 voice access is the most useful voice control tool I've ever used it can be frustrating and tricky to master. Sometimes commands aren't recognized and editing text can be especially tricky (try telling a PC to fix a comma splice, I dare you), but overall I think it's a great feature that's worth using—and I wish more people knew about it!</p><p><strong>Have any favorite Windows 11 tips of your own? Let us know in the comments! </strong></p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/15-top-windows-11-tips-everyone-needs-to-know">15 top Windows 11 tips everyone needs to know</a></li><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/5-things-i-wish-i-knew-about-windows-11-when-i-upgraded-from-windows-10">5 things I wish I knew about Windows 11 when I upgraded from Windows 10</a></li><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/dont-buy-a-new-pc-for-windows-11-just-yet-this-lightweight-version-can-save-your-old-windows-10-pc">Don't buy a new PC for Windows 11 just yet — this lightweight version can save your old Windows 10 PC</a></li></ul><div data-model-name="Dell XPS 13,Lenovo Yoga Slim 7x (14-inch Snapdragon),Asus ROG Zephyrus G14 (2024)" data-widget-type="comparison"></div> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/windows-operating-systems/5-hidden-windows-11-features-you-need-to-know-about</link>
                                                                            <description>
                            <![CDATA[ I've been using Windows 11 since before it was released, and these are the 5 hidden features I wish everyone understood. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">BGdtAZXH6CYjxAv2tkwXYT</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/nM2QA9SAJTB9Hq3ATzrtdC-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 15 Jan 2026 05:01:00 +0000</pubDate>                                                                                                                                <updated>Thu, 15 Jan 2026 19:49:23 +0000</updated>
                                                                                                                                            <category><![CDATA[Windows Operating Systems]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                                                                <author><![CDATA[ alex.wawro@futurenet.com (Alex Wawro) ]]></author>                    <dc:creator><![CDATA[ Alex Wawro ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/Y4wW9n7CZrNzgofqVkGA5J.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Alex Wawro is a lifelong tech and games enthusiast with more than a decade of experience covering the movers and shakers in both industries for media outlets like Game Developer, Black Hat and PC World magazine. A lifelong PC builder, he currently serves as a senior editor at Tom&#039;s Guide covering all things computing, from laptops and desktops to printers, keyboards and mice. If you plug it into a PC, he&#039;s probably the person to talk to.&amp;nbsp;&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/nM2QA9SAJTB9Hq3ATzrtdC-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Windows 11 logo on a laptop screen]]></media:description>                                                            <media:text><![CDATA[Windows 11 logo on a laptop screen]]></media:text>
                                <media:title type="plain"><![CDATA[Windows 11 logo on a laptop screen]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/nM2QA9SAJTB9Hq3ATzrtdC-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Windows 11 has been going strong for five years now, yet I still meet people who use it like Windows 10. And while it works just fine for them, I feel bad when I hear them complaining about it because Windows 11 doesn't work the way they want it to.</p><p>I totally understand, because I too miss the good old days of Windows before it started advertising Microsoft services to you and pushing all your data into Microsoft servers. But the fact is that Windows 11 is here to stay, and now that <a href="https://www.tomsguide.com/computing/windows-operating-systems/windows-10-upgrade-guide">Windows 10 is officially dead</a> you'd be wise to update to Windows 11 and get comfortable using it.</p><p>To help you I figured I'd quickly share my favorite hidden and hard-to-find features in Windows 11 that make it a lot easier and more efficient for me to use during my workday. I wrote our <a href="https://www.tomsguide.com/reviews/windows-11">Windows 11 review</a> so I've been using it since launch and had a front-row seat as Microsoft steadily added new features over the years.</p><p>With that in mind, I wanted to quickly run down my five favorite Windows 11 features that I rarely see people taking advantage of. This is what I use to make Windows 11 more comfortable and more efficient to use. I hope you find something here that works for you! And if you have any favorite Windows 11 tips let us know in the comments.</p><h3 class="article-body__section" id="section-focus-modes"><span>Focus modes</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2875px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="G9XoY464yyo34kH2JR3fXE" name="focussesh1" alt="Windows 11 focus settings menu" src="https://cdn.mos.cms.futurecdn.net/G9XoY464yyo34kH2JR3fXE.jpg" mos="" align="middle" fullscreen="1" width="2875" height="1617" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/G9XoY464yyo34kH2JR3fXE.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">You can enable different focus settings. </span><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>If you're not using Windows 11's focus sessions feature when you're working, you're missing out on a very useful tool for staying productive during the day.</p><p>I know because I use it myself as basically a Pomodoro timer, replacing the old browser extensions and apps I used to use to keep myself on task for focused 45-minute work sessions.</p><p>But with focus modes in Windows 11 you can just tell Windows how long you want to work without distraction. Here's how it works: you can configure a custom focus session from 5 - 240 minutes long, and configure which notifications (if any) you want to see during your session. You can also choose to hide badges on apps, flashing icons on the taskbar and more. You will then see a timer appear on your screen counting down how much time remains in your focus session, with built-in 5 minute breaks.</p><p>The fastest way to set up focus sessions is to open the <strong>Start menu </strong>and type <strong>Focus</strong> to bring up the application’s menu. You can set how long you want a focus session to last, whether you want do not disturb mode to turn on and what notifications will break into your focus session. You might turn off notifications from distracting social meda apps and your web browser when doing deep work, for example, or have an R&R focus session that ignores all your work-related notifications so you can focus on gaming or watching something.</p><p>I really love using this feature to stay productive when working from home, and I can't believe more people don't know about this super-useful feature buried in Windows 11. </p><h3 class="article-body__section" id="section-shake-to-minimize"><span>Shake to minimize</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:600px;"><p class="vanilla-image-block" style="padding-top:56.33%;"><img id="XirZanrQZHaBbtjFv8q2PJ" name="TG_gif.gif" alt="Windows 11 shake to minimize" src="https://cdn.mos.cms.futurecdn.net/XirZanrQZHaBbtjFv8q2PJ.gif" mos="" align="middle" fullscreen="" width="600" height="338" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">The shake to minimize feature not only boosts production, it's also fun to use. </span><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>One of my favorite hidden features of Windows 11 gives you a faster, funnier way to minimize windows so you can focus on the one you care about. It's a silly, easy way to close distractions when you're working: you just grab the window you want to focus on by the title bar and shake it around a bit.</p><p>I say it's hidden because it's not enabled by default and you'd never know it existed if you didn't know to look for it. So I'm telling you how to find it: navigate to <strong>Settings -> System -> Multitasking </strong> and click the radio button to <strong>toggle Title bar windows shake on</strong>. </p><p>Once that's done you should be able to grab your window of choice and shake to close everything else. However, don't close that Multitasking menu just yet — there are settings in there which affect the little-known Windows 11 feature I'm going to tell you about next.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-XkjvzO"></div>                            </div>                            <script src="https://kwizly.com/embed/XkjvzO.js" async></script><h3 class="article-body__section" id="section-clipboard-history"><span>Clipboard history</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3200px;"><p class="vanilla-image-block" style="padding-top:56.28%;"><img id="wqLZJV5oMWNNGqHbyj7XkK" name="clipboardhistory" alt="Windows 11 clipboard menu" src="https://cdn.mos.cms.futurecdn.net/wqLZJV5oMWNNGqHbyj7XkK.jpg" mos="" align="middle" fullscreen="1" width="3200" height="1801" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/wqLZJV5oMWNNGqHbyj7XkK.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">Snap layouts let you customize windows to your liking. </span><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>This feature isn't unique to Windows 11 since it's also on Windows 10 as well as macOS, but for some reason it's often disabled by default. I'm talking of course about clipboard history, which when enabled allows you to view a list of things you've copied to your clipboard.</p><p>This is super useful for me because I work with text and images for a living, so I'm regularly copying and pasting sentences, strings of passwords and images between apps. By default we all tend to assume you can only copy and paste one thing at a time, and when you copy something new it removes the last thing you copied from the clipboard.</p><p>But Windows 11 can remember, and if you turn on clipboard history you'll be able to copy and paste multiple things and then open the clipboard history to access and re-copy multiple things. It's super useful and easy to use once you know how.</p><p>The first step is to <strong>enable clipboard history by navigating to Settings > System > Clipboard. </strong>From that menu <strong>make sure the radio button next to Clipboard History is set to on.</strong></p><p>Once you've turned clipboard history on, <strong>you can view your clipboard history by hitting Windows key + K.</strong> This will pop up a small window with multiple tabs, one of which lets you view recent things you copied to the clipboard. </p><p>But there's extra fun features built into the clipboard history menu if you explore the tabs at the top. One lets you copy and paste special characters and punctuation quickly, another lets you copy and paste GIFs and another lists emoji you can use. It's a super useful little feature that's hidden in Windows 11, and I wish more people knew about it!</p><h3 class="article-body__section" id="section-dynamic-lock"><span>Dynamic lock</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2340px;"><p class="vanilla-image-block" style="padding-top:56.28%;"><img id="4ksybdFnRG72FXNETWsLhA" name="signinoptionswin11" alt="Windows 11 sign-in options menu" src="https://cdn.mos.cms.futurecdn.net/4ksybdFnRG72FXNETWsLhA.jpg" mos="" align="middle" fullscreen="1" width="2340" height="1317" attribution="" endorsement="" class="inline expandable"><a href='https://cdn.mos.cms.futurecdn.net/4ksybdFnRG72FXNETWsLhA.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Windows 11 has a built-in feature that lets it intelligently lock your PC when you walk away, but it's hidden away in a submenu by default. Here's how to turn it on for more peace of mind when you need to leave your PC unattended in a public space.</p><p>While you can automatically lock your Windows 11 PC with the <strong>Windows key + L</strong> keyboard shortcut, you can also set up your PC to do it automatically based on either your phone's movements or (if supported) sensing cameras built into your PC.</p><p><strong>To turn on dynamic lock, navigate to Settings > Accounts > Sign-in options and make sure the dynamic lock feature is enabled.</strong></p><p>However, it won't do much unless you have a means by which Windows can tell when you walk away. Many modern laptops from the likes of Lenovo and HP, for example, come with IR cameras and software you can use to have your laptop intelligently lock itself when it detects you've walked away.</p><p>If you don't have something like that on your PC, you'll want to connect your phone to your PC using the <a href="https://www.tomsguide.com/computing/i-paired-my-iphone-16-with-a-windows-pc-and-microsoft-phone-link-cant-compete-with-a-macbook">Microsoft Phone Link app</a>. Once you do have your phone connected (I have my <a href="https://www.tomsguide.com/phones/motorola-phones/motorola-razr-2025-review">Motorola Razr 2025</a> paired in the screenshot above) you should see it appaer in the dynamic lock section and you're good to go!</p><h3 class="article-body__section" id="section-control-your-pc-with-your-voice"><span>Control your PC with your voice</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1917px;"><p class="vanilla-image-block" style="padding-top:56.23%;"><img id="FXoTdngzKekC2WEUE9JXpm" name="win11_voiceaccess_2.jpg" alt="Windows 11 Voice Access grid overlay in action" src="https://cdn.mos.cms.futurecdn.net/FXoTdngzKekC2WEUE9JXpm.jpg" mos="" align="middle" fullscreen="1" width="1917" height="1078" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/FXoTdngzKekC2WEUE9JXpm.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">Windows 11's voice to text feature is extremely useful. </span><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>There are some awfully robust voice command and control systems built into Windows 11, but you have to know they exist and how to access them before you can ever make use of them.</p><p>I've been using these tools for years, and I wish more people knew about them because they aren't just accessibility aids for folks who have trouble controlling PCs with their hands—they're also productivity enhancers and ergonomic creation tools that make it easier to write and control your PC with just your voice.</p><p>First, you need to know about voice typing in Windows 11. To enable it, simply hit the <strong>Windows key + H </strong>shortcut to pop open a small window with a microphone button. Hit the mic and start talking; Windows will automatically transcribe your words to text and write them in whatever text box you have selected on-screen.</p><p>The other, more powerful voice command feature is called Voice Assist, and it lets you not just type with your voice but actually move your mouse around on the desktop, so you can point and click (sort of) with voice commands.</p><p>To turn on voice assist, navigate to Settings > Accessibility > Voice and make sure the Voice access feature is turned on. You will likely need to wait for the PC to download some additional data to make this work, and then you'll be able to summon or dismiss the voice access menu by hitting Windows key + Ctrl + S. </p><p>I love voice assist because you can open and close programs, transcribe text and click on things with commands like "left click", "go back" and "open [app]". Personally I love it because I have RSI and it lets me give my hands a break in long work sessions, but it's also useful if you like to walk around your office while dictating a memo or if you want to control a PC from across the room.</p><p>Admittedly, while Windows 11 voice access is the most useful voice control tool I've ever used it can be frustrating and tricky to master. Sometimes commands aren't recognized and editing text can be especially tricky (try telling a PC to fix a comma splice, I dare you), but overall I think it's a great feature that's worth using—and I wish more people knew about it!</p><p><strong>Have any favorite Windows 11 tips of your own? Let us know in the comments! </strong></p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/15-top-windows-11-tips-everyone-needs-to-know">15 top Windows 11 tips everyone needs to know</a></li><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/5-things-i-wish-i-knew-about-windows-11-when-i-upgraded-from-windows-10">5 things I wish I knew about Windows 11 when I upgraded from Windows 10</a></li><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/dont-buy-a-new-pc-for-windows-11-just-yet-this-lightweight-version-can-save-your-old-windows-10-pc">Don't buy a new PC for Windows 11 just yet — this lightweight version can save your old Windows 10 PC</a></li></ul><div data-model-name="Dell XPS 13,Lenovo Yoga Slim 7x (14-inch Snapdragon),Asus ROG Zephyrus G14 (2024)" data-widget-type="comparison"></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ This hidden Windows 11 setting will give your PC an instant speed boost — here's how to try it ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Even the <a href="https://www.tomsguide.com/computing/laptops/best-windows-laptops">best Windows laptops</a> can struggle to keep up with the demands of AI features, apps and more, but fortunately, you can try out this overlooked Windows 11 performance hack to speed your PC up. </p><p>Put simply, there may be some apps that simply take up too many resources, even though they don't need to, but Windows 11's Efficiency Mode can provide a helping hand by limiting CPU usage and how much RAM is used in certain apps.</p><p>Now, it's also been known to cause some issues for PCs, especially when enabling it on browsers. However, for other apps that are on in the background that sap too much usage, it's worth turning this feature on. </p><p>In a time when <a href="https://www.tomsguide.com/computing/ram-prices-are-exploding-heres-why-and-everything-you-need-to-know-about-surviving-ramageddon">RAM is precious</a>, it's best to make the most of the memory you have on your PC without having to spend a <em>huge </em>chunk of change on more. That's why it's <a href="https://www.tomsguide.com/computing/windows-11-pc-running-slow-heres-11-simple-steps-to-free-up-ram">important to free up RAM fast</a>, and there are plenty of ways to do so. For now, if you're looking to instantly boost your PC's responsiveness, try out this Windows 11 trick. </p><h2 id="reduce-the-load-on-your-cpu">Reduce the load on your CPU</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1535px;"><p class="vanilla-image-block" style="padding-top:56.22%;"><img id="zcukMFNiiHXyMVCzz5Fzzj" name="Windows 11 free up RAM" alt="Screenshot of Windows 11 Task Manager window showing Efficiency Mode option" src="https://cdn.mos.cms.futurecdn.net/zcukMFNiiHXyMVCzz5Fzzj.jpg" mos="" align="middle" fullscreen="" width="1535" height="863" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future / Tom's Guide)</span></figcaption></figure><p>Windows 11's Efficiency mode has been shown to improve the responsiveness of systems by up to 76%, especially on apps that are working far too hard in the background. If you find that there's an app taking too much CPU usage, simply follow the steps below:</p><p>In Task Manager ("Ctrl + Shift + Esc"), <strong>click on the</strong> <strong>"Processes" tab </strong>and select the app you want to put a limit on. <strong>Simply right-click the app</strong> and <strong>select "Efficiency mode."</strong></p><p>There you have it. It aims to save battery life and make your PC more responsive, but it's also known to cause some issues for PCs. See if it works for you, and if it doesn't, just turn off Efficiency Mode on the app you selected.</p><p>Plus, since any open application consumes memory, you can always free up RAM usage by simply closing any apps, programs or windows you're not using. However, if you plan to keep them running in the background, it's worth giving this feature a try. </p><p>Of course, there are other ways to <a href="https://www.tomsguide.com/computing/windows-operating-systems/i-sped-up-my-sluggish-windows-11-pc-with-these-6-free-tricks-heres-how">speed up any sluggish Windows 11 PC</a>, whether it be a laptop or desktop. If you're in need of even more ways to make the most out of your PC, we've got just the tricks. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/keyboards/your-mechanical-keyboard-is-disgusting-heres-how-to-clean-it-properly-in-30-minutes">Your mechanical keyboard is disgusting — here's how to clean it properly in 30 minutes</a></li><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/i-skipped-the-expensive-ram-upgrade-with-this-free-windows-11-trick-heres-what-i-did-instead">Low on RAM? This handy Windows 11 trick frees up virtual memory right now</a></li><li><a href="https://www.tomsguide.com/features/how-much-ram-do-i-need-heres-how-to-know">How much RAM do I need? Here's how to know</a></li></ul><div data-model-name="Apple 13" MacBook Air M4 (2025),Apple 15" MacBook Air M4 (2025),Dell XPS 13,Lenovo Yoga Slim 7x (14-inch Snapdragon),Lenovo Chromebook Plus 14,Asus ROG Zephyrus G14 (2025)" data-widget-type="comparison"></div> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/windows-operating-systems/this-hidden-windows-11-setting-will-give-your-pc-an-instant-speed-boost-heres-how-to-try-it</link>
                                                                            <description>
                            <![CDATA[ Any Windows 11 PC can come to a halt when too many apps are running, but there's a way to limit CPU usage and how much RAM is used thanks to this feature. Here's how to try it. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">uSgqS6qDc8i68dPkv7eZzA</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/BrFuwLRkhyq2A9cuAHy5TG-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 14 Jan 2026 07:00:00 +0000</pubDate>                                                                                                                                <updated>Wed, 14 Jan 2026 10:58:19 +0000</updated>
                                                                                                                                            <category><![CDATA[Windows Operating Systems]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                                                                                    <dc:creator><![CDATA[ Darragh Murphy ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/5QiaTSWf9FcVB7STxcdo4M.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Darragh is Tom’s Guide’s Computing Editor and is fascinated by all things bizarre in tech. This usually leads to assorted coverage varying from washing machines designed for earbuds to the wild world of laptops. Whether it&#039;s connecting Scar from The Lion King to two-factor authentication or turning his love for laptops into a fabricated rap battle from 8 Mile, he believes there’s always a quirky spin to be made.&lt;br&gt;&lt;br&gt;Darragh has previously been an Editor for Laptop Mag and a News Editor for Time Out Dubai, where he also headed the gaming and tech section. His work can be seen in Mashable, Android Police, Shortlist Dubai, Proton, theBit.nz, ReviewsFire and more. &lt;br&gt;&lt;br&gt;While laptops are his bread and butter, he’s also reviewed smartphones, monitors, speakers, docking stations and VPNs. He’s covered IFA, MWC Barcelona, the Consumer Electronics Show (&lt;a href=&quot;https://www.tomsguide.com/uk/tag/ces&quot; target=&quot;_blank&quot;&gt;CES&lt;/a&gt;) and more.&lt;br&gt;&lt;br&gt;When he&#039;s not checking out the latest devices and all things computing, he can be found going for dreaded long runs, watching terrible shark movies, and trying to find time to game.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/BrFuwLRkhyq2A9cuAHy5TG-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[The Windows 11 logo seen through a digital magnifying glass ]]></media:description>                                                            <media:text><![CDATA[The Windows 11 logo seen through a digital magnifying glass ]]></media:text>
                                <media:title type="plain"><![CDATA[The Windows 11 logo seen through a digital magnifying glass ]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/BrFuwLRkhyq2A9cuAHy5TG-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Even the <a href="https://www.tomsguide.com/computing/laptops/best-windows-laptops">best Windows laptops</a> can struggle to keep up with the demands of AI features, apps and more, but fortunately, you can try out this overlooked Windows 11 performance hack to speed your PC up. </p><p>Put simply, there may be some apps that simply take up too many resources, even though they don't need to, but Windows 11's Efficiency Mode can provide a helping hand by limiting CPU usage and how much RAM is used in certain apps.</p><p>Now, it's also been known to cause some issues for PCs, especially when enabling it on browsers. However, for other apps that are on in the background that sap too much usage, it's worth turning this feature on. </p><p>In a time when <a href="https://www.tomsguide.com/computing/ram-prices-are-exploding-heres-why-and-everything-you-need-to-know-about-surviving-ramageddon">RAM is precious</a>, it's best to make the most of the memory you have on your PC without having to spend a <em>huge </em>chunk of change on more. That's why it's <a href="https://www.tomsguide.com/computing/windows-11-pc-running-slow-heres-11-simple-steps-to-free-up-ram">important to free up RAM fast</a>, and there are plenty of ways to do so. For now, if you're looking to instantly boost your PC's responsiveness, try out this Windows 11 trick. </p><h2 id="reduce-the-load-on-your-cpu">Reduce the load on your CPU</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1535px;"><p class="vanilla-image-block" style="padding-top:56.22%;"><img id="zcukMFNiiHXyMVCzz5Fzzj" name="Windows 11 free up RAM" alt="Screenshot of Windows 11 Task Manager window showing Efficiency Mode option" src="https://cdn.mos.cms.futurecdn.net/zcukMFNiiHXyMVCzz5Fzzj.jpg" mos="" align="middle" fullscreen="" width="1535" height="863" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future / Tom's Guide)</span></figcaption></figure><p>Windows 11's Efficiency mode has been shown to improve the responsiveness of systems by up to 76%, especially on apps that are working far too hard in the background. If you find that there's an app taking too much CPU usage, simply follow the steps below:</p><p>In Task Manager ("Ctrl + Shift + Esc"), <strong>click on the</strong> <strong>"Processes" tab </strong>and select the app you want to put a limit on. <strong>Simply right-click the app</strong> and <strong>select "Efficiency mode."</strong></p><p>There you have it. It aims to save battery life and make your PC more responsive, but it's also known to cause some issues for PCs. See if it works for you, and if it doesn't, just turn off Efficiency Mode on the app you selected.</p><p>Plus, since any open application consumes memory, you can always free up RAM usage by simply closing any apps, programs or windows you're not using. However, if you plan to keep them running in the background, it's worth giving this feature a try. </p><p>Of course, there are other ways to <a href="https://www.tomsguide.com/computing/windows-operating-systems/i-sped-up-my-sluggish-windows-11-pc-with-these-6-free-tricks-heres-how">speed up any sluggish Windows 11 PC</a>, whether it be a laptop or desktop. If you're in need of even more ways to make the most out of your PC, we've got just the tricks. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/keyboards/your-mechanical-keyboard-is-disgusting-heres-how-to-clean-it-properly-in-30-minutes">Your mechanical keyboard is disgusting — here's how to clean it properly in 30 minutes</a></li><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/i-skipped-the-expensive-ram-upgrade-with-this-free-windows-11-trick-heres-what-i-did-instead">Low on RAM? This handy Windows 11 trick frees up virtual memory right now</a></li><li><a href="https://www.tomsguide.com/features/how-much-ram-do-i-need-heres-how-to-know">How much RAM do I need? Here's how to know</a></li></ul><div data-model-name="Apple 13" MacBook Air M4 (2025),Apple 15" MacBook Air M4 (2025),Dell XPS 13,Lenovo Yoga Slim 7x (14-inch Snapdragon),Lenovo Chromebook Plus 14,Asus ROG Zephyrus G14 (2025)" data-widget-type="comparison"></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Sleuth uncovers Office 97 Easter egg hidden for 30 years: 'the comments Clippy provides are a cherry on top' ]]></title>
                                                                                                <dc:content><![CDATA[ <p>It's been nearly thiry years since Microsoft Office 97 hit store shelves, and there are still secrets tucked inside waiting to be uncovered. </p><p>One software enthusiast discovered just such a secret this week while messing around with Office 97, and it's a great reminder that even the most basic productivity software is (for now) made by human beings.</p><p>Plus, Clippy makes a cameo! </p><p>The news broke on X Sunday, when user @Albacore <a href="https://x.com/thebookisclosed/status/2010438160107647134" target="_blank" rel="nofollow">published</a> a brief video clip demonstrating how to unlock a hidden developer credits sequence in Microsoft Office 97. The trick appears to be moving a window into a series of specific positions around the screen, then typing a specific command to the Microsoft Office Assistant (aka Clippit or Clippy): "This is not a contest."</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2010438160107647134"><p lang="en" dir="ltr">Reading @stevesi's amazing posts about Office 97's development got me wondering.. could there be more fun stuff hiding under the hood that nobody found yet? Yessir! There's a whole developer credits sequence incl. commentary from Clippit that starts 1 minute in. Take a look! 📹📎 pic.twitter.com/h83VnGfk4E<a href="https://twitter.com/cantworkitout/status/2010438160107647134">January 11, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>At that point a new window appears and a colorful credits sequence plays out for about three minutes, replete with rainbow animated text and other hallmarks of the 20th century.</p><p>But what really makes this a fun little surprise is that someone wrote commentary for Clippy that plays out during the credits sequence. So not only do you get a chance ot see which humans actually made Clippy, you get to hear Clippy's feelings about them. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:985px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="JCSeNo8XxEpvdEw6GPiSVZ" name="clippy2" alt="Clippy in Microsoft Office 97" src="https://cdn.mos.cms.futurecdn.net/JCSeNo8XxEpvdEw6GPiSVZ.jpg" mos="" align="middle" fullscreen="" width="985" height="554" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Sure, it's cheesy, but it's also kind of sweet. There's basically no chance anyone would ever stumble on this secret by accident, so you know that whoever worked on this was designing it specifically for their colleagues. </p><p>It almost feels intimate, like a secret clubhouse you stumbled into by accident. And while Clippy is perfectly polite and doesn't share any juicy 30-year-old office drama, his running commentary makes the credits sequence feel somehow more human. Honestly, I wish we'd see more creators of software, games and movies add more personality and commentary to the credits in their work as well.</p><p>Folks are still poking at Office 97 and other classic software to find more secrets, too, so this may not be the final Easter egg Clippy is hiding!</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide </span></h3><ul><li><a href="https://www.tomsguide.com/computing/your-unsupported-pc-can-still-run-windows-11-in-2025-heres-how">Your 'unsupported' Windows 10 PC can still run Windows 11 — here's how</a></li><li><a href="https://www.tomsguide.com/computing/this-hidden-windows-11-feature-lets-you-force-an-emergency-restart-how-it-works-and-where-to-find-it">This hidden Windows 11 feature lets you force an emergency restart </a></li><li><a href="https://www.tomsguide.com/computing/laptops/your-browser-is-draining-your-laptop-battery-heres-how-to-stop-it">Your browser is draining your laptop battery — here's how to stop it</a></li></ul><div data-model-name="Apple 13" MacBook Air M4 (2025),Apple 15" MacBook Air M4 (2025),Dell XPS 13,Lenovo Yoga Slim 7x (14-inch Snapdragon),Lenovo Chromebook Plus 14,Asus ROG Zephyrus G14 (2025)" data-widget-type="comparison"></div> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/windows-operating-systems/sleuth-uncovers-office-97-easter-egg-hidden-for-30-years-the-comments-clippy-provides-are-a-cherry-on-top</link>
                                                                            <description>
                            <![CDATA[ Microsoft Office 97 came out in the fall of 1996, and nearly thirty years later one software enthusiast with an eye for Easter eggs has discovered a fun little secret unlocked by an arcane series of commands. Clippy's there, too! ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">5gVhm9diphi6DL8yrf2Rdi</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/h648ixY5WzVKVMpkvsZ2zf-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 13 Jan 2026 18:53:52 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Windows Operating Systems]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                                                                <author><![CDATA[ alex.wawro@futurenet.com (Alex Wawro) ]]></author>                    <dc:creator><![CDATA[ Alex Wawro ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/Y4wW9n7CZrNzgofqVkGA5J.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Alex Wawro is a lifelong tech and games enthusiast with more than a decade of experience covering the movers and shakers in both industries for media outlets like Game Developer, Black Hat and PC World magazine. A lifelong PC builder, he currently serves as a senior editor at Tom&#039;s Guide covering all things computing, from laptops and desktops to printers, keyboards and mice. If you plug it into a PC, he&#039;s probably the person to talk to.&amp;nbsp;&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/h648ixY5WzVKVMpkvsZ2zf-1280-80.jpg">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Microsoft Office 97]]></media:description>                                                            <media:text><![CDATA[Microsoft Office 97]]></media:text>
                                <media:title type="plain"><![CDATA[Microsoft Office 97]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/h648ixY5WzVKVMpkvsZ2zf-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>It's been nearly thiry years since Microsoft Office 97 hit store shelves, and there are still secrets tucked inside waiting to be uncovered. </p><p>One software enthusiast discovered just such a secret this week while messing around with Office 97, and it's a great reminder that even the most basic productivity software is (for now) made by human beings.</p><p>Plus, Clippy makes a cameo! </p><p>The news broke on X Sunday, when user @Albacore <a href="https://x.com/thebookisclosed/status/2010438160107647134" target="_blank" rel="nofollow">published</a> a brief video clip demonstrating how to unlock a hidden developer credits sequence in Microsoft Office 97. The trick appears to be moving a window into a series of specific positions around the screen, then typing a specific command to the Microsoft Office Assistant (aka Clippit or Clippy): "This is not a contest."</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2010438160107647134"><p lang="en" dir="ltr">Reading @stevesi's amazing posts about Office 97's development got me wondering.. could there be more fun stuff hiding under the hood that nobody found yet? Yessir! There's a whole developer credits sequence incl. commentary from Clippit that starts 1 minute in. Take a look! 📹📎 pic.twitter.com/h83VnGfk4E<a href="https://twitter.com/cantworkitout/status/2010438160107647134">January 11, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>At that point a new window appears and a colorful credits sequence plays out for about three minutes, replete with rainbow animated text and other hallmarks of the 20th century.</p><p>But what really makes this a fun little surprise is that someone wrote commentary for Clippy that plays out during the credits sequence. So not only do you get a chance ot see which humans actually made Clippy, you get to hear Clippy's feelings about them. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:985px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="JCSeNo8XxEpvdEw6GPiSVZ" name="clippy2" alt="Clippy in Microsoft Office 97" src="https://cdn.mos.cms.futurecdn.net/JCSeNo8XxEpvdEw6GPiSVZ.jpg" mos="" align="middle" fullscreen="" width="985" height="554" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Sure, it's cheesy, but it's also kind of sweet. There's basically no chance anyone would ever stumble on this secret by accident, so you know that whoever worked on this was designing it specifically for their colleagues. </p><p>It almost feels intimate, like a secret clubhouse you stumbled into by accident. And while Clippy is perfectly polite and doesn't share any juicy 30-year-old office drama, his running commentary makes the credits sequence feel somehow more human. Honestly, I wish we'd see more creators of software, games and movies add more personality and commentary to the credits in their work as well.</p><p>Folks are still poking at Office 97 and other classic software to find more secrets, too, so this may not be the final Easter egg Clippy is hiding!</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide </span></h3><ul><li><a href="https://www.tomsguide.com/computing/your-unsupported-pc-can-still-run-windows-11-in-2025-heres-how">Your 'unsupported' Windows 10 PC can still run Windows 11 — here's how</a></li><li><a href="https://www.tomsguide.com/computing/this-hidden-windows-11-feature-lets-you-force-an-emergency-restart-how-it-works-and-where-to-find-it">This hidden Windows 11 feature lets you force an emergency restart </a></li><li><a href="https://www.tomsguide.com/computing/laptops/your-browser-is-draining-your-laptop-battery-heres-how-to-stop-it">Your browser is draining your laptop battery — here's how to stop it</a></li></ul><div data-model-name="Apple 13" MacBook Air M4 (2025),Apple 15" MacBook Air M4 (2025),Dell XPS 13,Lenovo Yoga Slim 7x (14-inch Snapdragon),Lenovo Chromebook Plus 14,Asus ROG Zephyrus G14 (2025)" data-widget-type="comparison"></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ 5 free ways to speed up your slow Mac ]]></title>
                                                                                                <dc:content><![CDATA[ <p>When you bought your Mac, it would have run like a dream. Apps opened in a flash and navigation was smooth, though good things don’t always last. Macs naturally slow down over time, but don’t consign your computer to the scrap heap just yet. With a few tweaks, you can get your Mac running quickly again.</p><p>You can also make a big difference to a Mac’s performance by keeping it up to date. Learn <a href="https://www.tomsguide.com/computing/macos/how-to-download-macos-tahoe">how to download macOS Tahoe</a>, for instance, and make sure you install updates as and when they’re rolled out — this will at least eliminate bugs that could be causing a slowdown. Here's five free ways you can speed up your slow Mac. </p><section class="howto-block">                    <h3>1. Manage your Login items</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/SqCFDc5tpw3cnuGjARg6uD.png"                                        alt="5 tips and tricks to speed up your Mac"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/SqCFDc5tpw3cnuGjARg6uD.png"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>Ideally, you’ll want to power up your Mac and get down to business within a short amount of time. If many apps are set to open automatically, however, it will cause a delay so it’s worth checking what’s in your Login items and managing them. </p><p>To do so, <strong>click the Apple menu</strong> and <strong>select System Settings</strong> then <strong>click General</strong> in the left-hand sidebar. Now <strong>select Login Items & Extensions</strong> and l<strong>ook under Open At Login</strong>. If there are items there that you don’t need to be available the moment you boot up, <strong>select the unwanted items</strong> and <strong>click “—”</strong>.</p></p>                </section><section class="howto-block">                    <h3>2. Remove unnecessary files</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/RTgx5zk6mgCPyEN8Sna4DE.png"                                        alt="5 tips and tricks to speed up your Mac"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/RTgx5zk6mgCPyEN8Sna4DE.png"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>The more you use your Mac, the more files you end up accumulating and not all of them are desirable. You’ll end up with many temporary, redundant and duplicate files.</p><p>To identify problematic files, you can <strong>go to the Apple Menu</strong>, <strong>select System Settings</strong>, <strong>click General</strong> and <strong>choose Storage</strong>. This will tell you how much space is being taken up by different apps and documents on your Mac. </p><p><strong>Click Large Files</strong> to see the biggest problems then click on any of the entries and you’ll be able to delve further. For easier management, you can <strong>click the Size column </strong>and instantly see exactly which files are taking up the most room. You can then <strong>click a file </strong>and <strong>select Delete</strong>.</p><p>Next, <strong>click Downloads</strong> and do the same before you <strong>move on to Unsupported Apps</strong> and then <strong>move on to File Browser</strong> to carry out a more complete job.</p><p>It’s also worth learning <a href="https://www.tomsguide.com/how-to/how-to-clear-the-cache-on-mac">how to clear the cache on Mac</a>.</p></p>                </section><section class="howto-block">                    <h3>3. Close your browser tabs</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/nPPJk5ii9XUi6ntuUZZtHE.png"                                        alt="5 tips and tricks to speed up your Mac"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/nPPJk5ii9XUi6ntuUZZtHE.png"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>Having too many browser tabs open will slow your Mac because each one will be consuming CPU power and RAM. The solution here is simple: <strong>close the tabs that you don’t need</strong> and your Mac is likely to run more quickly.</p><p>But don’t stop there. You may as well take the opportunity to clear the cache. To do this, you’re going to need to access a hidden menu. In Safari, <strong>click Safari</strong> in the top-left corner, <strong>select Settings</strong>, <strong>choose Advanced</strong> and <strong>tick Show features for web developers</strong> at the bottom. This will allow you to see and <strong>click the Develop menu</strong>. </p><p>Now simply <strong>select Empty Caches</strong>.</p></p>                </section><section class="howto-block">                    <h3>4. Check for resource-hungry processes</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/RJUAkv8tzisiQoT56G2bzD.png"                                        alt="5 tips and tricks to speed up your Mac"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/RJUAkv8tzisiQoT56G2bzD.png"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>Some apps use a lot of CPU power and this can cause you to see the dreaded “beachball” — a spinning wheel that indicates your Mac is struggling to keep up. You’ll find your Mac runs more quickly if you pull the plug on these resource-hoggers and the way to do this is by opening the Activity Monitor.</p><p>You will find Activity Monitor if you <strong>click the Apps app</strong> in the Dock and <strong>type Activity Monitor</strong>. It will show you all of the processes running on your Mac and you will be able to see how much of the CPU and Memory is being consumed. </p><p>If there’s a particularly high percentage, you can take swift action: <strong>click the process</strong> and then <strong>select the X icon</strong> in the top bar. You’ll be asked if you want to <strong>quit or force quit </strong>the process.</p></p>                </section><section class="howto-block">                    <h3>5. Turn off visual effects</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/YyXsMqMoymWTygrznwC96E.png"                                        alt="5 tips and tricks to speed up your Mac"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/YyXsMqMoymWTygrznwC96E.png"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>A Mac’s visual effects can cause it to run more sluggishly — especially if the Mac is older or has limited resources, or if you’re using an app that places a heavy load on the system. </p><p>If this is the case, you should limit or turn off the visual effects. You can do this in a number of ways, putting you in control of how macOS will look as a result.</p><p>First of all, <strong>click the Apple menu</strong>, <strong>select System Settings</strong> and <strong>choose Accessibility</strong>. Next, <strong>select Display</strong>. There you can <strong>turn on Reduce transparency </strong>which replaces semi-transparent elements with solid backgrounds. </p><p>Once done, go back and <strong>click Motion</strong>. You can now <strong>turn on Reduce Motion</strong>, <strong>turn on Dim flashing lights</strong> and <strong>turn off Auto-play animated images</strong>. These options can make a real difference to your Mac’s speed.</p></p>                </section><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide </span></h3><ul><li><a href="https://www.tomsguide.com/computing/you-can-customize-your-mac-mouse-pointer-heres-how">You can customize your Mac mouse pointer — here's how</a></li><li><a href="https://www.tomsguide.com/computing/macos/getting-started-with-mac-shortcuts-how-to-find-use-and-create-time-saving-automations">How to set up time-saving Shortcuts on your Mac</a></li><li><a href="https://www.tomsguide.com/phones/you-can-schedule-your-mac-to-turn-off-and-on-heres-how">Schedule your Mac to turn off and on — here's how</a></li></ul><div data-model-name="Apple 13" MacBook Air M4 (2025),Apple MacBook Pro 14-inch M5 (2025),Apple 15" MacBook Air M4 (2025),Apple MacBook Pro 16-inch M4 (2024),Apple Macbook Air (M1 2020)" data-widget-type="multimodelreview" data-widget-title="Today’s MacBook deals"></div> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/apple-desktops/5-free-ways-to-speed-up-your-slow-mac</link>
                                                                            <description>
                            <![CDATA[ Make your Mac run faster with these free and low risk tips. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">VqzUs3ZFriaWFGGG2P8NmR</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/oJPUrCLCm3RYdhqnwpaNzU-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sun, 04 Jan 2026 07:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[macOS]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                                                                                    <dc:creator><![CDATA[ David Crookes ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/yQWsHDmJr9eBZrL4xqd3bE.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;David Crookes has been writing professionally for close to 30 years and, as well as a great fondness for gaming, space, film, music, history, health and politics, he&#039;s largely specialized in technology for much of his career. He particularly focuses on Apple devices, having admired the company&#039;s tech since using iMac G3 in 1998. He also developed a fondness for the older Macintosh LC III that he later used in his first job as a newspaper reporter.&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Since becoming a freelance writer, he has written for a wide number of publications including the Apple-focussed magazines iCreate and Macworld as well as Micro Mart, Web User, T3, Retro Gamer, MagPi, Computer Shopper, Gadget and 3D Artist. His love of gaming has seen him write for Retro Gamer, GamesTM and Wireframe among others and, despite his love of Apple, he still uses a PC – working for PC Pro and once writing for Total PC Gaming.&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;One of his joys is helping others to use technology which has led him to writing many “how to” tutorials explaining many ways of getting the most out of various devices. He&#039;s become an expert user of the iPhone, iPad, Mac, Apple Watch and Apple TV. He also likes to kick back with a gaming session on an PlayStation 5 or Xbox Series X | S while getting his retro fix on an Evercade handheld.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/oJPUrCLCm3RYdhqnwpaNzU-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Apple Mac Pro and Pro Display XDR]]></media:description>                                                            <media:text><![CDATA[Apple Mac Pro and Pro Display XDR]]></media:text>
                                <media:title type="plain"><![CDATA[Apple Mac Pro and Pro Display XDR]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/oJPUrCLCm3RYdhqnwpaNzU-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>When you bought your Mac, it would have run like a dream. Apps opened in a flash and navigation was smooth, though good things don’t always last. Macs naturally slow down over time, but don’t consign your computer to the scrap heap just yet. With a few tweaks, you can get your Mac running quickly again.</p><p>You can also make a big difference to a Mac’s performance by keeping it up to date. Learn <a href="https://www.tomsguide.com/computing/macos/how-to-download-macos-tahoe">how to download macOS Tahoe</a>, for instance, and make sure you install updates as and when they’re rolled out — this will at least eliminate bugs that could be causing a slowdown. Here's five free ways you can speed up your slow Mac. </p><section class="howto-block">                    <h3>1. Manage your Login items</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/SqCFDc5tpw3cnuGjARg6uD.png"                                        alt="5 tips and tricks to speed up your Mac"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/SqCFDc5tpw3cnuGjARg6uD.png"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>Ideally, you’ll want to power up your Mac and get down to business within a short amount of time. If many apps are set to open automatically, however, it will cause a delay so it’s worth checking what’s in your Login items and managing them. </p><p>To do so, <strong>click the Apple menu</strong> and <strong>select System Settings</strong> then <strong>click General</strong> in the left-hand sidebar. Now <strong>select Login Items & Extensions</strong> and l<strong>ook under Open At Login</strong>. If there are items there that you don’t need to be available the moment you boot up, <strong>select the unwanted items</strong> and <strong>click “—”</strong>.</p></p>                </section><section class="howto-block">                    <h3>2. Remove unnecessary files</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/RTgx5zk6mgCPyEN8Sna4DE.png"                                        alt="5 tips and tricks to speed up your Mac"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/RTgx5zk6mgCPyEN8Sna4DE.png"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>The more you use your Mac, the more files you end up accumulating and not all of them are desirable. You’ll end up with many temporary, redundant and duplicate files.</p><p>To identify problematic files, you can <strong>go to the Apple Menu</strong>, <strong>select System Settings</strong>, <strong>click General</strong> and <strong>choose Storage</strong>. This will tell you how much space is being taken up by different apps and documents on your Mac. </p><p><strong>Click Large Files</strong> to see the biggest problems then click on any of the entries and you’ll be able to delve further. For easier management, you can <strong>click the Size column </strong>and instantly see exactly which files are taking up the most room. You can then <strong>click a file </strong>and <strong>select Delete</strong>.</p><p>Next, <strong>click Downloads</strong> and do the same before you <strong>move on to Unsupported Apps</strong> and then <strong>move on to File Browser</strong> to carry out a more complete job.</p><p>It’s also worth learning <a href="https://www.tomsguide.com/how-to/how-to-clear-the-cache-on-mac">how to clear the cache on Mac</a>.</p></p>                </section><section class="howto-block">                    <h3>3. Close your browser tabs</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/nPPJk5ii9XUi6ntuUZZtHE.png"                                        alt="5 tips and tricks to speed up your Mac"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/nPPJk5ii9XUi6ntuUZZtHE.png"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>Having too many browser tabs open will slow your Mac because each one will be consuming CPU power and RAM. The solution here is simple: <strong>close the tabs that you don’t need</strong> and your Mac is likely to run more quickly.</p><p>But don’t stop there. You may as well take the opportunity to clear the cache. To do this, you’re going to need to access a hidden menu. In Safari, <strong>click Safari</strong> in the top-left corner, <strong>select Settings</strong>, <strong>choose Advanced</strong> and <strong>tick Show features for web developers</strong> at the bottom. This will allow you to see and <strong>click the Develop menu</strong>. </p><p>Now simply <strong>select Empty Caches</strong>.</p></p>                </section><section class="howto-block">                    <h3>4. Check for resource-hungry processes</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/RJUAkv8tzisiQoT56G2bzD.png"                                        alt="5 tips and tricks to speed up your Mac"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/RJUAkv8tzisiQoT56G2bzD.png"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>Some apps use a lot of CPU power and this can cause you to see the dreaded “beachball” — a spinning wheel that indicates your Mac is struggling to keep up. You’ll find your Mac runs more quickly if you pull the plug on these resource-hoggers and the way to do this is by opening the Activity Monitor.</p><p>You will find Activity Monitor if you <strong>click the Apps app</strong> in the Dock and <strong>type Activity Monitor</strong>. It will show you all of the processes running on your Mac and you will be able to see how much of the CPU and Memory is being consumed. </p><p>If there’s a particularly high percentage, you can take swift action: <strong>click the process</strong> and then <strong>select the X icon</strong> in the top bar. You’ll be asked if you want to <strong>quit or force quit </strong>the process.</p></p>                </section><section class="howto-block">                    <h3>5. Turn off visual effects</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/YyXsMqMoymWTygrznwC96E.png"                                        alt="5 tips and tricks to speed up your Mac"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/YyXsMqMoymWTygrznwC96E.png"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>A Mac’s visual effects can cause it to run more sluggishly — especially if the Mac is older or has limited resources, or if you’re using an app that places a heavy load on the system. </p><p>If this is the case, you should limit or turn off the visual effects. You can do this in a number of ways, putting you in control of how macOS will look as a result.</p><p>First of all, <strong>click the Apple menu</strong>, <strong>select System Settings</strong> and <strong>choose Accessibility</strong>. Next, <strong>select Display</strong>. There you can <strong>turn on Reduce transparency </strong>which replaces semi-transparent elements with solid backgrounds. </p><p>Once done, go back and <strong>click Motion</strong>. You can now <strong>turn on Reduce Motion</strong>, <strong>turn on Dim flashing lights</strong> and <strong>turn off Auto-play animated images</strong>. These options can make a real difference to your Mac’s speed.</p></p>                </section><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide </span></h3><ul><li><a href="https://www.tomsguide.com/computing/you-can-customize-your-mac-mouse-pointer-heres-how">You can customize your Mac mouse pointer — here's how</a></li><li><a href="https://www.tomsguide.com/computing/macos/getting-started-with-mac-shortcuts-how-to-find-use-and-create-time-saving-automations">How to set up time-saving Shortcuts on your Mac</a></li><li><a href="https://www.tomsguide.com/phones/you-can-schedule-your-mac-to-turn-off-and-on-heres-how">Schedule your Mac to turn off and on — here's how</a></li></ul><div data-model-name="Apple 13" MacBook Air M4 (2025),Apple MacBook Pro 14-inch M5 (2025),Apple 15" MacBook Air M4 (2025),Apple MacBook Pro 16-inch M4 (2024),Apple Macbook Air (M1 2020)" data-widget-type="multimodelreview" data-widget-title="Today’s MacBook deals"></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I sped up my sluggish Windows 11 PC with these 6 free tricks — here's how ]]></title>
                                                                                                <dc:content><![CDATA[ <p>As we get used to AI generating images and answering questions for us in seconds, it is becoming even more frustrating when a PC can’t handle basic tasks without freezing or grinding to a halt.</p><p>Before you break open your piggy bank for <a href="https://www.tomsguide.com/computing/laptops/best-laptops">a new device</a>, there are several things you can do to improve your Windows 11 laptop or desktop’s performance which don’t require deep technical skills. </p><p>I've rounded up six practical, low-risk ways to speed up your machine that don’t require sketchy third-party "cleaner" tools. To try them out yourself, this is what you need to do.</p><section class="howto-block">                    <h3>1. Disable unnecessary startup programs</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/ZFDwR6U89XvoShRksHHykS.jpg"                                        alt="Windows 11 start-up impact"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/ZFDwR6U89XvoShRksHHykS.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide )</div></figure>                    <p><p>This is the low-hanging fruit of PC optimization. Windows 11 lets several apps launch at startup by default, hogging resources before you've even opened the first program you actually need. </p><p>To get rid of this bloat, <strong>click on the start button</strong> and <strong>navigate to your settings</strong>. <strong>Find the apps section</strong> and <strong>click on the startup tab</strong>.</p><p><strong>Sort the apps by "Startup impact"</strong> and <strong>disable anything you don't immediately need</strong> when you boot up. </p></p>                </section><section class="howto-block">                    <h3>2. Turn Off Visual Effects</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/gmyiC2nffLVMCdqgHfeGjP.jpg"                                        alt="Disable transparency effects Windows 11 "                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/gmyiC2nffLVMCdqgHfeGjP.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide )</div></figure>                    <p><p>We’ve come a long way from the harsh, grey dialog boxes of Windows 95. Windows 11’s default animations and visual effects are easier on the eyes, but on systems where resources are tight, that polish comes at the cost of lower performance.</p><p>Open your PC’s settings and <strong>search for visual effects</strong>. To speed up your PC, <strong>disable transparency effects</strong> and <strong>animation effects</strong>.</p></p>                </section><section class="howto-block">                    <h3>3. Enable Storage Sense </h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/ezRxqG6CPpMrcFDpKFrTGa.jpg"                                        alt="Enable storage sense on Windows 11"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/ezRxqG6CPpMrcFDpKFrTGa.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>There’s no need to do extra work when Windows can do it for you. Your PC comes with an automatic cleanup tool built right in.</p><p>Again, <strong>navigate to your settings</strong>. <strong>Search for storage</strong>. Then <strong>enable Storage Sense</strong> using the toggle box.</p><p>You can set it up to run weekly or monthly, and it'll automatically delete temporary files, clear your recycle bin, and even remove old downloads you've forgotten about.</p></p>                </section><section class="howto-block">                    <h3>4. Adjust your power settings</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/5a5iJFrMi6WsE7zKDJoDCn.jpg"                                        alt="Select High Performance in power options Windows 11"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/5a5iJFrMi6WsE7zKDJoDCn.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide )</div></figure>                    <p><p>Here’s another easy win. If you're on a desktop or don't mind sacrificing some battery life on a laptop, tweaking your power plan can deliver noticeable performance gains. </p><p>From your settings, <strong>open the control panel</strong>. <strong>Select hardware and sound</strong> and <strong>click power options</strong>. Then<strong> browse through the available plans</strong> and <strong>select high performance</strong>.</p></p>                </section><section class="howto-block">                    <h3>5. Update Windows</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/Z9HAcM2pBMZUsfEp4BhohE.jpg"                                        alt="Check for Windows updates"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/Z9HAcM2pBMZUsfEp4BhohE.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>The last thing you want is your own PC working against you. Keeping Windows up to date ensures you’re getting the latest security fixes and patches for bugs that can quietly drag down performance.</p><p><strong>Open settings</strong>, <strong>scroll down to Windows Update</strong> on the left side-bar and <strong>hit check for updates</strong>. While you’re there, you can also <strong>ensure automatic updates have been enabled</strong> so you will no longer have to complete this process manually going forward.</p></p>                </section><section class="howto-block">                    <h3>6. Optimize storage</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/n9Cr45uFCVSurSoUJEjzpN.jpg"                                        alt="Optimize Windows storage"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/n9Cr45uFCVSurSoUJEjzpN.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide )</div></figure>                    <p><p>When you’re looking for ways to speed up your PC, don't overlook storage optimization recommendations Windows provides.</p><p><strong>Open settings</strong>, and <strong>click on system</strong>. Scroll down to advanced storage settings and click drive optimization. <strong>Select your drives</strong> and then <strong>click optimize</strong>.</p></p>                </section><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide </span></h3><ul><li><a href="https://www.tomsguide.com/computing/your-unsupported-pc-can-still-run-windows-11-in-2025-heres-how">Your 'unsupported' Windows 10 PC can still run Windows 11 in 2025 — here's how</a></li><li><a href="https://www.tomsguide.com/computing/this-hidden-windows-11-feature-lets-you-force-an-emergency-restart-how-it-works-and-where-to-find-it">This hidden Windows 11 feature lets you force an emergency restart </a></li><li><a href="https://www.tomsguide.com/computing/laptops/your-browser-is-draining-your-laptop-battery-heres-how-to-stop-it">Your browser is draining your laptop battery — here's how to stop it</a></li></ul><div data-model-name="Apple 13" MacBook Air M4 (2025),Apple 15" MacBook Air M4 (2025),Dell XPS 13,Lenovo Yoga Slim 7x (14-inch Snapdragon),Lenovo Chromebook Plus 14,Asus ROG Zephyrus G14 (2025)" data-widget-type="comparison"></div> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/windows-operating-systems/i-sped-up-my-sluggish-windows-11-pc-with-these-6-free-tricks-heres-how</link>
                                                                            <description>
                            <![CDATA[ These simple tricks speed up your Windows 11 PC, plus they’re all free and low-risk. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">5sLRmxiE79ZEuySmCbfWhQ</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/WWfVQoKyhS6ocSop9eu59R-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 01 Jan 2026 09:30:00 +0000</pubDate>                                                                                                                                <updated>Thu, 01 Jan 2026 13:16:35 +0000</updated>
                                                                                                                                            <category><![CDATA[Windows Operating Systems]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                                                                                    <dc:creator><![CDATA[ Christoph Schwaiger ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/6zNzfEWRyEDeSNA3uHKcAN.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/WWfVQoKyhS6ocSop9eu59R-1280-80.jpg">
                                                            <media:credit><![CDATA[Microsoft]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Windows 11]]></media:description>                                                            <media:text><![CDATA[Windows 11]]></media:text>
                                <media:title type="plain"><![CDATA[Windows 11]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/WWfVQoKyhS6ocSop9eu59R-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>As we get used to AI generating images and answering questions for us in seconds, it is becoming even more frustrating when a PC can’t handle basic tasks without freezing or grinding to a halt.</p><p>Before you break open your piggy bank for <a href="https://www.tomsguide.com/computing/laptops/best-laptops">a new device</a>, there are several things you can do to improve your Windows 11 laptop or desktop’s performance which don’t require deep technical skills. </p><p>I've rounded up six practical, low-risk ways to speed up your machine that don’t require sketchy third-party "cleaner" tools. To try them out yourself, this is what you need to do.</p><section class="howto-block">                    <h3>1. Disable unnecessary startup programs</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/ZFDwR6U89XvoShRksHHykS.jpg"                                        alt="Windows 11 start-up impact"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/ZFDwR6U89XvoShRksHHykS.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide )</div></figure>                    <p><p>This is the low-hanging fruit of PC optimization. Windows 11 lets several apps launch at startup by default, hogging resources before you've even opened the first program you actually need. </p><p>To get rid of this bloat, <strong>click on the start button</strong> and <strong>navigate to your settings</strong>. <strong>Find the apps section</strong> and <strong>click on the startup tab</strong>.</p><p><strong>Sort the apps by "Startup impact"</strong> and <strong>disable anything you don't immediately need</strong> when you boot up. </p></p>                </section><section class="howto-block">                    <h3>2. Turn Off Visual Effects</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/gmyiC2nffLVMCdqgHfeGjP.jpg"                                        alt="Disable transparency effects Windows 11 "                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/gmyiC2nffLVMCdqgHfeGjP.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide )</div></figure>                    <p><p>We’ve come a long way from the harsh, grey dialog boxes of Windows 95. Windows 11’s default animations and visual effects are easier on the eyes, but on systems where resources are tight, that polish comes at the cost of lower performance.</p><p>Open your PC’s settings and <strong>search for visual effects</strong>. To speed up your PC, <strong>disable transparency effects</strong> and <strong>animation effects</strong>.</p></p>                </section><section class="howto-block">                    <h3>3. Enable Storage Sense </h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/ezRxqG6CPpMrcFDpKFrTGa.jpg"                                        alt="Enable storage sense on Windows 11"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/ezRxqG6CPpMrcFDpKFrTGa.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>There’s no need to do extra work when Windows can do it for you. Your PC comes with an automatic cleanup tool built right in.</p><p>Again, <strong>navigate to your settings</strong>. <strong>Search for storage</strong>. Then <strong>enable Storage Sense</strong> using the toggle box.</p><p>You can set it up to run weekly or monthly, and it'll automatically delete temporary files, clear your recycle bin, and even remove old downloads you've forgotten about.</p></p>                </section><section class="howto-block">                    <h3>4. Adjust your power settings</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/5a5iJFrMi6WsE7zKDJoDCn.jpg"                                        alt="Select High Performance in power options Windows 11"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/5a5iJFrMi6WsE7zKDJoDCn.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide )</div></figure>                    <p><p>Here’s another easy win. If you're on a desktop or don't mind sacrificing some battery life on a laptop, tweaking your power plan can deliver noticeable performance gains. </p><p>From your settings, <strong>open the control panel</strong>. <strong>Select hardware and sound</strong> and <strong>click power options</strong>. Then<strong> browse through the available plans</strong> and <strong>select high performance</strong>.</p></p>                </section><section class="howto-block">                    <h3>5. Update Windows</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/Z9HAcM2pBMZUsfEp4BhohE.jpg"                                        alt="Check for Windows updates"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/Z9HAcM2pBMZUsfEp4BhohE.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>The last thing you want is your own PC working against you. Keeping Windows up to date ensures you’re getting the latest security fixes and patches for bugs that can quietly drag down performance.</p><p><strong>Open settings</strong>, <strong>scroll down to Windows Update</strong> on the left side-bar and <strong>hit check for updates</strong>. While you’re there, you can also <strong>ensure automatic updates have been enabled</strong> so you will no longer have to complete this process manually going forward.</p></p>                </section><section class="howto-block">                    <h3>6. Optimize storage</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/n9Cr45uFCVSurSoUJEjzpN.jpg"                                        alt="Optimize Windows storage"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/n9Cr45uFCVSurSoUJEjzpN.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide )</div></figure>                    <p><p>When you’re looking for ways to speed up your PC, don't overlook storage optimization recommendations Windows provides.</p><p><strong>Open settings</strong>, and <strong>click on system</strong>. Scroll down to advanced storage settings and click drive optimization. <strong>Select your drives</strong> and then <strong>click optimize</strong>.</p></p>                </section><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide </span></h3><ul><li><a href="https://www.tomsguide.com/computing/your-unsupported-pc-can-still-run-windows-11-in-2025-heres-how">Your 'unsupported' Windows 10 PC can still run Windows 11 in 2025 — here's how</a></li><li><a href="https://www.tomsguide.com/computing/this-hidden-windows-11-feature-lets-you-force-an-emergency-restart-how-it-works-and-where-to-find-it">This hidden Windows 11 feature lets you force an emergency restart </a></li><li><a href="https://www.tomsguide.com/computing/laptops/your-browser-is-draining-your-laptop-battery-heres-how-to-stop-it">Your browser is draining your laptop battery — here's how to stop it</a></li></ul><div data-model-name="Apple 13" MacBook Air M4 (2025),Apple 15" MacBook Air M4 (2025),Dell XPS 13,Lenovo Yoga Slim 7x (14-inch Snapdragon),Lenovo Chromebook Plus 14,Asus ROG Zephyrus G14 (2025)" data-widget-type="comparison"></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ USB flash drives can work as extra RAM — here's how it works ]]></title>
                                                                                                <dc:content><![CDATA[ <p>As time goes on, even the <a href="https://www.tomsguide.com/best-picks/best-computers">best PCs</a> begin to slow down and lag. Before long, completing tasks becomes a time-sapping frustration and you're starting to contemplate a replacement. </p><p>But wait! You may find the problem eases if you have some extra RAM to hand and  you don't need to spend a fortune. By turning a USB flash drive into virtual RAM, you can reduce your reliance on an aging, slow hard disk and give your PC a speed boost. Plus, it's really easy to do, taking less than a minute to get set up.</p><p>This trick works with Windows 10 and Windows 11 (it's actually available on older operating systems too). When it's up and running, it uses the flash drive as a cache. The only thing to bear in mind is that it works best if your operating system is installed on a traditional hard drive rather than a solid state drive. </p><p>If you're already using an SSD, you won't see much improvement, but if you're still running on an HDD, you're sure to notice decent gains in speed. Here's how to do it. </p><section class="howto-block">                    <h3>1. Insert a USB flash drive</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/H5bSHtbPYEGrJJTjuDPndP.png"                                        alt="How to use a USB flash drive as a virtual RAM boost"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/H5bSHtbPYEGrJJTjuDPndP.png"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Future)</div></figure>                    <p><p>First of all, <strong>plug a fast USB flash drive or a SD card into your Windows PC</strong>. It will need to have more than 500MB of free storage and a high data transfer rate.</p></p>                </section><section class="howto-block">                    <h3>2. Open File Explorer</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/XZardw2pQfvBoVXffGDGYP.png"                                        alt="How to use a USB flash drive as a virtual RAM boost"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/XZardw2pQfvBoVXffGDGYP.png"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Future)</div></figure>                    <p><p>Next, <strong>open the File Explorer app</strong> that is built into Windows. The USB flash drive or SD card should appear in the sidebar.</p></p>                </section><section class="howto-block">                    <h3>3. Select Properties</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/3dEemYrPuR3BZN3xv8vvTP.png"                                        alt="How to use a USB flash drive as a virtual RAM boost"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/3dEemYrPuR3BZN3xv8vvTP.png"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Future)</div></figure>                    <p><p><strong>Right-click the USB flash drive or SD card</strong> and <strong>select Properties</strong>.</p></p>                </section><section class="howto-block">                    <h3>4. Choose ReadyBoost</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/kfLtxeYe27gkovbnDzNmKP.png"                                        alt="How to use a USB flash drive as a virtual RAM boost"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/kfLtxeYe27gkovbnDzNmKP.png"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Future)</div></figure>                    <p><p>You need to <strong>select the ReadyBoost tab</strong> then <strong>click Dedicate this device to ReadyBoost </strong>if you want to use it entirely for virtual RAM or<strong> click Use this device </strong>if you still want to store files on it.</p></p>                </section><section class="howto-block">                    <h3>5. Allocate space</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/ny2VPcywfZ8UqWxMbhCsQP.png"                                        alt="How to use a USB flash drive as a virtual RAM boost"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/ny2VPcywfZ8UqWxMbhCsQP.png"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Future)</div></figure>                    <p><p>You can now <strong>use the slider the allocate an appropriate amount of space</strong>. Aim for between one to three times the size of your computer’s RAM. Windows will suggest an amount and it’s a good idea to take the advice. </p></p>                </section><section class="howto-block">                    <h3>6. Finish off</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/tTKHF2qSEJkrvCNk6K7LGP.png"                                        alt="How to use a USB flash drive as a virtual RAM boost"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/tTKHF2qSEJkrvCNk6K7LGP.png"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Future)</div></figure>                    <p><p>When you’re done, <strong>click Apply</strong> and <strong>select Ok</strong>. A cache file will be added to the drive and it can now be used as additional RAM.</p></p>                </section><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide </span></h3><ul><li><a href="https://www.tomsguide.com/computing/windows-11-pc-running-slow-heres-11-simple-steps-to-free-up-ram">Windows 11 PC running slow? Here's how to free up RAM fast</a></li><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/this-hidden-windows-11-setting-might-be-quietly-hogging-your-ram-heres-a-quick-fix">This hidden Windows 11 setting might be quietly draining your RAM — here's a quick fix</a></li><li><a href="https://www.tomsguide.com/features/how-much-ram-do-i-need-heres-how-to-know">How much RAM do I need? Here's how to know</a></li></ul><div data-model-name="Asus ROG Zephyrus G14 2025,MSI Cyborg 15,Alienware ˇXM18,Alienware x14 R2 Gaming Laptop,Samsung Galaxy Book3 Ultra" data-widget-type="comparison" data-widget-title="Today’s gaming laptop deals"></div> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/windows-operating-systems/usb-flash-drives-can-work-as-extra-ram-heres-how-it-works</link>
                                                                            <description>
                            <![CDATA[ You don't have to install physical RAM to speed up your Windows PC, here's how. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">rcZKJTyRH9g5DFJ6xUsbsZ</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/nQk8Y5QykafztgPUZocCGH-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 27 Dec 2025 09:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Windows Operating Systems]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                                                                                    <dc:creator><![CDATA[ David Crookes ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/yQWsHDmJr9eBZrL4xqd3bE.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;David Crookes has been writing professionally for close to 30 years and, as well as a great fondness for gaming, space, film, music, history, health and politics, he&#039;s largely specialized in technology for much of his career. He particularly focuses on Apple devices, having admired the company&#039;s tech since using iMac G3 in 1998. He also developed a fondness for the older Macintosh LC III that he later used in his first job as a newspaper reporter.&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Since becoming a freelance writer, he has written for a wide number of publications including the Apple-focussed magazines iCreate and Macworld as well as Micro Mart, Web User, T3, Retro Gamer, MagPi, Computer Shopper, Gadget and 3D Artist. His love of gaming has seen him write for Retro Gamer, GamesTM and Wireframe among others and, despite his love of Apple, he still uses a PC – working for PC Pro and once writing for Total PC Gaming.&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;One of his joys is helping others to use technology which has led him to writing many “how to” tutorials explaining many ways of getting the most out of various devices. He&#039;s become an expert user of the iPhone, iPad, Mac, Apple Watch and Apple TV. He also likes to kick back with a gaming session on an PlayStation 5 or Xbox Series X | S while getting his retro fix on an Evercade handheld.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/nQk8Y5QykafztgPUZocCGH-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Microsoft Surface Pro 11 on a desk.]]></media:description>                                                            <media:text><![CDATA[Microsoft Surface Pro 11 on a desk.]]></media:text>
                                <media:title type="plain"><![CDATA[Microsoft Surface Pro 11 on a desk.]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/nQk8Y5QykafztgPUZocCGH-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>As time goes on, even the <a href="https://www.tomsguide.com/best-picks/best-computers">best PCs</a> begin to slow down and lag. Before long, completing tasks becomes a time-sapping frustration and you're starting to contemplate a replacement. </p><p>But wait! You may find the problem eases if you have some extra RAM to hand and  you don't need to spend a fortune. By turning a USB flash drive into virtual RAM, you can reduce your reliance on an aging, slow hard disk and give your PC a speed boost. Plus, it's really easy to do, taking less than a minute to get set up.</p><p>This trick works with Windows 10 and Windows 11 (it's actually available on older operating systems too). When it's up and running, it uses the flash drive as a cache. The only thing to bear in mind is that it works best if your operating system is installed on a traditional hard drive rather than a solid state drive. </p><p>If you're already using an SSD, you won't see much improvement, but if you're still running on an HDD, you're sure to notice decent gains in speed. Here's how to do it. </p><section class="howto-block">                    <h3>1. Insert a USB flash drive</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/H5bSHtbPYEGrJJTjuDPndP.png"                                        alt="How to use a USB flash drive as a virtual RAM boost"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/H5bSHtbPYEGrJJTjuDPndP.png"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Future)</div></figure>                    <p><p>First of all, <strong>plug a fast USB flash drive or a SD card into your Windows PC</strong>. It will need to have more than 500MB of free storage and a high data transfer rate.</p></p>                </section><section class="howto-block">                    <h3>2. Open File Explorer</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/XZardw2pQfvBoVXffGDGYP.png"                                        alt="How to use a USB flash drive as a virtual RAM boost"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/XZardw2pQfvBoVXffGDGYP.png"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Future)</div></figure>                    <p><p>Next, <strong>open the File Explorer app</strong> that is built into Windows. The USB flash drive or SD card should appear in the sidebar.</p></p>                </section><section class="howto-block">                    <h3>3. Select Properties</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/3dEemYrPuR3BZN3xv8vvTP.png"                                        alt="How to use a USB flash drive as a virtual RAM boost"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/3dEemYrPuR3BZN3xv8vvTP.png"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Future)</div></figure>                    <p><p><strong>Right-click the USB flash drive or SD card</strong> and <strong>select Properties</strong>.</p></p>                </section><section class="howto-block">                    <h3>4. Choose ReadyBoost</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/kfLtxeYe27gkovbnDzNmKP.png"                                        alt="How to use a USB flash drive as a virtual RAM boost"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/kfLtxeYe27gkovbnDzNmKP.png"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Future)</div></figure>                    <p><p>You need to <strong>select the ReadyBoost tab</strong> then <strong>click Dedicate this device to ReadyBoost </strong>if you want to use it entirely for virtual RAM or<strong> click Use this device </strong>if you still want to store files on it.</p></p>                </section><section class="howto-block">                    <h3>5. Allocate space</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/ny2VPcywfZ8UqWxMbhCsQP.png"                                        alt="How to use a USB flash drive as a virtual RAM boost"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/ny2VPcywfZ8UqWxMbhCsQP.png"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Future)</div></figure>                    <p><p>You can now <strong>use the slider the allocate an appropriate amount of space</strong>. Aim for between one to three times the size of your computer’s RAM. Windows will suggest an amount and it’s a good idea to take the advice. </p></p>                </section><section class="howto-block">                    <h3>6. Finish off</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/tTKHF2qSEJkrvCNk6K7LGP.png"                                        alt="How to use a USB flash drive as a virtual RAM boost"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/tTKHF2qSEJkrvCNk6K7LGP.png"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Future)</div></figure>                    <p><p>When you’re done, <strong>click Apply</strong> and <strong>select Ok</strong>. A cache file will be added to the drive and it can now be used as additional RAM.</p></p>                </section><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide </span></h3><ul><li><a href="https://www.tomsguide.com/computing/windows-11-pc-running-slow-heres-11-simple-steps-to-free-up-ram">Windows 11 PC running slow? Here's how to free up RAM fast</a></li><li><a href="https://www.tomsguide.com/computing/windows-operating-systems/this-hidden-windows-11-setting-might-be-quietly-hogging-your-ram-heres-a-quick-fix">This hidden Windows 11 setting might be quietly draining your RAM — here's a quick fix</a></li><li><a href="https://www.tomsguide.com/features/how-much-ram-do-i-need-heres-how-to-know">How much RAM do I need? Here's how to know</a></li></ul><div data-model-name="Asus ROG Zephyrus G14 2025,MSI Cyborg 15,Alienware ˇXM18,Alienware x14 R2 Gaming Laptop,Samsung Galaxy Book3 Ultra" data-widget-type="comparison" data-widget-title="Today’s gaming laptop deals"></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Low on RAM? This handy Windows 11 trick frees up virtual memory right now  ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Facing a sluggish computer when you're running intensive software or dealing with multiple open tabs? You may be hitting the limits of your RAM. </p><p>With <a href="https://www.tomsguide.com/computing/ram-prices-are-exploding-heres-why-and-everything-you-need-to-know-about-surviving-ramageddon">RAMageddon </a>pushing prices through the roof, physically upgrading isn't realistic for most people right now. Even basic tasks — having just five browser tabs open — can consume around 4GB, enough to clog up budget PCs.</p><p>If you're running Windows 11, you may ease some pressure off your PC by increasing your virtual memory. This is when you allow your computer to use hard disk space to simulate extra RAM, which can be used to prevent the system from crashing when the load on your RAM gets too high.</p><p>Windows 11 automatically manages virtual memory, but the default configuration is designed for general use. If your PC slows down or becomes unstable when running several programs at once, manually adjusting these settings gives you more breathing room and can noticeably improve performance on systems with limited RAM. Here's what you need to do.</p><section class="howto-block">                    <h3>1. Open Settings</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/vNEaea3nSLChtCZpkKWfc6.jpg"                                        alt="Windows 11 settings "                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/vNEaea3nSLChtCZpkKWfc6.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>The very first thing you’ll need to do is to head to your PC’s settings. To do so, <strong>open the Start menu</strong>. Then <strong>click on Settings</strong>.</p><p>Alternatively, you can use the keyboard shortcut <strong>Windows + I</strong>.</p></p>                </section><section class="howto-block">                    <h3>2. Go to System</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/tkxyTt7r2MrXBDCaVB56ZF.jpg"                                        alt="Windows 11 System"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/tkxyTt7r2MrXBDCaVB56ZF.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide )</div></figure>                    <p><p>From the left sidebar, <strong>click on System</strong>. This is where Windows 11 keeps performance and storage-related options.</p></p>                </section><section class="howto-block">                    <h3>3. Open About</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/J73MRh56rT9o42waehu7BQ.jpg"                                        alt="Windows 11 'About' selected "                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/J73MRh56rT9o42waehu7BQ.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>Scroll down and <strong>click About</strong>. This page includes links to more advanced system controls.</p></p>                </section><section class="howto-block">                    <h3>4. Select Advanced system settings</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/z76Zn9ivyt7n6zYZuGSyKa.jpg"                                        alt="Click Advanced system settings"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/z76Zn9ivyt7n6zYZuGSyKa.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>On the about page, expand the device specifications section and <strong>click Advanced system settings </strong>from the list of related links that appears. This opens the classic System Properties window.</p></p>                </section><section class="howto-block">                    <h3>5. Open Performance settings</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/DeDLFxJmhPYmfHdsCat7pk.jpg"                                        alt="Open Performance settings in Windows 11"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/DeDLFxJmhPYmfHdsCat7pk.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>In the System Properties window, make sure you’re on the <strong>Advanced</strong> tab. Then under Performance, <strong>click Settings.</strong></p></p>                </section><section class="howto-block">                    <h3>6. Open Virtual memory settings</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/Wohsv67SgX2mDPz7onPAsG.jpg"                                        alt="Open Virtual memory settings in Windows 11"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/Wohsv67SgX2mDPz7onPAsG.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>In the Performance Options window, <strong>click the Advanced tab</strong>.</p></p>                </section><section class="howto-block">                    <h3>7. Adjust virtual memory</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/DsHtfYZ2cSLZKjy9MTFpLX.jpg"                                        alt="Adjust virtual memory in Windows 11"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/DsHtfYZ2cSLZKjy9MTFpLX.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide )</div></figure>                    <p><p>You’ll then see the virtual memory portion of the menu. Next, <strong>click Change.</strong></p></p>                </section><section class="howto-block">                    <h3>8. Turn off automatic management</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/NB9ZQNU3p2bbqBujdUwZ2g.jpg"                                        alt="Turn off automatic management in Windows 11"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/NB9ZQNU3p2bbqBujdUwZ2g.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide )</div></figure>                    <p><p>At the top of the window, <strong>uncheck “Automatically manage paging file size for all drives”</strong>. You won’t be able to set a custom size until this is turned off.</p></p>                </section><section class="howto-block">                    <h3>9. Select a drive</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/tK2z3H3EbZU8pw7QGhQfQ6.jpg"                                        alt="Select custom size in windows 11"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/tK2z3H3EbZU8pw7QGhQfQ6.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide )</div></figure>                    <p><p>From the list of drives, <strong>click the drive where you want to allocate the virtual memory</strong>. </p><p>Usually, you’ll want to select your fastest drive.<strong> </strong>With the correct drive selected, <strong>click Custom size</strong>. This unlocks the two boxes where you’ll enter the amount of virtual memory in the next step.</p></p>                </section><section class="howto-block">                    <h3>10. Enter the desired size</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/WCqu8yE5RFRqsymBNsSQVD.jpg"                                        alt="Enter and set the custom size in Windows 11"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/WCqu8yE5RFRqsymBNsSQVD.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>Traditionally, the rule of thumb was to set the initial size to around 1.5x your RAM.</p><p>If you’re aiming to set around 4GB of virtual memory, you could use figures similar to the following:</p><p>In the “Initial size (MB)” box, <strong>type 4096</strong>. </p><p>In the “Maximum size (MB)” box, <strong>type 5120</strong>.</p><p>Click <strong>Set</strong>, then click <strong>OK</strong>.</p></p>                </section><section class="howto-block">                    <h3>11. Restart your PC</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/KZpGC59DVQM6mjcB9jdfpH.jpg"                                        alt="Restart Windows 11"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/KZpGC59DVQM6mjcB9jdfpH.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>Lastly, <strong>restart your computer</strong> to finalize the changes and enable your new virtual memory settings.</p></p>                </section><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide </span></h3><ul><li><a href="https://www.tomsguide.com/computing/ram-prices-are-exploding-heres-why-and-everything-you-need-to-know-about-surviving-ramageddon">RAM prices are exploding — here's why and everything you need to know</a></li><li><a href="https://www.tomsguide.com/computing/keyboards/your-mechanical-keyboard-is-disgusting-heres-how-to-clean-it-properly-in-30-minutes">Your mechanical keyboard is gross — here's how to clean it</a></li><li><a href="https://www.tomsguide.com/computing/internet/your-computer-can-get-internet-through-usb-heres-how-to-set-it-up">Your computer can get internet through USB — here's how to set it up</a></li></ul><div data-model-name="Apple 13" MacBook Air M4 (2025),Apple 15" MacBook Air M4 (2025),Dell XPS 13,Lenovo Yoga Slim 7x (14-inch Snapdragon),Lenovo Chromebook Plus 14,Asus ROG Zephyrus G14 (2025)" data-widget-type="comparison"></div> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/windows-operating-systems/i-skipped-the-expensive-ram-upgrade-with-this-free-windows-11-trick-heres-what-i-did-instead</link>
                                                                            <description>
                            <![CDATA[ When RAM prices are too high, virtual memory offers a free alternative that keeps your Windows 11 PC running smoothly. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">jXnwHLtSVfSacMBkhUdtAL</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/DNH5hoXQPdjiHCzBzrwhCM-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 24 Dec 2025 07:06:00 +0000</pubDate>                                                                                                                                <updated>Wed, 24 Dec 2025 13:50:34 +0000</updated>
                                                                                                                                            <category><![CDATA[Windows Operating Systems]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                                                                                    <dc:creator><![CDATA[ Christoph Schwaiger ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/6zNzfEWRyEDeSNA3uHKcAN.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/DNH5hoXQPdjiHCzBzrwhCM-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Man typing on Windows 11 laptop ]]></media:description>                                                            <media:text><![CDATA[Man typing on Windows 11 laptop ]]></media:text>
                                <media:title type="plain"><![CDATA[Man typing on Windows 11 laptop ]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/DNH5hoXQPdjiHCzBzrwhCM-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Facing a sluggish computer when you're running intensive software or dealing with multiple open tabs? You may be hitting the limits of your RAM. </p><p>With <a href="https://www.tomsguide.com/computing/ram-prices-are-exploding-heres-why-and-everything-you-need-to-know-about-surviving-ramageddon">RAMageddon </a>pushing prices through the roof, physically upgrading isn't realistic for most people right now. Even basic tasks — having just five browser tabs open — can consume around 4GB, enough to clog up budget PCs.</p><p>If you're running Windows 11, you may ease some pressure off your PC by increasing your virtual memory. This is when you allow your computer to use hard disk space to simulate extra RAM, which can be used to prevent the system from crashing when the load on your RAM gets too high.</p><p>Windows 11 automatically manages virtual memory, but the default configuration is designed for general use. If your PC slows down or becomes unstable when running several programs at once, manually adjusting these settings gives you more breathing room and can noticeably improve performance on systems with limited RAM. Here's what you need to do.</p><section class="howto-block">                    <h3>1. Open Settings</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/vNEaea3nSLChtCZpkKWfc6.jpg"                                        alt="Windows 11 settings "                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/vNEaea3nSLChtCZpkKWfc6.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>The very first thing you’ll need to do is to head to your PC’s settings. To do so, <strong>open the Start menu</strong>. Then <strong>click on Settings</strong>.</p><p>Alternatively, you can use the keyboard shortcut <strong>Windows + I</strong>.</p></p>                </section><section class="howto-block">                    <h3>2. Go to System</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/tkxyTt7r2MrXBDCaVB56ZF.jpg"                                        alt="Windows 11 System"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/tkxyTt7r2MrXBDCaVB56ZF.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide )</div></figure>                    <p><p>From the left sidebar, <strong>click on System</strong>. This is where Windows 11 keeps performance and storage-related options.</p></p>                </section><section class="howto-block">                    <h3>3. Open About</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/J73MRh56rT9o42waehu7BQ.jpg"                                        alt="Windows 11 'About' selected "                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/J73MRh56rT9o42waehu7BQ.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>Scroll down and <strong>click About</strong>. This page includes links to more advanced system controls.</p></p>                </section><section class="howto-block">                    <h3>4. Select Advanced system settings</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/z76Zn9ivyt7n6zYZuGSyKa.jpg"                                        alt="Click Advanced system settings"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/z76Zn9ivyt7n6zYZuGSyKa.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>On the about page, expand the device specifications section and <strong>click Advanced system settings </strong>from the list of related links that appears. This opens the classic System Properties window.</p></p>                </section><section class="howto-block">                    <h3>5. Open Performance settings</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/DeDLFxJmhPYmfHdsCat7pk.jpg"                                        alt="Open Performance settings in Windows 11"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/DeDLFxJmhPYmfHdsCat7pk.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>In the System Properties window, make sure you’re on the <strong>Advanced</strong> tab. Then under Performance, <strong>click Settings.</strong></p></p>                </section><section class="howto-block">                    <h3>6. Open Virtual memory settings</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/Wohsv67SgX2mDPz7onPAsG.jpg"                                        alt="Open Virtual memory settings in Windows 11"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/Wohsv67SgX2mDPz7onPAsG.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>In the Performance Options window, <strong>click the Advanced tab</strong>.</p></p>                </section><section class="howto-block">                    <h3>7. Adjust virtual memory</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/DsHtfYZ2cSLZKjy9MTFpLX.jpg"                                        alt="Adjust virtual memory in Windows 11"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/DsHtfYZ2cSLZKjy9MTFpLX.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide )</div></figure>                    <p><p>You’ll then see the virtual memory portion of the menu. Next, <strong>click Change.</strong></p></p>                </section><section class="howto-block">                    <h3>8. Turn off automatic management</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/NB9ZQNU3p2bbqBujdUwZ2g.jpg"                                        alt="Turn off automatic management in Windows 11"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/NB9ZQNU3p2bbqBujdUwZ2g.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide )</div></figure>                    <p><p>At the top of the window, <strong>uncheck “Automatically manage paging file size for all drives”</strong>. You won’t be able to set a custom size until this is turned off.</p></p>                </section><section class="howto-block">                    <h3>9. Select a drive</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/tK2z3H3EbZU8pw7QGhQfQ6.jpg"                                        alt="Select custom size in windows 11"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/tK2z3H3EbZU8pw7QGhQfQ6.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide )</div></figure>                    <p><p>From the list of drives, <strong>click the drive where you want to allocate the virtual memory</strong>. </p><p>Usually, you’ll want to select your fastest drive.<strong> </strong>With the correct drive selected, <strong>click Custom size</strong>. This unlocks the two boxes where you’ll enter the amount of virtual memory in the next step.</p></p>                </section><section class="howto-block">                    <h3>10. Enter the desired size</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/WCqu8yE5RFRqsymBNsSQVD.jpg"                                        alt="Enter and set the custom size in Windows 11"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/WCqu8yE5RFRqsymBNsSQVD.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>Traditionally, the rule of thumb was to set the initial size to around 1.5x your RAM.</p><p>If you’re aiming to set around 4GB of virtual memory, you could use figures similar to the following:</p><p>In the “Initial size (MB)” box, <strong>type 4096</strong>. </p><p>In the “Maximum size (MB)” box, <strong>type 5120</strong>.</p><p>Click <strong>Set</strong>, then click <strong>OK</strong>.</p></p>                </section><section class="howto-block">                    <h3>11. Restart your PC</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/KZpGC59DVQM6mjcB9jdfpH.jpg"                                        alt="Restart Windows 11"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/KZpGC59DVQM6mjcB9jdfpH.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p>Lastly, <strong>restart your computer</strong> to finalize the changes and enable your new virtual memory settings.</p></p>                </section><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide </span></h3><ul><li><a href="https://www.tomsguide.com/computing/ram-prices-are-exploding-heres-why-and-everything-you-need-to-know-about-surviving-ramageddon">RAM prices are exploding — here's why and everything you need to know</a></li><li><a href="https://www.tomsguide.com/computing/keyboards/your-mechanical-keyboard-is-disgusting-heres-how-to-clean-it-properly-in-30-minutes">Your mechanical keyboard is gross — here's how to clean it</a></li><li><a href="https://www.tomsguide.com/computing/internet/your-computer-can-get-internet-through-usb-heres-how-to-set-it-up">Your computer can get internet through USB — here's how to set it up</a></li></ul><div data-model-name="Apple 13" MacBook Air M4 (2025),Apple 15" MacBook Air M4 (2025),Dell XPS 13,Lenovo Yoga Slim 7x (14-inch Snapdragon),Lenovo Chromebook Plus 14,Asus ROG Zephyrus G14 (2025)" data-widget-type="comparison"></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ This hidden Windows 11 setting might be quietly draining your RAM — here's a quick fix  ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Microsoft has had a shaky year with its Windows operating system, <a href="https://www.tomsguide.com/news/live/windows-10-end-of-support-2025">ending support for Windows 10</a> and releasing <a href="https://www.tomsguide.com/computing/windows-operating-systems/microsofts-next-big-windows-11-25h2-update-isnt-going-to-make-anyone-happy-heres-why">Windows 11 25H2 with minimal updates</a>. Now, one of its features has been spotted gradually taking up system memory — and it's slowing down PCs. </p><p>As shown by user Niff_Naff on <a href="https://www.reddit.com/r/Windows11/comments/1pp793a/delivery_optimisation_memory_issue/" target="_blank">Reddit</a>, a Windows 11 feature known as Delivery Optimization is hogging a lot of RAM over time, pointing to a possible memory leak that needs to be fixed. As the service works in the background, it appears to take up a significant amount of memory compared to other features, even when it doesn't need to. </p><p>For those who aren't familiar, <a href="https://learn.microsoft.com/en-us/windows/deployment/do/waas-delivery-optimization" target="_blank">Delivery Optimization</a> in Windows 11 is a peer-to-peer (P2P) content delivery system that helps your PC download Windows updates, Microsoft Store apps and upgrades faster. It does this by sharing parts of downloaded packages with other devices on a local network or over the internet, reducing bandwidth consumption and the load on Microsoft's servers. </p><p>The Reddit user tracked the feature's memory usage over time, and as you can see in the test below, Delivery Optimization starts to spike over the course of a few hours. Apparently, it sometimes even took up 20GB of memory. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1514px;"><p class="vanilla-image-block" style="padding-top:76.49%;"><img id="QMn5tHaZVNbtdsSKbucMpG" name="Windows 11 Delivery Optimization memory usage graph" alt="Windows 11 Delivery Optimization memory usage graph" src="https://cdn.mos.cms.futurecdn.net/QMn5tHaZVNbtdsSKbucMpG.jpg" mos="" align="middle" fullscreen="" width="1514" height="1158" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Reddit / Niff_Naff)</span></figcaption></figure><p>What doesn't help is that Microsoft has this feature on by default on most Windows 11 PCs. And after a system update for Windows 11 25H2 and 24H2 (<a href="https://support.microsoft.com/en-gb/topic/december-9-2025-kb5072033-os-builds-26200-7462-and-26100-7462-0c1a4334-19ba-406d-bb1e-88fcffc87b79" target="_blank">KB5072033</a>), it appears a AppX Deployment Service (Appxsvc) is now automatically turned on at startup, and it's been known to drain CPU, memory and disk usage, as noted by <a href="https://www.neowin.net/news/microsoft-makes-potential-cpu-ram-disk-hogging-feature-default-on-windows-11-25h2-24h2/" target="_blank">Neowin</a>. </p><p>There's already enough memory usage being taken up by Windows' system resources, and if you're experiencing a slow PC, it may be worth fixing the issue to <a href="https://www.tomsguide.com/computing/windows-11-pc-running-slow-heres-11-simple-steps-to-free-up-ram">free up RAM on your PC</a>. Fortunately, it's easy enough to solve. </p><h2 id="how-to-fix-windows-11-delivery-optimization">How to fix Windows 11 Delivery Optimization </h2><p>If the Delivery Optimization service on Windows 11 is the culprit in slowing down your PC and taking up <em>way </em>too much system memory, then you can simply switch it off to relieve the pressure. </p><p>It's safe to disable, but be aware that it will lead to slower downloads for updates and apps. Follow the steps below to turn it off. </p><section class="howto-block">                    <h3>Go to Windows Update in Settings</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/yHDfcuwPRjkukojW6Yz49T.jpg"                                        alt="Screenshots of Settings for how to turn off Delivery Optimization in Windows 11"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/yHDfcuwPRjkukojW6Yz49T.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Microsoft / Tom's Guide)</div></figure>                    <p><p><strong>Open the Settings app on your Windows 11 PC </strong>(hit "Windows key + i" or search for it in the search bar and open it). On the left-hand sidebar, <strong>select Windows Update</strong>, then <strong>click Advanced options</strong> under "More options."</p></p>                </section><section class="howto-block">                    <h3>Head into Delivery Optimization</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/tgQGXDY9ivjvqT4V4d2h8T.jpg"                                        alt="Screenshots of Settings for how to turn off Delivery Optimization in Windows 11"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/tgQGXDY9ivjvqT4V4d2h8T.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Microsoft / Tom's Guide)</div></figure>                    <p><p>Once here, scroll down and <strong>select Delivery Optimization</strong>. </p></p>                </section><section class="howto-block">                    <h3>Turn off Delivery Optimization </h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/2XevrHk2tgWZai9UtNaJ9T.jpg"                                        alt="Screenshots of Settings for how to turn off Delivery Optimization in Windows 11"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/2XevrHk2tgWZai9UtNaJ9T.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Microsoft / Tom's Guide)</div></figure>                    <p><p>Now, it's simply a matter of turning the feature off. Next to "Allow downloads from other devices," <strong>toggle off the switch</strong>. You can also choose where downloads will come from, whether it be just from your local network or also from the internet. But to stop it from taking up RAM, it's best to turn it off for now. </p></p>                </section><p>And that's it. Windows is known to have <em>many</em> services that can drain memory on your PC, so if you're looking to free up more space, check out these tips on <a href="https://www.tomsguide.com/computing/windows-11-pc-running-slow-heres-11-simple-steps-to-free-up-ram">how to free up RAM fast</a>. Hopefully, this isn't a widespread issue, and Microsoft resolves the problem with its Delivery Optimization feature fast if it persists. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/cpus/cpu-war-2026-intel-panther-lake-vs-snapdragon-x2-elite-vs-amd-gorgon-point">Intel Panther Lake vs Snapdragon X2 Elite vs AMD Gorgon Point — one chip is already pulling ahead in 2026's CPU war</a></li><li><a href="https://www.tomsguide.com/gaming/pc-gaming/microsoft-promises-to-improve-pc-gaming-in-2026-but-will-it-be-enough-to-topple-steam">Microsoft promises to improve PC gaming in 2026, but will it be enough to topple Steam?</a></li><li><a href="https://www.tomsguide.com/computing/macos/i-just-discovered-a-secret-productivity-hack-for-my-mac-and-its-transformed-how-i-focus">I just discovered a secret productivity hack for my Mac, and it’s transformed how I focus</a></li></ul><div data-model-name="Apple 13" MacBook Air M4 (2025),Apple 15" MacBook Air M4 (2025),Dell XPS 13,Lenovo Yoga Slim 7x (14-inch Snapdragon),Lenovo Chromebook Plus 14,Asus ROG Zephyrus G14 (2025)" data-widget-type="comparison"></div> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/windows-operating-systems/this-hidden-windows-11-setting-might-be-quietly-hogging-your-ram-heres-a-quick-fix</link>
                                                                            <description>
                            <![CDATA[ A Windows 11 feature has been spotted taking up a significant amount of system memory, leading to slow PCs. Here's how to easily fix the issue. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">VQPBspcHiFsLVTXBST6nxG</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/DNH5hoXQPdjiHCzBzrwhCM-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 19 Dec 2025 12:15:38 +0000</pubDate>                                                                                                                                <updated>Fri, 19 Dec 2025 16:22:36 +0000</updated>
                                                                                                                                            <category><![CDATA[Windows Operating Systems]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                                                                                    <dc:creator><![CDATA[ Darragh Murphy ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/5QiaTSWf9FcVB7STxcdo4M.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Darragh is Tom’s Guide’s Computing Editor and is fascinated by all things bizarre in tech. This usually leads to assorted coverage varying from washing machines designed for earbuds to the wild world of laptops. Whether it&#039;s connecting Scar from The Lion King to two-factor authentication or turning his love for laptops into a fabricated rap battle from 8 Mile, he believes there’s always a quirky spin to be made.&lt;br&gt;&lt;br&gt;Darragh has previously been an Editor for Laptop Mag and a News Editor for Time Out Dubai, where he also headed the gaming and tech section. His work can be seen in Mashable, Android Police, Shortlist Dubai, Proton, theBit.nz, ReviewsFire and more. &lt;br&gt;&lt;br&gt;While laptops are his bread and butter, he’s also reviewed smartphones, monitors, speakers, docking stations and VPNs. He’s covered IFA, MWC Barcelona, the Consumer Electronics Show (&lt;a href=&quot;https://www.tomsguide.com/uk/tag/ces&quot; target=&quot;_blank&quot;&gt;CES&lt;/a&gt;) and more.&lt;br&gt;&lt;br&gt;When he&#039;s not checking out the latest devices and all things computing, he can be found going for dreaded long runs, watching terrible shark movies, and trying to find time to game.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/DNH5hoXQPdjiHCzBzrwhCM-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Man typing on Windows 11 laptop ]]></media:description>                                                            <media:text><![CDATA[Man typing on Windows 11 laptop ]]></media:text>
                                <media:title type="plain"><![CDATA[Man typing on Windows 11 laptop ]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/DNH5hoXQPdjiHCzBzrwhCM-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Microsoft has had a shaky year with its Windows operating system, <a href="https://www.tomsguide.com/news/live/windows-10-end-of-support-2025">ending support for Windows 10</a> and releasing <a href="https://www.tomsguide.com/computing/windows-operating-systems/microsofts-next-big-windows-11-25h2-update-isnt-going-to-make-anyone-happy-heres-why">Windows 11 25H2 with minimal updates</a>. Now, one of its features has been spotted gradually taking up system memory — and it's slowing down PCs. </p><p>As shown by user Niff_Naff on <a href="https://www.reddit.com/r/Windows11/comments/1pp793a/delivery_optimisation_memory_issue/" target="_blank">Reddit</a>, a Windows 11 feature known as Delivery Optimization is hogging a lot of RAM over time, pointing to a possible memory leak that needs to be fixed. As the service works in the background, it appears to take up a significant amount of memory compared to other features, even when it doesn't need to. </p><p>For those who aren't familiar, <a href="https://learn.microsoft.com/en-us/windows/deployment/do/waas-delivery-optimization" target="_blank">Delivery Optimization</a> in Windows 11 is a peer-to-peer (P2P) content delivery system that helps your PC download Windows updates, Microsoft Store apps and upgrades faster. It does this by sharing parts of downloaded packages with other devices on a local network or over the internet, reducing bandwidth consumption and the load on Microsoft's servers. </p><p>The Reddit user tracked the feature's memory usage over time, and as you can see in the test below, Delivery Optimization starts to spike over the course of a few hours. Apparently, it sometimes even took up 20GB of memory. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1514px;"><p class="vanilla-image-block" style="padding-top:76.49%;"><img id="QMn5tHaZVNbtdsSKbucMpG" name="Windows 11 Delivery Optimization memory usage graph" alt="Windows 11 Delivery Optimization memory usage graph" src="https://cdn.mos.cms.futurecdn.net/QMn5tHaZVNbtdsSKbucMpG.jpg" mos="" align="middle" fullscreen="" width="1514" height="1158" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Reddit / Niff_Naff)</span></figcaption></figure><p>What doesn't help is that Microsoft has this feature on by default on most Windows 11 PCs. And after a system update for Windows 11 25H2 and 24H2 (<a href="https://support.microsoft.com/en-gb/topic/december-9-2025-kb5072033-os-builds-26200-7462-and-26100-7462-0c1a4334-19ba-406d-bb1e-88fcffc87b79" target="_blank">KB5072033</a>), it appears a AppX Deployment Service (Appxsvc) is now automatically turned on at startup, and it's been known to drain CPU, memory and disk usage, as noted by <a href="https://www.neowin.net/news/microsoft-makes-potential-cpu-ram-disk-hogging-feature-default-on-windows-11-25h2-24h2/" target="_blank">Neowin</a>. </p><p>There's already enough memory usage being taken up by Windows' system resources, and if you're experiencing a slow PC, it may be worth fixing the issue to <a href="https://www.tomsguide.com/computing/windows-11-pc-running-slow-heres-11-simple-steps-to-free-up-ram">free up RAM on your PC</a>. Fortunately, it's easy enough to solve. </p><h2 id="how-to-fix-windows-11-delivery-optimization">How to fix Windows 11 Delivery Optimization </h2><p>If the Delivery Optimization service on Windows 11 is the culprit in slowing down your PC and taking up <em>way </em>too much system memory, then you can simply switch it off to relieve the pressure. </p><p>It's safe to disable, but be aware that it will lead to slower downloads for updates and apps. Follow the steps below to turn it off. </p><section class="howto-block">                    <h3>Go to Windows Update in Settings</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/yHDfcuwPRjkukojW6Yz49T.jpg"                                        alt="Screenshots of Settings for how to turn off Delivery Optimization in Windows 11"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/yHDfcuwPRjkukojW6Yz49T.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Microsoft / Tom's Guide)</div></figure>                    <p><p><strong>Open the Settings app on your Windows 11 PC </strong>(hit "Windows key + i" or search for it in the search bar and open it). On the left-hand sidebar, <strong>select Windows Update</strong>, then <strong>click Advanced options</strong> under "More options."</p></p>                </section><section class="howto-block">                    <h3>Head into Delivery Optimization</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/tgQGXDY9ivjvqT4V4d2h8T.jpg"                                        alt="Screenshots of Settings for how to turn off Delivery Optimization in Windows 11"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/tgQGXDY9ivjvqT4V4d2h8T.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Microsoft / Tom's Guide)</div></figure>                    <p><p>Once here, scroll down and <strong>select Delivery Optimization</strong>. </p></p>                </section><section class="howto-block">                    <h3>Turn off Delivery Optimization </h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/2XevrHk2tgWZai9UtNaJ9T.jpg"                                        alt="Screenshots of Settings for how to turn off Delivery Optimization in Windows 11"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/2XevrHk2tgWZai9UtNaJ9T.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Microsoft / Tom's Guide)</div></figure>                    <p><p>Now, it's simply a matter of turning the feature off. Next to "Allow downloads from other devices," <strong>toggle off the switch</strong>. You can also choose where downloads will come from, whether it be just from your local network or also from the internet. But to stop it from taking up RAM, it's best to turn it off for now. </p></p>                </section><p>And that's it. Windows is known to have <em>many</em> services that can drain memory on your PC, so if you're looking to free up more space, check out these tips on <a href="https://www.tomsguide.com/computing/windows-11-pc-running-slow-heres-11-simple-steps-to-free-up-ram">how to free up RAM fast</a>. Hopefully, this isn't a widespread issue, and Microsoft resolves the problem with its Delivery Optimization feature fast if it persists. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/cpus/cpu-war-2026-intel-panther-lake-vs-snapdragon-x2-elite-vs-amd-gorgon-point">Intel Panther Lake vs Snapdragon X2 Elite vs AMD Gorgon Point — one chip is already pulling ahead in 2026's CPU war</a></li><li><a href="https://www.tomsguide.com/gaming/pc-gaming/microsoft-promises-to-improve-pc-gaming-in-2026-but-will-it-be-enough-to-topple-steam">Microsoft promises to improve PC gaming in 2026, but will it be enough to topple Steam?</a></li><li><a href="https://www.tomsguide.com/computing/macos/i-just-discovered-a-secret-productivity-hack-for-my-mac-and-its-transformed-how-i-focus">I just discovered a secret productivity hack for my Mac, and it’s transformed how I focus</a></li></ul><div data-model-name="Apple 13" MacBook Air M4 (2025),Apple 15" MacBook Air M4 (2025),Dell XPS 13,Lenovo Yoga Slim 7x (14-inch Snapdragon),Lenovo Chromebook Plus 14,Asus ROG Zephyrus G14 (2025)" data-widget-type="comparison"></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I just discovered a secret productivity hack for my Mac, and it’s transformed how I focus ]]></title>
                                                                                                <dc:content><![CDATA[ <p>I’m a Mac power user — surrounded by monitors that are compartmentalized by task so I can effectively multitask. But there’s a problem: I’m terrible at multitasking. </p><p>It’s so easy to get distracted by many different things, like emails or Slack chats in my peripheral vision, and before you know it, I’m splitting my attention between several different apps rather than actually locking in and completing one thing at a time. </p><p>So I did some research to find something to help me with my focus, and that’s when I came across <a href="https://apps.apple.com/gb/app/display-flow-care/id6742833385" target="_blank" rel="nofollow">Display Flow + Care</a>: an app that turned out to be a breakthrough for my productivity (and for caring for my OLED displays to boot).</p><h2 id="cursor-based-monitor-dimming">Cursor-based monitor dimming</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="YK5pF3MPRxkTqiGBvqmVxa" name="Display Flow + Care" alt="Display Flow + Care" src="https://cdn.mos.cms.futurecdn.net/YK5pF3MPRxkTqiGBvqmVxa.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>It’s a simple utility on paper — dimming (or blurring) a monitor when you’re not using it. At first, it felt a little weird to get used to, because you feel blind to your comms. </p><p>However, it’s been a breakthrough for getting stuff done by making every action feel all the more intentional. Instead of being distracted by people trying to get my attention (sorry, boss), I can focus on actually getting stuff done (like this article).</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="MURi2dZ6BaWU7xmJrMNvia" name="Display Flow + Care" alt="Display Flow + Care" src="https://cdn.mos.cms.futurecdn.net/MURi2dZ6BaWU7xmJrMNvia.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>On top of that, the two monitors that I use are OLED-based, which is rather susceptible to burn-in if there is static content. This is ultimately the purpose of Display Flow + Care, as dimming your panel will eliminate any risk of that.</p><p>But hidden in all the screen care benefits is a true combo breaker for maximizing your focus too. Or if you’re on-the-go, a privacy screen that you can turn on at any point. I’ve tried a whole lot of productivity tools, but this is one of the rare ones that actually feels useful.</p><h2 id="head-tracking">Head tracking</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="6xLjLo2vDYK2HQvUxxhwva" name="Display Flow + Care" alt="Display Flow + Care" src="https://cdn.mos.cms.futurecdn.net/6xLjLo2vDYK2HQvUxxhwva.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Want to take it up to another level? Make sure you’re using one of the <a href="https://www.tomsguide.com/computing/peripherals/best-webcams">best webcams</a> and you can take the mouse cursor out of the equation by enabling Display Flow + Care's head tracking feature. This lets you activate different monitors by turning your head in different directions.</p><p>I’ve got mine set to turn on the side monitor on the left when I turn my head to the left, and a swift head turn to the right will activate the main panel for my workload. It just feels so satisfyingly logical — just look at the panel and it springs to life. </p><p>I recommend speeding up the unblur time too, so you don't have to wait a couple of seconds before you can see everything you’re doing each time you move displays.</p><h2 id="outlook-6">Outlook</h2><p>I know that we talk a lot about upgrading your life with a beast of a desk setup, but one thing that always gets lost in the weeds of setting up a multi-monitor workstation is the tendency to get distracted by everything going on around you.</p><p>But I didn’t realize the fix would be so easy to get and so cheap too. This is easily the most useful app I’ve downloaded this year — both for preserving my monitors and keeping me focused on completing tasks too.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/macbook-and-iphone-prices-could-rise-in-2026-as-apples-ram-supply-advantage-begins-to-fade">MacBook and iPhone prices could rise in 2026, as Apple’s RAM supply advantage begins to fade</a></li><li><a href="https://www.tomsguide.com/computing/macbooks/macbook-pro-m6-oled-rumors-everything-we-know-so-far">MacBook Pro M6 OLED rumors: Everything we know so far</a></li><li><a href="https://www.tomsguide.com/best-picks/best-macbook-pro-cases">I'm a clumsy MacBook Pro owner — here are the best MacBook Pro cases I personally recommend</a></li></ul><div data-model-name="Apple 13" MacBook Air M4 (2025),Apple MacBook Pro 14-inch M5 (2025),Apple 15" MacBook Air M4 (2025),Apple MacBook Pro 16-inch M4 (2024),Apple Macbook Air (M1 2020)" data-widget-type="multimodelreview" data-widget-title="Today’s MacBook deals"></div> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/macos/i-just-discovered-a-secret-productivity-hack-for-my-mac-and-its-transformed-how-i-focus</link>
                                                                            <description>
                            <![CDATA[ Easily distracted by multiple monitors? I just found a hidden Mac app that fixes your focus, and it's the best 99¢ I've ever spent. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">hcH9QTtsDeea69tYTs2VJW</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/WNK5Zs69wY5j94beX98P3A-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 18 Dec 2025 10:45:35 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[macOS]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                                                                                    <dc:creator><![CDATA[ Jason England ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/v4fSq5U4uZUEtGY2BwNuJ6.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Jason brings a decade of tech and gaming journalism experience to his role as a Managing Editor of Computing at Tom&#039;s Guide. He has previously written for Laptop Mag, Tom&#039;s Hardware, Kotaku, Stuff and BBC Science Focus. In his spare time, you&#039;ll find Jason looking for good dogs to pet or thinking about eating pizza if he isn&#039;t already.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/WNK5Zs69wY5j94beX98P3A-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[MacBook Pro M5]]></media:description>                                                            <media:text><![CDATA[MacBook Pro M5]]></media:text>
                                <media:title type="plain"><![CDATA[MacBook Pro M5]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/WNK5Zs69wY5j94beX98P3A-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>I’m a Mac power user — surrounded by monitors that are compartmentalized by task so I can effectively multitask. But there’s a problem: I’m terrible at multitasking. </p><p>It’s so easy to get distracted by many different things, like emails or Slack chats in my peripheral vision, and before you know it, I’m splitting my attention between several different apps rather than actually locking in and completing one thing at a time. </p><p>So I did some research to find something to help me with my focus, and that’s when I came across <a href="https://apps.apple.com/gb/app/display-flow-care/id6742833385" target="_blank" rel="nofollow">Display Flow + Care</a>: an app that turned out to be a breakthrough for my productivity (and for caring for my OLED displays to boot).</p><h2 id="cursor-based-monitor-dimming">Cursor-based monitor dimming</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="YK5pF3MPRxkTqiGBvqmVxa" name="Display Flow + Care" alt="Display Flow + Care" src="https://cdn.mos.cms.futurecdn.net/YK5pF3MPRxkTqiGBvqmVxa.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>It’s a simple utility on paper — dimming (or blurring) a monitor when you’re not using it. At first, it felt a little weird to get used to, because you feel blind to your comms. </p><p>However, it’s been a breakthrough for getting stuff done by making every action feel all the more intentional. Instead of being distracted by people trying to get my attention (sorry, boss), I can focus on actually getting stuff done (like this article).</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="MURi2dZ6BaWU7xmJrMNvia" name="Display Flow + Care" alt="Display Flow + Care" src="https://cdn.mos.cms.futurecdn.net/MURi2dZ6BaWU7xmJrMNvia.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>On top of that, the two monitors that I use are OLED-based, which is rather susceptible to burn-in if there is static content. This is ultimately the purpose of Display Flow + Care, as dimming your panel will eliminate any risk of that.</p><p>But hidden in all the screen care benefits is a true combo breaker for maximizing your focus too. Or if you’re on-the-go, a privacy screen that you can turn on at any point. I’ve tried a whole lot of productivity tools, but this is one of the rare ones that actually feels useful.</p><h2 id="head-tracking">Head tracking</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="6xLjLo2vDYK2HQvUxxhwva" name="Display Flow + Care" alt="Display Flow + Care" src="https://cdn.mos.cms.futurecdn.net/6xLjLo2vDYK2HQvUxxhwva.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Want to take it up to another level? Make sure you’re using one of the <a href="https://www.tomsguide.com/computing/peripherals/best-webcams">best webcams</a> and you can take the mouse cursor out of the equation by enabling Display Flow + Care's head tracking feature. This lets you activate different monitors by turning your head in different directions.</p><p>I’ve got mine set to turn on the side monitor on the left when I turn my head to the left, and a swift head turn to the right will activate the main panel for my workload. It just feels so satisfyingly logical — just look at the panel and it springs to life. </p><p>I recommend speeding up the unblur time too, so you don't have to wait a couple of seconds before you can see everything you’re doing each time you move displays.</p><h2 id="outlook-6">Outlook</h2><p>I know that we talk a lot about upgrading your life with a beast of a desk setup, but one thing that always gets lost in the weeds of setting up a multi-monitor workstation is the tendency to get distracted by everything going on around you.</p><p>But I didn’t realize the fix would be so easy to get and so cheap too. This is easily the most useful app I’ve downloaded this year — both for preserving my monitors and keeping me focused on completing tasks too.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/macbook-and-iphone-prices-could-rise-in-2026-as-apples-ram-supply-advantage-begins-to-fade">MacBook and iPhone prices could rise in 2026, as Apple’s RAM supply advantage begins to fade</a></li><li><a href="https://www.tomsguide.com/computing/macbooks/macbook-pro-m6-oled-rumors-everything-we-know-so-far">MacBook Pro M6 OLED rumors: Everything we know so far</a></li><li><a href="https://www.tomsguide.com/best-picks/best-macbook-pro-cases">I'm a clumsy MacBook Pro owner — here are the best MacBook Pro cases I personally recommend</a></li></ul><div data-model-name="Apple 13" MacBook Air M4 (2025),Apple MacBook Pro 14-inch M5 (2025),Apple 15" MacBook Air M4 (2025),Apple MacBook Pro 16-inch M4 (2024),Apple Macbook Air (M1 2020)" data-widget-type="multimodelreview" data-widget-title="Today’s MacBook deals"></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
            </channel>
</rss>