## Default hotkeys ### General description The hotkeys, as you can set them in `Config.ini`, are noted in the format `::()`. Possible modifiers are the following: * `!` (Alt) * `^` (Ctrl, Control) * `#` (LWin, left Windows) * `+` (Shift) You will have to press all keys of a hotkey at the same time beginning with the modifier for calling the associated function, e. g. `#^q` means pressing the left Windows key and the shift key and the q key (`Win+Ctrl+Q`) for quitting bug.n. ### Window management `#Down::View_activateWindow(+1)` > Activate the next window in the active view. `#Up::View_activateWindow(-1)` > Activate the previous window in the active view. `#+Down::View_shuffleWindow(+1)` > Move the active window to the next position in the window list of the view. `#+Up::View_shuffleWindow(-1)` > Move the active window to the previous position in the window list of the view. `#+Enter::View_shuffleWindow(0)` > Move the active window to the first position in the window list of the view. `#c::Manager_closeWindow()` > Close the active window. `#+d::Manager_toggleDecor()` > Show / Hide the title bar of the active window. `#+f::View_toggleFloating()` > Toggle the floating status of the active window (i. e. dis- / regard it when tiling). `#+m::Manager_moveWindow()` > Move the active window by key (only floating windows). `#+s::Manager_sizeWindow()` > Resize the active window by key (only floating windows). `#+x::Manager_maximizeWindow()` > Move and resize the active window to the size of the work area (only floating windows). `#i::Manager_getWindowInfo()` > Get information for the active window (id, title, class, process name, style, geometry, tags and floating state). `#+i::Manager_getWindowList()` > Get a window list for the active view (id, title and class). `!Down::View_moveWindow(0, +1)` > Manually move the active window to the next area in the layout. `!Up::View_moveWindow(0, -1)` > Manually move the active window to the previous area in the layout. `!+Enter::Manager_maximizeWindow()` > Move and resize the active window to the size of the work area (only floating windows). `!::View_moveWindow()` > Manually move the active window to the nth area in the layout (n = 1..9). `!0::View_moveWindow(10)` > Manually move the active window to the nth area in the layout. `!BackSpace::View_toggleStackArea()` > Toggle the stack area of the layout. If the stack area is disabled, the master area takes up the whole view. ### Window debugging `#^i::Debug_logViewWindowList()` > Dump window information on the windows of the active view to the log. `#+^i::Debug_logManagedWindowList()` > Dump window information on the contents of the managed window list (floating and tiled windows of all views) to the log. `#^h::Debug_logHelp()` > Print a description of the formatting (column headings) used in the previous two log messages (`Manager_logViewWindowList` and `Manager_logManagedWindowList`) to the log. `#^d::Debug_setLogLevel(-1)` > Decrement the debug log level. Show fewer debug messages. `#^+d::Debug_setLogLevel(+1)` > Increment the debug log level. Show more debug messages. ### Layout management `#Tab::View_setLayout(-1)` > Set the previously set layout. You may also use `View_setLayout(>)` for setting the next layout in the layout array. `#f::View_setLayout(3)` > Set the 3rd defined layout (i. e. floating layout in the default configuration). `#m::View_setLayout(2)` > Set the 2nd defined layout (i. e. monocle layout in the default configuration). `#t::View_setLayout(1)` > Set the 1st defined layout (i. e. tile layout in the default configuration). `#Left::View_setMFactor(-0.05)` > Reduce the size of the master area in the active view (only for the "tile" layout). `#Right::View_setMFactor(+0.05)` > Enlarge the size of the master area in the active view (only for the "tile" layout). `#^t::View_rotateLayoutAxis(1, +1)` > Rotate the layout axis (i. e. 2 -> 1 = vertical layout, 1 -> 2 = horizontal layout, only for the "tile" layout). `#^Enter::View_rotateLayoutAxis(1, +2)` > Mirror the layout axis (i. e. -1 -> 1 / 1 -> -1 = master on the left / right side, -2 -> 2 / 2 -> -2 = master at top / bottom, only for the "tile" layout). `#^Tab::View_rotateLayoutAxis(2, +1)` > Rotate the master axis (i. e. 3 -> 1 = x-axis = horizontal stack, 1 -> 2 = y-axis = vertical stack, 2 -> 3 = z-axis = monocle, only for the "tile" layout). `#^+Tab::View_rotateLayoutAxis(3, +1)` > Rotate the stack axis (i. e. 3 -> 1 = x-axis = horizontal stack, 1 -> 2 = y-axis = vertical stack, 2 -> 3 = z-axis = monocle, only for the "tile" layout). `#^Up::View_setMY(+1)` > Increase the master Y dimension by 1, i.e. increase the number of windows in the master area by X. Maximum of 9 (only for the "tile" layout). `#^Down::View_setMY(-1)` > Decrease the master Y dimension by 1, i.e. decrease the number of windows in the master area by X. Minimum of 1 (only for the "tile" layout). `#^Right::View_setMX(+1)` > Increase the master X dimension by 1, i. e. increase the number of windows in the master area by Y. Maximum of 9 (only for the "tile" layout). `#^Left::View_setMX(-1)` > Decrease the master X dimension by 1, i. e. decrease the number of windows in the master area by Y. Minimum of 1 (only for the "tile" layout). `#+Left::View_setGapWidth(-2)` > Decrease the gap between windows in "tile" layout. `#+Right::View_setGapWidth(+2)` > Increase the gap between windows in "tile" layout. ### View / Tag management `#+n::View_toggleMargins()` > Toggle the view margins, which are set by the configuration variable `Config_viewMargins`. `#BackSpace::Monitor_activateView(-1)` > Activate the previously activated view. You may also use `Monitor_activateView(<)` or `Monitor_activateView(>)` for activating the previous or next adjacent view. `#+0::Monitor_setWindowTag(0)` > Tag the active window with all tags (n = 1..`Config_viewCount`). You may also use `Monitor_setWindowTag(<)` or `Monitor_setWindowTag(>)` for setting the tag of the previous or next adjacent to the current view. `#::Monitor_activateView()` > Activate the nth view (n = 1..`Config_viewCount`). `#+::Monitor_setWindowTag()` > Tag the active window with the nth tag (n = 1..`Config_viewCount`). `#^::Monitor_toggleWindowTag()` > Add / Remove the nth tag (n = 1..`Config_viewCount`) for the active window, if it is not / is already set. ### Monitor management `#.::Manager_activateMonitor(+1)` > Activate the next monitor in a multi-monitor environment. `#,::Manager_activateMonitor(-1)` > Activate the previous monitor in a multi-monitor environment. `#+.::Manager_setWindowMonitor(+1)` > Set the active window to the active view on the next monitor in a multi-monitor environment. `#+,::Manager_setWindowMonitor(-1)` > Set the active window to the active view on the previous monitor in a multi-monitor environment. `#^+.::Manager_setViewMonitor(+1)` > Set all windows of the active view on the active view of the next monitor in a multi-monitor environment. `#^+,::Manager_setViewMonitor(-1)` > Set all windows of the active view on the active view of the previous monitor in a multi-monitor environment. ### GUI management `#+Space::Monitor_toggleBar()` > Hide / Show the bar (bug.n status bar) on the active monitor. `#Space::Monitor_toggleTaskBar()` > Hide / Show the task bar. `#y::Bar_toggleCommandGui()` > Open the command GUI for executing programmes or bug.n functions. `#+y::Monitor_toggleNotifyIconOverflowWindow()` > Toggle the overflow window of the 'notify icons'. `!+y::View_traceAreas()` > Indicate the areas of the "tile" layout. ### Administration `#^e::Run, edit %Config_filePath%` > Open the configuration file in the standard text editor. `#^s::Config_UI_saveSession()` > Save the current state of monitors, views, layouts to the configuration file. `#^r::Main_reload()` > Reload bug.n (i. e. the configuration and its dependent settings) without deleting the window lists of bug.n and restoring windows. - It does not reset internal configuration variables, the tray icon or menu, hotkeys (unless defined in `Config.ini`), individual window settings like `Config_showBorder` (since windows might be hidden) or hiding the title bar, the monitor count or views. - It does not reload the monitor configuration and therefor does not recognize any changes in the number of monitors. - It does not reload functions. - Changed rules are only applied to new windows. `#^+r::Reload` > Reload bug.n (i. e. the whole script), which resets the configuration, the bar, the monitor configuration and window lists of bug.n. It is like Quitting and restarting bug.n. `#^q::ExitApp` > Quit bug.n, restore the default Windows UI and show all windows.