331 Commits

Author SHA1 Message Date
Quentin Rameau b814567e2b Bump version to 2.0
We're using the new scheme: 2.x is for webkit2
2017-03-28 18:17:45 +02:00
Quentin Rameau 0cb1597801 Add contributors to the LICENSE 2017-03-28 18:17:03 +02:00
Quentin Rameau 7e02344a61 Install Atoms before initializing gtk
There a race condition in gtkplug/socket which is raised when setting
Atoms.
Use this workaround until
https://bugzilla.gnome.org/show_bug.cgi?id=778680 is fixed.
2017-03-22 17:20:36 +01:00
Michael Stevens 1abb2ebe7a Fix spelling of otherwise in surf.1
Add more spelling to surf.

Signed-off-by: Christoph Lohmann <20h@r-36.net>
2017-03-22 17:01:36 +01:00
Quentin Rameau 37e43501d8 Fix font-size setting parameter value type in newview 2017-03-06 11:00:04 +01:00
Quentin Rameau da5290a41a Add support for loading Webkit extensions 2016-09-22 10:21:31 +02:00
Charles Lehner c64c368d86 Reload on SIGHUP
ratiueratuie rstiure tiurest aruite rautie rautier tiue rtaruit ratiuera
This patch makes surf reload its pages when it receives a SIGHUP signal.
This makes it easier for shell scripts to trigger surf to reload.

I'm aware of using xdotool to trigger ctrl+r keypresses for reloading
but I wasn't able to get that to work in a general way. [1]

I'm sending this here in case surf maintainers and users would like to
include this in core - if not I will submit it to the wiki.

Regards,
Charles

[1] http://surf.suckless.org/files/autorefresh

Signed-off-by: Christoph Lohmann <20h@r-36.net>
2016-07-08 15:02:42 +02:00
Quentin Rameau 4c41d363b7 Add a few configuration options
“enable-accelerated-2d-canvas”
“media-playback-requires-user-gesture”
“enable-site-specific-quirks”

Lookup those at
https://webkitgtk.org/reference/webkit2gtk/stable/WebKitSettings.html
2016-07-05 17:32:44 +02:00
Quentin Rameau 5a02d3e500 Fix GdkDisplay assignment in setup()
Init GTK before trying to get the default display.
2016-07-05 13:35:44 +02:00
Quentin Rameau f9714ab838 Get rid of getkbdevice
The GTK guys nicely took in account our request and pushed in a
convenience function to get default keyboard device.
2016-07-05 13:01:56 +02:00
Christoph Lohmann 8682a4dffb Fixing the last patch to the surf style. 2016-07-05 13:01:56 +02:00
Dmitry Bogatov cee8f0186c Check $HOME and home dir of $USER before getpwuid()->pw_dir
getpwnam(3) recommends to use $HOME instead of getpwuid()->pw_dir,
as it allows users to point programs to a different path.

Using getpwuid() also breaks namespaces-related use cases,
like `unshare -r`.

Patch was submitted by Dmitry Bogatov on the Debian bug tracker:
https://bugs.debian.org/825397

Signed-off-by: Christoph Lohmann <20h@r-36.net>
2016-07-05 13:01:56 +02:00
Quentin Rameau 3530d18d8e Fix url parsing in load() 2016-07-05 13:01:56 +02:00
Quentin Rameau 7ca9421a69 Apply domain parameters each time url is changed
Urls are only changed at load (initial requested one), or while
redirected. When the page is committed, url is already final.
2016-07-05 13:01:56 +02:00
Quentin Rameau 1206b2c587 Fix inspector toggling
Always get the inspector object, and let the user eventually close it
even if it's disabled for the current page.
2016-07-05 13:01:56 +02:00
Quentin Rameau c8fdd4d583 Rectify how parameters are handled in setparameter()
Access parameters through given Arg parameter instead of accessing
global parameters.
2016-07-05 13:01:56 +02:00
Quentin Rameau 6e019362c5 Fix parameter initialization and assignment 2016-07-05 13:01:56 +02:00
Quentin Rameau 75e3fe5b95 Adapting the whole surf structure to new settings 2016-07-05 13:01:56 +02:00
Quentin Rameau 11b34c0814 Adapt default parameters to new config style 2016-07-05 13:01:56 +02:00
Quentin Rameau 2aa1c38aed Introduce new data structure for handling settings 2016-07-05 13:01:56 +02:00
Dmitrij D. Czarkoff d04fb9bff3 Disable globbing in curl command
Curl is invoked for downloading particular files.  Without "-g" flag it would
apply globbing rules to URLs, which may end badly in case URL is not properly
quoted.
2016-03-06 09:34:07 +01:00
Quentin Rameau af7522006b Get rid of JavaScript for scrolling in views
This is still a hack, until WebKitGTK gives us a more practical and
stable way to do that. Manipulating directly the DOM inside a
webextension is a pain and only usable with unstable API atm.
2016-03-02 14:46:14 +01:00
Quentin Rameau 50befe4a95 Modify linking parameter 2016-03-02 14:44:06 +01:00
Christoph Lohmann 581075796a Import the arg.h from st which fixed the oob bug. 2016-03-02 14:38:34 +01:00
Quentin Rameau 934705c420 Fix title handling
Don't forget to always set the title to the current uri, this way it's
up to date when there is no title on the page (ie for local file
exploration).
Thanks to pickfire for reporting the issue.
2015-12-01 12:31:42 +01:00
Quentin Rameau ee04671220 Fix clickexternplayer(), no need to test the target again 2015-11-24 23:18:06 +01:00
Quentin Rameau c069b76f1b Fix user agent command-line parameter
Thanks to yui for seeing that!
2015-11-23 22:13:32 +01:00
Quentin Rameau 981ade6eeb Add webkit language settings
You can now set your prefered website languages in order.
It is also possible to enable spell checking in the same way.
2015-11-22 19:13:48 +01:00
Quentin Rameau 00f9dcdf43 Fix key handling
I had forgotten to compare configured key values against lowered pressed
key values.
Integrated keypress() into winevent().
2015-11-22 17:44:40 +01:00
Quentin Rameau 971856a579 Fix target uri handling when leaving window
Introduce a new string pointer overtitle in Client to be able to keep
the targeturi intact while modifying the former for overriding or not
the window title.
Connect to GDK_ENTER_NOTIFY to restore overtitle when refocusing on
window.
2015-11-22 16:45:22 +01:00
Quentin Rameau d0020bad4f Adapt togglestyle()
We can't apply an empty stylesheet anymore, instead remove any previous
stylesheet.
2015-11-22 15:31:15 +01:00
Quentin Rameau c3a827d621 Modify decideresource() and favicon handling
Return as soon as the request has been processed.
No need to modify the favicon uri, just ignore it.
2015-11-22 15:19:10 +01:00
Quentin Rameau b70a966aa6 Style change in newview(), sort signals order 2015-11-22 13:51:05 +01:00
Quentin Rameau cdc80731fb Fix error handling in spawn()
Be more specific about process name and exit with an error.
2015-11-22 13:44:31 +01:00
Quentin Rameau b87123ac9b Modify default handling of cookiepolicy functions
It's more obvious this way that the default is to always accept cookies
and not the other way around.
2015-11-22 13:33:28 +01:00
Quentin Rameau d4ac9fb6f4 Simplify handling of c->title 2015-11-22 13:24:24 +01:00
Quentin Rameau 10105c8b87 Fix pasteuri()
The uri check had been inverted.
2015-11-22 13:15:39 +01:00
Quentin Rameau 7c24c61ab2 Style fix in sigchld() 2015-11-22 12:22:23 +01:00
Quentin Rameau 890ab510ea Replace use of EXIT_* constants to 0 and 1 2015-11-22 12:17:05 +01:00
Quentin Rameau 3e017b1a89 Fix WM_CLASS and WM_WINDOW_ROLE properties
Instead of forcing class and instance names, which is what GTK does by
default anyway, allow the user to set the instance name, but keep the
general class as “Surf”.
Is we won't support a “-name” parameter and don't implement a parsing of
RESOURCE_NAME env variable, let's fallback on the third behaviour, use
the name of the calling executable.
That would let the user do things like 'ln -s ./surf ./surf-other;
./surf-other' and set different parameters for the two instances (in dwm
for example).
Try to generate a unique WM_WINDOW_ROLE (within the surf process)
composed of “Surf” and the view ID.
2015-11-22 11:53:19 +01:00
Quentin Rameau bd17d359d6 Remove window hints settings
Setting minimum size to 1x1 is not necessary as this is the default.
2015-11-22 03:00:03 +01:00
Quentin Rameau 60c58fbf17 Style indentation fix 2015-11-22 02:25:07 +01:00
Quentin Rameau 2fb122c012 Continue making chars const 2015-11-22 02:22:38 +01:00
Quentin Rameau 6e68af115d Correct and simplify buttonreleased() gdk event
The passed event is a GdkEvent (or GdkEventButton), but not a
GdkEventKey.
Access the struct directly.
2015-11-22 02:10:18 +01:00
Quentin Rameau fef80cd56c Un(g)boolify to separate GTK dependant code from the rest 2015-11-22 02:03:26 +01:00
Quentin Rameau 6124176b89 Use char instead of gchar and make them const when possible 2015-11-22 01:52:13 +01:00
Quentin Rameau 11fa5a7a4d Style update for indentation 2015-11-22 01:42:34 +01:00
Quentin Rameau 954a718197 Add mouse function to play medias in external player
Control + left click launches mpv with the target media url.
2015-11-21 19:53:29 +01:00
Quentin Rameau 26eb2f761c Update credits 2015-11-21 19:24:19 +01:00
Quentin Rameau bc46e954f2 Style change in includes order 2015-11-21 19:22:11 +01:00
Quentin Rameau 432f3c6b53 Style change in functions ordering
Try to group and order functions in a logical manner.
Same thing for config keybindings.
2015-11-21 19:14:08 +01:00
Quentin Rameau 7e9a85a5cb Cleanup remaining unused variables and copystr() 2015-11-20 17:42:25 +01:00
Quentin Rameau adc650f399 Adapt newwindow()
Reorder cmdline options alphabetically and try to keep settings as they
have been toggled in this surf client.
2015-11-20 17:39:45 +01:00
Quentin Rameau 5bca222339 Adapt user agent handling
Now we can only append Surf version to the default WebKit user agent
instead of setting the whole string (while this remains possible to do).
2015-11-20 17:12:00 +01:00
Quentin Rameau e6cefa584e Adapt updatetitle()
Now always show loading progress, still print mouse over link uri before
page uri. Process simplyfied because we use const strings.
2015-11-20 16:59:15 +01:00
Quentin Rameau b5096b1c8f Adapt toggle statistics
Rename *togglestat to plural *togglestats, add frame flatenning
indicator, resize array in consequence.
Use a static index instead of a dynamic one as we always use all values
anyway.
2015-11-20 16:53:52 +01:00
Quentin Rameau 690118133d Adapt page statistics
Rename *pagestat to plural *pagestats, and resize array to reflect
missing proxy parameter.
2015-11-20 16:48:18 +01:00
Quentin Rameau 84611a5d29 Adapt loaduri()
Better handling of different URIs. Filter out “about:” scheme, dont
touch URI if it contains a complete scheme (we assume "://", denotes
one), else test if given path is an actual reachable file on the
filesystem, else prepend arbitrary http:// scheme.
2015-11-20 16:39:53 +01:00
Quentin Rameau 5def2e51da Adapt config MACROs SETPROP, DOWNLOAD, PLUMB
As we now use directly const strings from WebKitGTK, “constify” arg void
pointer.
2015-11-20 16:35:13 +01:00
Quentin Rameau 2d1e422368 Rename mouse functions to clickFUNCTION() 2015-11-20 16:27:02 +01:00
Quentin Rameau 82abf5154f Adapt toggle(), clean some config parameters
Regroup all toggles in an enum and handle them with a unique function
via a switch. That lets us take different actions for each toggle.
Add a frame flatenning and a dns preteching options.
2015-11-20 15:48:04 +01:00
Quentin Rameau 526b974c33 Adapt find()
Slightly new behaviour: searching again for the same string (via MOD+/)
resets the search (ie restarts search from document top).
Searching for an empty string stops the search (ie all highlights are
removed).
2015-11-20 01:12:28 +01:00
Quentin Rameau 320e4e4388 Adapt zoom() 2015-11-20 01:03:32 +01:00
Quentin Rameau acec16e685 Adapt navigate() 2015-11-20 01:00:38 +01:00
Quentin Rameau 42fdc77f5e Remove togglescrollbars()
We do not have access to scrollbars and will have to manipulate DOM to
do that.
2015-11-20 00:58:14 +01:00
Quentin Rameau a53dc90171 Adapt scrolling
In fact, we have a scrolling handle ersatz for now using JavaScript
calls as we don't have access anymore to scrollbars.
We'll have to manipulate the DOM directly (later).
2015-11-20 00:53:14 +01:00
Quentin Rameau c4f01cd18b Adapt inspector handling
The inspector is now easily manageable via API, there's no need for
keeping its state in the Client.
2015-11-20 00:46:11 +01:00
Quentin Rameau 0b5b798eb2 Adapt print() 2015-11-20 00:34:23 +01:00
Quentin Rameau 2c2a7b608e Simplify building of stylefiles path
We can directly use style file pointers instead of using temporary
string pointers.
2015-11-20 00:34:22 +01:00
Quentin Rameau ba8617e4ee Adapt setstyle()
We can't anymore pass a simple path to a stylefile, we have to read the
entire file to create a stylesheet and apply it to the view.
2015-11-20 00:34:22 +01:00
Quentin Rameau 701815a5f2 Adapt clipboard()
Replace linkhover with target uri and add some comments
2015-11-20 00:34:22 +01:00
Quentin Rameau d6794e0d75 Rename fullscreen() to togglefullscreen()
And handle c->fullscreen value in winevent(). This way we keep track of
fullscreen state even if we did not directly initiate the fullscreen.
2015-11-20 00:34:22 +01:00
Quentin Rameau b4e78555d0 Replace titlechangeleave() with catch-all winevent()
All GtkWidget events have the same function prototype with the generic
GdkEvent as parameter. This will let us handle everything in the switch.
2015-11-20 00:34:22 +01:00
Quentin Rameau d9cecc8932 Adapt JavaScript functions
Removed eval(), evalscript() is now sufficient and can directly execute
passed JavaScript string.
2015-11-20 00:34:22 +01:00
Quentin Rameau 72905b8bfc Remove windowobjectcleared(), execute scripts on load finished
The “window-object-cleared” signal is not directly accessible for
specific WebViews now. We'll have to use an Extension or rewrite the
JavaScript running functions.
2015-11-20 00:34:22 +01:00
Quentin Rameau bb1fc4195f Add createwindow() for GtkWindow creation
Move there window creation from showview().
2015-11-20 00:34:22 +01:00
Quentin Rameau 2e1fb87361 Add closeview() for JavaScript window closing
Simply call gtk_widget_destroy() on the window. Then GtkWindow closing
process will take care of the rest.
2015-11-20 00:34:21 +01:00
Quentin Rameau 04d46d1791 Remove (delete :>) deletion_interface() 2015-11-20 00:34:21 +01:00
Quentin Rameau 76940a9ab5 Integrate beforerequest() into decidepolicy() 2015-11-20 00:34:21 +01:00
Quentin Rameau d542773e75 Remove contextmenu() and menuactivate() for "context-menu" signal
Those were added because “right click menu to copy the link URI will now
work” (would not work) in 2013. It's been a while since that works without
intervention.
2015-11-20 00:34:21 +01:00
Quentin Rameau f6a35e5fbf Adapted buttonrelease()
Use the current hit test (c->mousepos) to determine where the mouse
pointer is.
It is possible to link an action to a click and still propagate the
event after that by setting the “stop event” parameter of a Button to 0.
2015-11-20 00:34:21 +01:00
Quentin Rameau 96188f83f0 Replace initdownload() and intercept global download requests.
Attach to download requests on WebKitContext, this way we can easily
manage all types of downloads (coming from views or not).
2015-11-20 00:34:21 +01:00
Quentin Rameau 26a2dbac65 Adapted progresschanged() 2015-11-20 00:34:21 +01:00
Quentin Rameau 58c4e18975 Manage ssl errors with GTlsCertificateFlags
Keep a GTlsCertificateFlags in Client for TLS errors.
If we don't use a ssl connection, set it to a value greater than maximum
error flag value (which is G_TLS_CERTIFICATE_VALIDATE_ALL for all
possible errors).
2015-11-20 00:34:20 +01:00
Quentin Rameau e9ec482049 Replace loadstatuschanged() with loadchanged() 2015-11-20 00:34:20 +01:00
Quentin Rameau bce814b30a Replace decidewindow() and decidedownload() with decidepolicy()
Now all the requests are triggered by one signal.
We then handle each type, resource download, navigation, newwindow, in
separate functions.
2015-11-20 00:34:20 +01:00
Quentin Rameau 1f99df029c Replace createwindow() with createview()
We can now perform some filtering before opening a new view (window)
when requested by JavaScript (either random or by a click).
2015-11-20 00:34:20 +01:00
Quentin Rameau 92d7ba7ed8 Replace geopolicyrequested() with permissionrequested()
The permission-request signal can now ask for than a geolocation
authorisation (though we only handle that for now).
2015-11-20 00:34:20 +01:00
Quentin Rameau 42c6c90366 Replace linkhover() with mousetargetchanged()
The “linkhover” can now be more than a simple link (image, video, etc.).
As we can't anymore perform a hit test when we want, we have to keep the
last known hit test to be able to know where the mouse is on the next
click event.
2015-11-20 00:34:20 +01:00
Quentin Rameau b9530ad5d1 Modify the context name of the hit tests
These relate more to the position of the pointer when an event occurs.
2015-11-20 00:34:20 +01:00
Quentin Rameau 60f574e4b7 Adapted titlechange()
Do not copy title strings, just carry over the const pointer.
2015-11-20 00:34:20 +01:00
Quentin Rameau 0f3e3bf669 Move all necessary initialisation to newview()
Most all the settings and callbacks are set before view creation.
Create a related view (with inherited settings) if asked to.
2015-11-20 00:34:19 +01:00
Quentin Rameau ad538bb00a Add newview() and forward related views
View creation is now done in a separate function.
That helps identifying the workflow and let us easily carry related
view (client) when asked by the WebKit for a new one.
2015-11-20 00:34:19 +01:00
Quentin Rameau 421486db18 Add showview()
Only show the window when and if the view is ready.
Move all the window rendering there.
2015-11-20 00:34:14 +01:00
Quentin Rameau f86977a6fa Separate the rendering engine process
Use one WebKitWebProcess per view instead of one for all views.
More information in the API documentation.
2015-11-20 00:23:59 +01:00
Quentin Rameau b0f35be17b No option to enforce 96DPI anymore on WebKit2 2015-11-20 00:23:59 +01:00
Quentin Rameau 42829cdad0 Scrolling is now handled through WebKit
We don't have access anymore to the scrolling process and have to rely
entirely on WebKit.
We could be able to manage scrolling and bars directly by manipulating
the DOM via a WebKitExtension. To be continued…
2015-11-20 00:23:59 +01:00
Quentin Rameau 94f2f2eace SSL policy is now handled through WebKit 2015-11-20 00:23:59 +01:00
Quentin Rameau e39b7e623c Disk cache is now handled through WebKit 2015-11-20 00:23:59 +01:00
Quentin Rameau 7c34b37786 Cookies are now handled through WebKit
Remove all soup cookie handling and use provided interface.
2015-11-20 00:23:54 +01:00
Quentin Rameau 4415c475f7 Remove source(), it has been removed from webkit2gtk
WebKit2GTK doesn't provide a direct way to view source anymore, we'll
have to do that ourselves with a GtkSourceView if we still need that.
2015-11-18 14:59:13 +01:00
Quentin Rameau b7cc1ae964 Remove proxy stuff, it's now handled by WebView 2015-11-18 14:59:13 +01:00
Quentin Rameau abcf5f06ed Switch headers to webkit2 2015-11-18 14:59:13 +01:00
Quentin Rameau 566b452b46 Port surf to gtk3 2015-11-17 17:05:05 +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
Christoph Lohmann 606c6e3297 Making dist work again. 2013-02-10 19:40:14 +01:00
Christoph Lohmann 076d9f2350 Bumping up to 0.6. 2013-02-10 19:33:54 +01:00
Christoph Lohmann 43840c8528 The javascriptcore is now in webkit. 2013-02-09 04:33:58 +01:00
Christoph Lohmann d6a3e28be2 Fixing cookie handling for https/http by using curl. 2013-02-02 15:42:09 +01:00
Christoph Lohmann 77036565da Removing the deprecated g_thread_init call. 2013-02-02 09:40:34 +01:00
Christoph Lohmann 8c15f0e758 Fixing the style and making the inspector work again. 2013-01-26 21:01:23 +01:00
Christoph Lohmann 0415175e10 Making more than one Modkey to work in keys. 2013-01-26 16:00:52 +01:00
Christoph Lohmann e784d925df Adding web inspector support to surf.
Thanks Gregor Best <gbe@ring0.de>!
2013-01-26 15:53:33 +01:00
Christoph Lohmann 13b04d8b61 Style inquisition plus blocking of the */favicon.ico request. Thanks Peter A.
Shevtsov!
2012-12-06 13:32:52 +01:00
Christoph Lohmann a013f0857e Changing the default DOWNLOAD to use st. 2012-12-04 21:48:42 +01:00
Christoph Lohmann 6ddc8a80fd Add a nice todo item for videos. Thanks morphles. 2012-12-04 07:47:54 +01:00
Christoph Lohmann 3dd006f1c1 Adding a man section about how to handle plugins. 2012-12-04 07:26:12 +01:00
Christoph Lohmann 96e3ae41dd Adding the fullscreen mode to the manpage. 2012-12-03 21:27:39 +01:00
Christoph Lohmann 0dfdb75804 Implementing fullscreen mode. Thanks Krol, Willem van de! 2012-12-03 21:19:16 +01:00
Christoph Lohmann 1f30ddf224 Adding me to the LICENSE file. 2012-12-03 11:25:31 +01:00
Christoph Lohmann 760f8f36de Resolving some conflicts in the shortcuts. 2012-12-02 22:48:41 +01:00
Christoph Lohmann e96f191088 Making zoom available when used in tabbed. 2012-12-02 22:41:18 +01:00
Christoph Lohmann 6cd54e4a31 Surf now can handle absolute file paths. This allows better local HTML
reading.
2012-11-25 22:31:46 +01:00
Christoph Lohmann ad794e0f00 The control of the toggles is now Ctrl-Shift-$character. That's easier for new
users.
2012-11-20 16:14:28 +01:00
Christoph Lohmann 5501d75d2c Fix some styling in the config.def.h, fix the DOWNLOAD macro and unify the
variable naming a bit.
2012-11-20 16:02:57 +01:00
Christoph Lohmann a7ea753f93 Add a referer argument to the DOWNLOAD macro. Some sites need this. Thanks
Hiltjo Posthuma!
2012-11-20 11:53:29 +01:00
Christoph Lohmann a4e1d552ca Useragent strings do not count anymore. This is adding some text so every
website (especially Google) is fooled to believe us to be compatible. The
right way seems to be to add Surf at the end and let the big guys handle their
useragent header war.
2012-11-16 22:31:36 +01:00
Christoph Lohmann e7b36f693f Adding a surf-open.sh script for easier tabbed(1) integration. 2012-11-16 16:12:09 +01:00
Christoph Lohmann d6bbef74fe Moving some preprocessor config options to the standard suckless style. 2012-11-16 10:53:30 +01:00
Christoph Lohmann ba452c2e13 Adding back the Escape to stop loading the current page. Thanks Daniel Bainton
for the notice!
2012-11-16 10:42:30 +01:00
Christoph Lohmann f02e652fa0 Some minor style updates. 2012-11-16 10:31:42 +01:00
Christoph Lohmann 6d9d3ca4e1 Removing the insert mode. It will only confuse users. The stop() function is
kept like the eval() function because it could be used in config.h
2012-11-16 10:13:23 +01:00
Christoph Lohmann c12b6499fe Enable the insert mode. Thanks to stanio@cs.tu-berlin.de! 2012-11-15 15:26:48 +01:00
Christoph Lohmann d911219554 Applying the surf style to the last patch. 2012-11-15 14:53:27 +01:00
Christoph Lohmann a283fa4bc9 Importing the generic toggle patch of stanio@cs.tu-berlin.de. Thanks! 2012-11-15 14:52:22 +01:00
Christoph Lohmann 244dfd3231 Fixing the bug of surf loading undefined data in arg. 2012-11-08 22:05:40 +01:00
Christoph Lohmann d44bfb2c31 Fixing the manpage about the useragent option. 2012-10-31 21:25:42 +01:00
Christoph Lohmann 1bfda445ac Adding a useragent parameter to surf. 2012-10-31 21:25:14 +01:00
Christoph Lohmann 6aaaeb7267 Changing the config.def.h to fit the new buildpath() behaviour. 2012-10-31 21:16:12 +01:00
Christoph Lohmann 4ce3808684 Add options for scriptfile, cookiefile and stylefile. And changing the default
behaviour of buildpath to be more like in open().
2012-10-31 21:13:50 +01:00
Christoph Lohmann 0b885f18e3 Add different progress colors when using proxy. 2012-10-31 20:46:38 +01:00
Christoph Lohmann 25ba840e4d Hiding the loading indicator when it is not used. Based on a patch from
http://xteddy.org/surf.html#toc5. Thanks!
2012-10-28 14:16:22 +01:00
Christoph Lohmann 161247eaf4 Applying the patch to show the indicator only on loading. Based on a patch
from http://xteddy.org/surf.html#toc5.
2012-10-28 14:06:17 +01:00
Christoph Lohmann 3d3b105de7 Mod + '/' for search. 2012-10-28 14:03:00 +01:00
Christoph Lohmann 3058d5bf63 Applying the cookie patch of Carlos Pita. Thank you! 2012-10-16 21:54:37 +02:00
Christoph Lohmann 5703683638 Removing the double initialisation to webkit_get_default_session(). Thanks
taruti!
2012-10-16 15:41:50 +02:00
Christoph Lohmann 85d9d92e0b Reverting the cleanmask change. 2012-10-14 07:17:45 +02:00
Christoph Lohmann de3ed01386 Changing the key masks to the values of GDK. 2012-10-13 12:06:26 +02:00
Christoph Lohmann 81d23cb76d The right click menu to copy the link URI will now work. Thanks to Carlos
Pita!
2012-10-13 07:28:16 +02:00
Christoph Lohmann 2e92060efc Adding middle-click behaviour to open a tab when embedded or a window when
not. Thanks to Carlos Pita <carlosjosepita@gmail.com>!
2012-10-13 07:16:08 +02:00
Christoph Lohmann 23def74c98 Fixing the shift key mask and cleaning up the scrolling code. 2012-10-12 11:48:38 +02:00
Christoph Lohmann e28d27249e Surf now parses hex window ids properly from tabbed. 2012-07-16 16:35:47 +02:00
Troels Henriksen 635ed55fda Added tag 0.5 for changeset f0cea0f2bfc6 2012-07-12 12:41:56 +02:00
Troels Henriksen bb01475018 Change horizontal scrolling to ^u and ^i, remove ^g scrolling. 2012-06-11 17:16:52 +02:00
pancake d4b030eeb4 apply nick's patch removing unused variable and parameters 2012-06-11 16:45:48 +02:00
pancake 101f2d6455 apply nick's patch removing the autoresize functionality 2012-06-11 16:01:03 +02:00
Troels Henriksen 3083ef4031 Keybindings for scrolling left and right; code by stanio. 2012-05-31 11:46:24 +02:00
Troels Henriksen cf75bf2777 Manpage patch from Evan Gates. 2012-03-26 09:33:42 +02:00
Troels Henriksen 96041e5ba2 Close standard output after printing XID, patch due Abby Cedar. 2012-02-21 12:00:01 +01:00
anselm@garbe.us 6af15aa636 making cookie file creation a bit more pedantic 2012-02-11 17:51:48 +01:00
anselm@garbe.us a0e269b6bd applied fix from dev list and debian reviewers 2012-02-11 10:40:32 +01:00
Christoph Lohmann 3da24a7481 Fixing the javascriptcoregtk-1.0 dependency. 2012-02-01 15:23:39 +01:00
Troels Henriksen 7c7a3b58cf Add a variable in config.def.h for configuring spatial browsing. 2012-01-17 13:58:04 +01:00
Troels Henriksen e75753775f Status message patch from Jeremy Jackins and skls. 2012-01-17 13:54:35 +01:00
Connor Lane Smith fc31616141 link Xlib in config.mk 2011-11-20 16:06:38 +01:00
Troels Henriksen b8f45a588d Manual fixes from Nick White. 2011-11-09 15:09:59 +01:00
Troels Henriksen 590a9bb19d Cleanup previous patch. 2011-11-05 12:06:08 +01:00
Troels Henriksen df96fe4171 Use the surf user agent when downloading with wget. 2011-11-05 11:43:46 +01:00
Troels Henriksen 543d0c77ee The ICCCM states that window classes should be capitalised. 2011-11-04 13:57:04 +01:00
Troels Henriksen bc73b48743 Add SSL verification patch by Nick White. 2011-11-04 13:23:57 +01:00
Troels Henriksen 2e62372969 Add eval() function for executing Javascript. Handy for keybindings. 2011-11-03 14:09:19 +01:00
garbeam@gmail.com 3b104416d3 added 20h's patch of 8 Sep 2011 to surf, thanks 2011-10-29 10:59:34 +02:00
pancake 62f54a3745 rename NOBACKGROUND to HIDE_BACKGROUND and use TRUE/FALSE instead of 0/1 2011-03-31 12:52:35 +02:00
Enno Boland (tox) f1299dcfc1 Adding nibbles patch 2010-09-09 11:15:02 +02:00
pancake a1db4e9bf5 fix for segfault when closing window while loading (via nibble) 2010-09-02 14:02:12 +02:00
Enno Boland (tox) db72e066d1 using ctrl-f to find. 2010-06-25 09:42:58 +02:00
Enno Boland (tox) 86c230c2bb Added tag 0.4.1 for changeset 71388899ac09 2010-06-08 09:06:15 +02:00
Enno Boland (tox) d1eb8253b1 next will be 0.4.1 2010-06-08 09:06:10 +02:00
Enno Boland (tox) 54df460866 reverting sessiontime 2010-06-03 22:50:04 +02:00
Enno Boland (tox) 1005ea0ac9 Added tag 0.4 for changeset ac8e058003ed 2010-05-30 22:05:37 +02:00
Enno Boland (tox) ca1c7f434b Adding Nibbles patch 2010-05-28 13:20:17 +02:00
Enno Boland (tox) 8cc71f8216 typo 2010-05-26 15:34:09 +02:00
Enno Boland (tox) 7330d0e261 Applying Nibbles download patch. Thanks! 2010-05-26 15:33:01 +02:00
Enno Boland (tox) 7d3d996a3d merge 2010-05-25 10:38:23 +02:00
Enno Boland (tox) d46697044e changing user agent string as suggested by Marvin Vek 2010-05-25 10:34:43 +02:00
Enno Boland (tox) 532205d7e7 removing spatial navigation. 2010-05-24 21:35:20 +02:00
Enno Boland (tox) aadcd5b3f0 implementing downloading. 2010-05-24 21:23:39 +02:00
Enno Boland (tox) 7fcf745092 enabling spatial-navigation 2010-05-24 21:23:28 +02:00
Enno Boland (tox) 5878067225 AtomHiLight is set correctly for links. 2010-05-18 14:20:24 +02:00
Enno Boland (tox) 7ce2856194 merge 2010-05-17 23:13:44 +02:00
Enno Boland (tox) 36129338cf changing xprops 2010-05-17 11:45:28 +02:00
Enno Boland (tox) 0a6eafe077 dl is not needed anymore 2010-05-17 11:01:37 +02:00
Enno Boland (tox) 6376a30379 removing context-menu, downloading. 2010-05-17 10:58:08 +02:00
Enno Boland (tox) 3dbf628964 changing sessiontime to 3600 2010-05-15 15:47:47 +02:00
Enno Boland (tox) 91d04b15f0 merge 2010-05-11 14:57:44 +02:00
Enno Boland (tox) b1e9a6e9ab fix download/history bug 2010-05-11 14:57:09 +02:00
pancake 424936e96c Fix NOBACKGROUND meaning 2010-05-09 22:51:26 +02:00
Enno Boland (tox) 8acc31bbde changing default value of NOBACKGROUND 2010-05-09 22:46:22 +02:00
Enno Boland (tox) f304d0af52 merge 2010-05-09 22:41:11 +02:00
Enno Boland (tox) 168da3730f added js-fix by Troels Henriksen. Thanks :) 2010-05-09 19:37:46 +02:00
pancake 11039e5e2b Do not set cookie session time if set to 0
Add NOBACKGROUND config.def.h option
 - requires body {background-color} in style.css
 - fixes white background when loading pages
2010-05-08 21:43:53 +02:00
Enno Boland (tox) 602eb61623 implementing naive file locking. 2010-05-06 13:58:49 +02:00
Enno Boland (tox) bef892f513 fixing compilerwarning in newer webkit versions 2010-05-06 13:09:54 +02:00
Enno Boland (tox) f9a411f22d fixing config.mk 2010-05-06 13:06:50 +02:00
Enno Boland (tox) e9c9715f52 Adding small fix by Alex Puterbaugh. Thanks. 2010-05-02 10:59:28 +02:00
pancake 4b1b1b8a20 remove empty lines 2010-04-08 20:28:32 +02:00
Enno Boland (tox) 8aabfa5b45 whoops... linking Oo 2010-03-29 17:49:34 +02:00
Enno Boland (tox) 981e52d5a7 typofix. 2010-03-26 21:44:48 +01:00
Enno Boland (tox) a7f2765da4 reimplementing cookies. Now we need some file locking. 2010-03-25 09:59:30 +01:00
Enno Boland (tox) a05bcc653e updating manpage, reformating help output. 2010-03-25 00:05:37 +01:00
Enno Boland (tox) 62dc599a04 fixing argument parsing. 2010-03-24 23:55:41 +01:00
Enno Boland (tox) 3ede103556 fixing downloads 2010-03-24 23:18:03 +01:00
Enno Boland (tox) 19aaa5a74b gotheaders will now be called correctly. 2010-03-24 22:04:36 +01:00
Enno Boland (tox) 3434ccc16a adding surf-logo. 2010-03-24 21:05:11 +01:00
Enno Boland (tox) b8105c64ed working on cookies 2010-03-24 20:56:56 +01:00
Enno Boland (tox) e2cae4d1f5 reformating 2010-03-24 19:16:10 +01:00
Enno Boland (tox) 814bf92565 adding cmd-switches for turning of images/plugins/scripts 2010-03-24 19:11:01 +01:00
Enno Boland (tox) e252a5ec63 now we've got access to cookies before they're sended. Let's start building a cookiehandler. 2010-03-24 18:17:19 +01:00
Enno Boland (tox) b2a970d04d session gets set properly in setup() 2010-03-10 21:38:07 +01:00
Enno Boland (tox) 1cbeab188d fixing progress, beginning new cookie implementation 2010-03-08 10:06:32 +01:00
Enno Boland (tox) 764550e087 small typo. 2010-03-08 09:30:26 +01:00
Enno Boland (tox) 4f7fdd1dfa removed persistent cookies, replaced deprecated eventlisteners 2010-03-08 09:24:55 +01:00
Enno Boland (tox) 94601622a1 _SURF_URI gets initialised as soon as the window opens. 2010-01-29 09:44:14 +01:00
Enno Boland (tox) b18189d016 fixing manpage 2010-01-20 14:46:22 +01:00
Enno Boland (tox) 0fb97666ec dl has to be a directory, not a file. 2010-01-04 14:39:40 +01:00
Enno Boland (tox) 2f9c554f02 adding fixes from thomas_adam. Thanks :) 2009-12-15 17:16:01 +01:00
Enno Boland (tox) f42461c3cc Backed out changeset 260fda70689f 2009-11-09 00:05:45 +01:00
Enno Boland (tox) 1d93bfa9ce changing locking algorythm for setprop. 2009-11-08 23:45:36 +01:00
Enno Boland (tox) b57eca1a2b SETPROP() macro shows now the current value in dwm. 2009-11-08 23:45:11 +01:00
Enno Boland (tox) c0510b0cc9 next version will be 0.4 2009-11-02 09:29:54 +01:00
Enno Boland (tox) f0f3ddce76 adding environment variables for proxy and useragent 2009-11-02 09:27:32 +01:00
Enno Boland (tox) 7365214bbf Added tag 0.3 for changeset 46d516fd2167 2009-10-30 13:40:49 +01:00
13 changed files with 2194 additions and 794 deletions
-6
View File
@@ -1,6 +0,0 @@
d8628fc93353faa411c9fc7eef82d11a84d26ae2 0.1
d8628fc93353faa411c9fc7eef82d11a84d26ae2 0.1
9c8ebcf54061112b5979742b403de26fc94007ff 0.1
3ef997607115303fe93873b592d152f0ec186f77 0.1.1
bffb0c3c23410ac7f260d167f4b9771497fc1127 0.1.2
a5db79d487c85615be2ecf30815c6b4977e88000 0.2
+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.
+28 -1
View File
@@ -1,6 +1,32 @@
MIT/X Consortium License MIT/X Consortium License
© 2009 Enno Boland <g s01 de> © 2009-2010 Enno Boland <tox@s01.de>
© 2009 Thomas Menari <spaceinvader@chaotika.org>
© 2009 Simon Rozet <simon@rozet.name>
© 2009 Andrew Antle <andrew.antle@gmail.com>
© 2010-2011 pancake <nopcode.org>
© 2011-2013 Anselm R Garbe <anselm@garbe.us>
© 2011-2012 Troels Henriksen <athas@sigkill.dk>
© 2011 Connor Lane Smith <cls@lubutu.com>
© 2012-2017 Christoph Lohmann <20h@r-36.net>
© 2013 Shayan Pooya <shayan@liveve.org>
© 2013 Jens Nyberg <jens.nyberg@gmail.com>
© 2013 Carlos J. Torres <vlaadbrain@gmail.com>
© 2013 Alexander Sedov <alex0player@gmail.com>
© 2013 Nick White <git@njw.me.uk>
© 2013 David Dufberg <david@dufberg.se>
© 2014-2017 Quentin Rameau <quinq@fifth.space>
© 2014-2016 Markus Teich <markus.teich@stusta.mhn.de>
© 2015 Jakukyo Friel <weakish@gmail.com>
© 2015 Ben Woolley <tautolog@gmail.com>
© 2015 Greg Reagle <greg.reagle@umbc.edu>
© 2015 GhostAV <ghostav@riseup.net>
© 2015 Ivan Tham <pickfire@riseup.net>
© 2015 Alexander Huemer <alexander.huemer@xx.vu>
© 2015 Michael Stevens <mstevens@etla.org>
© 2015 Felix Janda <felix.janda@posteo.de>
© 2016 Charles Lehner <cel@celehner.com>
© 2016 Dmitry Bogatov <KAction@gnu.org>
Permission is hereby granted, free of charge, to any person obtaining a Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"), copy of this software and associated documentation files (the "Software"),
@@ -19,3 +45,4 @@ THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE. DEALINGS IN THE SOFTWARE.
+1
View File
@@ -36,6 +36,7 @@ dist: clean
@echo creating dist tarball @echo creating dist tarball
@mkdir -p surf-${VERSION} @mkdir -p surf-${VERSION}
@cp -R LICENSE Makefile config.mk config.def.h README \ @cp -R LICENSE Makefile config.mk config.def.h README \
surf-open.sh arg.h TODO.md surf.png \
surf.1 ${SRC} surf-${VERSION} surf.1 ${SRC} surf-${VERSION}
@tar -cf surf-${VERSION}.tar surf-${VERSION} @tar -cf surf-${VERSION}.tar surf-${VERSION}
@gzip surf-${VERSION}.tar @gzip surf-${VERSION}.tar
+18 -3
View File
@@ -2,11 +2,11 @@ surf - simple webkit-based browser
================================== ==================================
surf is a simple Web browser based on WebKit/GTK+. surf is a simple Web browser based on WebKit/GTK+.
Requirements 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
------------ ------------
@@ -18,8 +18,23 @@ necessary as root):
make clean install make clean install
Running surf Running surf
------------ ------------
run run
surf [URL] surf [URI]
See the manpage for further options.
Running surf in tabbed
----------------------
For running surf in tabbed[1] there is a script included in the distribution,
which is run like this:
surf-open.sh [URI]
Further invocations of the script will run surf with the specified URI in this
instance of tabbed.
[0] http://tools.suckless.org/dmenu
[1] http://tools.suckless.org/tabbed
+10
View File
@@ -0,0 +1,10 @@
# TODO
* suckless adblocking
* replace twitch() with proper gtk calls to make scrollbars reappear
* replace webkit with something sane
* add video player options
* play in plugin
* play in video player
* call command with URI (quvi + cclive)
+48
View File
@@ -0,0 +1,48 @@
/*
* Copy me if you can.
* by 20h
*/
#ifndef ARG_H__
#define ARG_H__
extern char *argv0;
/* use main(int argc, char *argv[]) */
#define ARGBEGIN for (argv0 = *argv, argv++, argc--;\
argv[0] && argv[0][0] == '-'\
&& argv[0][1];\
argc--, argv++) {\
char argc_;\
char **argv_;\
int brk_;\
if (argv[0][1] == '-' && argv[0][2] == '\0') {\
argv++;\
argc--;\
break;\
}\
for (brk_ = 0, argv[0]++, argv_ = argv;\
argv[0][0] && !brk_;\
argv[0]++) {\
if (argv_ != argv)\
break;\
argc_ = argv[0][0];\
switch (argc_)
#define ARGEND }\
}
#define ARGC() argc_
#define EARGF(x) ((argv[0][1] == '\0' && argv[1] == NULL)?\
((x), abort(), (char *)0) :\
(brk_ = 1, (argv[0][1] != '\0')?\
(&argv[0][1]) :\
(argc--, argv++, argv[0])))
#define ARGF() ((argv[0][1] == '\0' && argv[1] == NULL)?\
(char *)0 :\
(brk_ = 1, (argv[0][1] != '\0')?\
(&argv[0][1]) :\
(argc--, argv++, argv[0])))
#endif
+159 -40
View File
@@ -1,47 +1,166 @@
/* modifier 0 means no modifier */ /* modifier 0 means no modifier */
static char *useragent = "Mozilla/5.0 (X11; U; Linux; en-us) AppleWebKit/531.2+ (KHTML, like Gecko, surf-"VERSION") Safari/531.2+"; static int surfuseragent = 1; /* Append Surf version to default WebKit user agent */
static char *progress = "#FF0000"; static char *fulluseragent = ""; /* Or override the whole user agent string */
static char *progress_trust = "#00FF00"; static char *scriptfile = "~/.surf/script.js";
static char *stylefile = ".surf/style.css"; static char *styledir = "~/.surf/styles/";
static char *scriptfile = ".surf/script.js"; static char *cachedir = "~/.surf/cache/";
static char *cookiefile = ".surf/cookies.txt"; static char *cookiefile = "~/.surf/cookies.txt";
static char *dldir = ".surf/dl";
static time_t sessiontime = 3600; /* Webkit default features */
static Parameter defconfig[ParameterLast] = {
SETB(AcceleratedCanvas, 1),
SETB(CaretBrowsing, 0),
SETV(CookiePolicies, "@Aa"),
SETB(DiskCache, 1),
SETB(DNSPrefetch, 0),
SETI(FontSize, 12),
SETB(FrameFlattening, 0),
SETB(Geolocation, 0),
SETB(HideBackground, 0),
SETB(Inspector, 0),
SETB(JavaScript, 1),
SETB(KioskMode, 0),
SETB(LoadImages, 1),
SETB(MediaManualPlay, 0),
SETB(Plugins, 1),
SETV(PreferredLanguages, ((char *[]){ NULL })),
SETB(RunInFullscreen, 0),
SETB(ScrollBars, 1),
SETB(ShowIndicators, 1),
SETB(SiteQuirks, 1),
SETB(SpellChecking, 0),
SETV(SpellLanguages, ((char *[]){ "en_US", NULL })),
SETB(StrictSSL, 0),
SETB(Style, 1),
SETF(ZoomLevel, 1.0),
};
static UriParameters uriparams[] = {
{ "(://|\\.)suckless\\.org(/|$)", {
FSETB(JavaScript, 0),
FSETB(Plugins, 0),
}, },
};
static WebKitFindOptions findopts = WEBKIT_FIND_OPTIONS_CASE_INSENSITIVE |
WEBKIT_FIND_OPTIONS_WRAP_AROUND;
#define SETPROP(p, q) { \
.v = (const char *[]){ "/bin/sh", "-c", \
"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\"", \
p, q, winid, NULL \
} \
}
/* DOWNLOAD(URI, referer) */
#define DOWNLOAD(d, r) { \
.v = (const char *[]){ "/bin/sh", "-c", \
"st -e /bin/sh -c \"curl -g -L -J -O --user-agent '$1'" \
" --referer '$2' -b $3 -c $3 '$0';" \
" sleep 5;\"", \
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 = (const char *[]){ "/bin/sh", "-c", \
"xdg-open \"$0\"", u, NULL \
} \
}
/* VIDEOPLAY(URI) */
#define VIDEOPLAY(u) {\
.v = (const char *[]){ "/bin/sh", "-c", \
"mpv --really-quiet \"$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 SETPROP(p) { .v = (char *[]){ "/bin/sh", "-c", \
"prop=\"`dmenu < /dev/null`\" &&" \
"xprop -id $1 -f $0 8s -set $0 \"$prop\"", \
p, winid, NULL } }
#define MODKEY GDK_CONTROL_MASK #define MODKEY GDK_CONTROL_MASK
/* hotkeys */
/*
* If you use anything else but MODKEY and GDK_SHIFT_MASK, don't forget to
* edit the CLEANMASK() macro.
*/
static Key keys[] = { static Key keys[] = {
/* modifier keyval function arg Focus */ /* modifier keyval function arg */
{ MODKEY|GDK_SHIFT_MASK,GDK_r, reload, { .b = TRUE } }, { MODKEY, GDK_KEY_g, spawn, SETPROP("_SURF_URI", "_SURF_GO") },
{ MODKEY, GDK_r, reload, { .b = FALSE } }, { MODKEY, GDK_KEY_f, spawn, SETPROP("_SURF_FIND", "_SURF_FIND") },
{ MODKEY|GDK_SHIFT_MASK,GDK_p, print, { 0 } }, { MODKEY, GDK_KEY_slash, spawn, SETPROP("_SURF_FIND", "_SURF_FIND") },
{ MODKEY, GDK_p, clipboard, { .b = TRUE } },
{ MODKEY, GDK_y, clipboard, { .b = FALSE } }, { 0, GDK_KEY_Escape, stop, { 0 } },
{ MODKEY|GDK_SHIFT_MASK,GDK_j, zoom, { .i = -1 } }, { MODKEY, GDK_KEY_c, stop, { 0 } },
{ MODKEY|GDK_SHIFT_MASK,GDK_k, zoom, { .i = +1 } },
{ MODKEY|GDK_SHIFT_MASK,GDK_i, zoom, { .i = 0 } }, { MODKEY|GDK_SHIFT_MASK, GDK_KEY_r, reload, { .b = 1 } },
{ MODKEY, GDK_l, navigate, { .i = +1 } }, { MODKEY, GDK_KEY_r, reload, { .b = 0 } },
{ MODKEY, GDK_h, navigate, { .i = -1 } },
{ MODKEY, GDK_j, scroll, { .i = +1 } }, { MODKEY, GDK_KEY_l, navigate, { .i = +1 } },
{ MODKEY, GDK_k, scroll, { .i = -1 } }, { MODKEY, GDK_KEY_h, navigate, { .i = -1 } },
{ 0, GDK_Escape, stop, { 0 } },
{ MODKEY, GDK_o, source, { 0 } }, /* Currently we have to use scrolling steps that WebKit2GTK+ gives us
{ MODKEY, GDK_g, spawn, SETPROP("_SURF_URI") }, * d: step down, u: step up, r: step right, l:step left
{ MODKEY, GDK_slash, spawn, SETPROP("_SURF_FIND") }, * D: page down, U: page up */
{ MODKEY, GDK_n, find, { .b = TRUE } }, { MODKEY, GDK_KEY_j, scroll, { .i = 'd' } },
{ MODKEY|GDK_SHIFT_MASK,GDK_n, find, { .b = FALSE } }, { MODKEY, GDK_KEY_k, scroll, { .i = 'u' } },
{ MODKEY, GDK_KEY_b, scroll, { .i = 'U' } },
{ MODKEY, GDK_KEY_space, scroll, { .i = 'D' } },
{ MODKEY, GDK_KEY_i, scroll, { .i = 'r' } },
{ MODKEY, GDK_KEY_u, scroll, { .i = 'l' } },
{ MODKEY|GDK_SHIFT_MASK, GDK_KEY_j, zoom, { .i = -1 } },
{ MODKEY|GDK_SHIFT_MASK, GDK_KEY_k, zoom, { .i = +1 } },
{ MODKEY|GDK_SHIFT_MASK, GDK_KEY_q, zoom, { .i = 0 } },
{ MODKEY, GDK_KEY_minus, zoom, { .i = -1 } },
{ MODKEY, GDK_KEY_plus, zoom, { .i = +1 } },
{ MODKEY, GDK_KEY_p, clipboard, { .b = 1 } },
{ MODKEY, GDK_KEY_y, clipboard, { .b = 0 } },
{ MODKEY, GDK_KEY_n, find, { .i = +1 } },
{ MODKEY|GDK_SHIFT_MASK, GDK_KEY_n, find, { .i = -1 } },
{ MODKEY|GDK_SHIFT_MASK, GDK_KEY_p, print, { 0 } },
{ MODKEY|GDK_SHIFT_MASK, GDK_KEY_a, togglecookiepolicy, { 0 } },
{ 0, GDK_KEY_F11, togglefullscreen, { 0 } },
{ MODKEY|GDK_SHIFT_MASK, GDK_KEY_o, toggleinspector, { 0 } },
{ MODKEY|GDK_SHIFT_MASK, GDK_KEY_c, toggle, { .i = CaretBrowsing } },
{ MODKEY|GDK_SHIFT_MASK, GDK_KEY_f, toggle, { .i = FrameFlattening } },
{ MODKEY|GDK_SHIFT_MASK, GDK_KEY_g, toggle, { .i = Geolocation } },
{ MODKEY|GDK_SHIFT_MASK, GDK_KEY_s, toggle, { .i = JavaScript } },
{ MODKEY|GDK_SHIFT_MASK, GDK_KEY_i, toggle, { .i = LoadImages } },
{ MODKEY|GDK_SHIFT_MASK, GDK_KEY_v, toggle, { .i = Plugins } },
{ MODKEY|GDK_SHIFT_MASK, GDK_KEY_b, toggle, { .i = ScrollBars } },
{ MODKEY|GDK_SHIFT_MASK, GDK_KEY_m, toggle, { .i = Style } },
}; };
static Item items[] = { /* button definitions */
{ "Back", navigate, { .i = -1 } }, /* target can be OnDoc, OnLink, OnImg, OnMedia, OnEdit, OnBar, OnSel, OnAny */
{ "Forward", navigate, { .i = +1 } }, static Button buttons[] = {
{ "New Window", newwindow, { .v = NULL } }, /* target event mask button function argument stop event */
{ "Reload", reload, { .b = FALSE } }, { OnLink, 0, 2, clicknewwindow, { .b = 0 }, 1 },
{ "Stop", stop, { 0 } }, { OnLink, MODKEY, 2, clicknewwindow, { .b = 1 }, 1 },
{ "Paste URI", clipboard, { .b = TRUE } }, { OnLink, MODKEY, 1, clicknewwindow, { .b = 1 }, 1 },
{ "Copy URI", clipboard, { .b = FALSE } }, { OnAny, 0, 8, clicknavigate, { .i = -1 }, 1 },
{ "Download", download, { 0 } }, { OnAny, 0, 9, clicknavigate, { .i = +1 }, 1 },
{ OnMedia, MODKEY, 1, clickexternplayer, { 0 }, 1 },
}; };
+9 -6
View File
@@ -1,22 +1,25 @@
# surf version # surf version
VERSION = 0.3 VERSION = 2.0
# Customize below to fit your system # Customize below to fit your system
# paths # paths
PREFIX = /usr/local PREFIX = /usr/local
MANPREFIX = ${PREFIX}/share/man MANPREFIX = ${PREFIX}/share/man
LIBPREFIX = ${PREFIX}/lib/surf
GTKINC=$(shell pkg-config --cflags gtk+-2.0 webkit-1.0) X11INC = /usr/X11R6/include
GTKLIB=$(shell pkg-config --libs gtk+-2.0 webkit-1.0) X11LIB = /usr/X11R6/lib
GTKINC = `pkg-config --cflags gtk+-3.0 webkit2gtk-4.0`
GTKLIB = `pkg-config --libs gtk+-3.0 webkit2gtk-4.0`
# includes and libs # includes and libs
INCS = -I. -I/usr/include ${GTKINC} INCS = -I. -I/usr/include -I${X11INC} ${GTKINC}
LIBS = -L/usr/lib -lc ${GTKLIB} -lgthread-2.0 LIBS = -L/usr/lib -lc -L${X11LIB} -lX11 ${GTKLIB} -lgthread-2.0
# flags # flags
CPPFLAGS = -DVERSION=\"${VERSION}\" CPPFLAGS = -DVERSION=\"${VERSION}\" -DWEBEXTDIR=\"${LIBPREFIX}\" -D_DEFAULT_SOURCE
CFLAGS = -std=c99 -pedantic -Wall -Os ${INCS} ${CPPFLAGS} CFLAGS = -std=c99 -pedantic -Wall -Os ${INCS} ${CPPFLAGS}
LDFLAGS = -s ${LIBS} LDFLAGS = -s ${LIBS}
Executable
+32
View File
@@ -0,0 +1,32 @@
#!/bin/sh
#
# See the LICENSE file for copyright and license details.
#
xidfile="$HOME/tmp/tabbed-surf.xid"
uri=""
if [ "$#" -gt 0 ];
then
uri="$1"
fi
runtabbed() {
tabbed -dn tabbed-surf -r 2 surf -e '' "$uri" >"$xidfile" \
2>/dev/null &
}
if [ ! -r "$xidfile" ];
then
runtabbed
else
xid=$(cat "$xidfile")
xprop -id "$xid" >/dev/null 2>&1
if [ $? -gt 0 ];
then
runtabbed
else
surf -e "$xid" "$uri" >/dev/null 2>&1 &
fi
fi
+242 -16
View File
@@ -3,7 +3,14 @@
surf \- simple webkit-based browser surf \- simple webkit-based browser
.SH SYNOPSIS .SH SYNOPSIS
.B surf .B surf
.RB [ \-ehvx ] .RB [-bBdDfFgGiIkKmMnNpPsSvx]
.RB [-a\ cookiepolicies]
.RB [-c\ cookiefile]
.RB [-e\ xid]
.RB [-r\ scriptfile]
.RB [-t\ stylefile]
.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
@@ -12,20 +19,115 @@ 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 \-e .B \-a cookiepolicies
Prints xid to standard output and waits until an application reparents the Define the order of
window. .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 .TP
.B \-h .B \-b
Prints usage information to standard output, then exits. Disable Scrollbars
.TP
.B \-B
Enable Scrollbars
.TP
.B \-c cookiefile
Specify the
.I cookiefile
to use.
.TP
.B \-d
Disable the disk cache.
.TP
.B \-D
Enable the disk cache.
.TP
.B \-e 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
.B \-i
Disable Images
.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
Disable the Web Inspector (Developer Tools).
.TP
.B \-N
Enable the Web Inspector (Developer Tools).
.TP
.B \-p
Disable Plugins
.TP
.B \-P
Enable Plugins
.TP
.B \-r scriptfile
Specify the user
.I scriptfile.
.TP
.B \-s
Disable Javascript
.TP
.B \-S
Enable Javascript
.TP
.B \-t stylefile
Specify the user
.I stylefile.
This does disable the site-specific styles.
.TP
.B \-u useragent
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
Stops loading current page or stops download.
.TP .TP
.B Ctrl\-h .B Ctrl\-h
Walks back the history. Walks back the history.
@@ -39,20 +141,38 @@ Scrolls page upwards.
.B Ctrl\-j .B Ctrl\-j
Scrolls page downwards. Scrolls page downwards.
.TP .TP
.B Ctrl\-Shift\-k .B Ctrl\-b
Scroll up one whole page view.
.TP
.B Ctrl\-Space
Scroll down one whole page view.
.TP
.B Ctrl\-i
Scroll horizontally to the right.
.TP
.B Ctrl\-u
Scroll horizontally to the left.
.TP
.B Ctrl\-Shift\-k or Ctrl\-+
Zooms page in. Zooms page in.
.TP .TP
.B Ctrl\-Shift\-j .B Ctrl\-Shift\-j or Ctrl\--
Zooms page out Zooms page out
.TP .TP
.B Ctrl\-Shift\-i .B Ctrl\-Shift\-q
Resets Zoom Resets Zoom
.TP .TP
.B Ctrl\-/ .B Ctrl\-f and Ctrl\-/
Opens the search-bar. Opens the search-bar.
.TP .TP
.B Ctrl\-n
Go to next search result.
.TP
.B Ctrl\-Shift\-n
Go to previous search result.
.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.
@@ -64,15 +184,121 @@ 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.
.TP .TP
.B Ctrl\-o .B Ctrl\-o
show the sourcecode of the current page. Show the sourcecode of the current page.
.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
Open the Web Inspector (Developer Tools) window for the current page.
.TP
.B Ctrl\-Shift\-s
Toggle script execution. This will reload the page.
.TP
.B Ctrl\-Shift\-v
Toggle the enabling of plugins on that surf instance. This will reload the
page.
.TP
.B F11
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
.B SURF_USERAGENT
If this variable is set upon startup, surf will use it as the
.I useragent
string
.TP
.B http_proxy
If this variable is set and not empty upon startup, surf will use it as the http proxy
.SH PLUGINS
For using plugins in surf, first determine your running architecture. Then get
the appropriate plugin for that architecture and copy it to
.BR /usr/lib/browser-plugins
or
.BR /usr/lib64/browser-plugins.
Surf should load them automatically.
.BR
If you want to use a 32bit plugin on a 64bit system,
.BR nspluginwrapper(1)
will help you.
.SH SEE ALSO .SH SEE ALSO
.BR dmenu(1) .BR dmenu(1),
.BR xprop(1) .BR xprop(1),
.BR tabbed(1),
.BR nspluginwrapper(1),
.BR xdotool(1)
.SH BUGS .SH BUGS
Please report them! Please report them!
+1637 -722
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 240 B