You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: README.md
+9-9
Original file line number
Diff line number
Diff line change
@@ -10,12 +10,12 @@ Rosenrot is a small browser forked from an earlier version of [rose](https://git
10
10
11
11
### Installation and usage
12
12
13
-
You can see detailed instructions [here](./user-scripts/debian-12/install-with-dependencies.sh), for Debian 12 in particular—though they should generalize easily to other distributions.
13
+
You can see detailed instructions [here](./user-scripts/debian-12/), for Debian 12 in particular—though they should generalize easily to other distributions.
14
14
15
15
The general steps are to install dependencies, and then
16
16
17
17
```
18
-
make build
18
+
make build # by default using webkitgtk6/gtk4; see also build3
19
19
make install # or sudo make install
20
20
rose
21
21
```
@@ -44,6 +44,7 @@ You can also create a rose.desktop file so that it will show up in your desktop
44
44
- Custom style: Override the css of predetermined websites
45
45
- Max number of tabs (by default 8), configurable.
46
46
- Stand in plugin: Mimick function definitions which do nothing for the above plugins so that they can be quickly removed
47
+
- For now, both GTK3 and GTK4-based versions—eventually only the GTK4 version will remain
47
48
48
49
You can see some screenshots in the [images](./images) folder.
49
50
@@ -66,14 +67,14 @@ Here are projects with their own rendering engines which could appeal to users o
66
67
67
68
-[lynx](https://lynx.invisible-island.net/) (links, elinks), [w3m](https://w3m.sourceforge.net/): command line browsers.
68
69
-[dillo](https://github.com/dillo-browser/dillo/). Has its own rendering engine, and no javascript.
69
-
-[Ladybird](https://github.com/SerenityOS/serenity/tree/master/Ladybird). SerenityOS. Uses its own html and javascript engine. Compiling it on a mainstream Linux distribution, and documenting instructions could be an interesting project, but the few times I've tried that I've failed.
70
+
-[Ladybird](https://github.com/LadybirdBrowser/ladybird). Initially from the InitialSerenityOS, it later became its own project. Uses its own html and javascript engine. Compiling it on a mainstream linux distribution is now doable.
70
71
-[servo](https://github.com/servo/servo). Firefox/Mozilla. An in-development browser engine written in Rust, meant to replace Gecko. Could be extremely cool once it is ready, but it has been many years in development.
71
72
72
73
### Relationship with [rose](https://github.com/mini-rose/rose)
73
74
74
75
- Rose is a small browser based on webkit2gtk. Previously, it described itself as aiming to be a "basement for creating your own browser using [the] gtk and webkit libraries". It has since diverged into a more featureful small browser with lua bindings, and rebased its history. You can see the original, minimal version [here](https://github.com/NunoSempere/rosenrot-browser/blob/a45d1c70f58586fed97df70650e5d066b73d0a0d/rose.c).
75
-
-The current version offers compilation with both GTK3 and GTK4, and an up to date version of webkit.
76
-
-Rosenrot is my (@NunoSempere's) fork from that earlier minimal rose. It has accumulated quality of life features and, honestly, cruft, that I like, like a "readability" plugin that simplifies annoying websites like [Matt Levine's Money Stuff newsletter](https://www.bloomberg.com/opinion/articles/2022-10-18/matt-levine-s-money-stuff-credit-suisse-was-a-reverse-meme-stock). It also incorporates ad-blocking.
76
+
-Rosenrot is my (@NunoSempere's) fork from that earlier minimal rose, the GTK 3 version. It has accumulated quality of life features and, honestly, cruft, that I like, like a "readability" plugin that simplifies annoying websites like [Matt Levine's Money Stuff newsletter](https://www.bloomberg.com/opinion/articles/2022-10-18/matt-levine-s-money-stuff-credit-suisse-was-a-reverse-meme-stock). It also incorporates ad-blocking.
77
+
-rose updated to allow compilation with an up-to-date version of both GTK3 and GTK4 earlier, though rosenrot now offers this as well.
77
78
- Rosenrot is also a song by the German hardcore rock band [Rammstein](https://www.youtube.com/watch?v=af59U2BRRAU).
78
79
79
80
### Comparison with [surf](https://git.suckless.org/surf/file/surf.c.html)
@@ -85,9 +86,8 @@ Here are projects with their own rendering engines which could appeal to users o
85
86
- Anecdotically, surf feels slower, though I haven't tested this rigorously.
86
87
- surf has a larger community, with patches and modifications.
87
88
- surf is more opinionated, but also less amateurish.
88
-
- Like rosenrot until very recently, it [uses](https://git.suckless.org/surf/file/config.mk.html#l15) an obsolete & deprecated version of [webkit](https://blogs.gnome.org/mcatanzaro/2023/03/21/webkitgtk-api-for-gtk-4-is-now-stable/)
89
-
- My recommendation would be to use rosenrot, and if you find some feature missing, either look how surf does it and import it to rose, or move to surf.
90
-
- But then again, I've built rosenrot to cater to my own tastes, so I'd say that.
89
+
- Like rosenrot until not so long ago, it [uses](https://git.suckless.org/surf/file/config.mk.html#l15) an obsolete & deprecated version of [webkit](https://blogs.gnome.org/mcatanzaro/2023/03/21/webkitgtk-api-for-gtk-4-is-now-stable/) (2.40, with GTK3)
90
+
- My recommendation would be to use rosenrot, and if you find some feature missing, either look how surf does it and import it to rose, or move to surf. But then again, I've built rosenrot to cater to my own tastes, so I'd say that.
91
91
92
92
## Folk wisdom
93
93
@@ -109,7 +109,7 @@ See [this blog post](https://blogs.gnome.org/mcatanzaro/2023/03/21/webkitgtk-api
109
109
110
110
Migration instructions for migration to webkit2gtk-6 and GTK4 can be seen [here](https://github.com/WebKit/WebKit/blob/ed1422596dce5ff012e64a38faf402ac1674fc7e/Source/WebKit/gtk/migrating-to-webkitgtk-6.0.md) and [here](https://docs.gtk.org/gtk4/migrating-3to4.html).
111
111
112
-
Rosenrot is currently on the stable webkit2gtk-4.1 release using GTK3, and has removed deprecated webkit apis. It has plans to eventually migrate to webkit2gtk-6.0 eventually but not soon, because the GTK4 rewrite seems onerous.
112
+
Rosenrot currently supports both the stable webkit2gtk-4.1/GTK3 release, and a newer release using webkit2gtk-6.0/GTK4. Eventually the later will become the only version. Readers might want to look through the history to see a bit about the updating process.
Copy file name to clipboardexpand all lines: TODO.md
+16-9
Original file line number
Diff line number
Diff line change
@@ -8,14 +8,8 @@
8
8
-[ ] This time, use something other than Whatsapp as an example syslink.
9
9
-[ ] Fix bug about distorted audio. Maybe related to [this pipewire issue](<https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1547>)?
10
10
- See whether it even exists at all
11
-
-[ ] Upgrade to GTK-4 / Webkitgtk 6.0? Will take a fair amount of time, since GTK4 redesigns the application model somewhat.
12
-
- Instructions for webkit-6.0 [here](https://github.com/WebKit/WebKit/blob/ed1422596dce5ff012e64a38faf402ac1674fc7e/Source/WebKit/gtk/migrating-to-webkitgtk-6.0.md)
13
-
- Instructions for GTK-4 [here](https://docs.gtk.org/gtk4/migrating-3to4.html)
14
-
-[ ] Prepare for GTK-3 to GTK-4 transition
15
-
-[ ] Understand wtf is going on with signals and events: <https://docs.gtk.org/gtk4/migrating-3to4.html#stop-using-gtkwidget-event-signals>. <https://github.com/mini-rose/rose-browser/blob/288bf060d095c4895946669ae50d14193168b69c/src/window.c#L42>
16
-
-[ ] Stop using direct access to GdkEvent structs
17
-
-[ ] Remove webkit2gtk-4.1 and download webkit2gtk-6.0
18
-
-[ ] Attempt to compile
11
+
-[ ] Finish cleaning up GTK4 version
12
+
-[ ] Think about best way of having GTK4 version alongside
19
13
20
14
# Previously done
21
15
@@ -59,4 +53,17 @@
59
53
- Useful for opening links in new tab when clicking on them and selecting that option
60
54
- And for actually opening links with the href new_tab option.
-[x] Upgrade to GTK-4 / Webkitgtk 6.0? Will take a fair amount of time, since GTK4 redesigns the application model somewhat.
57
+
- Instructions for webkit-6.0 [here](https://github.com/WebKit/WebKit/blob/ed1422596dce5ff012e64a38faf402ac1674fc7e/Source/WebKit/gtk/migrating-to-webkitgtk-6.0.md)
58
+
- Instructions for GTK-4 [here](https://docs.gtk.org/gtk4/migrating-3to4.html)
59
+
-[x] Prepare for GTK-3 to GTK-4 transition
60
+
-[x] Understand wtf is going on with signals and events: <https://docs.gtk.org/gtk4/migrating-3to4.html#stop-using-gtkwidget-event-signals>. <https://github.com/mini-rose/rose-browser/blob/288bf060d095c4895946669ae50d14193168b69c/src/window.c#L42>
61
+
-[x] Stop using direct access to GdkEvent structs
62
+
-[ ]~~Remove webkit2gtk-4.1 and download webkit2gtk-6.0~~ => Actually just use both
63
+
-[x] Attempt to compile
64
+
- Notes for others:
65
+
- Searching github
66
+
- Creating a minimal version, e.g., having only one signal going on
67
+
- Looking at how https://github.com/mini-rose/rose-browser/ does things
# COMPILETIME_DEPRECATION_WARNINGS=#-DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED # turns out that webkit2gtk-4.1 is using some deprecated stuff, lol
0 commit comments