LINUX.ORG.RU

WM / теги / «мультимониторность»

 , ,


1

1

Дело давно минувших дней.. если восстановлю исходники(тема), думаю вернуться к разработке.

Я тогда встрял на том, что WM с несколькими мониторами работает как с одним. И dwm, насколько помню - тоже. Как решить?

Кстати, у awesome при запуске приложения окно вешается на тот screen, на котором находится курсор, независимо от того, какой тэг выбран
(имеется ввиду тэг другого screen, примерный конфиг: 1-9 на первом screen, 0 на втором). Привязки к 0-тегу нету, потому что он становится доступен, только когда активна двухмониторная конфигурация(емнип)
Конфиг осома и исходники dwm давно не смотрел, если что.

PS: WM на основе dwm написан, только вместо xlib использую xcb.

Сопутствующие темы(старые) : первая,вторая,третья

★★

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

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

я xinerama не использую, окна раскидываю xrandr'ом

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

Я тогда встрял на том, что WM с несколькими мониторами работает как с одним. И dwm, насколько помню - тоже. Как решить?

Это как раз Xinerama и есть. В X примерно такая хрень при работе с несколькими экранами: либо создаётся отдельный X Display на каждый монитор, но при этом нельзя перетаскивать окна между ними, либо включается Xinerama и все экраны объединяются в один виртуальный. Чтобы разбираться где и что, нужно дёргать инфу о мониторах через Randr, где в том числе будут координаты выводов на этом одном жирном виртуальном экране.

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

Включается

у dwm

#ifdef XINERAMA
#include <X11/extensions/Xinerama.h>
#endif /* XINERAMA */
изначально ее выкинул.
у awesome
#include <xcb/xinerama.h>
даже не добавлял

с учетом того, что я часто на ходу меняю разрешение и primary-монитор мне вечно лезть в конф xorg'a? иль там xrandr не рушит прописанное?

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

изначально ее выкинул.
даже не добавлял

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

с учетом того, что я часто на ходу меняю разрешение и primary-монитор мне вечно лезть в конф xorg'a? иль там xrandr не рушит прописанное?

xrandr ничего не пишет в конфиги.

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

эм.. знаю что не пишет.. я про другое.

и кстати, xinerama работает с nvidia?

тебе лучше её включить в WM.

только в WM?
а в конфе xorg? хотя там зачем, если осом и без этого работает

_______
первоначальная настройка окон прописана в xinitrc путем запуска скрипта проверяющего текущую и запускающий xrandr с заданной конфигурацией c последующим запуском осома.

в осоме есть виджет с кнопками, которые запускают тот же скрипт с последующим рестартом осома.

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

и кстати, xinerama работает с nvidia?

Оаяхз, у меня повсюду AMD или Intel.

только в WM?
а в конфе xorg? хотя там зачем, если осом и без этого работает

Она включена по дефолту в иксах сейчас.

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

тогда оставим xorg как есть, и будем пилить поддержку xinerama(заодно ковырять исходники осома - есть там функция по этому поводу)

Теек, ладно с этим вопросом более-менее понятно, а что этому поводу есть мысли?

Кстати, у awesome при запуске приложения окно вешается на тот screen,
на котором находится курсор, независимо от того, какой тэг выбран

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

и кстати, xinerama работает с nvidia?

да. у меня, кстати, dwm.

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

о, круто, у меня вот тап в осоме не работает, как настроить, ребят?

а если серьезно: на чем пилите? всю жизнь мечтал о таком проекте, хех.

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

На чем? Кхм, на том же, что и dwm написан ;) .

А вообще Си, c заменой использования xlib у dwm на xcb + cairo сверху.

Сейчас думаю начать с самого нуля :( , ибо впихивать

будем пилить поддержку xinerama

и не только(xrandr+x11, емнип у последних версий осома) с переписыванием костылей, которых я когда-то нагородил - то еще занятие.

А текущие исходники (мои же) будут как пример (без них будет тяжелее).

Потихоньку-понемножку, но думаю дойду до окончательного варианта

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

Ты независимые наборы тегов/раб.столов хочешь сделать? Разве в dwm это не реализовано?

Можно подсмотреть как сделано у awesome, bspwm и i3. У всех трех по-разному, у i3 наиболее сильно отличается от первых двух - там пляска от контейнеров. Само собой они все ломают EWMH, который подразумевает, что на все дисплеи один большой рабочий стол (если забыть про существование zaphod режима, но про него лучше забыть)

xinerama вытеснена randr'ом. Nvidia с ним совместима, хотя у них свой баззворд был на эту тему.

Кстати, у awesome при запуске приложения окно вешается на тот screen,на котором находится курсор, независимо от того, какой тэг выбран

А как должно быть? Окна спавнятся на активном screen по-умолчанию. При желании можно перескриптовать

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

могу скинуть только неполный склеенный из кусков файл(записал только основное, ибо) .. восстанавливать структуру нет желания с учетом того, что новый «проект» начинаю

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

Подсмотреть-то модно, только в случае с i3 без бутылки не разберешь.

При создании использовал только dwm(исходники xlib(6.0+) и xcb(5.8 вроде) ) и awesome(в частности его lua-конфиги).

У осома все равно (в последней версии) проверяются все варианты, в отличии от 3.4.15(плохо смотрел мб).

Значит дело в активном скрине, учту.

ЗЫ:: да и еще внешний конфиг надо сделать с подхватом на лету(чтоб не пересобирать по каждому чиху)

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

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

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

Ну упомянутые выше wm юзают xcb, всякие примочки типа lemonbar, yabar и прочее тоже. xcb новее и, как говорят, чище. Прямого столкновения ни с тем ни с другим не было, большего не скажу :)

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

потому и модно делать не конфиг, а скрипт к ембеддед интерпретатору - суть одна, ошибок меньше, возможностей больше

давай гитхаб короче заводи, чо

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

наелся я lua, нужно что-то более упрощенное.. (если про это суть), только вот я хз, что туда засунуть и как их потом использовать..

изначальная цель - создать WM со встроенными функциями других прог(с последующим отказом от них, в частности vnstat касается) и скриптов(коих набралось уже немало)

ЗЫ:: только вот рутовские привилегии нужны будут, но я противник всяких sudo(есть на то причины)

_____
возможно чушь сморозил

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

чище, ниже по уровню и больше «писанины», я сейчас даже не вспомню, почему от xlib в сторону xcb переход нужен был

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

c учетом того, что у осома приоритет - xrandr->xinerama->x11(общий), решил так же и оставить.(функции не тронул, но осомовские определения пришлось выкинуть пока..)

по крайней мере, прога сразу за xrandr цепляется(и скорей всего осом тоже). (хотя я все три функции проверил - вроде правильно определила кол-во экранов и их размеры)

скрин(2-ой слева - результат после скана экранов.. 2-ой справа - результат скрипта сборки)

и понимает, какой идет первый экран..

с учетом начала с исходников осома, думаю как бы не получился второй осом(без луа, конечно)

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

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