Xsel-Tools
Man kennt das: man kennt ein Wort nicht und möchte es in Wikipedia nachschlagen, oder in Google danach suchen bzw. es in leo.dict.org übersetzen lassen. Mit Hilfe dieser Skripte kann man mittels Tastenkombination dieses automatisieren:
- das Wort "highlighten"
- Tastenkombination
- der Browser öffnet das entsprechende Tab mit dem richtigen Suchbegriff
- ist die XSel leer, dann öffnet sich ein Eingabefenster
Benötigt werden die Pakete xsel und zenity. Die Tastenkombination zum Auslösen können dann im KDE-Kontrollcenter eingestellt werden.
Hier das Skript für eine Google-Suche: (absolute Pfade müssen angepasst werden)
#!/bin/bash x=`xsel -o | sed -e "s/ /+/g"` # xsel -o: Auslesen X-Selection, sed ersetzen von Leerzeichen durch + if [ $x != "" ] # wenn X-Selection leer ist, Eingabeskript im Terminal aufrufen, sonst Übergabe an Firefox then firefox "http://www.google.de/search?hl=de&q=$x" else exec /data/Batch/Linux/google_input.sh fi
dazu gehört das Skript google_input, falls die XSel leer ist:
#!/bin/bash # Dieses Skript liest die Eingabe von der Tastatur und sucht nacht diesem # Wort in Google #echo "Gib Suchbegriff(e) für Google:" #echo #read text text=`zenity --entry --text "Gib Suchbegriff für Google" --title "Abfragefenster"` || exit 1 firefox "http://www.google.de/search?hl=de&q="`echo $text | sed -e "s/ /+/g"`&
Ich habe auf der Tastenkombination Win+Ö die Google-Suche und Win+Alt+Ö das Input-Skript gelegt, weil man nicht immer sicher gehen kann, dass die XSel auch wirklich leer ist.
Hier alle Skripte nochmal zum Herunterladen, inkl. Wikipedia und Leo.dict.org: snippet_xseltools.tar (10.24 Kb)
Version 2
Nachdem ich (Didi) momentan ein wenig mit der ZShell rumspiele habe ich das ganze nochmal in einem einzigen Script und mit dmenu als Eingabemethode geschrieben, aber es ist recht einfach dmenu z.b mit zenity zu ersetzen.
Kommandozeilenoptionen
ption | Wirkung |
-x | die xselection wird ignoriert |
-s <searchengine> | man wird nicht nach der Suchmaschine gefragt, sondern die Angegebene benutzt |
#!/bin/zsh setopt shwordsplit XSEL='xsel -o' BROWSER='firefox' rinput() { dmenu -b -sf '#eee' -sb '#567' -nf '#bbb' -nb '#222' -p "$1" | tr -d '\ ' } while getopts xs: opt; do case $opt in (x) xclip="no" ;; (s) engine=$OPTARG ;; (\\?) print "Bad option $opt" return 1 ;; esac done # Init the engines # Enginge: engines[$label]='searchurl' # Searchurl: must be in singlequotes and $x is replaced by keywords typeset -A engines engines[google]='http://www.google.de/search?hl=de&q=$x' engines[leo]='http://dict.leo.org/ende?search=$x' engines[wikipedia]='http://www.google.de/search?hl=de&q=$x&domains=http://de.wikipedia.org&sitesearch=http://de.wikipedia.org' # Read the X selection if [[ $xclip != "no" ]]; then x=$($XSEL | sed 's/ /+/g') fi while [[ -z "$engines[$engine]" ]]; do engine=$(print -l ${(k)engines} | rinput "Search Engine>") done if [[ $x == "" ]]; then x=$(echo |rinput "Keyword>" |sed 's/ /+/g;') fi url=$( sed 's/\\$x/'$x'/g' <<< "$engines[$engine]") command $BROWSER "$url" &