aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPřemysl Eric Janouch <p@janouch.name>2022-08-05 09:57:39 +0200
committerPřemysl Eric Janouch <p@janouch.name>2022-08-05 09:58:04 +0200
commit8c6fe0ad321a263ee56a3d6439d7b99630a1755c (patch)
treeeba5aa148ea881d577f343995de2fdd042a76ad7
parentca51c9413b38ee4b65af7e95d5c81aecbda5aa2c (diff)
downloadfiv-8c6fe0ad321a263ee56a3d6439d7b99630a1755c.tar.gz
fiv-8c6fe0ad321a263ee56a3d6439d7b99630a1755c.tar.xz
fiv-8c6fe0ad321a263ee56a3d6439d7b99630a1755c.zip
Integrate dconf-editor
This is a more than adequate solution for now.
-rw-r--r--docs/fiv.html10
-rw-r--r--fiv.c18
2 files changed, 23 insertions, 5 deletions
diff --git a/docs/fiv.html b/docs/fiv.html
index 75f712d..5a9b918 100644
--- a/docs/fiv.html
+++ b/docs/fiv.html
@@ -95,16 +95,16 @@ rm -rf ~/.cache/thumbnails/wide-*
<h2>Configuration</h2>
<p>The few configuration options <i>fiv</i> has can be adjusted using
-<i>dconf-editor</i> or <i>gsettings</i>.
-
-<pre>
-dconf-editor name.janouch.fiv
-</pre>
+<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:
<pre>
gsettings list-recursively name.janouch.fiv
</pre>
+<p>To make your changes take effect, restart <i>fiv</i>.
+
<h3>Theming</h3>
<p>The standard means to adjust the looks of the program is through GTK+ 3 CSS.
diff --git a/fiv.c b/fiv.c
index 723780e..57fee50 100644
--- a/fiv.c
+++ b/fiv.c
@@ -82,6 +82,7 @@ struct key_section {
static struct key help_keys_general[] = {
{"F1", "Show help"},
{"F10", "Open menu"},
+ {"<Control>comma", "Preferences"},
{"<Control>question", "Keyboard shortcuts"},
{"q <Control>q", "Quit"},
{"<Control>w", "Quit"},
@@ -1127,6 +1128,20 @@ show_help_shortcuts(void)
}
static void
+show_preferences(void)
+{
+ char *argv[] = {"dconf-editor", PROJECT_NS PROJECT_NAME, NULL};
+ GError *error = NULL;
+ if (!g_spawn_async(
+ NULL, argv, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL, NULL, &error)) {
+ if (g_error_matches(error, G_SPAWN_ERROR, G_SPAWN_ERROR_NOENT))
+ g_prefix_error_literal(&error,
+ "Please install dconf-editor, or use the gsettings utility.\n");
+ show_error_dialog(error);
+ }
+}
+
+static void
toggle_sunlight(void)
{
GtkSettings *settings = gtk_settings_get_default();
@@ -1182,6 +1197,9 @@ on_key_press(G_GNUC_UNUSED GtkWidget *widget, GdkEventKey *event,
case GDK_KEY_question:
show_help_shortcuts();
return TRUE;
+ case GDK_KEY_comma:
+ show_preferences();
+ return TRUE;
}
break;
case GDK_MOD1_MASK: