Surf, prochaînement dans les dépots

Surf est navigateur minimal qui nous vient de chez http://suckless.org/
Leur devise :[quote=“suckless.org”]“suckless.org : Dedicated to software that sucks less”[/quote]
Le mainteneur pour debian de dwm, s’occupe d’en faire un paquet actuellement.
Il est plutôt recommandé de se procurer les sources, ici pour la dernière version stable
et $ hg clone http://hg.suckless.org/surf pour la dernière mouture, car la configuration se fait par édition d’un header
et/ou du code source et par recompilation. Je recommande la dernière mouture car c’est à elle que s’applique tous les patchs qui peuvent
être proposé sur leur liste de diffusion et dont certains sont très utiles.

Si vous êtes adepte des solutions clé en main, passez votre chemin, par défaut surf ne contient pas de solution complète pour gérer l’historique et les marques pages, il n’a pas non plus d’onglets, surf est dévolu à surfer point barre!

J’ai un peu grossi le trait, surf propose quelques raccourcis clavier par défaut, par exemple pour recharger la page, rechercher des chaînes sur la page, envoyer l’url actuelle dans le clipboard, charger l’url située dans le clipboard, zoomer, imprimer la page sous forme de pdf, etc …
Une option que je n’ai pas encore testé, on peut l’embarquer dans une autre application.

Au royaume d’unix la coopération est de mise.
Quelques petits utilitaires vont donc nous faciliter la vie, dmenu patché verticalement
sera très utile dans des scripts pour charger un historique ou des listes de marque page.
wmctrl, pour ceux qui ont un gestionnaire de fenêtre/environnement de bureau
compatible EWMH (c’est à dire la majorité d’entre vous) permettra, associé à dmenu, d’émuler la gestion des onglets.
La commande xprop pourra elle aussi être utile.

Voilà, c’est tout pour un premier post, ça vous laisse le temps d’aller chercher le matériel, RTFM des différents éléments,
et commencer à réfléchir à des assemblages éventuels.

Salut,

J’ai lu ta réponse ici

Je vais essayer dans ma SID, il n’y a pas de raison…

Merci !

[quote=“lol”]Salut,
J’ai lu ta réponse ici
Je vais essayer dans ma SID, il n’y a pas de raison…
Merci ![/quote]C’est clair, c’est un programme minuscule, il n’ y a pas de raisons qu’il resiste,
Tu l’avais customisé avant installation?
Essaie quand même la version de dévelopement, on sait jamais …

[quote=“eol”][quote=“lol”]Salut,
J’ai lu ta réponse ici
Je vais essayer dans ma SID, il n’y a pas de raison…
Merci ![/quote]C’est clair, c’est un programme minuscule, il n’ y a pas de raisons qu’il resiste,
Tu l’avais customisé avant installation?
Essaie quand même la version de dévelopement, on sait jamais …[/quote]

Non je n’avais rien fait de spécial.
Je reteste cet aprèm’ là je suis sur autre chose… Il faut que je redémarre la machine :wink:

Merci beaucoup

En ce qui concerne dmenu vertical :
2 patchs sur internet :
http://schiewek.net/fresch/dmenu-3.9-fresch-3.diff :
le plus complet, des options très intéresssantes, d’autres juste cosmétiques (mes propos n’engagent que moi)
remplacer toutes les occurences de 3.9 par 4.0 pour qu’il s’applique bien sur un dmenu actuel (16.4ko)

http://prog.marmaro.de/dwm-meillo/dmenu-4.0-vertical_meillo.diff
version minimale du premier, n’ajoute que le mode vertical à dmenu et rien d’autre. (6ko)

J’en ai fait un troisième pour alléger le premier et compléter le deuxième, comme on peut toujours pas joindre des .diff en pièce jointe,
je vais le coller ici : (11.7ko)[code]
diff -up dmenu/dmenu-4.0/config.h dmenu/dmenu_vertical/config.h
— a/config.h 2009-04-18 13:50:04.000000000 +0200
+++ b/config.h 2009-10-15 11:17:36.000000000 +0200
@@ -1,9 +1,10 @@
/* See LICENSE file for copyright and license details. */

/* appearance /
-static const char font = "--terminus-medium-r-normal-
-14-------";
-static const char normbgcolor = “#cccccc”;
-static const char normfgcolor = “#000000”;
-static const char selbgcolor = “#0066ff”;
+static const char font = "-misc-fixed-medium-r--
-14-
-
-
----";
+static const char *normbgcolor = “#000000”;
+static const char *normfgcolor = “#00ff00”;
+static const char *selbgcolor = “darkgreen”;
static const char selfgcolor = “#ffffff”;
static unsigned int spaceitem = 30; /
px between menu items /
+static unsigned int maxtokens = 16; /
max. tokens for pattern matching */
diff -up dmenu/dmenu-4.0/config.mk dmenu/dmenu_vertical/config.mk
— a/config.mk 2009-04-18 13:50:04.000000000 +0200
+++ b/config.mk 2009-10-15 11:51:53.000000000 +0200
@@ -1,5 +1,5 @@

dmenu version

-VERSION = 4.0
+VERSION = 4.0-vertical

Customize below to fit your system

diff -up dmenu/dmenu-4.0/dmenu.1 dmenu/dmenu_vertical/dmenu.1
— a/dmenu.1 2009-04-18 13:50:04.000000000 +0200
+++ b/dmenu.1 2009-10-15 11:07:35.000000000 +0200
@@ -5,12 +5,18 @@ dmenu - dynamic menu
.B dmenu
.RB [ -i ]
.RB [ -b ]
+.RB [ -a ]
+.RB [ -fl]
.RB [ -fn " "]
.RB [ -nb " "]
.RB [ -nf " "]
.RB [ -p " "]
.RB [ -sb " "]
.RB [ -sf " “]
+.RB [ -l " <#items>”]
+.RB [ -ms ]
+.RB [ -nl ]
+.RB [ -xs ]
.RB [ -v ]
.SH DESCRIPTION
.SS Overview
@@ -26,6 +32,14 @@ makes dmenu match menu entries case inse
.B -b
defines that dmenu appears at the bottom.
.TP
+.B -a
+makes dmenu autoconfirm, useful on recursive script.
+.TP
+.B -fl
+similar to -a but doesn’t care of substring,
+you have to type from first letter to match.
+Decrease the number of item faster on non-similar-begin item list.
+.TP
.B -fn
defines the font.
.TP
@@ -44,8 +58,22 @@ defines the selected background color (#
.B -sf
defines the selected foreground color (#RGB, #RRGGBB, and color names are supported).
.TP
+.B -l <#items>
+activates vertical list mode.
+window-size will be adjusted for displaying the given number of items.
+.TP
+.B -ms
+multi-select; selecting an item and pressing return won’t terminate dmenu.
+.TP
+.B -nl
+seperates standard output by newlines.
+.TP
+.B -xs
+xmms-like pattern matching.
+.TP
.B -v
prints version information to standard output, then exits.
+.TP
.SH USAGE
dmenu reads a list of newline-separated items from standard input and creates a
menu. When the user selects an item or enters any text and presses Return, his/her
@@ -57,7 +85,7 @@ dmenu is completely controlled by the ke
Appends the character to the text in the input field. This works as a filter:
only items containing this text will be displayed.
.TP
-.B Left/Right (Mod1-h/Mod1-l)
+.B Left/Right (Up/Down) (Mod1-h/Mod1-l)
Select the previous/next item.
.TP
.B PageUp/PageDown (Mod1-k/Mod1-j)
@@ -96,3 +124,4 @@ Remove all characters of current word fr
.SH SEE ALSO
.BR dwm (1),
.BR wmii (1) .
+.BR surf (1) .
diff -up dmenu/dmenu-4.0/dmenu.c dmenu/dmenu_vertical/dmenu.c
— a/dmenu.c 2009-04-18 13:50:04.000000000 +0200
+++ b/dmenu.c 2009-10-15 11:16:51.000000000 +0200
@@ -47,10 +47,12 @@ struct Item {

/* forward declarations */
static void appenditem(Item *i, Item **list, Item **last);
-static void calcoffsets(void);
+static void calcoffsetsh(void);
+static void calcoffsetsv(void);
static char *cistrstr(const char *s, const char *sub);
static void cleanup(void);
-static void drawmenu(void);
+static void drawmenuh(void);
+static void drawmenuv(void);
static void drawtext(const char *text, unsigned long col[ColLast]);
static void eprint(const char *errstr, …);
static unsigned long getcolor(const char *colstr);
@@ -69,6 +71,10 @@ static int textw(const char text);
/
variables */
static char *maxname = NULL;
static char *prompt = NULL;
+static Bool autoconfirm = False;
+static Bool flautoconfirm = False;
+static char *nl = “”;
+static char **tokens = NULL;
static char text[4096];
static int cmdw = 0;
static int promptw = 0;
@@ -77,6 +83,8 @@ static int screen;
static unsigned int mw, mh;
static unsigned int numlockmask = 0;
static Bool running = True;
+static Bool multiselect = False;
+static Bool xmms = False;
static Display *dpy;
static DC dc;
static Item allitems = NULL; / first of all items */
@@ -88,6 +96,10 @@ static Item *curr = NULL;
static Window root, win;
static int (*fstrncmp)(const char *, const char *, size_t n) = strncmp;
static char *(*fstrstr)(const char *, const char *) = strstr;
+static Bool vlist = False;
+static unsigned int lines = 0;
+static void (*calcoffsets)(void) = calcoffsetsh;
+static void (*drawmenu)(void) = drawmenuh;

void
appenditem(Item *i, Item **list, Item **last) {
@@ -101,7 +113,7 @@ appenditem(Item *i, Item **list, Item **
}

void
-calcoffsets(void) {
+calcoffsetsh(void) {
int tw;
unsigned int w;

@@ -127,6 +139,26 @@ calcoffsets(void) {
}
}

+void
+calcoffsetsv(void) {

  • static unsigned int w;
  • if(!curr)
  •   return;
    
  • w = (dc.font.height + 2) * (lines + 1);
  • for(next = curr; next; next=next->right) {
  •   w -= dc.font.height + 2;
    
  •   if(w <= 0)
    
  •   	break;
    
  • }
  • w = (dc.font.height + 2) * (lines + 1);
  • for(prev = curr; prev && prev->left; prev=prev->left) {
  •   w -= dc.font.height + 2;
    
  •   if(w <= 0)
    
  •   	break;
    
  • }
    +}

char *
cistrstr(const char *s, const char *sub) {
int c, csub;
@@ -168,10 +200,11 @@ cleanup(void) {
XFreeGC(dpy, dc.gc);
XDestroyWindow(dpy, win);
XUngrabKeyboard(dpy, CurrentTime);

  • free(tokens);
    }

void
-drawmenu(void) {
+drawmenuh(void) {
Item *i;

dc.x = 0;

@@ -212,6 +245,39 @@ drawmenu(void) {
}

void
+drawmenuv(void) {

  • Item *i;
  • dc.x = 0;
  • dc.y = 0;
  • dc.w = mw;
  • dc.h = mh;
  • drawtext(NULL, dc.norm);
  • /* print prompt? */
  • if(promptw) {
  •   dc.w = promptw;
    
  •   drawtext(prompt, dc.sel);
    
  • }
  • dc.x += promptw;
  • dc.w = mw - promptw;
  • /* print command */
  • drawtext(text[0] ? text : NULL, dc.norm);
  • if(curr) {
  •   dc.x = 0;
    
  •   dc.w = mw;
    
  •   dc.y += dc.font.height + 2;
    
  •   /* determine maximum items */
    
  •   for(i = curr; i != next; i=i->right) {
    
  •   	drawtext(i->text, (sel == i) ? dc.sel : dc.norm);
    
  •   	dc.y += dc.font.height + 2;
    
  •   }
    
  •   drawtext(NULL, dc.norm);
    
  • }
  • XCopyArea(dpy, dc.drawable, win, dc.gc, 0, 0, mw, mh, 0, 0);
  • XFlush(dpy);
    +}

+void
drawtext(const char *text, unsigned long col[ColLast]) {
char buf[256];
int i, x, y, h, len, olen;
@@ -222,8 +288,8 @@ drawtext(const char *text, unsigned long
if(!text)
return;
olen = strlen(text);

  • h = dc.font.ascent + dc.font.descent;
  • y = dc.y + (dc.h / 2) - (h / 2) + dc.font.ascent;
  • h = dc.font.height;
  • y = dc.y + ((h+2) / 2) - (h / 2) + dc.font.ascent;
    x = dc.x + (h / 2);
    /* shorten text if necessary */
    for(len = MIN(olen, sizeof buf); len && textnw(text, len) > dc.w - h; len–);
    @@ -426,6 +492,7 @@ kpress(XKeyEvent * e) {
    calcoffsets();
    break;
    case XK_Left:
  • case XK_Up:
    if(!(sel && sel->left))
    return;
    sel=sel->left;
    @@ -448,15 +515,16 @@ kpress(XKeyEvent * e) {
    break;
    case XK_Return:
    if((e->state & ShiftMask) && *text)
  •   	fprintf(stdout, "%s", text);
    
  •   	fprintf(stdout, "%s%s", text, nl);
      else if(sel)
    
  •   	fprintf(stdout, "%s", sel->text);
    
  •   	fprintf(stdout, "%s%s", sel->text, nl);
      else if(*text)
    
  •   	fprintf(stdout, "%s", text);
    
  •   	fprintf(stdout, "%s%s", text, nl);
      fflush(stdout);
    
  •   running = False;
    
  •   running = multiselect;
      break;
    
    case XK_Right:
  • case XK_Down:
    if(!(sel && sel->right))
    return;
    sel=sel->right;
    @@ -475,22 +543,55 @@ kpress(XKeyEvent * e) {
    drawmenu();
    }

+unsigned int tokenize(char *pat, char **tok)
+{

  • unsigned int i = 0;
  • char tmp[4096] = {0};
  • strncpy(tmp, pat, strlen(pat));
  • tok[0] = strtok(tmp, " ");
  • while(tok[i] && i < maxtokens)
  •   tok[++i] = strtok(NULL, " ");
    
  • return i;
    +}

void
match(char *pattern) {

  • unsigned int plen;
  • unsigned int plen, tokencnt = 0;

  • char append = 0;
    Item *i, *itemend, *lexact, *lprefix, *lsubstr, *exactend, *prefixend, *substrend;

    if(!pattern)
    return;

  • plen = strlen(pattern);
  • if(!xmms)
  •   tokens[(tokencnt = 1)-1] = pattern;
    
  • else
  •   if(!(tokencnt = tokenize(pattern, tokens)))
    
  •   	tokens[(tokencnt = 1)-1] = "";
    
  • item = lexact = lprefix = lsubstr = itemend = exactend = prefixend = substrend = NULL;
  • for(i = allitems; i; i = i->next)
  •   if(!fstrncmp(pattern, i->text, plen + 1))
    
  • for(i = allitems; i; i = i->next) {
  •   for(int j = 0; j < tokencnt; ++j) {
    
  •   	plen = strlen(tokens[j]);
    
  •   	if(!fstrncmp(tokens[j], i->text, plen + 1))
    
  •   		append = !append || append > 1 ? 1 : append;
    
  •   	else if(!fstrncmp(tokens[j], i->text, plen ))
    
  •   		append = !append || append > 2 ? 2 : append;
    
  •   	else if(fstrstr(i->text, tokens[j]))
    
  •   		append = append > 0 && append < 3 ? append : 3;
    
  •   	else {
    
  •   		append = 0;
    
  •   		break;
    
  •   	}
    
  •   }
    
  •   if(append == 1)
      	appenditem(i, &lexact, &exactend);
    
  •   else if(!fstrncmp(pattern, i->text, plen))
    
  •   else if(append == 2)
      	appenditem(i, &lprefix, &prefixend);
    
  •   else if(fstrstr(i->text, pattern))
    
  •   else if(append == 3)
      	appenditem(i, &lsubstr, &substrend);
    
  • }
    if(lexact) {
    item = lexact;
    itemend = exactend;
    @@ -514,6 +615,18 @@ match(char *pattern) {
    }
    curr = prev = next = sel = item;
    calcoffsets();
  • if(autoconfirm && item && !item->right) {
  •   fprintf(stdout, "%s", item->text);
    
  •   fflush(stdout);
    
  •   running=False;	
    
  • }
  • if(flautoconfirm && item && item==itemend) {
  •   fprintf(stdout, "%s", item->text);
    
  •   fflush(stdout);
    
  •   running=False;
    
  • }
    }

void
@@ -598,6 +711,7 @@ setup(Bool topbar) {

/* menu window geometry */
mh = dc.font.height + 2;
  • mh = vlist ? mh * (lines+1) : mh;
    #if XINERAMA
    if(XineramaIsActive(dpy) && (info = XineramaQueryScreens(dpy, &n))) {
    i = 0;
    @@ -643,6 +757,7 @@ setup(Bool topbar) {
    if(promptw > mw / 5)
    promptw = mw / 5;
    text[0] = 0;
  • tokens = malloc((xmms?maxtokens:1)sizeof(char));
    match(text);
    XMapRaised(dpy, win);
    }
    @@ -674,8 +789,18 @@ main(int argc, char *argv[]) {
    fstrncmp = strncasecmp;
    fstrstr = cistrstr;
    }
  •   else if(!strcmp(argv[i], "-a"))
    
  •   	autoconfirm = True;
    
  •   else if(!strcmp(argv[i], "-fl"))
    
  •   	flautoconfirm = True;
      else if(!strcmp(argv[i], "-b"))
      	topbar = False;
    
  •   else if(!strcmp(argv[i], "-l")) {
    
  •   	vlist = True;
    
  •   	calcoffsets = calcoffsetsv;
    
  •   	drawmenu = drawmenuv;
    
  •   	if(++i < argc) lines += atoi(argv[i]);
    
  •   }
      else if(!strcmp(argv[i], "-fn")) {
      	if(++i < argc) font = argv[i];
      }
    

@@ -694,11 +819,17 @@ main(int argc, char *argv[]) {
else if(!strcmp(argv[i], “-sf”)) {
if(++i < argc) selfgcolor = argv[i];
}

  •   else if(!strcmp(argv[i], "-nl"))
    
  •   	nl = "\n";
    
  •   else if(!strcmp(argv[i], "-ms"))
    
  •   	multiselect = True;
    
  •   else if(!strcmp(argv[i], "-xs"))
    
  •   	xmms = True;
      else if(!strcmp(argv[i], "-v"))
      	eprint("dmenu-"VERSION", © 2006-2008 dmenu engineers, see LICENSE for details\n");
      else
    
  •   	eprint("usage: dmenu [-i] [-b] [-fn <font>] [-nb <color>] [-nf <color>]\n"
    
  •   	       "             [-p <prompt>] [-sb <color>] [-sf <color>] [-v]\n");
    
  •   	eprint("usage: dmenu [-i] [-a] [-fl] [-b] [-fn <font>] [-nb <color>] [-nf <color>]\n"
    
  •   	       "             [-p <prompt>] [-sb <color>] [-sf <color>] [-l <#items>] [-nl] [-ms]  [-xs] [-v]\n");
    
    if(!setlocale(LC_CTYPE, “”) || !XSupportsLocale())
    fprintf(stderr, “warning: no locale support\n”);
    if(!(dpy = XOpenDisplay(NULL)))[/code]Pour appliquer, le placer dans le répertoire des sources et :$ patch -p1 < nomquevousluiavezdonné.diff

Ayé…
Avec SID je n’ai rien eu à faire, la compilation s’est faite toute seule… :slightly_smiling:
[attachment=0]capture d’écran37.jpeg[/attachment]
Je vais voir tes scripts,
Merci.

Tant mieux!
C’est ton gestionnaire de fenêtres qui t’a rajouté une scrollbar?
chez moi, il n’y en a pas.

[quote=“eol”]Tant mieux!
C’est ton gestionnaire de fenêtres qui t’a rajouté une scrollbar?
chez moi, il n’y en a pas.[/quote]
Je suis sous kde :laughing:
Je risque de ne pas avoir le même rendu que chez toi :mrgreen:

Tu as trouvé des trucs intéressant pour améliorer le confort?

Désolé, pas eu trop de temps pour essayer… Je suis en train de me débattre avec un chroot récalcitrant !
J’ai cette erreur au lancement :

(<unknown>:5715): GLib-GObject-WARNING **: invalid (NULL) pointer instance (<unknown>:5715): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed
Pas un drame, ça fonctionne, mais je suppose que ça doit pouvoir se régler.
Je ne sais pas comment utiliser tes diff :blush: Tu vois ce n’est pas moi qui risque de t’apporter beaucoup d’aide sur ce coup…

Point de vue rapidité, c’est vrai que c’est une bombe, avec ma petite connexion, j’apprécie, j’ai l’impression (enfin) de vraiment surfer…

Pour te dire comme je suis un boulet…
Je viens seulement de trouver quel paquet il fallait pour la commande hg… hg-buildpackage.
J’avance… bientôt les diff ! :smt003

[quote=“lol”]Je viens seulement de trouver quel paquet il fallait pour la commande hg… hg-buildpackage.
J’avance… bientôt les diff ! :smt003[/quote]Oups, désolé, j’ai pas été très précis sur ce coup là.
Pour deviner quel paquet fournit la commande hg, si tu n’avais pas été voir le site de suckless.org, il fallait penser au tableau périodique des éléments, hg c’est le mercure et le paquet c’est mercurial, bon d’acccord ça sautait pas forcément aux yeux.
Je n’ai pas le paquet hg-buildpackage, mais s’il donne aussi la commande hg c’est tant mieux.
Pour les diff, j’utilise le paquet patch.

Pour les diff, je l’ai mis dans un post plus haut, tu place ton diff dans le répertoire des sources
et en général : $ patch -p1 < nomdetondiff.diffSi il y a une quelconque erreur,
la sortie de la commande est très détaillée et tu peux la retrouver assez facilement.

Pour les diff, je l’ai mis dans un post plus haut, tu place ton diff dans le répertoire des sources
et en général : $ patch -p1 < nomdetondiff.diffSi il y a une quelconque erreur,
la sortie de la commande est très détaillée et tu peux la retrouver assez facilement.[/quote]
J’ai installé avec hg. Plus aucun message d’erreur au lancement. Cool !

Pour les diff, excuse-moi (boulet…) je place les scripts ou ? Dans le repertoire d’installation de surf ? c’est quoi le repertoire des sources ?
J’ai placé dans le répertoire /home/laurent/surf
Puis j’ai lancé :

[code]~/surf/ patch -p1 < dmenu-4.0-vertical_meillo.diff
patching file config.mk
Hunk #1 FAILED at 1.
1 out of 1 hunk FAILED – saving rejects to file config.mk.rej
can’t find file to patch at input line 23
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:

|diff -up dmenu-4.0/dmenu.1 dmenu-v/dmenu.1
|— dmenu-4.0/dmenu.1 2009-04-18 13:50:04.000000000 +0200

+++ dmenu-v/dmenu.1 2009-06-03 12:54:25.000000000 +0200

File to patch:[/code]Et là il me pose une question… J’ai mis surf…

[code]File to patch: surf
patching file surf
Hunk #1 FAILED at 5.
Hunk #2 FAILED at 27.
Hunk #3 FAILED at 62.
3 out of 3 hunks FAILED – saving rejects to file surf.rej
can’t find file to patch at input line 54
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:

|diff -up dmenu-4.0/dmenu.c dmenu-v/dmenu.c
|— dmenu-4.0/dmenu.c 2009-04-18 13:50:04.000000000 +0200

+++ dmenu-v/dmenu.c 2009-06-03 12:31:00.000000000 +0200

File to patch:[/code]
Si je met /usr/local/bin/surf… idem !
Je m’y prend mal, quelques explications seraient cool…
Merci d’avance (et pas de serpent qui se mord la queue SVP :laughing: )

Le patch que tu essaies d’appliquer est pour dmenu, après avoir téléchargé dmenu (voir lien premier post) et l’avoir décompressé, tu obtiens un répertoire dmenu-4.0, soit tu fais une copie de ce répertoire soit tu gardes l’archive dans un coin, en tout cas c’est toujours bon d’avoir des sources vierges quand tu veux repartir sur des bases saines après avoir foutu le bronx dans les sources, en plus ça te sera utile quand tu verras que le patch de Meillo est vraiment minimal et que tu voudras repatcher dmenu pour avoir quelques options bonus avec le patch de Fresch ou le mien.

Tu places ton patch dans le répertoire dmenu-4.0, et de ce répertoire, tu lances la commande magique : $ patch -p1 < nomdetonpatch.diff

Si tu mets ton patch dans le répertoire d’installation, c’est comme si tu voulais patcher ton binaire. Patcher ça se fait sur des sources avant compile (ou avant recompile).

Merci eol, c’est clair comme de l’eau de roche.
J’applique dés demain.
Cool surf, j’aime bien le concept !

[quote=“eol”]C’est ton gestionnaire de fenêtres qui t’a rajouté une scrollbar?
chez moi, il n’y en a pas.[/quote]Oublie ce que j’ai écrit, mon surf n’est pas à jour du dernier hg tip, c’est pour ça que je n’ai pas de scrollbar, elle a été rajouté très recemment.
Si tu veux l’enlever, il suffit d’ajouter :overflow:hidden !important; à ton ~/.surf/style.css, si tu n’en a pas tu peux en créer un.

eol => j’aime bien ton CSS, c’est celui-ci que propose suckless.org??

http://surf.suckless.org/files/black_css

[quote=“M3t4linux”]eol => j’aime bien ton CSS, c’est celui-ci que propose suckless.org??

http://surf.suckless.org/files/black_css[/quote]Oui, à peu de choses près c’est celui là.
Sinon, en relisant le post du dessus, je voudrais rajouter que le conseil pour enlever la scrollbar
ne fonctionne plus correctement, il enlève la scrollbar mais depuis une ou deux versions de Surf,
ça enlève aussi la possibilité de scroller :frowning:

Autre nouvelle, j’avais écrit ce sujet car j’avais vu Surf dans la liste des “prospectives packages” de debian,
mais je ne l’y vois plus, pas plus que dans les dépôts, il y a, comme on dit, une couille dans le potage.

edit : En fait Surf attend dans la queue des nouveaux paquets depuis déjà 5 mois.
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=563912

J’ai utilisé le CSS de suckless pour surf mais je ne le trouve pas très propre

Rien que pour ce forum, je ne trouve pas le rendu très jolie

Aurais tu la gentilesse de poster ton CSS pour voir les différences avec celui proposé par suckless stp??

Merci