Entrada

Personalización de entorno en Linux

En este artículo vamos a personalizar un entorno Linux, con el fin de mejorar la eficacia.

Personalización de entorno en Linux

Introducción

Usar Kali Linux o Parrot OS por defecto está genial, sin embargo, si queremos llevar a otro nivel nuestro movimiento por el entorno y ser más eficientes, deberemos de personalizar nuestro entorno de manera que nos sintamos cómodos y seamos rápidos en él. Es por esto, por lo que traigo este artículo en el que personalizaremos nuestro entorno en un sistema Kali Linux, aunque esta misma configuración se puede realizar en un sistema Parrot OS.

Descargando Kali Linux

Para descargarnos el SO Kali Linux, nos deberemos de dirigir a la página de Kali Linux. Seleccionaremos la descarga a nuestra preferencia. En mi caso descargaré la de VMWare por lo que seleccionaré la opción correspondiente a la de VMWare.

Una vez descargado e instalado en nuestro software de virtualización, ejecutaremos un upgrade completo del sistema.

IMPORTANTE
Ten en cuenta que, si estás en Parrot OS los comandos que tendrás que usar para realizar el upgrade completo del sistema son los siguientes:

sudo apt update -y && sudo apt parrot-upgrade -y

1
sudo apt update -y && sudo apt upgrade -y

Al finalizar al upgrade, realizaremos un Snapshot de la máquina ya que, en caso de que nos falle posteriormente, tendremos un punto de partida al que volver.

Instalación de paquetes necesarios

Antes que nada, vamos a instalar algunos paquetes, algunos necesarios para la configuración del entorno, y otros adicionales. Puedes ajustar estos paquetes a tu gusto.

1
sudo apt install build-essential git vim libxcb1 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 make zsh caja locate -y

Instalación y configuración de Bspwm y Sxhkd

Instalaremos bspwm y sxhkd desde los repositorios oficiales. Para ello, nos dirigiremos a nuestra carpeta Downloads y clonaremos los repositorios desde un usuario NO privilegiado.

1
2
git clone https://github.com/baskerville/bspwm.git
git clone https://github.com/baskerville/sxhkd.git

Seguidamente, nos meteremos dentro de la carpeta bspwm y le instalaremos.

1
2
3
cd bspwm
make
sudo make install

Si ahora ejecutamos el comando which bspwm deberíamos de ver el binario.

1
which bspwm

A continuación, realizaremos la misma acción pero para sxhkd.

1
2
3
cd sxhkd
make
sudo make install

Si ahora ejecutamos el comando which sxhkd, veremos el binario correspondiente.

1
which sxhkd

Algo que debemos de tener en cuenta son sus ficheros de configuración.

  • bspwmbspwmrc
  • sxhkdsxhkdrc

Para poder configurar cada uno de ello, crearemos los directorios de configuración de cada uno en ~/.config/.

1
mkdir ~/.config/{bspwm,sxhkd}

Seguidamente, copiaremos los ficheros de configuración que nos comparte por defecto el repositorio, en las carpetas que hemos creado.

1
2
cp /home/kali/bspwm/examples/bspwmrc ~/.config/bspwm/
cp /home/kali//bspwm/examples/sxhkdrc ~/.config/sxhkd/

Comprobaremos que en cada uno de los directorios tenemos los ficheros que hemos copiado.

1
2
ls -l /home/kali/.config/bspwm
ls -l /home/kali/.config/sxhkd

A continuación, empezaremos con la configuración de sxhkd.

1
cd /home/kali/.config/sxhkd

Configuraremos el primer shortcut para abrir una terminal kitty. Para ello, instalaremos kitty de la siguiente manera.

1
sudo apt install kitty -y

Comprobamos que la versión de kitty es la última con el comando kitty -v.

En caso de que no sea la última, tendremos que descargar el último release del repositorio oficial de Github. Si tenemos la última versión, configuraremos la siguiente línea:

1
2
3
## terminal emulator
super + Return
        /usr/bin/kitty

También, modificaremos algunas líneas del fichero para añadir unos cuantos shortcuts.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
## quit/restart bspwm
super + shift + {q,r}
        bspc {quit,wm -r}

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

## focus the node in the given direction
super + {_,shift + }{Left,Down,Up,Right}
        bspc node -{f,s} {west,south,north,east}

#
## preselect
#

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

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

#
## move/resize
#

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

También, quitaremos las siguientes líneas:

1
2
3
4
5
6
7
8
9
10
11
#
## 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}

Y ahora, añadiremos las líneas de a continuación al final del archivo.

1
2
3
4
5
6
7
## Custom Resize
super + alt + {Left,Down,Up,Right} 
        /home/kali/.config/bspwm/scripts/bspwm_resize {west,south,north,east}

## Open Firefox
super + shift + f
		/usr/bin/firefox

Dentro del fichero /home/kali/.config/bspwm/scripts/bspwm_resize meteremos el contenido que podemos encontrar en bspwm_resize.txt.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/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"

Para que funcione correctamente, le asignaremos permisos de ejecución.

1
chmod u+x bspwm_resize

Instalación de la polybar, Picom y Rofi

Instalaremos la polybar ejecutando el comando que se muestra a continuación.

1
sudo apt install polybar -y

Instalaremos y configuraremos picom. Para ello, instalaremos todos los siguientes paquetes.

1
sudo apt install libconfig-dev libdbus-1-dev libegl-dev libev-dev libgl-dev libepoxy-dev libpcre2-dev libpixman-1-dev libx11-xcb-dev libxcb1-dev libxcb-composite0-dev libxcb-damage0-dev libxcb-glx0-dev libxcb-image0-dev libxcb-present-dev libxcb-randr0-dev libxcb-render0-dev libxcb-render-util0-dev libxcb-shape0-dev libxcb-util-dev libxcb-xfixes0-dev meson ninja-build uthash-dev -y

Clonaremos el repositorio de picom en Downloads.

1
git clone https://github.com/yshui/picom

Nos meteremos dentro de la carpeta de picom y tendremos que construirlo. Seguiremos los pasos del fichero README.md del repositorio.

1
2
3
cd picom
meson setup --buildtype=release build
ninja -C build

Por último, construiremos con ninja el binario de picom.

1
ninja -C build install

Si en este momento, ejecutamos un which picom veremos el binario que ya está instalado.

1
which picom

Instalaremos rofi con el siguiente comando.

1
sudo apt install rofi -y

Y configuraremos un shortcut para abrir rofi. Editaremos el fichero de configuración /home/kali/.config/sxhkd/sxhkdrc.

1
2
3
## program launcher
super + d     
        /usr/bin/rofi -show run 

Ahora sí, reiniciaremos el equipo e iniciaremos el entorno de bspwm.

1
reboot

Una vez reiniciado, para iniciar el entorno bspwm lo seleccionaremos en la parte del login.

Iniciando Bspwm

En caso de que no nos aparezca, deberemos de instalar bspwm con apt.

1
sudo apt install bspwm -y

Reiniciaremos el equipo de nuevo y lo seleccionaremos en la parte superior derecha del inicio de sesión.

Al iniciar en el entorno bspwm, puede que se nos desconfigure la configuración del teclado. Para volver a poner el idioma en Español, deberemos de ejecutar el siguiente comando.

1
sudo dpkg-reconfigure keyboard-configuration

Seleccionaremos el layout por defecto que nos aparece en la primera pantalla. Seguidamente, seleccionaremos Other + Spanish y las demás opciones las dejaremos por defecto.

Una vez configurado, reiniciaremos el equipo y ya tendremos el teclado nuevamente configurado.

1
reboot

Habilitando la clipboard bidireccional

Vamos a habilitar la clipboard bidireccional. Para ello, abriremos el fichero /home/kali/.config/bspwm/bspwmrc y meteremos el siguiente contenido al final de este.

1
vmware-user-suid-wrapper &

Reiniciaremos el bspwmrc con Win + Shift + R y ya podríamos copiar y pegar bidireccionalmente.

Configurando las fuentes, la Kitty e instalación de Feh

A continuación, instalaremos la fuente Hack Nerd Fonts. Para ello, iremos al siguiente enlace.

Enlace a la página de fuente
https://www.nerdfonts.com/font-downloads

Y nos descargaremos el comprimido de la fuente de Hack Nerd Fonts.

Hack Nerd Fonts

Nos dirigiremos al siguiente directorio, moveremos el comprimido y lo descomprimiremos como el usuario root. Además, eliminaremos los ficheros que no necesitamos.

1
2
3
4
5
sudo su
cd /usr/local/share/fonts
mv /home/kali/Downloads/Hack.zip
unzip Hack.zip
rm Hack.zip LICENSE.md README.md

Ahora, vamos a configurar la kitty y para ello, nos dirigiremos a ~/.config/kitty como un usuario NO privilegiado.

1
cd ~/.config/kitty

Y crearemos dos archivos. El primero, será kitty.conf con el siguiente contenido. Este fichero lo podemos encontrar en kitty.conf.txt.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
enable_audio_bell no

include color.ini

font_family HackNerdFont
font_size 13

disable_ligatures never

url_color #61afef

url_style curly

map ctrl+left neighboring_window left
map ctrl+right neighboring_window right
map ctrl+up neighboring_window up
map ctrl+down neighboring_window down

map f1 copy_to_buffer a
map f2 paste_from_buffer a
map f3 copy_to_buffer b
map f4 paste_from_buffer b

cursor_shape beam
cursor_beam_thickness 1.8

mouse_hide_wait 3.0
detect_urls yes

repaint_delay 10
input_delay 3
sync_to_monitor yes

map ctrl+shift+z toggle_layout stack
tab_bar_style powerline

inactive_tab_background #e06c75
active_tab_background #98c379
inactive_tab_foreground #000000
tab_bar_margin_color black

map ctrl+shift+enter new_window_with_cwd
map ctrl+shift+t new_tab_with_cwd

background_opacity 0.95

shell zsh

Y otro con nombre color.ini con el siguiente contenido. Este fichero lo podemos encontrar en color.ini.txt.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
cursor_shape          Underline
cursor_underline_thickness 1
window_padding_width  20

## Special
foreground #a9b1d6
background #1a1b26

## Black
color0 #414868
color8 #414868

## Red
color1 #f7768e
color9 #f7768e

## Green
color2  #73daca
color10 #73daca

## Yellow
color3  #e0af68
color11 #e0af68

## Blue
color4  #7aa2f7
color12 #7aa2f7

## Magenta
color5  #bb9af7
color13 #bb9af7

## Cyan
color6  #7dcfff
color14 #7dcfff

## White
color7  #c0caf5
color15 #c0caf5

## Cursor
cursor #c0caf5
cursor_text_color #1a1b26

## Selection highlight
selection_foreground #7aa2f7
selection_background #28344a

Ahora, en caso de que no lo tengamos instalado, instalaremos imagemagick para el tratamiento de imágenes.

1
sudo apt install imagemagick -y

Supongamos que queremos ver una imagen. Para ello, podemos usar el siguiente comando.

1
kitty +kitten icat imagen.png

Esto, es bastante tedioso a la hora de escribir, por lo que configuraremos en nuestro ~/.zshrc una función que nos permita efectuar esto.

1
2
3
4
## Visualizar imagenes con kitten
function show () {
	kitty +kitten icat $1
}

Para que la configuración de la kitty sea igual con el usuario root, nos deberemos de traer la configuración que hemos aplicado en el directorio ~/.config/kitty

1
2
sudo su
cp -r /home/kali/.config/kitty /root/.config/kitty

Para configurar un fondo de pantalla, necesitaremos feh.

1
sudo apt install feh -y

Nos crearemos una carpeta Fondos dentro del escritorio para ir metiendo todos los fondos ahí.

1
mkdir ~/Desktop/Fondos

Nos descargamos cualquier imagen que nos guste como fondo de pantalla. En mi caso, hare una copia de ella y la renombraré como Wallpaper.jpg, para que de esta manera, no tener que cambiar el nombre de la imagen y siempre se llame Wallpaper.jpg.

En mi caso, este es el fondo que estaré usando yo.

Im groot Root

Y configuramos el fondo de pantalla en el fichero ~/.config/bspwm/bspwmrc.

1
/usr/bin/feh --bg-fill /home/kali/Desktop/Fondos/Wallpaper.jpg

Despliegue de la Polybar

Nos vamos a ir al directorio Downloads como un usuario NO privilegiado y nos clonaremos un repositorio que trae ciertas configuraciones de la polybar que vamos a estar usando.

1
2
3
cd ~/Downloads
git clone https://github.com/VaughnValle/blue-sky.git
cd blue-sky/polybar

Ahora, copiaremos todo el contenido de este directorio blue-sky/polybar en nuestro directorio ~/.config/polybar.

1
2
mkdir ~/.config/polybar
cp -r * ~/.config/polybar

Seguidamente, configuraremos que se inicie la polybar en el inicio del sistema.

1
echo '~/.config/polybar/./launch.sh &' >> ~/.config/bspwm/bspwmrc

Y como el usuario root copiaremos las fuentes al directorio /usr/share/fonts/truetype.

1
2
sudo su
cp fonts/* /usr/share/fonts/truetype

Sincronizaremos y actualizaremos la cache de fuentes con el siguiente comando.

1
fc-cache -v

De esta manera, si nos salimos de la sesión con CTRL + SHIFT + q e iniciamos sesión, veremos cómo nos carga correctamente la polybar.

Polybar recién instalada

Configurando los bordeados, las sombras y los difuminados con Picom

Vamos a configurar picom y para ello deberemos de crear un fichero de configuración para este.

1
2
mkdir ~/.config/picom
touch ~/.config/picom/picom.conf

E introduciremos el contenido del fichero que encuentra en picom.conf.txt y/o en picom.conf.txt.

Y deberemos de actualizar el fichero ~/.config/bspwm/bspwmrc para correr el demonio de picom.

1
picom &

A demás, vamos a quitar el borde blanco de la terminal, desde el fichero ~/.config/bspwm/bspwmrc.

1
bspc config border_width 0

Configurando la ZSH e instalando Powerlevel10k

Vamos a instalar unos plugins para la zsh. Nos ponemos como root y ejecutamos el siguiente comando.

1
2
sudo su
sudo apt install zsh-autcomplete zsh-autosuggestions zsh-syntax-highlighting

En caso de que el plugin zsh-autcomplete no nos funcione con apt install, lo tendremos que instalar manualmente. Nos iremos a su repositorio de GitHub y lo clonaremos desde el directorio /usr/share.

1
2
cd /usr/share
git clone --depth 1 -- https://github.com/marlonrichert/zsh-autocomplete.git

Seguidamente, añadiremos en este mismo fichero las siguientes líneas de configuración arriba del todo.

1
2
3
## Cargando el plugin de zsh-autocomplete
source /usr/share/zsh-autocomplete
git -C /usr/share/zsh-autocomplete pull &>/dev/null

Por último, cargaremos la configuración del .zshrc por comandos o reiniciando la terminal (recomendado).

1
source ~/.zshrc

Ahora, configuraremos la powerlevel10k. Para ello, como indica en su repositorio oficial de GitHub ejecutaremos los siguientes comandos.

1
2
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k
echo 'source /home/kali/powerlevel10k/powerlevel10k.zsh-theme' >> ~/.zshrc

De forma que, ejecutaremos el comando zsh y elegiremos las siguientes opciones de configuración. Estas opciones podemos cambiarlas si las deseamos ya que es una personalización personal.

1
2
3
4
5
6
7
## Opciones a seleccionar después de ejecutar el comando zsh en la terminal

y - y - y - 1 - y

2 - 1 - 2 - n - 1 - 3 - 4 - 1 - 2 - 2 - 2

y - 1 - y

Después, nos vamos al directorio /home/kali/ con el comando cd y configuramos el fichero de configuración .p10k.zsh.

1
2
cd
nano .p10k.zsh

Comentaremos todo lo que se muestra en la parte derecha de la terminal, por lo que deberíamos de dejar la siguiente parte del fichero de la forma que se muestra a continuación.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
  ## The list of segments shown on the right. Fill it with less important segments.
  ## Right prompt on the last prompt line (where you are typing your commands) gets
  ## automatically hidden when the input line reaches it. Right prompt above the
  ## last prompt line gets hidden if it would overlap with left prompt.
  typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(
##    status                  ## exit code of the last command
##    command_execution_time  ## duration of the last command
##    background_jobs         ## presence of background jobs
##    direnv                  ## direnv status (https://direnv.net/)
##    asdf                    ## asdf version manager (https://github.com/asdf-vm/asdf)
##    virtualenv              ## python virtual environment (https://docs.python.org/3/library/venv.html)
##    anaconda                ## conda environment (https://conda.io/)
##    pyenv                   ## python environment (https://github.com/pyenv/pyenv)
##    goenv                   ## go environment (https://github.com/syndbg/goenv)
##    nodenv                  ## node.js version from nodenv (https://github.com/nodenv/nodenv)
##    nvm                     ## node.js version from nvm (https://github.com/nvm-sh/nvm)
##    nodeenv                 ## node.js environment (https://github.com/ekalinin/nodeenv)
    ## node_version          ## node.js version
    ## go_version            ## go version (https://golang.org)
    ## rust_version          ## rustc version (https://www.rust-lang.org)
    ## dotnet_version        ## .NET version (https://dotnet.microsoft.com)
    ## php_version           ## php version (https://www.php.net/)
    ## laravel_version       ## laravel php framework version (https://laravel.com/)
    ## java_version          ## java version (https://www.java.com/)
    ## package               ## name@version from package.json (https://docs.npmjs.com/files/package.json)
##    rbenv                   ## ruby version from rbenv (https://github.com/rbenv/rbenv)
##    rvm                     ## ruby version from rvm (https://rvm.io)
##    fvm                     ## flutter version management (https://github.com/leoafarias/fvm)
##    luaenv                  ## lua version from luaenv (https://github.com/cehoffman/luaenv)
##    jenv                    ## java version from jenv (https://github.com/jenv/jenv)
##    plenv                   ## perl version from plenv (https://github.com/tokuhirom/plenv)
##    perlbrew                ## perl version from perlbrew (https://github.com/gugod/App-perlbrew)
##    phpenv                  ## php version from phpenv (https://github.com/phpenv/phpenv)
##    scalaenv                ## scala version from scalaenv (https://github.com/scalaenv/scalaenv)
##    haskell_stack           ## haskell version from stack (https://haskellstack.org/)
##    kubecontext             ## current kubernetes context (https://kubernetes.io/)
##    terraform               ## terraform workspace (https://www.terraform.io)
    ## terraform_version     ## terraform version (https://www.terraform.io)
##    aws                     ## aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html)
##    aws_eb_env              ## aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/)
##    azure                   ## azure account name (https://docs.microsoft.com/en-us/cli/azure)
##    gcloud                  ## google cloud cli account and project (https://cloud.google.com/)
##    google_app_cred         ## google application credentials (https://cloud.google.com/docs/authentication/production)
##    toolbox                 ## toolbox name (https://github.com/containers/toolbox)
##    context                 ## user@hostname
##    nordvpn                 ## nordvpn connection status, linux only (https://nordvpn.com/)
##    ranger                  ## ranger shell (https://github.com/ranger/ranger)
##    yazi                    ## yazi shell (https://github.com/sxyazi/yazi)
##    nnn                     ## nnn shell (https://github.com/jarun/nnn)
##    lf                      ## lf shell (https://github.com/gokcehan/lf)
##    xplr                    ## xplr shell (https://github.com/sayanarijit/xplr)
##    vim_shell               ## vim shell indicator (:sh)
##    midnight_commander      ## midnight commander shell (https://midnight-commander.org/)
##    nix_shell               ## nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html)
##    chezmoi_shell           ## chezmoi shell (https://www.chezmoi.io/)
##    vi_mode                 ## vi mode (you don't need this if you've enabled prompt_char)
    ## vpn_ip                ## virtual private network indicator
    ## load                  ## CPU load
    ## disk_usage            ## disk usage
    ## ram                   ## free RAM
    ## swap                  ## used swap
##    todo                    ## todo items (https://github.com/todotxt/todo.txt-cli)
##    timewarrior             ## timewarrior tracking status (https://timewarrior.net/)
##    taskwarrior             ## taskwarrior task count (https://taskwarrior.org/)
##    per_directory_history   ## Oh My Zsh per-directory-history local/global indicator
    ## cpu_arch              ## CPU architecture
    ## time                  ## current time
    ## ip                    ## ip address and bandwidth usage for a specified network interface
    ## public_ip             ## public IP address
    ## proxy                 ## system-wide http/https/ftp proxy
    ## battery               ## internal battery
    ## wifi                  ## wifi speed
    ## example               ## example user-defined segment (see prompt_example function below)
  )

También, configuraremos algunas opciones adicionales para que nos salgan en la parte izquierda.

1
2
3
4
5
6
7
8
9
10
  ## The list of segments shown on the left. Fill it with the most important segments.
  typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(
    os_icon                 ## os identifier
    dir                     ## current directory
    vcs                     ## git status
    context
    command_execution_time
    status 
    ## prompt_char           ## prompt symbol
  )

Haremos lo mismo para el usuario root:

1
2
3
sudo su
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k
echo 'source /root/powerlevel10k/powerlevel10k.zsh-theme' >> ~/.zshrc

Ejecutamos el comando zsh y lo configuramos de la siguiente manera.

1
2
3
4
5
6
7
## Opciones a seleccionar después de ejecutar el comando zsh en la terminal

y - y - y - 1 - y

2 - 1 - 2 - n - 1 - 3 - 4 - 1 - 2 - 2 - 2

y - 1 - y

Volvemos a comentar todo lo que se muestra en la parte derecha de la terminal configurando el fichero ~/.p10k.zsh de root.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
  ## The list of segments shown on the right. Fill it with less important segments.
  ## Right prompt on the last prompt line (where you are typing your commands) gets
  ## automatically hidden when the input line reaches it. Right prompt above the
  ## last prompt line gets hidden if it would overlap with left prompt.
  typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(
##    status                  ## exit code of the last command
##    command_execution_time  ## duration of the last command
##    background_jobs         ## presence of background jobs
##    direnv                  ## direnv status (https://direnv.net/)
##    asdf                    ## asdf version manager (https://github.com/asdf-vm/asdf)
##    virtualenv              ## python virtual environment (https://docs.python.org/3/library/venv.html)
##    anaconda                ## conda environment (https://conda.io/)
##    pyenv                   ## python environment (https://github.com/pyenv/pyenv)
##    goenv                   ## go environment (https://github.com/syndbg/goenv)
##    nodenv                  ## node.js version from nodenv (https://github.com/nodenv/nodenv)
##    nvm                     ## node.js version from nvm (https://github.com/nvm-sh/nvm)
##    nodeenv                 ## node.js environment (https://github.com/ekalinin/nodeenv)
    ## node_version          ## node.js version
    ## go_version            ## go version (https://golang.org)
    ## rust_version          ## rustc version (https://www.rust-lang.org)
    ## dotnet_version        ## .NET version (https://dotnet.microsoft.com)
    ## php_version           ## php version (https://www.php.net/)
    ## laravel_version       ## laravel php framework version (https://laravel.com/)
    ## java_version          ## java version (https://www.java.com/)
    ## package               ## name@version from package.json (https://docs.npmjs.com/files/package.json)
##    rbenv                   ## ruby version from rbenv (https://github.com/rbenv/rbenv)
##    rvm                     ## ruby version from rvm (https://rvm.io)
##    fvm                     ## flutter version management (https://github.com/leoafarias/fvm)
##    luaenv                  ## lua version from luaenv (https://github.com/cehoffman/luaenv)
##    jenv                    ## java version from jenv (https://github.com/jenv/jenv)
##    plenv                   ## perl version from plenv (https://github.com/tokuhirom/plenv)
##    perlbrew                ## perl version from perlbrew (https://github.com/gugod/App-perlbrew)
##    phpenv                  ## php version from phpenv (https://github.com/phpenv/phpenv)
##    scalaenv                ## scala version from scalaenv (https://github.com/scalaenv/scalaenv)
##    haskell_stack           ## haskell version from stack (https://haskellstack.org/)
##    kubecontext             ## current kubernetes context (https://kubernetes.io/)
##    terraform               ## terraform workspace (https://www.terraform.io)
    ## terraform_version     ## terraform version (https://www.terraform.io)
##    aws                     ## aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html)
##    aws_eb_env              ## aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/)
##    azure                   ## azure account name (https://docs.microsoft.com/en-us/cli/azure)
##    gcloud                  ## google cloud cli account and project (https://cloud.google.com/)
##    google_app_cred         ## google application credentials (https://cloud.google.com/docs/authentication/production)
##    toolbox                 ## toolbox name (https://github.com/containers/toolbox)
##    context                 ## user@hostname
##    nordvpn                 ## nordvpn connection status, linux only (https://nordvpn.com/)
##    ranger                  ## ranger shell (https://github.com/ranger/ranger)
##    yazi                    ## yazi shell (https://github.com/sxyazi/yazi)
##    nnn                     ## nnn shell (https://github.com/jarun/nnn)
##    lf                      ## lf shell (https://github.com/gokcehan/lf)
##    xplr                    ## xplr shell (https://github.com/sayanarijit/xplr)
##    vim_shell               ## vim shell indicator (:sh)
##    midnight_commander      ## midnight commander shell (https://midnight-commander.org/)
##    nix_shell               ## nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html)
##    chezmoi_shell           ## chezmoi shell (https://www.chezmoi.io/)
##    vi_mode                 ## vi mode (you don't need this if you've enabled prompt_char)
    ## vpn_ip                ## virtual private network indicator
    ## load                  ## CPU load
    ## disk_usage            ## disk usage
    ## ram                   ## free RAM
    ## swap                  ## used swap
##    todo                    ## todo items (https://github.com/todotxt/todo.txt-cli)
##    timewarrior             ## timewarrior tracking status (https://timewarrior.net/)
##    taskwarrior             ## taskwarrior task count (https://taskwarrior.org/)
##    per_directory_history   ## Oh My Zsh per-directory-history local/global indicator
    ## cpu_arch              ## CPU architecture
    ## time                  ## current time
    ## ip                    ## ip address and bandwidth usage for a specified network interface
    ## public_ip             ## public IP address
    ## proxy                 ## system-wide http/https/ftp proxy
    ## battery               ## internal battery
    ## wifi                  ## wifi speed
    ## example               ## example user-defined segment (see prompt_example function below)
  )

A continuación, comentamos la siguiente línea.

1
2
3
4
  ## Custom icon.
  ## typeset -g POWERLEVEL9K_CONTEXT_VISUAL_IDENTIFIER_EXPANSION='⭐'
  ## Custom prefix.
  typeset -g POWERLEVEL9K_CONTEXT_PREFIX=''

Y configuramos la siguiente línea de la manera de a continuación. Podemos cambiar el icono de la línea typeset -g POWERLEVEL9K_CONTEXT_ROOT_TEMPLATE= por el que queramos.

1
2
3
4
5
6
  ## Context format when running with privileges: bold user@hostname.
  typeset -g POWERLEVEL9K_CONTEXT_ROOT_TEMPLATE='ICONO'
  ## Context format when in SSH without privileges: user@hostname.
  typeset -g POWERLEVEL9K_CONTEXT_{REMOTE,REMOTE_SUDO}_TEMPLATE='%n@%m'
  ## Default context format (no privileges, no SSH): user@hostname.
  typeset -g POWERLEVEL9K_CONTEXT_TEMPLATE='%n@%m'

En cada uno de los usuarios (root y kali), configuraremos a false la siguiente directiva.

1
2
  ## Display anchor directory segments in bold.
  typeset -g POWERLEVEL9K_DIR_ANCHOR_BOLD=false

Ahora, configuraremos para que la .zshrc del usuario root sea la misma que la del usuario kali, por lo que vamos a crear un link simbólico.

1
2
sudo su
ln -s -f /home/kali/.zshrc /root/.zshrc

Vamos a configurar los permisos del fichero /usr/local/share/zsh/site-functions/_bspc, ya que tiene que ser propietario root.

1
chown root:root /usr/local/share/zsh/site-functions/_bspc

Seguidamente, cargamos los plugins que hemos instalado anteriormente, en la ~/.zshrc del usuario NO privilegiado.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
## ZSH Auto Complete
if [ -f /usr/share/zsh-autocomplete/zsh-autocomplete.plugin.zsh ]; then
	source /usr/share/zsh-autocomplete/zsh-autocomplete.plugin.zsh
fi

## ZSH Auto Suggestions
if [ -f /usr/share/zsh-autosuggestions/zsh-autosuggestions.zsh ]; then
	source /usr/share/zsh-autosuggestions/zsh-autosuggestions.zsh
fi

## ZSH Syntax Highlighting
if [ -f /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh ]; then
	source /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
fi

En mi caso, el plugin de zsh-autocomplete no lo voy a usar por lo que eliminaré el directorio /usr/share/zsh-autocomplete/ y lo quitare del ~/.zshrc. También, eliminaré las líneas del ~/.zshrc de cada usuario que hacían referencia a la instalación (source /usr/share/zsh-autocomplete y git -C /usr/share/zsh-autocomplete pull &>/dev/null).

También, configuraremos el plugin zsh-sudo. Para ello, como root, ejecutamos los siguientes comandos.

1
2
3
4
sudo su
mkdir /usr/share/zsh-sudo
cd /usr/share/zsh-sudo
wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/refs/heads/master/oh-my-zsh.sh

Y lo metemos en el /.zshrc del usuario NO privilegiado.

1
2
3
4
## ZSH Sudo
if [ -f /usr/share/zsh-sudo/oh-my-zsh.sh ]; then
	source /usr/share/zsh-sudo/oh-my-zsh.sh
fi

Por último, desde el directorio /usr/share/zsh-sudo, nos traeremos los siguientes ficheros.

1
2
wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/refs/heads/master/tools/check_for_upgrade.sh
wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/refs/heads/master/lib/compfix.zsh

Y los meteremos en tools/ y lib/.

1
2
mv check_for_upgrade.sh tools/
mv compfix.zsh lib/

También, añadiremos la siguiente línea para configurar un autocompletado moderno.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
## Use modern completion system
autoload -Uz compinit
compinit

zstyle ':completion:*' auto-description 'specify: %d'
zstyle ':completion:*' completer _expand _complete _correct _approximate
zstyle ':completion:*' format 'Completing %d'
zstyle ':completion:*' group-name ''
zstyle ':completion:*' menu select=2
eval "$(dircolors -b)"
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
zstyle ':completion:*' list-colors ''
zstyle ':completion:*' list-prompt %SAt %p: Hit TAB for more, or the character to insert%s
zstyle ':completion:*' matcher-list '' 'm:{a-z}={A-Z}' 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=* l:|=*'
zstyle ':completion:*' menu select=long
zstyle ':completion:*' select-prompt %SScrolling active: current selection at %p%s
zstyle ':completion:*' use-compctl false
zstyle ':completion:*' verbose true

zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#)*=0=01;31'
zstyle ':completion:*:kill:*' command 'ps -u $USER -o pid,%cpu,tty,cputime,cmd

Instalación de Batcat y Lsd

A continuación, instalaremos bat y lsd desde los repositorios oficiales de cada uno, que son bat y lsd. Nos ponemos como un usuario NO privilegiado y lo descargamos en ~/Downloads/.

1
2
3
cd ~/Downloads
wget https://github.com/sharkdp/bat/releases/download/v0.24.0/bat-musl_0.24.0_amd64.deb
wget https://github.com/lsd-rs/lsd/releases/download/v1.1.5/lsd-musl_1.1.5_amd64.deb

Ahora, nos ponemos como root y los instalamos.

1
2
3
sudo su
dpkg -i bat-musl_0.24.0_amd64.deb
dpkg -i lsd-musl_1.1.5_amd64.deb

Vamos a quitar la negrita a la hora de hacer un ls, por lo que vamos a modificar el fichero ~/.zshrc como el usuario kali para añadir la línea que configure la variable LS_COLORS.

1
2
## LS_COLORS sin negrita (01;)
export LS_COLORS="rs=0:di=34:ln=36:mh=00:pi=40;33:so=35:do=35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=00:tw=30;42:ow=34;42:st=37;44:ex=32:*.tar=31:*.tgz=31:*.arc=31:*.arj=31:*.taz=31:*.lha=31:*.lz4=31:*.lzh=31:*.lzma=31:*.tlz=31:*.txz=31:*.tzo=31:*.t7z=31:*.zip=31:*.z=31:*.dz=31:*.gz=31:*.lrz=31:*.lz=31:*.lzo=31:*.xz=31:*.zst=31:*.tzst=31:*.bz2=31:*.bz=31:*.tbz=31:*.tbz2=31:*.tz=31:*.deb=31:*.rpm=31:*.jar=31:*.war=31:*.ear=31:*.sar=31:*.rar=31:*.alz=31:*.ace=31:*.zoo=31:*.cpio=31:*.7z=31:*.rz=31:*.cab=31:*.wim=31:*.swm=31:*.dwm=31:*.esd=31:*.avif=35:*.jpg=35:*.jpeg=35:*.mjpg=35:*.mjpeg=35:*.gif=35:*.bmp=35:*.pbm=35:*.pgm=35:*.ppm=35:*.tga=35:*.xbm=35:*.xpm=35:*.tif=35:*.tiff=35:*.png=35:*.svg=35:*.svgz=35:*.mng=35:*.pcx=35:*.mov=35:*.mpg=35:*.mpeg=35:*.m2v=35:*.mkv=35:*.webm=35:*.webp=35:*.ogm=35:*.mp4=35:*.m4v=35:*.mp4v=35:*.vob=35:*.qt=35:*.nuv=35:*.wmv=35:*.asf=35:*.rm=35:*.rmvb=35:*.flc=35:*.avi=35:*.fli=35:*.flv=35:*.gl=35:*.dl=35:*.xcf=35:*.xwd=35:*.yuv=35:*.cgm=35:*.emf=35:*.ogv=35:*.ogx=35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:*~=00;90:*#=00;90:*.bak=00;90:*.crdownload=00;90:*.dpkg-dist=00;90:*.dpkg-new=00;90:*.dpkg-old=00;90:*.dpkg-tmp=00;90:*.old=00;90:*.orig=00;90:*.part=00;90:*.rej=00;90:*.rpmnew=00;90:*.rpmorig=00;90:*.rpmsave=00;90:*.swp=00;90:*.tmp=00;90:*.ucf-dist=00;90:*.ucf-new=00;90:*.ucf-old=00;90:"

También, vamos a crear unos aliases para poder ejecutar y cat y lsd.

1
2
3
4
5
6
7
8
9
10
11
12
13
## Custom Aliases
#------------------------------------
## bat
alias cat='bat'
alias catn='bat --style=plain'
alias catnp='bat --style=plain --paging=never'

## ls
alias ll='lsd -lh --group-dirs=first'
alias la='lsd -a --group-dirs=first'
alias l='lsd --group-dirs=first'
alias lla='lsd -lha --group-dirs=first'
alias ls='lsd --group-dirs=first'

En este punto, vamos a arreglar los posibles problemas que nos puede dar BurpSuite.

Blog para arreglar los problemas de BurpSuite
https://medium.com/@fidjolakoka/burpsuite-no-longer-launches-after-parrot-upgrade-d1c6b17cb70d

Vamos a seguir sus pasos. Primeramente, nos vamos al directorio de Downloads/ como un usuario NO privilegiado y ejecutamos los siguientes comandos.

1
2
3
wget https://download.java.net/java/GA/jdk21.0.2/f2283984656d49d69e91c558476027ac/13/GPL/openjdk-21.0.2_linux-x64_bin.tar.gz
tar xvf openjdk-21.0.2_linux-x64_bin.tar.gz
sudo mv jdk-21.0.2/ /usr/lib/jvm/jdk-21

Actualizamos la configuración de BurpSuite con el comando geany. Si no lo tenemos instalado, lo instalaremos.

1
sudo apt install geany -y

Ejecutamos el comando de geany para sustituir toda la ruta de /usr/lib/jvm/java-17-openjdk-$(dpkg-architecture -q DEB_HOST_ARCH)/bin/java por la línea /usr/lib/jvm/jdk-21/bin/java.

1
sudo geany /usr/bin/burpsuite

El fichero debería de quedar de la siguiente manera.

1
2
3
4
5
6
7
8
9
10
#!/usr/bin/env sh

set -e

export JAVA_CMD=/usr/lib/jvm/jdk-21/bin/java

## Include the wrappers utility script
. /usr/lib/java-wrappers/java-wrappers.sh

run_java -jar /usr/share/burpsuite/burpsuite.jar "$@"

Una vez configurado, lo guardamos seleccionando File + Save. Pero, si lo abrimos, veremos cómo se nos abre en una esquina sin llegar a abrirlo en tamaño completo. Para arreglar esto, vamos a meter el siguiente contenido en el fichero ~/.zshrc del usuario kali.

1
2
## Fix the Java Problem
export _JAVA_AWT_WM_NONREPARENTING=1

Y ahora, editaremos el fichero ~/.config/bspwm/bspwmrc.

1
wmname LG3D &

Seguidamente, hacemos un super + shift + q para volver a iniciar sesión y que se apliquen los cambios. De esta manera, ya podemos abrir BurpSuite perfectamente sin fallos.

Ahora, vamos a hacer que funcione correctamente si lo abrimos desde rofi. Para ello, nos vamos a cualquier ruta del $PATH como /usr/bin y creamos el fichero burpsuite-launcher.

1
2
3
sudo su
cd /usr/bin
touch burpsuite-launcher

El contenido de este fichero burpsuite-launcher es el siguiente.

1
2
3
4
5
6
7
#!/bin/bash

## Fix the Java Problem
export _JAVA_AWT_WM_NONREPARENTING=1

vmname LG3d &
/usr/bin/burpsuite

Con esto, podremos ejecutar BurpSuite correctamente desde rofi seleccionando burpsuite-launcher.

Configurando y creando nuevos módulos en la Polybar

Dentro del directorio ~/.config/ del usuario kali tenemos un directorio polybar.

1
cd ~/.config/polybar

El fichero launch.sh definen los elementos / barras que estamos cargando y, con el fichero current.ini podemos manejar las dimensiones y posición de las barras que hemos creado en el launch.sh. Introduciremos el contenido de los ficheros de configuración completos. Podemos copiar este contenido desde launch.sh y current.ini.

Una vez que hemos copiado el contenido de launch.ini y current.ini, crearemos una carpeta ~/.config/scripts con los siguientes scripts.

  • ethernet_status.sh ➜ Muestra la interfaz eth0 en la polybar.
  • ethernet2_status.sh ➜ Muestra la interfaz eth1 en la polybar.
  • change_ethernet.sh ➜ Con el shortcut alt + shift + c cambiará que interfaz nos muestra (eth0 o eth1) cambiando el contenido del fichero ethernet_status.sh por el de ethernet2_status.sh
  • interface_active.sh ➜ Muestra si estamos con la eth0 (icono de un pc) o con la eth1(icono de windows / ventanas).
  • vpn_status.sh ➜ Muestra la VPN a la que estamos conectados (tun0 o tun1).
  • victim_to_hack.sh ➜ Muestra el target a hackear. Se cambia con settarget y se borra con cleartarget.

Una vez que tengamos esto en la carpeta de scripts les daremos permisos de ejecución a todos.

1
chmod 755 ~/.config/scripts/*

A continuación, vamos a configurar el shortcut alt + shift + c par que funcione correctamente el script de change_ethernet.sh. Para ello, nos vamos a ~/.config/sxhkd/sxhkdrc y metemos lo siguiente.

1
2
3
## Cambiar para ver la IP eth0 o la eth1
alt + shift + c
    /home/kali/.config/scripts/change_ethernet.sh

Después, configuraremos las siguientes funciones settarget y cleartarget en la ~/.zshrc para que funcione correctamente la polybar de victim_to_hack.sh.

1
2
3
4
5
6
7
8
9
10
11
## Configurar target
function settarget(){
    ip_address=$1
    machine_name=$2
    echo "$ip_address $machine_name" > /home/kali/.config/bin/target
}

## Limpiar el target
function cleartarget(){
    echo '' > /home/kali/.config/bin/target
}

Ahora, crearemos el directorio ~/.config/bin para que se pueda crear el fichero target.

1
mkdir ~/.config/bin/

Por último, vamos a modificar el fichero ~/.config/polybar/workspace.ini para modificar los colores de la barra de ventanas.

1
2
3
4
5
6
label-active-foreground = ${color.red}
label-active-background = ${color.bg}

label-occupied = "%icon% "
label-occupied-foreground = ${color.yellow}
label-occupied-background = ${color.bg}

Instalando fzf

Para instalar fzf, nos iremos al repositorio oficial de GitHub y como indican, ejecutaremos los siguientes comandos tanto como el usuario NO privilegiado como con el privilegiado.

1
2
3
4
5
6
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install

sudo su
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install

Las opciones de cada uno son las de por defecto, por lo que le daremos ENTER a las tres opciones que te preguntan.

Configuración e integración de NVchad en Neovim

Nos ponemos como un usuario NO privilegiado y nos vamos al /home/kali/. Ahora, seguiremos los pasos que indican en la instalación del repositorio oficial de GitHub aunque con algunos cambios.

1
2
cd
git clone https://github.com/NvChad/starter ~/.config/nvim

Ahora, nos descargamos el último release de nvim desde el repo de GitHub en el directorio /opt/nvim

1
2
3
4
sudo mkdir /opt/nvim
cd /opt/nvim
sudo wget https://github.com/neovim/neovim/releases/download/v0.10.2/nvim-linux64.tar.gz
sudo tar -xf nvim-linux64.tar.gz

Deberemos de contemplar en el $PATH la ruta /opt/nvim/nvim-linux64/bin que es donde se encuentra el binario de nvim. Para ello, en caso de no tener ninguna ruta configurada en el ~/.zshrc que defina el PATH la crearemos nosotros.

1
2
## Export PATH
export PATH=$PATH:/opt/nvim/nvim-linux64/bin

A continuación, abriremos una nueva ventana en la consola y ejecutamos el comando nvim.

1
nvim

Una vez terminada la instalación, nos salimos con :q!(puede que tengamos que ejecutar ese comando dos o tres veces hasta salir definitivamente).

Finalizando, vamos a irnos al fichero de configuración ~/.config/nvim/init.lua e introduciremos debajo de las dos primeras líneas vim.opt.listchars = "tab:»·,trail:·". También, podemos copiarlo del pastebin.

1
2
3
4
5
6
vim.g.base46_cache = vim.fn.stdpath "data" .. "/base46/"
vim.g.mapleader = " "

vim.opt.listchars = "tab:»·,trail:·" ## Esta es la línea que hemos añadido

-- bootstrap lazy and all plugins

Ahora, ejecutaremos el comando updatedb.

1
updatedb

Después, vamos a abrir cualquier fichero .lua y ejecutaremos el comando :MasonInstallAll para evitar que nos den errores a la hora de abrir ciertos tipos de archivos como los .lua.

1
:MasonInstallAll

Realizaremos estos mismos pasos de integración y configuración de nvchad con el usuario root.

Configurando tema para rofi

Nos vamos a ir a /opt y nos clonaremos el siguiente repositorio.

1
2
cd /opt
sudo git clone https://github.com/newmanls/rofi-themes-collection

Seguidamente, en caso de que no esté creado, nos crearemos el directorio ~/.config/rofi/themes.

1
mkdir -p ~/.config/rofi/themes

Y copiaremos todo el contenido de /opt/rofi-themes-collection/themes en ~/.config/rofi/themes.

1
cp /opt/rofi-themes-collection/themes/* ~/.config/rofi/themes

Ejecutamos el comando rofi-themes-selector y seleccionamos el tema que más nos guste. Para ir viendo cada uno, nos iremos moviendo con las flechas de arriba y abajo y dándole a ENTER en el tema que queramos ver. En mi caso, el que más me gustó fue el rounded-green-dark. Una vez que tengamos el tema que nos gusta seleccionado, lo configuraremos con la combinación de teclas ALT + a.

1
ALT + a

Configurando certificado de BurpSuite

Por último, configuraremos el certificado de BurpSuite. Para ello, abrimos BurpSuite y configuramos el proxy utilizando una extensión como FoxyProxy o directamente configurándolo en el navegador. Una vez hecho esto, accedemos a la siguiente URL para continuar con el proceso.

URL para descargar el certificado de BurpSuite
http://burp/

Nos descargamos el certificado desde el botón de Ca Certificate.

Descargandonos el certificado de BurpSuite

Y ahora lo importamos.

Importando el certificado de BurpSuite

Seleccionamos la siguiente opción y le damos a Aceptar.

Confiar en esta CA de BurpSuite para identificar sitios web

Comandos Nvchad

Con nvchad, podemos configurar Temas. Ejecutaremos la combinación de teclas ESC + ESPACIO + th y seleccionaremos el tema deseado.

1
ESC + ESPACIO + th

Con CTRL + n podemos abrir una barra lateral que nos permita movernos entre directorios.

1
CTRL + n

Podemos buscar archivos dentro de nuestro directorio actual de trabajo con ESC + ESPACIO + ff.

1
ESC + ESPACIO + ff

Si queremos ver el mismo archivo pero para comparar diferentes lugares de este y no perder el punto de vista actual, podemos ejecutar el comando ESC + :vsp o ESC + :sp y nos creará una copia idéntica con la que podemos movernos.

1
2
ESC + :vsp ## Nos lo abre a la derecha
ESC + :sp ## Nos lo abre debajo

Si queremos ver el CheatSheet del propio nvchad, podemos efectuar la combinatoria ESC + ESPACIO + ch.

1
ESC + ESPACIO + ch

Borrando el contenido de descargas

Eliminamos todo el contenido de descargas y hemos terminado de personalizar el laboratorio

1
rm -rf ~/Downloads

Créditos

Quiero agradecer a Marcelo Vázquez, aka s4vitar quien ha configurado el entorno y me ha dado permiso para publicar este blog. Marcelo Vázquez es CEO y fundador de la academia de hacking ético Hack4u, pentester, YouTuber, Streamer y un gran ejemplo a seguir. A continuación, os comparto sus redes sociales para que podáis mostrarle vuestro apoyo.

  • LinkedIn
  • Github
  • Canal Principal de YouTube
  • Canal Secundario de YouTube
  • Twitch

Despedida

Espero que con este entorno os sintáis más cómodos y mejoréis vuestra eficiencia. Muchas gracias por leer este blog. ¡Nos vemos en el siguiente!

Entorno finalizado

Esta entrada está licenciada bajo CC BY 4.0 por el autor.