Display
Superclasses: Object
GdkDisplay
objects are the GDK representation of a workstation.
Their purpose are two-fold:
To manage and provide information about input devices (pointers, keyboards, etc)
To manage and provide information about output devices (monitors, projectors, etc)
Most of the input device handling has been factored out into separate
Seat
objects. Every display has a one or more seats, which
can be accessed with get_default_seat
and
list_seats
.
Output devices are represented by Monitor
objects, which can
be accessed with get_monitor_at_surface
and similar APIs.
Methods
- class Display
-
- close() None
Closes the connection to the windowing system for the given display.
This cleans up associated resources.
- create_gl_context() GLContext
Creates a new
GdkGLContext
for theGdkDisplay
.The context is disconnected from any particular surface or surface and cannot be used to draw to any surface. It can only be used to draw to non-surface framebuffers like textures.
If the creation of the
GdkGLContext
failed,error
will be set. Before using the returnedGdkGLContext
, you will need to callmake_current
orrealize
.Added in version 4.6.
- device_is_grabbed(device: Device) bool
Returns
True
if there is an ongoing grab ondevice
fordisplay
.- Parameters:
device – a
GdkDevice
- flush() None
Flushes any requests queued for the windowing system.
This happens automatically when the main loop blocks waiting for new events, but if your application is drawing without returning control to the main loop, you may need to call this function explicitly. A common case where this function needs to be called is when an application is executing drawing commands from a thread other than the thread where the main loop is running.
This is most useful for X11. On windowing systems where requests are handled synchronously, this function will do nothing.
- get_app_launch_context() AppLaunchContext
Returns a
GdkAppLaunchContext
suitable for launching applications on the given display.
- get_default() Display | None
Gets the default
GdkDisplay
.This is a convenience function for:
gdk_display_manager_get_default_display (gdk_display_manager_get ())
- get_default_seat() Seat | None
Returns the default
GdkSeat
for this display.Note that a display may not have a seat. In this case, this function will return
None
.
- get_dmabuf_formats() DmabufFormats
Returns the dma-buf formats that are supported on this display.
GTK may use OpenGL or Vulkan to support some formats. Calling this function will then initialize them if they aren’t yet.
The formats returned by this function can be used for negotiating buffer formats with producers such as v4l, pipewire or GStreamer.
To learn more about dma-bufs, see
DmabufTextureBuilder
.Added in version 4.14.
- get_monitor_at_surface(surface: Surface) Monitor | None
Gets the monitor in which the largest area of
surface
resides.- Parameters:
surface – a
GdkSurface
- get_monitors() ListModel
Gets the list of monitors associated with this display.
Subsequent calls to this function will always return the same list for the same display.
You can listen to the GListModel::items-changed signal on this list to monitor changes to the monitor of this display.
- get_primary_clipboard() Clipboard
Gets the clipboard used for the primary selection.
On backends where the primary clipboard is not supported natively, GDK emulates this clipboard locally.
- get_setting(name: str, value: Any) bool
Retrieves a desktop-wide setting such as double-click time for the
display
.- Parameters:
name – the name of the setting
value – location to store the value of the setting
- get_startup_notification_id() str | None
Gets the startup notification ID for a Wayland display, or
None
if no ID has been defined.Deprecated since version 4.10: Please do not use it in newly written code
- is_composited() bool
Returns whether surfaces can reasonably be expected to have their alpha channel drawn correctly on the screen.
Check
is_rgba
for whether the display supports an alpha channel.On X11 this function returns whether a compositing manager is compositing on
display
.On modern displays, this value is always
True
.
- is_rgba() bool
Returns whether surfaces on this
display
are created with an alpha channel.Even if a
True
is returned, it is possible that the surface’s alpha channel won’t be honored when displaying the surface on the screen: in particular, for X an appropriate windowing manager and compositing manager must be running to provide appropriate display. Useis_composited
to check if that is the case.On modern displays, this value is always
True
.
- map_keycode(keycode: int) tuple[bool, list[KeymapKey], list[int]]
Returns the keyvals bound to
keycode
.The Nth
GdkKeymapKey
inkeys
is bound to the Nth keyval inkeyvals
.When a keycode is pressed by the user, the keyval from this list of entries is selected by considering the effective keyboard group and level.
Free the returned arrays with
free()
.- Parameters:
keycode – a keycode
- map_keyval(keyval: int) tuple[bool, list[KeymapKey]]
Obtains a list of keycode/group/level combinations that will generate
keyval
.Groups and levels are two kinds of keyboard mode; in general, the level determines whether the top or bottom symbol on a key is used, and the group determines whether the left or right symbol is used.
On US keyboards, the shift key changes the keyboard level, and there are no groups. A group switch key might convert a keyboard between Hebrew to English modes, for example.
GdkEventKey
contains a%group
field that indicates the active keyboard group. The level is computed from the modifier mask.The returned array should be freed with
free()
.- Parameters:
keyval – a keyval, such as
KEY_A
,KEY_UP
,KEY_RETURN
, etc.
- notify_startup_complete(startup_id: str) None
Indicates to the GUI environment that the application has finished loading, using a given identifier.
GTK will call this function automatically for GtkWindow with custom startup-notification identifier unless gtk_window_set_auto_startup_notification() is called to disable that feature.
Deprecated since version 4.10: Using
set_startup_id
is sufficient- Parameters:
startup_id – a startup-notification identifier, for which notification process should be completed
- open(display_name: str | None = None) Display | None
Opens a display.
If opening the display fails,
NULL
is returned.- Parameters:
display_name – the name of the display to open
- prepare_gl() bool
Checks that OpenGL is available for
self
and ensures that it is properly initialized. When this fails, anerror
will be set describing the error and this function returnsFalse
.Note that even if this function succeeds, creating a
GdkGLContext
may still fail.This function is idempotent. Calling it multiple times will just return the same value or error.
You never need to call this function, GDK will call it automatically as needed. But you can use it as a check when setting up code that might make use of OpenGL.
Added in version 4.4.
- put_event(event: Event) None
Adds the given event to the event queue for
display
.Deprecated since version 4.10: This function is only useful in very special situations and should not be used by applications.
- Parameters:
event – a
GdkEvent
- supports_input_shapes() bool
Returns
True
if the display supports input shapes.This means that
set_input_region
can be used to modify the input shape of surfaces ondisplay
.On modern displays, this value is always
True
.
- supports_shadow_width() bool
Returns whether it’s possible for a surface to draw outside of the window area.
If
True
is returned the application decides if it wants to draw shadows. IfFalse
is returned, the compositor decides if it wants to draw shadows.Added in version 4.14.
- sync() None
Flushes any requests queued for the windowing system and waits until all requests have been handled.
This is often used for making sure that the display is synchronized with the current state of the program. Calling
sync
beforeerror_trap_pop
makes sure that any errors generated from earlier requests are handled before the error trap is removed.This is most useful for X11. On windowing systems where requests are handled synchronously, this function will do nothing.
- translate_key(keycode: int, state: ModifierType, group: int) tuple[bool, int, int, int, ModifierType]
Translates the contents of a
GdkEventKey
into a keyval, effective group, and level.Modifiers that affected the translation and are thus unavailable for application use are returned in
consumed_modifiers
.The
effective_group
is the group that was actually used for the translation; some keys such as Enter are not affected by the active keyboard group. Thelevel
is derived fromstate
.consumed_modifiers
gives modifiers that should be masked out fromstate
when comparing this key press to a keyboard shortcut. For instance, on a US keyboard, theplus
symbol is shifted, so when comparing a key press to a<Control>plus
accelerator<Shift>
should be masked out.This function should rarely be needed, since
GdkEventKey
already contains the translated keyval. It is exported for the benefit of virtualized test environments.- Parameters:
keycode – a keycode
state – a modifier state
group – active keyboard group
Properties
- class Display
-
- props.dmabuf_formats: DmabufFormats
The dma-buf formats that are supported on this display
Added in version 4.14.
Signals
- class Display.signals
- closed(is_error: bool) None
Emitted when the connection to the windowing system for
display
is closed.- Parameters:
is_error –
True
if the display was closed due to an error
- seat_added(seat: Seat) None
Emitted whenever a new seat is made known to the windowing system.
- Parameters:
seat – the seat that was just added