Skip to content
Guide

Gamescope flags: a complete reference

Every option on Gamescope's command line, grouped by job, with its default, accepted values, and an example. Checked flag by flag against the option table and help text in Gamescope's source.

· 10 min read

The command shape

Options come first, then a bare --, then the program to run inside the session:

text
gamescope [options] -- <command>

In Steam's launch options the command is %command%, so the line is gamescope [options] -- %command%. Heroic and Lutris append the game for you, so the prefix ends at --. Both the short and the long spelling of each option are listed below.

Verified against: Gamescope master at commit 6b4481c (September 20, 2026), where src/main.cpp was last changed by commit ce66094 (September 16, 2026). The newest release tag at that point was 3.16.29. Every flag below is in the gamescope_options[] table in that file; descriptions follow its help text and the README. The list was also compared with gamescope --help from a 3.16.28 install.

Check the flags your install has

Distribution packages trail master, so your build may lack the newest options. Ask the binary:

bash
gamescope --help
gamescope --version

-h is not help. It is the short form of --nested-height and expects a number. One difference found while checking this page: the sgsr filter is in master and in the README, but a 3.16.28 build lists only linear, nearest, fsr, nis, pixel. An unknown flag or value makes Gamescope exit with See --help for a list of options, which in Steam looks like a game that never starts.

Output and game resolution

Uppercase is what your display gets. Lowercase is what the game draws.

FlagWhat it doesDefault / valuesExample
-W, --output-widthWidth of the Gamescope window or fullscreen output. Ignored in embedded mode1280-W 2560
-H, --output-heightHeight of the output. With -H alone, a 16:9 width is assumed720-H 1440
-w, --nested-widthWidth the game sees and renders atSame as -W-w 1920
-h, --nested-heightHeight the game renders at. With -h alone, a 16:9 width is assumedSame as -H-h 1080
-m, --max-scaleMaximum scale factor applied by the auto scalerDecimal, no limit-m 2

Refresh rate, frame limiting, and VRR

FlagWhat it doesDefault / valuesExample
-r, --nested-refreshGame refresh rate in frames per second. The README describes it as a frame-rate limit for the gameUnlimited; integer, 0 or higher-r 60
-o, --nested-unfocused-refreshThe same limit while the Gamescope window is unfocused. Nested mode onlyUnlimited-o 30
--framerate-limitA simple limiter used as a divisor of the refresh rate, rounding down: at 60 Hz, 59 gives 60 fps and 25 gives 30 fps0 (disabled)--framerate-limit 30
--adaptive-syncEnable adaptive sync (variable refresh rate) if availableOff--adaptive-sync

Window modes

These are listed under "Nested mode options" in the help text. They affect the window Gamescope opens on your desktop and mean nothing in an embedded session.

FlagWhat it doesDefault / valuesExample
-f, --fullscreenMake the window fullscreen. Super + F toggles it at runtimeOff-f
-b, --borderlessMake the window borderlessOff-b
--display-indexForce Gamescope to use a specific display in nested mode0--display-index 1
--force-windows-fullscreenForce windows inside Gamescope to the size of the nested display. This resizes the game's window, not Gamescope'sOff--force-windows-fullscreen

Scaling and filters

The scaler decides the geometry: how the game's image is fitted to the output. The filter decides how pixels are sampled when the sizes differ. They are independent, so -S integer -F nearest is a valid pair.

FlagWhat it doesDefault / valuesExample
-S, --scalerUpscaler type. fit keeps the aspect ratio inside the output, fill keeps it and covers the output (cropping), stretch ignores it, integer rounds the scale down to a whole multiple, auto behaves like fit capped by --max-scaleauto; auto, integer, fit, fill, stretch-S integer
-F, --filterUpscaler filter. fsr is AMD FidelityFX Super Resolution 1.0, nis is NVIDIA Image Scaling v1.0.3, sgsr is Snapdragon Game Super Resolution 1 with RCASlinear; linear, nearest, fsr, nis, pixel, and sgsr on current master-F fsr
--sharpness, --fsr-sharpnessUpscaler sharpness. One option with two names2; 0 (maximum) to 20 (minimum)--sharpness 5
--reshade-effect, --reshade-technique-idxApply a ReShade shader from ~/.local/share/gamescope/reshade/Shaders or /usr/share/gamescope/reshade/Shaders, and pick a technique by index. The README warns that effects add latencyNone--reshade-effect crt.fx

Runtime shortcuts from the help text: Super + U toggles FSR, Super + Y toggles NIS, Super + N toggles nearest-neighbour filtering, Super + I and Super + O change sharpness.

HDR and color

FlagWhat it doesDefault / valuesExample
--hdr-enabledEnable HDR output. Clients need the Gamescope WSI layer. Without this flag, an HDR client is tonemapped to SDROff--hdr-enabled
--hdr-sdr-content-nitsLuminance of SDR content shown on an HDR output400 nits--hdr-sdr-content-nits 300
--hdr-itm-enabledSDR to HDR inverse tone mapping. Only works for SDR inputOff--hdr-itm-enabled
--hdr-itm-sdr-nitsSDR luminance used as the input of inverse tone mapping100 nits, max 1000--hdr-itm-sdr-nits 200
--hdr-itm-target-nitsTarget luminance of inverse tone mapping1000 nits, max 10000--hdr-itm-target-nits 800
--sdr-gamut-widenessHow wide a gamut SDR content is mapped to0 to 1--sdr-gamut-wideness 0.5
--hdr-debug-force-supportReport HDR support even if the display lacks it. HDR clients are still output as SDROffdebug only
--hdr-debug-force-outputForce HDR10 PQ output even if the display lacks it, which the help text says "will look very wrong"Offdebug only
--hdr-debug-heatmapHeatmap of scene luminance in nitsOffdebug only
--disable-color-managementDisable color managementOffdebug only

Cursor and input

FlagWhat it doesDefault / valuesExample
--force-grab-cursorAlways use relative mouse mode instead of switching on cursor visibility. Nested mode onlyOff--force-grab-cursor
-g, --grabGrab the keyboard. Super + G toggles it. Nested mode onlyOff-g
-s, --mouse-sensitivityMultiply mouse movement by a decimal number1.0-s 0.8
--cursorPath to the default cursor imageNone--cursor /path/cursor.png
--cursor-hotspotHotspot of that image as x,y. In the option table but not in the help textNone--cursor-hotspot 4,4
--cursor-scale-heightBase output height to scale the cursor against, linearlyUnset--cursor-scale-height 1080
-C, --hide-cursor-delayHide the cursor image after this delay. The source reads it as milliseconds10000-C 3000

Wayland, Xwayland, and backends

FlagWhat it doesDefault / valuesExample
--expose-waylandSupport Wayland clients using xdg-shell, instead of only X11 clients through XwaylandOff--expose-wayland
--xwayland-countCreate N Xwayland servers1; at least 1--xwayland-count 2
--backendRendering backend. drm is a standalone display session, sdl and wayland are nested windows, headless has no window and no DRM output, openvr outputs a VR overlay. drm, sdl, and openvr exist only if compiled inauto--backend sdl
--prefer-vk-devicePrefer a Vulkan device for compositing, as vendor:device hex IDsNone--prefer-vk-device 1002:7300

With auto, the source picks wayland when a Wayland display is present, sdl when only DISPLAY is set, and drm otherwise.

Steam and MangoHud integration

FlagWhat it doesDefault / valuesExample
-e, --steamEnable Steam integration. Meant for sessions where Steam itself runs inside GamescopeOffgamescope -e -- steam -gamepadui
--mangoappLaunch with the mangoapp overlay. The help text says to use this instead of wrapping the game or Gamescope in mangohudOff--mangoapp
--keep-aliveKeep Gamescope alive after the primary process has diedOff--keep-alive

Flags that only work in embedded (DRM) sessions

An embedded session is Gamescope driving the display itself through DRM, as on the Steam Deck. The help text lists these under "Embedded mode options". They do not apply to a nested window on your desktop, which is why -O does not fix "wrong monitor" in a Steam launch option; --display-index is the nested counterpart.

FlagWhat it doesDefault / valuesExample
-O, --prefer-outputConnectors in order of preferenceComma-separated list-O DP-1,HDMI-A-1
--default-touch-modeHow touch input is turned into clicks0 hover, 1 left, 2 right, 3 middle, 4 passthrough--default-touch-mode 4
--generate-drm-modeDRM mode generation algorithmcvt; cvt or fixed--generate-drm-mode fixed
--immediate-flipsEnable immediate flips. May tearOff--immediate-flips

--disable-layers and --debug-layers (libliftoff hardware planes) sit with the embedded options in the source, --mura-map is listed under "Steam Deck options", and --force-orientation (left, right, normal, upsidedown) rotates the internal display. The reverse also holds: -W and -H are ignored in embedded mode, and -o, -b, -f, -g, --force-grab-cursor, and --display-index are nested-only.

Debugging and diagnostics

FlagWhat it doesDefault / valuesExample
-T, --stats-pathWrite statistics to a pathNone-T /tmp/gamescope-stats
--debug-hud, -vPaint a HUD with debug infoOff--debug-hud
--composite-debugDraw frame markers on alternating corners when compositingOff--composite-debug
--force-composition, -cDisable direct scan-outOff--force-composition
--rtUse realtime scheduling. Applied only when Gamescope has CAP_SYS_NICEOff--rt
--debug-focus, --debug-events, --synchronous-x11Debug XWM focus, debug X11 events, force X11 connection synchronizationOff--debug-focus

The option table also holds -x/--disable-xres, -R/--ready-fd, --virtual-connector-strategy, --allow-deferred-backend, --fade-out-duration, --xwayland-force-touch-pointer-emulation, --force-composition-rotation, and a --vr-* family for OpenVR builds. They are session plumbing; gamescope --help describes those that have help text.

Deprecated, renamed, and mistaken flags

  • --hdr-itm-enable was the name in the option table through the 3.15 releases; 3.16 renamed it to --hdr-itm-enabled. Current builds still accept the old spelling, because the parser takes unambiguous prefixes of long options, but the new spelling fails on 3.15 and older.
  • --integer-scale (-i), --nearest-neighbor-filter (-n), --fsr-upscaling (-U), and --nis-upscaling (-Y) were real flags in the 3.11 series. Release 3.12.0 replaced them with -S and -F, and current builds reject them with unrecognized option. Write -S integer, -F nearest, -F fsr, and -F nis.
  • --fsr-sharpness is not deprecated. It and --sharpness set the same value, which applies to NIS as well as FSR.

Five short recipes

The long-form versions, with the HDR environment variables and the Heroic and Lutris fields, are in Steam launch options for Gamescope.

text
# 1080p render, FSR upscale to a 1440p fullscreen window
gamescope -W 2560 -H 1440 -w 1920 -h 1080 -F fsr --sharpness 5 -f -- %command%

# Cap at 60, drop to 30 when unfocused
gamescope -W 2560 -H 1440 -r 60 -o 30 -f -- %command%

# Pixel art: 720p game, integer scaled to 1440p
gamescope -h 720 -H 1440 -S integer -F nearest -- %command%

# HDR output with VRR
gamescope -W 3840 -H 2160 --hdr-enabled --adaptive-sync -f -- %command%

# Overlay at output resolution, cursor kept inside the window
gamescope -W 2560 -H 1440 -f --mangoapp --force-grab-cursor -- %command%

Where ProtonShift's Gamescope builder fits

ProtonShift's builder is a form over a subset of this page. Per its source, it emits -W/-H for output size, -w/-h for game size, -r for the FPS limit, -F fsr with --fsr-sharpness clamped to 0 through 20, --hdr-enabled, -f, and -b, then always appends --. A free-text field takes any other flag; it is split with shell quoting rules and passed through without validation. The builder can also emit a ScopeBuddy prefix (SCB_AUTO_RES=1 scb --) instead of a raw command.

One known defect: the builder's integer-scaling switch currently writes --integer-scale, which Gamescope rejects. Until that is fixed, leave the switch off and type -S integer into the extra-arguments field. Getting Started covers installation.

Next steps

Frequently asked questions

What is the difference between -W/-H and -w/-h?
-W and -H set the output: the size of the Gamescope window or fullscreen surface, 1280x720 by default and ignored in embedded mode. -w and -h set the resolution the game sees and renders at, and default to the output size. When the two differ, Gamescope scales the game's image to the output with the -S scaler and the -F filter.
Which gamescope flag enables FSR?
-F fsr, or --filter fsr in long form. It has a visible effect only when the game resolution (-w/-h) is smaller than the output (-W/-H). --sharpness, also spelled --fsr-sharpness, tunes it from 0 (sharpest) to 20 (softest) and does not turn FSR on by itself. The older -U flag was removed in 3.12.0.
How do I cap FPS with gamescope?
Use -r, for example gamescope -r 60 -- %command%. The README describes -r as a frame-rate limit for the game, unlimited by default, and its own example applies it to a vsynced game. -o sets a separate limit while the window is unfocused. --framerate-limit is a second, simpler limiter that works as a divisor of the refresh rate, so at 60 Hz a value of 25 gives 30 fps.
Does gamescope work on NVIDIA?
The Gamescope README says it runs on Mesa with AMD or Intel, and that NVIDIA's proprietary driver needs version 515.43.04 or newer with the nvidia-drm.modeset=1 kernel parameter set. That is a minimum requirement, not a statement that every option behaves the same on NVIDIA; the README does not say which do. If a flag such as --hdr-enabled or --adaptive-sync misbehaves, remove it, test again, and check the Gamescope issue tracker for your driver version.