nihilowy / surfer Goto Github PK
View Code? Open in Web Editor NEWSimple keyboard based web browser
License: GNU General Public License v2.0
Simple keyboard based web browser
License: GNU General Public License v2.0
I have headache , and dont feel very well .
you can comment here if you wont or even send scripts /patches :))
when surfer exit , webkitwebprocess remained and takes lots of menory.
It would be cool if it was possible to inject JavaScript and CSS resource files.
Since commit 6e22c33 surfer refuses to start with a "bufferoverflow" on my musl based linux.
installation with make is set to install to $(DESDIR)/usr/...
this makes it so that i cant install to /usr/local because if i set DESTDIR=/usr/local , then it will install to /usr/local/usr/bin/surfer.
simply removing the /usr from the installation locations would allow it to work.
adding DESTDIR :=
This is a great kiosk browser. It would be awesome if we could set the zoom amount at start with a flag.
surfer --zoom=0.7 http://localhost/
yo thank you very much for the change to use .surfer
now i was thinking
its possible to make the style be always used?
i'm using this one to hide ads
http://floppymoose.com/
works very well for surf and surfer
but having to enable it every time is annoying
so i ask if you could add an option to always use the style
change to something like
always use the file in ".surfer/style.css"
and hit Ctrl + Shift + s to disable it
would make more sense, if someone already have the file in the folder its because he wants to use it
Really loving this browser Has a lot of useful features but would be great. But would be epic if it could support extensions too.
so yeah i wanted to ask for more stuff
first, if you could add an indicator in the name of the window of how much the page has loaded
like
loading "[33%] GitHub - Mozilla Firefox"
and after loading "GitHub - Mozilla Firefox"
(firefox as example)
second, an option to disable or change the way the browser handles the cookies
#define SURFER_COOKIE_POLICY WEBKIT_COOKIE_POLICY_ACCEPT_ALWAYS
to something like
always = accept all cookies
no third-party = do not accept third-party cookies and cookies from unvisited sites
disabled = do not accept cookies
3rst, i think this one might be really hard to add
but i ask if you could add an option to choose where the user want to save a file
instead of saving it to "downloads", i know its faster
but i think its better to be asked where i want to save the file
for example, i like to save some images in /tmp, because its just some meme that i want to send to someone, the image will be deleted when i restart my computer
just that
everything else in surfer is awesome, i'm loving it
keep the awesome work
Hello, your github repository lack a license, in your AUR pkgbuild is indicated GPL(2), please add it here
Your AUR pkgbuild lacks a pkgver() function and release 4 don't exist,
https://wiki.archlinux.org/title/VCS_package_guidelines#The_pkgver()_function
Attached there both a revisioned pkgbuild and patch
i was thinking about using surfer for web development
you think its possible to have live update on surfer?
to see the page changing while i edit it
and a option to save the file or files
maybe this is already possible and i just don't know how
i'm talking about using the web inspector
Hello,
I am unable to package surfer with the provided Makefile because DESTDIR
and INSTALLDIR
are used.
Why not just use DESTDIR
?
However I can use a simple sed to fix this.
Greetings
I made an icon In Blender 3D
see if you like
Icons.zip
yeah 8x8 too lol
also close the other issues
ayo i don't like google, i tried changing it on config.h and surfer.c but they didn't change
is it hardcoded?
i think you should close the other ones
ok , this time
the videos are still broken
but i can use mpv
i think you should change "(null)" to "surfer"
when i open surfer the title of the window is "(null)"
listing the bookmarks
if i open any page and hit "ctrl + h" i will go to the bookmarks page but the window will have no title
i think this might be easy to do by just changing the <title></title> in the html file
just add <title>something here</title> in the html file
also i'm learning C
so, maybe in 10 years i can help this project for real
the browser is working great
still feels some stuttering over time
maybe the problem wasn't web-gl?
things that would be great are
notifications
be able to copy and paste images
right now "copy image" and "copy image address" do just the same thing
and its not possible to paste images
i have to drag from the file manager to the window
if i try to open the file manager to find a image i can't see the preview
so dragging the file is the best way right now
change black.css to style.css ( would make more sense )
and change " ctrl + / " to " ctrl + \ " ( they are near each other)
have a better way to show the loading progress
if the window is maximized, make the browser show a line with the text of the percentage of the page loading, and it disappears when it reaches 100%
the user can click in the line to make it disappear or disable it in the surfer.c file
maybe last thing for the future
but you could implement a configuration file
instead of having to edit the surfer.c
the user could just edit a config file with the options he wants
and this would also help you to make the code cleaner
on some sites like google js crashes happens . Probably putting these to .bashrc helps
export JavaScriptCoreUseJIT=0
export JSC_useBaselineJIT=false
particularly 4k 60fps youtube barely works at all (perfectly smooth for me in other browsers, although epiphany seems unhappy about resizing videos while playing...)
yo man, what are the news?
i haven't been using surfer for somedays
i'll try again, i hope the problem with the videos is gone now
yeah videos and gifs are still broken
i tried to use sway but got so many problems with the configuration that i just gave up
and about learning C
i'm not going good, i don't understand
i think i am starting wrong
how should i start learning C?
so yeah
i was using discord on surfer
but when i clicked in the gif icon and the tenor thing loaded
the cpu usage went crazy, the fan started spinning super fast and the entire system got slow
this doesn't happen in surf or epiphany
so something very serious is happening here
when surfer tries to load the tenor page with a bunch of gifs
platform: archlinux-amd64
==> Starting build()...
cc -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wno-deprecated-declarations -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -o surfer surfer.c
pkg-config --cflags --libs libnotify gtk+-3.0 glib-2.0 webkit2gtk-4.0
-DEXTENSION_DIR="/usr/lib/surfer/"
-DDEBUG=0 -lm
surfer.c: In function ‘permission_request_cb’:
surfer.c:652:49: error: format not a string literal and no format arguments [-Werror=format-security]
652 | msg);
| ^~~
In file included from /usr/include/glib-2.0/glib.h:62,
from /usr/include/gtk-3.0/gdk/gdkconfig.h:8,
from /usr/include/gtk-3.0/gdk/gdk.h:30,
from surfer.c:25:
surfer.c: In function ‘png_finished’:
surfer.c:1611:18: warning: format ‘%s’ expects argument of type ‘char *’, but argument 4 has type ‘GError *’ {aka ‘struct _GError *’} [-Wformat=]
1611 | g_error( "error creating snapshot: %s",error );
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~
| |
| GError * {aka struct _GError *}
/usr/include/glib-2.0/glib/gmessages.h:337:32: note: in definition of macro ‘g_error’
337 | VA_ARGS);
| ^~~~~~~~~~~
surfer.c:1611:45: note: format string is defined here
1611 | g_error( "error creating snapshot: %s",error );
| ~^
| |
| char *
cc1: some warnings being treated as errors
make: *** [Makefile:18: surfer] Error 1
==> ERROR: A failure occurred in build().
Aborting...
error: failed to build 'surfer-git-4-0':
error: packages failed to build: surfer-git-4-0
i think its better to remove these
#define SURFER_TMPDOWNLOADS "/tmp"
#define SURFER_PLAYER "mpv"
for /tmp the browser already asks where to save the file
so its ok
and SURFER_PLAYER can easily be done with a simple script in dmenu
so you could do like that
instead of opening a link with mpv
you could change it to
"open link with"
and the user could decide what programs go into the list of "open link with"
like
mpv, vlc, audacious, mocp
update:
OK . Now is ok. Problems with crashes and also performence are easy to solve instaling
libva-intel-driver. (about 2008 an on igpu)
see i don't know how easy it is to do because i'm not a programmer
but here is my idea
instead of editing the main surfer.c file to add new features
you could keep the surfer.c clean with only basic things
and for each feature you create a new small .c file
making it easier to maintain
and i saw this from the wine-tkg
you could make the make file read a txt file from the surfer folder for example
and in this txt file the user can specify what features he want enabled and disabled during the compilation
thing1 = on
thing2 = on
thing3 = off
this way the files will survive "git pull"
and also possible to change the PKGBUILD file to compile only what the user wants from the browser
so in the future you can work more in the small .c file to fix or enhance any feature
instead of having to edit the main surfer .c
and i think the idea of being able to disable something in the browser could be a feature of surfer
like, if the user don't like something he can just disable it from the compilation
Currently it seems like it waits for all resources to finish loading before showing the page. This makes it e.g. take ages when accessing wikipedia.org, which really should not take that long to show. Perhaps there could be some configuration option to make it show the page instantly without waiting for the assets to load?
Hey,
I love Suckless Surf, so found this work. Thanks a lot for creating it!
I was wondering - if it currently implements support for downloading attachments ?
I went through the code, saw lots of disabled lines. Just wanted to ask here.
Cheers
Azer
i have been using surfer a lot
thinking what browser i should use as my main browser
tired of firefox
and Epiphany is horrible, god dammit i'm hating this browser, just keeps crashing and the "features" are really gnome like
got no idea what you could add to surfer
but its really good
good work
i've seen your new update
what is this private mode? how does it work?
also i was looking to test more wayland stuff and found this
https://github.com/natpen/awesome-wayland#Browser-without-X-library-dependency
look who is in the "Browser without X library dependency"
your browser is getting famous
can i change where the style sheet will be by just changing
#define USER_STYLESHEET_FILENAME "/usr/share/surfer/black.css" ?
or the program will always search in "/usr/share/surfer/black.css" ?
same for
#define WEB_EXTENSIONS_DIRECTORY "/usr/lib/surfer"
and i want to change where .fav and .hist are saved
hmm
also can you add a -h or --help option to show the keys configured in the browser?
aye your browser works very well
much batter than surf in my opinion
but i can't use tabbed
you have any idea how to use surfer in tabbed?
editing again
surfer isn't using /etc/hosts for some reason
it works in other browsers but not in surfer
and .css files
can i only use one .css file?
i want to use one for ads
and other for colors , but i think i can just make one with everything i need
Hey @nihilowy!
I've been working with your project and started a small personal fork, but I want to check in and see whether you'd accept any of my changes. Here's a small list of my changes:
.gitignore
Makefile
:
$INSTALLDIR
with $DESTDIR
PKGBUILD
: install to $pkgdir/opt
surfer.c
:
surfer.desktop
: Replace "Web" with "Surfer"You can also view my code at https://github.com/christianbundy/surfer. Please let me know whether you'd like any PRs, or whether I should continue just using my personal fork. Thanks for your work on this project!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.