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

miércoles, 24 de abril de 2013

Como instalar Burg en Archlinux

Burg es muchas cosas para empezar es grub alrevez :

echo "grub" | perl -ne 'chomp;print scalar reverse . "\n";'
Bueno eso es burg,grub al revez ,ademas de eso burg es un cargador de arranque con el cual podemos lanzar varios sistemas operativos como grub o Lilo o syslinux, pero a diferencia de grub, Burg es un cargador modo gráfico como el de OSX(Boot Camp apple):

En mi caso Burg queda así:



Nona: Salen tres Arch porque son varias versiones del kernel.

Otro buen motivo de instalar Burg en Archlinux es que no da el error de locales de grub 2,asi que queda bien sin error y elegante :D.

Tutorial

1.Instalamos yaourt

Primero editamos el archivo de configuración de pacman:

En terminal

sudo nano /etc/pacman.conf

Y añadimos:

Para 32 bit:


[archlinuxfr]
SigLevel = Optional TrustAll
Server = http://repo.archlinux.fr/i686



Para 64 bit:



[archlinuxfr]
SigLevel = Optional TrustAll
Server = http://repo.archlinux.fr/x86_64


Guardamos y salimos:

ctrl + o

ctrl + x

Instalamos :

sudo pacman -Sy yaourt 
Ahora instalamos Burg:

Para Bios:

yaourt -S burg-bios-bzr
Para Efi:

No lo he probado(no suso efi)

yaourt -S burg-efi-x86_64-bzr

Nota: Se tarda un rato ya que compila burg y algunas dependencias.

Ahora instamos los temas:

yaourt -S burg-themes burg-themes-extras

Ahora instalamos Burg en el MBR:

sudo burg-install /dev/sda --no-floppy

Con eso ya tenemos instalado Burg en vez de Grub,ahora debemos crear un archivo de configuración:

sudo burg-mkconfig -o /boot/burg/burg.cfg
Y listo :D

Solo nos falta configurar el tema y tamaño de la pantalla:

Abrimos dos terminales:

En la primera vemos la calidad de nuestra pantalla(si no la sabemos):

xrandr -q | grep --color current
En mi caso es una netbook 1024x600


En la segunda terminal editamos la configuracion:

sudo nano /boot/burg/burg.cfg

Buscamos la variable set gfxmode y lo cambiamos por el tamaño de nuestra pantalla:

Por ejemplo:


set gfxmode=1024x600

Ahora en la primera terminal listamos los temas:

ls /boot/burg/themes
Y en la segunda terminal buscamos la variable set theme_name y le ponemos el nombre del tema.

Por ejemplo:

La primera captura es un tema que se llama coffee y queda así:

set theme_name=coffee

A mi en especial me gusto el tema minimal:




Podemos probar con burg-emu


Si no nos sale como este(como debe) algo anda mal y no apagen porque si no se mueve o no podemos elegir nada,asi saldra en el sistema real y no podremos iniciar(todos los sistemas) y sera un problema asi que hasta que lo veamos así,no reiniciemos,a mi me paso y solucione con una nueva generación de configuración:

sudo burg-mkconfig -o /boot/burg/burg.cfg




Si a la hora del arranque se ve borroso,es porque nuestra pantalla no es compatible,podemos presiona F3 y vemos las resoluciones,elegimos la mejor y configuramos con esa el archivo de configuración:

También lo podemos ver mas a detalle y eliminar la carga de otros kernels(para que no haya tantos iconos),ya que en caso es realmente así:



sudo nano  /boot/burg/burg.cfg


Eso es todo :D

Fuente : wiki.archlinux.org/index.php/BURG
Leer más...

lunes, 15 de abril de 2013

Como reconocer WIndows en el grub de Archlinux

Bueno no es que use windows,pero pues si,aunque sea Unixero en ocasiones debo usar windows,en muchas ocasiones ya que casi toda la gente que conozco usa windows y a todos los lugares donde voy :O

Pero en fin hay que saber de todo y si usamos Arch también podemos usar Windows así que no hay problemas :D

Tutorial

Windows usa el formato NTFS para su partición y debe estar en una partición primaria , en mi caso tengo Arch,Gentoo y Slackware junto a WIndows 7 ultimate:

En la partición /dev/sda3:





Podemos ver con Gparted o desde consola con:

sudo fdisk -l



Ahora abrimos el archivo  /etc/grub.d/40_custom

sudo nano   /etc/grub.d/40_custom

Y añadimos:


menuentry "Windows 7 Ultimate" {
set root=(hd0,3)
chainloader (hd0,3)+1
}

Explico:

Windows 7 Ultimate Es el nombre que le daremos al sistema.

hd0,3 Es la partición

hd0 es /dev/sda 

o

hd0 es /dev/hda


0 es el numero, en mi caso fue /sda3 y es 3,sda2 es 2,etc:

chainloader Cede el proceso de arranque a su cargador de arranque nativo(inicia windows)


Con eso configurado creamos una nueva configuración:

sudo grub-mkconfig -o /boot/grub/grub.cfg
Y listo :D

Para el EFI vean esta documentacion:

wiki.archlinux.org/index.php/GRUB2
Leer más...

jueves, 11 de abril de 2013

Tutorial funciones python 3 parte 2


Seguimos con los tutoriales de python,vamos a acabar con funciones para en otro tutorial comenzar con clases y objetos,pero de momento veremos:

Alcance de variables

Listas y diccionarios como funciones

args* and **kwargs

Alcance de variables

1.Las variables son valores a los que asignamos un valor o otro valor para referirnos a dicho valor y poder usarlas,como por ejemplo:

x = 10

Ahí x ya no es x ya es 10,si lo llamamos como texto crudo(si que este envuelto en comillas)

Estas variables pueden cambiar su valor en cualquier parte del script/programa pero tienen solo un limite de alcance por ejemplo las variables que definamos en una función se consideran locales y no las podemos modificar fuera de esta:

#!/usr/bin/env python3
def localv():
      x = 10

print (x)

En este ejemplo estamos llamando una variable local,que solo funciona en la funcion local,para el programa general es invisible,no podemos mutar su valor desde el script principal,podemos hacer practicas como estas:

#!/usr/bin/env python3
def localv():
      x = 10
      return x

x = localv()
print (x)

Lo que acabamos de hacer es usar la función como un solo valor de regreso,asignarlo a una variable  global y imprimirla,esto se puede hacer en ciertos casos,pero no es necesario ya que para usar solo un valor podemos definirlo directamente desde el script principal,osea las llamadas variables globales,que pueden ser vistas y modificadas en todo el script así como desde una función solo que en la función tenemos que indicar que es una variable global o sera tratada como local:

#!/usr/bin/env python3
def localv():
      x = 10
      return x
x = 5 # Variable global
print (x)
# Intentamos Cambiar el valor desde la funcion,solo con llamarla:
print (localv)
# Llamamos nuevamente la variable global
print (x) 

No pasa nada,sin embargo usamos la función de python global y podemos trabajar con variables globales desde python:

La sintaxis :

global variable

Ejemplo:

#!/usr/bin/env python3
def localv():
      global x
 # Le decimos a python que usaremos la variable global x
      x = 10
      return x

x = 5 # Variable global
 con valor de 5
print (x)
# Cambiamos el valor desde la funcion,solo con llamarla:
print (localv())
# Llamamos nuevamente la variable global
print (x)

Ahora si,x pasa al valor 10 que se le asigna desde la función local :D

Algo que se debe hacer que si no,usamos la variable global en la funcion,para modificar su valor,no debemos definirla,por ejemplo si queremos regresar x desde la funcion no necesitamos definir nada,ya que x ya esta definida en el script principal:

#!/usr/bin/env python3
def localv():
      return x
 # En ningun momento de la funcion definimos x

x = 5 # Variable global
print (x)
# Llamamos x con una funcion

print (localv())
# Llamamos nuevamente la variable global
print (x)

Las variables tambien las podemos definir desde el paso de parametros al cuerpo de la funcion,por ejemplo podemos definir una variable es esta manera dentro de una funcion:

def ejemplo():
      x = 10
      print (x)

O podemos hacerlo de esta manera:

def ejemplo(x):
      print (x)

ejemplo(10)

O de esta manera,la cual es la que menciono:

def manera(y,x = 10):
      print (x)

manera(1)

De esa manera podemos definir una variable,local para nuestra funcion desde el paso de argumentos,si definirla en el cuerpo del script global.


Listas y diccionarios como funciones

Las listas y los diccionarios se pueden usar para llamar funciones y al igual que una variable con return,no hay mucho que decir,sobre los diccionarios aqui un turial:

Enlace

Ahora podemos usar el retorno de una funcion como la llave de un diccionario y llamarla desde print


#!/usr/bin/env python3

def suma(y,x = 10):
    return y + x

diccionario = {
'entero' : 10,
'cadena' : "String",
'real' : 3.23,
'funcion' : suma(2)
}

print ("Mi funcion: %s " % (diccionario['funcion']))



"Muy facil" :D

Ahora a la inversa,usando un diccionario en una adentro de una funcion:

Al igual que las variables podemos definir diccionarios en nuestro paso de argumentos,o adentro de la funcion(en el cuerpo de la funcion), en este caso voy a definir un diccionario vació en el paso de argumentos y lo voy a llenar en el cuerpo de la funcion,usando como valor de nuestras llaves los argumentos que le pasaremos en el diccionario global,para obtener el mismo resultado a la de llamar la llave funcion de nuestro diccionario global:

#!/usr/bin/env python3

def suma(y,x = 10,diccionario = {}):
    diccionario['x'] = x
    diccionario['y'] = y
    return diccionario['y'] + diccionario['x']

diccionario = {
'entero' : 10,
'cadena' : "String",
'real' : 3.23,
'funcion' : suma(2)
}

print ("Mi funcion: %s " % (diccionario['funcion']))

El mismo resultado :D

Ahora igual con listas:

Podemos definir el valor de una lista,con el valor del retorno de una funcion y igual que en los diccionarios podemos definir una lista adentro de una funcion:


#!/usr/bin/env python3

def suma(y,x = 10):
    lista = [y,x]
 # Definimos una lista local
    return lista[0] + lista[1]
 # Regresamos los valores sumados

lista = [ suma(3),2 ]
 # Definimos una lista global con el primer valor como una funcion

print ("Mi funcion: %s " % (lista[0]))

args* and **kwargs

Hemos hablado del alcance de  las variables dentro de nuestro script,y lo hemos visto a la hora de definir nuestras variables,pero tambien debemos aprender a definirlas bien y desde donde,ya que vimos esto:

def ejemplo():
      x = 10
      print (x)

O podemos hacerlo de esta manera:

def ejemplo(x):
      print (x)

ejemplo(10)

O de esta manera:

def manera(y,x = 10):
      print (x)

manera(1)

Otra mas:

def manera(y,x = 10):
      print (x)

numero = 1 # Variable global

manera(numero) # Pasamos valor de variable global a la funcion

Tambien de esta manera que es la que digo ahora

def manera():
      print (x)

manera(x = 1) # Variable local definida en ambito global

Como podemos ver definimos una variable que usaremos desde la llamada de la funcion,esto es muy bueno,porque si lo hacemos como el penúltimo ejemplo mandaremos una variable global a local y podemos cambiar su valor en cualquier momento:

def manera(numero,x = 10):
      print (numero)

numero = 1 # Variable global

manera(numero) # Pasamos valor de variable global a la funcion

numero = 10 # Cambiamos el valor

manera(numero) # Ya no es el mismo valor

Pero si lo hacemos asi:

#!/usr/bin/env python3

def manera(numero,x = 10):
      print (numero)

numero = 1 # Variable global

manera(numero = 2) # Definimos variable local desde ambito global

numero = 10 # Cambiamos el valor

manera(numero = 2) # Ya no pasa nada

Lo malo de esto es que debemos definir el valor cada vez,pero lo bueno es que no dependemos de variables globales,como ven podemos definir variables locales de muchas maneras,y no les digo como se hace realmente,porque no existe una definicion real,si fuera asi no existirían tantas formas,solo que debemos usar la que mas nos convenga,por ejemplo si necesitamos pasarle el regreso de una funcion de un modulo a una funcion,podemos definirla en una variable global primero y despues mandarla a la funcion,asi:

#!/usr/bin/env python3

import os
import time

def whoami(login):
    print ("Tu usario es %s" % (login))

Usuario = os.getlogin()

whoami(Usuario)

Ya que no es necesario hacer esto:

#!/usr/bin/env python3

import os
import time
  
def whoami(Usuario):
    print ("Tu usario es %s" % (Usuario))

whoami(Usuario = os.getlogin()) # Esto 

También funciona pero es muy incomodo,por lo menos en este caso,asi que vean bien cual es la forma de definición que les conviene mas para realizar lo que quieran ralizar.

Bien,como vemos podemos definir muchas cosas desde la llamada de la funcion,pero que tal si queremos definir muchas o definimos muchas :O

Por ejemplo :

llamando_funcion(1,3,4,534,345,23,324,234,23423,4234,23)

En la funcion pondríamos algo como:

def llamando_funcion(a,b,c,d,f,g,h,i,j,k,z):

Para este ejemplo entra perfecto *args,con *args podemos meter todo eso en un solo valor,llamado args y de tipo tupla,las tuplas son como las listas,de hecho son iguales,solo con un cambio que radica en muchos y en mucho su uso,es inmutable :(,no podemos cambiar su valor y se definen con parentesis en vez de corchetes,pero bueno hagan de cuenta que esto:

llamando_funcion(1,3,4,534,345,23,324,234,23423,4234,23)

Es esto:

tupla = (1,3,4,534,345,23,324,234,23423,4234,23)

Al llamar esto en la funcion:

def llamando_funcion(*args):

Se ve mejor y mas limpio que esto:

llamando_funcion(1,3,4,534,345,23,324,234,23423,4234,23)

Esto es automatico,al usar *args como parametro en la funcion nos convierte todos los argumetos que declaramos en la llamada a una tupla de nombre *args,y al igual que las listas llamamos asi:

tupla[numero]

Comenzando por el cero, aquí un ejemplo:

#!/usr/bin/env python3

def ejemplo(*args):
    print (args[0] + args[6])

ejemplo(1,2,3,4,5,6,7,8,9,0)

Como ven es sencillo, también podemos usar variables,listas,diccionarios,etc:

#!/usr/bin/env python3

def ejemplo(*args):
    print (args[0] + args[6])

variable = 6
lista = [2,3,4,5,1]

ejemplo(lista[4],2,3,4,5,6,variable,8,9,0)



Pero si queremos hacer esto:

ejemplo(var1 = 1,var2 = 2,var3 = 4,muchasvar = muchas)

Para eso esta **kwargs,ya que como *args nos devuelve una tupla,adivinen que nos devuelve **kwargs,un diccionario :D,que usa:

var1 como llave

y

1 como valor

En ese ejemplo,o por ejemplo:

#!/usr/bin/env python3

def ejemplo(**kwargs):
    print (kwargs['var1'] + kwargs['var2'])
    print (kwargs['muchasvar'])

muchas = "Muchos argumentos"

ejemplo(var1 = 1,var2 = 2,var3 = 4,muchasvar = muchas)

El hecho es solo tratar kwargs como un simple diccionario,tambien hay una cosa importate y es que no es necesario usar el nombre args y kwargs,aqui lo importante es usar los asteriscos (*)


#!/usr/bin/env python3

def ejemplo(**x):
    print (x['var1'] + x['var2'])
    print (x['muchasvar'])

muchas = "Muchos argumentos"

ejemplo(var1 = 1,var2 = 2,var3 = 4,muchasvar = muchas)


Eso es todo, en otra ocasión hablaremos de funciones lambda.

Leer más...

miércoles, 10 de abril de 2013

Como recuperar el grub en Archlinux


Hace poco perdi el grub en Archlinux porque borre Ubuntu,bueno el hecho es que tenia Arch solamente en mi pc y este tenia un grub para el solo,pero despues instale Ubuntu y el grub se quedo a cargo de ubuntu,por ultimo instale Gentoo pero aun asi se quedo el grub a cargo de Ubuntu,luego Ubuntu me fue muy mal,muy muy mal,muy lento,no me detectaba el wifi,de repente se trababa,muchos mensajes de error y bueno,adios Ubuntu y le doy la bienvenida a una vieja conocida,hola Slackware,despues Slackware me instalo Lilo y no estoy muy acustumbrado asi que regrese al primer grub del sistema que aun tenia instalado,al de Arch,porque ademas Lilo no me detectaba ni Gentoo ni Arch,asi que a recuperar el grub:

Tutorial


1.Entra en modo root desde un livedistro:

su
2.Ahora montamos la particion root de Arch,en mi caso elegi la /dev/sda2 en ext4,montaremos en /mnt por ejemplo:

mount -t ext4 /dev/sda2 /mnt
Montamos lo necesario:


mount -t proc   proc  /mnt/proc
mount -t sysfs  sys  /mnt/sys
mount -o bind   /dev  /mnt/dev

Nota: Necesitamos os-prober si no lo tenemos instalado en Arch necesitamos instalarlo,asi que necesitamos pasarle internet a la jaula que vamos a usar:


cp /etc/resolv.conf /mnt/etc/
3.Iniciamos la jaula:

chroot /mnt /bin/bash
Ahora,si tenemos la carpeta /boot en otra particion,tenemos que montarla ya que es donde esta el grub:

mount /boot
4. Instalamos os-prober

pacman -S os-prober
5.Reinstalamos el grub

grub-install /dev/sda
Y creamos un archivo de configuracion

grub-mkconfig -o /boot/grub/grub.cfg 


6.Salimos :

umount -a
exit
cd / 
umount -a

Reiniciamos y listo :D


Referencia y mas info:

wiki.archlinux.org/index.php/Reinstalling_GRUB


Leer más...

domingo, 7 de abril de 2013

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...

sábado, 6 de abril de 2013

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...

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...

sábado, 30 de marzo de 2013

Cómo formatear pendrive a FAT32 o NTFS desde Terminal Linux

Para dar formato a una memoria sea extraible o interna Linux nos ofrece un conjunto de herramientas amplio,para ext?,para fat,fat32{16},ntfs,jfs,xfs,etc lo podemos hacer gráficamente o desde consola/terminal en este caso Terminal porque en este sitio casi todo se hace desde terminal,al ser Unix :D

Primero que nada instalamos lo necesario:

Para NTFS y Fat:

Ubuntu:


sudo apt-get install ntfsprogs dosfstools

Arch:


sudo pacman -Sy ntfsprogs dosfstools



Gentoo:

sudo emerge -av ntfs3g dosfstools
Tutorial

1.Nos logeamos como root:

su

2.Conectamos nuestro pendrive y chequeamos

fdisk -l 

Es el que esta hasta abajo(regularmente)



Nota: Verifiquen el tamaño de la memoria,porque se formatean una partición del disco se va todo para abajo.

Regularmente dice la memoria en donde dice Disco:


fdisk -l | pcregrep -Mi "(disco)"








En mi caso es :

/dev/sdb

Lo desmontamos, si esta montado:

umount /dev/sdb 

Y formateamos:

En Fat32

mkfs.vfat -I -F 32 /dev/sdb 

Con nombre :

mkfs.vfat -I -F 32 -n nombre /dev/sdb 

En NTFS

Aqui es un poco diferente ya que tenemos que crear particiones,por ejemplo esto crea una con el tamaño de toda la memoria:

mkntfs -vf /dev/sdb1

Para forzar un formato

mkntfs -vF /dev/sdb1
También podemos usar

mkntfs asi:


mkfs -t ntfs  /dev/sdb1

Si tenemos problemas,podemos borrar todas las particiones internas del pendrive con cfdisk

cfdisk /dev/sdb

Pero creamos una partición primaria:




Y ahora si


mkntfs -vf /dev/sdb1

Esperamos y verificamos con cfdisk



Eso en teoria es lo que hacen programas como gparted o el de KDE. Eso es todo,ahora lo podemos montar

mount /dev/sdb1 /mnt
Eso es todo :D 

La prueba:

Eso lo hice en Gentoo,ahora conectamos el pendrive ntfs a Ubuntu y lo monta sin problemas



En NTFS

Ahora si eso es todo :D

Nota en lo de arriba de rojo(en donde esta el 1) podemos usar dos o tres,pero debemos crear la partición antes con cfdisk.
Leer más...

jueves, 28 de marzo de 2013

Crear .iso de Arch (baseline)

Como en el tutorial de Gentoo aprenderemos a crear una ISO de Arch a nuestro gusto,para luego quemarla y usarla en modo live,en este caso no haremos eso,solo mostrare este metodo de creacion de .isos de Arch que no es muy mencionado (por lo menos en la habla hispana),de lo que se trata es de crear un .iso de Arch para usarlo en modo live,usando un conjunto de script's de mkarchiso el trabajo es muy sencillo,mas sencillo que el de Gentoo,lo unico que tenemos que hacer es meter unos cuatos comandos en Terminal y bueno hay dos creaciones de iso's basados en Arch:

El baseline(este tutorial):

Crea un sistema automático básico con lo necesario para arrancar y funcionar,con syslinux como arranque.En este caso usaremos este para ejemplo.

El releng:

Crea un sistema totalmente hecho como lo queramos,con DE,paquetes de nuestra elección.

 Como dije en este caso usaremos baseline el cual es muy fácil y rápido pero por ende puede dar problemas,ami por ejemplo me dio problema al apagar el equipo y también no trae paquetes para administrar la red,es solo un ejemplo y dejo los enlaces abajo para que creen su releng a su gusto,en el futuro hare un tutorial de releng,pero de momento solo comparto esto.

Tutoial

0.Necesitan tener instalado Arch

Tutorial

1.Instalamos lo necesario

 sudo pacman -S archiso
2.Creamos un directorio donde trabajaremos los archivos

mkdir ~/archlive

3.Copiamos el perfil de baseline

cp -r /usr/share/archiso/configs/baseline/ ~/archlive 

4.Nos cambiamos de directorio y ejecutamos el script en bash que creara la .iso

cd ~/archlive/baseline

sudo ./build.sh -v


Comenzara a crear y configurar,todo es automático ¬_¬

Esperamos y vamos al directorio out de baseline

cd ~/archlive/baseline/out/

Y ahí esta el .iso

 Con lo mas nuevo de lo nuevo,pero es muy basico:

Lo quemamos,desde consola o con brasero,por ejemplo

Y lo iniciamos:

Eso es todo :(


En la pagina oficial nos dice como crear una iso con releng,hasta nos menciona que podemos crear un repositorio y añadirlo a pacman,con nuestros programas que hayamos hecho o que nos gusten,en mi caso he programado algunas cosas en Perl y C++,pero ya vere despues,de momento eso todo:

Fuente y mas info:
wiki.archlinux.org/index.php/Archiso
Leer más...