Page 16 of 20

Posted: Mon 08 Apr 2013, 03:39
by starhawk
technosaurus wrote:btw I don't think there was a gtk1 opera, only qt3
From a few pages back... ;)
Last link tested in pUPnGO2012, IIRC it needs GTK+ but whatever. It also needs libpng and libjpg and probably other junk...

Posted: Wed 10 Apr 2013, 06:22
by technosaurus
I just built the latest netsurf-git with musl. Though the javascript support is still very minimal, the framebuffer version looks pretty good on the xcb backend

notes on the netsurf framebuffer version:
my build works with xcb in X or linux framebuffer and chooses the correct mode according to whether X is running (I didn't build the sdl, vnc or wayland backends and didn't actually test the linux framebuffer side)
rendering is extremely fast and light (<10mb ram)
I only builtin png, gif and jpeg support - not webp, jng, bmp or mng
It can support video via gstreamer, but it doesn't lend itself to a static build.
window size cannot be changed - I patched it to default to maximized rather than their default 800x600 (so it will work on 640x480 screens too)
I built it with javascript support but it doesn't seem to do any javascript (maybe my errror - will need to test further)
it has https and css support (unlike dillo)
the framebuffer doesn't support svg yet (though there is an example for rendering svg in the framebuffer sources, so it may be patchable)

The binary size is 2.6Mb with (apparently non-functional:() javascript support builtin or ~2Mb without it.... but most of the size is libcurl and libssl(for https) so it should be really small on a shared library build

any preferences on which build to test???
I am thinking the non-js version would be preferable for now... at least until I figure out how to get the js working.

Posted: Wed 10 Apr 2013, 07:48
by amigo
Actually, opera *did* use gtk1 -but that was a very long time ago opera 4 or 5 IIRC. It was still very buggy and low-featured in those days. Still, it would be nice if they open-sourced it.

Posted: Wed 10 Apr 2013, 13:58
by goingnuts
any preferences on which build to test???
I am thinking the non-js version would be preferable for now... at least until I figure out how to get the js working.
Sounds right - its looking good! Is it impossible to do a static build or was that just the gstreamer part?
Might also be a new back-port target (gtk2->gtk1...)?

Posted: Wed 10 Apr 2013, 14:06
by technosaurus
it looks to me (I ran ldd and strings on the binaries all the way back to 4.0) like opera for linux possibly began as motif and shifted to qt2 then qt3 and qt4 and now use an in house toolkit ... I also figured out that for versions <9.0, motif is required for plugins to work.

On a side note I now have a light svg viewer based on the netsurf framebuffer and libtinysvg (my build uses the xcb backend, but could be modified to use the linux framebuffer as well)

The static netsurf framebuffer tarball is too big to post

Posted: Wed 10 Apr 2013, 15:52
by Keef
I did a framebuffer build of Netsurf some time back. If you actually ran it in the framebuffer, it was impossible to exit, and also I think that links would not work, as in you had to type in URLs in the address bar.

Posted: Thu 11 Apr 2013, 15:18
by goingnuts
technosaurus: I cant run your binary - probably libc version problem. pUPnGO2012 support the framebuffer.

Posted: Thu 11 Apr 2013, 21:25
by technosaurus
goingnuts wrote:technosaurus: I cant run your binary - probably libc version problem. pUPnGO2012 support the framebuffer.
Wary's glibc somehow got linked in. Here is a static musl only rebuild of svgtiny, uploading pets of nsfb to my uis.edu page now too ... one with builtin (ugly but light/fast) fonts and the other with freetype support. The uncompressed binary is pushing 3Mb, but should be able to remove some unused font support and curl protocols (smtp, etc...) to reduce it closer to 2. It would be a lot smaller, but I added support for freetype fonts and javascript as well as bmp/ico, webp and svg images - the freetype version looks better than seamonkey

Notes: There is the option to build in support for pdf export and printing via libharu, but I don't see a way to actually do it in the framebuffer so I left it out for now. It also needs some form of download dialog - probably using the nsfbtk with curl since it is already included.

http://uisacad5.uis.edu/~bconroy/netsur ... 1-i486.pet
http://uisacad5.uis.edu/~bconroy/netsur ... 1-i486.pet

TODO - fix the x framebuffer backend (based on argv[0]?) to output a title for swallowing in jwm - could be useful for tray applets.

Posted: Fri 12 Apr 2013, 04:57
by mavrothal
technosaurus wrote: uploading pets of nsfb to my uis.edu page now too ... one with builtin (ugly but light/fast) fonts and the other with freetype support.
I tried your "heavy" freetype-version in my low-spec XOs running Precise-5.5 and the speed is jaw-dropping :shock: , while it handles A LOT of difficult sites, just fine :!:

I was wondering if there is any way to save user changes, ie, default font size, bookmarks, etc.
It supposes to save user data in ~/.netsurf but this folder is not generated and if you make it remains empty.
`about:config' also does not allow you to change anything.
Is it something that I miss/know how to do?

Thx

Posted: Fri 12 Apr 2013, 07:31
by technosaurus
mavrothal wrote:Is it something that I miss/know how to do?
If so, I missed it too even after looking through ~50% of the source. What would you like to see changed? I already rebuilt it to change the window size where you can see the on screen keyboard button... I'd like to see someone make an arm build for android tablets (the java/dalvik ones are pretty slow on low end tablets) Right now I am looking through the source to see where urls with unhandled mime types go so I can set up a handler to pass the url to (something like a download manager / xdg-open) ... right now it is basically a kiosk mode browser (the gtk version is much more robust)

Posted: Fri 12 Apr 2013, 08:52
by mavrothal
technosaurus wrote:
mavrothal wrote:Is it something that I miss/know how to do?
If so, I missed it too even after looking through ~50% of the source. What would you like to see changed?
Able to bookmark pages is major I believe, though this means that should not be in kiosk mode.
Also changing font size is important to compensate for different screen dpi densities (or eye sight :) ).

Another thing I noticed is the you can not have the rubber-band function in mouse either on the page body or the address field. Would be handy to have

Posted: Fri 12 Apr 2013, 10:03
by greengeek
Tried this one on Slacko53 and it seems to be pretty functional. I had a couple of minor issues - lots of image tearing when scrolling (fixed by clicking refresh) and the keyboard seemed to confuse some of the keystrokes. Couldn't sign in to my email till I figured out I had to use the " key when I wanted the @ sign. Good potential as a fast simple browser.

Posted: Fri 12 Apr 2013, 14:19
by goingnuts
Tested the freetype version in pupngo2012: Needs xserver with shm so installed the "pupngo_xorg_pack_412_static.pet". It works!
I thought the Xvesa was with shm support - will check up on that.
Could not run the nsfb from cli though.
Looking very promising :D :!:
Btw works in P412 as well...

Posted: Fri 12 Apr 2013, 19:49
by Keef
If you want a different window size, or start page, you can launch it with:

Code: Select all

nsfb -w 800 -h 600  murga-linux.com/puppy
You aren't able to save bookmarks as the framebuffer frontend is a bit crippled and basic. If you want that sort of thing, you will need the gtk stuff I believe.
I haven't had much luck with Techno's builds yet (tried both), keep getting segmentation faults (on Pupngo 2012, 412, and ThinSlacko).
For those who have had success, does the cursor show? It was invisible when I did it about a year ago (not static though, dont know how...)
And if anyone tries it on the framebuffer, can you quit without using the powerbutton?

Posted: Fri 12 Apr 2013, 20:40
by technosaurus
did anyone else notice you can also drag the screen like you would on a tablet (also pg up/down forces a redraw that fixes tearing) The history navigation window would make a good template for bookmarking, but the fbtk needs to add a popup window (for right click menu to include bookmark/download/view source/copy/paste etc..., javascript alerts, and others - it may be already be possible using some css tricks and existing fbtk widgets.

the paths in the pet are required, don't move them from /usr/local/share/netsurf or you will get segfaults... and truetype fonts must be in /usr/share/fonts/default/TTF as:

NETSURF_FB_FONTPATH := /usr/share/fonts/default/TTF
NETSURF_FB_FONT_SANS_SERIF := DejaVuSans.ttf
NETSURF_FB_FONT_SANS_SERIF_BOLD := DejaVuSans-Bold.ttf
NETSURF_FB_FONT_SANS_SERIF_ITALIC := DejaVuSans-Oblique.ttf
NETSURF_FB_FONT_SANS_SERIF_ITALIC_BOLD := DejaVuSans-BoldOblique.ttf
NETSURF_FB_FONT_SERIF := DejaVuSerif.ttf
NETSURF_FB_FONT_SERIF_BOLD := DejaVuSerif-Bold.ttf
NETSURF_FB_FONT_MONOSPACE := DejaVuSansMono.ttf
NETSURF_FB_FONT_MONOSPACE_BOLD := DejaVuSansMono-Bold.ttf
NETSURF_FB_FONT_CURSIVE := Comic_Sans_MS.ttf
NETSURF_FB_FONT_FANTASY := Impact.ttf

to change default settings try the css files in /usr/local/share/netsurf (one of them controls ad blocking too)

here is the code I modified in gui.c (process_cmdline) for x and linux backend to go full screen ... (it was defaulting to sdl and 800x600x32) if anyone cared to comment - I was just shotgunning it and probably need to close the (temporary) xcb connection

Code: Select all

	if (getenv("DISPLAY")){
#include <xcb/xcb.h>
		fename = "x";
		xcb_connection_t *c;
		int32_t screen_number; 
		xcb_screen_t     *screen;
		c = xcb_connect (NULL, &screen_number );
		screen = xcb_setup_roots_iterator(xcb_get_setup (c)).data;
		if (screen){
			fewidth = screen->width_in_pixels;
			feheight = screen->height_in_pixels - 48 ; //handle tray
			febpp = screen->root_depth;
		}
	}else{
#include <sys/ioctl.h>
#include <linux/fb.h>
		fename = "linux";
		struct fb_var_screeninfo variable_info;
		//ioctl (open ("/dev/fb0", O_RDWR), FBIOGET_VSCREENINFO, &variable_info);
		ioctl(STDOUT_FILENO, FBIOGET_VSCREENINFO, &variable_info);
		fewidth = variable_info.xres;
		feheight = variable_info.yres;
		febpp = variable_info.bits_per_pixel;
	}


	if ((nsoption_charp(homepage_url) != NULL) && 
	    (nsoption_charp(homepage_url)[0] != '\0')) {
		feurl = nsoption_charp(homepage_url);
	} else {
		feurl = NETSURF_HOMEPAGE;
	}
any preferences for homepage_url / NETSURF_HOMEPAGE?

Edit: framebuffer/fbtk/event.c should have this keymap instead:

static int sh_keymap[] = {
/* 0 1 2 3 4 5 6 7 8 9 */
-1, -1, -1, -1, -1, -1, -1, -1, 8, 9, /* 0 - 9 */
-1, -1, -1, 13, -1, -1, -1, -1, -1, -1, /* 10 - 19 */
-1, -1, -1, -1, -1, -1, -1, 27, -1, -1, /* 20 - 29 */
-1, -1, ' ', '!', '"', '~', '$', -1, '&', '"', /* 30 - 39 */
'(', ')', '*', '+', '<', '_', '>', '?', ')', '!', /* 40 - 49 */
'@', '#', '$', '%', '^', '&', '*', '(', ';', ':', /* 50 - 59 */
'<', '+', '>', '?', '@', -1, -1, -1, -1, -1, /* 60 - 69 */
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, /* 70 - 79 */
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, /* 80 - 89 */
-1, '{', '|', '}', '~', '_', '~', 'A', 'B', 'C', /* 90 - 99 */
'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', /* 100 - 109 */
'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', /* 110 - 119 */
'X', 'Y', 'Z', -1, -1, -1, -1, -1, -1, -1, /* 120 - 129 */
};

Posted: Sat 13 Apr 2013, 15:57
by Ibidem
http://comments.gmane.org/gmane.comp.we ... devel/9194
That's the state netsurf js was originally in, but...though they might have improved it, it sounds like improvements ran into "Can't do that yet".

But anyhow: a good page would be something related to puppy, but with a way to search...or Google.

Posted: Sun 14 Apr 2013, 02:20
by technosaurus
I fixed the keys and changed the homepage to the puppy standard. Is anyone interested in the vnc or wayland backend or have a reason to want sdl (sdl should be covered by wayland, linux and x) before I rebase my build environment (may do a gtk2 build in between)

Posted: Sun 14 Apr 2013, 10:58
by goingnuts
When running from CLI the error I get is:
ioctl(1,FBIOGET_VSCREENINFO,0xbff64890) = -1 EINVAL (Invalid argument)
exit_group(1)
Any chance to get CLI going as well?
Tested in pUPnGO with Xvesa with shm - runs but without any content. Not sure but maybe xserver needs some fontserver capabilities as well?
When switch to Xorg it runs ok...

Posted: Sun 14 Apr 2013, 17:55
by technosaurus
goingnuts wrote:When running from CLI the error I get is:
ioctl(1,FBIOGET_VSCREENINFO,0xbff64890) = -1 EINVAL (Invalid argument)
exit_group(1)
Any chance to get CLI going as well?
Tested in pUPnGO with Xvesa with shm - runs but without any content. Not sure but maybe xserver needs some fontserver capabilities as well?
When switch to Xorg it runs ok...
:oops:
I added this code, note the //comment ... I was just guessing from some other code
It can probably just be removed and replaced with the standard default 800x600x32 (which can be overridden)

Code: Select all

#include <sys/ioctl.h> 
#include <linux/fb.h> 
      fename = "linux"; 
      struct fb_var_screeninfo variable_info; 
      //ioctl (open ("/dev/fb0", O_RDWR), FBIOGET_VSCREENINFO, &variable_info); 
      ioctl(STDOUT_FILENO, FBIOGET_VSCREENINFO, &variable_info); 
      fewidth = variable_info.xres; 
      feheight = variable_info.yres; 
      febpp = variable_info.bits_per_pixel; 
   } 

Posted: Mon 15 Apr 2013, 06:14
by technosaurus
I redid the xcb/framebuffer logic and rebuilt
http://uisacad5.uis.edu/~bconroy/nsfb-git-i486.pet
Note: this is a temporary location - please mirror.