Finally got a resolved candidate

This commit is contained in:
Joshua Fuhs 2012-12-03 22:40:52 -05:00
commit ad94306aec
10 changed files with 149 additions and 56 deletions

View file

@ -1,3 +1,6 @@
syntax: glob
src/Config.ini
src/Config_test.ini
01_administration.org
src/log.txt
syntax: regexp
.*[cC]onfig.*\.ini
.+\.\w{3}~

View file

@ -245,7 +245,8 @@ Config_redirectHotkey(key)
}
}
Config_restoreLayout(filename, m) {
Config_restoreLayout(filename, m)
{
Local i, var, val
If Not FileExist(filename)
@ -260,7 +261,8 @@ Config_restoreLayout(filename, m) {
}
}
Config_restoreConfig(filename) {
Config_restoreConfig(filename)
{
Local cmd, i, key, type, val, var
If Not FileExist(filename)

View file

@ -241,9 +241,9 @@ Main_toggleBar:
Monitor_toggleBar()
Return
#include Debug.ahk
#Include Bar.ahk
#Include Config.ahk
#Include Debug.ahk
#Include Manager.ahk
#Include Monitor.ahk
#Include ResourceMonitor.ahk

View file

@ -347,7 +347,8 @@ Manager__setWinProperties(wndId, isManaged, m, tags, isDecorated, isFloating, hi
If Not Instr(Manager_allWndIds, wndId ";")
Manager_allWndIds .= wndId ";"
If (isManaged) {
If (isManaged)
{
Manager_managedWndIds .= wndId ";"
Monitor_moveWindow(m, wndId)
Manager_#%wndId%_tags := tags
@ -360,10 +361,13 @@ Manager__setWinProperties(wndId, isManaged, m, tags, isDecorated, isFloating, hi
Manager_winSet("Style", "-0xC00000", wndId)
a := Manager_#%wndId%_tags & (1 << (Monitor_#%m%_aView_#1 - 1))
If a {
If a
{
Manager_aMonitor := m
Manager_winActivate(wndId)
} Else {
}
Else
{
Manager_hideShow := True
Manager_winHide(wndId)
Manager_hideShow := False
@ -372,8 +376,6 @@ Manager__setWinProperties(wndId, isManaged, m, tags, isDecorated, isFloating, hi
If hideTitle
Bar_hideTitleWndIds .= wndId . ";"
Return, a
}

View file

@ -10,14 +10,9 @@
(~) changed
(+) added
=8.2.2(?)=
=8.3.0=
(+) Multi-dimensional tiling of the master area. The user may now specify
X and Y dimensions independently up to 9 x 9.
(+) Initially assign windows to the monitor on which they appear if
nothing is specified in the configuration.
(~) Improved view arranging runtime.
(+) Created bug.n log to record major and debugging events.
(~) Fixed bug #18641: Freezing problem. In most cases, bug.n will no
longer hang when one of its managed windows hangs.
(~) Fixed bug: Sometimes cycling through the windows in a view would
@ -26,6 +21,38 @@
a non-active monitor could cause both monitors to change views.
(~) Gap widths are now treated identically on both "tile" and "monocle"
layouts.
(~) Fixed bug #18650: Unexpected monitor focus changes
(~) Fixed bug in 'Manager_setWindowMonitor(d)' and
'Manager_setViewMonitor(d)'
(~) Fixed bug, which prevented bug.n from Main_reload, if the number of
monitors changed.
(~) Fixed bug: Closing Bar_cmdGui and activating the next to last window.
(~) Fixed bug: Vertical position of Bar_cmdGui, if
Config_verticalBarPos=tray and the task bar is at the top of the
monitor.
(~) Fixed bug: On Main_reload() and Config_verticalBarPos=tray.
(~) Changed the command line argument from specifying 'the path to the
config.ini' to 'the path to the general data directory containing
the config.ini and log.txt'.
(+) Multi-dimensional tiling of the master area. The user may now specify
X and Y dimensions independently up to 9 x 9.
(+) Initially assign windows to the monitor on which they appear if
nothing is specified in the configuration.
(+) Created bug.n log to record major and debugging events and window
information.
(+) 'View margins' allowing a layout to occupy a limited space of the
monitor.
(+) 'Single window action', which allows to close or maximize windows
based on rules.
(+) 'Reload' hotkey, which reloads the whole script.
(+) Re-Setting the 'Reload' and 'ExitApp' hotkey in 'config.ini'-
(+) Added the configuration variable "Config_viewNames", with which views
can be named and the number of views can be set. The configuration
variable "Config_viewCount" therewith becomes obsolete.
(-) Removed the configuration variable "Config_viewCount".
(-) Removed the explicit listing of commands in the Bar_cmdGui.
(-) Removed the default rules for Gimp, since from version 2.8 onwards
Gimp can use a single application window instead of three and more.
=8.2.1=

View file

@ -97,6 +97,12 @@
The default values are retrieved from the "Window Color and Appearance"
settings.
: **Config_barCommands**=Run, explore docs;Monitor_toggleBar();Main_reload();Reload;ExitApp
The commands seperated by semicolon, which are listed in the command GUI
of the bar (#!) and therewith can be selected rather then typed; bug.n
functions (as used in the hotkey configuration), the "Run" and "Send"
command of AutoHotkey can be used here.
: **Config_readinBat**=0
If true (=1), the system battery status is read in and displayed in the
status bar. This only makes sense, if you have a system battery
@ -110,6 +116,18 @@
If true (=1), the current date is read in (format: "WW, DD. MMM. YYYY")
and displayed in the status bar.
: **Config_readinDiskLoad**=0
If true (=1), the current disk load (read and write) is read in and
displayed in the status bar.
: **Config_readinMemoryUsage**=0
If true (=1), the system memory usage is read in and displayed in the
status bar.
: **Config_readinNetworkLoad**=0
If true (=1), the current network load (up and down) is read in and
displayed in the status bar.
: **Config_readinTime**=1
If true (=1), the current time is read in (format: "HH:MM") and
displayed in the status bar.
@ -156,9 +174,11 @@ settings.
=== View / Layout ===
: **Config_viewCount**=9
The total number of views. This has effects on the displayed groups in
the bar, and should not be exceeded in the hotkeys below.
: **Config_viewNames**=1;2;3;4;5;6;7;8;9
The names of the views separated by a semicolon. This variable sets the
names of the views shown in the status bar and determines the nummber of
views (Config_viewCount); the total number of names given, i. e. views,
should not be exceeded by the configured hotkeys.
: **Config_layout_#1**=[]=;tile
The layout symbol and arrange function (the first entry is set as the
@ -182,17 +202,39 @@ settings.
The stack axis: 1 = x (from left to right), 2 = y (from top to
bottom), 3 = z (monocle).
: **Config_layoutGapWidth=0
The default gap width in px (only even numbers) of the "tile" layout,
i. e. the space between windows and around the layout.
: **Config_layoutMFactor**=0.6
The factor for the size of the master area, which is multiplied by the
monitor size.
: **Config_viewMargins**=0;0;0;0
The margin of a view (around the layout, "monocle" and "tile") as a
semicolon separated list of values in px (top;right;bottom;left), which
by default can be activated per view with the hotkey Win+Shift+N
(View_toggleMargins).
With view margins you may create an empty area on the monitor, which is
not occupied by the layout, therewith making a desktop widget visible.
=== Runtime ===
: **Config_ghostWndSubString**= (Not Responding)
The text string, which identifies a hung window in its title bar; the
german Windows version uses " (Keine Rückmeldung)".
: **Config_mouseFollowsFocus**=1
If true (=1), the mouse pointer is set over the focused window, if a
window is activated by bug.n.
: **Config_newWndPosition=top
The position of a new window in a view; "top": at the beginning of the
window list and the master area (default), "masterBottom": at the end
of the master area, "stackTop": on top of the stack area, "bottom": at
the end of the window list and the stack area.
: **Config_onActiveHiddenWnds**=view
The action, which will be taken, if a window e. g. should be
activated, but is not visible; "view": show the view accordng to the
@ -208,7 +250,7 @@ settings.
: **Config_syncMonitorViews**=0
The number of monitors (2 or more), for which views should be
activated, when using the accordant hotkey. If set to 1, the views are
actiated for all monitors. If set to 0, views are activated
activated for all monitors. If set to 0, views are activated
independently (only on the active monitor).
: **Config_viewFollowsTagged**=0
@ -218,7 +260,7 @@ settings.
=== Rules ===
: **Config_rule_#1**=.*;.*;;1;0;0;0;0;0
: **Config_rule_#1**=.*;.*;;1;0;0;0;0;0;
If you want to replace a default rule, you will have to use the
correct variable name, e. g. you may set a rule (.*;.*;) for a default
monitor, view and / or showing window title bars by setting the first
@ -226,39 +268,39 @@ settings.
If you want to add a rule you do not have to use a numbered variable,
but "Config_rule=..." (the numbering will be done automatically in the
order given in the configuration file). General format:
Config_rule[_#<i>]=<class (regular expression string)>;<title (regular
Config_rule_#<i>=<class (regular expression string)>;<title (regular
expression string)>;<window style (hexadecimal number or blank)>;
<is managed (1 = True or 0 = False)>;<monitor (0 <= integer <= total
number of monitors, 0 means the currently active monitor)>;<tags
(binary mask as integer >= 0, e. g. 17 for 1 and 5, 0 means the
currently active tag)>;<is floating (1 = True or 0 = False)>;
<is decorated (1 = True or 0 = False)>;<hide title (1 = True or
0 = False)>
0 = False)>;<action on single windows (Close or Maximize)>
(all in one line, ";" is not allowed as a character)
: **Config_rule_#2**=.*;.*;0x80000000;0;0;0;1;1;1
: **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_#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 should excluded from the above rule.
but should be excluded from the second rule.
: **Config_rule_#4**=Xming;.*;;1;0;0;0;0;0
Xming windows have the style WS_POPUP, but should be excluded from
the above rule.
: **Config_rule_#4**=QWidget;.*;;1;0;0;0;0;0;
Also windows created by QT (QWidget) should be excluded from the second
rule for the same reason as above.
: **Config_rule_#5**=MsiDialog(No)?CloseClass;.*;;1;0;0;1;1;0"
: **Config_rule_#6**=AdobeFlashPlayerInstaller;.*;;1;0;0;1;0;1"
: **Config_rule_#7**=CalcFrame;.*;;1;0;0;1;1;0"
: **Config_rule_#8**=_sp;_sp;;1;0;0;1;0;1"
: **Config_rule_#9**=MozillaDialogClass;.*;;1;0;0;1;1;0"
: **Config_rule_#10**=gdkWindowToplevel;GIMP-Start;;1;0;0;1;1;0"
: **Config_rule_#11**=gdkWindowToplevel;GNU Image Manipulation Program;;1;0;0;1;1;0"
: **Config_rule_#12**=gdkWindowToplevel;Werkzeugkasten;;1;0;0;1;1;0"
: **Config_rule_#13**=gdkWindowToplevel;Ebenen, .* - Pinsel, Muster, .*;;1;0;0;1;1;0"
: **Config_rule_#14**=gdkWindowToplevel;Toolbox;;1;0;0;1;1;0"
: **Config_rule_#15**=gdkWindowToplevel;Layers, Channels, Paths, .*;;1;0;0;1;1;0"
: **Config_rule_#5**=Xming;.*;;1;0;0;0;0;0;
Also Xming windows should be excluded from the second rule for the same
reason as above.
: **Config_rule_#6**=MsiDialog(No)?CloseClass;.*;;1;0;0;1;1;0;
: **Config_rule_#7**=AdobeFlashPlayerInstaller;.*;;1;0;0;1;0;1;
: **Config_rule_#8**=CalcFrame;.*;;1;0;0;1;1;0;
: **Config_rule_#9**=MozillaDialogClass;.*;;1;0;0;1;1;0;
: **Config_rule_#10**=_sp;_sp;;1;0;0;1;0;1;
: **Config_rule_#11**=MozillaWindowClass;.* - Mozilla Firefox;;1;0;0;0;1;0;Maximize
: **Config_rule_#12**=Chrome_WidgetWin_1;.*;;1;0;0;0;1;0;Maximize
=== Session management ===

View file

@ -71,7 +71,7 @@ There are three layouts.
A master area for the main window(s) and a stacking area for the rest,
all windows are shown at any time. This layout can be further changed
in the following respects:
- the dimensions of the master area (1x1 ... 9x9)
- the dimensions of the master area (1x1 ... 2x3 ... 9x9)
- the stacking direction of the master and stacking area (from left to
right, from top to bottom or monocle)
- the position of the master area (left, top, right or bottom)
@ -120,7 +120,7 @@ path to the configuration file (<file path to the bug.n executable>
If you are using bug.n on Microsoft Windows Vista or 7 you may use
applications, which run with administrator privileges e. g.
administrative tools and therefor are not managed by bug.n, if it is
run with an account, which //is// not the administrator. If you want
run with an account, which is //not// the administrator. If you want
those applications to be managed, you need to run bug.n with
administrator privileges, too.
You can set the option "Run this program as an administrator" on the

View file

@ -136,19 +136,27 @@ pressing the left Windows key and the shift key and the q key
: #^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.
windows in the master area by Y. 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.
windows in the master area by Y. 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.
windows in the master area by X. Minimum of 1 (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.
windows in the master area by X. Maximum of 9 (only for the "tile"
layout).
: #+n::**View_toggleMargins()**
Toggle the view margins, which are set by the configuration variable
"Config_viewMargins".
=== Tag / View related hotkeys ===
@ -207,20 +215,22 @@ pressing the left Windows key and the shift key and the q key
=== Logging/Debugging related hotkeys ===
: #^i::**Manager_logViewWindowList()**
Dump the contents of the current view to the bug.n log.
: #^i::**Debug_logViewWindowList()**
Dump window information on the windows of the active view to the log.
: #+^i::**Manager_logManagedWindowList()**
Dump the contents of the managed window list to the bug.n 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::**Manager_logHelp()**
Print to the log a description of the formatting used in the
previous two log messages.
: #^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.
: #^[::**Log_decDebugLevel()**
: #^d::**Debug_setLogLevel(-1)**
Decrement the debug log level. Show fewer debug messages.
: #^]::**Log_incDebugLevel()**
: #^+d::**Debug_setLogLevel(+1)**
Increment the debug log level. Show more debug messages.
@ -240,12 +250,19 @@ pressing the left Windows key and the shift key and the q key
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 set explicitly in Config.ini), individual window
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.

View file

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB