tweak: continue personal development from master.
This commit is contained in:
parent
b50d30851b
commit
d1439d16f5
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -1,3 +1,3 @@
|
|||
rose
|
||||
config.h
|
||||
# config.h
|
||||
.clang-format
|
||||
|
|
52
README.md
52
README.md
|
@ -1,13 +1,43 @@
|
|||
<h3 align=center> Rose Browser</h3>
|
||||
<h4 align=center>Minimal browser based on webkit2gtk</h4>
|
||||
## Rosebud
|
||||
|
||||
#### Features
|
||||
- tabs, cookies, caching
|
||||
- minimal ui, autohiding elements
|
||||
- ~400L code base
|
||||
- custom gtk and websites css
|
||||
- hackable without any knowledge
|
||||
- builtin rose-mklink script for in-shell static links
|
||||
Personal tweaks for [rose](https://github.com/mini-rose/rose), a minimal browser based on webkit2gtk
|
||||
|
||||
### 📜 License
|
||||
Rose is released under the [MIT license](https://github.com/mini-rose/rose/blob/master/license).
|
||||
### Features
|
||||
|
||||
- tabs, cookies, caching
|
||||
- minimal ui, autohiding elements
|
||||
- ~400L code base (edit: no longer)
|
||||
- custom gtk and websites css
|
||||
- hackable without any knowledge
|
||||
- builtin rose-mklink script for in-shell static links
|
||||
- A few quality of life improvements.
|
||||
|
||||
### 👐 Contribute
|
||||
|
||||
This is my personal version. Contribute upstream to [github.com/mini-rose/rose](https://github.com/mini-rose/) instead.
|
||||
|
||||
### To do
|
||||
|
||||
- [ ] Figure out better way to have plugins
|
||||
- [ ] Launch with more than one tab from command line
|
||||
- [ ] Double check newtab/next-tab behavior
|
||||
- [ ] Find out what each of the css elements refers to.
|
||||
- [ ] Use something other than Whatsapp as an example syslink.
|
||||
|
||||
Done:
|
||||
|
||||
- [x] Figure out merge with upstream
|
||||
- [x] String substitution on uri in order to redirect to better frontends.
|
||||
- [x] Present "standard" browser keybindings as an alternative.
|
||||
- [x] Fix zoom in new tab
|
||||
- [x] Reader mode
|
||||
- [x] Add reader mode to config.def.
|
||||
- [x] Make tab bar slightly prettier.
|
||||
- [x] Add "open in new window" functionality.
|
||||
- Useful for opening links in new tab when clicking on them and selecting that option
|
||||
- And for actually opening links with the href new_tab option.
|
||||
- Links: <https://docs.gtk.org/gobject/func.signal_connect.html>, <https://webkitgtk.org/reference/webkit2gtk/2.37.90/signal.AutomationSession.create-web-view.html>, <https://webkitgtk.org/reference/webkit2gtk/2.26.0/WebKitWebView.html#WebKitWebView-create> <https://stackoverflow.com/questions/40180757/webkit2gtk-get-new-window-link>
|
||||
|
||||
### Known bugs
|
||||
|
||||
- [ ] Doesn't work with when Spanish is selected as the language, for some reason.
|
||||
|
|
110
config.h
Normal file
110
config.h
Normal file
|
@ -0,0 +1,110 @@
|
|||
/*
|
||||
* Copyright (c) 2022 Nuño Sempere.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person
|
||||
* obtaining a copy of this software and any associated documentation
|
||||
* files to modify, copy, merge, publish, distribute and/or
|
||||
* sublicense copies of this sotware for their own use.
|
||||
* This code does not come with any warranty.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <gdk/gdkkeysyms.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
/* See more:
|
||||
* https://webkitgtk.org/reference/webkit2gtk/stable/class.Settings.html */
|
||||
#define WEBKIT \
|
||||
"enable-back-forward-navigation-gestures", true, "enable-developer-extras", true, \
|
||||
"enable-smooth-scrolling", false
|
||||
|
||||
#define GTK "gtk-application-prefer-dark-theme", false, "gtk-enable-animations", false
|
||||
#define ROSE_HOMEPAGE true
|
||||
#define HOME ROSE_HOMEPAGE ? "file:///home/loki/Documents/core/software/fresh/C/rose-browser/rose-bud-personal/user-scripts/ubuntu-20.04/rose-images/rose-homepage.png" : "https://lite.duckduckgo.com/html"
|
||||
#define SEARCH "https://lite.duckduckgo.com/html/?q=%s"
|
||||
#define CACHE_DIR "/home/loki/.cache/rose"
|
||||
|
||||
#define WIDTH 1920
|
||||
#define HEIGHT 1080
|
||||
#define KEY(x) GDK_KEY_##x
|
||||
#define ZOOM 1.4 /* Starting zoom level.*/
|
||||
#define ZOOM_VAL .1 /* Zooming value in zoomin/zoomout functions */
|
||||
#define BG_COLOR "#FEFEFE" /* "FEFEFE", "#1E1E2E" */
|
||||
#define DEBUG false
|
||||
|
||||
typedef enum {
|
||||
goback,
|
||||
goforward,
|
||||
refresh,
|
||||
refresh_force,
|
||||
back_to_home,
|
||||
toggle_fullscreen,
|
||||
zoomin,
|
||||
zoomout,
|
||||
zoom_reset,
|
||||
next_tab,
|
||||
prev_tab,
|
||||
close_tab,
|
||||
show_searchbar,
|
||||
show_finder,
|
||||
finder_next,
|
||||
finder_prev,
|
||||
new_tab,
|
||||
prettify,
|
||||
hide_bar
|
||||
} func;
|
||||
|
||||
#define SFT 1 << 0
|
||||
#define CTRL 1 << 2
|
||||
#define ALT 1 << 3
|
||||
|
||||
static struct {
|
||||
unsigned mod;
|
||||
unsigned key;
|
||||
func id;
|
||||
} keys[] = {
|
||||
{ CTRL, KEY(h), goback },
|
||||
{ CTRL, KEY(j), goforward },
|
||||
{ CTRL, KEY(r), refresh },
|
||||
{ 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_Up), prev_tab },
|
||||
{ CTRL, KEY(Page_Down), next_tab },
|
||||
{ CTRL, KEY(t), next_tab },
|
||||
{ CTRL, KEY(w), close_tab },
|
||||
{ 0x0, KEY(F11), toggle_fullscreen },
|
||||
{ CTRL, KEY(l), show_searchbar },
|
||||
{ CTRL, KEY(k), hide_bar },
|
||||
{ CTRL, KEY(f), show_finder },
|
||||
{ CTRL, KEY(n), finder_next },
|
||||
{ CTRL | SFT, KEY(N), finder_prev },
|
||||
{ CTRL, KEY(p), prettify }
|
||||
};
|
||||
/* ^ For controls more akin to normal browsers */
|
||||
/* Reference for the key shorthand:
|
||||
* <https://gitlab.gnome.org/GNOME/gtk/-/blob/main/gdk/gdkkeysyms.h> */
|
||||
|
||||
/* Old controls: {
|
||||
{ CTRL, KEY(h), goback },
|
||||
{ CTRL, KEY(l), goforward },
|
||||
{ CTRL, KEY(r), refresh },
|
||||
{ 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 },
|
||||
{ ALT, KEY(h), prev_tab },
|
||||
{ CTRL, KEY(k), hide_searchbar },
|
||||
{ ALT, KEY(l), next_tab },
|
||||
{ CTRL, KEY(w), close_tab },
|
||||
{ 0x0, KEY(F11), toggle_fullscreen },
|
||||
{ CTRL, KEY(e), show_searchbar },
|
||||
{ CTRL, KEY(f), show_finder },
|
||||
{ CTRL, KEY(n), finder_next },
|
||||
{ CTRL | SFT, KEY(N), finder_prev },
|
||||
{ CTRL, KEY(p), prettify }
|
||||
};
|
||||
*/
|
Loading…
Reference in New Issue
Block a user