LINUX.ORG.RU

Как в 2024 году передвинуть окно?

 , ,


2

3

Нужно программным методом передвинуть окно программы под вейландом.

  1. Есть у него какие-то расширения, которые это позволяют?

  2. Оконный менеджер же как-то двигает окна, м.б. у кде(kwin) и гнома есть какие-то интерфейсы, позволяющие программе запросить новое расположение окна?

★★★★★

Последнее исправление: next_time (всего исправлений: 2)
Ответ на: комментарий от Obezyan

это как будто бы про драг-н-дроп

«Request that the window will be moved with the cursor during the drag operation. The offset is a hint to the compositor how the toplevel should be positioned relative to the cursor hotspot in surface local coordinates.»

Т.е., передвинуть-то окно с его помощью можно, но относительно курсора, а не экранных координат, хотя, м.б. я и не прав.

next_time ★★★★★
() автор топика

У мну мысль возникла, что хром ос на самом деле - гениальное решение многих проблем. Потому как то во что превратили современный десктоп ужасно.

peregrine ★★★★★
()

Нужно программным методом передвинуть окно программы под вейландом.

Партия сказала что это не нужно. Поэтому в каждом DE в вяленном свои фичи для этого (если они есть). В иксах xdotool и работает везде.

Skullnet ★★★★★
()

Оконный менеджер же как-то двигает окна, м.б. у кде(kwin) и гнома есть какие-то интерфейсы, позволяющие программе запросить новое расположение окна?

Верно вот это. Перемещение окна доступно только композитору. Запросить - да можно, но это уже API самого композитора - соответственно оно у всех будет разным. У kde свое, у гнома свое, у вагона мелких композиторов - свои варианты (если есть ).

Qui-Gon ★★★★★
()
Ответ на: комментарий от cumvillain

На ютубе есть такая фича, как мини-проигрыватель. Работает нормально только под иксами. Хочу такое же, но для десктопного плеера и чтобы работало более-менее везде.

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

надо пробовать. Под иксами есть х сервер который стандартен и у всех одинаков. Вейланд - набор протоколов. Какие из низ реализованы какие не реализованы - это уже зависит от композитора.

Qui-Gon ★★★★★
()
Ответ на: комментарий от cumvillain

Раз ты нашел решение, расскажи зочем?

Банальный пример: чтобы можно было сгруппированные окна вместе таскать. Как у Winamp и прочих Audacious, где ты можешь пристыковать идущий отдельным окном плейлист и вместе с основным окном перетащить его. Оно вот именно так и реализовано.

Вообще, Wayland кастрофически сосёт по части работы с дочерними окнами в многооконных программах.

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

Напротив, wayland наконец-то запрещает делать зоопарк уродов как winamp и нормально единообразно управлять окнами. Разумеется, приложение своим окном управлять не долно иметь никакого права.

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

моё дело послать запрос wm - а передвинет ли он окно и куда - мне уже неинтересно, это трудности wm и пользователя, который этот wm поставил

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

Напротив, wayland наконец-то запрещает делать зоопарк уродов как winamp и нормально единообразно управлять окнами. Разумеется, приложение своим окном управлять не долно иметь никакого права.

Мне вот просто интересно, а как ты и твои друзья по вяленой шизофрении дошли до жизни-то такой, что сама идея программ, управляющих своими окнами, вызывает настолько колоссальный разрыв жопы?

Потому что очень многие программы действительно лучше работают в многооконном режиме. Потому что иначе придётся делать ровно то же самое, но самому и внутри основного окна, что ведёт к куче просранного непонятно зачем времени. Примерно как каждая софтина типа терминала или браузера сегодня умеет табы, хотя казалось бы, гораздо лучше группировку окон в табы реализовать один раз в рамках WM. Но писатели WM не умеют в фичи, они умеют только орать «НИНУЖНА» когда от них эти фичи просят. Даже, казалось бы, настолько простые как изменение координат.

А так называемое «единообразное» управление окнами почему-то всё время заключается в том, чтобы развернуть окно на весь экран. Максимум, до чего мегакодеры сумели додуматься, это два или три окна рядом поставить. На большее вас почему-то не хватает.

hateyoufeel ★★★★★
()
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от s-warus

но в остальном вайлянде это под запретом, не то что двинуть даже знать координаты не дано. Такова политика офицального вяленого.

Отчасти это правильно, вяленд же не знает, какой композитор запущен. А как(и зачем), например, возможность двигать окна в тайлинге?

А вообще, делаешь свое окно на полный экран, прозрачное, и двигаешь в нём дочернее уже куда хочешь. По идее браузеры картинку в картинке так и делают(по логике так должны делать).

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

Вообще, Wayland кастрофически сосёт по части работы с дочерними окнами в многооконных программах.

А разве дочерними нельзя? Ты бы тогда кнопки(которые тоже являются дочерними окнами) в окне не смог даже позиционировать. Делаешь хост-окно и в нём уже дочерние расставляешь как тебе угодно. В примере с Winamp достаточно реализовать что-то вроде Dock для своих окон. Остается конечно вопрос исключения «дырки», для получения непрямоугольной области главного окна, но думаю это возможно(просто я не интересовался).

Loki13 ★★★★★
()
Последнее исправление: Loki13 (всего исправлений: 1)
Ответ на: комментарий от Loki13

Вообще, Wayland кастрофически сосёт по части работы с дочерними окнами в многооконных программах.

А разве дочерними нельзя? Ты бы тогда кнопки(которые тоже являются дочерними окнами) в окне не смог даже позиционировать. Делаешь хост-окно и в нём уже дочерние расставляешь как тебе угодно. В примере с Winamp достаточно реализовать что-то вроде Dock для своих окон. Остается конечно вопрос исключения «дырки», для получения непрямоугольной области главного окна, но думаю это возможно(просто я не интересовался).

Ну, то есть, вместо того чтобы просто сделать два окна и управлять ими, ты предлагаешь делать одно большое окно без декораций, заливать его прозрачностью и внутри рисовать другие «окна»? Или что?

Вообще, банальная же штука: сделать два окна, которые могут «слипаться» в одно целое или их можно разделять и размещать на экране как вздумается. Xorg может. Макось может. Даже сраная Windows 98 и та может. Wayland не может. Вот уж умора!

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

Вообще, банальная же штука: сделать два окна, которые могут «слипаться» в одно целое или их можно разделять и размещать на экране как вздумается. Xorg может. Макось может. Даже сраная Windows 98 и та может. Wayland не может. Вот уж умора!

А потом такое приложение запускаешь под тайловым WM и полетела звезда по закоулкам. Я встречал приложения, у которых диалог подтверждения был окном верхнего уровня и мне WM его расфигаривал на пол экрана из-за этого.

Loki13 ★★★★★
()
Последнее исправление: Loki13 (всего исправлений: 1)
Ответ на: комментарий от hateyoufeel

Мне вот просто интересно, а как ты и твои друзья по вяленой шизофрении дошли до жизни-то такой, что сама идея программ, управляющих своими окнами, вызывает настолько колоссальный разрыв жопы?

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

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

Khnazile ★★★★★
()
Последнее исправление: Khnazile (всего исправлений: 1)
Ответ на: комментарий от Loki13

Вообще, банальная же штука: сделать два окна, которые могут «слипаться» в одно целое или их можно разделять и размещать на экране как вздумается. Xorg может. Макось может. Даже сраная Windows 98 и та может. Wayland не может. Вот уж умора!

А потом такое приложение запускаешь под тайловым WM и полетела звезда по закоулкам. Я встречал приложения, у которых диалог подтверждения был окном верхнего уровня и мне WM его расфигаривал на пол экрана из-за этого.

Фанаты тайловых извращений должны страдать. Если у тебя WM насилует окна и в хвост и в гриву, то как бы нечего удивляться такому.

Хотя один чёрт всё это решается просто изоляцией таких окон в отдельный фрейм. Ion3 это без проблем умел ещё лет 20 назад.

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

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

Нет?

У меня вообще есть стойкое ощущение, что вот эта мозговая травма, вылившаяся в запрет программам управлять своими окнами, вызвана использованием Windows XP и, в особенности, IE 6.0 под ней, который не умел табы и поэтому каждый сраный попап с каждого сайта выливался в новое окно, и окна эти прыгали по всему экрану.

Не надо пользоваться говнософтом. Если ты ставишь себе говнософт, это лично твоя половая проблема.

Кстати, что мешает проге под вялендом, ну я не знаю, создать тысячу окон и засрать тебе рабочий стол? Или, ещё круче, форк-бомба, создающая по десять окон на каждый процесс? Wayland что-нибудь против такого может сделать?

hateyoufeel ★★★★★
()
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от hateyoufeel

Кстати, что мешает проге под вялендом, ну я не знаю, создать тысячу окон и засрать тебе рабочий стол?

А что может помешать композитору вообще не показать твоё окно ни на каком экране? Просто считай, что каждое окно - это отдельный экран, на работу которого ты никак не влияешь. Ты же наверное помнишь Weston, например, позволяет повернуть окно на любой угол. Как ты собираешься это учитывать?

Пример жестокого обращения с окнами от Wayland-композитора:
https://m.youtube.com/watch?v=Bv7Zx-BDC7M

Khnazile ★★★★★
()
Последнее исправление: Khnazile (всего исправлений: 1)
Ответ на: комментарий от Khnazile

А что может помешать композитору вообще не показать твоё окно ни на каком экране?

Композитор, который не показывает окна, это наверное будет просто верхом вяленой шизофрении. Показывать окна – небезопасно! Вдруг в этом окне будет жопа?

Просто считай, что каждое окно - это отдельный экран, на работу которого ты никак не влияешь.

Круто, а зачем тут оконная система вообще?

Ты же наверное помнишь Weston

Нет, не помню.

hateyoufeel ★★★★★
()
Последнее исправление: hateyoufeel (всего исправлений: 2)
Ответ на: комментарий от hateyoufeel

Круто, а зачем тут оконная система вообще

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

Я плохо себе представляю api для управления окнами в трехмерном постранстве в общем виде. Наверное тут нужна наркомания с угловыми координатами)

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

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

Да и насрать? Просто вообще похрену. В 99.999% случаев окна расположены в одной координатной плоскости на мониторе одного юзера. То, что есть VR, для досктопа не играет вообще никакой роли в принципе. Досктопный софт в мире VR не применим, туда нужно писать совершенно отдельный UI с совершенно другими требованиями, поэтому распространять требования из мира VR на сраный Winamp – клиническая тупость и попытка натянуть одну сову на два глобуса сразу.

hateyoufeel ★★★★★
()
Последнее исправление: hateyoufeel (всего исправлений: 1)

Под вейландом это нельзя... НЕБЕЗОПАСНО.. вейланд же делали для автомобильных бортовых компьютеров
Там окна двигать не надо. Там всё должно быть прибито гвоздями.

Так что будем городить костыли с нейронками чтобы детектить окна и двигать мышку сервоприводами..

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

Мне вот просто интересно, а как ты и твои друзья по вяленой шизофрении дошли до жизни-то такой, что сама идея программ, управляющих своими окнами

А при чём тут вообще вяленый? Вот у меня иксы и i3, в нём тоже никаким окнам никто перемещаться не даст. Но из-за того что вообще есть такая возможность, говнокодеры могут делать говнокод когда окно например на событие изменения размера меняет размер на квадратный, но сделать этого ему никто не даёт и оно получает событие изменения размера, в итоге просто бесконечно мигает. А ещё есть, например, SDL1 игрушки которые меняют разрешение экрана (а падая даже не возвращают). Вот такого не должно быть никакой возможности сделать, ни-как-кой.

Потому что очень многие программы действительно лучше работают в многооконном режиме.

Так а кто отменял многооконный режим? Разберись для начала о чем речь идёт, потом истери.

Потому что иначе придётся делать ровно то же самое, но самому и внутри основного окна, что ведёт к куче просранного непонятно зачем времени. Примерно как каждая софтина типа терминала или браузера сегодня умеет табы, хотя казалось бы, гораздо лучше группировку окон в табы реализовать один раз в рамках WM.

Ну против этой идеи я ничего не имею. И более того, она уже работает - у kitty например много окон на один процесc, это работает и в иксах и в wayland. А терминалы с табами конечно только идиоты используют. Но для FF я хочу внутренние табы, вертикальные и древовидные, но и это в WM можно было реализвать. И это никто не запрещает, в wayland даже это будет сделать проще.

А так называемое «единообразное» управление окнами почему-то всё время заключается в том, чтобы развернуть окно на весь экран. Максимум, до чего мегакодеры сумели додуматься, это два или три окна рядом поставить. На большее вас почему-то не хватает.

На весь экран или в 3 ряда разворачивают не потому что иначе не сделать, а потому что это удобно. Засрать весь экран перекрывающимися окошечками пользователю никто не запрещает, но вот приложению самостоятельно никто не запрещает, но приложение такого мочь не должно.

anonymous
()
Ответ на: комментарий от hateyoufeel

Сам виноват. Тайлодрочеры должны страдать. Поставь нормальный WM /DE уже.

Ах, вот оно что. Я думал ты просто истеричка, но за общее благо, а ты оказывается только за своё понимание удобства, ещё и очень ограниченное. Что-ж, wayland таких к ногтю быстро прижмёт))

anonymous
()

Нужно программным методом передвинуть окно программы под вейландом.

Это невозможно сделать и разработчики Wayland всеми силами саботируют внесение расширений протокола позволяющих это сделать. В качестве предлога назыаают якобы безопасность и возможность использовпния всяких 3D оконных менеджеров виртуальной реальности.

X512 ★★★★★
()
Последнее исправление: X512 (всего исправлений: 1)
Ответ на: комментарий от anonymous

А ещё есть, например, SDL1 игрушки которые меняют разрешение экрана (а падая даже не возвращают).

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

next_time ★★★★★
() автор топика