LINUX.ORG.RU

Центрирование окон в FVWM в многомониторных конфигурациях

 , , , ,


0

1

Проблема в следующем: при использовании двух и более мониторов (xinerama или xrandr) опция

PositionPlacement Center
центрирует окно не относительно границ монитора, а относительно глобального виртуального рабочего стола, так, что окна появляются как раз на границе двух мониторов. Опция
StartOnScreen c 
не особо помогает, о чем сказано в документации.

В общем есть ли в FVWM способ задания абсолютного положения окна относительно монитора, а не глобального экрана?

★★★★★

купите третий монитор. :)

или рекомендую: PositionPlacement UnderMouse, SloppyFocus

ам... а как определять, на каком мониторе должно отрисоваться окно?
я так понял, вы хотите помещать новые окна по центру того или иного монитора, да? можно накостылить с FvwmEvent: new_window и делать Move в нужное место нового окна.

Spoofing ★★★★★ ()
DestroyFunc StartFunction
AddToFunc StartFunction
+ I Module FvwmEvent

DestroyModuleConfig FvwmEvent: *
*FvwmEvent: Cmd
*FvwmEvent: add_window FuncFvwmMove

DestroyFunc FuncFvwmMove
AddToFunc FuncFvwmMove
+ I PipeRead "echo Move $(($[vp.width] / 2 - $[w.width] / 2))p $(($[vp.height] / 2 - $[w.height] / 2))p"

вот, костыль, помещение по центру ручками. если вас не устраивает весь vp (viewport), то определите вручную разрешение монитора. и приплюсуйте разрешение, чтобы размещать на втором мониторе.

гыыыыы. извините.

Spoofing ★★★★★ ()

Сперва прочитал как

Цементирование окон в FVWM

Hertz ★★★★★ ()

псс, эй парень, тебе dwm нужен?

DestroyFunc StartFunction
AddToFunc StartFunction
+ I Module FvwmEvent

DestroyFunc FuncDwmSetMaster
AddToFunc FuncDwmSetMaster
+ I Current (*) SetEnv DWM_MASTER_$[desk.n]_$[page.nx]_$[page.ny] $[w.id]
+ I FuncDwmTileH

DestroyFunc FuncDwmTileH
AddToFunc FuncDwmTileH
+ I All (*) WindowStyle WindowListSkip
+ I All (CurrentPage) DestroyWindowStyle
+ I PipeRead "echo WindowId \$[DWM_MASTER_$[desk.n]_$[page.nx]_$[page.ny]] Move 0 0"
+ I PipeRead "echo WindowId \$[DWM_MASTER_$[desk.n]_$[page.nx]_$[page.ny]] Resize frame 65 100"
+ I PipeRead "echo WindowId \$[DWM_MASTER_$[desk.n]_$[page.nx]_$[page.ny]] WindowStyle WindowListSkip"
+ I UpdateStyles
+ I ModuleSynchronous FvwmRearrange -tile -u -h 65 0 100 100
+ I All (*) DestroyWindowStyle

Key Return A M FuncDwmSetMaster

DestroyModuleConfig FvwmEvent: *
*FvwmEvent: Cmd
*FvwmEvent: add_window FuncDwmTileH
*FvwmEvent: destroy_window FuncDwmTileH
Spoofing ★★★★★ ()

меня кстати другая фигня бесит, это не то баг, не то фича.

dwm же ресайзит окна, чтобы тайлить их, да? но этот самый ресайз окнами не запоминается, тобишь запускаешь в тайлинге pidgin, firefox, потом запускаешь их просто так — они запускаются нормальными как были, а не как были «кривыми» в тайлинге.

в fvwm бы непомешала такая фича-опция в командах Move и Resize, чтобы приложения не запоминали как их извращенно ресайзили.

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

как определять, на каком мониторе должно отрисоваться окно?

На мониторе с курсором же!

помещать новые окна по центру того или иного монитора, да?

Ага, например mplayer.

можно накостылить с FvwmEvent: new_window и делать Move в нужное место нового окна.

Надо будет попробовать.

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

Идея с FvwmEvent классная, но как его заставить распознавать только строго определенные окна? Например только mplayer или диалоговые окна программ?

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

+ I PipeRead «echo Move $(($[vp.width] / 2 - $[w.width] / 2))p $(($[vp.height] / 2 - $[w.height] / 2))p»

Можно заменить на

+ I Move screen c 50-50w 50-50w

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

между + I PipeRead вставьте

+ I ThisWindow ("MPlayer|*Rxvt|*XTerm|нувыпонели") PipeRead
Spoofing ★★★★★ ()
Ответ на: комментарий от fat_angel

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

+ I ThisWindow («MPlayer»)

+ I ThisWindow (Transient)

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

да...

документацию каждый раз перечитываю, но не запоминаю, уж больно она огромна. =)

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

Годно! Благодарствую. Давно я Fvwm палочкой не тыкал…

fat_angel ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.