|
<!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="Install DWN window manager - step by step guide for Debian, Ubuntu, Fedora, Arch Linux and more.">
|
|
<title>Installation - 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" class="active">Install</a></li>
|
|
<li class="dropdown">
|
|
<a href="documentation.html">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>Installation Guide</h1>
|
|
<p class="subtitle">
|
|
Get DWN running on your system in just a few minutes.
|
|
</p>
|
|
</div>
|
|
</section>
|
|
<section class="section">
|
|
<div class="container">
|
|
<h2>Requirements</h2>
|
|
<p style="color: var(--text-muted); margin-bottom: 2rem;">
|
|
DWN requires X11 and a few common libraries. Most Linux distributions include these by default.
|
|
</p>
|
|
<div class="card">
|
|
<h3>Required Dependencies</h3>
|
|
<div class="table-wrapper" style="margin-top: 1rem;">
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Library</th>
|
|
<th>Purpose</th>
|
|
<th>Package (Debian/Ubuntu)</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>libX11</td>
|
|
<td>X Window System client library</td>
|
|
<td><code>libx11-dev</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>libXext</td>
|
|
<td>X extensions library</td>
|
|
<td><code>libxext-dev</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>libXinerama</td>
|
|
<td>Multi-monitor support</td>
|
|
<td><code>libxinerama-dev</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>libXrandr</td>
|
|
<td>Display configuration</td>
|
|
<td><code>libxrandr-dev</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>libXft</td>
|
|
<td>Font rendering</td>
|
|
<td><code>libxft-dev</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>fontconfig</td>
|
|
<td>Font configuration</td>
|
|
<td><code>libfontconfig1-dev</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>libdbus-1</td>
|
|
<td>D-Bus for notifications</td>
|
|
<td><code>libdbus-1-dev</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>libcurl</td>
|
|
<td>AI features (optional)</td>
|
|
<td><code>libcurl4-openssl-dev</code></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
<section class="section section-alt">
|
|
<div class="container">
|
|
<h2>Quick Installation</h2>
|
|
<p style="color: var(--text-muted); margin-bottom: 2rem;">
|
|
The fastest way to get started. Our build system auto-detects your distribution.
|
|
</p>
|
|
<div class="steps">
|
|
<div class="step">
|
|
<div class="step-number">1</div>
|
|
<div class="step-content">
|
|
<h4>Clone the Repository</h4>
|
|
<p>Download the latest source code from GitHub.</p>
|
|
<div class="code-header">
|
|
<span>Terminal</span>
|
|
<button class="copy-btn" onclick="copyCode(this)">Copy</button>
|
|
</div>
|
|
<pre><code>git clone https://retoor.molodetz.nl/retoor/dwn.git
|
|
cd dwn</code></pre>
|
|
</div>
|
|
</div>
|
|
<div class="step">
|
|
<div class="step-number">2</div>
|
|
<div class="step-content">
|
|
<h4>Install Dependencies</h4>
|
|
<p>Automatically install required packages for your distribution.</p>
|
|
<div class="code-header">
|
|
<span>Terminal</span>
|
|
<button class="copy-btn" onclick="copyCode(this)">Copy</button>
|
|
</div>
|
|
<pre><code>make deps</code></pre>
|
|
<p style="margin-top: 0.5rem; font-size: 0.875rem; color: var(--text-muted);">
|
|
Supports Debian, Ubuntu, Fedora, Arch, openSUSE, and Void Linux.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
<div class="step">
|
|
<div class="step-number">3</div>
|
|
<div class="step-content">
|
|
<h4>Build DWN</h4>
|
|
<p>Compile the window manager with optimizations.</p>
|
|
<div class="code-header">
|
|
<span>Terminal</span>
|
|
<button class="copy-btn" onclick="copyCode(this)">Copy</button>
|
|
</div>
|
|
<pre><code>make</code></pre>
|
|
</div>
|
|
</div>
|
|
<div class="step">
|
|
<div class="step-number">4</div>
|
|
<div class="step-content">
|
|
<h4>Install System-wide</h4>
|
|
<p>Install the binary to your system PATH.</p>
|
|
<div class="code-header">
|
|
<span>Terminal</span>
|
|
<button class="copy-btn" onclick="copyCode(this)">Copy</button>
|
|
</div>
|
|
<pre><code>sudo make install</code></pre>
|
|
<p style="margin-top: 0.5rem; font-size: 0.875rem; color: var(--text-muted);">
|
|
Default location: <code>/usr/local/bin/dwn</code>. Override with <code>PREFIX=/custom/path make install</code>
|
|
</p>
|
|
</div>
|
|
</div>
|
|
<div class="step">
|
|
<div class="step-number">5</div>
|
|
<div class="step-content">
|
|
<h4>Configure Your Session</h4>
|
|
<p>Add DWN to your X session startup.</p>
|
|
<div class="code-header">
|
|
<span>~/.xinitrc</span>
|
|
<button class="copy-btn" onclick="copyCode(this)">Copy</button>
|
|
</div>
|
|
<pre><code>exec dwn</code></pre>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
<section class="section">
|
|
<div class="container">
|
|
<h2>Distribution-Specific Instructions</h2>
|
|
<div class="tabs">
|
|
<button class="tab active" onclick="showTab('debian')">Debian/Ubuntu</button>
|
|
<button class="tab" onclick="showTab('fedora')">Fedora</button>
|
|
<button class="tab" onclick="showTab('arch')">Arch Linux</button>
|
|
<button class="tab" onclick="showTab('void')">Void Linux</button>
|
|
</div>
|
|
<div id="debian" class="tab-content active">
|
|
<h3>Debian / Ubuntu / Linux Mint</h3>
|
|
<div class="code-header">
|
|
<span>Terminal</span>
|
|
<button class="copy-btn" onclick="copyCode(this)">Copy</button>
|
|
</div>
|
|
<pre><code># Install dependencies
|
|
sudo apt update
|
|
sudo apt install -y \
|
|
build-essential \
|
|
libx11-dev \
|
|
libxext-dev \
|
|
libxinerama-dev \
|
|
libxrandr-dev \
|
|
libxft-dev \
|
|
libfontconfig1-dev \
|
|
libdbus-1-dev \
|
|
libcurl4-openssl-dev \
|
|
pkg-config
|
|
# Build and install
|
|
git clone https://retoor.molodetz.nl/retoor/dwn.git
|
|
cd dwn
|
|
make
|
|
sudo make install</code></pre>
|
|
</div>
|
|
<div id="fedora" class="tab-content">
|
|
<h3>Fedora / RHEL / CentOS</h3>
|
|
<div class="code-header">
|
|
<span>Terminal</span>
|
|
<button class="copy-btn" onclick="copyCode(this)">Copy</button>
|
|
</div>
|
|
<pre><code># Install dependencies
|
|
sudo dnf install -y \
|
|
gcc \
|
|
make \
|
|
libX11-devel \
|
|
libXext-devel \
|
|
libXinerama-devel \
|
|
libXrandr-devel \
|
|
libXft-devel \
|
|
fontconfig-devel \
|
|
dbus-devel \
|
|
libcurl-devel \
|
|
pkg-config
|
|
# Build and install
|
|
git clone https://retoor.molodetz.nl/retoor/dwn.git
|
|
cd dwn
|
|
make
|
|
sudo make install</code></pre>
|
|
</div>
|
|
<div id="arch" class="tab-content">
|
|
<h3>Arch Linux / Manjaro</h3>
|
|
<div class="code-header">
|
|
<span>Terminal</span>
|
|
<button class="copy-btn" onclick="copyCode(this)">Copy</button>
|
|
</div>
|
|
<pre><code># Install dependencies
|
|
sudo pacman -S --needed \
|
|
base-devel \
|
|
libx11 \
|
|
libxext \
|
|
libxinerama \
|
|
libxrandr \
|
|
libxft \
|
|
fontconfig \
|
|
dbus \
|
|
curl \
|
|
pkg-config
|
|
# Build and install
|
|
git clone https://retoor.molodetz.nl/retoor/dwn.git
|
|
cd dwn
|
|
make
|
|
sudo make install</code></pre>
|
|
<div class="alert alert-info" style="margin-top: 1rem;">
|
|
<strong>AUR Package</strong>
|
|
<p style="margin: 0;">An AUR package <code>dwn-git</code> may also be available:
|
|
<code>yay -S dwn-git</code></p>
|
|
</div>
|
|
</div>
|
|
<div id="void" class="tab-content">
|
|
<h3>Void Linux</h3>
|
|
<div class="code-header">
|
|
<span>Terminal</span>
|
|
<button class="copy-btn" onclick="copyCode(this)">Copy</button>
|
|
</div>
|
|
<pre><code># Install dependencies
|
|
sudo xbps-install -S \
|
|
base-devel \
|
|
libX11-devel \
|
|
libXext-devel \
|
|
libXinerama-devel \
|
|
libXrandr-devel \
|
|
libXft-devel \
|
|
fontconfig-devel \
|
|
dbus-devel \
|
|
libcurl-devel \
|
|
pkg-config
|
|
# Build and install
|
|
git clone https://retoor.molodetz.nl/retoor/dwn.git
|
|
cd dwn
|
|
make
|
|
sudo make install</code></pre>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
<section class="section section-alt">
|
|
<div class="container">
|
|
<h2>Session Setup</h2>
|
|
<p style="color: var(--text-muted); margin-bottom: 2rem;">
|
|
Configure your display manager or xinit to start DWN.
|
|
</p>
|
|
<div class="features-grid" style="grid-template-columns: repeat(2, 1fr);">
|
|
<div class="card">
|
|
<h3>Using xinit / startx</h3>
|
|
<p>For minimal setups using startx:</p>
|
|
<div class="code-header">
|
|
<span>~/.xinitrc</span>
|
|
<button class="copy-btn" onclick="copyCode(this)">Copy</button>
|
|
</div>
|
|
<pre><code># Optional: set display settings
|
|
xrandr --output DP-1 --mode 2560x1440
|
|
# Optional: set wallpaper
|
|
feh --bg-fill ~/wallpaper.jpg
|
|
# Start DWN
|
|
exec dwn</code></pre>
|
|
<p style="margin-top: 1rem; font-size: 0.875rem; color: var(--text-muted);">
|
|
Then run <code>startx</code> from a TTY.
|
|
</p>
|
|
</div>
|
|
<div class="card">
|
|
<h3>Using a Display Manager</h3>
|
|
<p>Create a desktop entry for GDM, LightDM, etc:</p>
|
|
<div class="code-header">
|
|
<span>/usr/share/xsessions/dwn.desktop</span>
|
|
<button class="copy-btn" onclick="copyCode(this)">Copy</button>
|
|
</div>
|
|
<pre><code>[Desktop Entry]
|
|
Name=DWN
|
|
Comment=DWN Window Manager
|
|
Exec=dwn
|
|
Type=Application
|
|
DesktopNames=DWN</code></pre>
|
|
<p style="margin-top: 1rem; font-size: 0.875rem; color: var(--text-muted);">
|
|
DWN will appear in your display manager's session menu.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
<section class="section">
|
|
<div class="container">
|
|
<h2>Testing in a Nested X Server</h2>
|
|
<p style="color: var(--text-muted); margin-bottom: 2rem;">
|
|
Test DWN without leaving your current session using Xephyr.
|
|
</p>
|
|
<div class="card">
|
|
<h3>Using make run</h3>
|
|
<p>The easiest way to test DWN safely:</p>
|
|
<div class="code-header">
|
|
<span>Terminal</span>
|
|
<button class="copy-btn" onclick="copyCode(this)">Copy</button>
|
|
</div>
|
|
<pre><code># Make sure Xephyr is installed
|
|
# Debian/Ubuntu: sudo apt install xserver-xephyr
|
|
# Fedora: sudo dnf install xorg-x11-server-Xephyr
|
|
# Arch: sudo pacman -S xorg-server-xephyr
|
|
# Run DWN in a nested window
|
|
make run</code></pre>
|
|
<p style="margin-top: 1rem; color: var(--text-muted);">
|
|
This opens a 1280x720 window running DWN. Perfect for experimenting with configuration changes.
|
|
</p>
|
|
</div>
|
|
<div class="card" style="margin-top: 1.5rem;">
|
|
<h3>Manual Xephyr Setup</h3>
|
|
<p>For more control over the test environment:</p>
|
|
<div class="code-header">
|
|
<span>Terminal</span>
|
|
<button class="copy-btn" onclick="copyCode(this)">Copy</button>
|
|
</div>
|
|
<pre><code># Start Xephyr on display :1
|
|
Xephyr :1 -screen 1920x1080 &
|
|
# Run DWN on that display
|
|
DISPLAY=:1 ./dwn
|
|
# Open a terminal in the test environment
|
|
DISPLAY=:1 xterm &</code></pre>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
<section class="section section-alt">
|
|
<div class="container">
|
|
<h2>Post-Installation</h2>
|
|
<div class="steps">
|
|
<div class="step">
|
|
<div class="step-number">1</div>
|
|
<div class="step-content">
|
|
<h4>Create Configuration Directory</h4>
|
|
<p>DWN will create this automatically on first run, but you can set it up in advance:</p>
|
|
<div class="code-header">
|
|
<span>Terminal</span>
|
|
<button class="copy-btn" onclick="copyCode(this)">Copy</button>
|
|
</div>
|
|
<pre><code>mkdir -p ~/.config/dwn</code></pre>
|
|
</div>
|
|
</div>
|
|
<div class="step">
|
|
<div class="step-number">2</div>
|
|
<div class="step-content">
|
|
<h4>Run the Interactive Tutorial</h4>
|
|
<p>Once DWN is running, press <kbd>Super</kbd> + <kbd>T</kbd> to start the built-in tutorial
|
|
that will teach you all the essential shortcuts.</p>
|
|
</div>
|
|
</div>
|
|
<div class="step">
|
|
<div class="step-number">3</div>
|
|
<div class="step-content">
|
|
<h4>View All Shortcuts</h4>
|
|
<p>Press <kbd>Super</kbd> + <kbd>S</kbd> to see a complete list of keyboard shortcuts.</p>
|
|
</div>
|
|
</div>
|
|
<div class="step">
|
|
<div class="step-number">4</div>
|
|
<div class="step-content">
|
|
<h4>Customize Your Setup</h4>
|
|
<p>See the <a href="configuration.html">Configuration Guide</a> to personalize DWN to your liking.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
<section class="section">
|
|
<div class="container">
|
|
<h2>Troubleshooting</h2>
|
|
<div class="faq-item">
|
|
<button class="faq-question" onclick="toggleFaq(this)">
|
|
DWN doesn't start - "cannot open display"
|
|
</button>
|
|
<div class="faq-answer">
|
|
<div class="faq-answer-content">
|
|
<p>This error means DWN can't connect to an X server. Make sure:</p>
|
|
<ul style="padding-left: 1.25rem; margin-top: 0.5rem;">
|
|
<li>You're running from a TTY with <code>startx</code>, not from within another X session</li>
|
|
<li>The DISPLAY environment variable is set correctly</li>
|
|
<li>X server is installed and working (<code>Xorg -configure</code> to test)</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="faq-item">
|
|
<button class="faq-question" onclick="toggleFaq(this)">
|
|
Build fails - "pkg-config: command not found"
|
|
</button>
|
|
<div class="faq-answer">
|
|
<div class="faq-answer-content">
|
|
<p>Install pkg-config for your distribution:</p>
|
|
<pre style="margin-top: 0.5rem;"><code>sudo apt install pkg-config # Debian/Ubuntu
|
|
sudo dnf install pkg-config # Fedora
|
|
sudo pacman -S pkg-config # Arch</code></pre>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="faq-item">
|
|
<button class="faq-question" onclick="toggleFaq(this)">
|
|
Missing header files during build
|
|
</button>
|
|
<div class="faq-answer">
|
|
<div class="faq-answer-content">
|
|
<p>Make sure you have the development packages installed, not just the runtime libraries.
|
|
On Debian/Ubuntu, install packages ending with <code>-dev</code>.
|
|
Run <code>make deps</code> to auto-install everything.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="faq-item">
|
|
<button class="faq-question" onclick="toggleFaq(this)">
|
|
Keyboard shortcuts don't work
|
|
</button>
|
|
<div class="faq-answer">
|
|
<div class="faq-answer-content">
|
|
<p>Check for conflicts with other programs grabbing keys:</p>
|
|
<ul style="padding-left: 1.25rem; margin-top: 0.5rem;">
|
|
<li>Make sure no other window manager is running</li>
|
|
<li>Check if compositor (like picom) is grabbing keys</li>
|
|
<li>Verify keyboard layout is correct with <code>setxkbmap</code></li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="faq-item">
|
|
<button class="faq-question" onclick="toggleFaq(this)">
|
|
Fonts look bad or missing
|
|
</button>
|
|
<div class="faq-answer">
|
|
<div class="faq-answer-content">
|
|
<p>DWN uses Xft for font rendering. Install some good fonts:</p>
|
|
<pre style="margin-top: 0.5rem;"><code>sudo apt install fonts-dejavu fonts-liberation # Debian/Ubuntu
|
|
sudo dnf install dejavu-fonts-all liberation-fonts # Fedora</code></pre>
|
|
<p style="margin-top: 0.5rem;">You can configure the font in <code>~/.config/dwn/config</code>.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
<section class="section section-alt">
|
|
<div class="container" style="text-align: center;">
|
|
<h2>Installation Complete?</h2>
|
|
<p style="color: var(--text-muted); max-width: 500px; margin: 0 auto 2rem;">
|
|
Learn how to use DWN effectively with our documentation.
|
|
</p>
|
|
<div class="hero-buttons" style="justify-content: center;">
|
|
<a href="documentation.html" class="btn btn-primary btn-lg">Getting Started Guide</a>
|
|
<a href="shortcuts.html" class="btn btn-secondary btn-lg">Keyboard Shortcuts</a>
|
|
</div>
|
|
</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>
|