lordii
Usuario (Argentina)

Xandria NeverWorlds End 2012La banda alemana de Metal Gótico/Sinfónico Xandria ha revelado la portada y nombre de su quinto y próximo álbum de estudio. El nuevo disco se llamará "Neverworld's End" y será lanzado el 22 de Febrero de 2012 vía Napalm RecordsAdemás la portada incluye un nuevo logo de la banda, que sustituye al previamente usado en el resto de discos, al igual que nueva vocalista.Aca un video de una de las grabaciones Y aca una foto de la nueva vocalista Manuela Kraller
Leave's Eyes y Atrocity se presentan en Argentina el 7/7/12 en el Teatro Roxy Live a las 18:00hs. link: http://www.youtube.com/watch?v=i-lyEEa3_08&feature=player_embedded Fuente : http://www.leaveseyes.de/

Celesty anuncia descanso indefinidoLa banda de power metal estaba trabajando en lo que seria su quinto disco de estudio , en su pagina oficial se puede leer : “Queridos seguidores de Celesty, lamentamos anunciar que Celesty se tomará un descanso indefinido. Durante el tiempo en que las canciones han ido progresando se ha producido una mezcla de sentimientos durante mucho tiempo. La situación es que la banda ha llegado al punto donde la única solución es tomar un descanso que podría tomar de uno a diez años, no lo sabemos, pero esta es la única manera de tomar el tiempo que necesitamos, esta es una decisión mutua con todos los miembros de la banda.”Una lastima la verdad , les dejo un video de la banda

Atención Esto no es una guia es solo una pequeña introduccion a dwm para que puedan conocer este window manager y si les gusta animarse a probarlo . Descripción dwm es un gestor de ventanas dinámico .Permite posicionar las mismas en forma de mosaico (tiling), en forma de pila (stack), y en pantalla completa (monocle), así como en diversas modalidades adicionales mediante la ayuda de parches opcionales. La disposición de las ventanas puede ser aplicada en forma dinámica optimizando así el entorno en función de la aplicación en uso y la tarea a realizar. dwm es extremadamente liviano y rápido, está escrito en C con la premisa de que su código fuente no supere las 2000 líneas. Provee soporte de multi-monitor para xrandr y Xinerama. Instalación Para instalarlo y posteriormente poder personalizarlo, es necesario descargar el paquete y compilarlo , en arch lo recomendable es con ABS y en distros basadas en debian me basto con un simple “make clean install”. Es necesario tambien instalar dmenu , ya que no posee un menu como awesome u openbox. Configuración Cada vez que cambiemos la configuracion de dwm es necesario recompilarlo . Para manejar los wallpapers lo mas recomendable es usar Nitrogen. Accesos basicos : ++ - terminal + - dmenu La configuracion de los colores , fuentes y atajos de teclado se realizan en el archivo config,h , el cual esta en el lenguaje C . Aca un ejemplo (sin parches) , es bastante intuitivo . /* See LICENSE file for copyright and license details. */ /* appearance */ static const char font[] = "-*-terminus-medium-r-*-*-16-*-*-*-*-*-*-*"; static const char normbordercolor[] = "#444444"; static const char normbgcolor[] = "#222222"; static const char normfgcolor[] = "#bbbbbb"; static const char selbordercolor[] = "#005577"; static const char selbgcolor[] = "#005577"; static const char selfgcolor[] = "#eeeeee"; static const unsigned int borderpx = 1; /* border pixel of windows */ static const unsigned int snap = 32; /* snap pixel */ static const Bool showbar = True; /* False means no bar */ static const Bool topbar = True; /* False means bottom bar */ /* tagging */ static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" }; static const Rule rules[] = { /* class instance title tags mask isfloating monitor */ { "Gimp", NULL, NULL, 0, True, -1 }, { "Firefox", NULL, NULL, 1 << 8, False, -1 }, }; /* layout(s) */ static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */ static const int nmaster = 1; /* number of clients in master area */ static const Bool resizehints = True; /* True means respect size hints in tiled resizals */ static const Layout layouts[] = { /* symbol arrange function */ { "[]=", tile }, /* first entry is default */ { "><>", NULL }, /* no layout function means floating behavior */ { "", monocle }, }; /* key definitions */ #define MODKEY Mod1Mask #define TAGKEYS(KEY,TAG) { MODKEY, KEY, view, {.ui = 1 << TAG} }, { MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, { MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, { MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} }, /* helper for spawning shell commands in the pre dwm-5.0 fashion */ #define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } } /* commands */ static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", normfgcolor, "-sb", selbgcolor, "-sf", selfgcolor, NULL }; static const char *termcmd[] = { "uxterm", NULL }; static Key keys[] = { /* modifier key function argument */ { MODKEY, XK_p, spawn, {.v = dmenucmd } }, { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } }, { MODKEY, XK_b, togglebar, {0} }, { MODKEY, XK_j, focusstack, {.i = +1 } }, { MODKEY, XK_k, focusstack, {.i = -1 } }, { MODKEY, XK_i, incnmaster, {.i = +1 } }, { MODKEY, XK_d, incnmaster, {.i = -1 } }, { MODKEY, XK_h, setmfact, {.f = -0.05} }, { MODKEY, XK_l, setmfact, {.f = +0.05} }, { MODKEY, XK_Return, zoom, {0} }, { MODKEY, XK_Tab, view, {0} }, { MODKEY|ShiftMask, XK_c, killclient, {0} }, { MODKEY, XK_t, setlayout, {.v = &layouts[0]} }, { MODKEY, XK_f, setlayout, {.v = &layouts[1]} }, { MODKEY, XK_m, setlayout, {.v = &layouts[2]} }, { MODKEY, XK_space, setlayout, {0} }, { MODKEY|ShiftMask, XK_space, togglefloating, {0} }, { MODKEY, XK_0, view, {.ui = ~0 } }, { MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } }, { MODKEY, XK_comma, focusmon, {.i = -1 } }, { MODKEY, XK_period, focusmon, {.i = +1 } }, { MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } }, { MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } }, TAGKEYS( XK_1, 0) TAGKEYS( XK_2, 1) TAGKEYS( XK_3, 2) TAGKEYS( XK_4, 3) TAGKEYS( XK_5, 4) TAGKEYS( XK_6, 5) TAGKEYS( XK_7, 6) TAGKEYS( XK_8, 7) TAGKEYS( XK_9, 8) { MODKEY|ShiftMask, XK_q, quit, {0} }, }; /* button definitions */ /* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */ static Button buttons[] = { /* click event mask button function argument */ { ClkLtSymbol, 0, Button1, setlayout, {0} }, { ClkLtSymbol, 0, Button3, setlayout, {.v = &layouts[2]} }, { ClkWinTitle, 0, Button2, zoom, {0} }, { ClkStatusText, 0, Button2, spawn, {.v = termcmd } }, { ClkClientWin, MODKEY, Button1, movemouse, {0} }, { ClkClientWin, MODKEY, Button2, togglefloating, {0} }, { ClkClientWin, MODKEY, Button3, resizemouse, {0} }, { ClkTagBar, 0, Button1, view, {0} }, { ClkTagBar, 0, Button3, toggleview, {0} }, { ClkTagBar, MODKEY, Button1, tag, {0} }, { ClkTagBar, MODKEY, Button3, toggletag, {0} }, }; Para hacer modificaciones mas grandes , como por ejemplo los simbolos de los tags o el comportamiento de las ventanas en modo flotante , etc . Es necesario modificar el codigo de fuente que tambien esta en c (dwm.c). Por suerte existen variedad de parches que hacen el trabajo por nosotros , Por ultimo podemos agregar barras de estado mediante xsetroot , la forma mas sencilla es mediante un script aunque es posible hacerlo con conky . Aca un ejemplo de barra que muestra el estado de bateria y la hora (va en nuestro .xinitrc) while sleep 1m; do batt=`LC_ALL=C acpi -b` case $batt in *Discharging*) batt=${batt_main#* * * }; batt="${batt%%, *} " ;; *) batt='' ;; esac xsetroot -name "$batt`date +"%R"`" done & exec dwm Mi escritorio con dwm Conclusión Dwm es super ligero y muy productivo para trabajar con multiples ventanas ademas de tener una estetica minimalista y existen muchisimos parches para cambiar su aspecto a gusto . Pero no es muy simple de usar , hay que tener bastante paciencia y ganas de leer y aprender .

Hace bastante empeze a usar ranger como gestor de archivos , tienen accesos directos al estilo de vim y claro corre en terminal . Una de las caracteristias que mas me gusta es la de poder mostrar las imagenes , pero no en ascii (aunque tambien tiene esa posibilidad ) . Para poder hacer esto es necesario ranger , ademas de w3m un browser que tiene la posibilidad de mostrar determinadas imagenes . Pero ojo esto solo funciona en xterm y/o urxvt . Me voy a basar en arch , para otras distros debe ser igual (supongo). Instalamos ranger : # pacman -S ranger Instalamos w3m # pacman -S w3m Ahora pasamos a configurar ranger , para esto ejecutamos : $ ranger --copy-config=all Esto copia todos los archivos de configuracion en ~/.config/ranger . Despues abrimos el rc.conf $ vim ~/.config/ranger/rc.conf Y buscamos la linea que diga set preview_images y la cambiamos a true , asi : set preview_images true Y listo , ya podemos ver nuestras imagenes en la terminal sin necesidad de ningun visor de imagenes externo , ademas de esto ranger tiene muchisimas opciones personalizables como atajos de teclados , temas de colores , etc . Aca pueden encontrar mas info. Saludos !

Shell ScriptingBueno antes que nada unos conceptos basicos para el que no sepa :¿Que es Shell?Shell:Intérprete de comandos.Modo de interacción entre el usuario y el Kernel.Es un poderoso ambiente de programación.Permite la creación de scripts (shell scripts).¿Y Shell script?Shell script:Agrupamiento de sentencias de shell con un fin en común.Archivo de texto plano que puede ser visualizado con un editor.La programación en shell surgió como respuesta a las tareas que losadministradores realizaban secuencialmente para conseguir hacer algo conel sistema.Lo que se hace es ejecutar secuencialmente órdenes en el intérprete decomandos sin tener que escribirlos a mano.Si escribimos en una terminalecho $SHELLnos dira que shell estamos ejecutandoNuestro primer script : Hola Mundo Usamos un editor y creamos el fichero miprimerscript.sh:#!/bin/bashecho “Hola mundo!!”Con #! en la primera línea indicamos quién debería interpretar loscomandos (/bin/bash).Posteriormente escribimos los comandos separados por saltos de línea.Ejecucion del scriptEl script debe tener permisos de ejecución para elusuario.Para otorgarlos le damos click secundario al archivo , vamos a la pestañas permisos y marcamos ejecucion o desde terminal con chmod 755 nombredelscript.Modo 1:./scriptModo 2: (modo debug , ver que hace en cada paso , generalmente para buscar errores)bash –x scriptVariablesUna variable tiene un nombre y un valor, y sirve para dotar de dinamismo anuestros scripts:#!/bin/bashFECHA=$(date)echo "Hola mundo!!"echo "Hoy es:"; echo $FECHAFECHA es el nombre de la variable.$FECHA es su valor.Para asignar un valor, se utiliza “=”.Variables InteractividadPara poder hacer entrada de datos, podemos ejecutar el comando:read VARIABLE. Con esto, lo que escriba el usuario será almacenadoen la variable VARIABLE. Ejemplo:#!/bin/bashecho -n "Introduzca algo:"read VARIABLEecho "Has tecleado: $VARIABLE"Variables ArgumentosSe pueden enviar argumentos al momento de la invocación del script:$1, $2, $3... ${10}, ${11}: argumentos (parámetros).shift : permite hacer un corrimiento de parámetros a izquierda. ($1ahora vale lo que valía $2, $2 lo que valía $3, etc. $0 no cambia).$0: Nombre del script.Es posible pasar los parámetros o argumentos que queramos yutilizarlos dentro del script. Por ejemplo:#!/bin/sh#notese que aca se usa la shell sh pero puede usarse cualquier otraecho “Primer Nombre: $1”echo “Segundo Nombre: $2”echo “Apellido: $3”Lo ejecutamos: ./nombre.sh Juan Pablo SalinasEn donde $1 es juan , $2 es pablo y $3 salinasVariables Argumentos especiales$*: todos los argumentos. “$*” = “$1 $2 $3...” (se usa para iterar).$@: todos los argumentos. “$@” = “$1” “$2” “$3”...$_: comando anteriormente ejecutado.$#: número de argumentos que nos han pasado.Variables y comandosEs posible almacenar en una variable el resultado de la ejecuciónde un comando.Con $(): anidableLISTADO=$(ls)LISTADO=$(ls $(cat directorios.txt))Operadores== (igual en strings)a (and)o (or)!= (distintos en strings)eq (es igual Números)ne (es distinto Números)lt (menor que)g (mayor que)le (menor o igual)ge (mayor o igual)e nombre (si existe directorio, archivo, etc.)d dir (si dir es un directorio)f file (si file es un archivo)r file (si para file tengo permiso de lectura)w file (si para file tengo permiso de escritura)x file (si para file tengo permiso de ejecución)Condicionales (if)if:if [ expresion ] thencomandos elsecomandosfiUn ejemplo : PREGUNTAR="SI"if [ $PREGUNTAR == "SI" ] then echo "Me han pedido que te pregunte cual es tu nombre?" else echo "No me apetece saber como te llamas"fiCasecase $VARIABLE in patron1 ) comandos1;; patron2 ) comandos2;; patron3 ) comandos3;;esacEstructuras iterativasFor: for variable in lista do comandos doneWhile : while [ condición ] do comando1 comando2 comando3 .... doneejemplo de while : SALIR=0while [ ! $SALIR ]do if [ ] then SALIR=1 fidoneBueno hasta lo basico para que puedan ver como se trabaja con shell scripting una de las herramientas mas poderosas de linux , y perdonen el tema de la indentación nose porque no sale , Saludos Aca mis otros postshttp://www.taringa.net/lordii/posts
Bienvenidos Para mostrar lo que escuchamos en conky hay varias opciones tantas como reproductores hay para elegir Les voy a mostrar una bastante sencilla que me funciono de diez . Vamos a necesitar el reproductor obviamente ( Gmusicbrowser ) , vamos a hacer 2 scripts uno en perl y otro en bash para enviarle la informacion necesaria a conky . Empezemos : Primero creamos el directorio .conky en nuestro home : mkdir ~/.conky Ahora crearemos el primer script en perl que nos va a dar la informacion de lo que estamos escuchando nano ~/.conky/gmusic_for_conky.pl Y ahora lo editamos : #!/bin/perl use warnings; use strict; use Net::DBus; my $bus = Net::DBus->session; my $service = $bus->get_service('org.gmusicbrowser'); my $object = $service->get_object('/org/gmusicbrowser', 'org.gmusicbrowser'); my $info= $object->CurrentSong; my $s0=$info->{length}; my $s1=$object->GetPosition; $info->{total}= sprintf "%02d:%02d", $s0/60, $s0%60; $info->{elapsed}= sprintf "%02d:%02d", $s1/60, $s1%60; $info->{progress}= sprintf "%f", 100*$s1/$s0; unless (@ARGV) { print "Usage examples :n"; print $0.q( title)."n"; print $0.q( '$title')."n"; print $0.q( '$title by $artist from $album' '$elapsed / $total')."n"; print "Available fields :n"; printf "%-15s = %sn", $_,$info->{$_} for sort keys %$info; exit; } for my $string (@ARGV) { if ($string=~m/^w+$/ && exists $info->{$string}) {$string='$'.$string } $string=~s/$(w+)/$info->{$1}/g; print "$stringn" } Lo guardamos con crtl+o y salimos con crtl+x Despues lo probamos a ver si devuelve correctamente la informacion de la musica que escuchamos : perl ~/.conky/gmusic_for_conky.pl Deberia devolver algo como esto : Usage examples : gmusic_for_conky.pl title gmusic_for_conky.pl '$title' gmusic_for_conky.pl '$title by $artist from $album' '$elapsed / $total' Available fields : album = Chapter V: Unbent, Unbowed, Unbroken album_artist = HammerFall album_picture = /home/lucas/Musica/H2005-CVUUU_Arturo12304/2005 - Chapter V Unbent, Unbowed, Unbroken/Front.png artist = HammerFall disc = 0 elapsed = 00:55 file = 10 - Knights of the 21st Century.mp3 length = 739 path = /home/lucas/Musica/H2005-CVUUU_Arturo12304/2005 - Chapter V Unbent, Unbowed, Unbroken progress = 7.536861 title = Knights of the 21st Century total = 12:19 track = 10 uri = file:///home/lucas/Musica/H2005-CVUUU_Arturo12304/2005%20-%20Chapter%20V%20%20Unbent,%20Unbowed,%20Unbroken/10%20-%20Knights%20of%20the%2021st%20Century.mp3 Ahora que sabemos que devuelve bien la informacion la podemos incorporar a nuestro propio conky Como lo hacemos? Para el titulo de la cancion agregamos : ${execi 10 perl ~/.conky/gmusic_for_conky.pl '$title'} Para el album : ${execi 10 perl ~/.conky/gmusic_for_conky.pl '$album'} Y para el artista: ${execi 10 perl ~/.conky/gmusic_for_conky.pl '$artist'} Claro que ustedes deberian agregarle la fuente , tamaño y colores que lleva su configuracion de conky. Y ahora viene la caratula del album que escuchamos , para eso vamos a usar un script de bash Primero lo creamos : nano ~/.conky/gmusic_cover.sh Y el codigo que debe llevar : #!/bin/bash # Usage: # ${execpi 3600 ~/.conky/gmusic_cover.sh} # coverSize=120x120 cover=~/.conky/cover.jpg file=$(perl ~/.conky/gmusic_for_conky.pl '$album_picture') if [ "$file" = "" ] ; then rm -f $cover ; else cp -f "$file" $cover; fi ### DO NOT EDIT BELOW THIS LINE echo "${image $cover -p 180,827 -s $coverSize -n}" exit 0 Y ahora lo agregamos a nuestro conky para que se ejecute : ${execpi 10 ~/.conky/gmusic_cover.sh} Ahora ya se deberia ver , pero si no estamos escuchando nada podriamos tener algunos problemas por lo que pueden agregar un if a su configuracion de conky : ${if_running gmusicbrowser} Entre medio nuestro codigo y terminamos con : ${endif} Listo ahora ya deberia verse la informacion y la caratula en su conky . Asi me quedo ami : Saludos!!

pseudo-tiling en openbox Buscando algun programa que hiciera algo parecido al tiling de dwm y awesome , encontre un codigo que usa las keybindings de openbox para lograr un pseudo tiling . Paso 1: Abren rc.xml usando su editor de texto preferido : nano $HOME/.config/openbox/rc.xml Paso 2: Buscan la linea que dice “keyboard” y justo debajo colocan lo siguiente: <keybind key="W-Left"> <action name="MaximizeVert"/> <action name="MoveResizeTo"> <x>o</x> <y>0</y> <width>640</width> </action> </keybind> <keybind key="W-Right"> <action name="MaximizeVert"/> <action name="MoveResizeTo"> <width>640</width> </action> <action name="MoveToEdgeEast"/> </keybind> Guardan y cierran el archivo. Que es todo eso? Bueno, ahora al hacer… Super+Izquierda: moveran la ventana a la mitad izquierda de la pantalla Super+Derecha: moveran la ventana a la mitad derecha de la pantalla Con esto lograremos poder hacer por ejemplo algo asi: Es bastante simple , pero para algunos puede resultar util . Saludos