I bet you didn’t see this one coming: OpenAI today released a ChatGPT desktop app for Linux in preview.
“Now in preview: The ChatGPT desktop app for Linux,” <a href="https://x.com/OpenAI/status/2087231350134980830" rel="nofollow noopener" target=”_blank”>OpenAI tweeted. “Use ChatGPT, ChatGPT Work, and Codex where you already work and build, with your projects and browser workflows on supported Linux systems.”
Supported Linux systems include Ubuntu 24.04 LTS and 26.04 LTS, Debian 13, and Fedora 43 and 44, and the installer is available in .deb and .rfpm packages for x64 and Arm64.
I don’t see a Linux download link on the ChatGPT downloads page, but perhaps you need to be using Linux to see that. Or maybe you just get it from your distribution’s app store or command line-based package manager. That’s unclear, but OpenAI supporting Linux in this fashion is obviously a big deal.
Tagged with
Share post
`;i&&(a=`${a}
`),e.insertAdjacentHTML(n,a)}return document.getElementById(t)}_repeatDynamicAds(t){let n=[],r=t.location===e.Recipe?99:this.locationMaxLazySequence.get(t.location),i=t.lazy?k(r,0):0,a=t.max,o=t.lazyMax,s=i===0&&t.lazy?a+o:Math.min(Math.max(i-t.sequence+1,0),a+o),c=Math.max(a,s);for(let e=0;e=a,o=r;t.name===`Recipe_1`&&r>=5&&(o=r+1),n.push({…t,sequence:o,lazy:i})}return n}_locationEnabled(e){let t=this._clsOptions.enabledLocations.includes(e.location),n=this._clsOptions.disableAds&&this._clsOptions.disableAds.all||document.body.classList.contains(`adthrive-disable-all`),r=!document.body.classList.contains(`adthrive-disable-content`)&&!this._clsOptions.disableAds.reasons.has(`content_plugin`);return t&&!n&&r}},Et=class{constructor(){s(this,`_map`,[])}add(e,t,n,r=document){this._map.push({el:e,coords:t,dynamicAd:n,target:r})}addSorted(e,t,n,r=document){let i=this._upperBoundIndex(t);this._map.splice(i,0,{el:e,coords:t,dynamicAd:n,target:r})}get map(){return this._map}sort(){this._map.sort(({coords:e},{coords:t})=>e-t)}filterUsed(){this._map=this._map.filter(({dynamicAd:e})=>!e.used)}findNeighborIndices(e){let t=this._upperBoundIndex(e);return[t-1>=0?t-1:null,t>>1;this._map[r].coords<=e?t=r+1:n=r}return t}reset(){this._map=[]}},Dt=class extends Et{};let Ot=e=>{let t=ne(),n=T(),r=e.siteAdsProfiles,i=null;if(r&&r.length)for(let e of r){let r=e.targeting.device,a=e.targeting.browserEngine,o=r&&r.length&&r.includes(n),s=a&&a.length&&a.includes(t);o&&s&&(i=e)}return i},kt=e=>{let t=Ot(e);if(t){let e=t.profileId;document.body.classList.add(`raptive-profile-${e}`)}},$={Video_Collapse_Autoplay_SoundOff:`Video_Collapse_Autoplay_SoundOff`,Video_Individual_Autoplay_SOff:`Video_Individual_Autoplay_SOff`,Video_Coll_SOff_Smartphone:`Video_Coll_SOff_Smartphone`,Video_In_Post_ClicktoPlay_SoundOn:`Video_In-Post_ClicktoPlay_SoundOn`,Video_Collapse_Autoplay_SoundOff_15s:`Video_Collapse_Autoplay_SoundOff_15s`,Video_Individual_Autoplay_SOff_15s:`Video_Individual_Autoplay_SOff_15s`,Video_Coll_SOff_Smartphone_15s:`Video_Coll_SOff_Smartphone_15s`,Video_In_Post_ClicktoPlay_SoundOn_15s:`Video_In-Post_ClicktoPlay_SoundOn_15s`};var At=class{get enabled(){throw Error(`Enablement must be defined at factory creation time.`)}};let jt=(e=navigator.userAgent)=>E(e)===`desktop`;var Mt=class extends At{constructor(e,t,n){super(),this._videoConfig=e,this._component=t,this._context=n,s(this,`_potentialPlayerMap`,void 0),s(this,`_device`,void 0),s(this,`_stickyRelatedOnPage`,!1),s(this,`_relatedMediaIds`,[]),this._device=jt()?`desktop`:`mobile`,this._potentialPlayerMap=this.setPotentialPlayersMap()}setPotentialPlayersMap(){let e=this._videoConfig.players||[],t=this._filterPlayerMap();return t.stationaryRelated=this._getPotentialStationaryPlayers(e,t.stationaryRelated),this._potentialPlayerMap=t,this._potentialPlayerMap}_getPotentialStationaryPlayers(e,t){let n=new Set(t);return e.forEach(e=>e.type===`stationaryRelated`&&e.enabled&&n.add(e)),[…n]}_filterPlayerMap(){let e=this._videoConfig.players,t={stickyRelated:[],stickyPlaylist:[],stationaryRelated:[]};return e&&e.length?e.filter(e=>{var t;return(t=e.devices)==null?void 0:t.includes(this._device)}).reduce((e,t)=>{if(e[t.type]||(P.event(this._component,`constructor`,`Unknown Video Player Type detected`,t.type),e[t.type]=[]),t.enabled){let n=t.type;this._videoConfig.shouldDisableStickyRelated&&t.type===`stickyRelated`&&(n=`stationaryRelated`),e[n].push(t)}return e},t):t}_checkPlayerSelectorOnPage(e){for(let t of this._potentialPlayerMap[e]){let e=this._getPlacementElement(t);if(e)return{player:t,playerElement:e}}return{player:null,playerElement:null}}_getOverrideElement(e,t,n){if(e&&t){let r=document.createElement(`div`);t.insertAdjacentElement(e.position,r),n=r}else{let{player:e,playerElement:t}=this._checkPlayerSelectorOnPage(`stickyPlaylist`);if(e&&t){let r=document.createElement(`div`);t.insertAdjacentElement(e.position,r),n=r}}return n}_shouldOverrideElement(e){let t=e.getAttribute(`override-embed`);return t===`true`||t===`false`?t===`true`:this._videoConfig.relatedSettings?this._videoConfig.relatedSettings.overrideEmbedLocation:!1}_checkPageSelector(e,t,n=[]){return e&&t&&n.length===0?(window.location.pathname!==`/`&&P.event(`VideoUtils`,`getPlacementElement`,Error(`PSNF: ${e} does not exist on the page`)),!1):!0}_getElementSelector(e,t,n){return t&&t.length>n?t[n]:(P.event(`VideoUtils`,`getPlacementElement`,Error(`ESNF: ${e} does not exist on the page`)),null)}_getPlacementElement(e){let{pageSelector:t,elementSelector:n,skip:r}=e,{valid:i,elements:a,…o}=N(t),{valid:s,elements:c,…l}=M(n);return t!==“&&!i?(P.error(`VideoUtils`,`getPlacementElement`,Error(`${t} is not a valid selector`),o),null):s?this._checkPageSelector(t,i,a)&&this._getElementSelector(n,c,r)||null:(P.error(`VideoUtils`,`getPlacementElement`,Error(`${n} is not a valid selector`),l),null)}_getEmbeddedPlayerType(e){if(this._videoConfig.shouldDisableStickyRelated)return`static`;let t=e.getAttribute(`data-player-type`);return(!t||t===”default”)&&(t=this._videoConfig.relatedSettings?this._videoConfig.relatedSettings.defaultPlayerType:`static`),this._stickyRelatedOnPage&&(t=`static`),t}_getMediaId(e){let t=e.getAttribute(`data-video-id`);return t?(this._relatedMediaIds.push(t),t):!1}_getOrientation(e){return e.getAttribute(`orientation`)===`vertical`?`vertical`:`horizontal`}_createRelatedPlayer(e,t,n,r,i){t===`collapse`?this._createCollapsePlayer(e,n):t===`static`&&this._createStaticPlayer(e,n,r,i)}_createCollapsePlayer(e,t){let{player:n,playerElement:r}=this._checkPlayerSelectorOnPage(`stickyRelated`),i=n||this._potentialPlayerMap.stationaryRelated[0];i&&i.playerId&&!this._videoConfig.shouldDisableStickyRelated?(this._shouldOverrideElement(t)&&(t=this._getOverrideElement(n,r,t)),t=document.querySelector(`#cls-video-container-${e} > div`)||t,this._createStickyRelatedPlayer({…i,mediaId:e},t)):P.error(this._component,`_createCollapsePlayer`,`No video player found`)}_createStaticPlayer(e,t,n,r){if(this._potentialPlayerMap.stationaryRelated.length&&this._potentialPlayerMap.stationaryRelated[0].playerId){let i=this._potentialPlayerMap.stationaryRelated[0];this._createStationaryRelatedPlayer({…i,mediaOrPlaylistId:e,orientation:r},t,n)}else P.error(this._component,`_createStaticPlayer`,`No video player found`)}_shouldRunAutoplayPlayers(){return!!(this._isVideoAllowedOnPage()&&(this._potentialPlayerMap.stickyRelated.length||this._potentialPlayerMap.stickyPlaylist.length))}_setPlaylistMediaIdWhenStationaryOnPage(e,t){if(this._potentialPlayerMap.stationaryRelated.length&&this._potentialPlayerMap.stationaryRelated[0].playerId&&e&&e.length){let n=e[0].getAttribute(`data-video-id`);return n?{…t,mediaId:n}:t}return t}_determineAutoplayPlayers(e){let t=this._component,n=t===`VideoManagerComponent`,r=this._context;if(this._stickyRelatedOnPage){P.event(t,`stickyRelatedOnPage`,n&&{device:r&&r.device,isDesktop:this._device}||{});return}let{playerElement:i}=this._checkPlayerSelectorOnPage(`stickyPlaylist`),{player:a}=this._checkPlayerSelectorOnPage(`stickyPlaylist`);a&&a.playerId&&i?(a=this._setPlaylistMediaIdWhenStationaryOnPage(e,a),this._createPlaylistPlayer(a,i)):Math.random()<.01&&setTimeout(()=>{P.event(t,`noStickyPlaylist`,n&&{vendor:`none`,device:r&&r.device,isDesktop:this._device}||{})},1e3)}_initializeRelatedPlayers(e){let t=new Map;for(let n=0;n{let e=new c;!e||!e.enabled||(e.siteAds&&kt(e.siteAds),new Tt(e,new Dt).start(),new Nt(new fe(e),e).init())})()}catch(e){P.error(`CLS`,`pluginsertion-iife`,e),window.adthriveCLS&&(window.adthriveCLS.injectedFromPlugin=!1)}})();
