¿Quieres tener un entorno como este?

b3nder0n

d3b0o

Bien, no es tarea fácil, hay que ponerle ganas y no rendirse. En este post te enseñaré como paso a paso y si lo lees podrás salir de aquí con capacidad suficiente como para crear el tuyo propio.

PAQUETES NECESARIOS

Empezaremos haciendo un update e instalando los paquetes necesarios.

sudo apt update && sudo apt install build-essential git vim xcb libxcb-util0-dev libxcb-ewmh-dev libxcb-randr0-dev libxcb-icccm4-dev libxcb-keysyms1-dev libxcb-xinerama0-dev libasound2-dev libxcb-xtest0-dev libxcb-shape0-dev rofi

BSPWM & SXHKD

Bspwm es un gestor de ventanas, personalmente me gusta mucho porque es de tipo mosaico, es decir que las ventanas se abren ocupando toda la pantalla y se van redimensionando según la cantidad de ventanas.

 Ejemplo BSPWM

Para instalarlo tendremos que movernos a “Descargas” (si tienes el lenguaje en inglés en “Downloads”).

cd /home/tu_usuario/Descargas/
git clone https://github.com/baskerville/bspwm.git
cd bspwm/
make
sudo make install
sudo apt install bspwm

Sxhkd se utiliza para configurar los atajos del teclado que nos servirán para abrir procesos o ejecutar programas.

Nuevamente, para instalarlo tendremos que ir al directorio “Descargas”. I ejecutar los siguientes comandos.

cd /home/tu_usuario/Descargas/
git clone https://github.com/baskerville/sxhkd.git
cd sxhkd
make
sudo make install

En este punto crearemos las carpetas para la configuración de ambos y pegaremos los archivos de configuración.

mkdir ~/.config/bspwm
mkdir ~/.config/sxhkd
cd /home/usuario/Descargas/bspwm
cp examples/bspwmrc ~/.config/bspwm
chmod +x ~/.config/bspwm/bspwmrc
cp esxamples/sxhkdrc ~/.config/sxhkd

Ahora abriremos el sxhkd y le configuraremos los atajos. (Debajo del documento explico todos).

nano ~/.config/sxhkd/sxhkdrc

Borramos todo el contenido i pegamos lo siguiente:

# wm independent hotkeys
#

# terminal emulator
super + Return
gnome-terminal

# program launcher
super + d
rofi -show run

# make sxhkd reload its configuration files:
super + Escape
pkill -USR1 -x sxhkd

#
# bspwm hotkeys
#

# quit/restart bspwm
super + alt + {q,r}
bspc {quit,wm -r}

# close and kill
super + {_,shift + }w
bspc node -{c,k}

# alternate between the tiled and monocle layout
super + m
bspc desktop -l next

# send the newest marked node to the newest preselected node
super + y
bspc node newest.marked.local -n newest.!automatic.local

# swap the current node and the biggest node
super + g
bspc node -s biggest

#
# state/flags
#

# set the window state
super + {t,shift + t,s,f}
bspc node -t {tiled,pseudo_tiled,floating,fullscreen}

# set the node flags
super + ctrl + {m,x,y,z}
bspc node -g {marked,locked,sticky,private}

#
# focus/swap
#

super + {_,shift + }{Left,Down,Up,Right}
bspc node -{f,s} {west,south,north,east}

# focus the node for the given path jump
super + {p,b,comma,period}
bspc node -f @{parent,brother,first,second}

# focus the next/previous node in the current desktop
super + {_,shift + }c
bspc node -f {next,prev}.local

# focus the next/previous desktop in the current monitor
super + bracket{left,right}
bspc desktop -f {prev,next}.local

# focus the last node/desktop
super + {grave,Tab}
bspc {node,desktop} -f last

# focus the older or newer node in the focus history
super + {o,i}
bspc wm -h off; \
bspc node {older,newer} -f; \
bspc wm -h on

# focus or send to the given desktop
super + {_,shift + }{1-9,0}
bspc {desktop -f,node -d} `^{1-9,10}`

#
# preselect
#

# preselect the direction
super + ctrl + alt + {Left,Down,Up,Right}
bspc node -p {west,south,north,east}

# preselect the ratio
super + ctrl + {1-9}
bspc node -o 0.{1-9}

# cancel the preselection for the focused node
super + ctrl + space
bspc node -p cancel

# cancel the preselection for the focused desktop
super + ctrl + alt + space
bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel

#
# move/resize
#

# expand a window by moving one of its side outward
#super + alt + {h,j,k,l}
# bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}

# contract a window by moving one of its side inward
#super + alt + shift + {h,j,k,l}
# bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}

# move a floating window
super + ctrl + {Left,Down,Up,Right}
bspc node -v {-20 0,0 20,0 -20,20 0}

# Custom move/resize
alt + super + {Left,Down,Up,Right}
/home/tu_usuario/.config/bspwm/scripts/bspwm_resize {west,south,north,east}

Crearemos el archivo “bspwm_resize” para en un futuro controlar las dimensiones de las ventanas.

mkdir ~/.config/bspwm/scripts/
touch ~/.config/bspwm/scripts/bspwm_resize; chmod +x ~/.config/bspwm/scripts/bspwm_resize

Lo abriremos con nano ~/.config/bspwm/scripts/bspwm_resize, borarremos el contenido y pegaremos el siguiente:

#!/usr/bin/env dash

if bspc query -N -n focused.floating > /dev/null; then
step=20
else
step=100
fi

case "$1" in
west) dir=right; falldir=left; x="-$step"; y=0;;
east) dir=right; falldir=left; x="$step"; y=0;;
north) dir=top; falldir=bottom; x=0; y="-$step";;
south) dir=top; falldir=bottom; x=0; y="$step";;
esac

bspc node -z "$dir" "$x" "$y" || bspc node -z "$falldir" "$x" "$y"
#

PUNTO IMPORTANTE!

En este punto tenemos que reiniciar, podemos usar el comando sudo reboot la máquina. Cuando vayamos a elegir nuestro usuario tendremos que cambiar nuestro escritorio por bspwm.

Cuando se inicie es normal que solo se vea una pantalla en negro o una foto del sistema operativo, no os preocupéis, si habéis configurado bien el sxhkdrc al hacer win + enter se abrirá una terminal, desde ella operaremos. Si necesitáis abrir cualquier otro programa hacemos win + d y se nos abrirá el menú de aplicaciones.

POLYBAR

Ahora instalaremos la Polybar, Polybar es una herramienta rápida y sencilla de utilizar que permitirá crear tus barras de estado. Una barra de estado no es más que un elemento gráfico en el que se muestra información sobre el sistema. O en el caso de Polybar, lo que tú quieras mostrar.

Para instalarla primero instalaremos los paquetes necesarios.

sudo apt install cmake cmake-data pkg-config python3-sphinx libcairo2-dev libxcb1-dev libxcb-util0-dev libxcb-randr0-dev libxcb-composite0-dev python3-xcbgen xcb-proto libxcb-image0-dev libxcb-ewmh-dev libxcb-icccm4-dev libxcb-xkb-dev libxcb-xrm-dev libxcb-cursor-dev libasound2-dev libpulse-dev libjsoncpp-dev libmpdclient-dev libcurl4-openssl-dev libnl-genl-3-dev

Ahora instalaremos la Polybar, para ello ejecutaremos los siguientes comandos.

cd /home/tu_usuario/Descargas/
git clone --recursive https://github.com/polybar/polybar
cd polybar/
mkdir build
cd build/
cmake ..
make -j$(nproc)
sudo make install

Yo he usado como base la polybar del pana adi190x, me parecen de las mejores, si ya te gusta alguna la puedes poner.

git clone --depth=1 https://github.com/adi1090x/polybar-themes.git
cd polybar-themes
chmod +x setup.sh

Luego solo queda ejecutar

./setup.sh

[*] Installing Polybar Themes...

[*] Choose Style -
[1] Simple
[2] Bitmap

[?] Select Option : 1

[*] Installing fonts...
[*] Creating a backup of your polybar configs...
[*] Successfully Installed.

Para elegir la polybar que queramos hemos de ejecutar la siguiente linia.

bash ~/.config/polybar/launch.sh

Veremos un listado de todas las polybars disponibles, podemos ir testeando con el parámetro -- <nombre&gt;. Por ejemplo:

bash ~/.config/polybar/launch.sh -- hack

En mi caso trabajaremos sobre -- forest.

Una vez hayamos ejecutado el comando veremos la polybar tal que así:

¡YA HEMOS HECHO UN MUY BUEN TRABAJO!!!!

Pero aún nos queda personalizarlo un poco.

PUNTO IMPORTANTE!!

¡Si quieres entender como funciona la polybar y poder ser un experto, lee esto con atencion!

Lo primero es entender lo siguiente: Esto es lo que hace cada archivo en el directorio ~/.config/polybar

Principales configuraciones de los módulos.

Perfecto, ahora que ya sabemos esto vamos a configurar nuestra polybar al gusto.

Para acceder a mis dotfiles hay que ir al siguiente enlace dotfiles. Para aplicar la configuración ejecutaremos los siguientes comandos.

cd ~/Descargas
cd .config
mv bin ~/.config/
sudo rm -r /home/tu_usuario/.config/polybar
mv polybar ~/.config/
cd ~/.config/bin
chmod +x &gt;

Ahora tendríamos que poner nuestra polybar en el archivo bspwmrc para que cada vez que iniciemos bspwm salga la polybar. Para ello ejecutaremos el siguiente comando.

nano ~/.config/bspwm/bspwmrc

# PEGAMOS LA SIGUIENTE LÍNEA DONDE QUERAMOS

bash ~/.config/polybar/launch.sh --forest # Yo uso la forest.

Hacemos win + alt + r y en principio veríamos ya nuestra polybar configurada.

FONDO DE PANTALLA

Este es uno de los procesos más raros, lo que sería en Windows o en otro Linux hacer un clic derecho en la imagen y convertirla en fondo de pantalla aquí se complica un poquito.

Primero tendríamos que tener una imagen descargada, preferiblemente en el directorio Imágenes, luego tendríamos que ejecutar el siguiente comando.

sudo apt install feh # Si no lo instala quiere decir que ya lo tenemos.

feh --bg-fill /home/tu_usuario/Imágenes/tu_foto.loquesea

Con este comando ya nos tendría que aparecer el fondo de pantalla. Nuevamente, tendríamos que incorporar la linia en el bspwm, sería igual que lo de la polybar.

FUNCION SETTARGET

Ya está casi todo, quedaría configurar unas funciones y cuatro cosas más.

Lo primero, veremos que en la polybar sale un módulo llamado Lost Target, este módulo nos sirve para tener nuestro objetivo siempre visible, para que sea funcional hay que seguir una serie de pasos.

1- Tenemos que crear un archivo en el directorio /home/tu_usuario, el archivo se llamará target.txt

2- Tenemos que editar el archivo /home/tu_usuario/.config/bin/copyiptarget.sh y cambiar la línea que dice /home/aaron/target.txt por /home/tu_usuario/target.txt.

3- En nuestro archivo .zshrc que se encuentra en el directorio /home/tu_usuariohemos de añadir la siguiente linia:

function settarget(){
ip_address=$1
machine_name=$2
echo "$ip_address $machine_name" &gt; /home/tu_usuario/target.txt
}

4- Cuando en la terminal ejecutemos el comando settarget se nos pondra en la polybar.

5- La estructura del comando es la siguiente settarget <ip&gt; <nombre&gt;, un ejemplo sería settarget 127.0.0.1 Localhost.

OH-MY-ZSH

Para tener un tema personalizado en nuestra terminal podemos hacer uno de oh-my-zsh. Si lo quieres descargar ves a la página oficial y sigue los pasos, a continuación te dejo el enlace: Oh-my-zsh

FINAL

¡PUES ESTO ES TODO! Espero que os sirva de ayuda y que podáis configurar vuestro entrono Linux sin ningún problema, cualquier duda o problema contáctame por mis redes sociales.

¡¡¡¡QUE DISFRUTÉIS DEL ENTRONO!!!!