Title: Еще немного fvwm-а
Author: Viva Calman
Date: 2014-09-26 12:59:17
Correction code: 165199860207623

Все таки, обожаю fvwm. Хочется добавить какого-нибудь функционала — посиди над мануалами, постучи по клавиатуре и функционал появится.

В данный момент, я сделал для себя управление окнами с помощью клавиш numpad-а. Просто мне пришла в голову мысль, что эти клавиши я нечасто использую, а пользы от такой навески будет целый вагон.

Ну и приделал пересылку окон между десктопами по хоткею. наконец то. Это надо было еще давно сделать, но руки не доходили.

Зато теперь у меня все работает следующим образом:

shift+win+цифра на нампаде — посылает окно на соответствующую сторону экрана/угол экрана. Пятерка — разворачивает окно на весь экран (аналог win+m, уже имевшейся у меня). "плюс" — разворачивает окно без заголовка, минус — закрывает окно.

заодно, прикрутил win+pgUp/pgDown на пересылку окон. немного повозился, чтобы пересланное окно получало фокус, но в итоге это удалось сделать. Попутно, использовав пример из инета, сделал так, что на предыдущем десктопе не оставалось окон без фокуса, потому что иногда раздражает, что на десктопе фокус ввода ведет куда-то в пустоту, требуя лишнего телодвижения.

Все это добро вынес в отдельный файлик, который проинклудил в основной конфиг.

# Разворачивание по верхней половине экрана
#
DestroyFunc MaximizeToTopHalf
AddToFunc MaximizeToTopHalf
+ I Maximize true 100 50
+ I Move 0 0

#
# Разворачивание по Нижней половине экрана
#
# В качестве второго параметра указать половину высоты экрана в пикселях -18px

DestroyFunc MaximizeToBottomHalf
AddToFunc MaximizeToBottomHalf
+ I Maximize true 100 494p
+ I Move 0 50

#
# Разворачивание по углам
#

DestroyFunc MaximizeToTRC
AddToFunc MaximizeToTRC
+ I Maximize true 50 50
+ I Move 50 0

DestroyFunc MaximizeToTLC
AddToFunc MaximizeToTLC
+ I Maximize true 50 50
+ I Move 0 0

DestroyFunc MaximizeToBRC
AddToFunc MaximizeToBRC
+ I Maximize true 50 494p
+ I Move 50 50

DestroyFunc MaximizeToBLC
AddToFunc MaximizeToBLC
+ I Maximize true 50 494p
+ I Move 0 50

#
# Пересыл окон
#

DestroyFunc SendPrev
AddToFunc SendPrev
+ I MoveToDesk -1 0 9
+ I Next (!Iconic, !Shaded, AcceptsFocus, CurrentPage) FlipFocusRaise
+ I GotoDesk -1 0 9
+ I Focus
+ I Raise

DestroyFunc SendNext
AddToFunc SendNext
+ I MoveToDesk 1 0 9
+ I Next (!Iconic, !Shaded, AcceptsFocus, CurrentPage) FlipFocusRaise
+ I GotoDesk 1 0 9
+ I Focus
+ I Raise

DestroyFunc FlipFocusRaise
AddToFunc FlipFocusRaise
+ I FlipFocus
+ I Raise
+ I WarpToWindow 50 50

#
# Нажатия клавиш закидывают окно в соответствующий угол
#

Key KP_1 A 42 MaximizeToBLC
Key KP_1 A 4 MaximizeToBLC
Key KP_3 A 42 MaximizeToBRC
Key KP_3 A 4 MaximizeToBRC
Key KP_7 A 42 MaximizeToTLC
Key KP_7 A 4 MaximizeToTLC
Key KP_9 A 42 MaximizeToTRC
Key KP_9 A 4 MaximizeToTRC

#
# разворачивает окно по соответствующей стороне экрана
#

Key KP_2 A 42 MaximizeToBottomHalf
Key KP_2 A 4 MaximizeToBottomHalf
Key KP_4 A 42 MaximizeToLeftHalf
Key KP_4 A 4 MaximizeToLeftHalf
Key KP_6 A 42 MaximizeToRightHalf
Key KP_6 A 4 MaximizeToRightHalf
Key KP_8 A 42 MaximizeToTopHalf
Key KP_8 A 4 MaximizeToTopHalf

#
# разворачивает окно (с заголовком и без)
#

Key KP_5 A 42 Maxim
Key KP_5 A 4 Maxim
Key KP_Add A 42 FullScreenToggle 
Key KP_Add A 4 FullScreenToggle

#
# Закрывает окно
#
Key KP_Subtract A S42 close_window
Key KP_Subtract A S4 close_window

#
# Сворачивает окно
#

#Key KP_0 A 42 IconWin 
#Key KP_0 A 4 IconWin

Key Page_Up A 4 SendPrev
Key Page_Down A 4 SendNext

Update from 2022

Данный конфиг с небольшими изменениями работает у меня до сих пор. В качестве дополнительного наворота добавилось дублирование сочетаний клавиш для управления окнами на основной блок клавитуры в стиле Vim, поменялись некоторые значения координат в функциях (увы, сейчас не вспомню, вынес ли я это в отдельные переменные, чтобы не правиль по всему конфигу или нет), потому что я перешел на вертикальный таскбар с правой стороны (единственное правильное положение таскбара по моему мнению).

В остальном, FVWM продолажает оставаться лучшим в мире оконным менеджером.

^HOME