# Special keywords (modified from Sébastien Ballet for Flaxx https://sourceforge.net/projects/flaxx/):
#
#   Shift   = Shift                Mouse1  = Left Mouse Button
#   Control = Control              Mouse2  = Middle Mouse Button
#   Super_L = Windows Key (Left)   Mouse3  = Right Mouse Button
#   Mod1    = Alt key              Mouse4  = Mouse Wheel Up
#   Super_R = Windows Key (Right)  Mouse5  = Mouse Wheel Down
#                                  Mouse6  = Mouse Button #6
#                                  Mouse7  = Mouse Button #7
#
#   OnToolbar = mouse is on toolbar
#   OnDesktop = mouse is on desktop
#   OnTitlebar= mouse is on window's titlebar

## MXflux additions ##

# take a screen capture
none Print :Exec xfce4-screenshooter

# open fluxbox FAQ
none F1 :Exec thunar /usr/share/mxflux/help

# open a little run terminal
none F2 :Exec fbrun

# use logo key for rofi
Super_L :Exec rofi -show drun

# open a file manager
none F3 :Exec thunar /home/$USER/.fluxbox

# open a dropdown terminal
none F4 :Exec xfce4-terminal --drop-down

# open the MX Tools dashboard
none F5 :Exec mx-tools

# open bluetooth manager
mod1 b :Exec blueman-manager

# open a full apps menu with categories
none F6 :Exec xfce4-appfinder

# change volume with keys
Control Up :Exec amixer -D pulse sset Master 5%+
Control Down :Exec amixer -D pulse sset Master 5%-

###WINDOWS###

# close a window
mod1 F4 :Close

#Minimize all windows on the current workspace
Mod1 d :ShowDesktop

# hide menus
OnDesktop Mouse1 :HideMenus
OnDesktop Mouse2 :WorkspaceMenu
OnDesktop Mouse3 :RootMenu

# scroll on the desktop to change workspaces
OnDesktop Mouse4 :PrevWorkspace
OnDesktop Mouse5 :NextWorkspace

# scroll on the toolbar to change current window
OnToolbar Mouse4 :PrevWindow {static groups} (iconhidden=no)
OnToolbar Mouse5 :NextWindow {static groups} (iconhidden=no)

# alt + left/right click to move/resize a window
OnWindow Mod1 Mouse1 :MacroCmd {Raise} {Focus} {StartMoving}
OnWindowBorder Move1 :StartMoving

OnWindow Mod1 Mouse3 :MacroCmd {Raise} {Focus} {StartResizing NearestCorner}
OnLeftGrip Move1 :StartResizing bottomleft
OnRightGrip Move1 :StartResizing bottomright

# control-click a window's titlebar and drag to attach windows
OnTitlebar Control Mouse1 :StartTabbing

# double click on the titlebar to shade/unshade
OnTitlebar Double Mouse1 :Shade

# left click on the titlebar to move the window
OnTitlebar Mouse1 :MacroCmd {Raise} {Focus} {ActivateTab}
OnTitlebar Move1  :StartMoving

# right click on the titlebar for a menu of options
OnTitlebar Mouse3 :WindowMenu

# alt-tab
Mod1 Tab :NextWindow {groups} (workspace=[current])
Mod1 Shift Tab :PrevWindow {groups} (workspace=[current])

# open a run box
Mod1 F2 :Exec fbrun

# volume settings, using common keycodes
# if these don't work, use xev to find out your real keycodes
#176 :Exec amixer sset Master,0 1+
#174 :Exec amixer sset Master,0 1-
#160 :Exec amixer sset Master,0 toggle

# current window commands
Mod4 F4 :Close
Mod1 F5 :Kill
Mod1 F9 :Minimize
Mod1 F10 :Maximize
Mod1 F11 :Fullscreen

# exit fluxbox
Control Mod1 Delete :Exit

# change to previous/next workspace
Control Mod1 Left :PrevWorkspace
Control Mod1 Right :NextWorkspace

# change to a specific workspace
Control F1 :Workspace 1
Control F2 :Workspace 2
Control F3 :Workspace 3

# send the current window to a specific workspace
Mod4 F1 :SendToWorkspace 1
Mod4 F2 :SendToWorkspace 2
Mod4 F3 :SendToWorkspace 3


## BASIC WINDOW TILING ##

#---------------------------------------------------------------
# Control + number keys
#---------------------------------------------------------------
# Make active window 1/2 of the screen 
Control 1 :MacroCmd {ResizeTo 50% 100%} {MoveTo 00 00 Left} 
Control 2 :MacroCmd {ResizeTo 50% 100%} {MoveTo 00 00 Right} 
Control 3 :MacroCmd {ResizeTo 100% 50%} {MoveTo 00 00 Up} 
Control 4 :MacroCmd {ResizeTo 100% 50%} {MoveTo 00 00 Bottom} 
# Make active window 1/4 of the screen on the upper left 
Control 5 :MacroCmd {ResizeTo 50% 50%} {MoveTo 00 00 Up} 
Control 6 :MacroCmd {ResizeTo 50% 50%} {MoveTo 00 00 TopRight} 
Control 7 :MacroCmd {ResizeTo 50% 50%} {MoveTo 00 00 BottomLeft} 
Control 8 :MacroCmd {ResizeTo 50% 50%} {MoveTo 00 00 BottomRight} 
# Make active window 1/3 of the screen on the left
Control 9 :MacroCmd {ResizeTo 33% 100%} {MoveTo 00 00 Left}
# toggle active window: Maximized/ last size 
Control 0 :ToggleCmd {Maximize} {Restore}

#---------------------------------------------------------------
# Alt/Alt-LogoKey + arrow keys
#---------------------------------------------------------------
# Make active window 1/2 of the screen
Mod1 Left        :MacroCmd {ResizeTo 50% 100%} {MoveTo 00 00 Left}
Mod1 Right       :MacroCmd {ResizeTo 50% 100%} {MoveTo 00 00 Right}
Mod1 Up          :MacroCmd {ResizeTo 100% 50%} {MoveTo 00 00 Up}
Mod1 Down        :MacroCmd {ResizeTo 100% 50%} {MoveTo 00 00 Bottom}
# Make active window 1/4 of the screen on top/bottom left/right
Mod1 Mod4 Left  :MacroCmd {ResizeTo 50% 50% } {MoveTo 00 00 TopLeft}
Mod1 Mod4 Up    :MacroCmd {ResizeTo 50% 50% } {MoveTo 00 00 TopRight}
Mod1 Mod4 Down  :MacroCmd {ResizeTo 50% 50% } {MoveTo 00 00 BottomLeft}
Mod1 Mod4 Right :MacroCmd {ResizeTo 50% 50% } {MoveTo 00 00 BottomRight}
# Make active window 1/3 of the screen on the left
# Unavailable
# toggle center / restore
# Unavailable

# keypad key layout
#   +-------------+ 
#   |  7   8   9  |    
#   |  4   5   6  |    
#   |  1   2   3  |    
#   |      0          |
#   +-------------+
#---------------------------------------------------------------
# ALt and numpad keys : NumLock off
#---------------------------------------------------------------
Mod1 KP_1 :MacroCmd {ResizeTo  50%  50%} {MoveTo 00 00 BottomLeft}
Mod1 KP_2 :MacroCmd {ResizeTo 100%  50%} {MoveTo 00 00 Bottom}
Mod1 KP_3 :MacroCmd {ResizeTo  50%  50%} {MoveTo 00 00 BottomRight}
Mod1 KP_4 :MacroCmd {ResizeTo  50% 100%} {MoveTo 00 00 Left}
Mod1 KP_6 :MacroCmd {ResizeTo  50% 100%} {MoveTo 00 00 Right}
Mod1 KP_7 :MacroCmd {ResizeTo  50%  50%} {MoveTo 00 00 TopLeft}
Mod1 KP_8 :MacroCmd {ResizeTo 100%  50%} {MoveTo 00 00 Up}
Mod1 KP_9 :MacroCmd {ResizeTo  50%  50%} {MoveTo 00 00 TopRight}
# center and resize 70%
Mod1 KP_5 :MacroCmd {ResizeTo 70% 70% } {MoveTo 00 00 Center}
# toggle full screen / restore
Mod1 KP_0 :ToggleCmd {Maximize} {Restore}

#---------------------------------------------------------------
# ALt and numpad keys : NumLock on
#---------------------------------------------------------------
Mod1 KP_End    :MacroCmd {ResizeTo 50% 50% } {MoveTo 00 00 BottomLeft}
Mod1 KP_Down   :MacroCmd {ResizeTo 100% 50%} {MoveTo 00 00 Bottom}
Mod1 KP_Next   :MacroCmd {ResizeTo 50% 50% } {MoveTo 00 00 BottomRight}
Mod1 KP_Left   :MacroCmd {ResizeTo 50% 100%} {MoveTo 00 00 Left}
Mod1 KP_Right  :MacroCmd {ResizeTo 50% 100%} {MoveTo 00 00 Right}
Mod1 KP_Home   :MacroCmd {ResizeTo 50% 50% } {MoveTo 00 00 TopLeft}
Mod1 KP_Up     :MacroCmd {ResizeTo 100% 50%} {MoveTo 00 00 Up}
Mod1 KP_Prior  :MacroCmd {ResizeTo 50% 50% } {MoveTo 00 00 TopRight}
# center and resize 70%
Mod1 KP_Begin  :MacroCmd {ResizeTo 70% 70% } {MoveTo 00 00 Center}
# toggle full screen / restore
Mod1 KP_Insert :ToggleCmd {Maximize} {Restore}
#---------------------------------------------------------------
## BASIC WINDOW TILING ##

#---------------------------------------------------------------
# Control + number keys
#---------------------------------------------------------------
# Make active window 1/2 of the screen 
Control 1 :MacroCmd {ResizeTo 50% 100%} {MoveTo 00 00 Left} 
Control 2 :MacroCmd {ResizeTo 50% 100%} {MoveTo 00 00 Right} 
Control 3 :MacroCmd {ResizeTo 100% 50%} {MoveTo 00 00 Up} 
Control 4 :MacroCmd {ResizeTo 100% 50%} {MoveTo 00 00 Bottom} 
# Make active window 1/4 of the screen on the upper left 
Control 5 :MacroCmd {ResizeTo 50% 50%} {MoveTo 00 00 Up} 
Control 6 :MacroCmd {ResizeTo 50% 50%} {MoveTo 00 00 TopRight} 
Control 7 :MacroCmd {ResizeTo 50% 50%} {MoveTo 00 00 BottomLeft} 
Control 8 :MacroCmd {ResizeTo 50% 50%} {MoveTo 00 00 BottomRight} 
# Make active window 1/3 of the screen on the left
Control 9 :MacroCmd {ResizeTo 33% 100%} {MoveTo 00 00 Left}
# toggle active window: Maximized/ last size 
Control 0 :ToggleCmd {Maximize} {Restore}

#---------------------------------------------------------------
# Alt/Alt-LogoKey + arrow keys
#---------------------------------------------------------------
# Make active window 1/2 of the screen
Mod1 Left        :MacroCmd {ResizeTo 50% 100%} {MoveTo 00 00 Left}
Mod1 Right       :MacroCmd {ResizeTo 50% 100%} {MoveTo 00 00 Right}
Mod1 Up          :MacroCmd {ResizeTo 100% 50%} {MoveTo 00 00 Up}
Mod1 Down        :MacroCmd {ResizeTo 100% 50%} {MoveTo 00 00 Bottom}
# Make active window 1/4 of the screen on top/bottom left/right
Mod1 Mod4 Left  :MacroCmd {ResizeTo 50% 50% } {MoveTo 00 00 TopLeft}
Mod1 Mod4 Up    :MacroCmd {ResizeTo 50% 50% } {MoveTo 00 00 TopRight}
Mod1 Mod4 Down  :MacroCmd {ResizeTo 50% 50% } {MoveTo 00 00 BottomLeft}
Mod1 Mod4 Right :MacroCmd {ResizeTo 50% 50% } {MoveTo 00 00 BottomRight}
# Make active window 1/3 of the screen on the left
# Unavailable
# toggle center / restore
# Unavailable

# keypad key layout
#   +-------------+ 
#   |  7   8   9  |    
#   |  4   5   6  |    
#   |  1   2   3  |    
#   |      0          |
#   +-------------+
#---------------------------------------------------------------
# ALt and numpad keys : NumLock off
#---------------------------------------------------------------
Mod1 KP_1 :MacroCmd {ResizeTo  50%  50%} {MoveTo 00 00 BottomLeft}
Mod1 KP_2 :MacroCmd {ResizeTo 100%  50%} {MoveTo 00 00 Bottom}
Mod1 KP_3 :MacroCmd {ResizeTo  50%  50%} {MoveTo 00 00 BottomRight}
Mod1 KP_4 :MacroCmd {ResizeTo  50% 100%} {MoveTo 00 00 Left}
Mod1 KP_6 :MacroCmd {ResizeTo  50% 100%} {MoveTo 00 00 Right}
Mod1 KP_7 :MacroCmd {ResizeTo  50%  50%} {MoveTo 00 00 TopLeft}
Mod1 KP_8 :MacroCmd {ResizeTo 100%  50%} {MoveTo 00 00 Up}
Mod1 KP_9 :MacroCmd {ResizeTo  50%  50%} {MoveTo 00 00 TopRight}
# center and resize 70%
Mod1 KP_5 :MacroCmd {ResizeTo 70% 70% } {MoveTo 00 00 Center}
# toggle full screen / restore
Mod1 KP_0 :ToggleCmd {Maximize} {Restore}

#---------------------------------------------------------------
# ALt and numpad keys : NumLock on
#---------------------------------------------------------------
Mod1 KP_End    :MacroCmd {ResizeTo 50% 50% } {MoveTo 00 00 BottomLeft}
Mod1 KP_Down   :MacroCmd {ResizeTo 100% 50%} {MoveTo 00 00 Bottom}
Mod1 KP_Next   :MacroCmd {ResizeTo 50% 50% } {MoveTo 00 00 BottomRight}
Mod1 KP_Left   :MacroCmd {ResizeTo 50% 100%} {MoveTo 00 00 Left}
Mod1 KP_Right  :MacroCmd {ResizeTo 50% 100%} {MoveTo 00 00 Right}
Mod1 KP_Home   :MacroCmd {ResizeTo 50% 50% } {MoveTo 00 00 TopLeft}
Mod1 KP_Up     :MacroCmd {ResizeTo 100% 50%} {MoveTo 00 00 Up}
Mod1 KP_Prior  :MacroCmd {ResizeTo 50% 50% } {MoveTo 00 00 TopRight}
# center and resize 70%
Mod1 KP_Begin  :MacroCmd {ResizeTo 70% 70% } {MoveTo 00 00 Center}
# toggle full screen / restore
Mod1 KP_Insert :ToggleCmd {Maximize} {Restore}
#---------------------------------------------------------------
