-
#^s
-
Save the current state of monitors, views, layouts to the configuration file.
+
+
WinCtrls
+
Save the current state of monitors, views, layouts to the configuration file.
-
-
#^r
-
Reload bug.n (i. e. the whole script).
+
+
WinCtrlr
+
Reload bug.n (i. e. the whole script).
-
-
#^q
-
Quit bug.n, restore the default Windows UI and show all windows.
+
+
WinCtrlq
+
Quit bug.n, restore the default Windows UI and show all windows.
diff --git a/doc/Cheat_sheet/cheat_sheet.pdf b/doc/Cheat_sheet/cheat_sheet.pdf
index cb06fa7..7e1639b 100644
Binary files a/doc/Cheat_sheet/cheat_sheet.pdf and b/doc/Cheat_sheet/cheat_sheet.pdf differ
diff --git a/doc/Default_hotkeys.md b/doc/Default_hotkeys.md
index 2ecb37c..a816597 100644
--- a/doc/Default_hotkeys.md
+++ b/doc/Default_hotkeys.md
@@ -20,49 +20,54 @@ left 'Windows key' and the 'Control key' and the 'Q key'
### Window management
`Config_hotkey=#Down::View_activateWindow(0, +1)`
-> Activate the next window in the active view.
+> _Activate_ the _next_ window in the active view.
`Config_hotkey=#Up::View_activateWindow(0, -1)`
-> Activate the previous window in the active view.
+> _Activate_ the _previous_ window in the active view.
`Config_hotkey=#+Down::View_shuffleWindow(0, +1)`
-> Move the active window to the next position in the window list of the view.
+> _Move_ the active window _to the next position_ in the window list of the view.
`Config_hotkey=#+Up::View_shuffleWindow(0, -1)`
-> Move the active window to the previous position in the window list of the view.
+> _Move_ the active window _to the previous position_ in the window list of the view.
`Config_hotkey=#+Enter::View_shuffleWindow(1)`
-> Move the active window to the first position in the window list of the view.
+> _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.
`Config_hotkey=#c::Manager_closeWindow()`
-> Close the active window.
+> _Close_ the active window.
`Config_hotkey=#+d::Window_toggleDecor()`
-> Show / Hide the title bar of the active window.
+> _Show / Hide the title bar_ of the active window.
`Config_hotkey=#+f::View_toggleFloatingWindow()`
-> Toggle the floating status of the active window.
+> _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.
+> _Minimize_ the active window.
-This implicitly makes the window floating.
+This implicitly sets the window to be floating.
`Config_hotkey=#+m::Manager_moveWindow()`
-> Move the active window by key (only floating windows).
+> _Move_ the active window _by key_.
+
+This implicitly sets the window to be floating.
`Config_hotkey=#+s::Manager_sizeWindow()`
-> Resize the active window by key (only floating windows).
+> _Resize_ the active window _by key_.
+
+This implicitly sets the window to be floating.
`Config_hotkey=#+x::Manager_maximizeWindow()`
-> Move and resize the active window to the size of the work area (only floating
-windows).
+> _Move and resize_ the active window _to_ the size of the _work area_.
+
+This implicitly sets the window to be floating.
`Config_hotkey=#i::Manager_getWindowInfo()`
> Get information for the active window.
@@ -71,28 +76,36 @@ 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.
+> _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.
+> Manually _move_ the active window _to the next area_ in the layout.
`Config_hotkey=!Up::View_moveWindow(0, -1)`
-> Manually move the active window to the previous area in the layout.
+> Manually _move_ the active window _to the previous area_ in the layout.
`Config_hotkey=!+Enter::Manager_maximizeWindow()`
-> Move and resize the active window to the size of the work area (only floating
-windows).
+> _Move and resize_ the active window _to_ the size of the _work area_.
+
+This implicitly sets the window to be floating.
`Config_hotkey=!
::View_moveWindow()`
-> Manually move the active window to the nth area in
-the layout (n = 1..9).
+> Manually _move_ the active window _to the nth area_ in
+the layout.
+
+<n> can be an integer between 1 and 9.
+
+
+
`Config_hotkey=!BackSpace::View_toggleStackArea()`
> Toggle the stack area of the layout.
@@ -101,19 +114,18 @@ If the stack area is disabled, the master area takes up the whole view.
### Window debugging
`Config_hotkey=#^i::Debug_logViewWindowList()`
-> Dump window information on the windows of the active view to the log.
+> _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 to the log.
+`Config_hotkey=#^+i::Debug_logManagedWindowList()`
+> _Dump_ window information on the _managed windows_ to the log.
-The list contains the floating and tiled windows of all views.
+The list of managed windows 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 to the log.
+> _Print column headings_ to the log.
-The previous two hotkeys being `Manager_logViewWindowList` and
-`Manager_logManagedWindowList`.
+The column headings give a description of the formatting used in the previous
+two hotkeys being `Manager_logViewWindowList` and `Manager_logManagedWindowList`.
`Config_hotkey=#^d::Debug_setLogLevel(0, -1)`
> Decrement the debug log level.
@@ -130,23 +142,24 @@ level to an absolute value by using the first parameter.
### Layout management
`Config_hotkey=#Tab::View_setLayout(-1)`
-> Set the previously set layout.
+> Set the _previous_ly 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 floating layout.
+> Set the _floating layout_.
`Config_hotkey=#m::View_setLayout(2)`
-> Set the monocle layout.
+> Set the _monocle layout_.
`Config_hotkey=#t::View_setLayout(1)`
-> Set the tile layout.
+> 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).
+> _Reduce_ the size of _the master area_ in the active view.
+
+This has only an effect, if the tile layout is active.
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
@@ -156,8 +169,9 @@ 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).
+> _Enlarge_ the size of _the master area_ in the active view.
+
+This has only an effect, if the tile layout is active.
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
@@ -168,61 +182,77 @@ 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 (only for the "tile" layout).
+> Rotate the layout axis.
I. e. 2 -> 1 = vertical layout, 1 -> 2 = horizontal layout.
+This has only an effect, if the tile layout is active.
+
`Config_hotkey=#^Enter::View_setLayoutProperty(Axis, 0, +2, 1)`
-> Mirror the layout axis (only for the "tile" layout).
+> Mirror the layout axis.
I. e. -1 -> 1 / 1 -> -1 = master on the left / right side,
-2 -> 2 / 2 -> -2 = master at top / bottom.
+This has only an effect, if the tile layout is active.
+
`Config_hotkey=#^Tab::View_setLayoutProperty(Axis, 0, +1, 2)`
-> Rotate the master axis (only for the "tile" layout).
+> Rotate the master axis.
I. e. 3 -> 1 = x-axis = horizontal stack, 1 -> 2 = y-axis = vertical stack,
2 -> 3 = z-axis = monocle.
+This has only an effect, if the tile layout is active.
+
`Config_hotkey=#^+Tab::View_setLayoutProperty(Axis, 0, +1, 3)`
-> Rotate the stack axis (only for the "tile" layout).
+> Rotate the stack axis.
I. e. 3 -> 1 = x-axis = horizontal stack, 1 -> 2 = y-axis = vertical stack,
2 -> 3 = z-axis = monocle.
+This has only an effect, if the tile layout is active.
+
`Config_hotkey=#^Up::View_setLayoutProperty(MY, 0, +1)`
-> Increase the master Y dimension by 1 (only for the "tile" layout).
+> Increase the master Y dimension.
This results in an increased number of windows in the master area by X.
Maximum of 9.
+This has only an effect, if the tile layout is active.
+
`Config_hotkey=#^Down::View_setLayoutProperty(MY, 0, -1)`
-> Decrease the master Y dimension by 1 (only for the "tile" layout).
+> Decrease the master Y dimension.
This results in a decreased number of windows in the master area by X.
Minimum of 1.
+This has only an effect, if the tile layout is active.
+
`Config_hotkey=#^Right::View_setLayoutProperty(MX, 0, +1)`
-> Increase the master X dimension by 1 (only for the "tile" layout).
+> Increase the master X dimension.
This results in an increased number of windows in the master area by Y.
Maximum of 9.
+This has only an effect, if the tile layout is active.
+
`Config_hotkey=#^Left::View_setLayoutProperty(MX, 0, +1)`
-> Decrease the master X dimension by 1 (only for the "tile" layout).
+> Decrease the master X dimension.
This results in a decreased number of windows in the master area by Y.
Minimum of 1.
+This has only an effect, if the tile layout is active.
+
`Config_hotkey=#+Left::View_setLayoutProperty(GapWidth, 0, -2)`
-> Decrease the gap between windows in "monocle" and "tile" layout.
+> _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.
+> _Increase the gap between windows_ in "monocle" and "tile" layout.
### View / Tag management
@@ -238,35 +268,40 @@ 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`).
+> Tag the active window with all tags.
+
+`Config_hotkey=#::Monitor_activateView()`
+> Activate the nth view.
+
+<n> can be an integer between 1 and `Config_viewCount`.
+
+`Config_hotkey=#+::Monitor_setWindowTag()`
+> Tag the active window with the nth tag.
+
+<n> can be an integer between 1 and `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`).
-
-`Config_hotkey=#+::Monitor_setWindowTag()`
-> Tag the active window with the nth tag (n =
-1..`Config_viewCount`).
-
`Config_hotkey=#^::Monitor_toggleWindowTag()`
-> Add / Remove the nth tag (n = 1..`Config_viewCount`)
-for the active window, if it is not / is already set.
+> Add / Remove the nth tag for the active window, if
+it is not / is already set.
+
+<n> can be an integer between 1 and `Config_viewCount`.
### Monitor management
`Config_hotkey=#.::Manager_activateMonitor(0, +1)`
-> Activate the next monitor in a multi-monitor environment.
+> 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)`
-> Activate the previous monitor in a multi-monitor environment.
+> Activate the _previous monitor_ in a multi-monitor environment.
`Config_hotkey=#+.::Manager_setWindowMonitor(0, +1)`
-> Set the active window's view to the active view on the next monitor in a
+> _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
@@ -274,11 +309,11 @@ 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
+> _Set_ the active window's view _to_ the active view on _the previous monitor_ in a
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
+> _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
@@ -286,19 +321,19 @@ 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
+> _Set all windows_ of the active view _on_ the active view of _the previous monitor_
in a multi-monitor environment.
### GUI management
`Config_hotkey=#+Space::Monitor_toggleBar()`
-> Hide / Show the bar (bug.n status bar) on the active monitor.
+> _Hide / Show the bar_ (bug.n status bar) on the active monitor.
`Config_hotkey=#Space::Monitor_toggleTaskBar()`
> Hide / Show the task bar.
`Config_hotkey=#y::Bar_toggleCommandGui()`
-> Open the command GUI for executing programmes or bug.n functions.
+> _Open the command GUI_ for executing programmes or bug.n functions.
`Config_hotkey=#+y::Monitor_toggleNotifyIconOverflowWindow()`
> Toggle the overflow window of the 'notify icons'.
@@ -315,10 +350,10 @@ 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.
+> _Save the current state_ of monitors, views, layouts to the configuration file.
`Config_hotkey=#^r::Reload`
-> Reload bug.n (i. e. the whole script).
+> _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.
@@ -326,4 +361,4 @@ If `Config_autoSaveSession` is not set to `off`, the window lists can be
restored and windows are put to their associated monitor and views.
`Config_hotkey=#^q::ExitApp`
-> Quit bug.n, restore the default Windows UI and show all windows.
+> _Quit_ bug.n, restore the default Windows UI and show all windows.
diff --git a/src/Config.ahk b/src/Config.ahk
index ee1c22b..dc9a631 100644
--- a/src/Config.ahk
+++ b/src/Config.ahk
@@ -425,7 +425,7 @@ Config_UI_saveSession() {
;; Window debugging
#^i::Debug_logViewWindowList()
-#+^i::Debug_logManagedWindowList()
+#^+i::Debug_logManagedWindowList()
#^h::Debug_logHelp()
#^d::Debug_setLogLevel(0, -1)
#^+d::Debug_setLogLevel(0, +1)
diff --git a/src/View.ahk b/src/View.ahk
index e125cd0..4be5317 100644
--- a/src/View.ahk
+++ b/src/View.ahk
@@ -202,6 +202,7 @@ View_ghostWindow(m, v, bodyWndId, ghostWndId)
StringReplace, View_#%m%_#%v%_wndIds, View_#%m%_#%v%_wndIds, %search%, %replace%
}
+; @TODO: Theoretically, something is wrong here. From the hotkeys this should be manual tiling, but the function says otherwise.
View_moveWindow(i=0, d=0) {
Local aWndId, m, v