output <name> mode|resolution|res [--custom]
Configures the specified output to use the given mode.
Modes are a combination of width and height (in pixels) and a refresh rate
that your display can be configured to use. For a list of available modes for
each output, use swaymsg -t get_outputs
To set a custom mode not listed in the list of available modes,
use --custom. You should probably only use this if you know what
output HDMI-A-1 mode 1920x1080
output HDMI-A-1 mode 1920x1080@60Hz
output <name> modeline <clock> <hdisplay>
<hsync_start> <hsync_end> <htotal> <vdisplay>
<vsync_start> <vsync_end> <vtotal> <hsync>
Configures the specified output to use the given
modeline. It can be generated using cvt(1)
. Only supported on DRM backend.
output HDMI-A-1 modeline 173.00 1920 2048 2248 2576 1080
1083 1088 1120 -hsync +vsync
output <name> position|pos <X> <Y>
Places the specified output at the specific position in
the global coordinate space. The cursor may only be moved between immediately
adjacent outputs. If scaling is active, it has to be considered when
positioning. For example, if the scaling factor for the left output is 2, the
relative position for the right output has to be divided by 2. The reference
point is the top left corner so if you want the bottoms aligned this has to be
considered as well.
output HDMI1 scale 2
output HDMI1 pos 0 1020 res 3200x1800
output eDP1 pos 1600 0 res 1920x1080
Note that the left x-pos of eDP1 is 1600 = 3200/2 and the bottom
y-pos is 1020 + (1800 / 2) = 1920 = 0 + 1920
output <name> scale <factor>
Scales the specified output by the specified scale
factor. An integer is recommended, but fractional values are also
supported. If a fractional value are specified, be warned that it is not
possible to faithfully represent the contents of your windows - they will be
rendered at the next highest integer scale factor and downscaled. You may be
better served by setting an integer scale factor and adjusting the font size
of your applications to taste. HiDPI isn't supported with Xwayland clients
(windows will blur).
output <name> scale_filter linear|nearest|smart
Indicates how to scale application buffers that are
rendered at a scale lower than the output's configured scale, such as lo-dpi
applications on hi-dpi screens. Linear is smoother and blurrier, nearest (also
known as nearest neighbor) is sharper and blockier. Setting "smart"
will apply nearest scaling when the output has an integer scale factor,
otherwise linear. The default is "smart".
output <name> subpixel rgb|bgr|vrgb|vbgr|none
Manually sets the subpixel hinting for the specified
output. This value is usually auto-detected, but some displays may misreport
their subpixel geometry. Using the correct subpixel hinting allows for sharper
text. Incorrect values will result in blurrier text. When changing this via
swaymsg, some applications may need to be restarted to use the new
output <name> background|bg <file> <mode>
Sets the wallpaper for the given output to the specified
file, using the given scaling mode (one of "stretch",
"fill", "fit", "center", "tile"). If
the specified file cannot be accessed or if the image does not fill the entire
output, a fallback color may be provided to cover the rest of the output.
fallback_color should be specified as #RRGGBB. Alpha is not
output <name> background|bg <color>
Sets the background of the given output to the specified
color. color should be specified as #RRGGBB. Alpha is not
output <name> transform <transform>
Sets the background transform to the given value. Can be
one of "90", "180", "270" for rotation; or
"flipped", "flipped-90", "flipped-180",
"flipped-270" to apply a rotation and flip, or "normal" to
apply no transform. The rotation is performed clockwise. If a single output is
chosen and a rotation direction is specified (clockwise or
anticlockwise) then the transform is added or subtracted from the
current transform (this cannot be used directly in the configuration
output <name> disable|enable
Enables or disables the specified output (all outputs are
enabled by default).
output <name> toggle
Toggle the specified output.
output <name> dpms on|off|toggle
Enables or disables the specified output via DPMS. To
turn an output off (ie. blank the screen but keep workspaces as-is), one can
set DPMS to off.
output <name> max_render_time off|<msec>
Controls when sway composites the output, as a positive
number of milliseconds before the next display refresh. A smaller number leads
to fresher composited frames and lower perceived input latency, but if set too
low, sway may not finish compositing in time for display refresh, leading to
When set to off, sway composites immediately after display
refresh, maximizing time available for compositing.
To adjust when applications are instructed to render, see
max_render_time in sway(5).
To set this up for optimal latency:
1.Launch some full-screen application that renders
continuously, like glxgears.
2.Start with max_render_time 1. Increment by
1 if you see frame drops.
This setting only has an effect on Wayland and DRM backends, as
support for presentation timestamps and predicted output refresh rate is
output <name> adaptive_sync on|off
Enables or disables adaptive synchronization (often
referred to as Variable Refresh Rate, or by the vendor-specific names
Adaptive sync allows clients to submit frames a little too late
without having to wait a whole refresh period to display it on screen.
Enabling adaptive sync can improve latency, but can cause flickering on some
output <name> render_bit_depth 8|10
Controls the color channel bit depth at which frames are
rendered; the default is currently 8 bits per channel.
Setting higher values will not have an effect if hardware and
software lack support for such bit depths. Successfully increasing the
render bit depth will not necessarily increase the bit depth of the frames
sent to a display. An increased render bit depth may provide smoother
rendering of gradients, and screenshots which can more precisely store the
colors of programs which display high bit depth colors.
Warnings: this can break screenshot/screencast programs which have
not been updated to work with different bit depths. This command is
experimental, and may be removed or changed in the future.