107 Commits

Author SHA1 Message Date
Christoph Lohmann 3393ded725 Bumping up to 0.7 for release. 2015-12-19 15:59:30 +01:00
Christoph Lohmann cd7f831776 Remove unncessary includes. 2015-12-17 23:38:51 +01:00
Ivan Tham 86efaf8093 proxy-uri -> proxy-resolver for no_proxy; add #inc
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-12-17 23:36:56 +01:00
Ivan Tham 9fa4ffef72 Fix title handling
1. file:/// stay the same when you navigate
    2. Fix "http://~" to "file://~" in home dir
    3. Expands "file://~" to "file://home/user"

Thanks to quinq for fixing the issue #1 in commit 934705c in surf2.

Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-12-12 11:54:28 +01:00
Michael Stevens 002e82d188 Fix spelling of otherwise in surf.1
Add more spelling to surf.

Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-12-08 18:26:30 +01:00
Alexander Huemer bae5a785b3 remove duplicate header inclusion of string.h
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-11-22 12:34:54 +01:00
Ivan Tham b7a359a84f Fix cookies wording
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-11-18 08:58:18 +01:00
Quentin Rameau 9b1e1873b0 buildfile: don't forget to free temporary string bpath
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-11-04 16:47:04 +01:00
Quentin Rameau 5333171961 Be more specific about what enablestyles parameter does.
The enablestyles configuration variable and parameter flag manages the
global application of styles, not just the site-specific styles.

Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-11-03 19:45:50 +01:00
Quentin Rameau 2223e9ed22 Fix inspector handling when inspector is disabled.
Do not try to show the inspector window when the inspector is disabled.

Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-11-03 19:45:04 +01:00
Quentin Rameau 1ebb5c624e Fix usage(), -m and -M for styles were absent.
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-11-03 19:44:20 +01:00
Quentin Rameau 9a2547230a Fix fullscreen handling
Handle the fullscreen in a more consistent way with other options:
-f disables fullscreen while -F enables fullscreen.

Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-11-03 19:44:05 +01:00
Quentin Rameau 0290066b31 Add setstyle()
Regroup style uri setting application calls under one function.

Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-10-31 17:50:06 +01:00
Quentin Rameau d84fe71094 Fix style files handling: stop leaking strings.
Everytime getstyle() was being called, we returned newly allocated
strings without ever freing them.
Now uri stylefiles only get allocated once at setup().

Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-10-31 17:50:03 +01:00
Christoph Lohmann d486169fa4 Style changes in config.def.h. 2015-10-31 17:49:36 +01:00
Quentin Rameau c65c8d422b Continue style fixing: function declarations, code alignement
Here are the changes we discussed on the mailing-list.
Alignement is pushed to the first parameter of the function, which seems
to be what people agrees on.

Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-10-20 17:52:54 +02:00
Markus Teich 9f5c6ff8d7 style fixes: space after keywords, () with sizeof
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-10-18 23:01:56 +02:00
Markus Teich c2bb8d0325 whitespace fixes
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-10-18 23:01:52 +02:00
Markus Teich 6a65dcb394 fix style path generation
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-10-18 16:34:11 +02:00
Christoph Lohmann c81fbbaf43 Style cleanup. 2015-10-13 21:48:38 +02:00
Quentin Rameau 8a898ec4df Fix the way system files are handled at surf startup.
1. Do not chmod existing directories.
2. Fix the handling of tilde expansion in paths, don't expand ~foo to
   $HOME/foo but to foo's home directory.
3. Separate the creation of files and directories. We don't have to
   worry anymore about pathnames having to end with a '/' to be correctly
   handled.

Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-10-13 21:45:14 +02:00
Quentin Rameau 1554354f16 Fix atom value parsing in SETPROP
xprop(1) encloses the returned atom string value in double quotes while
it doesn't when the value is unset. Original simple parsing would fail
and parse the atom name instead of getting an empty value.

Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-10-13 14:28:09 +02:00
Christoph Lohmann 3c2acda0b7 Remove the pax intermediary.
Compile webkit without jit and you don't need to disable mprotect.
2015-09-08 20:28:11 +02:00
Christoph Lohmann 8e88984a40 Fixing the paxctl check.
Thanks quinq for the tip.
2015-08-19 06:28:31 +02:00
Christoph Lohmann 294142a806 Add PaX support.
Mprotect needs to be turned off for Webkit.
2015-08-18 18:21:34 +02:00
GhostAV 957a6f0812 Torified surf is unstable
On Tue, Aug 18, 2015 at 12:38:40PM +0200, Gabriel Pérez-Cerezo wrote:
> It really seems  to be a problem with torsocks.  I have already solved
> this problem with a patch GhostAV just  sent me on this list that adds
> SOCKS support to surf. It works fine now.

As i failed to send the patch to the list, i resend it now:
-- >8 --
From: Jonas Rabenstein <jonas.rabenstein@studium.uni-erlangen.de>
Subject: [PATCH] allow sock proxies

Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-08-18 17:43:18 +02:00
Quentin Rameau 9b6998e7ae Fix type of strictssl property.
Thanks to Mark Edgar <medgar123@gmail.com> for having spotted this.
2015-07-13 13:31:22 +02:00
Christoph Lohmann b4ca032b8c Removing the debug print from the last commit. 2015-02-10 19:06:56 +01:00
Markus Teich 29c2ab207a allow buttonrelease customization in config.h
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-02-10 19:05:39 +01:00
Greg Reagle f7e358280c surf: see hover URL without changing title
On Tue, Jan 27, 2015, at 11:52 AM, Christoph Lohmann wrote:
> Then hook to the window leaving event in GTK or X11 and set the title to
> your needs. I will welcome a patch.

Patch is attached.  I am a total novice in GTK programming, so I don't
know what type the callback function is supposed to be (hence the void
pointers) or whether I registered it properly.  But it does work well
for me.

--
http://www.fastmail.com - Access your email from home and the web

From a33f06da092bf920b6a286ea7688b32944d79a50 Mon Sep 17 00:00:00 2001
From: Greg Reagle <greg.reagle@umbc.edu>
Date: Tue, 27 Jan 2015 13:22:15 -0500
Subject: [PATCH] ensure that window title is web page title (not hover link)
 when leaving window

Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-02-03 17:25:26 +01:00
Christoph Lohmann b3a4392923 Some cleanup in style. 2015-02-03 17:17:04 +01:00
Christoph Lohmann b1c5e594d1 Describe the web page indicators too. 2015-01-26 21:47:18 +01:00
Christoph Lohmann e573e094d6 It wasn't really clear what was meant with site indicators in the manpage. 2015-01-26 21:44:54 +01:00
Greg Reagle ee6376ea1e surf: documented indicators in man page
Patch attached.

--
http://www.fastmail.com - The professional email service

From 4a64624fee94c16c093d2b192389bad9bd6675d8 Mon Sep 17 00:00:00 2001
From: Greg Reagle <greg.reagle@umbc.edu>
Date: Mon, 26 Jan 2015 14:29:05 -0500
Subject: [PATCH] Documented indicators

Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-01-26 21:44:09 +01:00
Markus Teich 90de5cdd15 fix stylesheet interna.
* no more segfault when running `surf -m`
* allow to enable custom styles after `surf -m` with mod+shift+m
* use enablestyles instead of the webkit-setting, which clears things up a bit

Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-01-20 17:45:04 +01:00
Christoph Lohmann 344efec3fb Only plumb some URI, when it's ASCII. 2015-01-20 17:38:22 +01:00
Christoph Lohmann d4e31d9472 Oh my blob!
Adding blob: to the URIS handled by the browser.
2015-01-20 01:59:53 +01:00
Christoph Lohmann 68813b3a46 Data: is part of the browser too. 2015-01-19 22:51:29 +01:00
Christoph Lohmann 87224dcdfa file:// should be handled in surf too. 2015-01-19 22:43:42 +01:00
Christoph Lohmann d511226ea6 Remove the debugging from the testing. 2015-01-19 22:31:31 +01:00
Christoph Lohmann b36921fbe8 Add some description for the plumb feature. 2015-01-19 22:16:07 +01:00
Christoph Lohmann 9c3b5ad353 Add plumbing functionality. 2015-01-19 22:15:18 +01:00
Christoph Lohmann 7c34d5061e Add a comment about how the styles are iterated.
Thanks quing for noticing.
2015-01-18 14:41:20 +01:00
Christoph Lohmann 9333d5d727 My CMD was too short. :O
Thanks Carlos Torres for mentioning this.
2015-01-18 11:44:39 +01:00
Christoph Lohmann e7d1c09916 Add the manpage changes for the disk cache support. 2015-01-17 20:52:16 +01:00
Christoph Lohmann 117d484833 Adding disk cache support for soup.
This is a merge of the patch of Ben Woolley <tautolog@gmail.com>
2015-01-17 20:50:21 +01:00
Ben Woolley 24ec46fc24 Fix extra newline, and add -g where other switches are forwarded.
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-01-17 07:23:48 +01:00
Christoph Lohmann a5b85836ac Newer libc want _DEFAULT_SOURCE. 2015-01-17 07:21:15 +01:00
Christoph Lohmann c2da2bae5d Major styles update.
In config.h there is now some styles array to apply site-specific styles.
This can be toggled using the -mM flags. If a stylefile is manually specified,
then this will overwrite everything.
2015-01-17 07:19:48 +01:00
Jakukyo Friel c467e5a3b3 Fix a typo in surf manual.
`Ctrl-/` displays incorrectly in `man surf` on my machine.

A patch is attached.

(You also access it here:
https://github.com/weakish/surf/commit/07e97eccedd96eabf14b2fbf77de75ec1b594d97)

----

 surf.1 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-01-02 14:18:23 +01:00
Christoph Lohmann 3e89b4451c Minor style change. 2014-09-28 08:03:42 +02:00
Christoph Lohmann dd705d43eb Make »Copy image address« work.
Thanks yui@blekksprut.net for the patch!
2014-09-28 08:02:48 +02:00
Christoph Lohmann 531f71f851 Mention xdotool in SEE ALSO too. 2014-08-07 17:35:27 +02:00
Christoph Lohmann d5b04aac60 Fix the manpage about xid.
Something was missing from this one sentence. Now it is complete.
2014-08-07 17:34:43 +02:00
Christoph Lohmann bb287fa2e8 Add a FAQ to surf. 2014-08-04 17:54:00 +02:00
Christoph Lohmann 285cc3843f Add information about the dmenu requirement.
Thanks <surfsup@inbox.lv>!
2014-05-17 19:24:25 +02:00
Markus Teich ea9d60c5c0 fix some indentation in config.def.h
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2014-02-28 18:16:22 +01:00
Christoph Lohmann f8f0c30f3e Enable resizable text areas. 2014-02-16 17:17:15 +01:00
Quentin Rameau a8267f7b95 deprecating signal “populate-popup” for “context-menu”
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2014-02-08 20:05:38 +01:00
Quentin Rameau 618c3dfd52 Prevent title from being empty when following an anchor
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2014-02-08 14:03:22 +01:00
Quentin Rameau 3cc5f87db8 deprecating signal “title-changed” for “notify::title”
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2014-02-06 19:14:36 +01:00
Christoph Lohmann 637902b452 The check for NULL is not necessary before free. 2014-02-06 16:49:26 +01:00
Christoph Lohmann 127dc366ef Removing a memory leak when u wasn't freed. 2014-02-06 06:47:22 +01:00
Christoph Lohmann 361da0b3c4 Making the empty title possible. 2014-02-05 21:14:16 +01:00
Quentin Rameau b7435badc2 Draw flags on window creation
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2014-02-05 20:17:35 +01:00
Quentin Rameau 4b623bd28a Keep cookie policies for new windows
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2014-02-05 20:17:26 +01:00
Christoph Lohmann 7ad886fb0b Change the accept no third party in the doc to the right meaning. 2014-01-30 20:57:24 +01:00
Christoph Lohmann fa9b187393 Add the commandline flag for the cookie policies too. 2014-01-30 20:47:03 +01:00
Christoph Lohmann 780cca964c Add a way to define the cookie policy.
This adds the -a flag to define a string of the toggle string for the cookie
policy modes. There is now a new »cookiepolicies« string in config.h and the
Mod+Shift+a now can toggle the policy but will not cause a reload, because
this would only add a burden when toggling through accept and not accept.

Thanks Quentin Rameau <quinq.ml@gmail.com> for the suggestions!
2014-01-30 20:36:06 +01:00
Christoph Lohmann e4869357f1 Replacing the deprecated ssl-ca-file with tls-database.
Thanks Steve Dee <mrdomino@gmail.com>!
2014-01-30 19:39:32 +01:00
Christoph Lohmann a78aec6630 Fix the ssl trusted check.
Thank you Steve Dee <mrdomino@gmail.com>!
2014-01-30 19:35:54 +01:00
Christoph Lohmann 9eedabe348 Make surf set the URI atom right on manual URI entering. 2014-01-13 17:58:45 +01:00
Christoph Lohmann 432f45a852 Add zoom level support. 2013-10-19 18:55:53 +02:00
David Dufberg 7e9a37f25f c->uri is unused
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2013-10-10 18:49:26 +02:00
Christoph Lohmann 83df29393f Make it possible to open a link in a new window with holding the mod key.
Thanks David Dufberg Tøttrup <david@dufberg.se>!
2013-09-07 11:55:23 +02:00
Christoph Lohmann f3d97922e9 Add a flag to disable fullscreen.
This also updates the usage of surf to represent the current status.
Thanks Alexander Sedov for the suggestion, but you forgot the manpage
entry so I did this patch.
2013-08-31 20:00:41 +02:00
Christoph Lohmann 237e10058a Add fullscreen mode as flag and config option. 2013-08-25 19:50:40 +02:00
Christoph Lohmann 058f7f45e2 Just some comment correction. 2013-08-09 01:36:51 +02:00
Anselm R Garbe 7001df98d1 applied Nick's 96dpi patch, thanks 2013-07-20 08:52:10 +02:00
Christoph Lohmann 2e978627dd Setting the cookie file on new instances. 2013-07-12 06:52:37 +02:00
Christoph Lohmann 0b44a5948e Updating the TODO file. 2013-06-21 07:02:45 +02:00
Christoph Lohmann c234737bea Adding a common way to enable and disable features. 2013-05-21 21:30:00 +02:00
Christoph Lohmann 4f45ae9307 There's only one escape. 2013-05-14 20:57:35 +02:00
Christoph Lohmann ffaf10bd8f Correcting the backslash in the surf manpage. 2013-05-11 22:01:02 +02:00
Christoph Lohmann 067c313e6c Allowing geo location policy decisions. 2013-04-28 21:26:56 +02:00
Alexander Sedov d0309a1a22 Disabling WebKit deletion interface feature by default.
Webkit has an amazing "feature" that shows black outline with cross
around some randomly chosen text fields. Its only fucntion is to
clear field. It's ugly and gets in the way when trying to actually
ready what you've written, so here's a patch to disable it.

Signed-off-by: Christoph Lohmann <20h@r-36.net>
2013-04-17 19:26:12 +02:00
Christoph Lohmann 083ea8ecde Add an option to disable the indicators. 2013-04-14 14:26:44 +02:00
Nick White a383964c95 Ensure curl follows redirects for downloads
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2013-03-31 11:57:34 +02:00
Alexander Sedov e0e4a844f7 A typo in SETPROP macro: should be `printf %b'', not `printf''.
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2013-03-30 06:49:57 +01:00
Alexander Sedov f6dc8b2541 Fixed SETPROP() macro behaviour in config.def.h to handle escapes correctly.
xprop prints information in format PROPERTY(STRING) = "escaped string",
which causes problem with repeated Ctrl-F: any non-ascii turns into
\ooo\ooo, this later turns into \\ooo\\ooo, and so on. To de-escape
string, printf(1) is used, getting information from xargs -0; without -0
xargs will try to handle escapes by itself and also do shenanigans
with quotes, which is totally undesired.

Signed-off-by: Christoph Lohmann <20h@r-36.net>
2013-03-21 18:10:35 +01:00
Christoph Lohmann 12101938d8 There are people not reading the existing code.
I fucking hate to have to correct all of this. People learn to read!
2013-03-15 18:37:12 +01:00
Alexander Sedov bccfe2a9a5 Fixed keys handling for multilayout environments.
There is a bug in GTK+ that does not allow capturing shortcuts using
letter keys on layouts other than "us". The bug is there for ages and
there is probably no hope that it will get fixed. This patch switches
shortcut handling method to GtkAccelGroup, which handles this case
correctly. Enjoy!

Signed-off-by: Christoph Lohmann <20h@r-36.net>
2013-03-15 18:34:31 +01:00
Christoph Lohmann dcb4f81ad2 Removing the .hgtags file. 2013-03-15 14:13:20 +01:00
Christoph Lohmann a69c41ccac Support relative paths for surf.
Thanks Kurt Van Dijck <kurt.van.dijck@eia.be>!
2013-03-14 19:14:44 +01:00
Christoph Lohmann d02f73d990 Adding a default font size option.
Thanks Alexander Sedov <alex0player@gmail.com>!
2013-03-14 06:35:42 +01:00
Alexander Sedov a5dddd8fd3 Fix output redirection in surf-open.sh
Incorrect order of output rediection specifiers was causing useless
text appearing in terminal when starting surf-open (for example,
BadWindow error from xprop when tabbed window is already closed).
It isn't now.

Signed-off-by: Christoph Lohmann <20h@r-36.net>
2013-03-14 06:33:02 +01:00
Christoph Lohmann c6fbbd9dc6 Fixing kiosk mode when a new surf instance is run. 2013-03-11 22:08:14 +01:00
Christoph Lohmann badb84387e Adding kiosk mode.
Thanks to Christian Hesse <mail@eworm.de>!
2013-03-11 21:26:22 +01:00
Carlos J. Torres fe3bd631d4 disable/toggle scrollbars
* add flag to main
	* add flag to manual
	* add signal handler to block default scrollbar policy
	* add toggle of scrollbars (hacky - but no reload) with a twitch
	* add key map to manual
	* add commandline flag to children surfers
	* update TODO
	* sort stuff alphabetically for the style inquisition

Signed-off-by: Christoph Lohmann <20h@r-36.net>
2013-02-25 13:42:19 +01:00
Christoph Lohmann 69004b2ff6 Style inquisition. 2013-02-17 00:37:43 +01:00
Christoph Lohmann bd5bbb7fc3 Add a toggle command for the stylefile.
The patch adds some better formatting for the manpage too.

Thanks to Nick <suckless-dev@njw.me.uk> for the toggle patch!
2013-02-16 16:18:05 +01:00
Christoph Lohmann 3e972f8e2a The Item struct is not used. 2013-02-15 17:43:42 +01:00
Jens Nyberg 053a8f1a73 Fixed a bug in pagestat
Forgot to add a null character at the end.

Signed-off-by: Christoph Lohmann <20h@r-36.net>
2013-02-15 17:42:06 +01:00
Carlos J. Torres ba634ea8e3 fix DOWNLOAD macro to use cookiefile variable
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2013-02-13 06:49:17 +01:00
Jens Nyberg 24f0f83197 Changed character for non-encrypted page
-/T/U: No SSL, Trusted SSL, Untrusted SSL

Signed-off-by: Christoph Lohmann <20h@r-36.net>
2013-02-12 21:32:07 +01:00
Jens Nyberg 3c1ed5d56a Removed progress indicator
This removes the progress indicator and replaces it with
letters in the window title.

T/U: Trusted, Untrusted
P/-: Proxy, No proxy

Signed-off-by: Christoph Lohmann <20h@r-36.net>
2013-02-12 21:10:43 +01:00
Shayan Pooya 27dac4a157 Remove the redundant ctrl-l and ctrl-h description from the man page.
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2013-02-11 20:20:07 +01:00
9 changed files with 1322 additions and 590 deletions
-10
View File
@@ -1,10 +0,0 @@
d8628fc93353faa411c9fc7eef82d11a84d26ae2 0.1
d8628fc93353faa411c9fc7eef82d11a84d26ae2 0.1
9c8ebcf54061112b5979742b403de26fc94007ff 0.1
3ef997607115303fe93873b592d152f0ec186f77 0.1.1
bffb0c3c23410ac7f260d167f4b9771497fc1127 0.1.2
a5db79d487c85615be2ecf30815c6b4977e88000 0.2
46d516fd216731adf91740496e6823c1be4f6199 0.3
ac8e058003ed2c0974529808752e5da7692fd7d8 0.4
71388899ac09d21e6c93518cc57a28395034f63c 0.4.1
f0cea0f2bfc6a32a0e352b6c69d781f1dbddbcda 0.5
+10
View File
@@ -0,0 +1,10 @@
# Frequently Asked Questions
## Surf is starting up slowly. What might happen?
The first suspect for such a behaviour is the plugin handling. Run surf
on the commandline and see if there are errors because of »nspluginwrap
per« or failed RPCs to them. If that is true, go to ~/.mozilla/plugins
and try removing stale links to plugins not on your system anymore. This
will stop surf from trying to load them.
+4 -2
View File
@@ -6,6 +6,7 @@ Requirements
------------ ------------
In order to build surf you need GTK+ and Webkit/GTK+ header files. In order to build surf you need GTK+ and Webkit/GTK+ header files.
In order to use the functionality of the url-bar, also install dmenu[0].
Installation Installation
------------ ------------
@@ -26,7 +27,7 @@ See the manpage for further options.
Running surf in tabbed Running surf in tabbed
---------------------- ----------------------
For running surf in tabbed[0] there is a script included in the distribution, For running surf in tabbed[1] there is a script included in the distribution,
which is run like this: which is run like this:
surf-open.sh [URI] surf-open.sh [URI]
@@ -34,5 +35,6 @@ which is run like this:
Further invocations of the script will run surf with the specified URI in this Further invocations of the script will run surf with the specified URI in this
instance of tabbed. instance of tabbed.
[0] http://tools.suckless.org/tabbed [0] http://tools.suckless.org/dmenu
[1] http://tools.suckless.org/tabbed
+1 -2
View File
@@ -1,8 +1,7 @@
# TODO # TODO
* suckless adblocking * suckless adblocking
* integrate the WebKitWebInspector API * replace twitch() with proper gtk calls to make scrollbars reappear
* make scrollbars a switch and allow them to be disabled
* replace webkit with something sane * replace webkit with something sane
* add video player options * add video player options
* play in plugin * play in plugin
+63 -17
View File
@@ -1,32 +1,45 @@
/* modifier 0 means no modifier */ /* modifier 0 means no modifier */
static char *useragent = "Mozilla/5.0 (X11; U; Unix; en-US) " static char *useragent = "Mozilla/5.0 (X11; U; Unix; en-US) "
"AppleWebKit/537.15 (KHTML, like Gecko) Chrome/24.0.1295.0 " "AppleWebKit/537.15 (KHTML, like Gecko) "
"Safari/537.15 Surf/"VERSION; "Chrome/24.0.1295.0 Safari/537.15 Surf/"VERSION;
static char *progress = "#0000FF";
static char *progress_untrust = "#FF0000";
static char *progress_trust = "#00FF00";
static char *progress_proxy = "#FFFF00";
static char *progress_proxy_trust = "#66FF00";
static char *progress_proxy_untrust = "#FF6600";
static char *stylefile = "~/.surf/style.css";
static char *scriptfile = "~/.surf/script.js"; static char *scriptfile = "~/.surf/script.js";
static char *styledir = "~/.surf/styles/";
static char *cachefolder = "~/.surf/cache/";
static Bool kioskmode = FALSE; /* Ignore shortcuts */
static Bool showindicators = TRUE; /* Show indicators in window title */
static Bool zoomto96dpi = TRUE; /* Zoom pages to always emulate 96dpi */
static Bool runinfullscreen = FALSE; /* Run in fullscreen mode by default */
static guint defaultfontsize = 12; /* Default font size */
static gfloat zoomlevel = 1.0; /* Default zoom level */
/* Soup default features */
static char *cookiefile = "~/.surf/cookies.txt"; static char *cookiefile = "~/.surf/cookies.txt";
static time_t sessiontime = 3600; static char *cookiepolicies = "Aa@"; /* A: accept all; a: accept nothing,
* @: accept all except third party */
static char *cafile = "/etc/ssl/certs/ca-certificates.crt"; static char *cafile = "/etc/ssl/certs/ca-certificates.crt";
static char *strictssl = FALSE; /* Refuse untrusted SSL connections */ static Bool strictssl = FALSE; /* Refuse untrusted SSL connections */
static int indicator_thickness = 2; static time_t sessiontime = 3600;
/* Webkit default features */ /* Webkit default features */
static Bool enablescrollbars = TRUE;
static Bool enablespatialbrowsing = TRUE; static Bool enablespatialbrowsing = TRUE;
static Bool enablediskcache = TRUE;
static int diskcachebytes = 5 * 1024 * 1024;
static Bool enableplugins = TRUE; static Bool enableplugins = TRUE;
static Bool enablescripts = TRUE; static Bool enablescripts = TRUE;
static Bool enableinspector = TRUE; static Bool enableinspector = TRUE;
static Bool enablestyle = TRUE;
static Bool loadimages = TRUE; static Bool loadimages = TRUE;
static Bool hidebackground = FALSE; static Bool hidebackground = FALSE;
static Bool allowgeolocation = TRUE;
#define SETPROP(p, q) { \ #define SETPROP(p, q) { \
.v = (char *[]){ "/bin/sh", "-c", \ .v = (char *[]){ "/bin/sh", "-c", \
"prop=\"`xprop -id $2 $0 | cut -d '\"' -f 2 | dmenu`\" &&" \ "prop=\"`xprop -id $2 $0 " \
"| sed \"s/^$0(STRING) = \\(\\\\\"\\?\\)\\(.*\\)\\1$/\\2/\" " \
"| xargs -0 printf %b | dmenu`\" &&" \
"xprop -id $2 -f $1 8s -set $1 \"$prop\"", \ "xprop -id $2 -f $1 8s -set $1 \"$prop\"", \
p, q, winid, NULL \ p, q, winid, NULL \
} \ } \
@@ -35,14 +48,33 @@ static Bool hidebackground = FALSE;
/* DOWNLOAD(URI, referer) */ /* DOWNLOAD(URI, referer) */
#define DOWNLOAD(d, r) { \ #define DOWNLOAD(d, r) { \
.v = (char *[]){ "/bin/sh", "-c", \ .v = (char *[]){ "/bin/sh", "-c", \
"st -e /bin/sh -c \"curl -J -O --user-agent '$1'" \ "st -e /bin/sh -c \"curl -L -J -O --user-agent '$1'" \
" --referer '$2'" \ " --referer '$2' -b $3 -c $3 '$0';" \
" -b ~/.surf/cookies.txt -c ~/.surf/cookies.txt '$0';" \
" sleep 5;\"", \ " sleep 5;\"", \
d, useragent, r, NULL \ d, useragent, r, cookiefile, NULL \
} \ } \
} }
/* PLUMB(URI) */
/* This called when some URI which does not begin with "about:",
* "http://" or "https://" should be opened.
*/
#define PLUMB(u) {\
.v = (char *[]){ "/bin/sh", "-c", \
"xdg-open \"$0\"", u, NULL \
} \
}
/* styles */
/*
* The iteration will stop at the first match, beginning at the beginning of
* the list.
*/
static SiteStyle styles[] = {
/* regexp file in $styledir */
{ ".*", "default.css" },
};
#define MODKEY GDK_CONTROL_MASK #define MODKEY GDK_CONTROL_MASK
/* hotkeys */ /* hotkeys */
@@ -91,5 +123,19 @@ static Key keys[] = {
{ MODKEY|GDK_SHIFT_MASK,GDK_i, toggle, { .v = "auto-load-images" } }, { MODKEY|GDK_SHIFT_MASK,GDK_i, toggle, { .v = "auto-load-images" } },
{ MODKEY|GDK_SHIFT_MASK,GDK_s, toggle, { .v = "enable-scripts" } }, { MODKEY|GDK_SHIFT_MASK,GDK_s, toggle, { .v = "enable-scripts" } },
{ MODKEY|GDK_SHIFT_MASK,GDK_v, toggle, { .v = "enable-plugins" } }, { MODKEY|GDK_SHIFT_MASK,GDK_v, toggle, { .v = "enable-plugins" } },
{ MODKEY|GDK_SHIFT_MASK,GDK_a, togglecookiepolicy, { 0 } },
{ MODKEY|GDK_SHIFT_MASK,GDK_m, togglestyle, { 0 } },
{ MODKEY|GDK_SHIFT_MASK,GDK_b, togglescrollbars, { 0 } },
{ MODKEY|GDK_SHIFT_MASK,GDK_g, togglegeolocation, { 0 } },
}; };
/* button definitions */
/* click can be ClkDoc, ClkLink, ClkImg, ClkMedia, ClkSel, ClkEdit, ClkAny */
static Button buttons[] = {
/* click event mask button function argument */
{ ClkLink, 0, 2, linkopenembed, { 0 } },
{ ClkLink, MODKEY, 2, linkopen, { 0 } },
{ ClkLink, MODKEY, 1, linkopen, { 0 } },
{ ClkAny, 0, 8, navigate, { .i = -1 } },
{ ClkAny, 0, 9, navigate, { .i = +1 } },
};
+2 -2
View File
@@ -1,5 +1,5 @@
# surf version # surf version
VERSION = 0.6 VERSION = 0.7
# Customize below to fit your system # Customize below to fit your system
@@ -18,7 +18,7 @@ INCS = -I. -I/usr/include -I${X11INC} ${GTKINC}
LIBS = -L/usr/lib -lc -L${X11LIB} -lX11 ${GTKLIB} -lgthread-2.0 LIBS = -L/usr/lib -lc -L${X11LIB} -lX11 ${GTKLIB} -lgthread-2.0
# flags # flags
CPPFLAGS = -DVERSION=\"${VERSION}\" -D_BSD_SOURCE CPPFLAGS = -DVERSION=\"${VERSION}\" -D_DEFAULT_SOURCE
CFLAGS = -std=c99 -pedantic -Wall -Os ${INCS} ${CPPFLAGS} CFLAGS = -std=c99 -pedantic -Wall -Os ${INCS} ${CPPFLAGS}
LDFLAGS = -g ${LIBS} LDFLAGS = -g ${LIBS}
+2 -2
View File
@@ -21,12 +21,12 @@ then
runtabbed runtabbed
else else
xid=$(cat "$xidfile") xid=$(cat "$xidfile")
xprop -id "$xid" 2>&1 >/dev/null xprop -id "$xid" >/dev/null 2>&1
if [ $? -gt 0 ]; if [ $? -gt 0 ];
then then
runtabbed runtabbed
else else
surf -e "$xid" "$uri" 2>&1 >/dev/null & surf -e "$xid" "$uri" >/dev/null 2>&1 &
fi fi
fi fi
+171 -29
View File
@@ -3,12 +3,14 @@
surf \- simple webkit-based browser surf \- simple webkit-based browser
.SH SYNOPSIS .SH SYNOPSIS
.B surf .B surf
.RB [-ipnsvx] .RB [-bBdDfFgGiIkKmMnNpPsSvx]
.RB [-a\ cookiepolicies]
.RB [-c\ cookiefile] .RB [-c\ cookiefile]
.RB [-e\ xid] .RB [-e\ xid]
.RB [-r\ scriptfile] .RB [-r\ scriptfile]
.RB [-t\ stylefile] .RB [-t\ stylefile]
.RB [-u\ useragent] .RB [-u\ useragent]
.RB [-z\ zoomlevel]
.RB "URI" .RB "URI"
.SH DESCRIPTION .SH DESCRIPTION
surf is a simple Web browser based on WebKit/GTK+. It is able surf is a simple Web browser based on WebKit/GTK+. It is able
@@ -17,38 +19,111 @@ which makes it possible to embed it in another application. Furthermore,
one can point surf to another URI by setting its XProperties. one can point surf to another URI by setting its XProperties.
.SH OPTIONS .SH OPTIONS
.TP .TP
.B \-a cookiepolicies
Define the order of
.I cookie policies.
The default is "Aa@" but could be
redefined in the
.I config.h,
with "A" meaning to
accept all cookies, "a" to deny all cookies and "@", which tells surf to
accept no third party cookies.
.TP
.B \-b
Disable Scrollbars
.TP
.B \-B
Enable Scrollbars
.TP
.B \-c cookiefile .B \-c cookiefile
Specify the cookiefile to use. Specify the
.I cookiefile
to use.
.TP
.B \-d
Disable the disk cache.
.TP
.B \-D
Enable the disk cache.
.TP .TP
.B \-e xid .B \-e xid
Reparents to window specified by xid. Reparents to window specified by
.I xid.
.TP
.B \-f
Start surf in windowed mode (not fullscreen).
.TP
.B \-F
Start surf in fullscreen mode.
.TP
.B \-g
Disable giving the geolocation to websites.
.TP
.B \-G
Enable giving the geolocation to websites.
.TP .TP
.B \-i .B \-i
Disable Images Disable Images
.TP .TP
.B \-I
Enable Images
.TP
.B \-k
Disable kiosk mode (disable key strokes and right click)
.TP
.B \-K
Enable kiosk mode (disable key strokes and right click)
.TP
.B \-m
Disable application of user style sheets.
.TP
.B \-M
Enable application of user style sheets.
.TP
.B \-n .B \-n
Disable the Web Inspector (Developer Tools). Disable the Web Inspector (Developer Tools).
.TP .TP
.B \-N
Enable the Web Inspector (Developer Tools).
.TP
.B \-p .B \-p
Disable Plugins Disable Plugins
.TP .TP
.B \-P
Enable Plugins
.TP
.B \-r scriptfile .B \-r scriptfile
Specify the user scriptfile. Specify the user
.I scriptfile.
.TP .TP
.B \-s .B \-s
Disable Javascript Disable Javascript
.TP .TP
.B \-S
Enable Javascript
.TP
.B \-t stylefile .B \-t stylefile
Specify the user stylefile. Specify the user
.I stylefile.
This does disable the site-specific styles.
.TP .TP
.B \-u useragent .B \-u useragent
Specify the useragent which surf should use. Specify the
.I useragent
which surf should use.
.TP .TP
.B \-v .B \-v
Prints version information to standard output, then exits. Prints version information to standard output, then exits.
.TP .TP
.B \-x .B \-x
Prints xid to standard output. This can be used to script the browser by using Prints xid to standard output. This can be used to script the browser in for
example
.BR xdotool(1).
.TP
.B \-z zoomlevel
Specify the
.I zoomlevel
which surf should use.
.BR xprop(1). .BR xprop(1).
.SH USAGE .SH USAGE
.B Escape .B Escape
@@ -87,13 +162,7 @@ Zooms page out
.B Ctrl\-Shift\-q .B Ctrl\-Shift\-q
Resets Zoom Resets Zoom
.TP .TP
.B Ctrl\-h .B Ctrl\-f and Ctrl\-/
Navigate back one step in history.
.TP
.B Ctrl\-l
Navigate forward one step in history.
.TP
.B Ctrl\-f and Ctrl\-\\
Opens the search-bar. Opens the search-bar.
.TP .TP
.B Ctrl\-n .B Ctrl\-n
@@ -103,14 +172,11 @@ Go to next search result.
Go to previous search result. Go to previous search result.
.TP .TP
.B Ctrl\-g .B Ctrl\-g
Opens the URL-bar. Opens the URL-bar (requires dmenu installed).
.TP .TP
.B Ctrl\-p .B Ctrl\-p
Loads URI from primary selection. Loads URI from primary selection.
.TP .TP
.B Esc
Stop loading the page.
.TP
.B Ctrl\-Shift\-p .B Ctrl\-Shift\-p
Calls Printpage Dialog. Calls Printpage Dialog.
.TP .TP
@@ -118,7 +184,7 @@ Calls Printpage Dialog.
Reloads the website. Reloads the website.
.TP .TP
.B Ctrl\-Shift\-r .B Ctrl\-Shift\-r
Reloads the website without using cache. Reloads the website without using the cache.
.TP .TP
.B Ctrl\-y .B Ctrl\-y
Copies current URI to primary selection. Copies current URI to primary selection.
@@ -126,29 +192,104 @@ Copies current URI to primary selection.
.B Ctrl\-o .B Ctrl\-o
Show the sourcecode of the current page. Show the sourcecode of the current page.
.TP .TP
.B Ctrl\-Shift\-a
Toggle through the the
.I cookie policies.
This will not reload the page.
.TP
.B Ctrl\-Shift\-b
Toggle scrollbars. This will reload the page.
.TP
.B Ctrl\-Shift\-c
Toggle caret browsing. This will reload the page.
.TP
.B Ctrl\-Shift\-i
Toggle auto-loading of images. This will reload the page.
.TP
.B Ctrl\-Shift\-m
Toggle if the
.I stylefile
file should be loaded. This will reload the page.
.TP
.B Ctrl\-Shift\-o .B Ctrl\-Shift\-o
Open the Web Inspector (Developer Tools) window for the current page. Open the Web Inspector (Developer Tools) window for the current page.
.TP .TP
.B Ctrl\-Shift\-c
Toggle caret browsing.
.TP
.B Ctrl\-Shift\-i
Toggle auto-loading of images.
.TP
.B Ctrl\-Shift\-s .B Ctrl\-Shift\-s
Toggle script execution. Toggle script execution. This will reload the page.
.TP .TP
.B Ctrl\-Shift\-v .B Ctrl\-Shift\-v
Toggle the enabling of plugins on that surf instance. Toggle the enabling of plugins on that surf instance. This will reload the
page.
.TP .TP
.B F11 .B F11
Toggle fullscreen mode. Toggle fullscreen mode.
.SH INDICATORS OF OPERATION
Surf is showing indicators of operation in front of the site title.
For all indicators, unless otherwise specified, a lower case letter means disabled and an upper case letter means enabled.
.TP
.B A
all cookies accepted
.TP
.B a
no cookies accepted
.TP
.B @
all except third-party cookies accepted
.TP
.B c C
caret browsing
.TP
.B g G
geolocation
.TP
.B d D
disk cache
.TP
.B i I
images
.TP
.B s S
scripts
.TP
.B v V
plugins
.TP
.B m M
styles
.SH INDICATORS OF WEB PAGE
The second part of the indicators specifies modes of the web page itself.
.SS First character: encryption
.TP
.B -
unencrypted
.TP
.B T
encrypted (SSL)
.TP
.B U
attempted encryption but failed
.SS Second character: proxying
.TP
.B -
no proxy
.TP
.B P
using proxy
.SH ENVIRONMENT .SH ENVIRONMENT
.B SURF_USERAGENT .B SURF_USERAGENT
If this variable is set upon startup, surf will use it as the useragent string If this variable is set upon startup, surf will use it as the
.I useragent
string
.TP .TP
.B http_proxy .B http_proxy
If this variable is set and not empty upon startup, surf will use it as the http proxy If this variable is set and not empty upon startup, surf will use it as the http proxy
.TP
.B no_proxy
If both http_proxy is set and no_proxy contain a
.BR comma-separated
list of domain extensions and both is not empty upon startup, proxy will
.BR not
be used for each of the elements in no_proxy.
.SH PLUGINS .SH PLUGINS
For using plugins in surf, first determine your running architecture. Then get For using plugins in surf, first determine your running architecture. Then get
the appropriate plugin for that architecture and copy it to the appropriate plugin for that architecture and copy it to
@@ -164,6 +305,7 @@ will help you.
.BR dmenu(1), .BR dmenu(1),
.BR xprop(1), .BR xprop(1),
.BR tabbed(1), .BR tabbed(1),
.BR nspluginwrapper(1) .BR nspluginwrapper(1),
.BR xdotool(1)
.SH BUGS .SH BUGS
Please report them! Please report them!
+894 -351
View File
File diff suppressed because it is too large Load Diff