diff options
-rw-r--r-- | docs/fiv.adoc | 37 | ||||
-rw-r--r-- | docs/fiv.html | 37 | ||||
-rw-r--r-- | docs/stylesheet.css | 3 | ||||
-rw-r--r-- | fiv.c | 42 |
4 files changed, 71 insertions, 48 deletions
diff --git a/docs/fiv.adoc b/docs/fiv.adoc index f7f992e..5285d5d 100644 --- a/docs/fiv.adoc +++ b/docs/fiv.adoc @@ -26,6 +26,15 @@ the _User Guide_. Options ------- +*--browse*:: + When an image is passed, start in browsing mode, and preselect that + image in its containing directory. This is used by *fiv*'s inode/directory + handler to implement the "Open Containing Folder" feature of certain + applications. + +*--help-all*:: + Show the full list of options, including those provided by GTK+. + *--invalidate-cache*:: Invalidate the wide thumbnail cache, removing thumbnails for files that can no longer be found. @@ -35,18 +44,11 @@ Options the list of MIME types within *fiv*'s desktop file when the list of GdkPixbuf loaders changes. -*--browse*:: - When an image is passed, start in browsing mode, and preselect that - image in its containing directory. This is used by *fiv*'s inode/directory - handler to implement the "Open Containing Folder" feature of certain - applications. - -*--thumbnail*=_SIZE_:: - Generate thumbnails for the first argument, in all sizes not exceeding - _SIZE_, and present the largest of them on the standard output - in an application-specific bitmap format. Available sizes follow directory - names in the _Thumbnail Managing Standard_. +*-V*, *--version*:: + Output version information and exit. +Internal options +~~~~~~~~~~~~~~~~ *--extract-thumbnail*:: Present any embedded thumbnail of the first argument on the standard output in an application-specific bitmap format. When both *--thumbnail* @@ -54,11 +56,16 @@ Options exiting early if successful. This is used to enhance responsivity of thumbnail procurement. -*-V*, *--version*:: - Output version information and exit. +*--thumbnail*=_SIZE_:: + Generate wide thumbnails for the first argument, in all sizes not exceeding + _SIZE_, and present the largest of them on the standard output + in an application-specific bitmap format. Available sizes follow directory + names in the _Thumbnail Managing Standard_. -*--help-all*:: - Show the full list of options, including those provided by GTK+. +*--thumbnail-for-search*=_SIZE_:: + Transform the first argument to a widely supported image file format, + and present it on the standard output. The image will be downscaled as + necessary so as to not exceed _SIZE_ (see *--thumbnail*). Reporting bugs -------------- diff --git a/docs/fiv.html b/docs/fiv.html index 5a9b918..72b1963 100644 --- a/docs/fiv.html +++ b/docs/fiv.html @@ -17,9 +17,9 @@ q:lang(en):after { content: "’"; } <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 0.0.0,</span> -<span id="revdate">2022-07-31</span> +<span id="revdate">2023-04-17</span> -<p class="figure"><img src="fiv.webp" alt="fiv's browser and viewer"> +<p class="figure"><img src="fiv.webp" alt="fiv in browser and viewer modes"> <h2>Introduction</h2> @@ -33,30 +33,31 @@ and page up/down buttons in mind, such as SteelSeries Sensei series. Ozone Neon series may also be mapped this way. Your experience may be degraded with other kinds of devices. -<p>Controls should generally be accessible through the keyboard. Pressing Ctrl+? -will give you a convenient overview of all shortcuts. In addition to these, -remember that you may often use Ctrl+Tab and F6 to navigate to different groups -of widgets. +<p>Controls should generally be accessible through the keyboard. Pressing +<kbd>Ctrl</kbd> + <kbd>?</kbd> will give you a convenient overview +of all shortcuts. In addition to these, remember that you may often use +<kbd>Ctrl</kbd> + <kbd>Tab</kbd> and <kbd>F6</kbd> to navigate to +different groups of widgets. <h2>Browser</h2> <p><i>fiv</i> normally starts in a file browser view. On the left side of the window, you'll find your GTK+ bookmarks, mounted locations as recognized by -GVfs, an item for entering arbitrary filesystem paths or URIs, view controls, -and finally breadcrumbs leading to the currently opened directory, as well as -its descendants. +GVfs, an item for entering arbitrary filesystem paths or URIs, and finally +breadcrumbs leading to the currently opened directory, as well as descendants +of it. At the top, there is a toolbar with view controls. -<p>You can open items in a new window either by middle clicking on them either -directly, or with the Ctrl key pressed down. Right clicking the directory view -offers a context menu for opening files, or even the directory itself, -in a different application. +<p>You can open items in a new window either by middle clicking on them, or with +the left mouse button while holding the <kbd>Ctrl</kbd> key. +Right clicking the directory view offers a context menu for opening files, +or even the directory itself, in a different application. <h2>Viewer</h2> <p>The image viewer may be both entered (so long as you have a file selected) -and exited using the Enter key. This way you may easily switch between the two -modes. When using the mouse, the forwards and backwards buttons will fulfill -the same function. +and exited using the <kbd>Enter</kbd> key. This way you may easily switch +between the two modes. When using the mouse, the forwards and backwards buttons +will fulfill the same function. <p>Double clicking the image switches full-screen view, and the mouse wheel adjusts the zoom level. @@ -96,8 +97,8 @@ rm -rf ~/.cache/thumbnails/wide-* <p>The few configuration options <i>fiv</i> has can be adjusted using <i>dconf-editor</i>, which can be launched in the appropriate location from -within the application by pressing Ctrl+,. For command line usage, there is -the <i>gsettings</i> utility: +within the application by pressing <kbd>Ctrl</kbd> + <kbd>,</kbd>. +For command line usage, there is the <i>gsettings</i> utility: <pre> gsettings list-recursively name.janouch.fiv diff --git a/docs/stylesheet.css b/docs/stylesheet.css index b4b5b2d..daf49f9 100644 --- a/docs/stylesheet.css +++ b/docs/stylesheet.css @@ -5,4 +5,5 @@ 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; } .details br { display: none; } .details br + span:before { content: " — "; } -pre { padding: 0 1em; } +pre { padding: 0 1em; } kbd { border: solid #ccc; border-radius: .25em; + border-width: 1px 2px 2px 1px; padding: 0 .25em; font-family: inherit; } @@ -2172,32 +2172,46 @@ main(int argc, char *argv[]) const GOptionEntry options[] = { {G_OPTION_REMAINING, 0, 0, G_OPTION_ARG_FILENAME_ARRAY, &args, NULL, "[PATH | URI]..."}, - {"list-supported-media-types", 0, G_OPTION_FLAG_IN_MAIN, - G_OPTION_ARG_NONE, &show_supported_media_types, - "Output supported media types and exit", NULL}, {"browse", 0, G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &browse, "Start in filesystem browsing mode", NULL}, - {"thumbnail-for-search", 0, G_OPTION_FLAG_IN_MAIN, - G_OPTION_ARG_STRING, &thumbnail_size_search, - "Output an image file suitable for searching by content", "SIZE"}, - {"extract-thumbnail", 0, G_OPTION_FLAG_IN_MAIN, - G_OPTION_ARG_NONE, &extract_thumbnail, - "Output any embedded thumbnail (superseding --thumbnail)", NULL}, - {"thumbnail", 0, G_OPTION_FLAG_IN_MAIN, - G_OPTION_ARG_STRING, &thumbnail_size, - "Generate thumbnails, up to SIZE, and output that size", "SIZE"}, {"invalidate-cache", 0, G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &invalidate_cache, "Invalidate the wide thumbnail cache", NULL}, + {"list-supported-media-types", 0, G_OPTION_FLAG_IN_MAIN, + G_OPTION_ARG_NONE, &show_supported_media_types, + "Output supported media types and exit", NULL}, {"version", 'V', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &show_version, "Output version information and exit", NULL}, {}, }; + const GOptionEntry options_internal[] = { + {"extract-thumbnail", 0, 0, + G_OPTION_ARG_NONE, &extract_thumbnail, + "Output any embedded thumbnail (superseding --thumbnail)", NULL}, + {"thumbnail", 0, 0, + G_OPTION_ARG_STRING, &thumbnail_size, + "Generate thumbnails, up to SIZE, and output that size", "SIZE"}, + {"thumbnail-for-search", 0, 0, + G_OPTION_ARG_STRING, &thumbnail_size_search, + "Output an image file suitable for searching by content", "SIZE"}, + {}, + }; + + GOptionContext *context = + g_option_context_new(" - Image browser and viewer"); + g_option_context_add_group(context, gtk_get_option_group(TRUE)); + g_option_context_add_main_entries(context, options, NULL); + + GOptionGroup *internals = g_option_group_new( + "internal", "Internal Options:", "Show internal options", NULL, NULL); + g_option_group_add_entries(internals, options_internal); + g_option_context_add_group(context, internals); GError *error = NULL; - gboolean initialized = gtk_init_with_args( - &argc, &argv, " - Image browser and viewer", options, NULL, &error); + gboolean initialized = + g_option_context_parse(context, &argc, &argv, &error); + g_option_context_free(context); if (show_version) { const char *version = PROJECT_VERSION; printf("%s %s\n", PROJECT_NAME, &version[*version == 'v']); |