Mostrando entradas con la etiqueta Linux. Mostrar todas las entradas
Mostrando entradas con la etiqueta Linux. Mostrar todas las entradas

Libros digitalizados

gallica


#!/bin/bash
name=$(basename ${0})
res=".highres"
first_page=1
libro=$1
last_page=$2

uso(){
echo "
$name Descarga libros digitalizados de http://gallica.bnf.fr/

Uso:
$name <Nombre> <nº de páginas> <url>

Nombre: El nombre que tendrá el fichero final empaquetado.
nº_de_páginas: El nº de páginas del libro o la página-
límite que queremos descargar.
url: url del documento.

Ejemplo:
$name scherzi 93 http://gallica.bnf.fr/ark:/12148/btv1b90100529


Enjoy it!
"

exit 0
}

descarga(){
for i in $( seq $first_page $last_page )
do
a="f$i"
echo $web$a$res >> enlaces.txt
done
wget -i enlaces.txt
}

renombrar(){
for i in $( ls * ); do
mv $i $i.jpg
done
}

if [ $# -lt 3 ]
then
uso
fi
if [ $# -gt 3 ]
then
echo "Solo se pueden poner 3 parámetros"
exit 0
fi
shift
shift
web=$@/
mkdir ~/$libro
cd ~/$libro
descarga
rm enlaces.txt
renombrar
zip $libro *.jpg
rm *.jpg
echo
echo "Hecho!"
echo "El libro está en el fichero ~/$libro/$libro.zip"
cd ..



*********************************************


Para Windows:

@echo off
color 0e
set ruta=C:\Documents and Settings\Administrador\Escritorio
set res=.highres
set first_page=1
echo.
echo ==================================================
echo.
echo Descarga las imagenes de libros digitalizados de
echo.
echo http://gallica.bnf.fr
echo.
echo ==================================================
echo.

set /p libro=Introduce el nombre del libro :
set /p last_page=Introduce el numero de paginas :
set /a last_page=last_page+1
set /p web=Introduce la URL :
cd %ruta%
mkdir %libro%
cd %libro%
set cont=1

:bucle
echo %web%/f%cont%%res% >> enlaces.txt
set /a cont=cont+1
if %cont% lss %last_page% (goto bucle) else (goto next)

:next
type enlaces.txt
start wget -i enlaces.txt
echo.
echo Pulsa una tecla cuando se cierre la ventana de wget
pause > nul
del enlaces.txt
dir
echo.
echo Hecho! Los archivos descargados estan en la carpeta %libro% en el Escritorio.
echo.
echo Pulsa una tecla
pause > nul
goto end

:end


Más diccionarios

#!/bin/bash
browser="lynx -dump -nolist "
url="http://www.langtolang.com/?selectFrom=$1&selectTo=$2&txtLang=$3&submitButton=Search"
name=$(basename ${0})

lista_idiomas() {
echo -e " English, Albanian, Arabic, Breton, Catalan, Chinese Simplified,
Chinese Traditional, Corsican, Czech, Danish, Dutch, Esperanto, Estonian,
Finnish, French, Gaelic, Georgian, German, Greek, Hebrew, Hungarian,
Icelandic, Indonesian, Italian, Japanese, Korean, Kurdish, Latvian,
Lithuanian, Malagasy, Norwegian, Polish, Portuguese Brazil,
Portuguese Portugal, Romanian, Russian, Serbo Croat, Slovak, Slovenian,
Spanish, Swahili, Swedish, Turkish, Vietnamese, Yiddish, Walloon, Welsh "

}

ayuda() {
echo -e "From Language to Language ( http://www.langtolang.com )

Uso:
$name Idioma Idioma Palabra

$name -l para lista de idiomas.
"
}


if [ "$1" = "-l" ]; then lista_idiomas; exit 0; fi
if [ $# -lt 3 ]; then ayuda; exit 0; fi
$browser $url | sed '1, 13d' |tac | sed '1, 6d' | tac

Traductor de sitios web

#!/bin/bash
name=$(basename ${0})
langpair=$1
browser="w3m"

function traduce(){
if [ $# = 0 ]; then
echo
echo -e "Traduce sitios web con Babelfish
Uso : $name IdiomaOrigen_IdiomaDestino url
$name -l para la lista de idiomas "
echo
return
fi

if [ $langpair = "-l" ]; then
echo -e "Lista de idiomas :"
echo
echo -e "es_en Español a inglés
es_fr Español a francés
en_es Inglés a español
en_zt Inglés a chino trad.
en_nl Inglés a neerlandés
en_fr Inglés a francés

en_de Inglés a alemán
en_el Inglés a griego
en_it Inglés a italiano
en_ja Inglés a japonés
en_ko Inglés a coreano
en_pt Inglés a portugués
en_ru Inglés a ruso
en_zh Inglés a chino simp.
pt_en Portugués a inglés

pt_fr Portugués a francés
it_en Italiano a inglés
it_fr Italiano a francés
nl_en Neerlandés a inglés
nl_fr Neerlandés a francés
fr_nl Francés a neerlandés
fr_en Francés a inglés
fr_de Francés a alemán
fr_el Francés a griego

fr_it Francés a italiano
fr_pt Francés a portugués
fr_es Francés a español
de_en Alemán a inglés
de_fr Alemán a francés
el_en Griego a inglés
el_fr Griego a francés
ja_en Japonés a inglés
ko_en Coreano a inglés

ru_en Ruso a inglés
zh_en Chino simp. a inglés
zh_zt Chino simplificado a chino tradicional
zt_en Chino trad. a inglés
zt_zh Chinese-trad to Chinese-simp"
echo
return
fi

shift
url=$@
$browser "http://98.139.168.220/babelfish/translate_url_content?.intl=es&lp=$langpair&trurl=$url"
}
traduce $*




Calculadora para trastes (Bash)


#!/bin/bash

function ayuda(){
echo
echo -e "Calcula la distancia desde la cejuela hasta los trastes para cualquier tiro
según la regla del 18.
Se pasan como parámetros el tiro en milímetros y el número de trastes. "
echo
echo -e "Uso:
$(basename ${0}) Tiro Trastes"
echo -e "Ejemplo: "
echo -e " $(basename ${0}) 650 21 "

exit 0

}


function calculos(){
distance=0
for i in $(seq $num_frets)
do
localizacion=`echo "scale=3;$tiro-$distance" | bc -l`
scaling_factor=`echo "scale=3;$localizacion/$divisor" | bc -l`
distance=`echo "scale=3;$distance+$scaling_factor" | bc -l`
distancia_puente=`echo "scale=3;$tiro-$distance" | bc -l`
echo "$i ............ $distance ......... $distancia_puente "
done

}


if [ $# -lt 2 ]; then
ayuda
fi

divisor=17.817
tiro=$1
num_frets=$2
echo
echo "Traste Distancia Distancia"
echo " a la cej. al puente"
echo "-----------------------------------------------------"
calculos $*

Traductor charrán

Retoque del anterior script traductor para que utilice TTS (text to speech). Si el idioma de destino es distinto del español tendremos sonido con la pronunciación en el idioma elegido; no funciona con todos los idiomas y, en algunos es poco práctico pues "describe" los acentos en lugar de pronunciarlos.
Necesita mplayer para reproducir el streaming.


#!/bin/bash

function translate () {
if [ $# = 0 ] || [ "$1" = "--help" ] || [ "$1" = "-h" ]; then
echo -e "Traduce texto con el Google Translator."
echo -e " Uso :"
echo -e " $(basename ${0}) idioma_de_origen idioma_de_destino texto "
echo -e " $(basename ${0}) -l para la lista de idiomas"
exit
fi
if [ "$1" = "-l" ]; then
echo -e "        afrikaans af
albanés sq francés fr persa fa
alemán de galés cy polaco pl
árabe ar gallego gl portugués pt
armenio hy georgiano ka rumano ro
azerí az griego el ruso ru
bieloruso be hebreo iw serbio sr
búlgaro bg hindi hi suajili sw
catalán ca holandés nl sueco sv
checo cs húngaro hu tagalo tl
chino zh indonesio id tailandés th
ch_trd zh-TW inglés en turco tr
coreano ko irlandés ga ucraniano uk
creole H. ht islandés is urdu ur
croata hr italiano it vietnamit vi
danés da japonés ja yiddish yi
eslovaco sk letón lv
esloveno sl lituano lt
español es macedonio mk
estonio et malayo ms
euskera eu maltés mt
return
fi
SRC=$1
DST=$2
shift
shift
TEXT="$@"

wget -qO- "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=$TEXT&langpair=${SRC}|${DST}" | sed 's/.*"translatedText":"\([^"]*\)".*}/\1\n/' > /tmp/voz

texto=`cat /tmp/voz`
echo $texto

if [ "${DST}" != "es" ]; then
mplayer -really-quiet "http://translate.google.com/translate_tts?tl=${DST}&q=$texto" 2> null
fi
}

translate $*


[Editado el 29-10-2011]
The Google Search and Language APIs shown to the right have been officially deprecated. They will continue to work as per our deprecation policy, but the number of requests you may make per day will be limited
.

O sea, que este script deja de funcionar.

Fret calculator


program trastes;
uses crt;
var scaling_factor,distance,scale,localizacion:real;
num_frets,f:shortint;
parametro:string;

function mensaje(m : string):string;
begin
gotoxy(1,24);
write(m);
end;

function pausecero(p : string) : string;
begin
mensaje(p);
repeat
until keypressed;
end;

function repetir:boolean;
var a : char;
begin
gotoxy(1,24);
write('Realizar otro calculo? (S/N) ');
a:=readkey;
if (a=char(83)) or (a=char(115)) then
repetir:=true
else begin
repetir:=false
end;
end;

procedure presentacion;
begin
window(1,1,80,25);
clrscr;
gotoxy(20,5);
writeln('ANOTHER FRET CALCULATOR');
writeln;
writeln('Calculadora para el distanciado de trastes en instrumentos de cuerda');
writeln('para un maximo de 33 trastes, que ya esta bien ;) ');
writeln;
writeln('Las medidas tanto para el tiro como para las distancias de la cejuela o el');
writeln('traste cero a los demas trastes van en milimetros');
writeln;
writeln;
writeln(' kir (kir@sdf-eu.org) 2010');
writeln;writeln;
end;

procedure calculos;
begin
repeat
window(1,1,80,24);
clrscr;
gotoxy(1,1);
write('Introducir el tiro en mm: ');
read(scale);
repeat
gotoxy(1,2);
write('Introducir numero de trastes: ');
read(num_frets);
if num_frets > 33 then
begin
gotoxy(1,23);
writeln('El numero maximo es de 33 trastes');
end;
until num_frets < 34;
clrscr;
writeln('Tiro:', scale:7:0,' mm',' Num. de trastes: ', num_frets);
writeln;
writeln('Traste Distancia a la cejuela');
writeln('------------------------------');

distance:=0;
for f := 1 to num_frets do
begin
localizacion:=scale-distance;
scaling_factor:=localizacion/17.817;
distance:=distance+scaling_factor;
writeln(f,' .... ',distance:7:2);
if f=18 then
begin
window(40,4,79,23);
gotoxy(41,5);
writeln(f,' .... ',distance:7:2);
end;
end;
until repetir=false;
end;


begin

parametro :=paramstr(1);

if parametro='-h' then
begin
pausecero('No hay ayuda disponible');
end;
{ presentacion;}
calculos;
window(1,1,80,24);
clrscr;
presentacion;

end.


Descargar el ejecutable para Linux.
Descargar el ejecutable para Windows

Biblia.sh


#!/bin/bash
function uso(){
clear
echo
echo -e "Muestra capítulos o versículos de la Biblia en diferentes"
echo -e "versiones y traducciones"
echo
echo -e " -*-"
echo
echo -e "Uso:"
echo -e " $(basename ${0}) -h / --help : Ayuda"
echo -e " $(basename ${0}) libro capitulo: versión (código o número)"
echo
echo -e "Ej: "
echo -e " $(basename ${0}) gen 11:9 ALB
$(basename ${0}) gen 11 1"
echo
return
}
function ayuda(){
echo -e "Para la versión puede usarse el número o la abreviatura, poniendo
en mayúsculas al menos la primera letraa "
echo
echo -e " -*-"
echo -e " Libros:"
echo -e " Para el nombre del libro pueden usarse abreviaturas"
echo -e "en algunos casos, por ejemplo:"
echo -e "gen Génesis ex Éxodo lev Levítico num Números deut Deuteronomio"
echo
echo -e "Puede usarse el nombre completo según la siguiente lista :"
echo
echo -e "genesis, exodo, levitico, numeros, deuteronomio, josue, jueces "
echo -e "rut, 1samuel, 2samuel, 1reyes, 2reyes, 1cronicas, 2cronicas, esdras"
echo -e "nehemias, ester, job, salmos, proverbios, eclesiastes, cantares "
echo -e "isaias, jeremias, lamentaciones. ezequiel, daniel, oseas, joel, amos"
echo -e "abdias, jonas, miqueas, nahum, habacuc, sofonias (sophonias), hageo"
echo -e "zacarias, malaquias, mateo, marcos, lucas, juan, hechos, romanos"
echo -e "1corintios, 2corintios,galatas, efesios, filipenses, 1tesalonicenses"
echo -e "2tesalonicenses, 1timoteo, 2timoteo, tito, filemon, hebreos, santiago"
echo -e "1pedro, 2pedro, 1juan, 2juan, 3juan, judas, apocalipsis "
echo
echo -e " -*-"
echo
echo -e " Traducciones :"
echo
echo -e "La versión o traducción de la Biblia que se va a mostrar"
echo -e "puede elegirse de la siguiente tabla: "
echo
echo -e "
1 ALB Biblia en albanés 2 LSG Louis Segond
3 CEI Conferenza Episcopale Italiana 4 VULGATE Biblia Sacra Vulgata
5 DNB1930 Det Norsk Bibelselkap 1930 6 RVA Reina-Valera Antigua
7 SV1917 Svenska 1917 8 ASV American Standard Version
9 KJV King James Version 10 LUTH1545 Luther Bibel 1545
11 DN1933 Dette er Biblen pa dansk 12
13 RUSV Russian Synodal Version 14 RMNN Romanian
15 YLT Young's Literal Translation 16 DARBY Darby Translation
17 KAR Hungarian Kairoli 18 ICELAND Icelandic Bible
19 VIET Vietnamese Bible 20
21 BULG Bulgarian Bible 22 CUV Chinese Union Version (Trad.)
23 HCV Haitian Creole Version 24 MAORI Maori Bible
25 AA Joao Ferreira de Almeida Act. 26
27 UKR Ukrainian Bible 28 ALAB Arabic Life Application B.
29 SNC Slovo na cestu (N. Testamento) 30 HTB Het Boek
31 NIV New International Version 2010 32 BDS La Bible du Semeur
33 HOF Hoffnung für Alla (N.Testamento) 34 LM La Parola è Vita (N.Testamento)
35 LB Levande Bibeln (N.Testamento) 36
37 OL O livro 38 TLCR Romanian (N.Testamento)
39 SZ Slovo Zhizny (N.Testamento) 40 NPK Nádej pre kazdého (N.Testamento)
41 CST Castilian (N.Testamento) 42 NVI Nueva Versión Internacional
43 SND Ang Salita ng Diyos (N.T) 44 SVL Levande Bibeln
45 AMP Amplified Bible 46 CEV Contemporary English Version
47 ESV English Standard Version 48 KJ21 21st Century King James V.
49 NASB New American Standard Bible 50 NKJV New King James Version
51 NLT New Living Translation 52
53 WYC Wycliffe New Testament 54
55 LND La Nuova Diodati 56 REIMER Reimer 2001 (N.Testamento)
57 TLA Traducción en lenguage actual 58 DHH Dios habla hoy
59 LBLA La Biblia de las Américas 60 RVR1969 Reina-Valera 1960
61 RVR1995 Reina-Valera 1995 62 CRO Croatian Bible (N.Testamento)
63 DRA Douay-Rheims 1899 American Edit 64 NIVUK New International Vers. UK
65 MSG The Message 66
67 68 WHNU 1881 Westcott-Hort New Test.
69 TR1550 1550 Stephanus New Test. 70 TR1894 1894 Scrivener New Testament
71 HLGN Hiligaynon Bible 72 TNIV Today’s New International Vers.
73 WE Worldwide English (New Testament 74
75 SNT Swahili New Testament 76 NIRV New International Reader's Vers.
77 HCSB Holman Christian Standard Bible 78 NCV New Century Version
79 80 CUVS Chinese Union Version (Simplified)
81 WLC The Westminster Leningrad Codex 82 BG1940 1940 Bulgarian Bible
83 84
85 86 GNT Good News Translation
87 88 MVC Mam, Central (N.Testamento)
89 90 CCO Chinanteco de Comaltepec
91 92
93 94 AMU Amuzgo de Guerrero (N.Testamento)
95 96
97 98 CKW Cakchiquel Occidental (N.Test.)
99 100
101 102 NIV1984 New Internat. Version 1984
103 JAC Jacalteco, Oriental (N.T.) 104 KEK Kekchi (N.T.)
105 106
107 MVJ Mam Todos Santos Chuchumatán 108
109 NGU Náhuatl de Guerrero (NT) 110
111 QUT Quiché, Centro Occidental NT 112
113 USP Uspanteco (N.T) 122 MNT Macedonian New Testament
"
return
}

if [ $# -lt 1 ]; then uso
exit 1
fi
if [ "$1" = "--help" ] || [ "$1" = "-h" ]; then
uso
ayuda |more

else

capt=$1
vers=$2
capitulo=$capt%20%20$vers
traduccion=$3
web="http://www.biblegateway.com/passage/?search=$capitulo&version=$traduccion"
browser="lynx -dump -nolist"
$browser $web | sed '1, 40 d'|less

fi
----------------------------------------------------------------------------------
Ejemplos:

~$ biblia eclesiastes 1:15 Hcv
Eklezyas - Liv Filozòf la 1:15 (Haitian Creole Version)

^15Ou pa ka drese sa ki fin kwochi. Ou pa ka konte sa ou pa genyen.


Haitian Creole Version (HCV)

---------------------------------------------------------------------------------

$ biblia eclesiastes 1:15 Rva

Eclesiastés 1:15 (Reina-Valera Antigua)

^15Lo torcido no se puede enderezar; y lo falto no puede contarse.


Reina-Valera Antigua (RVA)

---------------------------------------------------------------------------------
$ biblia eclesiastes 1:15 Vulgate
Ecclesiastes 1:15 (Biblia Sacra Vulgata)

^15perversi difficile corriguntur et stultorum infinitus est numerus

Biblia Sacra Vulgata (VULGATE)
----------------------------------------------------------------------------------
$ biblia eclesiastes 1:15 Cuv

傳 道 書 1:15 (Chinese Union Version (Traditional))

^15 彎 曲 的 , 不 能 變 直 ; 缺 少 的 , 不 能 足 數 。

Chinese Union Version (Traditional) (CUV)


Latín


#!/bin/bash
a=""
function translate () {
if [ $# -lt 2 ] || [ "$1" = "--help" ] || [ "$1" = "-h" ]; then

echo -e "Traduce palabras del latín al inglés."
echo -e "Uso : "
echo -e " $0 opción palabra"
echo -e "Opciones :"
echo -e " s Palabra que comience por"
echo -e " e Palabra que termine por"
echo -e " c Palabra que contenga"
echo -e " x Palabra exacta"
return
fi

if [ "$1" = "s" ]; then
a="start"
fi

if [ "$1" = "e" ]; then
a="end"
fi

if [ "$1" = "c" ]; then
a="substring"
fi

if [ "$1" = "x" ]; then
a="exact"
fi

lynx -dump -nolist "http://www.perseus.tufts.edu/hopper/resolveform?type=$a&lookup=$2&lang=la" | sed ' 1, 21 d'

}
translate $1 $2

Traductor

#!/bin/bash
# AUTOR: Luis Moreno Rodriguez 2010
# Modificado: kir 2010
function translate () {
if [ $# = 0 ] || [ "$1" = "--help" ] || [ "$1" = "-h" ]; then
echo -e "Traduce texto con el Google Translator."
echo -e " Uso :"
echo -e "$0 origen destino [palabra o texto] "
echo -e "$0 -l para la lista de idiomas"
return
fi
if [ "$1" = "-l" ]; then

echo -e "        afrikaans af
albanés sq francés fr persa fa
alemán de galés cy polaco pl
árabe ar gallego gl portugués pt
armenio hy georgiano ka rumano ro
azerí az griego el ruso ru
bieloruso be hebreo iw serbio sr
búlgaro bg hindi hi suajili sw
catalán ca holandés nl sueco sv
checo cs húngaro hu tagalo tl
chino zh indonesio id tailandés th
ch_trd zh-TW inglés en turco tr
coreano ko irlandés ga ucraniano uk
creole .H ht islandés is urdu ur
croata hr italiano it vietnamit vi
danés da japonés ja yiddish yi
eslovaco sk letón lv
esloveno sl lituano lt
español es macedonio mk
estonio et malayo ms
euskera eu maltés mt
finlandés fi noruego no"
return
fi

local TEMP_FILE="/tmp/deleteme.$$"

if [ $# -gt 1 ]; then
local IS_WORD="false"
else
local IS_WORD="true"
fi

SRC=$1
DST=$2

local LNG=`echo "$LANG" | cut -d '_' -f 1`
local CHARSET=`echo $LANG | cut -d '.' -f 2` #usefull if charset is unicode

if [ "$IS_WORD" = "true" ]; then
lynx -accept_all_cookies -dump -hiddenlinks=ignore -nonumbers -assume_charset=$CHARSET -display_charset=$CHARSET "http://www.google.com/dictionary?aq=f&langpair=${SRC}|${DST}&q=${1}&hl=$LNG"| grep -C 2 -A 5 -w "*" > /$TEMP_FILE

if [ ! -s $TEMP_FILE ]; then
echo "No translation for '$1'"
else
cat $TEMP_FILE
fi
rm -f $TEMP_FILE
else
shift
shift
wget -qO- "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=$@&langpair=${SRC}|${DST}" | sed 's/.*"translatedText":"\([^"]*\)".*}/\1\n/';
fi
}
translate $*

************************************************
Ejemplos:
kir@zayn:~$ trans es sq me gusta comer calamares fritos
Më pëlqen të ngrënë calamari skuqur
kir@zayn:~$ trans sq ja Më pëlqen të ngrënë calamari skuqur
私は揚げイカを食べるのが好き
kir@zayn:~$ trans ja lv 私は揚げイカを食べるのが好き
Man patīk ēst fritēts kalmārs
kir@zayn:~$ trans lv es Man patīk ēst fritēts kalmārs
Me gusta comer calamares fritos

************************************************

El script original de L. Moreno Rodríguez puede encontrarse aquí.

AmpliTube en Linux

Instalar los siguientes paquetes :

qjackctl lashd liblash-dev wine wine-dev libgtk2.0-dev

Descargar VST Audio Plug-Ins SDK (Version 2.3 and 2.4) (opción Bild VST)
de la página http://www.steinberg.de/331+M52087573ab0.html

Es preciso registrarse como Third-Party Developer para acceder a la descarga.

Descargar de http://galan.sf.net/fst-1.8.tar.gz el paquete fst-1.8.tar.gz y descomprimirlo, se creará un directorio fst-1.8/

Descomprimir vst_sdk2_3.zip :

~/vst$ unzip vst_sdk2_3.zip
Archive: vst_sdk2_3.zip
inflating: vstsdk2.3.dmg
inflating: vstsdk2.3.sit
inflating: vstsdk2.3.zip


Descomprimir vstdsk2.3.zip , se creará el directorio vstsdk2.3/

Cambiar al directorio fst-1.8/ y editar el archivo Makefile.

Substituir la primera línea

SDKDIR = `find . | grep 'vstsdk[^/]*\$$'`

por

SDKDIR = /home/usuario/ruta_a_vstsdk2.3


Salvar los cambios y en el directorio fst-1.8/ ejecutar
make

Mover los archivos fst y fst.exe.so a un directorio que esté en el path .

El avezado lector sabrá como conseguir a buen precio el programa AmpliTube e instalarlo en Windows o en Linux (con wine).

El archivo que interesa es
~/.wine/drive_c/Archivos de programa/Steinberg/VstPlugIns/AmpliTube2.dll que podemos copiar a donde queramos.

Para ejecutarlo iniciar jack y poner en un terminal
fst /ruta_a_AmpliTube2.dll


Fuente: http://ubuntuforums.org/showthread.php?t=557466

Da problemas para abrir los stompbox, se desconecta de jack, pero puede usarse rakarrack, jack-rack, creox o diversos plugins VST gratuitos.




Conky charlatán

Podemos hacer que conky nos informe de ciertos eventos usando el sintetizador de voz mbrola y los scripts en perl de ircha. Puede aplicarse como alarma de temperatura, aviso de nuevo mail ( aún no sé cómo hacerlo) o avisar a una hora para que no se quemen las lentejas.

ircha

Instalar ircha de su página oficial.
Descargar ircha.1.0.0.tgz , descomprimirlo y descargar dentro del directorio generado el fichero es1.zip
Ejecutar como root el fichero install.
Editar el fichero /usr/share/ircha/lee.pl para modificar la línea

system("sox $mbrola_tmp.wav -t ossdsp /dev/dsp");

de modo que quede así:

system("sox $mbrola_tmp.wav -d -q");

-d para que use el dispositivo de audio por defecto
-q para que no muestre el progreso

Comprobación de que está correctamente instalado:

$ lee texto que nos de la gana

Si se escucha la frase por los altavoces todo va bien.


Líneas en ~/.conkyrc

${hr 1}
${exec /home/kir/bin/sens}
${hr 1}


sens

#!/bin/bash
echo
sensors | grep temp1 | awk '{print $1 $2}' | sed s/temp1/Placa\ base\ / | cut -c 1-15
sensors | grep temp2 | awk '{print $1 $2}' | sed s/temp2/Procesador\ / | cut -c 1-17
sensors | grep fan2 | awk '{print $1 $2 " " $3}' | sed s/fan2/Ventilador\ /
echo
sensors | grep temp2 | awk '{print $2}' | cut -c 2-3 > temporal
a=`cat temporal`

((a>68)) && lee "la cosa está que arde"
rm temporal

Habrá que corregir los grep, awk, sed y cuts según la salida de sensors.
((a>68)) Aquí ponemos el umbral de temperatura para la alarma.

dic

Este script permite la consulta de varios diccionarios online desde la línea de comandos.
Usa lynx como navegador. No olvidar configurar lynx para que muestre los caracteres con utf-8 .

#!/bin/bash
browser="lynx -dump -nolist -useragent=lynx "
esen="http://www.wordreference.com/esen/$2"
enes="http://www.wordreference.com/enes/$2"
esfr="http://www.wordreference.com/esfr/$2"
fres="http://www.wordreference.com/fres/$2"
espt="http://www.wordreference.com/espt/$2"
ptes="http://www.wordreference.com/ptes/$2"
esit="http://it.dicios.com/esit/$2"
ites="http://it.dicios.com/ites/$2"
esde="http://diccionario.reverso.net/espanol-aleman/$2"
dees="http://diccionario.reverso.net/aleman-espanol/$2"
esal="http://www.foreignword.com/cgi-bin/albesp.pl?lengua=espalb&termbox=$2"
ales="http://www.foreignword.com/cgi-bin/albesp.pl?lengua=albesp&termbox=$2"
esca="http://dicts.info/2/catalan-spanish.php?word=$2&begin=Search"
caes="http://dicts.info/2/catalan-spanish.php?word=$2&begin=Search"
lates="http://dictionaries.travlang.com/LatinSpanish/dict.cgi?query=$2&max=50"
eslat="http://dictionaries.travlang.com/SpanishLatin/dict.cgi?query=$2&max=50"
esfi="http://www.dicts.info/ud.php?k1=87&k2=31&w=$2"
fies="http://www.dicts.info/ud.php?k1=31&k2=87&w=$2"
esbu="http://www.dicts.info/ud.php?k1=87&k2=164&w=$2"
bues="http://www.dicts.info/ud.php?k1=164&k2=87&w=$2"
escz="http://www.dicts.info/ud.php?k1=87&k2=21&w=$2"
czes="http://www.dicts.info/ud.php?k1=21&k2=87&w=$2"
eshr="http://www.dicts.info/ud.php?k1=87&k2=170&w=$2"
hres="http://www.dicts.info/ud.php?k1=170&k2=87&w=$2"
esdk="http://www.dicts.info/ud.php?k1=87&k2=23&w=$2"
dkes="http://www.dicts.info/ud.php?k1=23&k2=87&w=$2"
esgr="http://www.dicts.info/ud.php?k1=87&k2=37&w=$2"
gres="http://www.dicts.info/ud.php?k1=37&k2=87&w=$2"
eshu="http://www.dicts.info/ud.php?k1=87&k2=43&w=$2"
hues="http://www.dicts.info/ud.php?k1=43&k2=87&w=$2"
esil="http://dicts.info/2/hebrew-spanish.php?word=$2&begin=Search"
iles=$esil
esjp="http://www.dicts.info/ud.php?k1=87&k2=55&w=$2"
jpes="http://www.dicts.info/ud.php?k1=55&k2=87&w=$2"
esar="http://www.dicts.info/ud.php?k1=118&k2=87&w=$2"
ares="http://www.dicts.info/ud.php?k1=87&k2=118&w=$2"
rues="http://www.dicts.info/ud.php?k1=81&k2=87&w=$2"
esru="http://www.dicts.info/ud.php?k1=87&k2=81&w=$2"
es="http://buscon.rae.es/draeI/SrvltGUIBusUsual?TIPO_%20HTML=2&LEMA=$2"
en="http://dictionary.reference.com/browse/$2"
it="http://www.dizionario-italiano.it/definizione-lemma.php?definizione=$2&lemma=C042C000"
fr="http://www.cnrtl.fr/definition/$2"
ast="http://mas.lne.es/diccionario/index.php?palabra=$2"
ca="http://dlc.iec.cat/results.asp?txtEntrada=$2&operEntrada=0"
encn="http://www.mandarintools.com/cgi-bin/wordlook.pl?word=$2&searchtype=english&where=whole"
cnen=$encn
zuen="http://www.websters-online-dictionary.org/translation/Zulu/$2"
enmal="http://www.dicts.info/ud.php?k1=1&k2=228&w=$2"
malen="http://www.dicts.info/ud.php?k1=228&k2=1&w=$2"
enro="http://www.dictionarenglezroman.ro/?cuvant=$2"
roen="http://www.dictionarromanenglez.ro/?cuvant=$2"
entag="http://www.foreignword.com/cgi-bin/engtag.cgi?language=engtag&termbox=$2&B1=Search"
tagen="http://www.foreignword.com/cgi-bin/engtag.cgi?language=tageng&termbox=$2&B1=Search"
ayuda(){
echo
echo "Uso: $0 idiomaidioma palabra"
echo "Ej.: $0 esjp perro"
echo "o $0 idioma palabra, para el diccionario de definiciones"
echo "Ej.: $0 en dog"
echo ""
echo "Lista de idiomas:"
echo ""
echo "es <--> al ar bu ca cz de dk en fi fr gr hr hu il it jp lat pt ru"
echo "en <--> cn mal(tés) tag(alog) ro"
echo "zuen -> Zulú-Inglés"
echo
echo "Dicc. de definiciones: es en it fr ast ca"
}
if [ $# -lt 2 ];
then
ayuda
exit 1
fi
pp=$1
j=$pp
k=${!j}
$browser$k | less
exit 0

Ejemplo de resultado de una búsqueda:

$ dic encn apple

Trad. Simp. Pinyin English
蘋 苹 píng apple
蘋果 苹果 píng guǒ apple

2 entries found.

Click on the pinyin to hear it pronounced. The simplified version is
shown only if different from the traditional.
__________________________________________________________________

Search ____________________ as [Chinese (Trad. or Simp)]
Match [whole dictionary field......].
[_] Display Chinese using GIFs
[_] Include pronunciation links
Look It Up!

Return to the main dictionary page.
(END)

ii


Gracias al sorprendente vt102 conocí ii, un minimalista cliente de irc.
Para tratar de manejarlo y entender su funcionamiento hice este pequeño script, basándome en los ya existentes en la página de ii y en el script de vt102.
El script ejecuta ii con las opciones server , nick, pass y canales, entra en los canales indicados, abre un terminal con splitvt y multitail en ejecución y presenta un menú desde el cual escogemos en qué canal escribir u otras opciones.
Pulsando Ctrl+D paramos la entrada de texto y volvemos al menú; la opción exit mata el proceso ii , splitvt, y borra los archivos temporales.



Script de inicio (puede llamarse como se quiera)

#!/bin/bash
# El script solo sirve para entrar a un server; para entraren más de uno
# habría que lanzar otra instancia en otro terminal


comprobar_conexion()
{
if pidof ii
then
echo "Conectado a " $server
else
echo "No hay conexión con " $server
fi
}

ruta=~/irc

# Si entramos como root nos riñe
if [ "$(id -u)" == "0" ]; then
echo "No es buena idea salir a irc como root. Por favor, loguea como usuario"
exit 1
fi

# Si no hay parametros nos vamos. Los argumentos pueden ser mínimo 3:
# server, nick, canal o server, nick, key;
# en los 2 casos el script continua, aunque en el segundo caso se conectará al server sin
# entrar a ningun canal

if [ $# -lt 3 ] ; then
echo
echo "Uso: $0 server nick [-k key] canal1 canal2... canaln"
echo "Los nombres de los canales se escriben sin la almohadilla "
echo
exit 1
fi

# Si ponemos nick y pass
if [ $3 = "-k" ]; then
server=$1
pass=$4
ii -s $server -n $2 -k $4 &
echo "Conectando con " $1"..."
sleep 5
comprobar_conexion
shift
shift
shift
shift
for i in "$@"
do
echo "/j #$i" > $ruta/$server/in
done
else
# Si no ponemos pass
server=$1
ii -s $server -n $2 &
echo "Conectando con " $1"..."
sleep 5
comprobar_conexion
shift
shift
for i in "$@"
do
echo "/j #$i" > $ruta/$server/in
done
fi

# Guarda los canales para el out y el in
for i in "$@"
do
echo "-f "$ruta/$server/#$i/out >> canal_out.txt
echo $ruta/$server/#$i/in >> canal_in.txt
done

canal_out=`cat canal_out.txt`

splitvt multitail $canal_out -lower ii_1_in -bottom -s 50
# ii_1_in es un script externo de entrada de texto
exit 0


Script para entrada de texto

#!/bin/bash
# Este escript debe llamarse ii_1_in


cont=0
while read linea; do
opciones[$cont]=`echo "$linea"`
let cont=cont+1
done < canal_in.txt
mensaje(){
echo "Pulsa Ctrl+d para volver al menú"
}
menu(){
echo cont=$(($cont-1))
for i in `seq 0 $cont` do
printf " [$i]Canal $i"
done
cont=$(($cont+1))
printf " [w] W3m [m] Mail [s] Shell [x] Exit"
echo
printf "\nIntroduce un nº para seleccionar el canal, o la opción. \nCtrl+d vuelve al menú: "
}
while true do
clear
menu
read choise
if [ $choise = "x" ] then
rm canal_in.txt
rm canal_out.txt
killall ii
killall splitvt
exit 0
fi
if [ $choise = "m" ] then
alpine
mensaje
fi
if [ $choise = "w" ] then
w3m -B
mensaje
fi
if [ $choise = "s" ] then
/bin/bash
mensaje
fi
actual=${opciones[$choise]}
clear
printf "Ctrl+d para volver al menú \n>"
cat >> $actual
done

Museek


Museekd

Museekd es un daemon/cliente para Soulseek escrito en C++ que puede
ser controlado con varios interfaces o GUIs: museeq (QT), mucous (Curses)
o desde la linea de comandos con museekcontrol.

Usaremos el comando musetup para configurar museekd.

% musetup

Museek daemon setup

Settings that must be set for museekd to run:
Server, Username, Password, Interface Password, Download Dir

1. Soulseek server
2. Peer connections
3. Interface listeners
4. Network and filesystem character sets
5. Download and incomplete file directory

6. Shared directories
7. Buddy-Only Shared directories

0. Exit museek setup

Pick a number, any number:

Para que museekd se ejecute como daemon en el arranque del sistema creamos
el siguiente script en /etc/init.d:

#! /bin/sh

# Written by chopeen
#
# Based on SeeSchloss' museek & mulog init.d scripts for Gentoo
#
USER=kir #(nuestro nombre en el sistema)
MUSEEKD_USER=kir_tty #(nuestro nombre en soulseek)
MUSEEKD_CONFIG=/home/kir/.museekd/config.xml
MUSEEKD_PATH=/usr/bin

case "$1" in
start)
echo "Starting museekd as user $MUSEEKD_USER"
start-stop-daemon --start --quiet --exec $MUSEEKD_PATH/museekd /
--chuid $USER --background --pidfile /var/run/museekd.pid /
--make-pidfile -- -c $MUSEEKD_CONFIG
;;
stop)
echo "Stopping museekd"
start-stop-daemon --stop --quiet --pidfile /var/run/museekd.pid
;;
esac

exit 0

Le damos permiso de ejecución:
chmod +x /etc/init.d/museek
y creamos los enlaces a los scripts de arranque:
update-rc.d museek defaults
Si todo va bien el script debería ejecutarse al iniciar el sistema.

Control de museekd desde la línea de comandos

Instalar museekd-tools:
apt-get install museekd-tools
Esto nos proveerá de los ejecutables museekcontrol y mulog.

museekcontrol
Es un cliente para museekd en Python que permite acceder a la mayoría
de las funciones de Soulseek desde la línea de comandos.
Se crea un archivo (~/.museekd/museekcontrol.config) donde configuraremos
interface, password (los mismos que tengamos en ~/.museekd/config.xml)
y el directorio de los logs:

interface = localhost:2240
password = ********

[museekcontrol]
log_dir = ~/.museekd/logs/

Invocamos el programa con :

museekcontrol + opción

Búsqueda y presentación de resultados:
--gs --gsearch lo_que_sea Hace una búsqueda globlal.
--rs --rsearch lo_que_sea Busca en una sala
--bs --bsearch lo_que_sea" Busca entre los amigos

Salas de chat:
-r --rooms Muestra la lista de salas
--roomlist Refresca la lista de salas

Tickers: ¿?

Chat privado:
--sprivate user

Usuarios:
--buddy --unbuddy user Añade o quita usuario de la lista de amigos.
--ignore --unignore user Añade o quita usuario de la lista de ignorados.
--ban --unban user Añade o quita usuario de la lista de baneados.
--trust --distrust user Añade o quita usuario de la lista de confianza.
--comment texto Comentario para el usuario en la lista.

Información de usuarios:
--info user Muestra información del usuario. Si hay imagen
disponible se guarda en .img
--minfo Monitoriza toda la información de usuarios.
--ip user Muestra la ip y puerto de un usuario.

Transferencias:
-t --transfers Muestra el estado actual de las transferencia
--mt --mtransfers Monitoriza las transferencias
--download slsk://user/path
Añade un archivo o directorio a la cola de descargas
--upload slsk://user/path
Intenta subir un archivo al usuario.
--abortup slsk://user/path
Aborta la subida.
--abortdown slsk://user/path
Aborta la descarga.
--removeup slsk://user/path
Borra la subida de la cola.
--removedown slsk://user/path
Borra la bajada de la cola.
--retryup slsk://user/path
Reintenta la subida (para subidas remotas).
--retrydown slsk://user/path
Reintenta la bajada.

Mulog
Es un script que conecta con museekd y guarda los logs del chat,
conversaciones privadas y mensajes del sistema.

~/.museekd/mulog.config

[mulog]
log_dir = ~/.museekd/logs/

[connection]
interface = localhost:2240
password = ********

eeepc

Xandros
La distribución que viene instalada de serie en el eeepc 701 es Xandros, basada en Debian. El escritorio es IceWM con una aplicación llamada "EasyMode" que organiza la pantalla en pestañas e iconos para lanzar las aplicaciones.
Para lanzar un emulador de terminal hay que pulsar Ctrl+Alt+t.

Para usar IceWM de forma normal (sin el EasyMode) creamos un directorio .icewm en /home y copiamos en este el contenido de /etc/X11/icewm/ :

$ mkdir ~/.icewm
$ cp /etc/X11/icewm/* ~/.icewm

Luego hay que editar el fichero ~/.icewm/preferences y poner a "1" la opción “TaskBarShowStartMenu” .

Tambien se le puede instalar KDE añadiendo en /etc/apt/sources.list:

deb http://download.tuxfamily.org/eeepcrepos p701 main

y ejecutando:

$ sudo apt-get update
$ sudo apt-get install advanced-desktop-eeepc


De esta forma ya tendremos un entorno un poco menos "infantil" aunque enseguida nos daremos cuenta de que no hay acceso a las consolas tty, Ctr+Alt+Fx no hace nada. Esto se soluciona editando /etc/X11/xorg.conf y cambiando la línea

Option "DontVTSwitch" "true"

por "false", o símplemente comentándola.
Esto nos da acceso a un tty pulsando Ctr+Alt+F3; con Alt+F2 volvemos al entorno gráfico.
A pesar de estos cambios sigue sin convencerme Xandros como distribución: repositorios poco actualizados, sin perspectivas claras de continuidad, demasiada complicación para lograr un "linux normal"... ( dónde están las otras 5 tty's ?). La solución es obvia, instalar otra distro y olvidarse de Xandros .

Eeebuntu
Despues de barajar varias alternativas (arch, debian, puppy, mandriva...) me decidí a instalar eeebuntu, pues me pareció la única que me garantiza que funcione todo sin demasiados quebraderos de cabeza.

[Mandriva me sacó de apuros cuando era aún más ignorante, y parece ser que reconoce todo el hardware, instala los drivers correspondientes y deja la máquina lista para usar. Pero no me apetece pegarme con archivos RPM en el futuro.
De Puppy tampoco me convence su dependencia de los paquetes de Slackware y en cuanto a Arch... me queda duro ese hueso (vamos pa vieyos).
Para mi gusto lo ideal hubiera sido Debian: una instalación mínima y edificar sobre ella. La aparente complejidad (vista la cantidad de información de la Wiki), mis dificultades con el inglés y la resaca del año nuevo inclinaron la balanza en favor de eeebuntu.]

La versión escogida para instalar fue Eeebuntu Base 2.0 , una versión mínima de Ubuntu 8.10 adaptada al hardware de esta máquina.
La instalación es simple: preparar una memoria USB para arrancar el sistema (unetbootin es una opción cómoda); insertar la memoria en el equipo y pulsar Esc en el arranque para escoger con qué dispositivo arrancar. Una vez en el escritorio de ubuntu se instala sin sustos pulsando el icono de instalación.
Se instalarán todos los controladores necesarios para la wifi, gráfica, webcam...
pero, ojo, la webcam quedará desactivada en la bios. Se soluciona entrando en la configuración de ésta en el arranque y buscando la opción para habilitarla.

Una vez instalado, sudo apt-get install eee-control nos instalará un applet desde el que podremos activar/desactivar la wifi, bluetooth... ver sensors o cambiar el modo de cpufreq (por defecto está en on demand).
Puede instalarse Compiz y una vez que nos hayamos deleitado lo suficiente dando vueltas al cubo podemos olvidarnos de ello y hacer un
sudo apt-get install pekwm y pasar a cosas más serias.

Para poder usar los applets (estado de batería, red, gestor de actualizaciones..) es preciso añadir un panel. Descarté el de gnome por demasiado pesado y me decidí por BMPanel, sencillo y funcional.
Editando ~/.pekwm/start y añadiendo las siguientes líneas pekwm se iniciará con el panel y los applets sin añadir demasiado estorbo a la reducida pantalla.

~/.pekwm/start

#!/bin/sh
xsetroot -cursor_name X_cursor
xsetroot -solid black
bmpanel transpy &
eee-control-tray &
nm-applet &
conky &
gnome-power-manager &
update-notifier &


El resultado es más o menos este (el applet de estado de la batería aparecerá al desenchufar el equipo de la toma de corriente, y el de notificación de actualizaciones cuando las hubiere):

DD-WRT en la fonera


Para entrar al RedBoot usar el mismo procedimiento que para OpenWrt:
descargar linux.bin, preparar un servidor tftp, etc.

telnet 192.168.1.1 9000   
 == Executing boot script in 8.530 seconds - enter ^C to abort
    ^C
    RedBoot> ip_address -l 192.168.1.1/24 -h 192.168.1.100
    IP: 192.168.1.254/255.255.255.0, Gateway: 0.0.0.0
    Default server: 192.168.1.166

    RedBoot> fis init
    About to initialize [format] FLASH image system - continue (y/n)? y
    *** Initialize FLASH Image System
    … Erase from 0xa87e0000-0xa87f0000: .
    … Program from 0×80ff0000-0×81000000 at 0xa87e0000: .
    RedBoot> load -r -b 0x80041000 linux.bin
    Using default protocol (TFTP)
    Raw file loaded 0×80041000-0×80684fff, assumed entry at 0×80041000
    RedBoot> fis create linux
Tardará unos 15 minutos, procurar no ponerse nervioso ni tocar nada.
    RedBoot> fconfig //Pulsa enter//
    Run script at boot: true //Pulsa enter//
    Boot script:
    .. fis load -l vmlinux.bin.l7
    .. exec
    Enter script, terminate with empty line
Saldrá un nuevo prompt (>>) donde se introducen los siguientes comandos:
    >> fis load -l linux //Pulsa enter//
    >> exec //Pulsa enter//
    >> //Pulsa enter//
A continuación salen una serie de preguntas sobre parámetros de configuración:
    Boot script timeout (1000ms resolution): 10 //Pulsa enter//
    Use BOOTP for network configuration: false //Pulsa enter//
    Gateway IP address: //Pulsa enter//
    Local IP address: 192.168.1.254 //Pulsa enter//
    Local IP address mask: 255.255.255.0 //Pulsa enter//
    Default server IP address: <blank> //Pulsa enter//
    Console baud rate: 9600 //Pulsa enter//
    GDB connection port: 9000 //Pulsa enter//
    Force console for special debug messages: false //Pulsa enter//
    Network debug at boot time: false //Pulsa enter//
    Update RedBoot non-volatile configuration - continue (y/n)? y //Pulsa enter//
    … Erase from 0xa87e0000-0xa87f0000: .
    … Program from 0×80ff0000-0×81000000 at 0xa87e0000: .
    RedBoot>reset //Pulsa enter//

 

Ya tenemos dd-wrt instalado en la fonera,
ahora podremos cambiar nuestra ip a una del rango 192.168.1.0/24
y entrar a la 192.168.1.1 para ver el menú de administracion
Nombre: root
Password: admin

Portar aplicaciones a DSLinux

Una vez compilado DSLinux y el toolchain, desde el directorio ../trunk ejecutar

/media/hdb1/trunk % make xsh
make[1]: se ingresa al directorio `/media/hdb1/trunk'
Spawning cross-compilation shell. Happy hacking! :-)
Type exit to get out of here
YOU CANNOT COMPILE ALL OF DSLinux FROM THIS SHELL!
It is suitable only for porting applications and libraries.
------ Environment: ----------------------------------------------------
CC = ucfront-gcc arm-linux-elf-gcc
CFLAGS = -O2 -g -fomit-frame-pointer -fno-common -fno-builtin -Wall
-mswp-byte-writes -DCONFIG_NDS_ROM8BIT -mcpu=arm946e-s -mfpu=fpe3 -DEMBED -D__PIC__ -fpic
-msingle-pic-base -Dlinux -D__linux__ -Dunix -D__uClinux__
LD = arm-linux-elf-ld
LDFLAGS = -Wl,-elf2flt -D__PIC__ -fpic -msingle-pic-base -mswp-byte-writes
------------------------------------------------------------------------
-xsh- w >


Este comando proporciona un nuevo shell (bastante incómodo
de usar) con un entorno preparado para la compilación cruzada.

Ejemplo:
(Descargar el código fuente en user/ y desde trunk/ ejecutar make xsh)

-xsh- w > cd /user/bitchx
-xsh- w
> ./configure --prefix=/usr --host=${CROSS}
-xsh- w > make
-xsh- w > cd source
-xsh- w > file BitchX
BitchX: BFLT executable - version 4 gotpic
-xsh- w > file BitchX.gdb
BitchX.gdb: ELF 32-bit LSB executable, ARM, version 1, statically linked, not
stripped

exit para salir del shell y volver a ../trunk

A continuación habría que copiar el ejcutable al directorio linux/usr/bin
generado por la compilación de DSLinux y, si fuera el caso,
los archivos de configuración a sus respectivos directorios.

DSLinux

DSLinux

svn checkout http://dslinux.gits.kiev.ua/trunk


Esto crea un directorio trunk/ con las fuentes de dslinux

-Compilar el toolchain:

cd trunk/toolchain
export PATH=$PATH:/media/hdb1/trunk/toolchain/prefix/bin/
make fetch (descarga los programas que va a necesitar para la compilación)
make


-Compilar DSlinux

cd ..
make menuconfig


La primera vez que se compila el README recomienda hacerlo con las opciones por defecto:
---> Kernel/Library/Defaults Selection
---> (*) Default all settings (lose changes)

make

En una segunda compilación cambiamos lo que nos interese de la config y arreando.
En /media/hdb1/trunk/images están los archivos dslinux.nds y el directorio /linux que habrá que copiar a la tarjeta (M3, R4, DSTT, etc)



Página del proyecto: http://dslinux.org/

Conky















.conkyrc

background no
font -artwiz-snap-*-*-*-*-*-*-*-*-*-*-*-*
use_xft no
update_interval 3
total_run_times 0
own_window no
double_buffer yes
minimum_size 1024 768
maximum_width 1024
alignment top_left
gap_x 0
gap_y 0
default_color white
default_shade_color black
default_outline_color black
color0 000000
color1 144556
color2 33b0dc
draw_borders no
stippled_borders 8
border_margin 4
border_width 1
draw_shades yes
draw_outline no
use_spacer no
no_buffers yes
cpu_avg_samples 2
net_avg_samples 2
mail_spool /var/spool/mail/kir

TEXT

${voffset 50}${offset 600}${color lightgreen}$time
${offset 600}${color lightgreen}${alignc}${execi 60 whoami}@beth - $sysname $kernel a $freq Mhz
${offset 600}${color lightgreen}Uptime: $uptime ${color lightgreen}- Load: $loadavg

${voffset 100}${offset 300}${color lightgreen}${exec /home/kir/bin/sens}


${voffset -50}${offset 700}${color lightgreen}Uso de CPU:${color lightgreen} $cpu% ${cpubar}
${offset 700}${color lightgreen}RAM en uso: $mem/$memmax - $memperc% ${membar}
${offset 700}${color lightgreen}Swap en uso: $swap/$swapmax - $swapperc% ${swapbar}
${offset 700}${color lightgreen}Procesos: $processes ${color lightgreen}Corriendo:$color $running_processes

${color lightgreen}Eth0
Bajada:${color lightgreen} ${downspeed eth0} k/s${color lightgreen} ${offset 80}Subida:${color lightgreen} ${upspeed eth0} k/s
${color lightgreen}${downspeedgraph eth0 16,150 ff0000 0000ff} ${color lightgreen}${upspeedgraph eth0 16,150 0000ff ff0000}
Eth1
Bajada:${color lightgreen} ${downspeed eth1} k/s${color lightgreen} ${offset 80}Subida:${color lightgreen} ${upspeed eth1} k/s
${color lightgreen}${downspeedgraph eth1 16,150 ff0000 0000ff} ${color lightgreen}${upspeedgraph eth1 16,150 0000ff ff0000}
Rausb0
Bajada:${color lightgreen} ${downspeed rausb0} k/s${color lightgreen} ${offset 80}Subida:${color lightgreen} ${upspeed rausb0} k/s
${color lightgreen}${downspeedgraph rausb0 16,150 ff0000 0000ff} ${color lightgreen}${upspeedgraph rausb0 16,150 0000ff ff0000}
Disco I/O: ${diskio /dev/hda}
${diskiograph /dev/hda 16,150 ff0000 0000ff}

${voffset 50}${offset 750}${color lightgreen}/ ${color lightgreen}${fs_size /} ${fs_bar /}
${offset 750}${color lightgreen}Home ${color lightgreen}${fs_size /home} ${fs_bar /home}
${offset 750}${color lightgreen}hda1 ${color lightgreen}${fs_size /media/hda1} ${fs_bar /media/hda1}
${offset 750}${color lightgreen}hda6 ${color lightgreen}${fs_size /media/hda6} ${fs_bar /media/hda6}
${offset 750}${color lightgreen}hda7 ${color lightgreen}${fs_size /media/hda7} ${fs_bar /media/hda7}
${offset 750}${color lightgreen}hdb1 ${color lightgreen}${fs_size /media/hdb1} ${fs_bar /media/hdb1}
${offset 750}${color lightgreen}hdb2 ${color lightgreen}${fs_size /media/hdb2} ${fs_bar /media/hdb2}

${color lightgreen}Orpheus-${color green} ${exec cat ~/.orpheus/currently_playing}

${voffset 100}${offset 550}${color lightgreen}New Mail ${color green} ${new_mails}


~/bin/sens

sensors | grep temp1 | awk '{print $1 $2}' | sed s/temp1/Placa\ base\ / | cut -c 1-15
sensors | grep temp2 | awk '{print $1 $2}' | sed s/temp2/Procesador\ / | cut -c 1-17
sensors | grep fan2 | awk '{print $1 $2 " " $3}' | sed s/fan2/Ventilador\ /




Sobrevivir sin las X - Fetchmail













Fetchmail nos permite descargar el correo desde la línea de comandos de los servidores en los que tengamos cuenta.
Lo primero es instalar fetchmail desde el apt o las fuentes desde Berlios.de .
A continuación crear un archivo llamado .fetchmailrc en nuestro $HOME con permisos 600 con el siguiente contenido:

set postmaster "kir"
set bouncemail
set no spambounce
set properties ""

# Cuenta de telefónica
poll pop3.telefonica.net with proto POP3 and options uidl
user 'fulano' there with password 'pass _de_fulano_en_telef.' is 'kir' here options keep

# Cuenta en sdf-eu.org
poll sdf-eu.org with proto POP3 and options uidl
user 'fulano' there with password 'pass_de_fulano_en_sdf-eu' is 'kir' here

#Cuenta en lavabit.com
poll lavabit.com with proto POP3 and options uidl
user 'fulano' there with password 'pass_de_fulano_en_lavabit' is 'kir' here options keep

# Cuenta gmail
poll pop.gmail.com with proto POP3 and options no dns
user 'fulano@gmail.com' there with password 'pass_de_fulano_en_gmail' is 'kir' here options ssl



En postmaster ponemos nuestro nombre de usuario en la máquina local.
La opción keep es para que descargue el correo pero deje copia en el servidor. Sin esta opción nos lo descarga, lo almacena en nuestro disco local y lo borra del servidor.

Para descargar el correo ponemos en un terminal:

fetchmail

y el programa conectará con los servidores, descargará el correo y lo guardará en /var/mail/usuario .

Para ver el correo puede usarse alpine u otro programa similar.