domingo, 7 de abril de 2013

Abrir programas un cierto numero de veces en Linux con terminal (looping)

Cuando usamos la Shell de Linux muchas veces no usamos todo su potencial,en la terminal de Linux usando Bash en este caso,podemos usar bucles,variables,comentarios,etc como si fuera un script,en este caso veremos como ejecutar un programa un cierto numero de veces usando for,el bucle for:

for loop
Desde usar una simple aplicación hasta usarla para administrar el sistema:

Por ejemplo abrir tres terminales con comando en una sola linea:

lxterminal; lxterminal; lxterminal;

Con looping

for i in 1 2 3; do lxterminal; done

Abrir 100 terminales con un solo comando:

for i in {1..100}; do lxterminal; done

Eso parecería un troyano pero es un ejemplo del poder de los bucles,otro ejemplo es algo que me paso y apuesto a que a muchos también:

Para checar la conexión de Internet sea cableada o por lan se usa ping,pero aveces no tenemos conexión por que algo no esta bien configurado,sea el dhcp o nuestro router o cualquier cosa y en lo que le movemos al router o al a configuración, necesitamos ver si reacciona y por ejemplo esto lo checa:


for i in {1..100}; do ping www.google.com; sleep 1 ; done


A mi en lo personal me gusta mas usar el $PS2:

Podemos usar bucles en cualquier momento para resolver muchos tipos de problemas,solo es cuestión de usarlos bien.

Pero sirve para muchas cosas, eso es todo :D
Leer más...

Tutorial funciones python 3 desde Unix

Este blog trata sobre muchas cosas,muchas desde iOS y Linux hasta programación de scripting,en este caso veremos python ya que últimamente ya no había escrito nada últimamente en esta ocasión veremos las funciones de python, únicamente eso ya que en una entrada pasada mostré como usarlas pero no nos adentramos mucho,en esta ocasión si nos adentraremos mas sobre lo mas importante de usar funciones,de hecho dividiré esta información en dos entradas y esta es la primera parte:

Las funciones son partes de código que usamos varias veces en el mismo,ya que una función la podemos definir una vez pero llamarla todas las que sea necesario,por ejemplo tenemos que hacer lo siguiente:

Tenemos nuestra edad,la fecha de nacimiento, después lo que queremos es saber cuantas horas hemos vivido,esto seria un poco complicado ya que tenemos que definir los dias de los meses,muchas estructuras selectivas y demás cosas, así que solo haremos que calcule nuestra edad sacando el dato de la edad ingresado por nosotros y la fecha actual sacada de un modulo,esta la multiplicara por 365 dias de cada año y 24 horas de cada dia,para saber cuantas horas habrá uno vivido cuanto cumpla dicha edad si no es que ya la cumplio(a eso me refiero con estructuras selectivas),pero también queremos hacerlo para jugar,por ejemplo le hacemos el test a un pariente o a alguien,osea los datos serian distintos:

Ese es el problema,facil el problema porque solo trata de algunas operaciones aritmeticas:

Por ejemplo esta seria la solución pero para una sola fecha de nacimiento:


#!/usr/bin/env python3

from datetime import datetime # Importamos el tiempo actual

nacimiento = numeros # Define el año en que naciste 

fecha = datetime.now()

ahora = fecha.year

vida = ahora - nacimiento

print ("A tus ", vida, "años habas vivido", vida * 365 * 24,"horas")





Bien como vemos es un ejemplo,para saber la fecha exacta debemos definir el mes y dia y hora,luego hacer una operación de resta sobre estructuras selectivas para tener el dato exacto.

El hecho es que para hacer esto de nuevo con una nueva persona o un nuevo dato tendriamos que hacerlo de nuevo,o por lo menos definir la fecha nuevamente, vida y print:

Por ejemplo(les pongo en rojo todo lo que tendríamos que modificar) para añadir otra persona :


#!/usr/bin/env python3

from datetime import datetime # Importamos el tiempo actual

nacimiento1 = numeros # Define el año de la persona 1

nacimiento2 = numeros # Define el año de la persona 2


fecha = datetime.now()

ahora = fecha.year

vida1 = ahora - nacimiento1

vida2 = ahora - nacimiento2


print ("A tus ", vida1, "años habas vivido", vida1 * 365 * 24,"horas") # Imprime la persona 1

print ("A tus ", vida2, "años habas vivido", vida2 * 365 * 24,"horas") # Imprime la persona 2

Esto seria muy malo y muy mala practica porque para eso existen las funciones,asi que vamos a ver como son y como funcionan para reducir ese codigo o algoritmos de ese tipo a un codigo simple,limpio y funcional:



Para empezar las funciones en python se definen con def,de ingles defining tambien llevan parametros y el freno de la sintaxis se define por espacios,ya que en Perl,C o javascript la sintaxis para terminar una linea es punto y coma (;), aquí en python la estructura de funciones y de todo se define por espacios:

En C:

#include <stdio.h>


int main()
{
    printf ( "También escribo en C\n" );
    return 0;
}

En Perl:

#!/usr/bin/env perl

&hola("Hola","Mundo")

sub hola {

my ($h,$m) = @_;

print "Y en Perl :D\n";

print "$h $m\n";

}


Como podemos ver aqui los espacios de reconocimiento de terminacion de linea son definidos por (;),en python como dije son definidos por espacios,pero solo en funciones,clases,estructuras selectivas,bulces u otros operadores de datos de ese tipo,no en todo se deb usar espacios,como en C o Perl se usa (;) en casi todas las lineas:


Vamos a definir nuestra primera funcion:

#!/usr/bin/env python3

# Primera funcion

def primera(n,l): # Le pasamos dos argumentos
      print ("Argumento 1: ", l,"\nArgumento 2: ", n)

# Llamamos la funcion

primera(2,"Texto") # Le pasamos los dos datos


Lo voy a explicar mas detalladamente:

def primera(n,l):
def : # def se usa para comenzar una nueva función,seguida de esta debe ir el nombre de dicha función y termina con dos puntos (:) para indicar que comienza el contenido de nuestra funcion

primera # Es el nombre de nuestra primera funcion,podemos usar el que gustemos

(n,l) # Dentro de estos parentesis definiremos el nombre de los valores que le pasaremos cuando llamemos la funcion,estos valores/variables son locales,solo serán y tendran este valor dentro de la misma funcion.


primera(2,"Texto")
primera # Si escribimos el nombre de la función ya lejos de su alcance(fuera de los espacios) python la llama a escena,si le definimos parámetros estos se los tenemos que pasar o de otra manera tendríamos que definirlos en la misma función,en este caso n es igual a 2 y l es igual a Texto ya dentro de la función.

Bien sabiendo esto podemos realizar el código del principio de nuevo pero con funciones:

#!/usr/bin/env python3

from datetime import datetime

fecha = datetime.now() # Variables
ahora = fecha.year # Globales

def calcula(nacimiento):

    vida = ahora - nacimiento
    print ("A tus ", vida, "años habras vivido", vida * 365 * 24, "horas") 

calcula(numeros) # Numero de primer persona
calcula(numeros) # Numero de segunda persona
calcula(numeros) # Numero de tercer persona
# Etc

Igual que en todos los lenguajes manejo mis datos como salida estándar en la consola desde print,a menos que nesesite usar ese dato para otra cosa,por ejemplo si quiero ese dato pero no lo quiero imprimir no necesariamente tengo que usar print para que devuelva un numero puedo imprimirlo desde la llamada de la funcion o incluso guardar el resultado en una variable:

Todo esto se logra con return que maneja la llamada de la función como el dato que regresa:

Por ejemplo necesitamos saber las horas pero necesitamos también multiplicarlos por los minutos:

#!/usr/bin/env python3

from datetime import datetime

fecha = datetime.now()

ahora = fecha.year    

def calcula(nacimiento):

    vida = ahora - nacimiento

    return vida * 365 * 24 # Ahora estamos regresando un valor al llamar a la funcion

persona1 = calcula(1990) # Convertimos el regreso de la funcion llamada en una variable
persona2 = calcula(1980) # Convertimos el regreso de la función llamada en una variable

print ("Dias vividos de la persona1 : ", persona1, "en minutos: ", persona1 * 60)
print ("Dias vividos de la persona1 : ", persona2, "en minutos: ", persona2 * 60)

De momento eso es todo,en la próxima parte hablaremos del alcance de las variables,usar diccionarios o listas en las funciones,definir variables desde funciones y de *args & **kwargs.
Leer más...

Multitarea de whited00r 5 en whited00r 6 ipod 1g

Hace tiempo que iba hacer este tutorial pero por decidía no lo hacia, así que aquí esta,por si no nos gusta la nueva multitasking de Whited00r 6,osea iOS 6 custom para nuestro ipod touch 1g,el hecho es que Whited00r creo su propio tweak y ya no incluyo el Darlo770 el mismo programador que creo el iOS 3 wallpapers y folders,la buena noticia es que podemos desactivar la multitarea de whited00r y instalar la de Darlo770 que en mi opinión es mejor que el nuevo tweak que incluyeron,bueno manos a la obra:

Tutorial

1.Abrimos la terminal



Y entramos a la configuración con el script en shell

escribimos

setup



Escribimos:

a

b

intro

Y elegimos lo que queramos con

y => si
n => no

Pero en FastAppSwitching le damos n



Ahora le damos

c

y

e



Para reiniciar el dispositivo.

Ya reiniciado no tiene multitarea.

2.Ahora abrimos Cydia:

App Market -> Cydia

Vamos a:

Manejar -> Fuentes -> Editar -> Agregar

Y añadimos la repo de Witedoor

www.repod00r.com

www.repod00r.com/ 
Ya agregada entramos a la repo y buscamos;

iOS 3 Multitasking


Instalamos y esperamos

Si nos muestra la opción de respring la presionamos,si nos dice volver a cydia la presionamos y presionamos el botón Home

Luego vamos a Ajustes -> General -> Y le damos switch a Respring



Eso es todo ya tenemos la multitara normal,de momento solo funciona con las apps de multitarea del sistema,(safari,mail,musica)





Pero si queremos que sea una multitarea real:

Descargamos backgrounder de cydia :

Vamos a Cydia -> Manegar -> Fuentes -> Big Boss -> Buscamos Backgrounder


Ahora instalamos y hacemos un respring(si se tarda mucho,reiniciamos Home+Power)

Luego entramos a Ajustes -> Activator -> En cualquier lugar


Y elegimos la combinación que queramos,por ejemplo yo elijo dejar presionado el Home(de hecho es la configuración por defecto)

Ahora abrimos una app,dejamos presionado el home y se queda en multitarea:



Sea la que sea :D

Leer más...

sábado, 6 de abril de 2013

Como crear un livecd de Gentoo con DE a nuestro gusto parte (III/III)

Esta ya es la ultima parte de estas tres entradas para crear nuestro propio sistema basado en Gentoo,y bueno lo que vamos ha hacer en esta entrada no es tan tardado,bueno eso depende de que queramos instalar ya que si solo queremos un sistema con el que viene en el livecd de Gentoo minimal no nos tome mucho tiempo pero si queremos KDE nos tomara días(dependiendo de nuestro hardware) y bueno vamos a comenzar:

Tutorial

Nota : Primero necesitas hacer los pasos de la entrada pasada :

Enlace

1.Compilar el kernel:

El kernel es el corazón del sistema, así que necesitamos configurarlo,en la entrada pasada ya descargamos las sources,pero aun no nos sirven de nada si no están compiladas en el sistema,primero que nada necesitamos entrar en el sistema enjaulado(se muestra como en las partes pasadas) , ahora nos pasamos a donde estan las sources:

cd /usr/src/linux
Aquí entraremos al menu de configuración del nucleo,escribimos

make menuconfig

Y entraremos a la configuración:

Esta es la parte mas "difícil" de instalar Gentoo en nuestro disco duro y en este caso un poco mas difícil al crear una .iso portable, así que mejor aqui le paramos :(



No no es cierto solo estoy ambientando para que no nos estresarmos :P.

Primero que nada no debemos preocuparnos,ya que esto es para aprender y para divertirnos un poco creando algo propio(con mucho apoyo de gentoo,porsupuesto) pero no se va ha hechar a perder nada ya que es un sistema enjaulado y el propio sistema enjaulado le podemos hacer un backup por si no nos sale podemos compilar el kernel del backup:

Para hacer backup:

1.Salimos del entorno enjaulado(se mostro como hacer en las entradas pasadas)

2.Hacemos cd a la carpeta donde tenemos las sources,por ejemplo yo las tengo en /root/live-gentoo

su

cd /root/live-gentoo



3.Creamos una carpeta:

mkdir backup-sources
4.Copiamos:

rsync --archive --hard-links sources /backup-sources
Nota:Se tarda un rato

Y de esta manera tenemos una copia de nuestro sistema antes de compilar el kernel,si no nos queda ahora hacemos la jaula en backup-sources,pero primero borramos la otra y creamos otra,para ir viendo hasta que quede.

Bien continuando, la configuración depende de nuestro hardware por lo cual no les puedo ayudar,solo les puedo dar la configuración que necesita para poder correr en modo live :

Un poco de copy & paste:


Archivo: Configuración básica del Kernel
  General setup  --->
    <*> Initial RAM filesystem and RAM disk (initramfs/initrd) support

  File systems  --->
    <*> Ext3 journalling file system support
    <*> Reiserfs support
    <*> JFS filesystem support
    <*> XFS filesystem support
    <*> Kernel automounter version 4 support (also supports v3)

    Miscellaneous filesystems  --->
      <*> SquashFS 4.0 - Squashed file system support

    CD-ROM/DVD Filesystems  --->
      <*> ISO 9660 CDROM file system support

    Pseudo filesystems  --->
      [*] Virtual memory file system support (former shm fs)

  Device Drivers  --->

    Block devices  --->
      <*> Loopback device support
      <*> RAM disk support

    ATA/ATAPI/MFM/RLL support  --->
      <*> Include IDE/ATAPI CDROM support



También les dejo estos manuales de compilación:


Solo es para que se guíen no compilen el kernel ni instalen nada como se muestra en las guías,solo hagan la configuración del kernel:



gentoo.org

Wrong Shell 

También de una vez les recomiendo que configuren los modulos de su tarjeta para que funcione Xorg:

Enlace 
Y la configuracion de Alsa para que tenga sonido y podamos ver videos escuchar musica,etc

Enlace
Acabando de configurar nos salimos y guardamos las configuraciones,

Nota: Otra cosa que se puede hacer es usar la configuración del kernel de un sistema ya listo,por ejemplo el de ubuntu,asiendo make oldconfig,solo que no lo recomiendo por varias cosas,una de ellas es que trae compilado mucho y para que nosotros compilemos lo que compilo canonical nos vamos a tardar horas.

Ya guardada la configuración compilamos;


make && make modules_install

Copiamos el kernel al /boot

32 bits:
 cp arch/i386/boot/bzImage /boot/vmlinuz

 64 bits:


cp arch/x86_64/boot/bzImage /boot/vmlinuz

Creamos un archivo initrd con genkernel:

genkernel initramfs


Esto nos crea un initramfs en nuestro /boot ahora lo renombrados initrd:

 mv /boot/initramfs-genkernel-*  /boot/initrd

Con eso ya podriamos iniciar nuestro sistema,pero no vamos mas aya vamos a instalar Xorg.

2.Primero que nada yo recomiendo hacer pruebas,asi que si nuestro kernel no esta bien de nada nos sirve así que pasa al paso 4 a menos que estes seguro que el kernel servirá sin ningún problema:

Nos metemos en nuestro make.conf y añadimos esto segun tu tarjeta de video:

nano /etc/portage/make.conf

Para todos:

# Para el soporte del ratón, teclado y touchpad SynapticsINPUT_DEVICES="evdev synaptics"

# Para tarjetas nVIDIAVIDEO_CARDS="nouveau"

# Para tarjetas AMD/ATI)VIDEO_CARDS="radeon"

# Para intelVIDEO_CARDS="intel"

Nos aseguramos que este udev en nuestro USE

echo "x11-base/xorg-server udev" >> /etc/portage/package.use


 Compilamos:

emerge xorg-server
Reiniciamos variables de entorno

env-update 
source /etc/profile

Podemos instalar un entorno mínimo para probar con startx


emerge twm xterm 
 3. Instalar nuestro DE

Como dije y he dicho Linux nos deja prácticamente crear un sistema operativo o por lo menos la interfaz grafica maquillarla de una manera brutal,o si no no habria tanto post en Internet de mi escritorio de enero,febrero,abril,etc así que aquí vamos a usar todo ese conocimiento de configuración para ponerle una interaz a este sistema, lo malo es que vamos a hacerlo a texto, a ciegas ya que no hay un lugar que diga clic derecho poner de fondo de pantalla,primero que nada ya tenemos el sistema operativo,ya tenemos el kernel,ya tenemos las X,ya solo falta nuestra interfaz y aplicacciones:

Yo voy a dejarle openbox,cuando pueda le pongo KDE,pero de momento un entorno mínimo esta bien ya que KDE no se que necesito mover para configurarlo,de hecho creo que se tiene que hacer a nivel sources,o sea modificando el código fuente,pero bueno,vamos con openbox:

Pero también nos falta el sonido de alsa:

Nota: Ya debemos tener el kernel listo para esto haya arriba esta la guia:

emerge alsa-utils
Configuramos

alsaconf

Añadimos al inicio a nivel boot

rc-update add alsasound boot

Como dije no quiero nada de KDE o qt asi que antes de todo añado esto a mi USE:

-qt -qt4

Con eso no existe qt para Gentoo,no es que no me guste,pero no lo uso.


Instalamos:


emerge -av openbox


Ahora unos programas:

Nota : Se tarda en instalar,pero podemos hacerlo en dias no tenemos porque hacer esto en un rato,y mientras mas compilemos menos necesitaremos.

tint2

Tutorial

Para poner fondo de pantalla usaremos feh que lo hace desde linea de comandos:

emerge -av feh

Un administrador de archivos: Pacmanfm

emerge -av pacmanfm

Un Navegador : Firefox-Bin

emerge -av firefox-bin

Una terminal: Lxterminal

emerge -av lxterminal

Un login manager: Slim

emerge -av slim 

Lo que se nos ocurra o lo que queramos,de momento dejo solo eso.

Ahora configuramos eso:

Si lo deseamos podemos crear un usuario alterno a root:


useradd -g users -G lp,wheel,audio,cdrom,portage -m nombre_usuario 

Y configuramos su contraseña

passwd nombre_usuario

También instalamos sudo:

emerge -av sudo

Configuramos:

Añadimos wheel al uso de sudo:

sed -i -e 's/# %wheel ALL=(ALL) ALL/%wheel ALL=(ALL) ALL/' /etc/sudoers

Para iniciar slim:

Cambiamos xdm por slim:

sed -i -e 's/DISPLAYMANAGER="xdm"/DISPLAYMANAGER="slim"/'  /etc/conf.d/xdm

Ahora configuramos

nano /etc/slim.conf

Buscamos:

login_cmd           exec /bin/bash -login /usr/share/slim/Xsession %session

Y lo comentamos,ahora descomentamos:

login_cmd           exec /bin/bash -login ~/.xinitrc %session
Para que ejecute lo de nuestro .xinitrc

También le podemos poner un fondo personalizado:

Metemos una imagen a nuestro sistema enjaulado,o varias imagenes (se puede desde el sistema real en modo root) por ejemplo en una careta que se wallpapers y que este en /usr/share/

Ahora borramos el fondo original

/usr/share/slim/themes/default/background.png

Y copiamos uno de nuestras imagenes:

cp /usr/share/wallapers/imagen.png /usr/share/slim/themes/default/background.png

Ahora configuramos nuestro .xinitrc

Para root en mi caso openbox:


echo "exec openbox-session" >> ~/.xinitrc

Para un usuario creado:

echo "exec openbox-session" >> ~nombre_usurio/.xinitrc

chown nombre_usuario ~nombre_usurio/.xinitrc

Y por ultimo configuramos el inicio de openbox:

Para root:

nano ~/.config/openbox/autostart.sh

Para un usuario creado:


nano ~nombre_usuario/.config/openbox/autostart.sh
Cuando terminemos:

chown nombre_usuario ~nombre_usuario/.config/openbox/autostart.sh

Configuracion:


Definimos nuestro idioma:

En mi caso :


setxkbmap latam &

Iniciamos tint2:

tint2 &
Ponemos un fondo de pantalla:

 feh --bg-scale /usr/share/wallapers/imagen.png


 Eso es todo, también podemos instalar conky,un dock,etc,lo que queramos.

Así dejo mi entorno de escritorio,despues le pongo temas de gtk,obmenu,etc,esto solo es una prueba.

Para otros entornos estan en la pagina de Gentoo:

Gnome

LXDE

KDE 

4.Instalar grub y iniciar:

Primero vamos a hacer limpieza para que pese menos nuestra .iso ya que en este momento el directorio que estamos usando debe pesar mas de 2gb,asi que borramos las locales innecesarias:


nano  /etc/locale.nopurge


Yo recomiendo dejar la locale de ingles y nuestra locale,por ejemplo

la-latin1es_MX.UTF-8 UTF-8enen_US.UTF-8

Ya editado ejecutamos:


localepurge && makewhatis -u

También borramos los archivos de extension .keep

find / -xdev -name ".keep" -print -exec rm {} \;
Ahora si instalamos grub

emerge grub
Editamos el menu de configuracion

nano /boot/grub/menu.lst

Y metemos esta configuración,con el nombre que queramos y el tiempo que queramos por ejemplo:

Enlace 
Borramos el enlace simbolico y renombramos grub.conf

Así se puede:

cd /boot/grub/ && cat menu.lst >  grub.conf ; rm menu.lst
 Listo nuestra distribucion.

Salimos

exit
Desmontamos todo,con el script(se mostró en las entradas pasadas)

Nos cambiamos al directorio donde tenemos las sources,el que mencione arriba,por ejemplo:

cd /root/live-gentoo/
Creamos un directorio target


mkdir -p target/files/source
Y copiamos:

rsync --archive --hard-links --quiet source/boot target/

rsync --archive --hard-links source/ target/files/source
Se tarda un rato.

El nombre source fue el que le pusimos en la primera parte de estos tutoriales,puede que le hayan puesto archivos,sources,etc el otro source es que acabamos de crear,no lo renombramos ni nada.

Borramos archivos,para aligerar un poco esto:


rm -rf target/files/source/var/run/*
rm -rf target/files/source/var/tmp/*
rm -rf target/files/source/var/cache/*
rm -rf target/files/source/var/log/*
rm -rf target/files/source/usr/portage
rm -rf target/files/source/etc/portage
rm -rf target/files/source/usr/src
rm -rf target/files/source/root/*
rm -rf target/files/source/tmp/*

Creamos una imagen  squashfs

mksquashfs target/files/source/ target/livecd.squashfs
 Creamos un archivo vacio para que monte los tmp's


 touch target/livecd
Creamos la .iso
mkisofs -no-emul-boot -boot-load-size 4 -boot-info-table -r -b boot/grub/stage2_eltorito -c boot.catalog -o nombre.iso -x files target/
Eso es todo :D

Una .iso de 270.mb

a
Ahora solo la quemamos:

Con brasero y el quemador de discos de Windows 7 no tube problemas con cd's y dvd's muestra todo como debe ser.

Pero con dd para quemar el .iso a un pendrive o memoria externa no me funciono,puede que este mal mi memoria porque no quema ni una .iso de ubuntu que tengo,pero con unetbootin no tube problema al quemar el .iso a un pedrive,eso si no nos muestra nuestro grub no muestra syslinux :(.



Fuentes y referencias:

Creación del .iso y la mayor parte del tutorial:

wiki.cecalc.ula.ve

Configuración de entorno y núcleo

gentoo.org/doc/es/



Leer más...

tint2 panel ligero para Linux

En Linux existen distintos entornos de escritorio para poder configurar nuestro escritorio como nosotros queramos,hay unos avanzados como gnome-panel hay otros muy avanzados como el de KDE,pero hay muchos paneles minimalistas que estan incluso por debajo(menos consumo de recursos) que lxpanel o xfcepanel,existen varios pero uno de los mas populares es tint2,un panel muy ligero y muy minimalista,tanto que debemos configurarlo en modo texto(tambien hay GUI),pero que nos puede quedar muy bien adaptado a nuestro entorno de escritorio:

Nota: Primero una advertencia, este panel esta hecho para poder funcionar con entornos mínimos LXDE,XFCE,openbox,fluxbox no lo he probado en Tilling Window Manager(Awesome,Notion,i3,etc) y en entornos pesados (gnome shell,kde,unity) va a dar problemas.


Tutorial

1.Instalamos

Ubuntu :

sudo apt-get install tint2
Archlinux:

sudo pacman -S tint2

Gentoo:

Tint2 minimo:

sudo emerge -av tint2
Tint2 con batería y configuración por GUI:

su

echo 'x11-misc/tint2 battery examples tint2conf' >> /etc/portage/package.use

sudo emerge  tint2 


Tint2 total(GUI completa,Bateria,lanzadores)

emerge subversion

mkdir ~/tint2 && cd ~/tint2

svn checkout http://tint2.googlecode.com/svn/trunk/ Tint2-read-only
cd tint2*

mkdir build

cd build

cmake -DCMAKE_INSTALL_PREFIX=/usr ../

make

sudo make install

Configuración:

Abrimos tint2:

En terminal

tint2 & exit

Si nos bajamos tint2 con GUI configurar es muy fácil solo buscamos en el menu tint2conf o en terminal

tint2conf & exit
o

tint2wizard & exit


Desde aquí podemos meter nuestra configuración, es muy facil como si fuera gnome-panel o el panel de KDE,tambien se puede hacer de modo texto pero  no voy a hablar de como configurar ya que es largo de explicar y ya teniendo la GUI no hay porque complicarnos, aquí un tutorial:

Enlace
Ahora ya tenemos panel para administrar las ventanas y ver la hora y bateria, también si implementamos systray nos mostrara la bandeja de aplicaciones(wicd,networkmanager,fusion-icon)

Ahora solo añadiremos un menu,un menu para poder acceder a nuestras app's,esto es opcional ya que por ejemplo openbox trae su propio menu en el escritorio pero,bueno asi es como queda:





Asi es,es un script en Perl + Gtk2 de trizen el programador al que le debemos Alsi,para usar:

Para sistemas no Arch:

Necesitamos usar Gtk2 y tener Perl/Gtk2:

sudo cpan Gtk2

También necesitamos Linux::DesktopFiles

sudo cpan Linux::DesktopFiles
Y descargar el script

Enlace
Para Arch

yaourt -S menutray
Y usamos:


Distros no Arch

perl script.pl --help
Veremos las opcines,por ejemplo para crear un menú con iconos:

perl script.pl -i

Para Arch

menutray

Las configuraciones las podemos están en :

~/.config/menutray/
Asi que en terminal

cd ~/.config/menutray/ && ls

Todo esta en Perl mi lenguaje nativo :P,pero casi no se necesita modificar nada porque todo es automático el único archivo que les recomiendo editar es config.pl

nano config.pl

Aquí cambiamos los valores de la configuración por ejemplo trae geany no editor nativo,yo no uso eso así que pongo gedit por ejemplo:


Ahora solo falta iniciarlos al inicio:

En openbox:

Editamos

nano ~/.config/openbox/autostart.sh
Escribimos:

tint2 &

perl script.pl -i &

En LXDE:

Editamos:

nano /etc/xdg/lxsession/LXDE/autostart
Escribimos:

@tint2 

@perl script.pl -i

Para Fluxbox no se :(

Asi que eso es todo :D
Leer más...

jueves, 4 de abril de 2013

Como agregar programas al menú de LXDE

En ocasiones instalamos un programa que no nos crea acceso al menu de LXDE y este menú no tiene de donde configurarce :O, así que mejor instalaremos gnome-panel :P,no no es necesario,el hecho es que hay un programa que hace esto,el cual es un .jar,pero yo no uso java para nada y muchos de ustedes puede que tampoco y menos con el 0day, iba a programar un programa similar pero en perl o python,pero no es necesario,organizar el menu se puede hacer muy fácil en modo texto,a esto me refiero a editar items,agregar nuevos y borrar:

Tutorial

1.Abrimos una terminal y tecleamos

cd /usr/share/applications && ls

 Los programas que esta aquí son los programas que están en el menu



Podemos editar el que nosotros queramos con


nano programa.desktop

Y nos sale mucha información.

También podemos hacerlo de modo grafico con gedit por ejemplo


gedit gedit.desktop & 

Nos trae mucha información en varios idiomas:



Pero a nosotros la que nos interesa son las siguientes linas,por si queremos modificar o añadir un programa:

[Desktop Entry]

Es el inicio del archivo de texto

Name=

Es el nombre que se mostrara en el menu:

Por ejemplo

Name=Navegador Web Firefox



Comment=

Es el toltip del item(el comentario que aparece al pasar el cursor arriba del elemento del menu)

Por ejemplo:

Comment=Firefox el mejor navegador

Exec=

Es el comando que se ejecuta,regularmente se ejecuta el ejecutable del programa,dicho programa que esta en una carpeta destinada para esto,por ejemplo:

Exec=firefox
Que esta en /usr/bin,esta ruta

/usr/bin/firefox

Si escribimos esto directamente en terminal nos lanza firefox,siempre y cuando el ejecutable se llame firefox,porque por ejemplo se puede llamar firefox-bin,Firefox,FIREFOX,etc y asi no funcionara,por eso escribi un script en bash que busca el ejecutable.lo que hace es:

1.Busca con which

2.Si no encuentra con which,busca con find en las carpetas donde regulamente se guardan los ejecutables,pero con el parametro que no le importe minusculas o mayusculas y que el nombre este en cualquier lugar,por ejemplo hasta encuentra:

navegadoFirefox-bin
Si solo buscas:

firefox
Se los dejo:

Enlace




Icon=

Es la ruta del icono o nombre del icono en el tema que estemos usando,debe ser ruta absoluta,por ejemplo

Icon=/home/user/Imagenes/icon.png

Terminal=

Esta es una variable boleana,osea de true o false,si es un programa tipo consola,es true o si no es false,en el caso de firefox:

Terminal=false

Type=

En esta variable definimos el tipo de programa, regularmente son aplicaciones:

Type=Application

O tambien hay tipo Console

Categories=

Es la categoria en la cual se va a guardar,por ejemplo:

Accesorios:

Utility

Graficos:

Graphics
Herramientas del sistema:

Filesystem
Internet:

Network

Oficina:

Office 

etc

Por ejemplo en firefox si lo queremos poner en oficina:

Categories=Office
Eso es todo,bueno casi pero es lo mas importante por ejemplo en este tutorial, instale Chrome en Gentoo sin tener nada que ver con el sistema y como se ve en la imagen de mi escritorio ya lo tengo en el menu,solo use esta configuración:


[Desktop Entry]
Name=Google Chrome
Comment=Google
Exec=chrome
Icon=/opt/chrome/opt/google/chrome/product_logo_128.png
Terminal=false
Type=Application
Encoding=UTF-8
Categories=Network;WebBrowser;

Asi que con eso podemos añadir programas o incluso script's al menu,para fácil ejecucion.

Leer más...

miércoles, 3 de abril de 2013

Como crear un livecd de Gentoo con DE a nuestro gusto parte (II/III)

Seguimos con la segunda parte de esta trilogia de crear nuestro propio live-cd de un sistema basado en gentoo con todas las apps y programas que nos gustan,incluyendo configuraciones del kernel y un entorno de escritorio,pido disculpas porque la primera parte fue hace como un mes,pero había tenido problemas con el Gentoo que tengo instalado en el disco duro y luego reinstalarlo y preparar el live-cd,y bueno de todas formas deje el enlace de la informacion original por si querian hacerlo desde ahi mismo sin depender de estos tutoriales.

Tutorial

Esta parte es la mas tardada de las tres,asi que pueden instalar un paquete cada vez cuando tengamos tiempo,ya que se compilan y es algo tardado(dependiendo de nuestro hardware),y bueno primero unos consejos o ayuda sobre Gentoo(por si no son usuarios)

1.Los parámetros de la compilación de nuestras aplicaciones se guardan en:

/etc/portage/make.conf
Aquí están guardadas las variables que usar emerge,las cuales hay muchas muy importantes las cuales son:

MAKEOPTS
Esta variable la definimos con el numero de procesadores + 1,por ejemplo si tenemos 2 procesadores esta variable debe ser definida así:

MAKEOPTS="-j3"
Al momento de compilar gcc usara esta configuración y esto también ayudara a la velocidad del proceso.

CFLAGS

y

CXXFLAGS

 Son las opciones de optimizacion de la compilación,por lo general se usa:

-O2 -pipe 

Para una maxima y segura optimizacion

Mas info

USE
La vaiable USE se usa para definir las opciones que usaremos en los paquetes en modo de llamar a otros paquetes,por ejemplo si instalamos ettercap,incluye modo gtk y modo texto o demas modos.

Si queremos que use gtk solo añadimos

gtk

A nuestro USE,pero si queremos que no use gtk,por ejemplo que no instale ettercap en modo gtk solo añadimos a nuestro USE:

-gtk

Esto hara que no use gtk para nada y en otro ejemplo tambien podriamos construir un sistema libre de qt añadiendo -qt a nuestro USE:

Antes de instalar un programa en Gentoo podemos ver cuales son los parametros USE que podemos usar con:

emerge -pv programa

ACCEPT_KEYWORDS
Esta variable se usa para definir los programas que usaremos,por ejemplo para usar programas de x86 estables se usa

x86

Para usar programas x86 inestables se usa:

~x86

Igual con amd,o otras arquitecturas,por ejemplo si tenemos x86 en nuestro parámetro ACCEPT_KEYWORDS nos instalaría gimp 2.6,o el kernel 3.6 pero si tenemos ~x86 nos instalaría gimp 2.8 o kernel 3.8.

ACCEPT_LICENSE
Esta variable se usa para aceptar las licencias de software,por ejemplo si queremos aceptar solo licencias GPL lo definimos asi(no recuerdo cual es la variable para licencia GPL), o si queremos aceptar todas las licencias,BSD,GPL o dlj como es el caso de Sun,solo escribimos

 ACCEPT_LICENSE="*"

También tenemos

GENTOO_MIRRORS

 y

SYNC

Las cuales es para definir nuestros mirrors.

Por ultimo tenemos  la variable

LANG
Que es para definir el idioma en la cual se instalar nuestros programas,podemos usar por ejemplo es o en,en mi caso uso


LANG="es_MX.UTF-8"
Tambien encontraremos mas variables al meternos mas a fondo en esto,como por ejemplo hay una variable para definir si usaremos python 2 o python 3 en nuestros programas,en mi caso uso 3.2

PYTHON_TARGETS="python3_2"
Les dejo este make.conf

Enlace
2.Encontre algunos problemas de dependencias ya que al descargar starge3 se nos descarga un sistema,con carpetas del sistema y archivos ya instalados,pero al descargar o hacerle un update a portage se nos crea una lista de actualizaciones,por lo cual nos actualizara algunos programas,hasta aqui bien,pero lo que pasa es que esos programas necesitan del kernel y necesitamos instalar el kernel,pero para instalar el kernel necesitamos instalar esos programas :S

Así que lo que podemos hacer es evitar que se actualice y instalar el kernel

Para eso lo que debemos hacer es meter la versión que tenemos instalada en

/etc/portage/profile/package.provided
3. Necesitamos hacer chrooting  para ello prepare unos script's los cuales les hicieron una modificación una de las lectoras del sitio(para los usuarios de gentoo)

Enlace
Y podemos montar fácilmente todo lo necesario,para los que usen otro sistema pueden usar los script's que escribí originalmente:

Montar:

http://pastebin.com/wt7tVKx8

Desmontar:

http://pastebin.com/bhKjhkZu
El tutorial lo deben hacer despues de haber hecho el primero

Enlace
Ahora si :

Tutorial

1.Necesitamos instalar los paquetetes necesarios,primero hacemos chrooting:

por ejemplo yo le puse mount.sh al script de gentoo,asi que escribimos

sudo bash mount.sh -m


O para otras distros

Yo le puse mount.sh(en ejemplo)

sudo bash mount.sh

Ya en Gentoo enjaulado instalamos lo necesario,pero primero usamos el make.conf que les deje arriba:

nano /etc/portage/make.conf
Ahora instalamos,les dejo los paquetes uno por uno

Primero las fuentes del kernel(aunque no lo compilaremos en esta ocasion)

emerge -av gentoo-sources
Aquí se descargaran cerca de 57 paquetes,puede que de errores con udev(como en mi caso) ya que lo mas seguro es que quiera actualizarlo,si es asi solo checamos udev o el paquete que de problemas:

emerge -s udev
Y mandamos la versión que tenemos a


/etc/portage/profile/package.provided
Por ejemplo yo evite que actualizara sys-fs/udev-171-r9

Y de esta manera ya podemos descargar las fuentes del kernel,cuando acabemos de descargar el kernel,borramos los proividos:

echo "" > /etc/portage/profile/package.provided
Ahora si instalamos uno por uno:


emerge -av localepurge 
emerge -av genkernel 
emerge -av gentoolkit 
emerge -av dmraid 
emerge -av livecd-tools 
emerge -av scripts
O si tenemos buen CPU y tiempo podemos hacer una compilación y descarga en paralelo


emerge --jobs 5 localepurge genkernel gentoolkit dmraid livecd-tools scripts
Se va a tardar mucho,yo descargue todo en una semana,un paquete por día,pero pues no me apresure,con buen equipo en 3horas o menos tenemos todo listo.

Ahora vamos a configurar algunas cuestiones:

nano /etc/fstab
En el fstab de nuestro live debe ir asi

/dev/loop0              /               squashfs        defaults             0 0
none                    /proc           proc              defaults             0 0
none                    /dev/shm     tmpfs            defaults             0 0

En hosts

nano /etc/hosts

127.0.0.1     localhost
127.0.0.1     nombre_livecd.localdomain     nombre_livecd


En hostname

nano  /etc/conf.d/hostname


 HOSTNAME="nombre_livecd"



Establecemos hora y zona:

Buscamos nuestro país

ls /usr/share/zoneinfo/

Y lo copiamos a /etc/localtime(por ejemplo):

cp /usr/share/zoneinfo/America/Mexico_City /etc/localtime

También :

echo "America/Mexico_City" > /etc/timezone


Verifica que este tu configuración de tiempo en /etc/timezone

cat /etc/timezone

Y tu teclado

nano -w /etc/conf.d/keymaps

En la variable keymap es donde debe ir tu keymap de tu teclado(us,es,etc)

En mi caso:

la-latin1

Configurar el idioma

nano -w /etc/locale.gen

Descomenta tu idioma (de preferencia UTF-8)

En mi caso


es_MX.UTF-8 UTF-8


Si no esta tu pais,mas información aqui:

http://www.gentoo.org/doc/es/utf-8.xml

 Y generamos

locale-gen

Y también creamos este archivo

nano /etc/env.d/02locale

Y escribimos:

En mi caso:

LANG="es_MX.UTF-8"
LC_COLLATE="C"

Bien,con eso terminamos esta parte,en la ultima parte compilaremos el kernel,instalaremos Xorg,un DE y algunos programas,ademas de configurar el arranque y crear el .iso :D,yo ya lo termine,por eso me tarde:

Salimos:


exit

Y ejecutamos:

Gentoo


sudo bash mount.sh -d

Otras distros,yo le puse umount.sh al script


sudo bash umount.sh

Como dije yo ya lo acabe(tenia que hacer pruebas antes), aquí una captura arrancando desde modo live :D



Leer más...

martes, 2 de abril de 2013

Probando ArchBSD

Como saben hace un tiempo que se esta hablando de Arch basado en BSD o usando BSD el grandioso BSD(aunque me digan fanboy),pero el hecho es que estoy en BSD antes que Linux y si hay un sistema bueno, rápido y estable en Linux es Arch,pero ahora,todo eso con el "alma" de Beastie :O.



Bien como saben o si no saben ya esta disponible la .iso de ArchBSD(64 bits) en su ftp desde hace como un mes,aunque generaron una actualización hoy:


##
## Arch Linux repository mirrorlist
## Generated on 2013-04-02
##



Enlace

La descargue y la probé en mi quina x86_64,en la cual tengo Windows 7 64 bits,hiba a usar VirtualBox pero es una falta total de respeto probar BSD en una virtal machine de Windows, así que directo desde el BIOS:

Nota: Tome algunas fotos con mi Android y se ven feas,pero bueno,lo bueno es que es un hardware real:


Como no lo instale lo probe muy poco pero me dejo muy buenas impresiones,para empezar el arranque es muy rapido,no tanto como el systemd de Archlinux(instalado) pero es muy veloz en comparación a el .iso del 2012 de netinstall de Archlinux(igual o mas rapido), también lo que me llamo la atención es que tiene un loader muy similar al de Gentoo(letras blancas con comprobadores verdes),pero bueno eso es lo de menos.

En el caso del acceso la contraseña es root y nada de contraseña,para entrar a la Shell de chs,en este caso no implementaron ni zsh de Arch ni tcsh o sh que dejan en FreeBSD,si no que csh una shell muy "amable" y fácil de usar,aunque con sus propias configuraciones,en el ~/.cshrc.

El archivo de guia de instalación que esta en esta pagina:

Enlace
El cual es igual de sencillo que el de Archlinux,bueno entre comillas,o mas bien dicho no es tan complicado:

1.Para empezar usa gpart GnuParted,el cual es un poco mas complicado de usar que fdisk o cfdisk,pero bueno eso en mi opinión personal.

2.Usa particiones da en vez de sda(en comparación con Archlinux),osea que si tenemos instalado un Linux o Windows necesitaremos hacer algunas moodificaciones(como con FreeBSD).

3.Usa el script de instalación pacstrap de Archlinux para instalar el sistema base en nuestro HDD

4. También tenemos que hacer un entorno enjaulado y configurar algunas cuestiones(igual que en Archlinux)

Pues esa es la guia,la cual podemos ver con

less ~/install.txt

O desde la web que menciones arriba.

Al igual que FreeBSD tenemos el editor VI y el sencillo ee,para poder modificar lo que necesitemos :D


ee en ArchBSD


Para conectarnos a internet,solo debemos hacer dhclient a nuestra interfaz(cableada)

Para usar wlan0

Usen este tutorial
Aqui yo usando wlan0 en ArchBSD



Y por ejemplo aquí usando pacman en BSD o mejor dicho ArchBSD con FreeBSD-9.1-stable =O



No se instalo nada ya que el disco es solo para lectura,pero bueno se puede ver a pacman en acción, pues eso es todo y me he quedado muy impresionado,de momento esta .iso es para testers y no es muy recomendable instalar,a menos que seamos testers o nos sobre una HDD o nos guste mucho Arch y mucho BSD,como en mi caso,solo que yo no lo hice por no borrar el windows,que aun sigue siendo una dependencia desde que perdí OS X ¬_¬.

Como vieron es una reseña muy pequeña pero tenia que hablar sobre esto,auque no tenga que ver con la tematica del sitio(tutoriales) pero bueno cuando esten las .isos de x86 o este mas estable, haré un tutorial de instalación :D

Saludos
Leer más...