-
Notifications
You must be signed in to change notification settings - Fork 0
/
15-WindowList
59 lines (48 loc) · 2.41 KB
/
15-WindowList
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
## vim: syntax=fvwm
##
## ╻ ╻╻┏┓╻╺┳┓┏━┓╻ ╻╻ ╻┏━┓╺┳╸ ┏━╸╻ ╻┏┓╻┏━╸╺┳╸╻┏━┓┏┓╻
## ┃╻┃┃┃┗┫ ┃┃┃ ┃┃╻┃┃ ┃┗━┓ ┃ ┣╸ ┃ ┃┃┗┫┃ ┃ ┃┃ ┃┃┗┫
## ┗┻┛╹╹ ╹╺┻┛┗━┛┗┻┛┗━╸╹┗━┛ ╹ ╹ ┗━┛╹ ╹┗━╸ ╹ ╹┗━┛╹ ╹
##
## Activated whenever a window is selected from the windowlist menu.
## Used to switch between windows. This function will replace the default builtin.
## Used by the WindowList cmnd. Replaces the builtin function.
DestroyFunc WindowListFunc
AddToFunc WindowListFunc
+ I ThisWindow (!CurrentDesk) SetPriorityFocus
+ I ThisWindow (!CurrentDesk) GotoDesk 0 $[w.desk]
+ I ThisWindow (!Iconic) FlipFocus NoWarp
+ I ThisWindow (!Iconic) WarpToWindow 50 50
+ I ThisWindow (Iconic) DeIconifyWindow
## WARPTOWINDOW - necessary as it provides raise for normal windows
## Iconic windows get implicit Raise from "Iconify False"
## Custom Menustyle
DestroyMenuStyle WindowList
CopyMenuStyle * WindowList
MenuStyle WindowList ItemFormat "%|%13.13i%.15l%.5i%2.3>%10.|"
#### KEY BINDINGS
## Alt + Tab : Next normal window
## Super_L + Tab : Next iconic window
Key Tab A M NormalWindowList Meta_L
Key Tab A 4 IconicWindowList Super_L
DestroyFunc NormalWindowList
AddToFunc NormalWindowList
+ I WindowList (CurrentDesk,AcceptsFocus,!Iconic) Root c c \
NoCurrentDeskTitle, NoGeometry, CurrentAtEnd, MaxLabelWidth 60, \
Function HilightFocused, SelectOnRelease $[0]
DestroyFunc IconicWindowList
AddToFunc IconicWindowList
+ I All UnsetState $[infostore.state_temp]
+ I All (CurrentDesk,Iconic) SetState $[infostore.state_temp]
+ I All (State $[infostore.state_temp],Iconic) SetLayer $[infostore.toplayer]
+ I WindowList (CurrentDesk,Iconic) Root c c \
NoCurrentDeskTitle, NoGeometry, ReverseOrder, MaxLabelWidth 60, \
SelectOnRelease $[0]
+ I Schedule 400 All (State $[infostore.state_temp],Iconic) SetLayer $[infostore.iconiclayer]
## Briefly focus hilight the window, then run windowlistfunc...
DestroyFunc HilightFocused
AddToFunc HilightFocused
+ I ThisWindow All (CurrentDesk,AcceptsFocus,!Maximized) ColorInactiveFunc
+ I ThisWindow (!Iconic,!Maximized) ColorActiveFunc
+ I ThisWindow (!Iconic,!Maximized) Schedule 1000 ColorInactiveFunc
+ I ThisWindow WindowListFunc