Vous n'êtes pas identifié(e).

#1 2012-07-06 18:51:50

skingrapher
Ours mal léché mais qui lèche bien
Lieu : 974
Inscription : 2011-05-03
Messages : 1 817
Site Web

[surf] config.h

Pentadactyl bogue depuis Firefox 12 et vimperator ne me satisfait pas pleinement. Alors j'ai décidé de rechanger de navigateur GUI, utilisant précédemment Uzbl mais les scripts en python pour le personnaliser ne sont pas mon fort.
J'ai donc téléchargé les sources du navigateur Surf de Suckless et je l'ai compilé. Auparavant, j'ai pris quelques heures à étudier le fichier de configuration, qui est à éditer, si besoin est, AVANT compilation. L'application ne se configure plus après.
Il m'a fallu installer les dép. libwebkit-dev et libuniq-dev pour pouvoir compiler les sources.

J'ai ajouté certains patches (homepage et searchengines) disponibles sur le site de Suckless.
Cela me permet d'utiliser certains moteurs de recherches en les intégrant directement dans surf.
J'ai modifié certains raccourcis claviers dont j'ai l'habitude sous Firefox ; et j'en ai ajouté une autre qui n'est pas dans la config par défaut :
ctrl+w pour fermer la fenêtre (eh oui, il n'y a pas de fonction quitter dans surf au départ).

J'ai modifié aussi l'User Agent en copiant celui de Mozilla car certains sites administratifs ou des services de webmail bloquent l'accès à leur contenu si on ne leur montre pas patte blanche  ! Entendez par là qu'ils ne reconnaissent rien en dehors de FF, IE, Chrome ou Safari.

/* modifier 0 means no modifier */
static char *useragent      = "Mozilla/5.0 (X11; Linux i686; rv:13.0) Gecko/20100101 Firefox/13.0.1";
static char *progress       = "#915916";
static char *progress_untrust = "#E11741";
static char *progress_trust = "#9FE136";
static char *stylefile      = ".surf/style.css";
static char *scriptfile     = ".surf/script.js";
static char *cookiefile     = ".surf/cookies.txt";
static time_t sessiontime   = 3600;
static char *cafile         = "/etc/ssl/certs/ca-certificates.crt";
static char *strictssl      = TRUE; /* Refuse untrusted SSL connections */
#define HIDE_BACKGROUND FALSE
#define SPATIAL_BROWSING TRUE

#define HOMEPAGE "http://crunchbanglinux-fr.org/forum/search.php?action=show_new"

#define SETPROP(p, q)     { .v = (char *[]){ "/bin/sh", "-c", \
	"prop=\"`xprop -id $2 $0 | cut -d '\"' -f 2 | dmenu`\" &&" \
	"xprop -id $2 -f $1 8s -set $1 \"$prop\"", \
	p, q, winid, NULL } }
#define DOWNLOAD(d) {			  \
	.v = (char *[]){ "/bin/sh", "-c", \
	"evilvte -e \"wget '$0' \
--load-cookies ~/.surf/cookies.txt \
--user-agent '$1' ; sleep 5\"", d, useragent, NULL } }
#define MODKEY GDK_CONTROL_MASK

#define BM_PICK { .v = (char *[]){ "/bin/sh", "-c", \
"xprop -id $0 -f _SURF_GO 8s -set _SURF_GO \
`cat ~/.surf/bookmarks | dmenu -l 20 | awk '{print $1}' || exit 0`", \
winid, NULL } }

#define BM_ADD { .v = (char *[]){ "/bin/sh", "-c", \
"(echo `xprop -id $0 _SURF_URI | cut -d '\"' -f 2` | dmenu && \
cat ~/.surf/bookmarks) | sort -u > ~/.surf/bookmarks_new && \
mv ~/.surf/bookmarks_new ~/.surf/bookmarks", \
winid, NULL } }

#define CP_URI { .v = (char *[]){ "/bin/sh", "-c", \
"xprop -id $0 _SURF_URI | cut -d '\"' -f 2 | xclip", \
winid, NULL } }

static SearchEngine searchengines[] = {
	{ "g",	"http://www.google.com/search?q=%s" },
	{ "c",	"http://www.cnrtl.fr/lexicographie/%s"  },
	{ "d",	"https://duckduckgo.com/?q=%s"  },
	{ "i",	"http://www.imdb.com/find?s=tt&q=%s"  },
	{ "p",	"http://manual.pohape.ru/%s" },
	{ "o",	"http://goosh.org/?q=%s" },
	{ "e",	"http://seeks.fr/search?q=%s&action=expand&expansion=1" },
	{ "s",	"http://s.s/search?q=%s&action=expand&expansion=1" },
	{ "m",	"http://www.die.net/search/?q=%s" },
	{ "w",	"https://secure.wikimedia.org/wikipedia/en/w/index.php?search=%s" },
	{ "f",	"https://secure.wikimedia.org/wikipedia/fr/w/index.php?search=%s" },
	{ "y",	"http://www.youtube.com/results?search_query=%s"  },
	{ "t",	"http://thepiratebay.se/search/%s"  },
	{ "fr2en",	"http://www.wordreference.com/fren/%s" },
	{ "en2fr",	"http://www.wordreference.com/enfr/%s" },
};

static Key keys[] = {
    /* modifier	            keyval      function    arg             Focus */
    { MODKEY|GDK_SHIFT_MASK,GDK_r,      reload,     { .b = TRUE } },
    { MODKEY,               GDK_r,      reload,     { .b = FALSE } },
    { MODKEY|GDK_SHIFT_MASK,GDK_p,      print,      { 0 } },
    { MODKEY,               GDK_p,      clipboard,  { .b = TRUE } },
    { MODKEY,               GDK_y,      clipboard,  { .b = FALSE } },
    { MODKEY|GDK_SHIFT_MASK,GDK_j,      zoom,       { .i = -1 } },
    { MODKEY|GDK_SHIFT_MASK,GDK_k,      zoom,       { .i = +1 } },
    { MODKEY|GDK_SHIFT_MASK,GDK_l,      zoom,       { .i = 0  } },
    { MODKEY,               GDK_i,      navigate,   { .i = +1 } },
    { MODKEY,               GDK_o,      navigate,   { .i = -1 } },
    { MODKEY,               GDK_j,           scroll_v,   { .i = +1 } },
    { MODKEY,               GDK_k,           scroll_v,   { .i = -1 } },
    { MODKEY,               GDK_b,           scroll_v,   { .i = -10000 } },
    { MODKEY,               GDK_t,           scroll_v,   { .i = +10000 } },
    { MODKEY,               GDK_l,           scroll_h,   { .i = +1 } },
    { MODKEY,               GDK_h,           scroll_h,   { .i = -1 } },
    { 0,                    GDK_Escape, stop,       { 0 } },
    { MODKEY,               GDK_u,      source,     { 0 } },
    { MODKEY,               GDK_g,      spawn,      SETPROP("_SURF_URI", "_SURF_GO") },
    { MODKEY,               GDK_colon,      spawn,      SETPROP("_SURF_FIND", "_SURF_FIND") },
    { MODKEY,               GDK_n,      find,       { .b = TRUE } },
    { MODKEY|GDK_SHIFT_MASK,GDK_n,      find,       { .b = FALSE } },
    { MODKEY,               GDK_w,      destroyclient, { 0 } },
    { MODKEY,               GDK_a,      spawn,      BM_PICK },
    { MODKEY|GDK_SHIFT_MASK,GDK_b,      spawn,      BM_ADD },
    { MODKEY,               GDK_c,      spawn,      CP_URI },
};

J'ai ajouté le script link hints au fichier ~/.surf/script.js et l'ai modifié selon les conseils d'eol car sinon il ne fonctionne pas avec un clavier azerty.
Il ne me reste plus qu'à créer un script bloqueur de pub (edit : il est ici) comme celui d'uzbl, mais en javascript et éventuellement rajouter 4 fonctions :

  • 1 pour les bookmarks, (fait)

  • 1 pour l'historique,

  • 1 pour copier coller l'url d'un site que je consulte, (fait)

  • 1 pour éditer un texterea dans vim.

Je commence à apprécier de pouvoir créer mes propres outils. smile

Dernière modification par skingrapher (2012-07-28 18:57:57)


Je suis un obsédé textuel. J'aime trop le LaTeX.
Mon ventre est un cimetière de poulets. Cthulhu fhtagn !
()  ascii ribbon campaign - contre les e-mails en HTML
/\  www.asciiribbon.org - contre les attachements propriétaires

Hors ligne

#2 2012-07-06 20:27:46

znk
Stratège en frite
Inscription : 2010-12-27
Messages : 1 047

Re : [surf] config.h

Pour bloquer les pubs, tu as un moyen alternatif est de passer par le fichier /etc/hosts :
http://doc.ubuntu-fr.org/hosts
http://kosvocore.free.fr/AdZHosts/HOSTS.txt

Hors ligne

#3 2012-07-06 20:34:53

skingrapher
Ours mal léché mais qui lèche bien
Lieu : 974
Inscription : 2011-05-03
Messages : 1 817
Site Web

Re : [surf] config.h

znk a écrit :

Pour bloquer les pubs, tu as un moyen alternatif est de passer par le fichier /etc/hosts :

Déjà fait avec celui de someonewhocares.org.
Ça n'empêche pas d'avoir des cadres vides avec des url abominables inscrites à l'intérieur. Je veux une page avec un css propre.
Et éventuellement ajouter des urls dans ma liste noire à la volée sans avoir à repasser en root pour bidouiller le fichier hosts.

Dernière modification par skingrapher (2012-07-06 20:37:36)


Je suis un obsédé textuel. J'aime trop le LaTeX.
Mon ventre est un cimetière de poulets. Cthulhu fhtagn !
()  ascii ribbon campaign - contre les e-mails en HTML
/\  www.asciiribbon.org - contre les attachements propriétaires

Hors ligne

#4 2012-07-08 00:06:00

skingrapher
Ours mal léché mais qui lèche bien
Lieu : 974
Inscription : 2011-05-03
Messages : 1 817
Site Web

Re : [surf] config.h

Pour le bloquage de pub, pas besoin d'intégrer une fonction javascript à surf.
Comme j'utilise seeks en local comme moteur de recherche, je peux le paramétrer pour bloquer et filtrer à partir d'une liste téléchargée comme celles d'Adblock+, puisque seeks est basé sur privoxy.


Je suis un obsédé textuel. J'aime trop le LaTeX.
Mon ventre est un cimetière de poulets. Cthulhu fhtagn !
()  ascii ribbon campaign - contre les e-mails en HTML
/\  www.asciiribbon.org - contre les attachements propriétaires

Hors ligne

#5 2012-07-08 10:51:03

skingrapher
Ours mal léché mais qui lèche bien
Lieu : 974
Inscription : 2011-05-03
Messages : 1 817
Site Web

Re : [surf] config.h

Le raccourci ctrl+slash (/) dans la config par défaut, ne fonctionne pas non plus avec mon clavier azerty. J'ai donc mis GDK_colon (:) à la place de GDK_slash.


Je suis un obsédé textuel. J'aime trop le LaTeX.
Mon ventre est un cimetière de poulets. Cthulhu fhtagn !
()  ascii ribbon campaign - contre les e-mails en HTML
/\  www.asciiribbon.org - contre les attachements propriétaires

Hors ligne

#6 2012-07-09 08:29:24

skingrapher
Ours mal léché mais qui lèche bien
Lieu : 974
Inscription : 2011-05-03
Messages : 1 817
Site Web

Re : [surf] config.h

surf n'arrive pas à se connecter au proxy si je mets la valeur localhost à la variable d'environnement http_proxy.
J'ai donc mis directement l'adresse ip 127.0.0.1 à la place et ÇA MARCHE !
Donc dans ~/.ratpoisonrc, j'ai ajouté cette ligne :

setenv http_proxy http://127.0.0.1:3615

Dernière modification par skingrapher (2012-07-09 08:30:22)


Je suis un obsédé textuel. J'aime trop le LaTeX.
Mon ventre est un cimetière de poulets. Cthulhu fhtagn !
()  ascii ribbon campaign - contre les e-mails en HTML
/\  www.asciiribbon.org - contre les attachements propriétaires

Hors ligne

#7 2012-07-10 17:17:43

skingrapher
Ours mal léché mais qui lèche bien
Lieu : 974
Inscription : 2011-05-03
Messages : 1 817
Site Web

Re : [surf] config.h

Ce script télécharge des listes Adblock et adapte le contenu pour qu'il soit exploitable par Seeks pour filtrer des contenus indésirables, principalement les pubs. On peut y rajouter sa liste perso.
La liste obtenue est copiée dans le fichier /usr/share/seeks/plugins/blocker/blocked-patterns qui est le fichier de filtrage utilisé par Seeks.

Comme je n'utilise pas sudo, le script est lancé directement en root.
Comme le téléchargement de la plupart des listes se fait en https, on peut ajouter une vérification des certificats à curl pour plus de sécurité.

Le rendu css est peu altéré sur les sites concernés ; c'est moins bien rendu qu'avec l'extension adblock+, mais on doit pouvoir peaufiner en ajoutant des règles au ficher style.css.
En tout cas, même si surf n'a pas d'extension adblock, seeks filtre très bien désormais et je n'ai pas eu besoin d'utiliser du javascript pour ça.

Le script peut être mis dans une tâche cron pour actualiser régulièrement les listes.

Comme http_proxy est une variable d'environnement déclarée directement dans ratpoison, si je veux désactiver le proxy spécialement pour surf, je peux toujours le faire en initialisant la variable dans un terminal et en lançant surf à sa suite.

http_proxy='' && surf

Dernière modification par skingrapher (2012-07-10 20:32:16)


Je suis un obsédé textuel. J'aime trop le LaTeX.
Mon ventre est un cimetière de poulets. Cthulhu fhtagn !
()  ascii ribbon campaign - contre les e-mails en HTML
/\  www.asciiribbon.org - contre les attachements propriétaires

Hors ligne

#8 2012-07-28 19:01:00

skingrapher
Ours mal léché mais qui lèche bien
Lieu : 974
Inscription : 2011-05-03
Messages : 1 817
Site Web

Re : [surf] config.h

une nouvelle version de surf vient de sortir. La config est à adapter en conséquence.

Dernière modification par skingrapher (2012-07-28 19:01:18)


Je suis un obsédé textuel. J'aime trop le LaTeX.
Mon ventre est un cimetière de poulets. Cthulhu fhtagn !
()  ascii ribbon campaign - contre les e-mails en HTML
/\  www.asciiribbon.org - contre les attachements propriétaires

Hors ligne

#9 2012-07-28 20:06:46

inan
OMGWTFBBQ!!11
Lieu : .be
Inscription : 2012-07-12
Messages : 47

Re : [surf] config.h

Il est terrible surf, vraiment ultra-light (pour le meilleur, comme pour le pire !).

Si surf n'a pas de fonction prédéfinie pour le quit, c'est sûrement parce suckless conçoit ses outils pour fonctionner l'un dans l'autre (donc sous DWM, qui a son propre raccourci pour fermer les fenêtres).

C'est un formidable travail de débrousaillage que t'as fait ! smile

Sinon, je ne sais pas si tu aimes les tabs ou pas, mais il y a un script pour ça... "Tabbed", by suckless. Je n'ai pas eu le courrage de le tester.


debian(testing)/i386~dwm~zsh~urxvt~vim

Just twelve particles of matter, stuck together by four forces of nature.

Hors ligne

#10 2012-07-28 20:17:24

skingrapher
Ours mal léché mais qui lèche bien
Lieu : 974
Inscription : 2011-05-03
Messages : 1 817
Site Web

Re : [surf] config.h

non, je préfère naviguer sans les tabs. C'est plus pour éviter de m'éparpiller et pour rester concentré sur une seule page à la fois, quitte à faire un ctrl+o pour revenir à la page précédente et revoir les liens qui peuvent encore m'intéresser.
Éventuellement j'ouvre une deuxième fenêtre de surf.
Je pense qu'on peut rajouter un script qui utiliserait dmenu pour retrouver des urls dans un historique ou une liste de favoris. Il en existe déjà sur le site officiel de surf, mais ça bogue chez moi. On peut bidouiller quelque chose avec du javascript ou un script shell.

Dernière modification par skingrapher (2012-07-28 20:18:33)


Je suis un obsédé textuel. J'aime trop le LaTeX.
Mon ventre est un cimetière de poulets. Cthulhu fhtagn !
()  ascii ribbon campaign - contre les e-mails en HTML
/\  www.asciiribbon.org - contre les attachements propriétaires

Hors ligne

#11 2012-08-26 20:06:22

skingrapher
Ours mal léché mais qui lèche bien
Lieu : 974
Inscription : 2011-05-03
Messages : 1 817
Site Web

Re : [surf] config.h

J'ai légèrement modifié ce script pour avoir des favoris dans surf.
J'ai fait en sorte de pouvoir y ajouter des tags et de lister les favoris verticalement dans dmenu (cf. le fichier de config).

#define BM_PICK { .v = (char *[]){ "/bin/sh", "-c", \
"xprop -id $0 -f _SURF_GO 8s -set _SURF_GO \
`cat ~/.surf/bookmarks | dmenu -l 20 | awk '{print $1}' || exit 0`", \
winid, NULL } }

#define BM_ADD { .v = (char *[]){ "/bin/sh", "-c", \
"(echo `xprop -id $0 _SURF_URI | cut -d '\"' -f 2` | dmenu && \
cat ~/.surf/bookmarks) | sort -u > ~/.surf/bookmarks_new && \
mv ~/.surf/bookmarks_new ~/.surf/bookmarks", \
winid, NULL } }

les raccourcis intégrés au tableau keys dans config.h :

    { MODKEY,               GDK_a,      spawn,      BM_PICK },
    { MODKEY|GDK_SHIFT_MASK,GDK_b,      spawn,      BM_ADD },

ctrl+shift+B : dmenu s'ouvre prêt à enregistrer l'url de la page courante. Je fais Tab pour ajouter l'url et éventuellement des tags séparés par une espace. Je tape sur Entrée pour enregistrer.
ctrl+A : dmenu affiche les favoris verticalement sur une trentaine de lignes. Je peux faire une recherche en tapant le mot correspondant à un tag ou une partie de l'url.


Je suis un obsédé textuel. J'aime trop le LaTeX.
Mon ventre est un cimetière de poulets. Cthulhu fhtagn !
()  ascii ribbon campaign - contre les e-mails en HTML
/\  www.asciiribbon.org - contre les attachements propriétaires

Hors ligne

#12 2012-08-26 20:24:55

skingrapher
Ours mal léché mais qui lèche bien
Lieu : 974
Inscription : 2011-05-03
Messages : 1 817
Site Web

Re : [surf] config.h

Pour copier l'adresse de la page en cours :

#define CP_URI { .v = (char *[]){ "/bin/sh", "-c", \
"xprop -id $0 _SURF_URI | cut -d '\"' -f 2 | xclip", \
winid, NULL } }

raccourci  à ajouter au tableau key :

{ MODKEY,         GDK_c,      spawn,      CP_URI },

Je suis un obsédé textuel. J'aime trop le LaTeX.
Mon ventre est un cimetière de poulets. Cthulhu fhtagn !
()  ascii ribbon campaign - contre les e-mails en HTML
/\  www.asciiribbon.org - contre les attachements propriétaires

Hors ligne

#13 2012-09-06 17:08:14

skingrapher
Ours mal léché mais qui lèche bien
Lieu : 974
Inscription : 2011-05-03
Messages : 1 817
Site Web

Re : [surf] config.h

J'ai un problème avec la fonction DOWNLOAD : evilvte n'arrive pas à télécharger avec la commande wget incluse. Un petit bug à corriger.


Je suis un obsédé textuel. J'aime trop le LaTeX.
Mon ventre est un cimetière de poulets. Cthulhu fhtagn !
()  ascii ribbon campaign - contre les e-mails en HTML
/\  www.asciiribbon.org - contre les attachements propriétaires

Hors ligne

Pied de page des forums