Rendez-vous sur Arrakis

C'est lorsque nous croyons savoir quelque chose qu'il faut justement réfléchir un peu plus profondément. F. Herbert

Utiliser différents moteurs de recherche avec surf

Comment gérer vos moteurs de recherche favoris avec surf? L'idée est de pouvoir rapidement éxécuter une recherche sur le site de votre choix, et afficher la page de résultat dans surf.

Je vous propose ici une méthode assez simple, qui évite tout patch en utilisant un script relié à dmenu.

Quelque exemples d'utilisation :

you super vidéo

Recherchera “super vidéo” sur youtube.

d chocolat pas cher

Recherchera “chocolat pas cher” sur duckduckgo

wik pythagore

Recherchera pythagore sur wikipedia.

À chaque fois, il est possible de préciser le moteur de recherche en entier (google, youtube, amazon) ou son abréviation (g, you, a)

Ajout du raccourci clavier

Dans le fichier config.h des sources de surf, ajoutez avant la liste de raccourcis cette ligne :

#define SCHENGINE       { .v = (char *[]){ "/bin/sh", "-c", \
        "xprop -id $0 -f _SURF_GO 8s -set _SURF_GO `~/.Scripts/surf/searchengines.sh` || exit 0", \
      winid, NULL } }

Vous remarquerez que cette ligne éxécute un script situé à l'emplacement ~/.Scripts/surf/searchengines.sh. Adaptez cet emplacement selon l'endroit où vous enregistrerez le script suivant.

Ensuite, on rajoute le raccourci clavier à proprement parler. Sans la section static Key keys[] = {, ajoutez la ligne:

    { MODKEY,               GDK_s,      spawn,      SCHENGINE },

Le script

Le script suivant sera donc à placer dans ~/.Scripts/surf/searchengines.sh.

Ce qu'il fait? Il propose une liste de moteurs de recherche. Le moteur de recherche est choisi en tapant son nom, puis ensuite il suffit d'ajouter la recherche. Le script retournera l'adresse où se situe les résultats. Utilisé avec surf, surf ouvre simplement la page en question.

Libre à vous d'ajouter et modifier les moteurs de recherche utilisés. En particulier, vous pouvez changer le moteur de recherche utilisé par défaut dans la variable DEFAULT

#!/bin/sh
#search engines for surf
#dmenu colors
SB="#303030"
SF="#ffffff"
NB="#303030"
NF="#707070"
FN="-*-fixed-medium-r-semicondensed-*-13-*-*-*-*-*-iso10646-*"

# Moteur de recherche par défaut
DEFAULT="http://duckduckgo.com/?kp=-1&kl=fr-fr&kc=1&kd=1&kh=1&ks=s&ka=v&k1=-1&kb=e&kf=b&t=debian&q="

ENTREE=$(echo "ixquick
wikipedia
dictionnaire
torrent
ethicle
synonyme
debianfr
filestube
youtube
dailymotion
en2fr
fr2en
seeks
duckduckgo
freesound
amazon
dpackage
python
yacy" |dmenu -i -fn $FN -nb $NB -nf $NF -sb $SB -sf $SF)
ENGINE=$(echo $ENTREE |cut -d ' ' -f 1 )
RECHERCHE=$(echo $ENTREE |cut -d ' ' -f2- |sed 's/ /+/g')
if [ -n "$RECHERCHE" ]; then
   case $ENGINE in
      i | ixquick ) echo -n "https://eu.ixquick.com/do/metasearch.pl?query=$RECHERCHE&language=francais" ;;
      g | google )  echo "http://duckduckgo.com/?q=!sp+$RECHERCHE&kp=-1&kl=fr-fr&kc=1&kd=1&kh=1&ks=s&ka=v&k1=-1&kb=e&kf=b&t=debian" ;;
      wik | wikipedia )  echo -n "http://fr.wikipedia.org/w/index.php?title=Spécial%3ARecherche&search=$RECHERCHE&go=Lire" ;;
      dic | dictionnaire )  echo -n "http://www.le-dictionnaire.com/definition.php?mot=$RECHERCHE" ;;
      y | yacy ) echo -n "http://localhost:8090/yacysearch.html?query=$RECHERCHE" ;;
      tor | torrent )  echo -n "https://thepiratebay.se/search/$RECHERCHE" ;;
      e | ethicle )  echo -n "http://www.ethicle.com/fr/search.php?q=$RECHERCHE" ;;
      syn | synonyme ) echo -n "http://www.synonymes.com/synonyme.php?mot=$RECHERCHE&x=0&y=0";;
      debianfr ) echo -n "http://www.google.com/cse?cx=003880180303252368328%3Afw-yrta3-zw&ie=UTF-8&q=$RECHERCHE&sa=Rechercher&siteurl=www.google.com%2Fcse%2Fhome%3Fcx%3D003880180303252368328%253Afw-yrta3-zw";;
      ft | filestube ) echo -n "http://www.filestube.com/search.html?q=$RECHERCHE&select=All" ;;
      you | youtube ) echo -n "http://www.youtube.com/results?search_query=$RECHERCHE&aq=f" ;;
      dmo | dailymotion ) echo -n "http://www.dailymotion.com/relevance/search/$RECHERCHE" ;;
      en2fr ) echo -n "http://www.wordreference.com/enfr/$RECHERCHE";;
      fr2en ) echo -n "http://www.wordreference.com/fren/$RECHERCHE";;
      s | seeks) echo -n "http://www.seeks.fr/search?lang=fr&q=$RECHERCHE&expansion=1&action=expand&engines=&content_analysis=off&ui=stat" ;;
      d | duckduckgo) echo -n "http://duckduckgo.com/?q=$RECHERCHE&kp=-1&kl=fr-fr&kc=1&kd=1&kh=1&ks=s&ka=v&k1=-1&kb=e&kf=b&t=debian" ;;
      amazon | a ) echo -n "http://www.amazon.fr/s/ref=nb_sb_noss?__mk_fr_FR=%C5M%C5Z%D5%D1&url=search-alias%3Daps&field-keywords=$RECHERCHE&x=0&y=0" ;;
      son | freesound ) echo -n "http://www.freesound.org/searchText.php?search=$RECHERCHE&" ;;
      python ) echo -n "http://docs.python.org/py3k/search.html?q=$RECHERCHE&check_keywords=yes&area=default" ;;
      dpackage ) echo -n "http://packages.debian.org/search?keywords=$RECHERCHE" ;;
      # Le suivant est le choix par défaut
      * )
        RECHERCHE=$(echo $ENTREE |cut -d ' ' -f1- |sed 's/ /+/g')
          echo -n "$DEFAULT$RECHERCHE" ;;
          #echo -n "https://eu.ixquick.com/do/metasearch.pl?query=$RECHERCHE&prf=3cea9309adbdf9dcd78d6b359445e27a&language=francais" ;;
          #echo -n "http://localhost:8090/yacysearch.html?query=$RECHERCHE" ;;
          #echo -n "http://s.s/search?q=$RECHERCHE" ;;
          #echo -n "http://www.seeks.fr/search?lang=fr&q=$RECHERCHE&expansion=1&action=expand&engines=&content_analysis=off&ui=stat" ;;
          #echo -n "http://www.seeks.fr/search?lang=fr&q=$RECHERCHE&expansion=1&action=expand&engines=&content_analysis=off&ui=stat" ;;
   esac
fi
exit