Personalizar la apariencia de Linux Mint

Personalizar la apariancia de Linux Mint 21 Cinammon

En este breve tutorial podrás realizar tres cambios a la apariencia de tu Linux Mint 21 Cinammont:

  • Cambiar el logotipo de inicio de Linux Mint 21 Cinammon.

  • Cambiar el ícono del menú inicio de Linux Mint.

  • Remplazar el logotipo de Linux Mint del inicio.

Las instrucciones están separadas con la finalidad de organizarlas y puedas aplicar las que tu prefieras o aplicarlas todas, así que comencemos:

Cambiar el logotipo de inicio de Linux Mint 21 Cinammon

¿Te gustaría cambiar el logotipo de inicio de Linux Mint? Solo debes seguir los siguientes pasos:
Primero: Localiza el directorio : /usr/share/plymouth/themes/mint-logo/
Lo que observarás son los logotipos de Linux Mint con una mínima diferencia entre uno y otro, esto es por que al reproducirse generan la animación que se visualiza en el arranque, por tanto, deberás realizar cada uno de los archivos que van del throbber-0001.png al throbber-0030.png con diseño de tu preferencia pero procurando que tenga una mínima diferencia entre uno y otro para que se pueda observar la animación a tu gusto.
NOTA: Cada imagen tiene 100px de ancho por 100px de alto y debe guardarse en formato .png con transparencia.

Segundo: Teniendo las 30 imagenes a tu gusto y con las anteriores especificaciones solo debes remplazar las originales por las nuevas. Para ello deberás tener permisos root , yo lo hago navegando hasta el directorio y con el botón derecho del mouse elijo la opción Abrir con permisos administrativos.

Tercero: Después de remplazar las imágenes solo debes ir a la consola y ejecutar el siguiente comando que permitirá actualizar: sudo update-initramfs -u

Cuarto: Eso es todo, así de rápido, económico y audaz. Ahora solo debes reiniciar tu computadora para ver la animación que realizaste.

Bonus: A continuación dejo un zip con los íconos de mundosica.com con los que puedes probar.

Logotipo animado de mundosica.com

Cambiar el ícono del menú inicio de Linux Mint.

¿Te gustaría cambiar el ícono del menú de inicio ?
Primero: Solo debes ir al menú que se encuentra en la esquina inferior izquierda y con el botón derecho del mouse elije la opción Configurar.
Segundo: En las opciones del menú debes verificar que tengas habilitada la opción Usar un ícono y una etiqueta personalizada.
Tercero: Debes dar clic en la opción Ícono, justo sobre el ícono de linux Min, de esta manera se ejecutará una ventana donde podrás elegir el ícono de tu preferencia o en las opciones de la izquierda podrás elegir la opción Lugares, de esta manera podrás navegar entre tus archivos para elegir el ícono que más te guste
NOTA: Te recomiendo tener un archivo en formato .svg o .png con 100px de ancho por 100px de alto. Ten en cuenta que por defecto el color del panel es negro así que busca o diseña un ícono que tenga contraste.

Eso es todo, ahora solo debes ir al menú inferior izquierdo y confirmar que el cambio fue aplicado.desktop mundosica.comRemplazar el logotipo de Linux Mint del inicio.

También puedes cambiar la imagen del splash que se visualiza justo cuando aparece el login, para remplazar dicha imagen solo debes:
Primero: Ir a Configuración del sistema—>Ventana de inicio de sesión (Necesitarás permisos root)

Segundo: En la opción Apariencia–>Fondo encontrarás la imagen de Linux Mint, solo debes dar clic sobre ella y podrás navegar para encontrar la imagen que más te guste, procura conocer cual es la resolución de tu monitor para tener preparada una imagen que cubra toda la resolución.
NOTA: recomiendo que el archivo a alegir sea un .svg

Ahí mismo en Color de fondo podrás cambiar el color por el de tu preferencia.

 

Eso es todo, siguiendo estos sencillos pasos puedes personalizar la apariencia de tu computadora sin instalar nada adicional. Ojalá sea de tu utilidad y si tienes una mejor opción para hacer estos cambios házmelo saber para compartir con la comunidad. Saludos y Byte.

 

Conocer información de hardware de nuestra computadora con GNU Linux

Hola, en la presente entrada encontrarás los comandos básicos para saber más de los componentes o hardware que tiene una computadora con GNU Linux, estos comandos te servirán para distribuciones basadas en Debian como Linux Mint o Ubuntu entre otras.

¿Que hago para conocer la información del procesador?

Solo ve a tu consola, copia y pega el siguiente comando:
cat /proc/cpuinfo

 

¿Que hago para conocer la información del procesador, arquitectura, Numero de procesadores?
Solo ve a tu consola, copia y pega el siguiente comando:

lscpu

 

¿Cuanta memoria libre tengo?

Ya sabes, solo ve a la todopoderosa consola y mete el siguiente comando:

free -h

 

No se cuanta memoria tengo  ¿quien podrá ayudarme?

De vuelta a la consula , copia y pega:

cat /proc/meminfo

 

Quiero saber el tamaño de mi disco duro y sus particiones, si, ya se, voy a la consola y meto el siguiente comando:
sudo lsblk -fm

 

Ahora, quiero conocer la información de disco duro especificando numero de cabezas, sectores y pistas.

Fácil, vamos a la consola y metemos el siguiente comando:
sudo fdisk -l

 

Qué ¿así de fácil?

Si, así de fácil.

via GIPHY

Haciendo un deploy con Git para una webApp

En ocasiones los clientes FTP suelen ser lentos conforme nuestras estructuras de archivos se vuelven complejas, por otra parte suele ser algo incomodo para un desarrollador estar saliendoce de entorno de lineas de comandos (CLI) para realza esta tarea.

El siguiente POST describe un mecanismo simple para realizar esta tarea utilizando, Git y una conexión SSH de un servidor Linux.

Consideraciones:

  1. Se considera que el lector cuenta con conocimientos básicos de Git, así como del manejo del CLI en entornos *nix.
  2. También que ya se cuenta con algún repositorio que contiene tu aplicación web, en este caso la describo como si estuviera en una carpeta con nombre app.
  3. Se cuenta con una cuenta de acceso SSH para el usuario user_x, en el servidor my.server.
  4. Para referirme a la carpeta destino en el servidor usaré /full_path/htdocs/

Creando la carpeta del repositorio remoto

Para crear esto necesitamos realizar un clone local con la opción --bare, esto sería con la siguiente instrucción:

git clone --bare app app.git

Esto hace que Git clone el repositorio app la opción --bare crea un directorio simple(bare), esto significa que no contendrá los archivos del repositorio, en cambio  contendrá los metadatos que Git requiere para trabajar, sí observamos el contenido de la carpeta resultante (/app.git) tendrá una estructura similar a:

app.git/
	|-- HEAD
	|-- config
	|-- description
	|-- hooks
	|-- info
	|-- objects q q
	|-- packed-refs
	`-- refs

	4 directories, 4 files

Para mayor info ver: https://mirrors.edge.kernel.org/pub/software/scm/git/docs/git-init.html

🔗 Creando el gancho al recibir cambios.

Git tiene con un mecanismo de ganchos (hooks), estos son scripts que están enganchados a diversos eventos, de tal forma que ¡son disparados 🔫 cuando dicho evento sucede!.

Para ligar un script a un evento de Git basta con crear el archivo con el nombre adecuado en la carpeta de hooks, esta carpeta generalmente ya contiene algunos ejemplos como se muestra a continuación:

app.git/hooks/
	|-- applypatch-msg.sample
	|-- commit-msg.sample
	|-- fsmonitor-watchman.sample
	|-- post-update.sample
	|-- pre-applypatch.sample
	|-- pre-commit.sample
	|-- pre-push.sample
	|-- pre-rebase.sample
	|-- pre-receive.sample
	|-- prepare-commit-msg.sample
	`-- update.sample

	0 directories, 11 files

Vemos que el sistema nos creó 11 ejemplos los cuales si les quitamos el sub-fijo .sample y los hacemos ejecutable (chmod u+x) estarán ligados al evento descrito por su nombre.

Lamentablemente en este caso no creó el ejemplo para el evento post-recibir por lo cual lo tenemos que crear manualmente:

touch app.git/hooks/post-receive

Respecto al contenido agregamos el siguiente código el cual está basado del siguiente ejemplo:

#!/bin/bash
#Carpeta de mi respotorio git
GIT_DIR="/full_path/htdocs/app.git"
#Carpeta destino de mi aplicación web
DST_DIR="/full_path/htdocs/web-app"
BRANCH="master"

while read oldrev newrev ref
do
	# Revisa que el $ref sea igual al $BRANCH a observar
	if [[ $ref = refs/heads/$BRANCH ]];
	then
		echo "Referencia recibida $ref: ";
		echo "Deployando la rama ${BRANCH} En el servidor."
		git --work-tree=$DST_DIR --git-dir=$GIT_DIR checkout -f
	else
		echo "Referencia recibida $ref. No se hizo algo: ";
		echo "Solo la rama ${BRANCH} puede deployar el servidor."
	fi
done

Como podemos ver el script cuenta con algunas variables p.e. BRANCH que permite definir el brazo a observar por defecto master.

⬆ Subiendo el repositorio en el servidor:

Una vez agregado el hook ya tenemos el repositorio listo (app.git) para subirlo a nuestro servidor:

scp -rp app.git user_x@my.server:/full_path/htdocs/

Nota: Este proceso puede tardar varios minutos dependiendo del tamaño de tu proyecto y la velocidad de tu conexión.

Lo siguiente que tenemos que hacer será conectarse al servidor mediante SSH para darle los permisos de ejecución (para el usuario) al script del hook post-receive:

# Ingresamos
ssh user_x@my.server
# Al conectarnos por defecto nos conecta en nuestra carpeta htdocs
# Damos permisos solo al usuario (`u`) de ejecución (`+x`).
chmod u+x app.git/hooks/post-receive

🔗 Vincular el repositorio con el servidor remoto.

Los repositorios Git pueden tener uno o varias fuentes remotas, estas son básicamente lugares en donde se enviar el código(push) y donde se puede obtener(fetch/pull).

Forma 1 (Agregando nuevo remoto):

Si ya tienes el proyecto clonado previamente de algun servidor (p.e. github), lo recomendable seria agregar una nueva fuente remota p.e. webserver:

git remote add webserver \
ssh://user_x@my.server:/full_path/htdocs/app.git

Forma 2 (clonando el proyecto):

Puedes clonar el proyecto del servidor, en este caso la fuente remota de origen origin sera el servidor:

git clone 
ssh://user_x@my.server:/full_path/htdocs/app.git

Mayor info: https://git-scm.com/book/es/v2/Fundamentos-de-Git-Trabajar-con-Remotos

☑ Deployando mis cambios en el Servidor:

Para desplegar nuestros cambios, solo es necesario hacer un push en el remoto que apunte a nuestro servidor web (en este caso webserver ) sobre la rama master (o la que hayas elegido):

git commit -am 'Se hizo algún cambio....'
git push -u webserver master

¡¡¡Listo!!!

 

Archivos fuentes

El contenido de este post así como el código fuente del script esta disponible en un gist que hice en github.com:

https://gist.github.com/fitorec/b100aebff4df20890a53dc4e971a91c0

Siéntete con la libertad de hacer lo que gustes con él, si tienes alguna idea o algún cambio que quisieras aportar favor de dejármela en los comentarios =)

Montando para escritura la carpeta system de Android

Android cuenta con una carpeta con el nombre system que es en donde se encuentran los archivos del sistema operativo(recordemos que Android es una versión de Linux).

Dicha carpeta se encuentra en la memoria ROM del dispositivo y cada vez que se prende se monta(vincula) esta carpeta pero solo con permisos de lectura, esto con la finalidad de que el usuario no modifique estos archivos para que no dañe el sistema operativo. Ya que si esto llegara a pasar el dispositivo quedaría sin Android(sistema operativo) y solo se podría arrancar en modo bootloader o en modo recuperación para instalar una nueva ROM.

En ocasiones es necesario modificar algunos archivos de esta carpeta, por ejemplo cada que se actualiza el sistema el sistema es montado para lectura escritura(read and write rw) para poder escribir en dicha carpeta, como se puede ver en la siguiente figura:

En la imagen se puede ver la actualizacion de android y se puede ver que intenta escribir erronea mente el archivo /system/app/AsusEmailWidget.apk.jpg

En la imagen se puede ver la actualizacion de android y se puede ver que intenta escribir erronea mente el archivo /system/app/AsusEmailWidget.apk

Bueno lo interesante es que si contamos con los permisos adecuados(root user) nosotros podemos montar dicha carpeta.

Para esto vamos a ocupar la aplicación «Terminal Emulator»  la cual es una  aplicacion de código abierto que nos permite acceder al shell del sistema operativo y  poder ejecutar instrucciones, sin mas accedemos a dicha aplicación y ejecutamos:

# Nos logeamos como usuario root
su
# Montamos la carpeta /system como lectura(r) y escritura(w)
mount -o remount,rw /system

¿Pero para que nos podría servir?

  • Para quitar aplicaciones precargadas.
  • Agregar aplicaciones precargadas.
  • Modificar archivos de configuración del sistema.
  • Agregar scripts propios para el sistema operativo.

Para no dejar esto inconcluso vamos a modifcar algun archivo del sistema, esperando en articulos posteriores explicar algunas de estas tareas. vamos a modificar el archivo

/etc/hosts

Cabe mencionar que /etc es un vinculo simbólico que apunta a /system/etc Para esto basta con que este montada la carpeta /system como lectura escritura y abrir el archivo.

Este archivo contiene la lista de hosts conocidos para los cuales no necesita utilizar el protocolo de descubrimiento de nombres de dominios (DNS), probemos con editar con el siguiente contenido.

127.0.0.1 localhost
127.0.0.1 google.com

Ahora si intentamos acceder a google.com desde nuestro navegador vamos a ver que no podemos acceder por que en teoría el hosts google.com se encuentra en la ip 127.0.0.1 que es la dirección del mismo dispositivo(dirección lockback https://en.wikipedia.org/wiki/Loopback). Bueno si revisamos este comportamiento entonces esto nos podria servir para bloquear a todos los servidores con los que no queremos que se comunique nuestro dispostivo p.e. si queremos bloquear el servicio de google ads podemos agregar la linea:

127.0.0.1 googleadservices.com

De esta forma podemos bloquear a todos los servidores de servicio de publicidad y con esto ahorrarnos una cantidad considerable de ancho de banda consumida por nuestros datos.

Les dejo el enlace de una lista completa de hosts para agregarlos:

http://pgl.yoyo.org/as/serverlist.php?showintro=0;hostformat=hosts

Linux crear un lanzador con login para Root

En ocasiones necesitamos ejecutar determinada tarea con permisos de usuario root p.e. arrancar determinado servicio como web o de base de datos. Desgraciadamente cuando agregamos un lanzador en nuestro escritorio este se ejecutara con los permisos del usuario que le haga clic en el lanzador en cuestión.

Crear un lanzador

Bien imaginemos que queremos ejecutar el siguiente script con permisos de usuario root:

/bin/mi_script.sh

Para esto vamos a crear un lanzador con el comento gnome-desktop-item-edit como vemos a continuación:

 #Creando lanzador en el escritorio
gnome-desktop-item-edit --create-new ~/Escritorio/

Esto nos debería de ejecutar una ventana similar a la que se muestra a continuación:

 

Creador de lanzadores

Credor de lanzadores

Este comando básicamente nos genera un lanzador el cual no es otra cosa que un archivo de texto que contiene la información de la aplicación a ejecutar cuando le damos clic, para mayor información del formato consulte:

https://developer.gnome.org/integration-guide/stable/desktop-files.html.es

Agregando login root al lanzador

Una vez que tengamos abierta la ventana de la configuración agregamos lo siguiente en el campo de comando:

gksudo bash /bin/mi_script.sh

Con esto estamos diciendo que el comando bash /bin/mi_script.sh sera ejecutado con permisos de usuario root por medio del comando gksudo el cual es una versión gráfica del comando sudo, a continuación se ilustra la imagen:

lanzador_con_gksudo

Notas:

  • El comando gksudo funciona para gnome para kde puedes ocupar el kdesudo.
  • Para tener disponible el comando gksudo debes de instalar previamente gnome-panel.

Instalar Firefox 36 Beta en Debian, Ubuntu, Mint y derivados

El 15 de enero de este año(2015) salio la versión Beta de firefox 36, veremos como instalar esta versión en nuestro sistema debian o derivados:

 

Pasos de instalación

1.- Agregando repositorio y actualizando la lista de paquetes

Lo primero que tenemos que hacer es agregar la fuente de firefox beta y posteriormente actualizamos la lista de paquetes disponibles, para esto ejecutamos las siguientes lineas:

#Agregando el nuevo repositorio
sudo apt-add-repository ppa:mozillateam/firefox-next

#Actualizando lista de paquetes
sudo apt-get update

2.- Actualizando firefox

#Actualizando el repositorio de firefox
sudo apt-get install --only-upgrade firefox

#instalando las traducciones adecuadas.
sudo apt-get install firefox-locale-es firefox-locale-es:i386

Finalmente probamos que todo funcione de forma correcta, para esto ejecutamos el lanzador de aplicaciones presionando Alt + F2 y escribimos firefox nos debería de abrir el firefox de ahí nos vamos a Help/About Mozilla firefox. Esto nos debería de aparecer que la versión es la 36