Revised the rule layout
This commit is contained in:
parent
8ca47284e1
commit
d67c7482e9
|
@ -18,6 +18,8 @@
|
||||||
5. `~` Revised the interface, i. e. the parameters, of the following functions for setting absolute and relative values -- but did
|
5. `~` Revised the interface, i. e. the parameters, of the following functions for setting absolute and relative values -- but did
|
||||||
not implement the functionality: `Monitor_toggleWindowTag`, `View_activateWindow`.
|
not implement the functionality: `Monitor_toggleWindowTag`, `View_activateWindow`.
|
||||||
6. `~` Revised the bar color scheme.
|
6. `~` Revised the bar color scheme.
|
||||||
|
7. `~` Revised the rule layout. The third parameter is not compared to the window style anymore, but is a function name, which is
|
||||||
|
called with the window ID as a paramater, when applying the rule.
|
||||||
|
|
||||||
| # | Configuration variables | `-` Hotkey functions | `+` Hotkey functions |
|
| # | Configuration variables | `-` Hotkey functions | `+` Hotkey functions |
|
||||||
| --:| ------------------------- | --------------------------------------- | ----------------------------------------------------- |
|
| --:| ------------------------- | --------------------------------------- | ----------------------------------------------------- |
|
||||||
|
@ -62,6 +64,7 @@ not implement the functionality: `Monitor_toggleWindowTag`, `View_activateWindow
|
||||||
| | `+` `Config_fontColor_#1` | | |
|
| | `+` `Config_fontColor_#1` | | |
|
||||||
| | `+` `Config_fontColor_#2` | | |
|
| | `+` `Config_fontColor_#2` | | |
|
||||||
| | `+` `Config_fontColor_#3` | | |
|
| | `+` `Config_fontColor_#3` | | |
|
||||||
|
| 7. | `~` `Config_rule_#2` | | |
|
||||||
|
|
||||||
### 8.4.0
|
### 8.4.0
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ following information:
|
||||||
|
|
||||||
1. class (as a regular expression)
|
1. class (as a regular expression)
|
||||||
2. title (as a regular expression)
|
2. title (as a regular expression)
|
||||||
3. window style (as a hexadecimal number or blank)
|
3. arbitrary criterion (as a function name, e. g. "Window_isPopup", or blank)
|
||||||
|
|
||||||
With the second part you can give bug.n the following information on how to
|
With the second part you can give bug.n the following information on how to
|
||||||
handle the identified windows:
|
handle the identified windows:
|
||||||
|
@ -28,7 +28,7 @@ removed.
|
||||||
7. A special single window action (`close` or `maximize` or blank).
|
7. A special single window action (`close` or `maximize` or blank).
|
||||||
|
|
||||||
The general format of a rule added to `Config.ini` is as follows:
|
The general format of a rule added to `Config.ini` is as follows:
|
||||||
`Config_rule=<class>;<title>;<window style>;<is managed>;<monitor>;<views /
|
`Config_rule=<class>;<title>;<function name>;<is managed>;<monitor>;<views /
|
||||||
tags>;<is floating>;<is decorated>;<hide title>;<action on a single window>`
|
tags>;<is floating>;<is decorated>;<hide title>;<action on a single window>`
|
||||||
(all in one line, ";" is not allowed as a character in the field values)
|
(all in one line, ";" is not allowed as a character in the field values)
|
||||||
|
|
||||||
|
|
|
@ -272,9 +272,9 @@ view, not floating (i. e. tiled), the window title bar is not visible, the
|
||||||
title is not hidden on the bug.n status bar and no window action is taken, when
|
title is not hidden on the bug.n status bar and no window action is taken, when
|
||||||
the window first is created.
|
the window first is created.
|
||||||
|
|
||||||
`Config_rule_#2=.*;.*;0x80000000;0;0;0;1;1;1;`
|
`Config_rule_#2=.*;.*;Window_isPopup;0;0;0;1;1;1;`
|
||||||
> Pop-up windows (style WS_POPUP=0x80000000) will not be managed, are floating
|
> Pop-up windows (style WS_POPUP) will not be managed, are floating and the
|
||||||
and the titles are hidden.
|
titles are hidden.
|
||||||
|
|
||||||
`Config_rule_#3=SWT_Window0;.*;;1;0;0;0;0;0;`
|
`Config_rule_#3=SWT_Window0;.*;;1;0;0;0;0;0;`
|
||||||
> Windows created by Java (SWT) e. g. Eclipse have the style WS_POPUP, but
|
> Windows created by Java (SWT) e. g. Eclipse have the style WS_POPUP, but
|
||||||
|
|
|
@ -78,12 +78,12 @@ Config_init() {
|
||||||
Config_viewFollowsTagged := False
|
Config_viewFollowsTagged := False
|
||||||
Config_viewMargins := "0;0;0;0"
|
Config_viewMargins := "0;0;0;0"
|
||||||
|
|
||||||
;; Config_rule_#<i> := '<class>;<title>;<style>;<is managed>;<m>;<tags>;<is floating>;<is decorated>;<hide title>;<action>'
|
;; Config_rule_#<i> := '<class>;<title>;<function name>;<is managed>;<m>;<tags>;<is floating>;<is decorated>;<hide title>;<action>'
|
||||||
Config_rule_#1 := ".*;.*;;1;0;0;0;0;0;" ;; default rule
|
Config_rule_#1 := ".*;.*;;1;0;0;0;0;0;" ;; default rule
|
||||||
Config_rule_#2 := ".*;.*;0x80000000;0;0;0;1;1;1;" ;; Pop-up windows (style WS_POPUP=0x80000000) will not be managed, are floating and the titles are hidden.
|
Config_rule_#2 := ".*;.*;Window_isPopup;0;0;0;1;1;1;" ;; Pop-up windows (style WS_POPUP) will not be managed, are floating and the titles are hidden.
|
||||||
Config_rule_#3 := "SWT_Window0;.*;;1;0;0;0;0;0;" ;; Windows created by Java (SWT) e. g. Eclipse have the style WS_POPUP, but should be excluded from the second rule.
|
Config_rule_#3 := "SWT_Window0;.*;;1;0;0;0;0;0;" ;; Windows created by Java (SWT) e. g. Eclipse have the style WS_POPUP, but should be excluded from the second rule.
|
||||||
Config_rule_#4 := "QWidget;.*;;1;0;0;0;0;0;" ;; ... also windows created by QT (QWidget)
|
Config_rule_#4 := "QWidget;.*;;1;0;0;0;0;0;" ;; ... also windows created by QT (QWidget)
|
||||||
Config_rule_#5 := "Xming;.*;;1;0;0;0;0;0;" ;; ... and Xming windows
|
Config_rule_#5 := "Xming;.*;;1;0;0;0;0;0;" ;; ... and Xming windows
|
||||||
Config_rule_#6 := "MsiDialog(No)?CloseClass;.*;;1;0;0;1;1;0;"
|
Config_rule_#6 := "MsiDialog(No)?CloseClass;.*;;1;0;0;1;1;0;"
|
||||||
Config_rule_#7 := "AdobeFlashPlayerInstaller;.*;;1;0;0;1;0;1;"
|
Config_rule_#7 := "AdobeFlashPlayerInstaller;.*;;1;0;0;1;0;1;"
|
||||||
Config_rule_#8 := "CalcFrame;.*;;1;0;0;1;1;0;"
|
Config_rule_#8 := "CalcFrame;.*;;1;0;0;1;1;0;"
|
||||||
|
|
|
@ -95,9 +95,8 @@ Manager_activateMonitor(i, d = 0) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Manager_applyRules(wndId, ByRef isManaged, ByRef m, ByRef tags, ByRef isFloating, ByRef isDecorated, ByRef hideTitle, ByRef action)
|
Manager_applyRules(wndId, ByRef isManaged, ByRef m, ByRef tags, ByRef isFloating, ByRef isDecorated, ByRef hideTitle, ByRef action) {
|
||||||
{
|
Local mouseX, mouseY, wndClass, wndHeight, wndTitle, wndWidth, wndX, wndY
|
||||||
Local mouseX, mouseY, wndClass, wndHeight, wndStyle, wndTitle, wndWidth, wndX, wndY
|
|
||||||
Local rule0, rule1, rule2, rule3, rule4, rule5, rule6, rule7, rule8, rule9, rule10
|
Local rule0, rule1, rule2, rule3, rule4, rule5, rule6, rule7, rule8, rule9, rule10
|
||||||
|
|
||||||
isManaged := True
|
isManaged := True
|
||||||
|
@ -111,14 +110,11 @@ Manager_applyRules(wndId, ByRef isManaged, ByRef m, ByRef tags, ByRef isFloating
|
||||||
WinGetClass, wndClass, ahk_id %wndId%
|
WinGetClass, wndClass, ahk_id %wndId%
|
||||||
WinGetTitle, wndTitle, ahk_id %wndId%
|
WinGetTitle, wndTitle, ahk_id %wndId%
|
||||||
WinGetPos, wndX, wndY, wndWidth, wndHeight, ahk_id %wndId%
|
WinGetPos, wndX, wndY, wndWidth, wndHeight, ahk_id %wndId%
|
||||||
WinGet, wndStyle, Style, ahk_id %wndId%
|
If wndClass And wndTitle And Not (wndX < -4999) And Not (wndY < -4999) {
|
||||||
If wndClass And wndTitle And Not (wndX < -4999) And Not (wndY < -4999)
|
Loop, % Config_ruleCount {
|
||||||
{
|
|
||||||
Loop, % Config_ruleCount
|
|
||||||
{
|
|
||||||
StringSplit, rule, Config_rule_#%A_index%, `;
|
StringSplit, rule, Config_rule_#%A_index%, `;
|
||||||
If RegExMatch(wndClass . ";" . wndTitle, rule1 . ";" . rule2) And (rule3 = "" Or wndStyle & rule3)
|
If RegExMatch(wndClass . ";" . wndTitle, rule1 . ";" . rule2) And (rule3 = "" Or %rule3%(wndId)) {
|
||||||
{ ;; The last matching rule is returned.
|
;; The last matching rule is returned.
|
||||||
isManaged := rule4
|
isManaged := rule4
|
||||||
m := rule5
|
m := rule5
|
||||||
tags := rule6
|
tags := rule6
|
||||||
|
@ -128,9 +124,7 @@ Manager_applyRules(wndId, ByRef isManaged, ByRef m, ByRef tags, ByRef isFloating
|
||||||
action := rule10
|
action := rule10
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} Else {
|
||||||
Else
|
|
||||||
{
|
|
||||||
isManaged := False
|
isManaged := False
|
||||||
If wndTitle
|
If wndTitle
|
||||||
hideTitle := True
|
hideTitle := True
|
||||||
|
@ -223,7 +217,7 @@ Manager_getWindowInfo()
|
||||||
WinGet, aWndMinMax, MinMax, ahk_id %aWndId%
|
WinGet, aWndMinMax, MinMax, ahk_id %aWndId%
|
||||||
WinGetPos, aWndX, aWndY, aWndWidth, aWndHeight, ahk_id %aWndId%
|
WinGetPos, aWndX, aWndY, aWndWidth, aWndHeight, ahk_id %aWndId%
|
||||||
text := "ID: " aWndId "`nclass:`t" aWndClass "`ntitle:`t" aWndTitle
|
text := "ID: " aWndId "`nclass:`t" aWndClass "`ntitle:`t" aWndTitle
|
||||||
rule := "Config_rule=" aWndClass ";" aWndTitle ";" aWndStyle
|
rule := "Config_rule=" aWndClass ";" aWndTitle ";"
|
||||||
If InStr(Manager_managedWndIds, aWndId ";")
|
If InStr(Manager_managedWndIds, aWndId ";")
|
||||||
rule .= ";1"
|
rule .= ";1"
|
||||||
Else
|
Else
|
||||||
|
|
|
@ -96,6 +96,13 @@ Window_isHung(wndId) {
|
||||||
Return, 0
|
Return, 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Window_isPopup(wndId) {
|
||||||
|
WS_POPUP = 0x80000000
|
||||||
|
WinGet, wndStyle, Style, ahk_id %wndId%
|
||||||
|
|
||||||
|
Return, wndStyle & WS_POPUP
|
||||||
|
}
|
||||||
|
|
||||||
Window_isProg(wndId) {
|
Window_isProg(wndId) {
|
||||||
WinGetClass, wndClass, ahk_id %wndId%
|
WinGetClass, wndClass, ahk_id %wndId%
|
||||||
WinGetTitle, wndTitle, ahk_id %wndId%
|
WinGetTitle, wndTitle, ahk_id %wndId%
|
||||||
|
|
Loading…
Reference in New Issue