I'd put a development update here but there's too much stuff to post. Cookies are slightly broken right now because of sloppy handling (multiple instances handling a non-relational database for the purpose of access spead) thanks to libsoup sucking at checking non-sql cookie jars; I'm beginning to rewrite the browser in C++ also due to an annoyance with the GObject model in C... might as well use C++ due to the fact that function objects (errr functors) are far more efficient in C++ compilers; and GObjects are basically a poor attempt at oop in C (oop can be done ok in c... this just looks ugly)
So yeah, essentially rewriting this whole thing in C++, when exams are done there will be an update out here probably with a nicer codebase
(Private browsing may also have an extra paranoia layer- potentially when doing IO with streambufs when available, the streambuffers will encrypt/decrypt on read/write so as to keep everything hidden including the temporary session.
motorboat is a small GTK+/Webkit browser written in C. It's based on suckless.org's surf, a simple, barebones browser; I took the liberty of adding what I wanted onto this frame; as I couldn't find a browser that suits me. The software is fully functional and very stable, but a bit niche.
Should compile easily on any *nix system with X, glib, and libwebkit-dev available, and should be pretty simple to port to Windows.
I'll consider doing the port myself if someone actually wants it.
Some of the "features" aren't non-standard in most browsers, but the main focus is keeping the browser very small, and easy to edit.
Features: (* implies inherited feature, all else are my additions)
-> Small footprint (49KiB dynamic executable, ~6mb static) * ---- Now some few (tens?) of KiB larger, added features - 2012-02-11
-> XEmbed support (can embed motorboat into another application - requires X11 - tabs can be implemented via tabbed) *
-> Switchable and extensible URI handler (can forward uri input to a specified address mode, switch with Alt-a/Alt-s), included modes are Search engine, Wikipedia, Dictionary, Wolfram Alpha, and Literal interpretation (in case the interpreter fucks something up in some rare case -- unlikely) Now integrated history and URI bar, separate search bar, (just different hotkey so technically same bar?), and real time history (not merely user submitted items)
-> Bookmarks+dmenu - simple pop up menu with pattern matching to find bookmark
-> History+dmenu -like bookmarks, but all of the URIs entered by the user. Note: History is not stored for every page visited, just for user entries. I may add full activity history eventually, but I've had no need yet. ---- See above regarding URI/History bar integration - think chrome's unibar - 2012-02-11
-> Webkit backend (Same rendering engine as Chromium, Safari, Android browser, etc) -- excellent standards compliance, works with pretty much everything *
-> general purpose prefix modifiers - configure in config.h prior to compilation. An example for loading a reddit subreddit is included (in url bar - Alt-g, "rdt: askreddit" will go to "http://www.reddit.com/r/askreddit/")
WIP/dev stuff (formerly coming soon):
-> Fixed a bug occuring when page finished loading; the status displayed 0%
-> private mode browsing, recent page caching
-> Added WebViewInspector (web developer element/page/whatever inspector, standard from webkit)
-> get some sleep
-> Userscript support ---- pretty much there just don't feel like writing parser for greasemonkey script metadata, might require my own header format for userscripts? Not unrealistic.
-> Native tabs (but it works perfectly in tabbed for now) ---- Working on integrating this and dmenu; likely will just tear out needed functions and strip the rest; I'd like to keep it one .c file and one config header, and <2000 loc, but I think that's more than realistic.
-> Spellcheck in text fields ---- This is technically implemented, but having some problems setting up gobjects and what the tits what's supposed to signal what, webkit has VERY poor documentation for some settings options
Source now defunct at that location, git/mercurial repo going up soon.available at:
http://socr.uwindsor.ca/~lukawskc/softc ... rboat.html
Might as well ignore this as well. A cleaned up version is coming once my testing branch is polished (man pages are not updated, small quirky issues to pick out (such as the tld matching algorithm which should not be linear in complexity, it makes for the occasional laggy skip))
Also required: dmenu
My slightly tweaked tabbed setup (recommended with motorboat for the sake of ease of use): tabbed-boat
Shell script to use tabbed-boat with motorboat: moboatt.sh
Original tabbed: tabbed
MIT/X11 Licence
//outdate also
I'm looking for feedback on features, how they can be improved, collaboration if you've got an idea, or just ideas you'd like to see in general. This project is meant to be a learning experience.
Thanks and credit goes out to suckless software, myself, and M. Renaud.
So yeah, essentially rewriting this whole thing in C++, when exams are done there will be an update out here probably with a nicer codebase
(Private browsing may also have an extra paranoia layer- potentially when doing IO with streambufs when available, the streambuffers will encrypt/decrypt on read/write so as to keep everything hidden including the temporary session.
motorboat is a small GTK+/Webkit browser written in C. It's based on suckless.org's surf, a simple, barebones browser; I took the liberty of adding what I wanted onto this frame; as I couldn't find a browser that suits me. The software is fully functional and very stable, but a bit niche.
Should compile easily on any *nix system with X, glib, and libwebkit-dev available, and should be pretty simple to port to Windows.
I'll consider doing the port myself if someone actually wants it.
Some of the "features" aren't non-standard in most browsers, but the main focus is keeping the browser very small, and easy to edit.
Features: (* implies inherited feature, all else are my additions)
-> Small footprint (49KiB dynamic executable, ~6mb static) * ---- Now some few (tens?) of KiB larger, added features - 2012-02-11
-> XEmbed support (can embed motorboat into another application - requires X11 - tabs can be implemented via tabbed) *
-> Switchable and extensible URI handler (can forward uri input to a specified address mode, switch with Alt-a/Alt-s), included modes are Search engine, Wikipedia, Dictionary, Wolfram Alpha, and Literal interpretation (in case the interpreter fucks something up in some rare case -- unlikely) Now integrated history and URI bar, separate search bar, (just different hotkey so technically same bar?), and real time history (not merely user submitted items)
-> Bookmarks+dmenu - simple pop up menu with pattern matching to find bookmark
-> History+dmenu -
-> Webkit backend (Same rendering engine as Chromium, Safari, Android browser, etc) -- excellent standards compliance, works with pretty much everything *
-> general purpose prefix modifiers - configure in config.h prior to compilation. An example for loading a reddit subreddit is included (in url bar - Alt-g, "rdt: askreddit" will go to "http://www.reddit.com/r/askreddit/")
WIP/dev stuff (formerly coming soon):
-> Fixed a bug occuring when page finished loading; the status displayed 0%
-> private mode browsing, recent page caching
-> Added WebViewInspector (web developer element/page/whatever inspector, standard from webkit)
-> get some sleep
-> Userscript support ---- pretty much there just don't feel like writing parser for greasemonkey script metadata, might require my own header format for userscripts? Not unrealistic.
-> Native tabs (but it works perfectly in tabbed for now) ---- Working on integrating this and dmenu; likely will just tear out needed functions and strip the rest; I'd like to keep it one .c file and one config header, and <2000 loc, but I think that's more than realistic.
-> Spellcheck in text fields ---- This is technically implemented, but having some problems setting up gobjects and what the tits what's supposed to signal what, webkit has VERY poor documentation for some settings options
Source now defunct at that location, git/mercurial repo going up soon.
http://socr.uwindsor.ca/~lukawskc/softc ... rboat.html
Might as well ignore this as well. A cleaned up version is coming once my testing branch is polished (man pages are not updated, small quirky issues to pick out (such as the tld matching algorithm which should not be linear in complexity, it makes for the occasional laggy skip))
My slightly tweaked tabbed setup (recommended with motorboat for the sake of ease of use): tabbed-boat
Shell script to use tabbed-boat with motorboat: moboatt.sh
Original tabbed: tabbed
MIT/X11 Licence
//outdate also
This is not a crazy concept, however extremely useful and a little bit more work to implement in C.
Initial Mode:
Switch Mode to Wolfram:
Type Query:
Results:
Initial Mode:
Switch Mode to Wolfram:
Type Query:
Results:
I'm looking for feedback on features, how they can be improved, collaboration if you've got an idea, or just ideas you'd like to see in general. This project is meant to be a learning experience.
Thanks and credit goes out to suckless software, myself, and M. Renaud.