LINUX.ORG.RU

Костыльное позиционирование?

 , ,


0

3

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

Как вы понимаете с позиционированием в Wayland возникли проблемки. Просто указать координаты главного окна не получается. Пытался сделать окно с фиксированной высотой и максимизировать его. В оффтопике трбк прокатил, в x11 прокатил, в Wayland, ради которого всё и затевалось - не прокатил. Если окно максимизировать - оно разворачивается на весь экран, какие бы ограничения я не ставил.

Есть хоть какой-нибудь способ убедить Wayland создать окно вверху экрана? Пока нашёл только один, перед запуском ставить переменную среды WAYLAND_DISPLAY=

Но это такое себе решение. Временное в лучшем случае...

★★★★★

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

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

если дело происходит в кедах, то попробуй сделать из своей программы панельку, это будет правильнее всего

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

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

Но то, что хотя бы в KDE есть такое решение уже не плохо. Буду иметь ввиду.

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

Одна из целей wayland же - чтобы у говнософта подобных вольностей не было, и это правильно. Сделай так чтобы главное окно представляло не «невысокую полоску, размещающуюся вверху экрана», а нормальное окно.

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

Рано или поздно, но позиционирование в Wayland добавят.

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

Не могу. :) Народ не оценит радикальное изменение дизайна.

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

А нужно для себя или для всех сделать?

Я вот вижу в Hyprland возможность сделать floating окно, а после этого задать ему размер и позицию. Но это средствами композитора делается, а не окна. Думаю, кстати, что в кедах, средствами kwin тоже можно сделать что-то подобное. Таким образом, если делать для людей, то придется писать костыли к каждому композитору. А если для себя, то это может и не проблема сделать один раз.

Loki13 ★★★★★
()

я думал здесь про маркетологов. а тут про вяленд. гм.

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

А нужно для себя или для всех сделать?

Для группы товарищей. :)

Думаю, кстати, что в кедах, средствами kwin тоже можно сделать что-то подобное.

Я посмотрю. Меня более чем устроит, если в требованиях будет KDE.

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

Вот так и будем пилить через 100500 костылей, кто для kwin, кто для xfwm, кто ещё для чего. А везде и сразу без стандартизации это нормально работать не будет.

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

Да я разве против? Обсуждения протоколов позиционирования (явного или хотя бы указания зон и компоновки окон) ведутся.

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

Они уже несколько лет ведутся. На данный момент они на стадии того, что предложенные решения плохо подходят для гиперсферических экранов в 4-мерном пространстве с неевклидовой геометрией.

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

О, да. Я проникся чтением комментариев. Давно уже впечатление, что некоторые вещи в IT создаются инопланетянами.

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

По теме, ты можешь накостылить через layershell, но это не будет работать в гнуме вроде как. Для Qt даже есть библиотека layershell-qt от перцев из KDE.

Но я бы забил и запускал под иксами. Вялянд пока не готов для десктопа.

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

Гуглите layer-shell. Это то, что вам нужно. Работает везде, кроме Gnome и совсем маргинальщины.

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

Одна из целей wayland же - чтобы у говнософта подобных вольностей не было

А кому эта цель нужна собственно? Вот мы видим и девелопера и юзеров, кому это ограничение нафиг не упало.

rumgot ★★★★★
()

Жди, лет через 15 в Wayland появится всё что есть в X11. и Все расширения станут обязательными, то есть получится ещё один Xorg и станет всё как сейчас просто работать.

А пока, а пока Wayland в руках подозрительно неторопливых дядей и тётей которые утверждают банальные вещи поштучно мусоля их годами говоря что фундаментально ненужно, но потом добавляют, сидят на зарплате у MS + IBM/RedHat первым выгодно тормозить десктопный линукс, а лучше отбросить его на 10 лет назад что собственно и делает Wayland, а вторым нужен продукт совместимый чуть более чем ни с чем и выполняющий только то что нужно на огороженных рабочих станциях компаний и Wayland тоже это замечательно делает. А на деле что? В вайланд завезли декорации, в вайланд завезли тиринг, в вайланд завезли диалоговые окна, в вайланд завезли захват содержимого экрана. Изначально всё это считалось ненужным и фундаментально не существовало. Только спустя годы, в вайланде появляется то что уже и так везде есть несмотря на то что изначально говорилось что в вайланде этого не будет никогда.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от atrus

Я посмотрю. Меня более чем устроит, если в требованиях будет KDE.

Посмотрел в kwin_wayland. Нашел только варианты «По центру», «в левом верхнем углу» и «под мышью». Размеры можно прямо в пикселях указать. Так что если подойдет вариант поместить в левый верхний угол эту полоску и задать размер, то может и подойдет.

Кстати, по идее, можно заморочиться(мы же в development) и самому, в приложении реализовать необходимый протокол. Как-то же waybar это делает, расположение полоской поверх всех сверху. Можно у них и подсмотреть.

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

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

После перестановки системы главное не забыть поставить дефолтную загрузку в иксах а не в вайлэнде.

Я был бы рад жить без этого этого знания, но увы…

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

А у не говномофта? Например, в aimp была опция вывода вверху экрана поверх всех окон название трека и исполнителя в момент начала проигрывания.

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

Не, не забыл, дротаверина гидрохлорид, баралгин и сальбутамол. 4.2 если и есть то в неточностях формулировок. Вайланду уже более 15ти лет, а там всё ещё думают о том каким должен быть графический сервер. А вместо него солянка из хрен пойми чего

С кучей специфичных расширений прибитых к DE или вообще браузерам лол.

Про совместимость вообще хохма, декорации окон

3 умеют, 3 не умеют и так со всем. Даже ядро вайланда не все умеют, а если умеют то разные версии протоколов

Габену вон посрать, он себе gamescope сделал, запилит что нужно невзирая на протокол и выкинул нафиг всё что не надо и кайфует, игроки к слову тоже ибо там чисто для запуска окна игры. Для консолей, банкоматов и лёгких WM и рабочих станций вайланд идеален. Для десктопа ещё далеко.

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)

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

Xintrea ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

Для консолей, банкоматов и лёгких WM и рабочих станций вайланд идеален. Для десктопа ещё далеко.

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

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

Пусть сначала додумают, а потом объявят расширения обязательными, появится аналог Xorg умеющий всё, а всякие расширения чисто под DE вымрут. Вот тогда будет единая точка притяжения, на данный момент, вот тебе базовое ядро возможностей, вот охапка расширений, реализуй как хочешь, наше дело XML файлы писать.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от Xintrea

А если сделать в два шага - вначале окно на весь экран, потом изменить высоту окна до нужного?

Это не работает не только из кода, но даже руками. В PySide6 (и вероятно в Qt6 в целом под Wayland/Gnome) если окно максимизировано, оно буквально на весь экран, забивая на размеры. Если снять максимизацию или установить жёсткое ограничение размеров, то окно немедленно отлипает от верха и кидается в случайное место экрана.

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

в aimp была опция вывода вверху экрана поверх всех окон название трека и исполнителя в момент начала проигрывания

это называется OSD и в вейланде нет никаких проблем с этим

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

Какой сейчас месяц - помнишь? Вот этими - в плохом смысле слова - они и создаются.

LongLiveUbuntu ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

Жди, лет через 15 в Wayland появится всё что есть в X11. и Все расширения станут обязательными, то есть получится ещё один Xorg и станет всё как сейчас просто работать.

А потом они опять все сломают, чтобы были ощущения как в 2001 в момент выхода Win XP.

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

Стало быть, задачу тса можно решить таким образом?

u5er
()
Ответ на: комментарий от LINUX-ORG-RU

реализуй как хочешь, наше дело XML файлы писать.

Там вроде из этих xml файлов код(интерфейсы наверное) каким-то образом автоматически может генерироваться. Особо не разбирался, но в wscreensaver что-то похожее видел.

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

прикольно, но похоже это таки делается с помощью kwin и/или plasmashell

kott ★★★★★
()

Лови вредителя! Поддерка агрессора!

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

Как-то же waybar это делает

На сколько я понял при беглом просмотре исходников - тоже через Layer Shell.

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

Они просто не умеют её готовить. У ICCCM/EWMH тоже есть цель чтобы у говнософта подобных вольностей не было. Но так же есть _NET_WM_WINDOW_TYPE_DOCK, _NET_WM_STRUT, и _NET_WM_STATE_STICKY и вуаля, у вас панель на краю экрана, фиксированного размера, без декораций, которую пользователь подвигать не может.

И таки да, Wayland станет юзабельным лет через 15, когда разрабы по одному пункту за раз медленно но верно придут к выводу что им нужен весь ICCCM и EWMH.

Gentooshnik ★★★★★
()

Сейчас это делается средствами композитора. Протокола для доков в Wayland вроде бы до сих пор нет.

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

И кому это понадобилось?

Скорее всего игорям. Кто-то готов мириться с тирингом, ради меньшего лага.

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

Не. Игры это сами просто контролируют. Им лишний буфер на вывод не нужен, в движках и так двойная буферизация и т.д.

hateyoufeel ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.