#### Resources #####
#https://linux.die.net/man/5/fluxbox-keys
#https://ubuntuforums.org/showthread.php?t=617812

############
#Mod1=Alt key
#Mod4=Left logo key
#Menu=Right logo key
#Mouse1=Left click
#Mouse3=Right click 
#Mouse4=Scroll wheel up
#Mouse5=Scroll wheel down
###########

#NOTE: unmodified Fn keys left unassigned to avoid conflict with apps

###########

# take a screen capture, interactive by default
none Print :Exec mxfb-quickshot
## whole screen capture
Shift Print :Exec mxfb-quickshot -r -png
## active window capture
Mod1 Print :Exec mxfb-quickshot -u -png

# open help
Ctrl F1 :Exec mxfb-help
Shift F1 :Exec mx-manual

# open a little run terminal
Ctrl F2 :Exec fbrun

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

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

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

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

# open roxterm
Ctrl Mod1 t :Exec roxterm

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

# exit fluxbox — both work
Control Mod1 Delete :Exit
Control Mod1 Bksp :Exit

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

###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

# 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

# see a menu of window options
OnTitlebar Mouse3 :WindowMenu
   #for apps using CSD try this instead
   #OnWindow Mouse2 :WindowMenu

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

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

### 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}
#---------------------------------------------------------------
