Rewrite documentation
Alpine 3.24 Success
Alpine 3.24 Flatpak Success
Arch Linux AUR Success

Also fix sample images, which used wrong ICC profiles,
and add a Czech version.
This commit is contained in:
p
2026-10-02 00:29:04 +02:00
parent 96a97d0493
commit c429334e10
12 changed files with 610 additions and 205 deletions
+14 -11
View File
@@ -861,17 +861,20 @@ endif()
# installed next to the application on each platform.
set(DAWN_HELP_DIR "${PROJECT_BINARY_DIR}/share/doc/dawn")
file(MAKE_DIRECTORY "${DAWN_HELP_DIR}")
configure_file(
"${PROJECT_SOURCE_DIR}/docs/dn.html.in"
"${DAWN_HELP_DIR}/dn.html"
@ONLY)
configure_file(
"${PROJECT_SOURCE_DIR}/docs/stylesheet.css"
"${DAWN_HELP_DIR}/stylesheet.css"
COPYONLY)
set(dawn_help_files
"${DAWN_HELP_DIR}/dn.html"
"${DAWN_HELP_DIR}/stylesheet.css")
foreach (file dn.html dn.cs.html)
configure_file(
"${PROJECT_SOURCE_DIR}/docs/${file}.in"
"${DAWN_HELP_DIR}/${file}"
@ONLY)
list(APPEND dawn_help_files "${DAWN_HELP_DIR}/${file}")
endforeach()
foreach (file stylesheet.css dn.webp p3-srgb-ramps.png)
configure_file(
"${PROJECT_SOURCE_DIR}/docs/${file}"
"${DAWN_HELP_DIR}/${file}"
COPYONLY)
list(APPEND dawn_help_files "${DAWN_HELP_DIR}/${file}")
endforeach()
if (APPLE)
set_source_files_properties(${dawn_help_files}
+14 -15
View File
@@ -2,8 +2,8 @@ Dawn
====
:compact-option:
'Dawn' is a cross-platform colour-managed image browser, with high standards for
fidelity and responsiveness.
'Dawn' is a cross-platform colour-managed image browser, focusing on
image fidelity.
See link:docs/why.adoc[Why you need a better image viewer] if you feel lost.
@@ -13,11 +13,10 @@ Design-wise, the project is an amalgamation of
https://git.janouch.name/p/fiv[older efforts] and
https://git.janouch.name/p/gallery[desires].
Right now, we're in a cleanup/debug phase on our way to the first milestone
and release. Then we'll move on to tackling the next major goals.
and release. Also see link:docs/plan.adoc[Plan], and a detailed
link:docs/rationale.adoc[Rationale]. There is more to come.
The project comes with a maintenance guarantee--it is actively used.
Also see link:docs/plan.adoc[Plan],
and a detailed link:docs/rationale.adoc[Rationale].
Features
--------
@@ -55,7 +54,8 @@ Packages
- Latest https://github.com/pjanx/dawn/releases/download/continuous/Dawn-latest-macOS-arm64.zip[
*unsigned* macOS Apple Silicon bundle] may need
`xattr -r -d com.apple.quarantine ...`. Notarisation costs $99 a year.
`xattr -r -d com.apple.quarantine ...`.
Notarisation would cost us $99 a year.
On Windows, if you run the application with a high integrity level and you
have no true Vulkan backend installed, it may not initialise. Manually rename
@@ -65,19 +65,18 @@ Building
--------
See link:docs/building-from-source.adoc[Building from source].
Configuration
Documentation
-------------
See link:docs/configuring-your-system.adoc[Configuring your system].
If everything goes beautifully, the following test image will exercise your
display's true gamut, and you'll also be able to see the finer steps.
The bottom row should look more like '`linear 188`', not '`128`'
(a popular bug).
Open the user guide by pressing F1 (Linux, Windows) or Command-? (macOS)
in the application. This includes a necessary section on system configuration.
Test image
----------
When zoomed in, you should be able to see the finer steps. When zoomed out,
the bottom row should look more like '`linear 188`', not '`sRGB 128`'.
image::docs/p3-srgb-ramps.png[Test image: 10-bit RGB ramps, scaling test]
Note that 'Dawn' currently implements Bayer dithering for 8-bit swapchains,
which you may need to turn off in settings to observe the difference.
Competition
-----------
The macOS 'Preview.app' is excellent at what it does, if limited in scope:
+1 -1
View File
@@ -91,7 +91,7 @@ ContextMenu::fill_items(Kit &kit, const QUrl &url)
add_apps(handlers.recommended);
add_apps(handlers.fallback);
auto *new_win = add_item_with_mnemonic(N_("Open in New _Window"));
auto *new_win = add_item_with_mnemonic(N_("Open in _New Window"));
new_win->on_click = [this, url](Kit &) {
if (this->host && this->host->new_window)
this->host->new_window(url);
+15 -7
View File
@@ -44,6 +44,7 @@
#include <QInputMethod>
#include <QInputMethodEvent>
#include <QKeyEvent>
#include <QLocale>
#include <QMetaObject>
#include <QMimeData>
#include <QMouseEvent>
@@ -129,17 +130,24 @@ first_dropped_file(const QMimeData *mime)
static QString
help_document_path()
{
const QString app_dir = QCoreApplication::applicationDirPath();
#ifdef Q_OS_WIN
return QDir::cleanPath(QDir(app_dir).absoluteFilePath(
QStringLiteral("share/doc/dawn/dn.html")));
const QString relative = QStringLiteral("/share/doc/dawn");
#elif defined Q_OS_MACOS
return QDir::cleanPath(QDir(app_dir).absoluteFilePath(
QStringLiteral("../Resources/share/doc/dawn/dn.html")));
const QString relative = QStringLiteral("/../Resources/share/doc/dawn");
#else
return QDir::cleanPath(QDir(app_dir).absoluteFilePath(
QStringLiteral("../share/doc/dawn/dn.html")));
const QString relative = QStringLiteral("/../share/doc/dawn");
#endif
const QString dir =
QDir::cleanPath(QCoreApplication::applicationDirPath() + relative);
// Only the most preferred language, so that English doesn't fall through.
// We should really pick this from gettext so that it matches.
const QString language =
QLocale().uiLanguages().value(0).section(u'-', 0, 0);
const QString localised = dir + QStringLiteral("/dn.%1.html").arg(language);
if (QFile::exists(localised))
return localised;
return dir + QStringLiteral("/dn.html");
}
Window::Window(App *app, QWindow *parent) : QWindow(parent), app_(app)
-105
View File
@@ -1,105 +0,0 @@
Configuring your system
=======================
This guide addresses two features of modern monitors that you can exploit:
10-bit colour depth, and non-sRGB gamuts (hopefully wider).
Your system generally does not know the effective gamut of your monitor, so you
must associate it manually, such as with an ICC profile. Popular colour profile
targets are either already stored somewhere on your system, or they can be
downloaded off the Internet. For miserable sub-sRGB laptop screens, check your
manufacturer's download page. Windows may also pull these in automatically.
HDR may not be supported over HDMI or at all. Further, as an example,
my monitor needed to be put specifically in PQ over BT.2020.
macOS
-----
You're probably all set already. Make sure your _Displays_ in _System Settings_
have the right _Colour profile_ assigned.
As a side note, you may want to use the 'Better Display' application to prevent
macOS from using temporal dithering, so that it actually sends 10 bits to
the display.
Windows
-------
You're probably all set already. Make sure your displays in 'colorcpl.exe'
have the right colour profile assigned.
*nix
----
Set up your displays in 'colord', either through GUIs, or through 'colormgr':
```sh
$ colormgr get-profiles --filter 'title,profile-id'
title:Compatible with Adobe RGB (1998)
profile-id:icc-530ed29434cce1d2894fa84f54f47056
...
$ colormgr get-devices-by-kind display
$ colormgr device-add-profile xrandr-Eizo-CS2731-00000000 icc-530ed29434cce1d2894fa84f54f47056
$ colormgr device-make-profile-default xrandr-Eizo-CS2731-00000000 icc-530ed29434cce1d2894fa84f54f47056
```
Alternatively, you can enforce an ICC profile in the settings.
*nix/X11
--------
You may need to set up 'xiccd' to integrate 'colord' into your session.
In particular, if `colormgr get-devices-by-kind display` has returned zilch.
The default on X11 is '`everything overshoots sRGB, unless it does its own
colour management`'. For example, browsers do--configuring those is out
of scope.
While you may get 10-bit colour depth, many applications, such as 'peek'
or modern Firefox versions, will choke on it in wild ways. Nonetheless,
all you need to do is to put the following snippet in
_/etc/X11/xorg.conf.d/30-defaultdepth.conf_ and restart your session:
```
Section "Screen"
Identifier "Default Screen"
Monitor "Configured Monitor"
Device "Configured Video Device"
DefaultDepth 30
EndSection
```
Technically, 'Dawn' also tries to look up '_ICC_PROFILE', if your setup is
based on something other than 'colord'.
*nix/Wayland
------------
You've chosen to go with an experimental system at the edge of usefulness,
though at least it may support HDR. Good luck. (Time of evaluation: 2026/09)
*GNOME Shell:* In _~/.config/monitors.xml_, put the following snippet within
`<monitor>` sections:
```xml
<colormode>sdr-native</colormode>
<maxbpc>10</maxbpc>
```
Temporary setting; it could be worth trying to see if the `-P` option works
to retain it as well:
```sh
gdctl set -L -M DP-1 --color-mode sdr-native
```
The compositor will ignore anything you've configured and read the monitor's
native profile from its EDID. Hopefully, it will be close enough for sRGB
content. 'Dawn' will read the actual profile from 'colord'.
*Sway/wlroots:* In _~/.config/sway/config_, put the following snippet:
```
output DP-1 {
render_bit_depth 10
color_profile icc '/usr/share/color/icc/colord/AdobeRGB1998.icc'
}
```
Everything will be limited to sRGB now, but at least nothing will overshoot it.
+308
View File
@@ -0,0 +1,308 @@
<!DOCTYPE html>
<html lang="cs">
<head>
<meta charset="UTF-8">
<title>Dawn: Uživatelská příručka</title>
<link rel="stylesheet" href="stylesheet.css">
<style>
q:lang(cs):before { content: "„"; }
q:lang(cs):after { content: "“"; }
</style>
</head>
<body>
<h1>Dawn: Uživatelská příručka</h1>
<p class="details">
<span id="author">Autoři Dawn</span><br>
<span id="revnumber">verze @PROJECT_VERSION@, 2026-10-01</span>
<h2>Úvod</h2>
<p><i>Dawn</i> je prohlížeč obrázků se správou barev.
<p>Jeho hlavním účelem je zobrazovat obrázky tak, jak mají být zobrazeny,
a umožnit vám snadno procházet jejich sbírky. Toho dosahuje s přívětivým
rozhraním, které funguje napříč všemi hlavními operačními systémy.
<h2>Přehled</h2>
<p>Aplikace má dva hlavní pohledy: procházení a prohlížení, zde zachycené
v pozadí, respektive v popředí:
<p><img src=dn.webp width=1113 height=983 alt="Snímek obrazovky Dawn" />
<h2>Základní ovládání</h2>
<p>Pro rychlé zorientování se si projděte menu aplikace nebo se řiďte popisky
tlačítek nástrojové lišty. Verze pro macOS používá standardní řádek nabídek.
Na ostatních systémech menu zobrazíte kliknutím na nejlevější tlačítko
nástrojové lišty (takzvaný hamburger) nebo stiskem klávesy <kbd>Alt</kbd>
či <kbd>F10</kbd>. (Kontextová menu se zobrazují pravým kliknutím nebo
stiskem <kbd>Menu</kbd> či <kbd>Shift</kbd>+<kbd>F10</kbd>.)
<p>Při ovládání čistě z klávesnice použijte buď navigaci pomocí
<kbd>Tab</kbd>/<kbd>F6</kbd> nebo navigaci inspirovanou Vimperatorem/Vimiem,
vyvolatelnou klávesou <kbd>F</kbd>: pak napište název štítku,
který chcete aktivovat.
<p>Ovládání myší není v aplikaci samotné plně zdokumentováno, a proto je
popsáno níže.
<h3>Procházení</h3>
<ul>
<li><i>Prostřední tlačítko:</i> otevře položky v nových oknech.
</ul>
<h3>Prohlížení</h3>
<ul>
<li><i>Tažení levým nebo prostředním tlačítkem:</i> posun pohledu.
<li><i>Kolečko myši:</i> přiblížení nebo oddálení.
<li><i>Tažení prostředním tlačítkem s <kbd>Control</kbd>/<kbd>Command</kbd>:</i>
plynulá změna přiblížení.
<li><i>Tažení prostředním tlačítkem s <kbd>Alt</kbd>/<kbd>Option</kbd>:</i>
při odemčeném zobrazení libovolně otáčí obrázek.
</ul>
<h2>Režim procházení</h2>
<p>Procházení je uzpůsobeno obrázovým souborům. V levém postranním panelu se
zobrazuje cesta k aktuálnímu adresáři a všechny jeho přímé podadresáře. Jeho
horní část navíc ukazuje rozpoznané jednotky, váš domovský adresář, váš adresář
<q>obrázky</q> a všechny záložky, které přidáte pomocí kontextového menu.
<p>Hlavní pohled ukazuje jen soubory s obrázky, rozpoznané podle přípony.
Pokud je toto filtrování příliš přísné, vypněte <i>Skrýt nepodporované
soubory</i>.
<h2>Režim prohlížení</h2>
<p>Prohlížení má několik neobvyklých funkcí, které si zaslouží komentář:</p>
<dl>
<dt>Přepínač <i>Správa barev</i>
<dd><p>Je-li vypnutý, <i>Dawn</i> se pokusí dostat obrazová data na vaši
obrazovku přímo, za obejití správy barev. To není vždy možné, například s HDR.
<dt>Přepínač <i>Zpracovávat v kódovaném prostoru</i>
<dd><p>Tímto se přepíná gama-korektní zpracování, které je běžně vypnuté
u průhledných obrázků, kde je rozdíl ve vykreslení výraznější.
Obrázky obvykle s korektním podáním nepočítají.
<dt>Přepínač <i>Prodlevy animací jako v prohlížeči</i>
<dd><p>Webové prohlížeče obvykle prodlužují všechny snímky kratší než
11 milisekund na 100 milisekund. Některé animované obrázky se při vypnuté volbě
přehrávají příliš rychle. Některé se mohou při zapnuté volbě přehrávat
příliš pomalu.
<dt>Informační postranní panel: <i>Zapnout JPEG Quant Smooth</i>
<dd><p>Zapíná výpočetně náročný modul, který při načítání vyhlazuje JPEG
soubory, respektive výrazně omezuje DCT artefakty.
</dl>
<h2>Nastavení systému</h2>
<p>Tato část se věnuje třem vlastnostem moderních monitorů, které můžete
využít: gamuty jiné než sRGB, 10bitová barevná hloubka a vysoký dynamický
rozsah (HDR).
<p>Váš systém obecně nezná skutečný gamut vašeho monitoru, takže jej musíte
přiřadit ručně, například přiřazením ICC profilu. Oblíbené cílové barevné
profily (Adobe RGB, Display P3) jsou buď již někde uloženy ve vašem systému
(liší se), nebo si je můžete stáhnout z Internetu. U obrazovek notebooků
nedosahujících ani sRGB se podívejte na stránku se soubory ke stažení od
vašeho výrobce. Windows je také mohou stahovat automaticky.
<p>10bitové barvy a HDR potřebují podporu vašeho monitoru, kabelu displeje,
grafické karty i operačního systému.
<p>Pro HDR může být nutné přepnout monitor do určitého režimu, typicky PQ
nad BT.2020. Situace s gamutem je zde obrácená: zpracování typicky provádí
monitor. Pokud tedy plánujete používat jen HDR, můžete mnoho zdejších poznámek
přeskočit.
<h3>macOS</h3>
<p>Nejspíše už máte vše nastavené. Ujistěte se, že vaše <i>Monitory</i>
v <i>Nastavení systému</i> mají přiřazen správný <i>Barevný profil</i>.
Apple pro svá vlastní zařízení používá <i>Display P3</i>.
<p>Mimochodem, možná budete chtít použít aplikaci <i>Better Display</i>,
abyste macOS zabránili v používání časového ditheringu a do displeje se tak
skutečně posílalo 10 bitů.
<h3>Windows</h3>
<p>Nejspíše už máte vše nastavené. Ujistěte se, že vaše displeje mají
v <i>colorcpl.exe</i> přiřazen správný barevný profil. HDR je potřeba zapnout
v <i>Nastavení</i> ručně.
<h3>Linux/BSD</h3>
<p>Používáte-li KDE/Plasma/KWin na Waylandu, přiřaďte barevný profil v jeho
<i>Nastavení zobrazení</i>.
<p>Jinak nastavte své displeje v <i>colord</i>, buď přes grafická rozhraní,
nebo přes <i>colormgr</i>. Tento krok je klíčový zejména pro GNOME (Mutter):
<pre>
$ colormgr get-profiles --filter 'title,profile-id'
title:Compatible with Adobe RGB (1998)
profile-id:icc-530ed29434cce1d2894fa84f54f47056
...
$ colormgr get-devices-by-kind display
$ colormgr device-add-profile xrandr-Eizo-CS2731-00000000 icc-530ed29434cce1d2894fa84f54f47056
$ colormgr device-make-profile-default xrandr-Eizo-CS2731-00000000 icc-530ed29434cce1d2894fa84f54f47056
</pre>
<p>V krajním případě můžete ICC profil vynutit v nastaveních <i>Dawn</i>.
<h3>Linux/BSD + X11</h3>
<p>Výchozí stav na X11 je <q>vše podstřeluje/přestřeluje sRGB, pokud si to
správu barev neřeší samo</q>. Když na monitoru volíte jiný gamut, mějte toto
omezení na paměti. Webové prohlížeče by měly být v pořádku, ačkoliv
<i>Firefox</i> může potřebovat nastavit <i>gfx.color_management.mode</i> na 1.
<p>Pokud <code>colormgr get-devices-by-kind display</code> ve vašem sezení nic
nevrací, budete si možná muset nastavit <i>colord-kde</i> nebo <i>xiccd</i>,
aby do sezení <i>colord</i> začlenily. Je-li vaše nastavení založeno na něčem
jiném než <i>colord</i> &ndash; například AgryllCMS/dispwin &ndash; <i>Dawn</i>
se také pokusí vyhledat <i>_ICC_PROFILE</i>.
<p>Ačkoliv je možné získat 10bitovou barevnou hloubku, mnoho aplikací, například
<i>peek</i> nebo moderní verze Firefoxu, si s ní divokými způsoby neporadí.
Každopádně vše, co musíte udělat, je vložit následující úryvek do
<i>/etc/X11/xorg.conf.d/30-defaultdepth.conf</i> a restartovat sezení:
<pre>
Section "Screen"
Identifier "Default Screen"
Monitor "Configured Monitor"
Device "Configured Video Device"
DefaultDepth 30
EndSection
</pre>
<p>X11 vůbec nepodporuje HDR.
<h3>Linux/BSD + Wayland</h3>
<p>Wayland je stále převážně experimentální a na hranici použitelnosti,
i když přinejmenším bitová hloubka a HDR by neměly představovat problém.
<p><b>KDE/Plasma:</b> Toto je doporučený kompozitor, neboť vše můžete nastavit
přímo v jeho poněkud svérázném <i>Nastavení zobrazení</i>.
Barevná hloubka se zdá automaticky vybírat ty vyšší.
<p><b>GNOME Shell:</b> HDR jednoduše zapnete v <i>Displejích</i>.
Aby fungovalo SDR, vložte následující úryvek do <code>&lt;monitor&gt;</code>
sekcí v <i>~/.config/monitors.xml</i>:
<pre>
&lt;colormode&gt;sdr-native&lt;/colormode&gt;
&lt;maxbpc&gt;10&lt;/maxbpc&gt;
</pre>
<p>Dočasné nastavení barevného režimu; volba <code>-P</code> by jej měla
také zachovat:
<pre>
gdctl set -L -M DP-1 --color-mode sdr-native
</pre>
<p>Kompozitor &ndash; Mutter &ndash; bude ignorovat cokoliv, co jste nastavili
ve <i>Správě barev</i>, a místo toho si přečte nativní profil monitoru
po kabelu z jeho EDID. Snad bude dostatečně blízko pro obsah v sRGB.
<i>Dawn</i> si skutečný profil přečte z <i>colord</i>. Je to kompromisní.
<p><b>Sway/wlroots:</b> Aby fungovalo SDR, vložte do
<i>~/.config/sway/config</i> úryvek podobný tomuto:
<pre>
output DP-1 {
render_bit_depth 10
color_profile icc '/usr/share/color/icc/colord/AdobeRGB1998.icc'
}
</pre>
<p>Vše teď bude omezeno na sRGB, ale přinejmenším ho nic nebude přestřelovat.
Mějte na paměti, že správa barev ve Sway založená na ICC profilech používá
vyhledávací tabulku 33<sup>3</sup>, takže pokud je to jen možné, je jednoznačně
lepší ponechat monitor v sRGB.
<h2>Ověření</h2>
<p>Otevřete následující testovací obrázek. Prověří skutečný gamut vašeho
displeje a měli byste na něm také rozeznat jemnější stupně. Spodní řádek by
měl vypadat spíše jako <q>linear 188</q>, ne <q>sRGB 128</q> (což by značilo
škálování v kódovaném prostoru).
<p><a href=p3-srgb-ramps.png><img src=p3-srgb-ramps.png
alt="Testovací obrázek: 10bitové RGB přechody, test škálování" /></a>
<p>Poznámka: <i>Dawn</i> momentálně u 8bitových swapchainů používá Bayerův
dithering, který možná budete muset v nastavení vypnout, abyste na jemnějších
stupních zpozorovali nějaký rozdíl (tedy abyste bitovou hloubku vůbec viděli).
<h2>Náhledy</h2>
<p><i>Dawn</i> vytváří a ukládá vlastní širokoformátové náhledy se správou
barev do:
<ul>
<li><p><b>Linux/BSD:</b> mezipaměti náhledů XDG:
<i>~/.cache/thumbnails/wide-*</i>
<li><p><b>macOS:</b> <i>~/Library/Caches/thumbnails/wide-*</i>
<li><p><b>Windows:</b> <i>%LOCALAPPDATA%\cache\thumbnails\wide-*</i>
</ul>
<p>V některé z příštích verzí budou tyto náhledy zcela nahrazeny.
<h3>Zneplatnění mezipaměti</h3>
<p>Program pomalu hromadí náhledy všech obrázků, které uvidíte.
Abyste odstranili náhledy souborů, které již nelze najít, musíte momentálně
vyvolat zneplatnění náhledů z příkazové řádky:
<ul>
<li>
<p><b>Linux/BSD:</b> Dawn byste měli mít v systémové cestě:
<pre>
dn --invalidate-cache
</pre>
<li>
<p><b>macOS:</b> pro obvyklé umístění:
<pre>
/Applications/Dawn.app/Contents/MacOS/Dawn --invalidate-cache
</pre>
<li>
<p><b>Windows:</b> pro obvyklé umístění:
<pre>
"C:\Program Files\@PROJECT_NAME@ @PROJECT_VERSION@\dn.exe" --invalidate-cache
</pre>
</ul>
<p>Adresáře také můžete jednoduše smazat, nic jiného je nepoužívá.
<h2>Bezztrátový ořezávač JPEG</h2>
<p>Dawn nabízí režim s funkcí bezztrátového ořezávání a otáčení JPEG.
Nabízí jen operace, které nezpůsobí ztrátové překódování obrázku.
Mějte na paměti, že JPEGy mohou obsahovat HDR nebo hloubkové mapy,
které budou odstraněny.
<p>Oblast ořezu ovládáte levým a pravým tlačítkem myši.
Na macOS lze pravé tlačítko simulovat kliknutím levým tlačítkem za stisknuté
klávesy <kbd>Control</kbd>.
<h2>Zdroje</h2>
<p>Domovská stránka projektu je na
<a href=@PROJECT_HOMEPAGE_URL@>@PROJECT_HOMEPAGE_URL@</a>.
<script>
var toc = '', all = document.querySelectorAll('h2')
for (var i = 0; i < all.length; i++) {
var name = all[i].innerHTML.replace(/[^0-9a-z]/ig, '-')
toc += '<li><p><a href="#' + name + '">' + all[i].innerHTML + '</a></li>'
all[i].id = name
all[i].innerHTML = (i + 1) + '. ' + all[i].innerHTML
}
all[0].insertAdjacentHTML('beforebegin',
'<h2>Obsah</h2><ol>' + toc + '</ol>')
</script>
+251 -58
View File
@@ -14,92 +14,285 @@ q:lang(en):after { content: "’"; }
<h1>Dawn: User Guide</h1>
<p class="details">
<span id="author">Přemysl Eric Janouch</span><br>
<span id="email"><a href="mailto:p@janouch.name">p@janouch.name</a></span><br>
<span id="revnumber">version @PROJECT_VERSION@</span>
<span id="author">The Dawn Authors</span><br>
<span id="revnumber">version @PROJECT_VERSION@, 2026-10-01</span>
<h2>Introduction</h2>
<p><i>Dawn</i> is a colour-managed image browser and viewer. This document is
a compact overview of the application as it stands. Press
<kbd>Ctrl</kbd>&#8239;+&#8239;<kbd>?</kbd> in the program for the current
keyboard shortcut list.
<p><i>Dawn</i> is a colour-managed image browser and viewer.
<h2>Controls</h2>
<p>Its main purpose is to show images in the way they were meant to be shown,
and to let you easily navigate collections of them. It does this with
a friendly interface that works across all major operating systems.
<p>Most commands are on the keyboard. <kbd>F1</kbd> opens this guide in your
web browser. <kbd>F10</kbd> opens the menu, <kbd>F6</kbd> moves between
the toolbar, any sidebar, and the main view, and <kbd>F</kbd> shows Vimium-style
hints for on-screen controls.
<h2>Overview</h2>
<p>Mice with dedicated back and forward buttons work as in a web browser.
The pointer wheel zooms in the viewer and scrolls the browser. Left- or
middle-drag pans an image; <kbd>Ctrl</kbd>&#8239;+&#8239;middle-drag zooms;
<kbd>Alt</kbd>&#8239;+&#8239;middle-drag or a pinch gesture rotates.
<p>The application has two main views: the browser and the viewer, pictured here
in the background and foreground respectively:
<p>On a touchscreen, one finger drags: the image pans, the title bar moves the
window, and anywhere else it scrolls. Two fingers pinch to zoom and twist to
rotate.
<p><img src=dn.webp width=1113 height=983 alt="Screenshot of Dawn" />
<h2>Browser</h2>
<h2>Basic Operation</h2>
<p><i>Dawn</i> starts in a directory browser unless you open a file. The left
sidebar lists Computer, Home, Pictures when that folder exists, then
breadcrumbs to the current directory and its children. The toolbar changes
thumbnail size, tiled or grid layout, filename captions, whether unsupported
files are hidden, and the sort order.
<p>To quickly orient yourself, browse the application menu, or follow toolbar
tooltips. The macOS build uses the standard menu bar. On other systems,
the menu is shown by clicking the leftmost toolbar button (so-called hamburger),
or by pressing either the <kbd>Alt</kbd> or the <kbd>F10</kbd> key.
(Context menus are shown on right click, or by pressing either <kbd>Menu</kbd>
or <kbd>Shift</kbd>+<kbd>F10</kbd>.)
<p><kbd>Enter</kbd> opens the selected file in the viewer. Middle-click, or
<kbd>Shift</kbd>&#8239;+&#8239;<kbd>Enter</kbd>, opens a path in a new window.
Right-click a file or the directory for a context menu, including other
applications registered for that type.
<p>For keyboard-only use, either use <kbd>Tab</kbd>/<kbd>F6</kbd>-based
navigation, or the Vimperator/Vimium-inspired hints invokable by
the <kbd>F</kbd> key: type the name of the chip you want to activate.
<p>Dragging a thumbnail, or a sidebar entry, takes the file or the directory
to another application. Hold <kbd>Ctrl</kbd> to copy, <kbd>Shift</kbd> to move,
or both to link, as far as the receiving application allows.
<p>Mouse is not fully documented within the application itself, and therefore
described below.
<h2>Viewer</h2>
<h3>Browser</h3>
<p><kbd>Enter</kbd> returns to the browser. Files are visited in the same order
and with the same filtering as the directory you came from. Double-click the
image to toggle fullscreen.
<ul>
<li><i>Middle click:</i> open items in new windows.
</ul>
<p>Zoom, fit, colour management, smooth scaling, and the transparency
checkerboard are on the toolbar and the View menu. Rotate and mirror are on
the Image menu, together with pages of a multi-page file and frames of an
animation.
<h3>Viewer</h3>
<h2>Information</h2>
<ul>
<li><i>Left or middle button drag:</i> pan the view.
<li><i>Scroll wheel:</i> zoom in or out.
<li><i><kbd>Control</kbd>/<kbd>Command</kbd>+middle button drag:</i>
smooth zoom change.
<li><i><kbd>Alt</kbd>/<kbd>Option</kbd>+middle button drag:</i>
with an unlocked view, rotate the image arbitrarily.
</ul>
<p>Show Information opens a sidebar with the file name, pixel size, a CIE
chromaticity diagram for the current colour space, and any text tags the
decoder exposed.
<h2>Browser Mode</h2>
<p><i>Launch ExifTool</i> runs ExifTool on the open file and opens the report
through your default handler for <code>.txt</code> files. The Windows package
ships ExifTool; elsewhere it must be on the search path.
<p>The browser is specialised for images. The path to the current directory,
and all direct subdirectories are shown in the left sidebar. The upper part
of it additionally shows recognised drives, your home directory,
your <q>pictures</q> directory, and any bookmarks you add using context menus.
<p>The main view only shows image files, as recognised by their file extension.
Turn off <i>Hide Unsupported Files</i> if this file filtering is too strict.
<h2>Viewer Mode</h2>
<p>The viewer has a few unusual features that deserve commentary:</p>
<dl>
<dt><i>Colour management</i> toggle
<dd><p>When disabled, <i>Dawn</i> will try to get pixel data on your screen
directly, bypassing colour management. This is not always possible,
for example in HDR.
<dt><i>Process in Encoded Space</i> toggle
<dd><p>This toggles gamma-correct processing, which is normally off for
transparent images, where the rendering difference is more pronounced.
Images do not typically assume the correct rendition.
<dt><i>Browser-like Animation Delays</i> toggle
<dd><p>Web browsers typically push all frames shorter than 11 milliseconds
to 100 milliseconds. Some animated images play way too fast when this option
is disabled. Some may play too slow if enabled.
<dt>Information sidebar: <i>Enable JPEG Quant Smooth</i>
<dd><p>This enables a computation-intensive plugin that smooths out JPEG files
on load, greatly reducing DCT artefacts.
</dl>
<h2>System Configuration</h2>
<p>This section addresses three features of modern monitors that you can
exploit: non-sRGB gamuts, 10-bit colour depth, and high dynamic range (HDR).
<p>Your system generally does not know the effective gamut of your monitor,
so you must assign it manually, such as by associating the monitor with an ICC
profile. Popular colour profile targets (Adobe RGB, Display P3) are either
already stored somewhere on your system (varies), or they can be downloaded off
the Internet. For sub-sRGB laptop screens, check your manufacturer's download
page. Windows may also pull these in automatically.
<p>10-bit colour and HDR need support from your monitor, your display cable,
your GPU, and your operating system.
<p>For HDR, your monitor may need to be put in a specific mode, typically PQ
over BT.2020. The gamut situation is reversed here: processing is typically
done by the monitor. Therefore, if you only plan to run HDR, you may ignore
a lot of the notes here.
<h3>macOS</h3>
<p>You're probably all set already. Make sure your <i>Displays</i> in <i>System
Settings</i> have the right <i>Colour profile</i> assigned. Apple uses
<i>Display P3</i> for its own devices.
<p>As a side note, you may want to use the <i>Better Display</i> application to
prevent macOS from using temporal dithering, so that it actually sends 10 bits
to the display.
<h3>Windows</h3>
<p>You're probably all set already. Make sure your displays in
<i>colorcpl.exe</i> have the right colour profile assigned. HDR needs to be
turned on in <i>Settings</i> manually.
<h3>Linux/BSD</h3>
<p>If you use KDE/Plasma/KWin on Wayland, assign the colour profile in its
<i>Display Configuration</i>.
<p>Otherwise set up your displays in <i>colord</i>, either through GUIs,
or through <i>colormgr</i>. This step is crucial for GNOME (Mutter):
<pre>
$ colormgr get-profiles --filter 'title,profile-id'
title:Compatible with Adobe RGB (1998)
profile-id:icc-530ed29434cce1d2894fa84f54f47056
...
$ colormgr get-devices-by-kind display
$ colormgr device-add-profile xrandr-Eizo-CS2731-00000000 icc-530ed29434cce1d2894fa84f54f47056
$ colormgr device-make-profile-default xrandr-Eizo-CS2731-00000000 icc-530ed29434cce1d2894fa84f54f47056
</pre>
<p>As a last resort, you can enforce an ICC profile in <i>Dawn</i>'s
own settings.
<h3>Linux/BSD + X11</h3>
<p>The default on X11 is <q>everything undershoots/overshoots sRGB, unless it
does its own colour management</q>. Be mindful of this limitation when
selecting a different gamut on your monitor. Web browsers should be okay,
though <i>Firefox</i> may need to have <i>gfx.color_management.mode</i>
set to 1.
<p>If <code>colormgr get-devices-by-kind display</code> returns nothing within
your session, you may need to set up <i>colord-kde</i> or <i>xiccd</i> to
integrate <i>colord</i> into it. If your setup is based on something other than
<i>colord</i>&mdash;notably AgryllCMS/dispwin&mdash;<i>Dawn</i> also tries to
look up <i>_ICC_PROFILE</i>.
<p>While you may get 10-bit colour depth, many applications, such as <i>peek</i>
or modern Firefox versions, will choke on it in wild ways. Nonetheless,
all you need to do is to put the following snippet in
<i>/etc/X11/xorg.conf.d/30-defaultdepth.conf</i> and restart your session:
<pre>
Section "Screen"
Identifier "Default Screen"
Monitor "Configured Monitor"
Device "Configured Video Device"
DefaultDepth 30
EndSection
</pre>
<p>X11 additionally does not support HDR at all.
<h3>Linux/BSD + Wayland</h3>
<p>Wayland is still largely experimental and at the edge of usefulness,
though at least bit depth and HDR shouldn't pose a problem.
<p><b>KDE/Plasma:</b> This is the recommended compositor, as you can set up
everything directly through its quirky <i>Display Configuration</i>.
Colour depth appears to favour the deep end automatically.
<p><b>GNOME Shell:</b> For HDR, simply enable it in <i>Displays</i>.
For SDR to work, put the following snippet within <code>&lt;monitor&gt;</code>
sections in <i>~/.config/monitors.xml</i>:
<pre>
&lt;colormode&gt;sdr-native&lt;/colormode&gt;
&lt;maxbpc&gt;10&lt;/maxbpc&gt;
</pre>
<p>Temporary setting for just the colour mode; the <code>-P</code> option should
retain it as well:
<pre>
gdctl set -L -M DP-1 --color-mode sdr-native
</pre>
<p>The compositor&mdash;Mutter&mdash;will ignore anything you've configured
in <i>Colour Management</i>, and it will instead read the monitor's native
profile over the cable from its EDID. Hopefully, it will be close enough for
sRGB content. <i>Dawn</i> will read the actual profile from <i>colord</i>.
This is a compromise.
<p><b>Sway/wlroots:</b> For SDR to work, put a snippet similar to the following
in <i>~/.config/sway/config</i>:
<pre>
output DP-1 {
render_bit_depth 10
color_profile icc '/usr/share/color/icc/colord/AdobeRGB1998.icc'
}
</pre>
<p>Everything will be limited to sRGB now, but at least nothing will overshoot
it. Beware that Sway's ICC profile-based colour management is done through
a 33<sup>3</sup> look up table, making it strictly better to keep your monitor
in sRGB if possible.
<h2>Verification</h2>
<p>Open the following test image. It will exercise your display's true gamut,
and you should also be able to see the finer steps. The bottom row should look
more like <q>linear 188</q>, not <q>sRGB 128</q> (which indicates scaling in
encoded space).
<p><a href=p3-srgb-ramps.png><img src=p3-srgb-ramps.png
alt="Test image: 10-bit RGB ramps, scaling test" /></a>
<p>Note that <i>Dawn</i> currently implements Bayer dithering for 8-bit
swapchains, which you may need to turn off in settings in order to observe
any difference in those finer steps (i.e. to see the bit depth at all).
<h2>Thumbnails</h2>
<!-- TODO(p): The path is slightly different on macOS and Windows. -->
<p><i>Dawn</i> produces and stores its own wide-format, colour-managed
thumbnails under:
<p><i>Dawn</i> stores wide, colour-managed thumbnails under the XDG thumbnail
cache, typically <i>~/.cache/thumbnails</i>. To drop entries that no longer
match a file, run:
<ul>
<li><p><b>Linux/BSD:</b> the XDG thumbnail cache:
<i>~/.cache/thumbnails/wide-*</i>
<li><p><b>macOS:</b> <i>~/Library/Caches/thumbnails/wide-*</i>
<li><p><b>Windows:</b> <i>%LOCALAPPDATA%\cache\thumbnails\wide-*</i>
</ul>
<p>These thumbnails will be replaced entirely in a later release.
<h3>Cache Invalidation</h3>
<p>The program slowly accumulates thumbnails of all pictures you see.
Currently, to remove thumbnails for files that can no longer be found,
you need to invoke thumbnail invalidation from the command line:
<ul>
<li>
<p><b>Linux/BSD:</b> you should have Dawn in your system path:
<pre>
dn --invalidate-cache
</pre>
<li>
<p><b>macOS:</b> for the usual location:
<pre>
/Applications/Dawn.app/Contents/MacOS/Dawn --invalidate-cache
</pre>
<li>
<p><b>Windows:</b> for the usual location:
<pre>
"C:\Program Files\@PROJECT_NAME@ @PROJECT_VERSION@\dn.exe" --invalidate-cache
</pre>
</ul>
<h2>Configuration</h2>
<p>You may also simply delete the directories, which are used by nothing else.
<p><i>Dawn</i> uses the display colour profile provided by the operating system:
colord on Linux, the profile assigned in Windows Colour Management, or the
profile on the display in macOS System Settings. Assign the profile that
matches the monitor if colours look wrong.
<h2>Lossless JPEG Cropper</h2>
<p>Per-window View toggles such as Dark Mode and Colour Management apply for
the session. Command-line options are listed by <code>dn --help</code>.
<p>Dawn offers a mode with lossless JPEG cropping and rotating functionality.
It only offers operations which won't cause the image to be reencoded at a loss.
Beware that JPEGs may contain HDR or depth map metadata, which will be stripped.
<p>To control the crop region, use your left and right mouse buttons.
On macOS, the right mouse button can be simulated by holding <kbd>Control</kbd>
while clicking the left mouse button.
<h2>Resources</h2>
<p>The project homepage is at
<a href=@PROJECT_HOMEPAGE_URL@>@PROJECT_HOMEPAGE_URL@</a>.
<script>
var toc = '', all = document.querySelectorAll('h2')
Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 KiB

After

Width:  |  Height:  |  Size: 114 KiB

+4 -3
View File
@@ -2,8 +2,9 @@ body { max-width: 50em; margin: 0 auto 4em auto; padding: 0 2em;
font-family: sans-serif; } h1, h2, h3 { font-weight: normal; }
h1 { font-size: 2.5em; } h2 { font-size: 2em; } h3 { font-size: 1.33em; }
h2 { padding-top: .67em; border-top: 1px solid silver; }
p { line-height: 1.5; } .figure { text-align: center; } img { max-width: 100%; }
q { font-style: normal; } .details { border-bottom: 1px solid silver; }
p, li { line-height: 1.5; } .figure { text-align: center; }
img { max-width: 100%; height: auto; } q { font-style: normal; }
.details br { display: none; } .details br + span:before { content: " — "; }
pre { padding: 0 1em; } kbd { border: solid #ccc; border-radius: .25em;
pre { padding: 0 1em; overflow: auto; }
kbd { border: solid #ccc; border-radius: .25em;
border-width: 1px 2px 2px 1px; padding: 0 .25em; font-family: inherit; }
Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

+1 -1
View File
@@ -418,7 +418,7 @@ msgid "Time"
msgstr "Čas"
#: dn/kit-chrome.cpp:94
msgid "Open in New _Window"
msgid "Open in _New Window"
msgstr "Otevřít v _novém okně"
#: dn/kit-chrome.cpp:100
+2 -4
View File
@@ -184,14 +184,12 @@ create_display_p3_profile(void)
{0.2650, 0.6900, 1.0},
{0.1500, 0.0600, 1.0},
};
const double srgb_parameters[7] = {
const double srgb_parameters[5] = {
2.4,
1.0 / 1.055,
0.055 / 1.055,
0.0,
0.04045,
1.0 / 12.92,
0.0,
0.04045,
};
cmsToneCurve *curves[3] = {NULL, NULL, NULL};
cmsHPROFILE profile = NULL;