rosenrot-browser

A hackable browser based on Webkitgtk
Log | Files | Refs | README

TODO.md (4882B)


      1 # To do
      2 
      3 - [ ] Move to a later C standard (C11?) and use safer string handling functions provided by it.
      4   - The thing is, I kinda feel attached to C89-C99
      5 - [ ] Consider
      6   - See make lint for purported insecurities
      7 - [ ] Document creating new applications, e.g., as in [Asana for Linux](https://git.nunosempere.com/NunoSempere/asana-for-linux)
      8   - [ ] This time, use something other than Whatsapp as an example syslink.
      9 - [ ] Fix bug about distorted audio. Maybe related to [this pipewire issue](<https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1547>)?
     10   - See whether it even exists at all
     11 - [ ] Finish cleaning up GTK4 version
     12 - [ ] Think about best way of having GTK4 version alongside
     13 - [ ] Shortcut to resize window
     14 
     15 # Previously done
     16 
     17 - [x] Check that this compiles with the c99 standard
     18 - [x] Add minimalist version of rosenrot to its own branch
     19 - [x] Fix PageUp/PageDown shortcuts.
     20 - ~~[ ] Set [`webkit_web_context_set_sandbox_enabled`](<https://webkitgtk.org/reference/webkit2gtk/2.36.8/WebKitWebContext.html#webkit-web-context-set-sandbox-enabled>), as recommended [here](<https://blogs.gnome.org/mcatanzaro/2022/11/04/stop-using-qtwebkit/>)~~. Irrelevant with upgrade to libsoup3.
     21 - [x] Update to webkit2gtk-4.1
     22   - [x] Change README and point to last Ubuntu 20.04 commit
     23 - [x] Add list of similar projects: <https://github.com/qutebrowser/qutebrowser#similar-projects>
     24 - [x] Add comparisons against rose & surf
     25   - [x] Compare against rose
     26   - [x] Compare against surf
     27 - [x] ~~Doesn't work with when Spanish is selected as the language, for some reason~~ => Previously misdiagnosed. The real issue was that it freezes when interacting with [Espanso](https://espanso.org/) substitutions, which I had set-up automatically on my machine when using words containing an ñ, like my own name, Nuño.
     28 - [x] Add css for js alerts
     29   - [x] Add custom alert whose css can be customized
     30   - [ ] ~~Debug problems, e.g., this version is non-blocking.~~ => will leave as is 
     31 - [x] Figure out better way to have plugins => stand_in code seems superfluous
     32 - [x] Double check newtab/next-tab behavior => custom style now loading correctly.
     33 - [x] Add a shortcut for hiding the search tab. => Already exists: Ctrl+K
     34 - [x] Find out what each of the css elements refers to. => done, see make inspect
     35 - [x] Figure out if downloading files is doable. => it is
     36 - [x] Look at using relative rather than absolute paths for configuration. => now makefile is a bit smarter
     37 - [x] Streamline installation a bit
     38   - [x] Substitute paths in makefile
     39   - [x] Create cache directory automatically
     40 - [x] Add an installation video walkthrough. Done, [here](https://video.nunosempere.com/w/t3oAvJLPHTSAMViQ6zbwTV)
     41 - [x] Document `stand_in.c` better
     42 - [x] Use a makefile.
     43   - [x] Add clean, uninstall to makefile
     44 - [x] Mask user agent
     45 - [x] Launch with more than one tab from command line
     46 - [x] Figure out merge with upstream
     47 - [x] String substitution on uri in order to redirect to better frontends.
     48 - [x] Present "standard" browser keybindings as an alternative.
     49 - [x] Fix zoom in new tab
     50 - [x] Reader mode
     51 - [x] Add reader mode to config.def.
     52 - [x] Make tab bar slightly prettier.
     53 - [x] Add "open in new window" functionality. 
     54   - Useful for opening links in new tab when clicking on them and selecting that option
     55   - And for actually opening links with the href new_tab option.
     56   - Links: [1](<https://docs.gtk.org/gobject/func.signal_connect.html>), [2](<https://webkitgtk.org/reference/webkit2gtk/2.37.90/signal.AutomationSession.create-web-view.html>), [3](<https://webkitgtk.org/reference/webkit2gtk/2.26.0/WebKitWebView.html#WebKitWebView-create>), [4](<https://stackoverflow.com/questions/40180757/webkit2gtk-get-new-window-link>)
     57 - [x] Upgrade to GTK-4 / Webkitgtk 6.0? Will take a fair amount of time, since GTK4 redesigns the application model somewhat.
     58   - Instructions for webkit-6.0 [here](https://github.com/WebKit/WebKit/blob/ed1422596dce5ff012e64a38faf402ac1674fc7e/Source/WebKit/gtk/migrating-to-webkitgtk-6.0.md)
     59   - Instructions for GTK-4 [here](https://docs.gtk.org/gtk4/migrating-3to4.html)
     60   - [x] Prepare for GTK-3 to GTK-4 transition
     61     - [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>
     62     - [x] Stop using direct access to GdkEvent structs
     63   - [ ] ~~Remove webkit2gtk-4.1 and download webkit2gtk-6.0~~ => Actually just use both
     64   - [x] Attempt to compile
     65 - Notes for others:
     66   - Searching github
     67   - Creating a minimal version, e.g., having only one signal going on
     68   - Looking at how https://github.com/mini-rose/rose-browser/ does things
     69   - Printf statements
     70   - GTK ressources: https://docs.gtk.org/gtk4, https://docs.gtk.org/gobject/, https://docs.gtk.org/gdk4/