vendredi 5 avril 2019

Surf, un navigateur génial

Surf de suckless est un excellent navigateur web pour celui qui veut lire une page web sans les nuisances des navigateurs ordinaires (firefox, etc.). Nous allons voir ici comment l'adapter à ses goûts, le compiler et l'utiliser.

C'est mieux de savoir programmer en C, pour appliquer les modifications proposées ici. Si ce n'est pas votre cas, ne vous sauvez pas, vous aller le voir, ce n'est pas sorcier. Il suffit de savoir utiliser un terminal, et un éditeur de texte, et de suivre les instructions.

Description de surf

La fenêtre de surf apparaît dans son plus simple élément dépouillée de menus, de boutons, de «side-bar» et de toutes les nuisances qui nous pourrissent la vie. Sur la barre de titre de la fenêtre (1) vous lisez le titre de la page que vous consultez. Il n'y a rien à cliquer si ce n'est le lien que vous pourriez suivre éventuellement ou le texte que vous voudriez copier. Vous disposez de toute la largeur de le fenêtre et de toute la hauteur de l'écran pour lire. Voici ci-contre comment surf rend la page que vous êtes en train de lire.

Cliquez droit dessus puis choisissez ouvrir l'image ..., pour l'afficher dans une nouvelle fenêtre.

Obtenir le source et le compiler

Le paquet surf est disponible dans votre distribution. Mais pour la suite préférez une installation depuis le source.

Pour obtenir le source le plus récent clonez le dossier 'git'.

git clone https://git.suckless.org/surf

Pour le compiler il suffit de

cd surf
sudo make clean install

C'est fini. Vous allez pouvoir lancer Alt-<F2> surf http://surf.suckless.org/ ou lire le manuel man surf (en anglais).

Configuration pour un écran HdPi

Il n'y a pas de fichier de configuration. Il faut mettre le nez dans le code source, le modifier et recompiler comme ci-dessus.

Taille de la fenêtre et niveau de zoom

Editez le fichier config.h et remplacez le niveau de zoom par la valeur souhaitée. Sur un écran HDPI une valeur comprise entre 1.4 et 1.6 semble convenir. Modifiez aussi la taille de la fenêtre. Sur mon écran pour avoir toute la hauteur et la moitié de la largeur je prends 956, 1028.

Voici des extraits de code, en gras les valeurs modifiées. Le numéro de ligne peut varier suivant l'évolution du fichier.

static Parameter defconfig[ParameterLast] = {
...
...
	[ZoomLevel]           =       { { .f = 1.5 },   }, // ligne ≈ 50
};

Un peu plus bas modifiez la taille de la fenêtre (ligne ≈ 61)

/* default window size: width, height */
static int winsize[] = { 956, 1028 }; // c'était 600, 800

Les commentaires en italique ont été ajoutés par moi.

Utilisation

Lancement

Si vous lancez surf sans adresse, vous aurez une page blanche.

Donc lancez-le plutôt avec une adresse surf arad.free.fr.

<Ctrl><g> (go) permet d'aller à une page par son uri.

Remarques :

-g interdire la géolocalisation.

-s sans javascript

-t sans TLS strict

-w affiche le xid pour l'utiliser avec xdotool par exemple.

-z niveau de zoom (surf -z 1.8 ... )

Navigation

<Ctrl><h> revenir à la page précédente (Alt ← de firefox)

<Ctrl><l> page suivante

<Ctrl><Shift><k> ou <Ctrl><+> zoommer (chez moi le <+> ne marche pas).

<Ctrl><Shift><j> ou <Ctrl><-> dézoommer (mais le <-> marche).

<Ctrl><y> copie l'adresse (URI) dans le presse papier. Pratique pour l'insérer dans vim.

Pour le reste voyez le man page.

Annexe

Le site suckless est bourré de bonnes applications. J'utilise leur slock qui est le meilleur verrouillage d'écran que je connaisse. Voyez Verrouillage d'écran sur ce même site.

Ils ont aussi un tas de plugins que je n'ai pas encore beaucoup testé.

Notes de bas de page.

(1)

J'ai modifié l'ordre d'apparition des informations sur la barre de titre de la fenêtre. Par défaut il y avait les drapeaux puis le titre de la page. Cette modification permet de voir le titre de la page dans les icônes de de la barre des taches de Xfce (the best) et autre gnome (de merde).

La méthode est simple. Editez le fichier surf.c. Allez à la fonction void updatetitle(Client *c) qui se trouve vers les lignes 620, et modifier le contenu du else comme suit :

	if (curconfig[ShowIndicators].val.i) {
		gettogglestats(c);
		getpagestats(c);
 
		if (c->progress != 100)
			title = g_strdup_printf("[%i%%] %s:%s | %s",
			        c->progress, togglestats, pagestats, name);
		else
			title = g_strdup_printf("%s  | %s %s", // `◀- barre avancée
			        name, togglestats, pagestats); // `◀- name en premier

Les modifications sont signalées en gras, et les commentaires en italique ont été ajoutés par moi

Puis comme d'habitude :

sudo make clean install

Revenir à Description de surf


Réalisé avec Qlam - LGPL