DMXChangeD...Attributes(3)
π DMXChangeDesktopAttributes β like, the whole vibe of your global bounding box, bestie π
okay so this is a page from Library Functions Manual β it's DMXChangeD...Attributes(3), and yes the name is long enough to need its own group chat. sit down, grab a strawberry π, and let me tell you about the one function that resizes the bounding box of your entire screen.
β¨ NAME β¨
DMXChangeDesktopAttributes β change global bounding box. that's it. that's the whole job. iconic behavior honestly π
πΈ SYNOPSIS πΈ
#include <X11/extensions/dmxext.h>
int DMXChangeDesktopAttributes(Display *dpy,
unsigned int mask,
DMXDesktopAttributes *attr);
look at her. three arguments, zero drama. we love a low-maintenance function signature π
π¦ DESCRIPTION π¦
so here's the tea, bestie: DMXChangeDesktopAttributes() resizes the bounding box of the whole screen β but only when you're using the Xinerama extension. if you're not? it literally does nothing to your screen layout. not a single pixel moved. it's giving "I showed up but I'm not participating" π
the attributes you wanna change? those go in attr. and you tell it which attributes you care about using mask. two separate little slots, very organized of her.
the values you use to compute mask are these four queens:
DMXDesktopWidthDMXDesktopHeightDMXDesktopShiftXDMXDesktopShiftY
and here's the DMXDesktopAttributes structure, in all her glory:
typedef struct {
unsigned int width;
unsigned int height;
int shiftX;
int shiftY;
} DMXDesktopAttributes;
okay so let's break it down, no cap:
widthandheightβ these specify the new width and height for the bounding box. glow-up time β¨shiftXandshiftYβ these specify where the Xinerama origin will be placed with respect to the origin of the new bounding box. this is the sneaky-genius part: it lets you move the left and upper edges of the bounding box without changing the visual position of the windows on the desktop. windows stay put, the box moves. it's giving main character energy that refuses to lose her spot π«Ά
now the defaults, because bestie needs to know what happens when you say nothing:
- if
widthorheightis not specified, the current values will be used. - if
shiftXorshiftYis not specified,0will be used.
heads up fr fr: all coordinates are in the global DMX coordinate system. and if Xinerama is not active, an error will be generated. so like, vibe check your Xinerama status first, okay? π
π RETURN VALUE π
DMXChangeDesktopAttributes() will return 0 on success β slay, we love a zero π
but if it's not feeling it, you might get:
DmxBadXineramaβ Xinerama is not active. she can't work under these conditions.DmxBadValueβ the size of the bounding box is too large. bestie, that's too much box.DmxBadReplyβ there was a protocol error. awkward.
also, DMXChangeDesktopAttributes() can generate:
BadLengthβ if the request is malformed, which should never happen when using this library interface. so if you see this one, something has gone deeply wrong and it's not your fault, periodt.BadValueβ if any values are out of range.
π SEE ALSO π
go read her sisters, they're all iconic:
that's the whole page, bestie β you ate this one, honestly π
later, babes: this was X Version 11, libdmx 1.1.5, filed under DMXChangeD...Attributes(3). mwah πβ¨πΈ
π¦ where this page comes from
- epel 10: libdmx-devel 1.1.5-5.el10_1 Β· MIT
- fedora 43: libdmx-devel 1.1.5-6.fc43 Β· MIT
- fedora 43: libdmx-devel 1.1.5-6.fc43 Β· MIT
- fedora 44: libdmx-devel 1.1.5-7.fc44 Β· MIT
- fedora 44: libdmx-devel 1.1.5-7.fc44 Β· MIT
- nixos 26.05: libdmx 1.1.5
- nixpkgs unstable: libdmx 1.1.5
- opensuse-leap 16.0: libdmx-devel 1.1.5-160000.3.2 Β· MIT
- opensuse-leap 16.0: libdmx-devel 1.1.5-160000.3.2 Β· MIT
- opensuse-leap 16.0: libdmx-devel 1.1.5-160000.3.2 Β· MIT
- opensuse-leap 16.0: libdmx-devel 1.1.5-160000.3.2 Β· MIT
- Copyright 2004 Red Hat Inc., Durham, North Carolina
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms