From 4d10b7dbc74fe607e6ec0dadc2d4dd12bd8f9db6 Mon Sep 17 00:00:00 2001 From: Arslaan Pathan Date: Sat, 4 Apr 2026 23:42:02 +1300 Subject: Reload, forward/back, opencmd keybind --- config.def.h | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 60 insertions(+), 2 deletions(-) (limited to 'config.def.h') diff --git a/config.def.h b/config.def.h index 3e2b792..ce526bb 100644 --- a/config.def.h +++ b/config.def.h @@ -30,6 +30,7 @@ extern void set_mode(Cinnamon* cinnamon, int new_mode); /* 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 */ +extern bool cmdbar_focused; static void _kbd_insmode(Cinnamon* cinnamon, void* arg) { set_mode(cinnamon, 1); } @@ -79,10 +80,39 @@ static void _kbd_toggletabs(Cinnamon* cinnamon, void* arg) { gtk_notebook_set_show_tabs(GTK_NOTEBOOK(cinnamon->notebook), !gtk_notebook_get_show_tabs(GTK_NOTEBOOK(cinnamon->notebook))); } +static void _kbd_opencmd(Cinnamon* cinnamon, void* arg) { + gtk_entry_set_text(GTK_ENTRY(cinnamon->cmdbar), "open "); + 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_reload(Cinnamon* cinnamon, void* arg) { + GtkWidget *webview = gtk_notebook_get_nth_page(GTK_NOTEBOOK(cinnamon->notebook), gtk_notebook_get_current_page(GTK_NOTEBOOK(cinnamon->notebook))); + webkit_web_view_reload(WEBKIT_WEB_VIEW(webview)); +} + +static void _kbd_hardreload(Cinnamon* cinnamon, void* arg) { + GtkWidget *webview = gtk_notebook_get_nth_page(GTK_NOTEBOOK(cinnamon->notebook), gtk_notebook_get_current_page(GTK_NOTEBOOK(cinnamon->notebook))); + webkit_web_view_reload_bypass_cache(WEBKIT_WEB_VIEW(webview)); +} + +static void _kbd_back(Cinnamon* cinnamon, void* arg) { + GtkWidget *webview = gtk_notebook_get_nth_page(GTK_NOTEBOOK(cinnamon->notebook), gtk_notebook_get_current_page(GTK_NOTEBOOK(cinnamon->notebook))); + webkit_web_view_go_back(WEBKIT_WEB_VIEW(webview)); +} + +static void _kbd_forward(Cinnamon* cinnamon, void* arg) { + GtkWidget *webview = gtk_notebook_get_nth_page(GTK_NOTEBOOK(cinnamon->notebook), gtk_notebook_get_current_page(GTK_NOTEBOOK(cinnamon->notebook))); + webkit_web_view_go_forward(WEBKIT_WEB_VIEW(webview)); +} + static const Keybind keybinds[] = { { "t", &_kbd_tabopen, NULL }, { "d", &_kbd_tabclose, NULL }, - // { "o", ":commandline_show \":open\"" }, + { "o", &_kbd_opencmd, NULL }, { "s", &_kbd_toggletabs, NULL }, { "", &_kbd_passthru, NULL }, { "i", &_kbd_insmode, NULL }, @@ -90,6 +120,10 @@ static const Keybind keybinds[] = { { "k", &_kbd_scroll, "up" }, { "h", &_kbd_scroll, "left" }, { "l", &_kbd_scroll, "right" }, + { "r", &_kbd_reload, NULL }, + { "", &_kbd_back, NULL }, + { "", &_kbd_forward, NULL }, + { "", &_kbd_hardreload, NULL }, { "", &_kbd_tabsel, (void*)(intptr_t)0 }, { "", &_kbd_tabsel, (void*)(intptr_t)1 }, { "", &_kbd_tabsel, (void*)(intptr_t)2 }, @@ -130,8 +164,32 @@ static void _cmd_open(Cinnamon* cinnamon, const char* args) { webkit_web_view_load_uri(WEBKIT_WEB_VIEW(webview), uri); } +static void _cmd_reload(Cinnamon* cinnamon, const char* args) { + GtkWidget *webview = gtk_notebook_get_nth_page(GTK_NOTEBOOK(cinnamon->notebook), gtk_notebook_get_current_page(GTK_NOTEBOOK(cinnamon->notebook))); + webkit_web_view_reload(WEBKIT_WEB_VIEW(webview)); +} + +static void _cmd_hardreload(Cinnamon* cinnamon, const char* args) { + GtkWidget *webview = gtk_notebook_get_nth_page(GTK_NOTEBOOK(cinnamon->notebook), gtk_notebook_get_current_page(GTK_NOTEBOOK(cinnamon->notebook))); + webkit_web_view_reload_bypass_cache(WEBKIT_WEB_VIEW(webview)); +} + +static void _cmd_back(Cinnamon* cinnamon, const char* args) { + GtkWidget *webview = gtk_notebook_get_nth_page(GTK_NOTEBOOK(cinnamon->notebook), gtk_notebook_get_current_page(GTK_NOTEBOOK(cinnamon->notebook))); + webkit_web_view_go_back(WEBKIT_WEB_VIEW(webview)); +} + +static void _cmd_forward(Cinnamon* cinnamon, const char* args) { + GtkWidget *webview = gtk_notebook_get_nth_page(GTK_NOTEBOOK(cinnamon->notebook), gtk_notebook_get_current_page(GTK_NOTEBOOK(cinnamon->notebook))); + webkit_web_view_go_forward(WEBKIT_WEB_VIEW(webview)); +} + static const Command commands[] = { - { "open", &_cmd_open } + { "open", &_cmd_open }, + { "reload", &_cmd_reload }, + { "hard_reload", &_cmd_hardreload }, + { "back", &_cmd_back }, + { "forward", &_cmd_forward }, }; #endif -- cgit v1.2.3