LINUX.ORG.RU

Qt, multi-screen, virtual desktop, workspaces

 , , ,


1

1

Есть: один монитор в ноутбуке, Дебиан, Матэ и четыре воркспейса на десктопе.

Надо: сохранять положение окна на соответствующих скрине, десктопе, воркспейсе. И после закрытия окна, открывать его точно в том месте в каком оно было закрыто.

Qt не видит воркспейсы. Я пробовал и дебажил каждый метод для:

«QApplication::screens()» — всегда один скрин, тут нечего ловить

«QDesktopWidget» — всегда один скрин, isVirtualDesktop() возвращает false, все методы возвращают QRect только про один скрин.

«QWindow» — только про один скрин.

Вчера весь вечер яндексял гуглеца. Я так понял что только у виндузятни такой проблемы нет. А у мака и линя есть, ибо нагуглил я вот такое: https://stackoverflow.com/questions/16775352/keep-a-application-window-always...

1) Если я не прав — у кого есть рабочий кусок кода определить скрины, воркспейсы и вот это все? Можно и ссылочкой на исходники какой-нить кутешной программы.

2) Или если все так плохо (да и просто для интереса) приглашается Zubok, знающий как правильно приготовить иксы. Покажи пожалуйста на примере как узнать на каком воркспейсе расположено окно?

Ответ на: комментарий от Zubok

Хотя нет, я думаю. Он будет выдавать координату относительно текущего viewport. Но все же глянь, так это или нет.

Zubok ★★★★★
()
Ответ на: комментарий от Zubok

Нет, они маленькие, т.е. равны размеру скрина, никакого вирт размера большого там нет.

deep-purple ★★★★★
() автор топика
Ответ на: комментарий от Zubok

Т.е. добавляем к скрину и десктопу еще и вьпорт и тогда буде везде работать?

Иерархия то правильная: скрин -> десктоп -> вьюпорт -> окно?

Или так: скрин -> вьюпорт -> десктоп -> окно?

deep-purple ★★★★★
() автор топика
Ответ на: комментарий от deep-purple

А где тут что-то про кеды (кроме того, что на них работает) и про то, что оно как-то завязано?

XMs ★★★★★
()
Ответ на: комментарий от XMs

Потому, что у тебя кеды. А как и почему завязано надо будет выяснять.

deep-purple ★★★★★
() автор топика
Ответ на: комментарий от Zubok

Или десктоп и вьюпорт равноправны, одновременно их не будет и надо либо то либо это брать если оно есть в кол-ве больше одного?

deep-purple ★★★★★
() автор топика
Ответ на: комментарий от deep-purple

Или десктоп и вьюпорт равноправны

Одно другое не исключает. Оконный менеджер может поддерживать и то и то. Чаще поддерживается только workspace.

Вот можешь почитать текст: https://www.circuitousroot.com/artifice/programming/useful/fvwm/viewports/ind...

Zubok ★★★★★
()
Ответ на: комментарий от Zubok

Спасибо.

Судя по:

You set it up to show a grid for the virtual screen (Viewport mechanism) in a Workspace, and then to tell you in its titlebar which Workspace you're in.

правильная иерархия будет такой:

виртуал скрин -> вьюпорт (в контексте монитора) -> воркспейс -> окно.

deep-purple ★★★★★
() автор топика
Ответ на: комментарий от deep-purple

В одном из багрепортов в ланчпаде я прочел, что когда-то в Compiz были реализованы обе концепции, но что сейчас - не знаю. Есть вероятность, что уже убрали. Вот сейчас написал это и попробую найти ссылку.

https://bugs.launchpad.net/ubuntu/ source/compiz/ bug/153322

В конце пишут, что, мол, в апстриме за переключалкой воркспейсов не следили, поэтому только viewports. В общем, посмотри, вдруг там осталась эта функциональность. Мне кажется, что Compiz один такой WM, который толко viewports реализует. Однако даже если бы он реализовывл workspaces, то пользователь мог установить viewports и пришлось бы что-то думать. По ссылке выше написано, что еще FVWM обе концепции реализует.

Zubok ★★★★★
()
Последнее исправление: Zubok (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.