Skip to content

Instantly share code, notes, and snippets.

@a9udn9u
Last active May 26, 2025 15:44
Show Gist options
  • Save a9udn9u/85e0c8e863db85c5b62320766bd7b2e9 to your computer and use it in GitHub Desktop.
Save a9udn9u/85e0c8e863db85c5b62320766bd7b2e9 to your computer and use it in GitHub Desktop.
GeForce Now 1440P on Linux Chrome
import json
import re
from mitmproxy import http
url_pattern = re.compile(r"^.*\.nvidiagrid.net/v2/session")
user_agent_pattern = re.compile(r"(Mozilla\/[\d\.]+) \(.+?\)")
def request(flow: http.HTTPFlow) -> None:
# Check if the request matches the regex pattern
if url_pattern.match(flow.request.pretty_url):
flow.request.headers['nv-device-os'] = 'WINDOWS'
flow.request.headers['sec-ch-ua-platform'] = '"WINDOWS"'
flow.request.headers['sec-ch-ua-platform-version'] = '14.0.0'
if "user-agent" in flow.request.headers:
flow.request.headers["user-agent"] = user_agent_pattern.sub(
r'\1 (Windows NT 10.0; Win64; x64)',
flow.request.headers["user-agent"])
if flow.request.headers.get("content-type") == "application/json":
try:
body = json.loads(flow.request.content)
if body.get("sessionRequestData", {}).get("clientRequestMonitorSettings", None) is not None:
body["sessionRequestData"]["clientRequestMonitorSettings"] = [
{
"heightInPixels": 1440,
"framesPerSecond": 120,
"widthInPixels": 2560
}
]
flow.request.content = json.dumps(body).encode("utf-8")
except json.JSONDecodeError:
pass
function FindProxyForURL(url, host) {
var proxy = "PROXY <your proxy server IP>:<your proxy server port>";
if (/^https:\/\/.+\.nvidiagrid.net/.test(url)) {
// Should only proxy /v2/session, but the URL path is removed by Chrome
return proxy;
}
return "DIRECT";
}
@finsterdexter
Copy link

Yes, I use this almost every day to get 2560x1440 in destiny 2.

@kubrickfr
Copy link

This script does not seem to work anymore. Can anyone confirm if this works?

Confirmed to work.

@lordgreg
Copy link

lordgreg commented May 16, 2025

how do you use it in the chrome then in fullscreen mode? how do you prevent when escape is being pressed that you dont get thrown out of full screen?

btw, this looks okay:

image

Additionally,

I've tested two browsers, Chrome and Brave from Flatpak, both having GPU Acceleration enabled, the installed RPM version of google chrome. All 3 of them yielded exactly the same result, lowering the resolution to unbearable 720 as soon as I started moving.

Unsure what is causing this, maybe my graphics card, maybe some entry missing under gpuinfo.

I'll probably give up eventually and reboot to windows when I'll want to play, or just move to boosteroid.

Thank you all for the suggestions and support :)

@Pointing8422
Copy link

Is there any way to force 10 bit color support? Btw, the script for me works fine, 2k and 120 fps.

@kubrickfr
Copy link

kubrickfr commented May 18, 2025

@lordgreg

btw, this looks okay:

No it does not. "Video Decode" here, means that the feature is enabled. As I wrote, you need to have codecs listed in Video Acceleration Information

@lordgreg
Copy link

hi @kubrickfr and thank you for your feedback. Can you please post a screenshot on how this looks on your side?

Thank you in advance! 👍

@kubrickfr
Copy link

@lordgreg

Working:
image

Not working:
image

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