Skip to content

Instantly share code, notes, and snippets.

@huw
Last active March 30, 2026 17:36
Show Gist options
  • Select an option

  • Save huw/6162236dea8151b365ea5d7261603797 to your computer and use it in GitHub Desktop.

Select an option

Save huw/6162236dea8151b365ea5d7261603797 to your computer and use it in GitHub Desktop.
How to run Notion in desktop mode on iPadOS Safari

How to run Notion in desktop mode on iPadOS Safari

Since iPadOS 13, Notion should show in desktop mode on iPadOS Safari, which is more fully-featured and pretty much fine for touch/pointer input.

In case you're from Notion and reading this, the things I generally don't like about that interface are:

  • Animations are oddly laggy
  • Full-screen popover modal menus instead of popping over contextually
  • Less hover states
  • Larger UI elements (I don't personally need these since I use a trackpad)
  • Small missing features or different UI (in particular around the settings panel)

As far as I can tell, the reason Notion do this is to avoid triggering Apple, because if you can do things like add users or change the payment plan, they should be giving 30% to Apple. But that only applies to the mobile app, not the desktop experience.

To determine if you're on an iPad, Notion test for:

!a() && (/iPad/i.test(t.userAgent) || "MacIntel" === t.platform && "ontouchend" in document)

i.e., you're an iPad user if you're not on Android, and if your user agent shows as an iPad (non-desktop mode), or if your platform shows as MacIntel and you have a touch screen. The cheapest way to block this is to change navigator.platform to something else.

Re-loading the modified script

To modify & reload the script, we need to use a custom userscript. On iPadOS 15, we can download a Safari extension that will run a custom script for us. I'm using Userscripts, but other userscript extensions will work too.

  1. Select a userscripts folder (I selected one in iCloud Drive and synced over from my computer)
  2. Download notion-desktop.js below and put it in that folder
  3. Enable the Userscripts extension on notion.so

Now you should see the full desktop view!

// ==UserScript==
// @name Notion Desktop Mode
// @version 0.1.0
// @match *://*.notion.so/*
// @inject-into page
// @run-at document-start
// ==/UserScript==
var codeToInject = 'Object.defineProperty(navigator,"platform", { \
get: function () { return "Linux x86_64"; }, \
set: function (a) {} \
});';
var script = document.createElement('script');
script.appendChild(document.createTextNode(codeToInject));
(document.head || document.documentElement).appendChild(script);
script.parentNode.removeChild(script);
@huw
Copy link
Copy Markdown
Author

huw commented Mar 24, 2026

@DreamShark-Bytes Quite easy, actually.

  1. Open the main Notion app
  2. Click ‘Request mobile website’ in the toolbar
  3. Use the buttons in the sidebar to open Notion Calendar, or hit Command-L and go to Notion Calendar (it needs to happen in the same tab, so that it loads the mobile website)
  4. Press the three dots in the toolbar, and change the site settings to always request the mobile website

Paradoxically, this loads the full web version of Notion Calendar.

No fix yet for Notion Mail, and I tried quite extensively.

@DreamShark-Bytes
Copy link
Copy Markdown

@huw
Thanks for the tips! I got it working. Didn't realize I needed to be coming from the mobile version of the notion website.
So weird. Glad it's working.

Why is Notion like this?! :(
I've not tried Notion Mail yet, but don't think I will after these troubles.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment