tweak: add normal browser controls

In particular, ctrl+e instead of ctrl+l was killing me.

Also, replace tabs with spaces.
This commit is contained in:
NunoSempere 2022-12-13 15:19:40 +00:00
parent 4dffbbae14
commit 4b2b46149c
2 changed files with 59 additions and 45 deletions

View File

@ -24,7 +24,7 @@ Rose is released under own license, which grants the following permissions:
### To do ### To do
- [ ] String substitution on uri in order to redirect to better frontends. - [ ] String substitution on uri in order to redirect to better frontends.
- [ ] Present "standard" browser keybindings as an alternative. - [x] Present "standard" browser keybindings as an alternative.
- [ ] Fix zoom in new tab - [x] Fix zoom in new tab
- [ ] Make tab bar slightly prettier. - [ ] Make tab bar slightly prettier.

View File

@ -15,8 +15,8 @@
/* See more: /* See more:
* https://webkitgtk.org/reference/webkit2gtk/stable/class.Settings.html */ * https://webkitgtk.org/reference/webkit2gtk/stable/class.Settings.html */
#define WEBKIT \ #define WEBKIT \
"enable-back-forward-navigation-gestures", true, "enable-developer-extras", true, \ "enable-back-forward-navigation-gestures", true, "enable-developer-extras", true, \
"enable-smooth-scrolling", false "enable-smooth-scrolling", false
#define GTK "gtk-application-prefer-dark-theme", true, "gtk-enable-animations", false #define GTK "gtk-application-prefer-dark-theme", true, "gtk-enable-animations", false
@ -25,29 +25,29 @@
#define CACHE_DIR "/home/fenze/.cache/rose" #define CACHE_DIR "/home/fenze/.cache/rose"
#define KEY(x) GDK_KEY_##x #define KEY(x) GDK_KEY_##x
#define ZOOM 1 /* Starting zoom level */ #define ZOOM 1 /* Starting zoom level */
#define ZOOM_VAL .1 /* Zooming value in zoomin/zoomout functions */ #define ZOOM_VAL .1 /* Zooming value in zoomin/zoomout functions */
#define BG_COLOR "#1E1E2E" /* or "#FEFEFE" if you are not using the dark theme. */ #define BG_COLOR "#1E1E2E" /* or "#FEFEFE" if you are not using the dark theme. */
#define WIDTH 500 #define WIDTH 500
#define HEIGHT 400 #define HEIGHT 400
typedef enum { typedef enum {
goback, goback,
goforward, goforward,
refresh, refresh,
refresh_force, refresh_force,
back_to_home, back_to_home,
toggle_fullscreen, toggle_fullscreen,
zoomin, zoomin,
zoomout, zoomout,
zoom_reset, zoom_reset,
next_tab, next_tab,
prev_tab, prev_tab,
close_tab, close_tab,
show_searchbar, show_searchbar,
show_finder, show_finder,
finder_next, finder_next,
finder_prev finder_prev
} func; } func;
#define SFT 1 << 0 #define SFT 1 << 0
@ -55,33 +55,47 @@ typedef enum {
#define ALT 1 << 3 #define ALT 1 << 3
static struct { static struct {
unsigned mod; unsigned mod;
unsigned key; unsigned key;
func id; func id;
} keys[] = { } keys[] = {
{ CTRL, KEY(h), goback }, { CTRL, KEY(h), goback },
{ CTRL, KEY(l), goforward }, { CTRL, KEY(l), goforward },
{ CTRL, KEY(r), refresh }, { CTRL, KEY(r), refresh },
{ CTRL | SFT, KEY(R), refresh_force }, { CTRL | SFT, KEY(R), refresh_force },
{ CTRL | SFT, KEY(H), back_to_home }, { CTRL | SFT, KEY(H), back_to_home },
{ CTRL, KEY(equal), zoomin }, { CTRL, KEY(equal), zoomin },
{ CTRL, KEY(minus), zoomout }, { CTRL, KEY(minus), zoomout },
{ CTRL, KEY(0), zoom_reset }, { CTRL, KEY(0), zoom_reset },
{ ALT, KEY(h), prev_tab }, { ALT, KEY(h), prev_tab },
{ ALT, KEY(l), next_tab }, { ALT, KEY(l), next_tab },
{ CTRL, KEY(w), close_tab }, { CTRL, KEY(w), close_tab },
{ 0x0, KEY(F11), toggle_fullscreen }, { 0x0, KEY(F11), toggle_fullscreen },
{ CTRL, KEY(e), show_searchbar }, { CTRL, KEY(e), show_searchbar },
{ CTRL, KEY(f), show_finder }, { CTRL, KEY(f), show_finder },
{ CTRL, KEY(n), finder_next }, { CTRL, KEY(n), finder_next },
{ CTRL | SFT, KEY(N), finder_prev } { CTRL | SFT, KEY(N), finder_prev }
}; };
/* /* For controls more akin to normal browsers, use:
Default browser controls: {
- Ctrl+L: Go to searchbar { CTRL, KEY(h), goback },
- Ctrl+T: New Tab { CTRL, KEY(j), goforward },
- Ctrl+Page up: Go to next tab { CTRL, KEY(r), refresh },
- Ctrl+Page down: Go to previous tab { CTRL | SFT, KEY(R), refresh_force },
{ CTRL | SFT, KEY(H), back_to_home },
{ CTRL, KEY(equal), zoomin },
{ CTRL, KEY(minus), zoomout },
{ CTRL, KEY(0), zoom_reset },
{ CTRL, KEY(Page_Down), prev_tab },
{ CTRL, KEY(Page_Up), next_tab },
{ CTRL, KEY(w), close_tab },
{ 0x0, KEY(F11), toggle_fullscreen },
{ CTRL, KEY(l), show_searchbar },
{ CTRL, KEY(f), show_finder },
{ CTRL, KEY(n), finder_next },
{ CTRL | SFT, KEY(N), finder_prev }
};
*/ */
/* Reference for the key shorthand:
* <https://gitlab.gnome.org/GNOME/gtk/-/blob/main/gdk/gdkkeysyms.h> */