diff --git a/surf/.md5sum b/surf/.md5sum index 5005b2150..1bf02fac4 100644 --- a/surf/.md5sum +++ b/surf/.md5sum @@ -1,2 +1 @@ -3d465f7f264e9394d0ba2d11e42a7dbb config.h 11713901fa83c536f3ddfacfc28c3acc surf-2.0.tar.gz diff --git a/surf/.signature b/surf/.signature index 45c4eee8b..00ae1ede2 100644 --- a/surf/.signature +++ b/surf/.signature @@ -1,6 +1,5 @@ untrusted comment: verify with /etc/ports/contrib.pub -RWSagIOpLGJF3yFLYEbloAcaGrZgC7k+QT2C6ZURjI4Yf6Mawe6V29QcDSYtInnPmeE6KWLjHsZUGGgzqi8TlpBsavobKIKB2Qk= -SHA256 (Pkgfile) = 89312a4ce92efb829eee70da98b1265c494a35cf4edaceba684a7b0ad6ae08e8 +RWSagIOpLGJF3/XGWKp/vD6zH5bz0zSn+oG/TeQWWQoX5Ar/21hmxubSQQfwR4Wt1/VHgoTJnLSO/ITCroCtSDJS5IjcF+DjKgE= +SHA256 (Pkgfile) = 70a27010d36403fa6f2532d7be9632b7e0e3b9e90a6dc68657fb805e82db649f SHA256 (.footprint) = e7f7b9f11b503fcae9c62ff318be7047c3dfde1264a7969ed01626fe4869b995 SHA256 (surf-2.0.tar.gz) = faee4c7a62c38fc9791eff1ad06787c3c9b2b79f338806827f5152a7bc54951d -SHA256 (config.h) = 3a746f6f3a48e42b1779686421cf6b34157292e34e571b67de8d614c3ea1565c diff --git a/surf/Pkgfile b/surf/Pkgfile index 504da4b98..5a0e8ac5c 100644 --- a/surf/Pkgfile +++ b/surf/Pkgfile @@ -5,14 +5,15 @@ name=surf version=2.0 -release=2 -source=(http://dl.suckless.org/surf/$name-$version.tar.gz - config.h) +release=3 +source=(http://dl.suckless.org/surf/$name-$version.tar.gz) build () { cd "$name-$version" - cp $SRC/config.h . + if [ -f $PKGMK_ROOT/config.h ]; then + cp $PKGMK_ROOT/config.h . + fi sed -i 's/CPPFLAGS =/CPPFLAGS +=/g' config.mk sed -i 's/CFLAGS =/CFLAGS +=/g' config.mk diff --git a/surf/README b/surf/README index c57bb8fae..c61df8a96 100644 --- a/surf/README +++ b/surf/README @@ -1 +1,14 @@ -Edit config.h and rebuild the package to configure surf. +The configuration of surf is done by creating a custom config.h +and (re)compiling the source code. To create a custom config.h, +unpack the tarball, copy the file surf-$version/config.def.h to +surf's port directory, and edit to suit your preferences. Then, +when you call pkgmk in the surf port directory, the custom +config.h will be detected and copied into the source before +compilation. I recommend that you save a copy your custom config.h +some where other than the surf port directory, so that your changes +won't get nuked when updating ports or performing a prtsweep or +prtwash (see opt/prt-utils for more information about those two). + +Another solution for customizing surf is to create a custom and +(preferably) private port that contains your custom config and also +might include patches, such as from https://suckless.org/patches/. diff --git a/surf/config.h b/surf/config.h deleted file mode 100644 index 6d3135ef4..000000000 --- a/surf/config.h +++ /dev/null @@ -1,166 +0,0 @@ -/* modifier 0 means no modifier */ -static int surfuseragent = 1; /* Append Surf version to default WebKit user agent */ -static char *fulluseragent = ""; /* Or override the whole user agent string */ -static char *scriptfile = "~/.surf/script.js"; -static char *styledir = "~/.surf/styles/"; -static char *cachedir = "~/.surf/cache/"; -static char *cookiefile = "~/.surf/cookies.txt"; - -/* 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 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[] = { - /* modifier keyval function arg */ - { MODKEY, GDK_KEY_g, spawn, SETPROP("_SURF_URI", "_SURF_GO") }, - { MODKEY, GDK_KEY_f, spawn, SETPROP("_SURF_FIND", "_SURF_FIND") }, - { MODKEY, GDK_KEY_slash, spawn, SETPROP("_SURF_FIND", "_SURF_FIND") }, - - { 0, GDK_KEY_Escape, stop, { 0 } }, - { MODKEY, GDK_KEY_c, stop, { 0 } }, - - { MODKEY|GDK_SHIFT_MASK, GDK_KEY_r, reload, { .b = 1 } }, - { MODKEY, GDK_KEY_r, reload, { .b = 0 } }, - - { MODKEY, GDK_KEY_l, navigate, { .i = +1 } }, - { MODKEY, GDK_KEY_h, navigate, { .i = -1 } }, - - /* Currently we have to use scrolling steps that WebKit2GTK+ gives us - * d: step down, u: step up, r: step right, l:step left - * D: page down, U: page up */ - { MODKEY, GDK_KEY_j, scroll, { .i = 'd' } }, - { 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 } }, -}; - -/* button definitions */ -/* target can be OnDoc, OnLink, OnImg, OnMedia, OnEdit, OnBar, OnSel, OnAny */ -static Button buttons[] = { - /* target event mask button function argument stop event */ - { OnLink, 0, 2, clicknewwindow, { .b = 0 }, 1 }, - { OnLink, MODKEY, 2, clicknewwindow, { .b = 1 }, 1 }, - { OnLink, MODKEY, 1, clicknewwindow, { .b = 1 }, 1 }, - { OnAny, 0, 8, clicknavigate, { .i = -1 }, 1 }, - { OnAny, 0, 9, clicknavigate, { .i = +1 }, 1 }, - { OnMedia, MODKEY, 1, clickexternplayer, { 0 }, 1 }, -};