summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaakko Keränen <jaakko.keranen@iki.fi>2020-09-08 14:34:42 +0300
committerJaakko Keränen <jaakko.keranen@iki.fi>2020-09-08 14:34:42 +0300
commita288eb43ed772f7aff5500ca5fc9ba545ab341c4 (patch)
treea2c3fbade9d80d6a3253e999bf24d97d6d2efb73
parent0f05f64bba29ecc5873c1faeb2e4395763ae060d (diff)
Updated "about:help" with more content
-rw-r--r--res/about/help.gmi51
-rw-r--r--src/ui/documentwidget.c5
2 files changed, 49 insertions, 7 deletions
diff --git a/res/about/help.gmi b/res/about/help.gmi
index 9e617015..c8750140 100644
--- a/res/about/help.gmi
+++ b/res/about/help.gmi
@@ -4,17 +4,37 @@
4|___ /~~\ \__> | \ /~~\ | \| \__> |___ 4|___ /~~\ \__> | \ /~~\ | \| \__> |___
5 5
6``` 6```
7# Introduction 7# Help
8 8
9## What is Lagrange 9## What is Lagrange
10 10
11Lagrange is a GUI client for browsing Geminispace. It offers modern conveniences familiar from web browsers, such as smooth scrolling, inline image viewing, multiple tabs, visual themes, Unicode fonts, bookmarks, history, and page outlines. 11Lagrange is a GUI client for browsing Geminispace. It offers modern conveniences familiar from web browsers, such as smooth scrolling, inline image viewing, multiple tabs, visual themes, Unicode fonts, bookmarks, history, and page outlines.
12 12
13Lagrange relies on a minimal set of dependencies. It is written in C and uses SDL for window management and hardware-accelerated graphics. OpenSSL is used for secure communications. 13Like Gemini, Lagrange has been designed with minimalism in mind. It depends on a small number of essential libraries. It is written in C and uses SDL for hardware-accelerated graphics. OpenSSL is used for secure communications.
14 14
15=> https://www.libsdl.org SDL: Simple DirectMedia Layer 15=> https://www.libsdl.org SDL: Simple DirectMedia Layer
16=> https://www.openssl.org OpenSSL: Cryptography and SSL/TLS Toolkit 16=> https://www.openssl.org OpenSSL: Cryptography and SSL/TLS Toolkit
17 17
18### Features
19
20* UI inspired by Safari on macOS
21* Light and dark UI themes
22* Multiple tabs
23* Sidebar for page outline, managing bookmarks and identities, and viewing history
24* Smart suggestions when typing the URL — search bookmarks, history, identities
25* Scaling factor for the UI (for arbitrary monitor DPI)
26* Beautiful typography using Unicode fonts
27* Autogenerated page style and Unicode icon for each Gemini domain
28* Open image links inline on the same page
29* Instant back/forward navigation
30* Smooth scrolling
31* Scaling page content (50%...200%)
32* Select and copy text with the mouse
33* Find text on the page
34* Identity management — create and use TLS client certificates
35* Persistent app state — tabs and history are restored on next run
36* Opening links via keyboard shortcuts
37
18## What is Gemini 38## What is Gemini
19 39
20Gemini is a simple protocol for serving content over the internet. It specifies a Markdown inspired format allowing basic plain text document markup. Compared to HTTP and HTML, Gemini is vastly simpler and easier to work with. 40Gemini is a simple protocol for serving content over the internet. It specifies a Markdown inspired format allowing basic plain text document markup. Compared to HTTP and HTML, Gemini is vastly simpler and easier to work with.
@@ -28,28 +48,47 @@ Modern web browsers are complex beasts. In fact, they are so complex that one ca
28 48
29=> https://win95.ajf.me Windows 95 on DOSBox (using Emscripten) 49=> https://win95.ajf.me Windows 95 on DOSBox (using Emscripten)
30 50
31If one seeks to just read text and view images, this is absurd overkill. While having a universal platform that runs on everything and everywhere is clearly a valuable notion, it comes with a hefty price tag. The software stack towers ever higher, and similarly hardware needs to be ever more powerful and complicated to run it well. But everything happening over the internet doesn't have to be on this behemoth. 51If one seeks to just read text and view images, this is absurd overkill. Having a universal platform that runs everywhere and on everything is clearly a valuable notion, but it comes with a hefty price tag. The software stack towers ever higher, and hardware needs to be ever more powerful and complicated to run it well. However, everything happening over the internet doesn't have to rely on this behemoth.
32 52
33One way to browse Gemini content is via web browser extensions or proxies that translate the content for the web. This may be a sufficient and easy solution for you. However, native clients such as Lagrange also benefit from the simpleness of the protocol and the content. The experience can be optimized, and the software runs well even on simple hardware like the Raspberry Pi. 53One way to browse Gemini content is via web browser extensions or proxies that translate the content for the web. This may be a sufficient and easy solution for you. However, native clients such as Lagrange also benefit from the simpleness of the protocol and the content. The experience can be optimized, and the software runs well even on simple hardware like the Raspberry Pi.
34 54
35# User interface 55# User interface
36 56
57The user interface has been designed to have a feel similar to Safari on macOS.
58
59## URL entry and quick search
60
61The URL input field is in its typical location in the navigation bar. It can be accessed quickly by pressing ${CTRL+}L.
62
63As you enter text, Lagrange starts looking for matches in bookmarks, history, content of cached pages, and identities. Search terms are case insensitive, and if many words are entered, they are all required to appear in the specified order in any matched content. Search of cached pages is limited to the (small-ish) set of pages that Lagrange keeps in memory for back navigation.
64
65## Sidebar
66
37## Navigation 67## Navigation
38 68
69### Opening links using the keyboard
70
39When navigating via keyboard, hold down ${ALT} to see link shortcut keys. Try doing so now and see how the link icon below is replaced with a number. 71When navigating via keyboard, hold down ${ALT} to see link shortcut keys. Try doing so now and see how the link icon below is replaced with a number.
40 72
41=> gemini://gemini.circumlunar.space/ Project Gemini 73=> gemini://gemini.circumlunar.space/ Project Gemini
42 74
43Each visible link on the page gets an alphanumeric shortcut. For example, the first link can be opened by pressing ${ALT+}1. The tenth link is ${ALT+}A. Additionally hold down ${CTRL} to open the link in a new tab. 75Each visible link on the page gets an alphanumeric shortcut. For example, the first link can be opened by pressing ${ALT+}1. The tenth link is ${ALT+}A. Additionally hold down ${CTRL} to open the link in a new tab.
44 76
45### SEomting 77## Bookmarks
46
47## Bookmarking
48 78
49## Managing and using identities 79## Managing and using identities
50 80
51TLS client certificates used to identify you. 81TLS client certificates used to identify you.
52 82
83# Runtime files
84
85* bookmarks.txt
86* idents.binary and idents/
87* prefs.cfg
88* state.binary
89* trusted.txt
90* visited.txt
91
53# Platform-specific instructions 92# Platform-specific instructions
54 93
55# Compiling from source 94# Compiling from source
diff --git a/src/ui/documentwidget.c b/src/ui/documentwidget.c
index 9f45f246..f99280d7 100644
--- a/src/ui/documentwidget.c
+++ b/src/ui/documentwidget.c
@@ -444,7 +444,10 @@ static void updateWindowTitle_DocumentWidget_(const iDocumentWidget *d) {
444 else { 444 else {
445 iUrl parts; 445 iUrl parts;
446 init_Url(&parts, d->mod.url); 446 init_Url(&parts, d->mod.url);
447 if (!isEmpty_Range(&parts.host)) { 447 if (equalCase_Rangecc(parts.scheme, "about")) {
448 pushBackCStr_StringArray(title, "Lagrange");
449 }
450 else if (!isEmpty_Range(&parts.host)) {
448 pushBackRange_StringArray(title, parts.host); 451 pushBackRange_StringArray(title, parts.host);
449 } 452 }
450 } 453 }