<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<meta name="description" content="Complete configuration guide for DWN window manager - customize colors, behavior, and more.">
|
|
<title>Configuration - DWN Window Manager</title>
|
|
<link rel="stylesheet" href="css/style.css">
|
|
</head>
|
|
<body>
|
|
<header>
|
|
<nav>
|
|
<a href="index.html" class="logo">
|
|
<span class="logo-icon">D</span>
|
|
<span>DWN</span>
|
|
</a>
|
|
<ul class="nav-links">
|
|
<li><a href="index.html">Home</a></li>
|
|
<li><a href="features.html">Features</a></li>
|
|
<li><a href="installation.html">Install</a></li>
|
|
<li class="dropdown">
|
|
<a href="documentation.html" class="active">Docs</a>
|
|
<div class="dropdown-menu">
|
|
<a href="documentation.html">Getting Started</a>
|
|
<a href="shortcuts.html">Keyboard Shortcuts</a>
|
|
<a href="configuration.html">Configuration</a>
|
|
<a href="ai-features.html">AI Features</a>
|
|
<a href="architecture.html">Architecture</a>
|
|
<a href="design-patterns.html">Design Patterns</a>
|
|
</div>
|
|
</li>
|
|
<li><a href="https://retoor.molodetz.nl/retoor/dwn">Git</a></li>
|
|
</ul>
|
|
<div class="nav-toggle" onclick="toggleNav()">
|
|
<span></span>
|
|
<span></span>
|
|
<span></span>
|
|
</div>
|
|
</nav>
|
|
</header>
|
|
<main>
|
|
<section class="hero" style="padding: 8rem 0 4rem;">
|
|
<div class="container hero-content">
|
|
<h1>Configuration Guide</h1>
|
|
<p class="subtitle">
|
|
Customize every aspect of DWN to match your workflow and style.
|
|
</p>
|
|
</div>
|
|
</section>
|
|
<section class="section">
|
|
<div class="container">
|
|
<h2>Configuration File</h2>
|
|
<p>
|
|
DWN reads its configuration from <code>~/.config/dwn/config</code> using an INI-style format.
|
|
Changes take effect on restart (or you can reload in a future version).
|
|
</p>
|
|
<div class="alert alert-info">
|
|
<strong class="alert-title">First Run</strong>
|
|
<p style="margin: 0;">DWN creates a default configuration file on first run if one doesn't exist.
|
|
You can also copy the example config from the source repository.</p>
|
|
</div>
|
|
<h2 id="general" style="margin-top: 3rem;">[general] - Core Settings</h2>
|
|
<p style="color: var(--text-muted); margin-bottom: 1.5rem;">
|
|
Basic behavior settings for applications and focus handling.
|
|
</p>
|
|
<div class="table-wrapper">
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Option</th>
|
|
<th>Default</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><code>terminal</code></td>
|
|
<td><code>xfce4-terminal</code></td>
|
|
<td>Terminal emulator launched with Ctrl+Alt+T</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>launcher</code></td>
|
|
<td><code>dmenu_run</code></td>
|
|
<td>Application launcher for Alt+F2</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>file_manager</code></td>
|
|
<td><code>thunar</code></td>
|
|
<td>File manager for Super+E</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>focus_mode</code></td>
|
|
<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>
|
|
<td>Show window title bars and borders</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="code-header">
|
|
<span>Example</span>
|
|
<button class="copy-btn" onclick="copyCode(this)">Copy</button>
|
|
</div>
|
|
<pre><code>[general]
|
|
terminal = alacritty
|
|
launcher = rofi -show run
|
|
file_manager = nautilus
|
|
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;">
|
|
Control the visual appearance of windows, panels, and gaps.
|
|
</p>
|
|
<div class="table-wrapper">
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Option</th>
|
|
<th>Default</th>
|
|
<th>Range</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><code>border_width</code></td>
|
|
<td><code>0</code></td>
|
|
<td>0-50</td>
|
|
<td>Window border width in pixels (0 for seamless design)</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>title_height</code></td>
|
|
<td><code>28</code></td>
|
|
<td>0-100</td>
|
|
<td>Title bar height in pixels</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>panel_height</code></td>
|
|
<td><code>32</code></td>
|
|
<td>0-100</td>
|
|
<td>Top/bottom panel height</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>gap</code></td>
|
|
<td><code>0</code></td>
|
|
<td>0-100</td>
|
|
<td>Gap between tiled windows (0 for edge-to-edge tiling)</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>font</code></td>
|
|
<td><code>fixed</code></td>
|
|
<td>-</td>
|
|
<td>X11 font name for text</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="code-header">
|
|
<span>Example</span>
|
|
<button class="copy-btn" onclick="copyCode(this)">Copy</button>
|
|
</div>
|
|
<pre><code>[appearance]
|
|
border_width = 0
|
|
title_height = 28
|
|
panel_height = 32
|
|
gap = 0
|
|
font = fixed</code></pre>
|
|
<h2 id="layout" style="margin-top: 3rem;">[layout] - Layout Behavior</h2>
|
|
<p style="color: var(--text-muted); margin-bottom: 1.5rem;">
|
|
Configure the default layout mode and tiling parameters.
|
|
</p>
|
|
<div class="table-wrapper">
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Option</th>
|
|
<th>Default</th>
|
|
<th>Range</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><code>default</code></td>
|
|
<td><code>tiling</code></td>
|
|
<td>-</td>
|
|
<td><code>tiling</code>, <code>floating</code>, or <code>monocle</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>master_ratio</code></td>
|
|
<td><code>0.55</code></td>
|
|
<td>0.1-0.9</td>
|
|
<td>Portion of screen for master area</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>master_count</code></td>
|
|
<td><code>1</code></td>
|
|
<td>1-10</td>
|
|
<td>Number of windows in master area</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="code-header">
|
|
<span>Example</span>
|
|
<button class="copy-btn" onclick="copyCode(this)">Copy</button>
|
|
</div>
|
|
<pre><code>[layout]
|
|
default = tiling
|
|
master_ratio = 0.60
|
|
master_count = 1</code></pre>
|
|
<h2 id="panels" style="margin-top: 3rem;">[panels] - Panel Visibility</h2>
|
|
<p style="color: var(--text-muted); margin-bottom: 1.5rem;">
|
|
Control which panels are displayed.
|
|
</p>
|
|
<div class="table-wrapper">
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Option</th>
|
|
<th>Default</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><code>top</code></td>
|
|
<td><code>true</code></td>
|
|
<td>Show top panel (workspaces, taskbar, systray)</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>bottom</code></td>
|
|
<td><code>true</code></td>
|
|
<td>Show bottom panel (clock)</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="code-header">
|
|
<span>Example - Minimal Setup</span>
|
|
<button class="copy-btn" onclick="copyCode(this)">Copy</button>
|
|
</div>
|
|
<pre><code>[panels]
|
|
top = true
|
|
bottom = false</code></pre>
|
|
<h2 id="colors" style="margin-top: 3rem;">[colors] - Color Scheme</h2>
|
|
<p style="color: var(--text-muted); margin-bottom: 1.5rem;">
|
|
Customize all colors using hex format (#RRGGBB).
|
|
</p>
|
|
<div class="table-wrapper">
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Option</th>
|
|
<th>Default</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><code>panel_bg</code></td>
|
|
<td><code>#1a1a2e</code></td>
|
|
<td>Panel background color</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>panel_fg</code></td>
|
|
<td><code>#e0e0e0</code></td>
|
|
<td>Panel text color</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>workspace_active</code></td>
|
|
<td><code>#4a90d9</code></td>
|
|
<td>Active workspace indicator</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>workspace_inactive</code></td>
|
|
<td><code>#3a3a4e</code></td>
|
|
<td>Inactive workspace indicator</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>workspace_urgent</code></td>
|
|
<td><code>#d94a4a</code></td>
|
|
<td>Urgent workspace indicator</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>title_focused_bg</code></td>
|
|
<td><code>#2d3a4a</code></td>
|
|
<td>Focused window title background</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>title_focused_fg</code></td>
|
|
<td><code>#ffffff</code></td>
|
|
<td>Focused window title text</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>title_unfocused_bg</code></td>
|
|
<td><code>#1a1a1a</code></td>
|
|
<td>Unfocused window title background</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>title_unfocused_fg</code></td>
|
|
<td><code>#808080</code></td>
|
|
<td>Unfocused window title text</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>border_focused</code></td>
|
|
<td><code>#4a90d9</code></td>
|
|
<td>Focused window border</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>border_unfocused</code></td>
|
|
<td><code>#333333</code></td>
|
|
<td>Unfocused window border</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>notification_bg</code></td>
|
|
<td><code>#2a2a3e</code></td>
|
|
<td>Notification background</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>notification_fg</code></td>
|
|
<td><code>#ffffff</code></td>
|
|
<td>Notification text</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="code-header">
|
|
<span>Example - Nord Theme</span>
|
|
<button class="copy-btn" onclick="copyCode(this)">Copy</button>
|
|
</div>
|
|
<pre><code>[colors]
|
|
panel_bg = #2e3440
|
|
panel_fg = #eceff4
|
|
workspace_active = #88c0d0
|
|
workspace_inactive = #4c566a
|
|
workspace_urgent = #bf616a
|
|
title_focused_bg = #3b4252
|
|
title_focused_fg = #eceff4
|
|
title_unfocused_bg = #2e3440
|
|
title_unfocused_fg = #4c566a
|
|
border_focused = #88c0d0
|
|
border_unfocused = #3b4252
|
|
notification_bg = #3b4252
|
|
notification_fg = #eceff4</code></pre>
|
|
<h2 id="ai" style="margin-top: 3rem;">[ai] - AI Integration</h2>
|
|
<p style="color: var(--text-muted); margin-bottom: 1.5rem;">
|
|
Configure AI features. See <a href="ai-features.html">AI Features</a> for full setup instructions.
|
|
</p>
|
|
<div class="table-wrapper">
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Option</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><code>model</code></td>
|
|
<td>OpenRouter model ID (e.g., <code>google/gemini-2.0-flash-exp:free</code>)</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>openrouter_api_key</code></td>
|
|
<td>Your OpenRouter API key (or use environment variable)</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>exa_api_key</code></td>
|
|
<td>Your Exa API key (or use environment variable)</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="code-header">
|
|
<span>Example</span>
|
|
<button class="copy-btn" onclick="copyCode(this)">Copy</button>
|
|
</div>
|
|
<pre><code>[ai]
|
|
model = google/gemini-2.0-flash-exp:free
|
|
openrouter_api_key = sk-or-v1-your-key-here
|
|
exa_api_key = your-exa-key-here</code></pre>
|
|
<div class="alert alert-warning" style="margin-top: 1rem;">
|
|
<strong class="alert-title">Security Note</strong>
|
|
<p style="margin: 0;">For better security, use environment variables instead of storing API keys in the config file:
|
|
<code>export OPENROUTER_API_KEY=sk-or-v1-...</code></p>
|
|
</div>
|
|
<h2 id="autostart" style="margin-top: 3rem;">[autostart] - XDG Autostart</h2>
|
|
<p style="color: var(--text-muted); margin-bottom: 1.5rem;">
|
|
Configure automatic application startup. DWN follows the XDG Autostart specification.
|
|
</p>
|
|
<div class="table-wrapper">
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Option</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><code>enabled</code></td>
|
|
<td>Enable/disable all autostart functionality (default: <code>true</code>)</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>xdg_autostart</code></td>
|
|
<td>Scan XDG .desktop files from /etc/xdg/autostart and ~/.config/autostart (default: <code>true</code>)</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>path</code></td>
|
|
<td>Additional directory for symlinks/scripts (default: <code>~/.config/dwn/autostart.d</code>)</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="code-header">
|
|
<span>Example</span>
|
|
<button class="copy-btn" onclick="copyCode(this)">Copy</button>
|
|
</div>
|
|
<pre><code>[autostart]
|
|
enabled = true
|
|
xdg_autostart = true
|
|
path = ~/.config/dwn/autostart.d</code></pre>
|
|
<p style="color: var(--text-muted); margin-top: 1rem;">
|
|
<strong>Directories scanned:</strong>
|
|
</p>
|
|
<ul style="color: var(--text-muted);">
|
|
<li><code>/etc/xdg/autostart/</code> - System defaults (nm-applet, blueman, power-manager)</li>
|
|
<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>
|
|
<button class="copy-btn" onclick="copyCode(this)">Copy</button>
|
|
</div>
|
|
<pre><code># DWN Window Manager Configuration
|
|
# https://dwn.github.io
|
|
[general]
|
|
terminal = alacritty
|
|
launcher = rofi -show drun
|
|
file_manager = thunar
|
|
focus_mode = click
|
|
focus_follow_delay = 100
|
|
decorations = true
|
|
[appearance]
|
|
border_width = 0
|
|
title_height = 28
|
|
panel_height = 32
|
|
gap = 0
|
|
font = fixed
|
|
[layout]
|
|
default = tiling
|
|
master_ratio = 0.55
|
|
master_count = 1
|
|
[panels]
|
|
top = true
|
|
bottom = true
|
|
[colors]
|
|
panel_bg = #1a1a2e
|
|
panel_fg = #e0e0e0
|
|
workspace_active = #4a90d9
|
|
workspace_inactive = #3a3a4e
|
|
workspace_urgent = #d94a4a
|
|
title_focused_bg = #2d3a4a
|
|
title_focused_fg = #ffffff
|
|
title_unfocused_bg = #1a1a1a
|
|
title_unfocused_fg = #808080
|
|
border_focused = #4a90d9
|
|
border_unfocused = #333333
|
|
notification_bg = #2a2a3e
|
|
notification_fg = #ffffff
|
|
[ai]
|
|
model = google/gemini-2.0-flash-exp:free
|
|
# API keys via environment variables recommended
|
|
[autostart]
|
|
enabled = true
|
|
xdg_autostart = true
|
|
path = ~/.config/dwn/autostart.d
|
|
[demo]
|
|
step_delay = 4000
|
|
ai_timeout = 15000
|
|
window_timeout = 5000</code></pre>
|
|
</div>
|
|
</section>
|
|
</main>
|
|
<footer>
|
|
<div class="container">
|
|
<div class="footer-grid">
|
|
<div class="footer-section">
|
|
<h4>DWN Window Manager</h4>
|
|
<p style="color: var(--text-muted);">
|
|
A modern, production-ready X11 window manager with XFCE-like
|
|
functionality and optional AI integration.
|
|
</p>
|
|
</div>
|
|
<div class="footer-section">
|
|
<h4>Documentation</h4>
|
|
<ul>
|
|
<li><a href="documentation.html">Getting Started</a></li>
|
|
<li><a href="shortcuts.html">Keyboard Shortcuts</a></li>
|
|
<li><a href="configuration.html">Configuration</a></li>
|
|
<li><a href="architecture.html">Architecture</a></li>
|
|
<li><a href="design-patterns.html">Design Patterns</a></li>
|
|
</ul>
|
|
</div>
|
|
<div class="footer-section">
|
|
<h4>Resources</h4>
|
|
<ul>
|
|
<li><a href="features.html">Features</a></li>
|
|
<li><a href="installation.html">Installation</a></li>
|
|
<li><a href="ai-features.html">AI Integration</a></li>
|
|
<li><a href="https://retoor.molodetz.nl/retoor/dwn">Git</a></li>
|
|
</ul>
|
|
</div>
|
|
<div class="footer-section">
|
|
<h4>Community</h4>
|
|
<ul>
|
|
<li><a href="https://retoor.molodetz.nl/retoor/dwn/issues">Issue Tracker</a></li>
|
|
<li><a href="https://retoor.molodetz.nl/retoor/dwn/discussions">Discussions</a></li>
|
|
<li><a href="https://retoor.molodetz.nl/retoor/dwn/blob/main/CONTRIBUTING.md">Contributing</a></li>
|
|
<li><a href="https://retoor.molodetz.nl/retoor/dwn/blob/main/LICENSE">License (MIT)</a></li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
<div class="footer-bottom">
|
|
<p>DWN Window Manager by retoor <retoor@molodetz.nl> - MIT License</p>
|
|
</div>
|
|
</div>
|
|
</footer>
|
|
<script src="js/main.js"></script>
|
|
</body>
|
|
</html>
|