Próbuję użyć XResizeWindow(), aby utworzyć okno, które będzie obejmować 2 monitory, ale menedżer okien? ogranicza to do jednego.Jak ustawić okno X11 na wielu monitorach?
Czy istnieje podpowiedź lub właściwość, którą mogę powiązać z oknem, aby powiedzieć WM, aby go nie ograniczać?
W moim przypadku testowym mam dwa monitory 1600x1200, które nVidia prezentuje jako jeden ekran 3200x1200 w KDE4. XDisplayWidth (display, 0); zwraca 3200 i XDisplayHeight (wyświetlacz, 0); zwraca 1200.
Kiedy zadzwonić
XCreateWindow(display, DefaultRootWindow(display),
220, 0, 1700, 930,
1, DefaultDepth(display,screen),
InputOutput, CopyFromParent,
CWCursor, &attributes);
za oknem 1700x930 na 220,0 mi się okno 1593x930 przy 0,0, utrzymując ją w całości na lewym monitorze. Każdy XResizeWindow większy niż ten zostanie skurty do 1593. (Zakładam, że 7 pikseli to dekoracja okna, co jest w porządku.)
Ale, jeśli wtedy XMoveWindow (display, win, 800, 0), to przeniesie okno aby rozciągnąć ekrany, a następnie powiększyć go do 3200 (minus kilka pikseli).
Czy jest coś, co mogę zrobić, aby powiadomić zarządcę okien lub kogokolwiek, kto to robi, aby nie ograniczać okna do jednego monitora i pozwolić mi korzystać z całego ekranu?
Dzięki!
%xrandr -q --verbose
xrandr: Failed to get size of gamma for output default
Screen 0: minimum 3200 x 1200, current 3200 x 1200, maximum 3200 x 1200
default connected 3200x1200+0+0 (0x161) normal (normal) 0mm x 0mm
Identifier: 0x160
Timestamp: 64409661
Subpixel: unknown
Clones:
CRTC: 0
CRTCs: 0
Transform: 1.000000 0.000000 0.000000
0.000000 1.000000 0.000000
0.000000 0.000000 1.000000
filter:
3200x1200 (0x161) 192.0MHz *current
h: width 3200 start 0 end 0 total 3200 skew 0 clock 60.0KHz
v: height 1200 start 0 end 0 total 1200 clock 50.0Hz
Aha! Ustawienie min_width robi lewę. Aplikacja stara się być sztywna tylko w odniesieniu do rozmiaru, gdy użytkownik wyraźnie mówi aplikacji, jak duże ma to okno. Mogę więc sprawdzić rozmiar ekranu i jeśli jest wystarczająco duży, ręcznie zmusić go do min_width, a następnie ustawić min_width z powrotem na 640 po zmianie rozmiaru. Dziękujemy! –
W przypadku podanego rozmiaru należy użyć opcji USSize/USMinSize itp. Zamiast P * (preferencje określone przez użytkownika mają być szanowane częściej). –