aboutsummaryrefslogtreecommitdiff
path: root/config.def.h
diff options
context:
space:
mode:
authorArslaan Pathan <[email protected]>2026-04-11 22:10:10 +1200
committerArslaan Pathan <[email protected]>2026-04-11 22:10:10 +1200
commit44f2b5b980f4952124f2c5a78a03df0b09bb6395 (patch)
tree3eb2c9e48f0c41d345c9801fc9333675801b55ac /config.def.h
parent94a741c456b73ac44615406ad55069ee9d02d77f (diff)
downloadcinnamon-browser-44f2b5b980f4952124f2c5a78a03df0b09bb6395.tar.xz
cinnamon-browser-44f2b5b980f4952124f2c5a78a03df0b09bb6395.zip
add quickmarks, finally, a daily drive-able browser!
Diffstat (limited to 'config.def.h')
-rw-r--r--config.def.h60
1 files changed, 60 insertions, 0 deletions
diff --git a/config.def.h b/config.def.h
index afc1693..28cb8f2 100644
--- a/config.def.h
+++ b/config.def.h
@@ -13,6 +13,9 @@ extern void tabopen(Cinnamon* cinnamon);
extern void tabclose(Cinnamon* cinnamon);
extern void set_mode(Cinnamon* cinnamon, int new_mode);
extern void inject_hint_mode(Cinnamon* cinnamon, void (*callback)(Cinnamon*, char hint_buffer[16]));
+extern void quickmark_add(Cinnamon* cinnamon, const char* name, const char* url);
+extern void quickmark_load(Cinnamon* cinnamon, const char* name);
+extern void quickmark_save_all(void);
/* guard ensures config exists/enables brower */
#define CINNAMON_ENABLED
@@ -34,6 +37,9 @@ extern void inject_hint_mode(Cinnamon* cinnamon, void (*callback)(Cinnamon*, cha
#define TABS_SHOW_FAVICON
#define TABS_SHOW_TITLE
+/* quickmark filepath relative to the user data dir, usually ~/.local/share/cinnamon */
+#define QUICKMARK_FILE "quickmarks.txt"
+
/* Keybind definitions */
/* we use the _kbd prefix here just because, idk, good practice to keep keybinds isolated? in practice use whatever the hell you want as long as it doesnt interfere with builtin functions */
@@ -143,10 +149,40 @@ static void _kbd_prev_tab(Cinnamon* cinnamon, void* arg) {
gtk_notebook_set_current_page(GTK_NOTEBOOK(cinnamon->notebook), prev);
}
+static void _kbd_qaddcmd(Cinnamon* cinnamon, void* arg) {
+ gtk_entry_set_text(GTK_ENTRY(cinnamon->cmdbar), "qadd ");
+ gtk_widget_show(cinnamon->cmdbar);
+ gtk_widget_grab_focus(cinnamon->cmdbar);
+ gtk_editable_set_position(GTK_EDITABLE(cinnamon->cmdbar), -1);
+ cmdbar_focused = true;
+ set_mode(cinnamon, 1);
+}
+
+static void _kbd_qloadcmd(Cinnamon* cinnamon, void* arg) {
+ gtk_entry_set_text(GTK_ENTRY(cinnamon->cmdbar), "qload ");
+ gtk_widget_show(cinnamon->cmdbar);
+ gtk_widget_grab_focus(cinnamon->cmdbar);
+ gtk_editable_set_position(GTK_EDITABLE(cinnamon->cmdbar), -1);
+ cmdbar_focused = true;
+ set_mode(cinnamon, 1);
+}
+
+static void _kbd_qloadtabcmd(Cinnamon* cinnamon, void* arg) {
+ gtk_entry_set_text(GTK_ENTRY(cinnamon->cmdbar), "qloadtab ");
+ gtk_widget_show(cinnamon->cmdbar);
+ gtk_widget_grab_focus(cinnamon->cmdbar);
+ gtk_editable_set_position(GTK_EDITABLE(cinnamon->cmdbar), -1);
+ cmdbar_focused = true;
+ set_mode(cinnamon, 1);
+}
+
static const Keybind keybinds[] = {
{ "t", &_kbd_tabopen, NULL },
{ "d", &_kbd_tabclose, NULL },
{ "o", &_kbd_opencmd, NULL },
+ { "m", &_kbd_qaddcmd, NULL },
+ { "b", &_kbd_qloadcmd, NULL },
+ { "<S-b>", &_kbd_qloadtabcmd, NULL },
{ "s", &_kbd_toggletabs, NULL },
{ "<S-i>", &_kbd_passthru, NULL },
{ "i", &_kbd_insmode, NULL },
@@ -225,6 +261,27 @@ static void _cmd_quit(Cinnamon* cinnamon, const char* args) {
gtk_main_quit();
}
+static void _cmd_qadd(Cinnamon* cinnamon, const char* args) {
+ if (!args || strlen(args) == 0) return;
+
+ GtkWidget *webview = gtk_notebook_get_nth_page(GTK_NOTEBOOK(cinnamon->notebook), gtk_notebook_get_current_page(GTK_NOTEBOOK(cinnamon->notebook)));
+ const char *url = webkit_web_view_get_uri(WEBKIT_WEB_VIEW(webview));
+
+ quickmark_add(cinnamon, args, url);
+ quickmark_save_all();
+}
+
+static void _cmd_qload(Cinnamon* cinnamon, const char* args) {
+ if (!args || strlen(args) == 0) return;
+ quickmark_load(cinnamon, args);
+}
+
+static void _cmd_qloadtab(Cinnamon* cinnamon, const char* args) {
+ if (!args || strlen(args) == 0) return;
+ tabopen(cinnamon);
+ quickmark_load(cinnamon, args);
+}
+
static const Command commands[] = {
{ "open", &_cmd_open },
{ "reload", &_cmd_reload },
@@ -233,6 +290,9 @@ static const Command commands[] = {
{ "forward", &_cmd_forward },
{ "q", &_cmd_quit },
{ "quit", &_cmd_quit },
+ { "qadd", &_cmd_qadd },
+ { "qload", &_cmd_qload },
+ { "qloadtab", &_cmd_qloadtab },
};