You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+9-6Lines changed: 9 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -44,13 +44,13 @@ When `WindowLayout\window_layouts.txt` is reformatted, the script also regenerat
44
44
-`Portable`: runs directly from a folder such as the desktop
45
45
-`Monitor setups`: separate physical monitor arrangements from window layouts
46
46
-`Relative monitor matching`: matches the current monitors to a saved setup by relative position, not Windows numbering
47
-
-`Capture workflow`: saves the current layout to `current_layout.txt`, which you can trim and copy into `window_layouts.txt`
47
+
-`Capture workflow`: saves the current layout to `current_layout.txt` with a timestamped comment header, and you can trim and copy parts into `window_layouts.txt`
48
48
-`Readable config`: uses a pipe-delimited text format instead of JSON
49
49
-`Regex titles`: supports `regex` title matching, including `|` inside regex patterns
50
50
-`Cascade support`: capture emits both a cascade row and individual rows for multi-instance apps
51
51
-`Virtual desktops`: captures and restores a manually editable desktop number for each window
52
52
-`Editable percentages`: capture writes integer `x`, `y`, `w`, and `h` values, but you can manually change them to decimals for finer positioning
53
-
-`Ignore list`: processes without a valid desktop number are written to `processes_to_ignore.txt` and excluded from future captures and restores
53
+
-`Ignore list`: processes whose captured windows never resolve to a valid desktop number are written to `processes_to_ignore.txt` and excluded from future captures and restores
54
54
55
55
## Folder Layout
56
56
@@ -63,11 +63,11 @@ WindowLayout/
63
63
readme.txt
64
64
```
65
65
66
-
`window_layouts.txt` is created on first run.
66
+
`window_layouts.txt` is created on first run with a comment header and a blank line before the content.
67
67
68
68
Per-layout `.cmd` shortcut scripts inside `WindowLayout\` are generated from `window_layouts.txt` when it is reformatted.
69
69
70
-
`current_layout.txt` is generated only when you capture a layout.
70
+
`current_layout.txt` is generated only when you capture a layout. It includes a timestamped comment header and a blank line before the captured content.
71
71
72
72
`processes_to_ignore.txt` is updated automatically when capture finds processes without a valid desktop number.
73
73
@@ -79,7 +79,9 @@ Per-layout `.cmd` shortcut scripts inside `WindowLayout\` are generated from `wi
79
79
4. Choose a saved layout, or capture the current layout.
80
80
5. After capture, copy the parts you want from `current_layout.txt` into `window_layouts.txt`.
81
81
82
-
Capture usually sees more windows than you want to keep, including helper windows and some windows that are not obvious at first glance. Processes without a valid desktop number are not written to `current_layout.txt`; instead, their process names are added to `WindowLayout\processes_to_ignore.txt`.
82
+
When you create a new monitor setup, capture first lists the detected monitors, then asks you to name each monitor, then asks for the monitor configuration name.
83
+
84
+
Capture usually sees more windows than you want to keep, including helper windows and some windows that are not obvious at first glance. Individual windows without a valid desktop number are not written to `current_layout.txt`; if all captured windows for a process lack a valid desktop number, that process name is added to `WindowLayout\processes_to_ignore.txt`.
83
85
84
86
## Configuration Model
85
87
@@ -144,7 +146,8 @@ That shows a useful pattern:
144
146
## Capture Notes
145
147
146
148
- Capture learns ignored processes automatically and stores them in `WindowLayout\processes_to_ignore.txt`
147
-
- Processes without a valid desktop number are blacklisted and omitted from `current_layout.txt`
149
+
- Individual windows without a valid desktop number are omitted from `current_layout.txt`
150
+
- If all captured windows for a process have no valid desktop number, that process is blacklisted
148
151
-`WindowLayout.cmd -CaptureCurrent -IgnoreBlacklist` captures the full visible window list for troubleshooting, including blacklisted processes and windows without a usable desktop number
149
152
- Capture still writes integer percentages, but manual decimal edits in `window_layouts.txt` are preserved when the file is reformatted
Copy file name to clipboardExpand all lines: WindowLayout/readme.txt
+15-11Lines changed: 15 additions & 11 deletions
Original file line number
Diff line number
Diff line change
@@ -11,9 +11,9 @@ Why this is useful
11
11
Files
12
12
- WindowLayout.cmd must stay next to the WindowLayout folder.
13
13
- WindowLayout\WindowLayout.ps1 is the main script.
14
-
- WindowLayout\window_layouts.txt is the editable layouts file. It is created automatically on first run.
14
+
- WindowLayout\window_layouts.txt is the editable layouts file. It is created automatically on first run with a comment header and a blank line before the content.
15
15
- WindowLayout\WindowLayout - <monitor setup> - <layout>.cmd files are generated from window_layouts.txt when that file is reformatted.
16
-
- WindowLayout\current_layout.txt is generated only when you capture the current layout.
16
+
- WindowLayout\current_layout.txt is generated only when you capture the current layout. It includes a comment header with the capture date and time, followed by a blank line.
17
17
- WindowLayout\processes_to_ignore.txt is maintained automatically for processes without a valid desktop number.
18
18
19
19
Setup examples:
@@ -27,11 +27,14 @@ How to use it
27
27
1. Double-click WindowLayout.cmd.
28
28
2. Choose a layout from the menu in the form "monitor setup - layout".
29
29
3. Or choose to capture the current layout.
30
-
4. During capture, choose which monitor setup to map the current monitors to.
31
-
5. After capture, open current_layout.txt, copy the monitor setup or layout you want into window_layouts.txt, and remove the rows you do not need.
32
-
6. Capture usually includes more windows than you want, including helper windows and some windows that are not obvious at first glance.
33
-
7. Processes without a valid desktop number are added to processes_to_ignore.txt instead of being written to current_layout.txt.
34
-
8. For troubleshooting, run WindowLayout.cmd -CaptureCurrent -IgnoreBlacklist to capture the full visible window list, including blacklisted processes and windows with no usable desktop number.
30
+
4. During capture, choose which monitor setup to map the current monitors to, or create a new one.
31
+
5. When creating a new monitor setup, capture first lists all detected monitors, then asks you to name each monitor, then asks for the monitor configuration name.
32
+
6. After capture, open current_layout.txt, copy the monitor setup or layout you want into window_layouts.txt, and remove the rows you do not need.
33
+
7. current_layout.txt is only a captured snapshot and is not used by the script unless you copy parts of it into window_layouts.txt.
34
+
8. Capture usually includes more windows than you want, including helper windows and some windows that are not obvious at first glance.
35
+
9. Individual windows without a valid desktop number are skipped in current_layout.txt.
36
+
10. If all captured windows for a process have no valid desktop number, that process is added to processes_to_ignore.txt.
37
+
11. For troubleshooting, run WindowLayout.cmd -CaptureCurrent -IgnoreBlacklist to capture the full visible window list, including blacklisted processes and windows with no usable desktop number.
35
38
36
39
Direct shortcut script
37
40
- You can also run a layout directly from the command line:
@@ -100,11 +103,12 @@ Monitor setups
100
103
- The script matches the currently connected monitors to the selected monitor setup by relative monitor positions, not by Windows monitor numbering.
101
104
102
105
Capture behavior
103
-
- If the config has no monitor setups yet, capture asks for a name and creates the first monitor setup from the current monitors.
104
-
- If monitor setups already exist, capture asks which setup to use, or lets you create a new one.
106
+
- If the config has no monitor setups yet, capture lists the detected monitors, asks you to name each monitor, then asks for the monitor configuration name.
107
+
- If monitor setups already exist, capture asks which setup to use, or lets you create a new one with the same interactive naming flow.
105
108
- The monitor match is tolerant: it does not require a perfect coordinate or size match.
106
109
- Capture records the virtual desktop number for each included window.
107
-
- Processes without a valid desktop number are added to processes_to_ignore.txt and left out of current_layout.txt.
110
+
- Individual windows without a valid desktop number are left out of current_layout.txt.
111
+
- If all captured windows for a process have no valid desktop number, that process is added to processes_to_ignore.txt.
108
112
- Running WindowLayout.cmd -CaptureCurrent -IgnoreBlacklist bypasses that filter and keeps those rows in current_layout.txt with a blank desktop column.
109
113
- For multi-instance applications, capture emits both:
110
114
- one cascade row with an empty title
@@ -126,7 +130,7 @@ Menu behavior
126
130
127
131
Restart from scratch
128
132
- Delete WindowLayout\window_layouts.txt and WindowLayout\current_layout.txt.
129
-
- On the next run, the script recreates a fresh empty window_layouts.txt.
133
+
- On the next run, the script recreates window_layouts.txt with its comment header and blank line.
0 commit comments