diff --git a/doc/hotkeys.md b/doc/hotkeys.md index e69de29..78cb824 100644 --- a/doc/hotkeys.md +++ b/doc/hotkeys.md @@ -0,0 +1,263 @@ +## 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) +* `+` (Shift) +* `#` (LWin, left Windows) + +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 (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.