[ghex] help: GHex4 mallard rewrite: initial commit



commit 5e970a6c0ac87cfa117407e635d1c527e7a0d045
Author: Logan Rathbone <poprocks gmail com>
Date:   Wed Jan 5 00:39:35 2022 -0500

    help: GHex4 mallard rewrite: initial commit

 help/C/advanced-clipboard.page          | 134 +++++++
 help/C/basics-create-new-file.page      |  24 ++
 help/C/basics-edit-file.page            |  59 +++
 help/C/basics-find-replace.page         |  51 +++
 help/C/basics-open-file.page            |  26 ++
 help/C/basics-save-file.page            |  19 +
 help/C/conf-grouptype.page              |  37 ++
 help/C/conf-preferences.page            |  71 ++++
 help/C/duck/Makefile                    |   7 +
 help/C/duck/README                      |  26 ++
 help/C/duck/advanced-clipboard.duck     | 117 ++++++
 help/C/duck/basics-create-new-file.duck |  17 +
 help/C/duck/basics-edit-file.duck       |  47 +++
 help/C/duck/basics-find-replace.duck    |  52 +++
 help/C/duck/basics-open-file.duck       |  19 +
 help/C/duck/basics-save-file.duck       |  18 +
 help/C/duck/conf-grouptype.duck         |  20 +
 help/C/duck/conf-preferences.duck       |  69 ++++
 help/C/duck/index.duck                  |  33 ++
 help/C/duck/tools-chartable.duck        |  33 ++
 help/C/duck/tools-converter.duck        |  34 ++
 help/C/figures/ghex_window_open.png     | Bin 90291 -> 0 bytes
 help/C/index.docbook                    | 673 --------------------------------
 help/C/index.page                       |  47 +++
 help/C/tools-chartable.page             |  35 ++
 help/C/tools-converter.page             |  30 ++
 help/meson.build                        |  23 +-
 src/ghex-application-window.c           |  17 +-
 src/ghex-application-window.ui.in       |   5 +
 29 files changed, 1060 insertions(+), 683 deletions(-)
---
diff --git a/help/C/advanced-clipboard.page b/help/C/advanced-clipboard.page
new file mode 100644
index 0000000..13c1f25
--- /dev/null
+++ b/help/C/advanced-clipboard.page
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; type="topic" id="advanced-clipboard">
+ <info>
+  <link type="guide" xref="index#advanced"/>
+  <revision version="0.1" date="2022-01-04" status="incomplete"/>
+  <credit type="author copyright">
+   <name>Logan Rathbone</name>
+   <email>poprocks gmail com</email>
+   <years>2022</years>
+  </credit>
+ </info>
+ <title>Clipboard features</title>
+ <p>As copying and pasting hexadecimal values is not a standard operation in most
+ applications, GHex has some unique clipboard features. </p>
+ <section>
+  <title>Basic clipboard operations</title>
+  <p>Generally, when copying and pasting data within GHex, you need not concern
+  yourself with clipboard operations.</p>
+  <p>Copying and pasting within GHex works in the usual way.</p>
+  <p>To cut or copy data, highlight the data you would like to cut or copy, and do
+  any of the following:</p>
+  <list>
+   <item>
+    <p>Right-click anywhere in the hex or ASCII pane to bring up the context menu,
+    and select the appropriate option.</p>
+   </item>
+   <item>
+    <p>To cut, press <keyseq><key>Ctrl</key><key>X</key></keyseq>.</p>
+   </item>
+   <item>
+    <p>To copy, press <keyseq><key>Ctrl</key><key>C</key></keyseq>.</p>
+   </item>
+  </list>
+  <p>To paste data:</p>
+  <list>
+   <item>
+    <p>Right-click to bring up the context menu, and click <gui>Paste</gui>; or</p>
+   </item>
+   <item>
+    <p>Press <keyseq><key>Ctrl</key><key>V</key></keyseq>.</p>
+   </item>
+  </list>
+ </section>
+ <section id="paste-special">
+  <title>Paste Special</title>
+  <p>If you have used other applications, such as text editors or word processors
+  with a Paste Special dialog, you may be familiar with this feature.</p>
+  <p>To activate the Paste Special dialog in GHex:</p>
+  <list>
+   <item>
+    <p>Click <gui>Paste Special</gui> from the <gui>Edit</gui> submenu of the <gui>Main menu</gui>; or</p>
+   </item>
+   <item>
+    <p>Press <keyseq><key>Shift</key><key>Ctrl</key><key>V</key></keyseq>.</p>
+   </item>
+  </list>
+  <p>The options that appear when <gui>Paste Special</gui> is activated are context-dependent.</p>
+  <p>The most common options are described below.</p>
+  <section>
+   <title>GHex Paste Data</title>
+   <p>This option will only appear if your current clipboard selection contains data
+   copied directly from GHex. This represents clipboard data native to GHex, and
+   will be pasted into the application as if you had utilized an ordinary
+   <gui>Paste</gui> operation.</p>
+  </section>
+  <section>
+   <title>Plain text (as ASCII)</title>
+   <p>This allows you to paste the data from the clipboard into the GHex buffer,
+   forcing GHex to assume the pasted data will be plain ASCII text.</p>
+  </section>
+  <section>
+   <title>Plain text (Unicode)</title>
+   <p>This allows you to paste the data from the clipboard into the GHex buffer,
+   forcing GHex to assume the pasted data will be text encoded in UTF-8 format.</p>
+  </section>
+  <section>
+   <title>Plain text (as space-delimited hex pairs)</title>
+   <p>This unique option assumes that GHex can expect to receive plain, ASCII text
+   that is specifically formatted as hex nibble-pairs, separated by a single space
+   each.</p>
+   <p>This allows hexadecimal data to be pasted back into GHex cleanly.</p>
+   <p>For example, if <code>48 45 4C 4C 4F</code> is in the clipboard, selecting this
+   option will implicitly convert this hex sequence to an ASCII character sequence
+   (in this case, "HELLO"), and insert it into the GHex buffer.</p>
+   <p>This option can be combined with <gui>Copy Special</gui> to allow an external text
+   editor of your choice to edit hex data copied from GHex, and paste it back into
+   GHex cleanly.</p>
+  </section>
+ </section>
+ <section>
+  <title>Copy Special</title>
+  <p>Unlike Paste Special, which is a feature present in many ordinary text
+  editors and word processors, Copy Special is a feature that was created
+  specifically for GHex, and thus may not be familiar to many users.</p>
+  <p>Copy Special allows you to copy data <em>from</em> GHex into the format of your
+  choice. You may not need this feature unless you intend to paste data from GHex
+  into other applications, and would like minute control over how that is done.</p>
+  <p>To activate the Copy Special dialog in GHex:</p>
+  <list>
+   <item>
+    <p>Click <gui>Copy Special</gui> from the <gui>Edit</gui> submenu of the <gui>Main menu</gui>; or</p>
+   </item>
+   <item>
+    <p>Press <keyseq><key>Shift</key><key>Ctrl</key><key>C</key></keyseq>.</p>
+   </item>
+  </list>
+  <p>The options that appear when you activate Copy Special are:</p>
+  <list>
+   <item>
+    <p>GHex Paste Data</p>
+   </item>
+   <item>
+    <p>Plain text (as ASCII)</p>
+   </item>
+   <item>
+    <p>Plain text (as space-delimited hex pairs)</p>
+   </item>
+   <item>
+    <p>Plain text (Unicode)</p>
+   </item>
+  </list>
+  <p>These options work as described above in the <link xref="#paste-special"/> section
+  above, but in reverse. In other words, the data copied from GHex <em>to</em> the
+  clipboard will be copied in the specified format.</p>
+  <p>This allows you to have control over how clipboard data copied from GHex will
+  be pasted <em>into</em> other applications.</p>
+  <p>This is mostly intended to allow for space-delimited hex pairs to be edited in
+  third party applications and then pasted back to GHex cleanly. However, there
+  may be other interesting uses for this feature as well. Since GHex, like any
+  hex editor, is often used to edit unusual data types, there may be other times
+  in which it is desirable for the user to have full control over how the data
+  from the buffer is copied to the clipboard.</p>
+ </section>
+</page>
diff --git a/help/C/basics-create-new-file.page b/help/C/basics-create-new-file.page
new file mode 100644
index 0000000..475075d
--- /dev/null
+++ b/help/C/basics-create-new-file.page
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; type="topic" id="basics-create-new-file">
+ <info>
+  <link type="guide" xref="index#basics"/>
+  <revision version="0.1" date="2022-01-04" status="incomplete"/>
+  <credit type="author copyright">
+   <name>Logan Rathbone</name>
+   <email>poprocks gmail com</email>
+   <years>2022</years>
+  </credit>
+ </info>
+ <title>Create a new file</title>
+ <p>In GHex a new file can be created in the following ways:</p>
+ <list>
+  <item>
+   <p>Select <gui>New</gui> from the <gui>Main menu</gui>.</p>
+  </item>
+  <item>
+   <p>Press <keyseq><key>Ctrl</key><key>N</key></keyseq>.</p>
+  </item>
+ </list>
+ <p>When a new file is created, GHex will toggle <gui>Insert Mode</gui> on, so that you
+ may start adding data to your new file right away.</p>
+</page>
diff --git a/help/C/basics-edit-file.page b/help/C/basics-edit-file.page
new file mode 100644
index 0000000..711bcc2
--- /dev/null
+++ b/help/C/basics-edit-file.page
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; type="topic" id="basics-edit-file">
+ <info>
+  <link type="guide" xref="index#basics"/>
+  <revision version="0.1" date="2022-01-04" status="incomplete"/>
+  <credit type="author copyright">
+   <name>Logan Rathbone</name>
+   <email>poprocks gmail com</email>
+   <years>2022</years>
+  </credit>
+ </info>
+ <title>Editing files</title>
+ <section>
+  <title>Toggling the hex or ASCII panes</title>
+  <p>File can be edited in GHex from either the hex pane or the ASCII pane.</p>
+  <p>To focus either pane to accept your keystrokes, you may click on the appropriate pane, or:</p>
+  <list>
+   <item>
+    <p>Press <keyseq><key>Alt</key><key>Left</key></keyseq> to focus the hex pane, and</p>
+   </item>
+   <item>
+    <p>Press <keyseq><key>Alt</key><key>Right</key></keyseq> to focus the ASCII pane.</p>
+   </item>
+  </list>
+  <p>Use any of the following methods to move the cursor around the file:</p>
+  <list>
+   <item>
+    <p>Use the scrollbar on the window and the mouse to select a byte by clicking on it.</p>
+   </item>
+   <item>
+    <p>Use the arrow keys, <key>Home</key>, <key>End</key>, <key>PageUp</key> or <key>PageDown</key> on the 
keyboard.</p>
+   </item>
+   <item>
+    <p>Choose <gui>Jump to Byte</gui> from the (Main menu) or press 
<keyseq><key>Ctrl</key><key>J</key></keyseq>,
+    and enter the cursor offset as a decimal or hexadecimal value.
+    The format of the hexadecimal value must be 0x followed by the offset, for example 0x3.</p>
+   </item>
+  </list>
+ </section>
+ <section>
+  <title>Editing the file using the hex or ASCII pane</title>
+  <p>Edit the ASCII format in the same way you edit a normal text file.</p>
+  <p>To edit the hexadecimal format, use the values 0 to 9 and a to f. This
+  operation is not case-sensitive.</p>
+ </section>
+ <section>
+  <title>Insert mode</title>
+  <p><gui>Insert Mode</gui> can be toggled on or off by pressing <key>Insert</key>, or by
+  clicking the <gui>Toggle insert mode</gui> button in the status bar.</p>
+  <p>When <gui>Insert Mode</gui> is enabled, this means data will be added to the file as
+  opposed to replacing existing data.</p>
+  <p>Unlike traditional text editors, having <gui>Insert Mode</gui> <em>off</em> is
+  considered the default state in GHex, given that hex editors are routinely used
+  to edit existing data in binary files that are very specifically laid out. In
+  some cases, such files may be of a fixed size and increasing or decreasing
+  their size may cause undefined or unwanted behaviour in applications that open
+  them.</p>
+ </section>
+</page>
diff --git a/help/C/basics-find-replace.page b/help/C/basics-find-replace.page
new file mode 100644
index 0000000..6c6b4da
--- /dev/null
+++ b/help/C/basics-find-replace.page
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; type="topic" id="basics-find-replace">
+ <info>
+  <link type="guide" xref="index#basics"/>
+  <revision version="0.1" date="2022-01-04" status="incomplete"/>
+  <credit type="author copyright">
+   <name>Logan Rathbone</name>
+   <email>poprocks gmail com</email>
+   <years>2022</years>
+  </credit>
+ </info>
+ <title>Find and replace</title>
+ <section id="find-pane">
+  <title>Find pane</title>
+  <p>Most basic find operations in GHex can be done by utilizing the <gui>Find</gui> pane.</p>
+  <p>You may toggle the <gui>Find</gui> pane in the following ways:</p>
+  <list>
+   <item>
+    <p>Click the <gui>Find</gui> button on the header bar.</p>
+   </item>
+   <item>
+    <p>Press <keyseq><key>Ctrl</key><key>F</key></keyseq>.</p>
+   </item>
+  </list>
+  <p>In order to easily search for a string in either hex or ASCII format, the
+  <gui>Find</gui> pane acts like a miniature hex editor. You enter this string in the
+  same way you would edit a file as described in the <link xref="basics-edit-file"/>
+  section.</p>
+  <p>To search for the next occurrence of the requested string in the file from the
+  current position of the cursor, click the <gui>Find Next</gui> button.</p>
+  <p>To search for the previous occurrence of the requested string in the file from
+  the current position of the cursor, click the <gui>Find Previous</gui> button.</p>
+  <p>Your search results will also be automatically highlighted in a different color
+  than the standard selection color.</p>
+  <p>You may close the <gui>Find</gui> pane by pressing <key>Esc</key> while it is focused, or
+  by clicking its own <gui>Close</gui> button in the bottom-right-hand corner of the
+  pane.</p>
+ </section>
+ <section>
+  <title>Find and Replace pane</title>
+  <p>The <gui>Find and Replace</gui> pane works a lot like the <gui>Find</gui> pane, except
+  that it also allows you to replace the next string, or all strings in the file,
+  with string in the <gui>Replace With</gui> field.</p>
+  <p>To replace the next string from the cursor in the <gui>Find String</gui> field with
+  the string in the <gui>Replace With</gui> field, click <gui>Replace</gui>.</p>
+  <p>To replace all instances in the file of the string in the <gui>Find String</gui>
+  field with the string in the <gui>Replace With</gui> field, click <gui>Replace All</gui>.</p>
+  <p>In other respects, the <gui>Find and Replace</gui> pane works as described in the
+  <link xref="#find-pane"/> section above.</p>
+ </section>
+</page>
diff --git a/help/C/basics-open-file.page b/help/C/basics-open-file.page
new file mode 100644
index 0000000..b79529e
--- /dev/null
+++ b/help/C/basics-open-file.page
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; type="topic" id="basics-open-file">
+ <info>
+  <link type="guide" xref="index#basics"/>
+  <revision version="0.1" date="2022-01-04" status="incomplete"/>
+  <credit type="author copyright">
+   <name>Logan Rathbone</name>
+   <email>poprocks gmail com</email>
+   <years>2022</years>
+  </credit>
+ </info>
+ <title>Open a file</title>
+ <p>You may open a file in GHex in the following ways:</p>
+ <list>
+  <item>
+   <p>Click the <gui>Open</gui> button on the header bar.</p>
+  </item>
+  <item>
+   <p>Press <keyseq><key>Ctrl</key><key>O</key></keyseq>.</p>
+  </item>
+ </list>
+ <p>When you open a file, GHex will not automatically turn <gui>Insert Mode</gui> on.
+ This is so that data can be immediately edited in place as opposed to inserting
+ data, which will be what most users want to do when first opening a
+ pre-existing file.</p>
+</page>
diff --git a/help/C/basics-save-file.page b/help/C/basics-save-file.page
new file mode 100644
index 0000000..3238bd6
--- /dev/null
+++ b/help/C/basics-save-file.page
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; type="topic" id="basics-save-file">
+ <info>
+  <link type="guide" xref="index#basics"/>
+  <revision version="0.1" date="2022-01-04" status="incomplete"/>
+  <credit type="author copyright">
+   <name>Logan Rathbone</name>
+   <email>poprocks gmail com</email>
+   <years>2022</years>
+  </credit>
+ </info>
+ <title>Saving files</title>
+ <p>To save a file in place, maintaining its filename and location, use the
+ <gui>Save</gui> operation by clicking the <gui>Save</gui> button on the header bar, or by
+ pressing <keyseq><key>Ctrl</key><key>s</key></keyseq>.</p>
+ <p>To save a file to a filename of your choice, use the <gui>Save As</gui> operation by
+ clicking <gui>Save As</gui> in the <gui>Main menu</gui>, or by pressing
+ <keyseq><key>Shift</key><key>Ctrl</key><key>S</key></keyseq>.</p>
+</page>
diff --git a/help/C/conf-grouptype.page b/help/C/conf-grouptype.page
new file mode 100644
index 0000000..b30c27f
--- /dev/null
+++ b/help/C/conf-grouptype.page
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; type="topic" id="conf-grouptype">
+ <info>
+  <link type="guide" xref="index#conf"/>
+  <revision version="0.1" date="2022-01-04" status="incomplete"/>
+  <credit type="author copyright">
+   <name>Logan Rathbone</name>
+   <email>poprocks gmail com</email>
+   <years>2022</years>
+  </credit>
+ </info>
+ <title>Hex data grouping</title>
+ <p>GHex allows data in the hex pane to be grouped in the following ways:</p>
+ <list>
+  <item>
+   <p>Bytes (8-bit) <em>this is the default</em></p>
+  </item>
+  <item>
+   <p>Words (16-bit)</p>
+  </item>
+  <item>
+   <p>Longwords (32-bit)</p>
+  </item>
+  <item>
+   <p>Quadwords (64-bit)</p>
+  </item>
+ </list>
+ <p>This setting may be changed in two ways:</p>
+ <list>
+  <item>
+   <p>From the <gui>Group Data As</gui> submenu of the <gui>Main menu</gui>.</p>
+  </item>
+  <item>
+   <p>From the <link xref="conf-preferences"/> dialog.</p>
+  </item>
+ </list>
+</page>
diff --git a/help/C/conf-preferences.page b/help/C/conf-preferences.page
new file mode 100644
index 0000000..8f09cbd
--- /dev/null
+++ b/help/C/conf-preferences.page
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; type="topic" id="conf-preferences">
+ <info>
+  <link type="guide" xref="index#conf"/>
+  <revision version="0.1" date="2022-01-04" status="incomplete"/>
+  <credit type="author copyright">
+   <name>Logan Rathbone</name>
+   <email>poprocks gmail com</email>
+   <years>2022</years>
+  </credit>
+ </info>
+ <title>Preferences</title>
+ <p>The GHex Preferences dialog is divided into two groups:</p>
+ <list>
+  <item>
+   <p><em>Display</em>, which pertains to what you see on-screen, and;</p>
+  </item>
+  <item>
+   <p><em>Printing</em>, which only affects how hexadecimal files will be printed on
+   paper, if GHex's printing features are utilized.</p>
+  </item>
+ </list>
+ <section>
+  <title>Display</title>
+  <section>
+   <title>Font</title>
+   <p>This allows you to select a font of your choice for the hex/ASCII editor only.</p>
+  </section>
+  <section>
+   <title>Dark Mode</title>
+   <p>This allows you to manually prefer the dark style.</p>
+   <p>By default, the <gui>Use system default</gui> checkbox is enabled, uses your
+   system-wide default for preferring a dark style, which disables the <gui>Dark
+   Mode</gui> switch from being turned on or off.</p>
+   <p>By de-selecting this checkbox, you may toggle the <gui>Dark Mode</gui> switch on or
+   off to manually prefer or not prefer a dark style. Toggling this switch will
+   take immediate effect, so you should be able to see instantaneously which style
+   you prefer for GHex.</p>
+   <p>If you want to go back to the system default, simply check the <gui>User system
+   default</gui> checkbox back on.</p>
+  </section>
+  <section>
+   <title>Hex Group Type</title>
+   <p>This allows you to choose how data will be grouped in the hex pane of the
+   editor.</p>
+   <p>See <link xref="conf-grouptype"/> for more details.</p>
+  </section>
+ </section>
+ <section>
+  <title>Printing</title>
+  <section>
+   <title>Fonts</title>
+   <p>This section allows you to choose the fonts you would like for hex printouts.</p>
+   <p><gui>Data font</gui> will apply to the content of your hex document (ie, hex and
+   ASCII digits).</p>
+   <p><gui>Header font</gui> will apply to the header on your printout, which will show
+   the document title and page number.</p>
+  </section>
+  <section>
+   <title>Shaded rows</title>
+   <p>If <gui>Print alternating shaded rows</gui> is selected, your printout will have
+   alternating rows of your hex and ASCII data printed out with a shaded grey
+   background to make reading each row easier.</p>
+   <p>Please note that this may use more printer ink/toner than leaving it disabled.</p>
+   <p><gui>Span across lines</gui> allows you to customize how many lines will be shaded,
+   followed by not shaded, on a repaeated basis. Again, this is simply for ease of
+   reading. If you want shaded rows but are not sure what to specify here, leaving
+   it as the default, "1", should be fine.</p>
+  </section>
+ </section>
+</page>
diff --git a/help/C/duck/Makefile b/help/C/duck/Makefile
new file mode 100644
index 0000000..e44303e
--- /dev/null
+++ b/help/C/duck/Makefile
@@ -0,0 +1,7 @@
+duck:
+       ducktype *.duck
+
+clean:
+       rm *.page
+
+.PHONY: duck clean
diff --git a/help/C/duck/README b/help/C/duck/README
new file mode 100644
index 0000000..f60b5e8
--- /dev/null
+++ b/help/C/duck/README
@@ -0,0 +1,26 @@
+NOTE ON DUCKTYPE YELP FILES:
+
+Dated: 5 January 2022
+by: Logan Rathbone <poprocks gmail com>
+
+These raw .duck files get converted to standard .page files.
+
+If you have the ``ducktype'' program and all of its dependencies installed
+(via: `pip3 install mallard-ducktype`), you may simply run `make` in this
+directory to build the .page files, and copy them to the `C` directory below.
+
+This should be done after any core help file changes *before* pushing to
+gitlab.
+
+The reason this is done manually here and not as part of every build process,
+is that this ducktype system does not seem to be idiomatic within the GNOME
+ecosystem at this time, or very widely utilized at all. So, I did not want
+this process to blockade people from being able to build GHex with all of its
+help files included as a result of missing some obscure dependencies.
+
+As well, since this ducktype program is not widely adopted, I wouldn't be
+surprised if it went the way of the dodo in the next couple of years, so there
+is no point in putting all kinds of (customized, at that) meson infrastructure
+in place now, only to have to blow it away if ducktype becomes unmaintained.
+If that happens, we'll just quietly delete this directory and start manually
+editing the .page files on a go-forward basis.
diff --git a/help/C/duck/advanced-clipboard.duck b/help/C/duck/advanced-clipboard.duck
new file mode 100644
index 0000000..028b078
--- /dev/null
+++ b/help/C/duck/advanced-clipboard.duck
@@ -0,0 +1,117 @@
+= Clipboard features
+  [topic]
+@link[guide >index#advanced]
+
+@revision[version=0.1 date=2022-01-04 status=incomplete]
+
+@credit[author copyright]
+  @name Logan Rathbone
+  @email poprocks gmail com
+  @years 2022
+
+As copying and pasting hexadecimal values is not a standard operation in most
+applications, GHex has some unique clipboard features. 
+
+== Basic clipboard operations
+
+Generally, when copying and pasting data within GHex, you need not concern
+yourself with clipboard operations.
+
+Copying and pasting within GHex works in the usual way.
+
+To cut or copy data, highlight the data you would like to cut or copy, and do
+any of the following:
+
+* Right-click anywhere in the hex or ASCII pane to bring up the context menu,
+  and select the appropriate option.
+* To cut, press $keyseq($key(Ctrl)$key(X)).
+* To copy, press $keyseq($key(Ctrl)$key(C)).
+
+To paste data:
+
+* Right-click to bring up the context menu, and click $gui(Paste); or
+* Press $keyseq($key(Ctrl)$key(V)).
+
+== Paste Special
+  [#paste-special]
+
+If you have used other applications, such as text editors or word processors
+with a Paste Special dialog, you may be familiar with this feature.
+
+To activate the Paste Special dialog in GHex:
+
+* Click $gui(Paste Special) from the $gui(Edit) submenu of the $gui(Main menu); or
+* Press $keyseq($key(Shift)$key(Ctrl)$key(V)).
+
+The options that appear when $gui(Paste Special) is activated are context-dependent.
+
+The most common options are described below.
+
+=== GHex Paste Data
+
+This option will only appear if your current clipboard selection contains data
+copied directly from GHex. This represents clipboard data native to GHex, and
+will be pasted into the application as if you had utilized an ordinary
+$gui(Paste) operation.
+
+=== Plain text (as ASCII)
+
+This allows you to paste the data from the clipboard into the GHex buffer,
+forcing GHex to assume the pasted data will be plain ASCII text.
+
+=== Plain text (Unicode)
+
+This allows you to paste the data from the clipboard into the GHex buffer,
+forcing GHex to assume the pasted data will be text encoded in UTF-8 format.
+
+=== Plain text (as space-delimited hex pairs)
+
+This unique option assumes that GHex can expect to receive plain, ASCII text
+that is specifically formatted as hex nibble-pairs, separated by a single space
+each.
+
+This allows hexadecimal data to be pasted back into GHex cleanly.
+
+For example, if $code(48 45 4C 4C 4F) is in the clipboard, selecting this
+option will implicitly convert this hex sequence to an ASCII character sequence
+(in this case, "HELLO"), and insert it into the GHex buffer.
+
+This option can be combined with $gui(Copy Special) to allow an external text
+editor of your choice to edit hex data copied from GHex, and paste it back into
+GHex cleanly.
+
+== Copy Special
+
+Unlike Paste Special, which is a feature present in many ordinary text
+editors and word processors, Copy Special is a feature that was created
+specifically for GHex, and thus may not be familiar to many users.
+
+Copy Special allows you to copy data $em(from) GHex into the format of your
+choice. You may not need this feature unless you intend to paste data from GHex
+into other applications, and would like minute control over how that is done.
+
+To activate the Copy Special dialog in GHex:
+
+* Click $gui(Copy Special) from the $gui(Edit) submenu of the $gui(Main menu); or
+* Press $keyseq($key(Shift)$key(Ctrl)$key(C)).
+
+The options that appear when you activate Copy Special are:
+
+* GHex Paste Data
+* Plain text (as ASCII)
+* Plain text (as space-delimited hex pairs)
+* Plain text (Unicode)
+
+These options work as described above in the $link[>#paste-special] section
+above, but in reverse. In other words, the data copied from GHex $em(to) the
+clipboard will be copied in the specified format.
+
+This allows you to have control over how clipboard data copied from GHex will
+be pasted $em(into) other applications.
+
+This is mostly intended to allow for space-delimited hex pairs to be edited in
+third party applications and then pasted back to GHex cleanly. However, there
+may be other interesting uses for this feature as well. Since GHex, like any
+hex editor, is often used to edit unusual data types, there may be other times
+in which it is desirable for the user to have full control over how the data
+from the buffer is copied to the clipboard.
diff --git a/help/C/duck/basics-create-new-file.duck b/help/C/duck/basics-create-new-file.duck
new file mode 100644
index 0000000..31e6825
--- /dev/null
+++ b/help/C/duck/basics-create-new-file.duck
@@ -0,0 +1,17 @@
+= Create a new file
+  [topic]
+@link[guide >index#basics]
+
+@revision[version=0.1 date=2022-01-04 status=incomplete]
+
+@credit[author copyright]
+  @name Logan Rathbone
+  @email poprocks gmail com
+  @years 2022
+
+In GHex a new file can be created in the following ways:
+* Select $gui(New) from the $gui(Main menu).
+* Press $keyseq($key(Ctrl)$key(N)).
+
+When a new file is created, GHex will toggle $gui(Insert Mode) on, so that you
+may start adding data to your new file right away.
diff --git a/help/C/duck/basics-edit-file.duck b/help/C/duck/basics-edit-file.duck
new file mode 100644
index 0000000..8ef84e1
--- /dev/null
+++ b/help/C/duck/basics-edit-file.duck
@@ -0,0 +1,47 @@
+= Editing files
+  [topic]
+@link[guide >index#basics]
+
+@revision[version=0.1 date=2022-01-04 status=incomplete]
+
+@credit[author copyright]
+  @name Logan Rathbone
+  @email poprocks gmail com
+  @years 2022
+
+== Toggling the hex or ASCII panes
+
+File can be edited in GHex from either the hex pane or the ASCII pane.
+
+To focus either pane to accept your keystrokes, you may click on the appropriate pane, or:
+* Press $keyseq($key(Alt)$key(Left)) to focus the hex pane, and
+* Press $keyseq($key(Alt)$key(Right)) to focus the ASCII pane.
+
+Use any of the following methods to move the cursor around the file:
+* Use the scrollbar on the window and the mouse to select a byte by clicking on it.
+* Use the arrow keys, $key(Home), $key(End), $key(PageUp) or $key(PageDown) on the keyboard.
+* Choose $gui(Jump to Byte) from the $(Main menu) or press $keyseq($key(Ctrl)$key(J)),
+  and enter the cursor offset as a decimal or hexadecimal value.
+  The format of the hexadecimal value must be 0x followed by the offset, for example 0x3.
+
+== Editing the file using the hex or ASCII pane
+
+Edit the ASCII format in the same way you edit a normal text file.
+
+To edit the hexadecimal format, use the values 0 to 9 and a to f. This
+operation is not case-sensitive.
+
+== Insert mode
+
+$gui(Insert Mode) can be toggled on or off by pressing $key(Insert), or by
+clicking the $gui(Toggle insert mode) button in the status bar.
+
+When $gui(Insert Mode) is enabled, this means data will be added to the file as
+opposed to replacing existing data.
+
+Unlike traditional text editors, having $gui(Insert Mode) $em(off) is
+considered the default state in GHex, given that hex editors are routinely used
+to edit existing data in binary files that are very specifically laid out. In
+some cases, such files may be of a fixed size and increasing or decreasing
+their size may cause undefined or unwanted behaviour in applications that open
+them.
diff --git a/help/C/duck/basics-find-replace.duck b/help/C/duck/basics-find-replace.duck
new file mode 100644
index 0000000..a0a6b86
--- /dev/null
+++ b/help/C/duck/basics-find-replace.duck
@@ -0,0 +1,52 @@
+= Find and replace
+  [topic]
+@link[guide >index#basics]
+
+@revision[version=0.1 date=2022-01-04 status=incomplete]
+
+@credit[author copyright]
+  @name Logan Rathbone
+  @email poprocks gmail com
+  @years 2022
+
+== Find pane
+  [#find-pane]
+
+Most basic find operations in GHex can be done by utilizing the $gui(Find) pane.
+
+You may toggle the $gui(Find) pane in the following ways:
+* Click the $gui(Find) button on the header bar.
+* Press $keyseq($key(Ctrl)$key(F)).
+
+In order to easily search for a string in either hex or ASCII format, the
+$gui(Find) pane acts like a miniature hex editor. You enter this string in the
+same way you would edit a file as described in the $link[>basics-edit-file]
+section.
+
+To search for the next occurrence of the requested string in the file from the
+current position of the cursor, click the $gui(Find Next) button.
+
+To search for the previous occurrence of the requested string in the file from
+the current position of the cursor, click the $gui(Find Previous) button.
+
+Your search results will also be automatically highlighted in a different color
+than the standard selection color.
+
+You may close the $gui(Find) pane by pressing $key(Esc) while it is focused, or
+by clicking its own $gui(Close) button in the bottom-right-hand corner of the
+pane.
+
+== Find and Replace pane
+
+The $gui(Find and Replace) pane works a lot like the $gui(Find) pane, except
+that it also allows you to replace the next string, or all strings in the file,
+with string in the $gui(Replace With) field.
+
+To replace the next string from the cursor in the $gui(Find String) field with
+the string in the $gui(Replace With) field, click $gui(Replace).
+
+To replace all instances in the file of the string in the $gui(Find String)
+field with the string in the $gui(Replace With) field, click $gui(Replace All).
+
+In other respects, the $gui(Find and Replace) pane works as described in the
+$link[>#find-pane] section above.
diff --git a/help/C/duck/basics-open-file.duck b/help/C/duck/basics-open-file.duck
new file mode 100644
index 0000000..f25b359
--- /dev/null
+++ b/help/C/duck/basics-open-file.duck
@@ -0,0 +1,19 @@
+= Open a file
+  [topic]
+@link[guide >index#basics]
+
+@revision[version=0.1 date=2022-01-04 status=incomplete]
+
+@credit[author copyright]
+  @name Logan Rathbone
+  @email poprocks gmail com
+  @years 2022
+
+You may open a file in GHex in the following ways:
+* Click the $gui(Open) button on the header bar.
+* Press $keyseq($key(Ctrl)$key(O)).
+
+When you open a file, GHex will not automatically turn $gui(Insert Mode) on.
+This is so that data can be immediately edited in place as opposed to inserting
+data, which will be what most users want to do when first opening a
+pre-existing file.
diff --git a/help/C/duck/basics-save-file.duck b/help/C/duck/basics-save-file.duck
new file mode 100644
index 0000000..fa497d2
--- /dev/null
+++ b/help/C/duck/basics-save-file.duck
@@ -0,0 +1,18 @@
+= Saving files
+  [topic]
+@link[guide >index#basics]
+
+@revision[version=0.1 date=2022-01-04 status=incomplete]
+
+@credit[author copyright]
+  @name Logan Rathbone
+  @email poprocks gmail com
+  @years 2022
+
+To save a file in place, maintaining its filename and location, use the
+$gui(Save) operation by clicking the $gui(Save) button on the header bar, or by
+pressing $keyseq($key(Ctrl)$key(s)).
+
+To save a file to a filename of your choice, use the $gui(Save As) operation by
+clicking $gui(Save As) in the $gui(Main menu), or by pressing
+$keyseq($key(Shift)$key(Ctrl)$key(S)).
diff --git a/help/C/duck/conf-grouptype.duck b/help/C/duck/conf-grouptype.duck
new file mode 100644
index 0000000..ee91dc5
--- /dev/null
+++ b/help/C/duck/conf-grouptype.duck
@@ -0,0 +1,20 @@
+= Hex data grouping
+  [topic]
+@link[guide >index#conf]
+
+@revision[version=0.1 date=2022-01-04 status=incomplete]
+
+@credit[author copyright]
+  @name Logan Rathbone
+  @email poprocks gmail com
+  @years 2022
+
+GHex allows data in the hex pane to be grouped in the following ways:
+* Bytes (8-bit) $em(this is the default)
+* Words (16-bit)
+* Longwords (32-bit)
+* Quadwords (64-bit)
+
+This setting may be changed in two ways:
+* From the $gui(Group Data As) submenu of the $gui(Main menu).
+* From the $link[>conf-preferences] dialog.
diff --git a/help/C/duck/conf-preferences.duck b/help/C/duck/conf-preferences.duck
new file mode 100644
index 0000000..cebd131
--- /dev/null
+++ b/help/C/duck/conf-preferences.duck
@@ -0,0 +1,69 @@
+= Preferences
+  [topic]
+@link[guide >index#conf]
+
+@revision[version=0.1 date=2022-01-04 status=incomplete]
+
+@credit[author copyright]
+  @name Logan Rathbone
+  @email poprocks gmail com
+  @years 2022
+
+The GHex Preferences dialog is divided into two groups:
+* $em(Display), which pertains to what you see on-screen, and;
+* $em(Printing), which only affects how hexadecimal files will be printed on
+  paper, if GHex's printing features are utilized.
+
+== Display
+
+=== Font
+
+This allows you to select a font of your choice for the hex/ASCII editor only.
+
+=== Dark Mode
+
+This allows you to manually prefer the dark style.
+
+By default, the $gui(Use system default) checkbox is enabled, uses your
+system-wide default for preferring a dark style, which disables the $gui(Dark
+Mode) switch from being turned on or off.
+
+By de-selecting this checkbox, you may toggle the $gui(Dark Mode) switch on or
+off to manually prefer or not prefer a dark style. Toggling this switch will
+take immediate effect, so you should be able to see instantaneously which style
+you prefer for GHex.
+
+If you want to go back to the system default, simply check the $gui(User system
+default) checkbox back on.
+
+=== Hex Group Type
+
+This allows you to choose how data will be grouped in the hex pane of the
+editor.
+
+See $link[>conf-grouptype] for more details.
+
+== Printing
+
+=== Fonts
+
+This section allows you to choose the fonts you would like for hex printouts.
+
+$gui(Data font) will apply to the content of your hex document (ie, hex and
+ASCII digits).
+
+$gui(Header font) will apply to the header on your printout, which will show
+the document title and page number.
+
+=== Shaded rows
+
+If $gui(Print alternating shaded rows) is selected, your printout will have
+alternating rows of your hex and ASCII data printed out with a shaded grey
+background to make reading each row easier.
+
+Please note that this may use more printer ink/toner than leaving it disabled.
+
+$gui(Span across lines) allows you to customize how many lines will be shaded,
+followed by not shaded, on a repaeated basis. Again, this is simply for ease of
+reading. If you want shaded rows but are not sure what to specify here, leaving
+it as the default, "1", should be fine.
diff --git a/help/C/duck/index.duck b/help/C/duck/index.duck
new file mode 100644
index 0000000..98254a8
--- /dev/null
+++ b/help/C/duck/index.duck
@@ -0,0 +1,33 @@
+= GHex Help
+  [guide]
+
+@revision[version=0.1 date=2022-01-04 status=incomplete]
+
+@credit[author copyright]
+  @name Logan Rathbone
+  @email poprocks gmail com
+  @years 2022
+
+@include[href=legal.xml xmlns=http://www.w3.org/2001/XInclude]
+
+GHex is a simple hex editor.
+
+GHex enables you to perform the following actions:
+* View a file in ASCII or hexadecimal format simultaneously. 
+* Edit a file in either ASCII or hexadecimal format.
+
+== Basics
+   [#basics]
+@links[topic]
+
+== Tools
+   [#tools]
+@links[topic]
+
+== Configuration
+  [#conf]
+@links[topic]
+
+== Advanced topics
+  [#advanced]
+@links[topic]
diff --git a/help/C/duck/tools-chartable.duck b/help/C/duck/tools-chartable.duck
new file mode 100644
index 0000000..45b798e
--- /dev/null
+++ b/help/C/duck/tools-chartable.duck
@@ -0,0 +1,33 @@
+= Character table
+  [topic]
+@link[guide >index#tools]
+
+@revision[version=0.1 date=2022-01-04 status=incomplete]
+
+@credit[author copyright]
+  @name Logan Rathbone
+  @email poprocks gmail com
+  @years 2022
+
+GHex includes a handy table of many standard ASCII characters so as to allow
+you to easily insert such characters into a file without having to memorize its
+decimal or hexidecimal character code.
+
+You may access the character table by selecting $gui(Character Table) from the
+$gui(Tools) submenu of the $gui(Main menu).
+
+While the character table is open, you may still select the hex editor and move
+the cursor around, as per usual.
+
+The columns showing the values in various formats such as ASCII, hex, decimal,
+etc., are for ease of reference.
+
+The characters in the table can be navigated by clicking on them, or using the
+keyboard, in the usual way. When you have highlighted a character you would
+like to insert, you may insert that character into the file at the cursor
+position in the following ways:
+
+* Press $key(Enter) or double-click on the character you would like to insert.
+* Click the $gui(Insert Character) button.
+
+The character table can be closed by clicking the $gui(Close) button.
diff --git a/help/C/duck/tools-converter.duck b/help/C/duck/tools-converter.duck
new file mode 100644
index 0000000..49d5f2e
--- /dev/null
+++ b/help/C/duck/tools-converter.duck
@@ -0,0 +1,34 @@
+= Base converter
+  [topic]
+@link[guide >index#tools]
+
+@revision[version=0.1 date=2022-01-04 status=incomplete]
+
+@credit[author copyright]
+  @name Logan Rathbone
+  @email poprocks gmail com
+  @years 2022
+
+GHex includes a base converter tool which can either be used as a standalone
+tool to convert values from one format to another, or to obtain the value
+pointed to by the cursor and to convert that value into various formats.
+
+You may access the base converter by selecting $gui(Base Converter) from the
+$gui(Tools) submenu of the $gui(Main menu).
+
+While the base converter is open, you may still select the hex editor and move
+the cursor around, as per usual.
+
+To convert the value at the cursor position, click the $gui(Get cursor value)
+button.
+
+To convert a value manually, you may type it into any of the fields in the
+format delimited therein (clearing any pre-existing value as necessary), and
+press $key(Enter).
+
+If you have entered an invalid value, "ERROR" will appear in the field. This
+error is not fatal and just indicates that an unrecognized value was entered.
+Simply enter a valid value, or click $gui(Get cursor value) to grab the cursor
+value and to get some examples of valid values, and try again.
+
+The base converter can be closed by clicking the $gui(Close) button.
diff --git a/help/C/index.page b/help/C/index.page
new file mode 100644
index 0000000..5f3cba5
--- /dev/null
+++ b/help/C/index.page
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; type="guide" id="index">
+ <info>
+  <revision version="0.1" date="2022-01-04" status="incomplete"/>
+  <credit type="author copyright">
+   <name>Logan Rathbone</name>
+   <email>poprocks gmail com</email>
+   <years>2022</years>
+  </credit>
+  <include href="legal.xml" xmlns="http://www.w3.org/2001/XInclude"/>
+ </info>
+ <title>GHex Help</title>
+ <p>GHex is a simple hex editor.</p>
+ <p>GHex enables you to perform the following actions:</p>
+ <list>
+  <item>
+   <p>View a file in ASCII or hexadecimal format simultaneously. </p>
+  </item>
+  <item>
+   <p>Edit a file in either ASCII or hexadecimal format.</p>
+  </item>
+ </list>
+ <section id="basics">
+  <info>
+   <links type="topic"/>
+  </info>
+  <title>Basics</title>
+ </section>
+ <section id="tools">
+  <info>
+   <links type="topic"/>
+  </info>
+  <title>Tools</title>
+ </section>
+ <section id="conf">
+  <info>
+   <links type="topic"/>
+  </info>
+  <title>Configuration</title>
+ </section>
+ <section id="advanced">
+  <info>
+   <links type="topic"/>
+  </info>
+  <title>Advanced topics</title>
+ </section>
+</page>
diff --git a/help/C/tools-chartable.page b/help/C/tools-chartable.page
new file mode 100644
index 0000000..a094099
--- /dev/null
+++ b/help/C/tools-chartable.page
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; type="topic" id="tools-chartable">
+ <info>
+  <link type="guide" xref="index#tools"/>
+  <revision version="0.1" date="2022-01-04" status="incomplete"/>
+  <credit type="author copyright">
+   <name>Logan Rathbone</name>
+   <email>poprocks gmail com</email>
+   <years>2022</years>
+  </credit>
+ </info>
+ <title>Character table</title>
+ <p>GHex includes a handy table of many standard ASCII characters so as to allow
+ you to easily insert such characters into a file without having to memorize its
+ decimal or hexidecimal character code.</p>
+ <p>You may access the character table by selecting <gui>Character Table</gui> from the
+ <gui>Tools</gui> submenu of the <gui>Main menu</gui>.</p>
+ <p>While the character table is open, you may still select the hex editor and move
+ the cursor around, as per usual.</p>
+ <p>The columns showing the values in various formats such as ASCII, hex, decimal,
+ etc., are for ease of reference.</p>
+ <p>The characters in the table can be navigated by clicking on them, or using the
+ keyboard, in the usual way. When you have highlighted a character you would
+ like to insert, you may insert that character into the file at the cursor
+ position in the following ways:</p>
+ <list>
+  <item>
+   <p>Press <key>Enter</key> or double-click on the character you would like to insert.</p>
+  </item>
+  <item>
+   <p>Click the <gui>Insert Character</gui> button.</p>
+  </item>
+ </list>
+ <p>The character table can be closed by clicking the <gui>Close</gui> button.</p>
+</page>
diff --git a/help/C/tools-converter.page b/help/C/tools-converter.page
new file mode 100644
index 0000000..57b1cd7
--- /dev/null
+++ b/help/C/tools-converter.page
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; type="topic" id="tools-converter">
+ <info>
+  <link type="guide" xref="index#tools"/>
+  <revision version="0.1" date="2022-01-04" status="incomplete"/>
+  <credit type="author copyright">
+   <name>Logan Rathbone</name>
+   <email>poprocks gmail com</email>
+   <years>2022</years>
+  </credit>
+ </info>
+ <title>Base converter</title>
+ <p>GHex includes a base converter tool which can either be used as a standalone
+ tool to convert values from one format to another, or to obtain the value
+ pointed to by the cursor and to convert that value into various formats.</p>
+ <p>You may access the base converter by selecting <gui>Base Converter</gui> from the
+ <gui>Tools</gui> submenu of the <gui>Main menu</gui>.</p>
+ <p>While the base converter is open, you may still select the hex editor and move
+ the cursor around, as per usual.</p>
+ <p>To convert the value at the cursor position, click the <gui>Get cursor value</gui>
+ button.</p>
+ <p>To convert a value manually, you may type it into any of the fields in the
+ format delimited therein (clearing any pre-existing value as necessary), and
+ press <key>Enter</key>.</p>
+ <p>If you have entered an invalid value, "ERROR" will appear in the field. This
+ error is not fatal and just indicates that an unrecognized value was entered.
+ Simply enter a valid value, or click <gui>Get cursor value</gui> to grab the cursor
+ value and to get some examples of valid values, and try again.</p>
+ <p>The base converter can be closed by clicking the <gui>Close</gui> button.</p>
+</page>
diff --git a/help/meson.build b/help/meson.build
index e7505a8..ac26227 100644
--- a/help/meson.build
+++ b/help/meson.build
@@ -1,15 +1,22 @@
+#(cd C; for i in *.{page,xml}; do echo "  '$i',"; done;)
 help_pages = [
-  'index.docbook',
-  'legal.xml'
-]
-
-help_media = [
-  'figures/ghex_window_open.png'
+  'advanced-clipboard.page',
+  'basics-create-new-file.page',
+  'basics-edit-file.page',
+  'basics-find-replace.page',
+  'basics-open-file.page',
+  'basics-save-file.page',
+  'conf-grouptype.page',
+  'conf-preferences.page',
+  'index.page',
+  'tools-chartable.page',
+  'tools-converter.page',
+  'legal.xml',
 ]
 
 gnome.yelp(
   meson.project_name(),
   sources: help_pages,
-  media: help_media,
-  symlink_media: false
 )
+
+# TODO: figures
diff --git a/src/ghex-application-window.c b/src/ghex-application-window.c
index 5efa7a0..997be95 100644
--- a/src/ghex-application-window.c
+++ b/src/ghex-application-window.c
@@ -1295,6 +1295,15 @@ toggle_conversions (GtkWidget *widget,
        }
 }
 
+static void
+open_help (GtkWidget *widget,
+               const char *action_name,
+               GVariant *parameter)
+{
+       GHexApplicationWindow *self = GHEX_APPLICATION_WINDOW(widget);
+
+       gtk_show_uri (GTK_WINDOW (self), "help:" PACKAGE_NAME, GDK_CURRENT_TIME);
+}
 
 static void
 open_about (GtkWidget *widget,
@@ -1744,6 +1753,10 @@ ghex_application_window_class_init(GHexApplicationWindowClass *klass)
                        NULL,   /* GVariant string param_type */
                        open_preferences);
 
+       gtk_widget_class_install_action (widget_class, "ghex.help",
+                       NULL,   /* GVariant string param_type */
+                       open_help);
+
        gtk_widget_class_install_action (widget_class, "ghex.about",
                        NULL,   /* GVariant string param_type */
                        open_about);
@@ -1770,11 +1783,11 @@ ghex_application_window_class_init(GHexApplicationWindowClass *klass)
 
        /* ensure these are synced with help-overlay.ui */
 
-       /* F1 - show about dialog */
+       /* F1 - show help */
        gtk_widget_class_add_binding_action (widget_class,
                        GDK_KEY_F1,
                        0,
-                       "ghex.about",
+                       "ghex.help",
                        NULL);  /* no args. */
 
        /* Insert - toggle insert mode */
diff --git a/src/ghex-application-window.ui.in b/src/ghex-application-window.ui.in
index 301ad07..092228f 100644
--- a/src/ghex-application-window.ui.in
+++ b/src/ghex-application-window.ui.in
@@ -132,6 +132,11 @@
                                <attribute name="action">ghex.preferences</attribute>
                        </item>
 
+                       <item>
+                               <attribute name="label" translatable="yes">_Help</attribute>
+                               <attribute name="action">ghex.help</attribute>
+                       </item>
+
                        <item>
                                <attribute name="label" translatable="yes">_About GHex</attribute>
                                <attribute name="action">ghex.about</attribute>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]