Added a function for forcing a window to be managed.

This commit is contained in:
joten 2015-12-14 22:13:09 +01:00
parent bb29655701
commit 7e190a0076
10 changed files with 47 additions and 18 deletions

View File

@ -25,6 +25,7 @@ called with the window ID as a paramater, when applying the rule.
10. `~` Removed the function `Main_reload` and reassigned the hotkey. 10. `~` Removed the function `Main_reload` and reassigned the hotkey.
11. `+` Added the possibility to minimize windows, making them floating and thereby excluded from tiling. 11. `+` Added the possibility to minimize windows, making them floating and thereby excluded from tiling.
12. `+` Added configuration variables for customizing the date and time format shown in the status bar. 12. `+` Added configuration variables for customizing the date and time format shown in the status bar.
13. `+` Added a function to force the active window to be managed despite any rule in `Config.ini`.
| # | `-` or `~` Configuration Variables or <br/> `-` Hotkey Functions | `+` Configuration Variables or <br/> `+` Hotkey Functions | | # | `-` or `~` Configuration Variables or <br/> `-` Hotkey Functions | `+` Configuration Variables or <br/> `+` Hotkey Functions |
| ---:| ---------------------------------------------------------------- | --------------------------------------------------------- | | ---:| ---------------------------------------------------------------- | --------------------------------------------------------- |
@ -87,6 +88,7 @@ called with the window ID as a paramater, when applying the rule.
| 11. | | `#^m::Manager_minimizeWindow()` | | 11. | | `#^m::Manager_minimizeWindow()` |
| 12. | | `Config_readinDateFormat` | | 12. | | `Config_readinDateFormat` |
| | | `Config_readinTimeFormat` | | | | `Config_readinTimeFormat` |
| 13. | | `#^+m::Manager_forceManaged()` |
### 8.4.0 ### 8.4.0

View File

@ -32,6 +32,9 @@ _Minimize_ the active window.
#### <kbd>Win</kbd><kbd>Shift</kbd><kbd>m</kbd> #### <kbd>Win</kbd><kbd>Shift</kbd><kbd>m</kbd>
_Move_ the active window _by key_. _Move_ the active window _by key_.
#### <kbd>Win</kbd><kbd>Ctrl</kbd><kbd>Shift</kbd><kbd>m</kbd>
_Force_ the active window to be _managed_.
#### <kbd>Win</kbd><kbd>Shift</kbd><kbd>s</kbd> #### <kbd>Win</kbd><kbd>Shift</kbd><kbd>s</kbd>
_Resize_ the active window _by key_. _Resize_ the active window _by key_.
@ -84,7 +87,7 @@ Increment the debug log level.
### Layout management ### Layout management
#### <kbd>Win</kbd><kbd>Tab</kbd> #### <kbd>Win</kbd><kbd>Tab</kbd>
Set the _previous_ly set _layout_. Set the _previous_-ly set _layout_.
#### <kbd>Win</kbd><kbd>f</kbd> #### <kbd>Win</kbd><kbd>f</kbd>
Set the _floating layout_. Set the _floating layout_.

View File

@ -54,6 +54,10 @@
<h4><kbd>Win</kbd><kbd>Shift</kbd><kbd>m</kbd></h4> <h4><kbd>Win</kbd><kbd>Shift</kbd><kbd>m</kbd></h4>
<p><em>Move</em> the active window <em>by key</em>.</p> <p><em>Move</em> the active window <em>by key</em>.</p>
</div> </div>
<div id="winctrlshiftm" class="section level4">
<h4><kbd>Win</kbd><kbd>Ctrl</kbd><kbd>Shift</kbd><kbd>m</kbd></h4>
<p><em>Force</em> the active window to be <em>managed</em>.</p>
</div>
<div id="winshifts" class="section level4"> <div id="winshifts" class="section level4">
<h4><kbd>Win</kbd><kbd>Shift</kbd><kbd>s</kbd></h4> <h4><kbd>Win</kbd><kbd>Shift</kbd><kbd>s</kbd></h4>
<p><em>Resize</em> the active window <em>by key</em>.</p> <p><em>Resize</em> the active window <em>by key</em>.</p>
@ -122,7 +126,7 @@
<h3>Layout management</h3> <h3>Layout management</h3>
<div id="wintab" class="section level4"> <div id="wintab" class="section level4">
<h4><kbd>Win</kbd><kbd>Tab</kbd></h4> <h4><kbd>Win</kbd><kbd>Tab</kbd></h4>
<p>Set the <em>previous</em>ly set <em>layout</em>.</p> <p>Set the <em>previous</em>-ly set <em>layout</em>.</p>
</div> </div>
<div id="winf" class="section level4"> <div id="winf" class="section level4">
<h4><kbd>Win</kbd><kbd>f</kbd></h4> <h4><kbd>Win</kbd><kbd>f</kbd></h4>

Binary file not shown.

View File

@ -59,6 +59,19 @@ This implicitly sets the window to be floating.
This implicitly sets the window to be floating. This implicitly sets the window to be floating.
`Config_hotkey=#^+m::Manager_forceManaged()`
> _Force_ the active window to be _managed_.
This function is EXPERIMENTAL, which does not mean that it is in an
alpha-development stage, but you should know what you do, if using this hotkey.
It forces the flag "is managed" to be true (1) despite any rule in
`Config.ini`. If set improperly, a window, which is not a regular application
window, may only be reset by logging out from and back in to Windows.
You may also want to use `#+f::View_toggleFloatingWindow()` to see the full
effect.
`Config_hotkey=#+s::Manager_sizeWindow()` `Config_hotkey=#+s::Manager_sizeWindow()`
> _Resize_ the active window _by key_. > _Resize_ the active window _by key_.
@ -151,7 +164,7 @@ level to an absolute value by using the first parameter.
### Layout management ### Layout management
`Config_hotkey=#Tab::View_setLayout(-1)` `Config_hotkey=#Tab::View_setLayout(-1)`
> Set the _previous_ly set _layout_. > Set the _previous_-ly set _layout_.
You may also use `View_setLayout(0, +1)` for setting the next or 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. `View_setLayout(0, -1)` for setting the previous layout in the layout array.

View File

@ -31,7 +31,7 @@ There are not many special character keys, which are on both keyboards, US and D
| f | x | x | | | | | | f | x | x | | | | |
| h | | | x | | | | | h | | | x | | | |
| i | x | x | x | x | | | | i | x | x | x | x | | |
| m | x | x | x | | | | | m | x | x | x | x | | |
| n | | x | | | | | | n | | x | | | | |
| q | | | x | | | | | q | | | x | | | |
| r | | | x | | | | | r | | | x | | | |

View File

@ -406,6 +406,7 @@ Config_UI_saveSession() {
#+f::View_toggleFloatingWindow() #+f::View_toggleFloatingWindow()
#+m::Manager_moveWindow() #+m::Manager_moveWindow()
#^m::Manager_minimizeWindow() #^m::Manager_minimizeWindow()
#^+m::Manager_forceManaged()
#+s::Manager_sizeWindow() #+s::Manager_sizeWindow()
#+x::Manager_maximizeWindow() #+x::Manager_maximizeWindow()
#i::Manager_getWindowInfo() #i::Manager_getWindowInfo()

View File

@ -191,6 +191,16 @@ Manager_doMaintenance:
Manager_saveState() Manager_saveState()
Return Return
Manager_forceManaged() {
Local aWndId
WinGet, aWndId, ID, A
Manager_manage(Manager_aMonitor, Monitor_#%Manager_aMonitor%_aView_#1, aWndId, True)
If Config_dynamicTiling
View_arrange(Manager_aMonitor, Monitor_#%Manager_aMonitor%_aView_#1)
Bar_updateView(Manager_aMonitor, Monitor_#%Manager_aMonitor%_aView_#1)
}
Manager_getWindowInfo() Manager_getWindowInfo()
{ {
Local aWndClass, aWndHeight, aWndId, aWndMinMax, aWndPId, aWndPName, aWndStyle, aWndTitle, aWndWidth, aWndX, aWndY, rule, text, v Local aWndClass, aWndHeight, aWndId, aWndMinMax, aWndPId, aWndPName, aWndStyle, aWndTitle, aWndWidth, aWndX, aWndY, rule, text, v
@ -319,22 +329,19 @@ Manager__setWinProperties(wndId, isManaged, m, tags, isDecorated, isFloating, hi
;; Accept a window to be added to the system for management. ;; Accept a window to be added to the system for management.
;; Provide a monitor and view preference, but don't override the config. ;; Provide a monitor and view preference, but don't override the config.
Manager_manage(preferredMonitor, preferredView, wndId) Manager_manage(preferredMonitor, preferredView, wndId, force = False) {
{
Local a, action, c0, hideTitle, i, isDecorated, isFloating, isManaged, l, m, n, replace, search, tags, body Local a, action, c0, hideTitle, i, isDecorated, isFloating, isManaged, l, m, n, replace, search, tags, body
Local wndControlList0, wndId0, wndIds, wndX, wndY, wndWidth, wndHeight Local wndControlList0, wndId0, wndIds, wndX, wndY, wndWidth, wndHeight
;; Manage any window only once. ;; Manage any window only once.
If InStr(Manager_allWndIds, wndId ";") If InStr(Manager_allWndIds, wndId ";") And Not force
Return Return
body := 0 body := 0
If Window_isGhost(wndId) If Window_isGhost(wndId) {
{
Debug_logMessage("DEBUG[2] A window has given up the ghost (Ghost wndId: " . wndId . ")", 2) Debug_logMessage("DEBUG[2] A window has given up the ghost (Ghost wndId: " . wndId . ")", 2)
body := Window_findHung(wndId) body := Window_findHung(wndId)
If body If body {
{
isManaged := InStr(Manager_managedWndIds, body ";") isManaged := InStr(Manager_managedWndIds, body ";")
m := Window_#%body%_monitor m := Window_#%body%_monitor
tags := Window_#%body%_tags tags := Window_#%body%_tags
@ -342,17 +349,14 @@ Manager_manage(preferredMonitor, preferredView, wndId)
isFloating := Window_#%body%_isFloating isFloating := Window_#%body%_isFloating
hideTitle := InStr(Bar_hideTitleWndIds, body ";") hideTitle := InStr(Bar_hideTitleWndIds, body ";")
action := "" action := ""
} } Else
Else
{
Debug_logMessage("DEBUG[1] No body could be found for ghost wndId: " . wndId, 1) Debug_logMessage("DEBUG[1] No body could be found for ghost wndId: " . wndId, 1)
}
} }
;; Apply rules if the window is either a normal window or a ghost without a body. ;; Apply rules if the window is either a normal window or a ghost without a body.
If (body = 0) If (body = 0) {
{
Manager_applyRules(wndId, isManaged, m, tags, isFloating, isDecorated, hideTitle, action) Manager_applyRules(wndId, isManaged, m, tags, isFloating, isDecorated, hideTitle, action)
isManaged := isManaged Or force
If (m = 0) If (m = 0)
m := preferredMonitor m := preferredMonitor
If (m < 0) If (m < 0)
@ -363,7 +367,7 @@ Manager_manage(preferredMonitor, preferredView, wndId)
tags := 1 << (preferredView - 1) tags := 1 << (preferredView - 1)
} }
a := Manager__setWinProperties( wndId, isManaged, m, tags, isDecorated, isFloating, hideTitle, action) a := Manager__setWinProperties(wndId, isManaged, m, tags, isDecorated, isFloating, hideTitle, action)
; Do view placement. ; Do view placement.
If isManaged { If isManaged {

View File

@ -101,6 +101,7 @@
;Config_hotkey=#+d::Window_toggleDecor() ;Config_hotkey=#+d::Window_toggleDecor()
;Config_hotkey=#+f::View_toggleFloatingWindow() ;Config_hotkey=#+f::View_toggleFloatingWindow()
;Config_hotkey=#+m::Manager_moveWindow() ;Config_hotkey=#+m::Manager_moveWindow()
;Config_hotkey=#^+m::Manager_forceManaged()
;Config_hotkey=#+s::Manager_sizeWindow() ;Config_hotkey=#+s::Manager_sizeWindow()
;Config_hotkey=#+x::Manager_maximizeWindow() ;Config_hotkey=#+x::Manager_maximizeWindow()
;Config_hotkey=#i::Manager_getWindowInfo() ;Config_hotkey=#i::Manager_getWindowInfo()

View File

@ -109,6 +109,7 @@ Config_hotkey=#k::Manager_closeWindow()
;Config_hotkey=#+d::Window_toggleDecor() ;Config_hotkey=#+d::Window_toggleDecor()
;Config_hotkey=#+f::View_toggleFloatingWindow() ;Config_hotkey=#+f::View_toggleFloatingWindow()
;Config_hotkey=#+m::Manager_moveWindow() ;Config_hotkey=#+m::Manager_moveWindow()
;Config_hotkey=#^+m::Manager_forceManaged()
;Config_hotkey=#+s::Manager_sizeWindow() ;Config_hotkey=#+s::Manager_sizeWindow()
;Config_hotkey=#+x::Manager_maximizeWindow() ;Config_hotkey=#+x::Manager_maximizeWindow()
Config_hotkey=#i:: Config_hotkey=#i::