feat: add maximize window support with MRU focus tracking and demo timing configs
Implement client maximize/unmaximize toggle and state tracking via CLIENT_MAXIMIZED flag, add MRU (most-recently-used) doubly-linked list per workspace for intelligent focus restoration on client unmanage, introduce configurable focus-follow delay (0-1000ms) for sloppy focus mode, and add demo mode timing parameters (step_delay, ai_timeout, window_timeout) with corresponding wait condition enum and configuration parsing in the [demo] section.
This commit is contained in:
+49
-2
@@ -93,6 +93,11 @@
|
||||
<td><code>click</code></td>
|
||||
<td><code>click</code> or <code>follow</code> (sloppy focus)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>focus_follow_delay</code></td>
|
||||
<td><code>100</code></td>
|
||||
<td>Delay in ms before focus switches in follow mode (0-1000)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>decorations</code></td>
|
||||
<td><code>true</code></td>
|
||||
@@ -109,7 +114,8 @@
|
||||
terminal = alacritty
|
||||
launcher = rofi -show run
|
||||
file_manager = nautilus
|
||||
focus_mode = click
|
||||
focus_mode = follow
|
||||
focus_follow_delay = 100
|
||||
decorations = true</code></pre>
|
||||
<h2 id="appearance" style="margin-top: 3rem;">[appearance] - Visual Settings</h2>
|
||||
<p style="color: var(--text-muted); margin-bottom: 1.5rem;">
|
||||
@@ -432,6 +438,42 @@ path = ~/.config/dwn/autostart.d</code></pre>
|
||||
<li><code>~/.config/autostart/</code> - User XDG autostart entries</li>
|
||||
<li><code>~/.config/dwn/autostart.d/</code> - DWN-specific symlinks and scripts</li>
|
||||
</ul>
|
||||
<h2 id="demo" style="margin-top: 3rem;">[demo] - Demo Mode</h2>
|
||||
<p style="color: var(--text-muted); margin-bottom: 1.5rem;">
|
||||
Configure demo mode timing. The demo showcases DWN features including live AI and search functionality.
|
||||
</p>
|
||||
<div class="table-wrapper">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Option</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>step_delay</code></td>
|
||||
<td>Time between demo steps in milliseconds (1000-30000, default: 4000)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>ai_timeout</code></td>
|
||||
<td>Timeout for AI/Exa API responses in milliseconds (5000-60000, default: 15000)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>window_timeout</code></td>
|
||||
<td>Timeout for window spawn operations in milliseconds (1000-30000, default: 5000)</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="code-header">
|
||||
<span>Example</span>
|
||||
<button class="copy-btn" onclick="copyCode(this)">Copy</button>
|
||||
</div>
|
||||
<pre><code>[demo]
|
||||
step_delay = 4000
|
||||
ai_timeout = 15000
|
||||
window_timeout = 5000</code></pre>
|
||||
<h2 style="margin-top: 3rem;">Complete Configuration Example</h2>
|
||||
<div class="code-header">
|
||||
<span>~/.config/dwn/config</span>
|
||||
@@ -444,6 +486,7 @@ terminal = alacritty
|
||||
launcher = rofi -show drun
|
||||
file_manager = thunar
|
||||
focus_mode = click
|
||||
focus_follow_delay = 100
|
||||
decorations = true
|
||||
[appearance]
|
||||
border_width = 2
|
||||
@@ -478,7 +521,11 @@ model = google/gemini-2.0-flash-exp:free
|
||||
[autostart]
|
||||
enabled = true
|
||||
xdg_autostart = true
|
||||
path = ~/.config/dwn/autostart.d</code></pre>
|
||||
path = ~/.config/dwn/autostart.d
|
||||
[demo]
|
||||
step_delay = 4000
|
||||
ai_timeout = 15000
|
||||
window_timeout = 5000</code></pre>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
Reference in New Issue
Block a user