diff --git a/doc/CREDITS.md b/doc/CREDITS.md index 04f2b3f..be42e61 100644 --- a/doc/CREDITS.md +++ b/doc/CREDITS.md @@ -25,6 +25,7 @@ summarizes these sources (of ideas or code): #### Code snippets +* flashkid: [Send SetWorkArea to second Monitor](http://www.autohotkey.com/board/topic/42564-send-setworkarea-to-second-monitor/) * [franckspike](https://github.com/franckspike): + [More general loop function](https://github.com/franckspike/bug.n/commit/e4e615512b363e8c342bf02cf9067cfeb4cc5d57#diff-e42236c27dedd9350fa8c9b9654fd485) + [Remote control](https://github.com/franckspike/bug.n/commit/2beacc71aef4d4c46021f97b52ab857efabc871c) diff --git a/doc/Default_hotkeys.md b/doc/Default_hotkeys.md index 4039fe5..2ecb37c 100644 --- a/doc/Default_hotkeys.md +++ b/doc/Default_hotkeys.md @@ -33,6 +33,7 @@ left 'Windows key' and the 'Control key' and the 'Q key' `Config_hotkey=#+Enter::View_shuffleWindow(1)` > Move the active window to the first position in the window list of the view. + You may also move the active window to any other absolute position in the window list by using the first parameter. @@ -43,11 +44,15 @@ window list by using the first parameter. > Show / Hide the title bar of the active window. `Config_hotkey=#+f::View_toggleFloatingWindow()` -> Toggle the floating status of the active window (i. e. dis- / regard it when -tiling). +> Toggle the floating status of the active window. + +The floating status effects the tiling of the active window (i. e. dis- / +regard it). `Config_hotkey=#^m::Manager_minimizeWindow()` -> Minimize the active window; this implicitly makes the window floating. +> Minimize the active window. + +This implicitly makes the window floating. `Config_hotkey=#+m::Manager_moveWindow()` > Move the active window by key (only floating windows). @@ -60,11 +65,15 @@ tiling). windows). `Config_hotkey=#i::Manager_getWindowInfo()` -> Get information for the active window (id, title, class, process name, style, -geometry, tags and floating state). +> Get information for the active window. + +The information being id, title, class, process name, style, geometry, tags and +floating state. `Config_hotkey=#+i::Manager_getWindowList()` -> Get a window list for the active view (id, title and class). +> Get a window list for the active view. + +The list contains information about the window id, title and class. `Config_hotkey=!Down::View_moveWindow(0, +1)` > Manually move the active window to the next area in the layout. @@ -85,8 +94,9 @@ the layout (n = 1..9). the layout. `Config_hotkey=!BackSpace::View_toggleStackArea()` -> Toggle the stack area of the layout. If the stack area is disabled, the -master area takes up the whole view. +> Toggle the stack area of the layout. + +If the stack area is disabled, the master area takes up the whole view. ### Window debugging @@ -94,56 +104,63 @@ master area takes up the whole view. > Dump window information on the windows of the active view to the log. `Config_hotkey=#+^i::Debug_logManagedWindowList()` -> Dump window information on the contents of the managed window list (floating -and tiled windows of all views) to the log. +> Dump window information on the contents of the managed window list to the log. + +The list contains the floating and tiled windows of all views. `Config_hotkey=#^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. +two log messages to the log. + +The previous two hotkeys being `Manager_logViewWindowList` and +`Manager_logManagedWindowList`. `Config_hotkey=#^d::Debug_setLogLevel(0, -1)` -> Decrement the debug log level. Show fewer debug messages. You may also set -the debug log level to an absolute value by using the first parameter. +> Decrement the debug log level. + +This results in showing fewer debug messages. You may also set the debug log +level to an absolute value by using the first parameter. `Config_hotkey=#^+d::Debug_setLogLevel(0, +1)` -> Increment the debug log level. Show more debug messages. You may also set -the debug log level to an absolute value by using the first parameter. +> Increment the debug log level. + +This results in showing more debug messages. You may also set the debug log +level to an absolute value by using the first parameter. ### Layout management `Config_hotkey=#Tab::View_setLayout(-1)` -> Set the previously set layout. You may also use `View_setLayout(0, +1)` for -setting the next or `View_setLayout(0, -1)` for setting the previous layout in -the layout array. +> Set the previously set layout. + +You may also use `View_setLayout(0, +1)` for setting the next or +`View_setLayout(0, -1)` for setting the previous layout in the layout array. `Config_hotkey=#f::View_setLayout(3)` -> Set the 3rd defined layout (i. e. floating layout -in the default configuration). +> Set the floating layout. `Config_hotkey=#m::View_setLayout(2)` -> Set the 2nd defined layout (i. e. monocle layout in -the default configuration). +> Set the monocle layout. `Config_hotkey=#t::View_setLayout(1)` -> Set the 1st defined layout (i. e. tile layout in -the default configuration). +> Set the tile layout. `Config_hotkey=#Left::View_setLayoutProperty(MFactor, 0, -0.05)` > Reduce the size of the master area in the active view (only for the "tile" -layout). You may also set an additional parameter for accelerating the third -one. E. g. with -`Config_hotkey=#Left::View_setLayoutProperty(MFactor, 0, -0.05, 2)` the first -step, by which the master area is reduced, is -0.0016% and will be doubled with -consecutive calls until it reaches -0.05%. +layout). + +You may also set an additional parameter for accelerating the third one. E. g. +with `Config_hotkey=#Left::View_setLayoutProperty(MFactor, 0, -0.05, 2)` the +first step, by which the master area is reduced, is -0.0016% and will be +doubled with consecutive calls until it reaches -0.05%. With the second parameter you may set an absolute value, e. g. `View_setLayoutProperty(MFactor, 0.5, 0)` splits the view in half. `Config_hotkey=#Right::View_setLayoutProperty(MFactor, 0, +0.05)` > Enlarge the size of the master area in the active view (only for the "tile" -layout). You may also set a additional parameter for accelerating the third -one. E. g. with -`Config_hotkey=#Right::View_setLayoutProperty(MFactor, 0, +0.05, 0.5)` the +layout). + +You may also set a additional parameter for accelerating the third one. E. g. +with `Config_hotkey=#Right::View_setLayoutProperty(MFactor, 0, +0.05, 0.5)` the first step, by which the master area is reduced, is 0.05%, but with consecutive calls it will be halved until it reaches 0.0016%. With the second parameter you may set an absolute value, e. g. @@ -151,42 +168,58 @@ With the second parameter you may set an absolute value, e. g. and the stacking area one third the size of the view. `Config_hotkey=#^t::View_setLayoutProperty(Axis, 0, +1, 1)` -> Rotate the layout axis (i. e. 2 -> 1 = vertical layout, 1 -> 2 = horizontal -layout, only for the "tile" layout). +> Rotate the layout axis (only for the "tile" layout). + +I. e. 2 -> 1 = vertical layout, 1 -> 2 = horizontal layout. `Config_hotkey=#^Enter::View_setLayoutProperty(Axis, 0, +2, 1)` -> 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). +> Mirror the layout axis (only for the "tile" layout). + +I. e. -1 -> 1 / 1 -> -1 = master on the left / right side, +-2 -> 2 / 2 -> -2 = master at top / bottom. `Config_hotkey=#^Tab::View_setLayoutProperty(Axis, 0, +1, 2)` -> 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). +> Rotate the master axis (only for the "tile" layout). + +I. e. 3 -> 1 = x-axis = horizontal stack, 1 -> 2 = y-axis = vertical stack, +2 -> 3 = z-axis = monocle. `Config_hotkey=#^+Tab::View_setLayoutProperty(Axis, 0, +1, 3)` -> 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). +> Rotate the stack axis (only for the "tile" layout). + +I. e. 3 -> 1 = x-axis = horizontal stack, 1 -> 2 = y-axis = vertical stack, +2 -> 3 = z-axis = monocle. `Config_hotkey=#^Up::View_setLayoutProperty(MY, 0, +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). +> Increase the master Y dimension by 1 (only for the "tile" layout). + +This results in an increased number of windows in the master area by X. +Maximum of 9. `Config_hotkey=#^Down::View_setLayoutProperty(MY, 0, -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). +> Decrease the master Y dimension by 1 (only for the "tile" layout). + +This results in a decreased number of windows in the master area by X. +Minimum of 1. `Config_hotkey=#^Right::View_setLayoutProperty(MX, 0, +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). +> Increase the master X dimension by 1 (only for the "tile" layout). + +This results in an increased number of windows in the master area by Y. +Maximum of 9. `Config_hotkey=#^Left::View_setLayoutProperty(MX, 0, +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). +> Decrease the master X dimension by 1 (only for the "tile" layout). + +This results in a decreased number of windows in the master area by Y. +Minimum of 1. `Config_hotkey=#+Left::View_setLayoutProperty(GapWidth, 0, -2)` -> Decrease the gap between windows in "monocle" and "tile" layout. You may also -set an absolute value for the gap width by using the first parameter, e. g. -`View_setLayoutProperty(GapWidth, 0, 0)` will eliminate the gap and -`View_setLayoutProperty(GapWidth, 20, 0)` will set it to 20px. +> Decrease the gap between windows in "monocle" and "tile" layout. + +You may also set an absolute value for the gap width by using the first +parameter, e. g. `View_setLayoutProperty(GapWidth, 0, 0)` will eliminate the +gap and `View_setLayoutProperty(GapWidth, 20, 0)` will set it to 20px. `Config_hotkey=#+Right::View_setLayoutProperty(GapWidth, 0, +2)` > Increase the gap between windows in "monocle" and "tile" layout. @@ -194,18 +227,21 @@ set an absolute value for the gap width by using the first parameter, e. g. ### View / Tag management `Config_hotkey=#+n::View_toggleMargins()` -> Toggle the view margins, which are set by the configuration variable -`Config_viewMargins`. +> Toggle the view margins. + +These are set by the configuration variable `Config_viewMargins`. `Config_hotkey=#BackSpace::Monitor_activateView(-1)` -> Activate the previously activated view. You may also use -`Monitor_activateView(0, -1)` or `Monitor_activateView(0, +1)` for activating -the previous or next adjacent view. +> Activate the previously activated view. + +You may also use `Monitor_activateView(0, -1)` or `Monitor_activateView(0, +1)` +for activating the previous or next adjacent view. `Config_hotkey=#+0::Monitor_setWindowTag(10)` -> Tag the active window with all tags (n = 1..`Config_viewCount`). You may also -use `Monitor_setWindowTag(0, -1)` or `Monitor_setWindowTag(0, +1)` for setting -the tag of the previous or next adjacent to the current view. +> Tag the active window with all tags (n = 1..`Config_viewCount`). + +You may also use `Monitor_setWindowTag(0, -1)` or `Monitor_setWindowTag(0, +1)` +for setting the tag of the previous or next adjacent to the current view. `Config_hotkey=#::Monitor_activateView()` > Activate the nth view (n = 1..`Config_viewCount`). @@ -221,8 +257,9 @@ for the active window, if it is not / is already set. ### Monitor management `Config_hotkey=#.::Manager_activateMonitor(0, +1)` -> Activate the next monitor in a multi-monitor environment. You may also -activate a specific monitor by using the first parameter, e. g. +> Activate the next monitor in a multi-monitor environment. + +You may also activate a specific monitor by using the first parameter, e. g. `Manager_activateMonitor(1)` will activate the first monitor. `Config_hotkey=#,::Manager_activateMonitor(0, -1)` @@ -230,9 +267,11 @@ activate a specific monitor by using the first parameter, e. g. `Config_hotkey=#+.::Manager_setWindowMonitor(0, +1)` > Set the active window's view to the active view on the next monitor in a -multi-monitor environment. You may also set the active window on a specific -monitor by using the first parameter, e. g. `Manager_setWindowMonitor(1)` will -set the active window on the first monitor. +multi-monitor environment. + +You may also set the active window on a specific monitor by using the first +parameter, e. g. `Manager_setWindowMonitor(1)` will set the active window on +the first monitor. `Config_hotkey=#+,::Manager_setWindowMonitor(0, -1)` > Set the active window's view to the active view on the previous monitor in a @@ -240,10 +279,11 @@ multi-monitor environment. `Config_hotkey=#^+.::Manager_setViewMonitor(0, +1)` > Set all windows of the active view on the active view of the next monitor in -a multi-monitor environment. You may also set all windows of the active view on -a specific monitor by using the first parameter, e. g. -`Manager_setViewMonitor(1)` will set all windows of the active view on the -first monitor. +a multi-monitor environment. + +You may also set all windows of the active view on a specific monitor by using +the first parameter, e. g. `Manager_setViewMonitor(1)` will set all windows of +the active view on the first monitor. `Config_hotkey=#^+,::Manager_setViewMonitor(0, -1)` > Set all windows of the active view on the active view of the previous monitor @@ -269,17 +309,19 @@ in a multi-monitor environment. ### Administration `Config_hotkey=#^e::Run, edit ` -> Open the configuration file in the standard text editor. If you want to set -this hotkey in `Config.ini`, you have to replace `` with an -explicit file path. +> Open the configuration file in the standard text editor. + +If you want to set this hotkey in `Config.ini`, you have to replace +`` with an explicit file path. `Config_hotkey=#^s::Config_UI_saveSession()` > Save the current state of monitors, views, layouts to the configuration file. `Config_hotkey=#^r::Reload` -> Reload bug.n (i. e. the whole script), which resets i. a. the configuration -and internal variables of bug.n, including the window lists. It is like -Quitting and restarting bug.n. +> Reload bug.n (i. e. the whole script). + +This resets i. a. the configuration and internal variables of bug.n, including +the window lists. It is like Quitting and restarting bug.n. If `Config_autoSaveSession` is not set to `off`, the window lists can be restored and windows are put to their associated monitor and views. diff --git a/src/Monitor.ahk b/src/Monitor.ahk index b6cbc34..3373b14 100644 --- a/src/Monitor.ahk +++ b/src/Monitor.ahk @@ -259,6 +259,7 @@ Monitor_setWorkArea(left, top, right, bottom) { NumPut(bottom, area, 12) DllCall("SystemParametersInfo", UInt, 0x2F, UInt, 0, UInt, &area, UInt, 0) ; 0x2F = SPI_SETWORKAREA } +;; flashkid: Send SetWorkArea to second Monitor (http://www.autohotkey.com/board/topic/42564-send-setworkarea-to-second-monitor/) Monitor_toggleBar() {