LINUX.ORG.RU

Как нормально настроить FVWM? Возможно ли...


0

0

Как сделать, чтобы при перемещении окна в такое положение, что одна из его частей залазит за пределы екрана, она не вылазила(частично) на другой workspace? Т. е. была такая картина: все workspace, например, пусты, кроме одного, на котором висит видимая часть окна.
Как сфокусировать root window?

anonymous

Во-первых, забудь слово workspace - во избежание путаницы :). В FVWM
есть три понятия: desktop, page и screen. Так вот, если кратко: screen
это viewport в desktop, который делится на pag'и. Где-то было хорошее
описание с картинками, но я забыл где, поэтому сам нарисую:
+----+----+----+  +----+----+----+  +----+----+----+
|    |    |    |  |    |    |    |  |    |    |    |
+----+----+----+  +----+----+----+  +----+----+----+
|    |    |    |  |    |    |    |  |    |    |    |
+----+----+----+  +----+----+----+  +----+----+----+
|    |    |    |  |    |    |    |  |    |    |    |
+----+----+----+  +----+----+----+  +----+----+----+
Может быть несколько desktop'ов, каждый из них состоит из
определенного число страниц (page) - на картинке это 3x3. Screen
(экран, viewport) может находится в любом положении внутри desktop'а,
причем необязательно точно попадая в границы страницы. Теперь надеюсь
понятно как все устроено :), если нет - man fvwm, секция THE VIRTUAL
DESKTOP, там еще подробнй написано.

Теперь ответ на вопрос: видимо у вас сейчас один desktop размера вроде
1x4, а нужно сделать вместо этого 4 десктопа размера 1x1, а для
переключения использовать функции GotoDesk вместо GotoPage.

Второй вопрос не совсем понял, плз опишите контекст (т.е. зачем это
нужно).

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

Спасибо за подробное обьяснение!
Контекст: хочу, чтобы при переключении страницы фокусировалось то окно, что было использовалось(т. е. было фокус-но) до переключения на другую страницу. Делаю так:
#Begin
DestroyModuleConfig FvwmEvent: *
*FvwmEvent: Cmd Function
*FvwmEvent: new_page FocusFunc
*FvwmEvent: new_desk FocusFunc
*FvwmEvent: focus_change MarkWindowAsActiveFunc
*FvwmEvent: add_window AddWinFunc

DestroyFunc FocusFunc
AddToFunc FocusFunc
+ I All (CurrentPage, State 2) Focus

DestroyFunc MarkWindowAsActiveFunc
AddToFunc MarkWindowAsActiveFunc
+ I Current (!Iconified) All (CurrentPage, !Focused) State 2 False
+ I Current (!Iconified) State 2 True

DestroyFunc AddWinFunc
AddToFunc AddWinFunc
+ I SetEnv ThatDesk $[desk.n]
+ I Current ( Opera )  MoveToPage 0 3
+ I Current (aumix) AnimatedMove +73 +15
#End
Проблема: при переключении на страницу, где нет не одного окна(или просто не было фокусированных окон) остаеться фокусированным окно на другой странице. Все случайные нажатия клавиш попадают в него. Нужно в таком случае фокусировать корневое окно.(может я ошибаюсь?)

Хотелось бы еще, чтобы Опера и aumix сразу(Move не подходит, перемещает рывком: окно появляеться не там где надо и рывком премещаеться на нужное место;AnimatedMove не подходит, хотелось бы, чтобы окно сразу попадало куда надо)

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

Сорри за длинные строки.
Спасибо за подробное обьяснение!
Контекст: хочу, чтобы при переключении страницы фокусировалось то окно, что было использовалось(т. е. было фокус-но) до переключения на другую страницу. Делаю так:
#Begin
DestroyModuleConfig FvwmEvent: *
*FvwmEvent: Cmd Function
*FvwmEvent: new_page FocusFunc
*FvwmEvent: new_desk FocusFunc
*FvwmEvent: focus_change MarkWindowAsActiveFunc
*FvwmEvent: add_window AddWinFunc

DestroyFunc FocusFunc
AddToFunc FocusFunc
+ I All (CurrentPage, State 2) Focus

DestroyFunc MarkWindowAsActiveFunc
AddToFunc MarkWindowAsActiveFunc
+ I Current (!Iconified) All (CurrentPage, !Focused) State 2 False
+ I Current (!Iconified) State 2 True

DestroyFunc AddWinFunc
AddToFunc AddWinFunc
+ I SetEnv ThatDesk $[desk.n]
+ I Current ( Opera ) MoveToPage 0 3
+ I Current (aumix) AnimatedMove +73 +15
#End
Проблема: при переключении на страницу, где нет не одного окна(или просто не было фокусированных окон) остаеться фокусированным окно на другой странице. Все случайные нажатия клавиш попадают в него. Нужно в таком случае фокусировать корневое окно.(может я ошибаюсь?)

Хотелось бы еще, чтобы Опера и aumix сразу(Move не подходит, перемещает рывком: окно появляеться не там где надо и рывком премещаеться на нужное место;AnimatedMove не подходит, хотелось бы, чтобы окно сразу попадало куда надо)

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

В общем так: если использовать в качестве "workspace'ов" страницы, то я к сожалению решения не знаю, сам еще это не настраивал (вы не думайте, что я какой-то FVWM-гуру, я сам его несколько недель использую :).
Если же в качестве "workspace'ов" использовать desktop'ы, то такой проблемы просто не существует, т.к. desktop'ы это совершенно отдельные сущности, каждый со своим списком окон, и соответсвенно со своими активными/неактивными окошками. Тока што проверил - так работает :).

Дальше. С Oper'ой, думаю будет проще просто вот так:

Style "Opera" StartsOnPage 0 3

Или, соответсвенно, StartsOnDesk

А вот с aumix боюсь ничего не поделаешь. Если бы она поддерживала опцию -geometry, то можно было бы вбить нужные координаты в .Xdefaults.

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

Спасибо! А как с фокусировкой корневого окна?

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