Debian10 Desktop for 2021

Intro


Hoy vamos a tunear nuestro Debian 10 instalado desde cero para ponerlo a nuestro gusto.

Video


PreRequisito


Hemos instalado en Virtualbox la ultima version de Debian 10 seleccionando unicamente las utilidades basicas del sistema.

Configurar sources.list


Una vez arrancamos el sistema, nos logueamos como root y modificamos los sources list.

nano /etc/apt/sources.list
Y agregamos:

deb http://deb.debian.org/debian buster main contrib
deb http://deb.debian.org/debian buster main contrib non-free
Una vez hemos agregado los sources.list hacemos un update y upgrade del sistema.

apt-get update && apt-get upgrade

Instalacion software basico


Para continuar instalaremos el siguiente software como root.

apt-get install git lightdm i3-wm feh sudo unzip rofi p7zip-full rxvt-unicode gcc

Agregar nuestro usuario a sudo



nano /etc/sudoers
Y agregamos la linea:

nuestro_user ALL=(ALL:ALL) ALL

Instalando las VBOX Tools


Las Virtualbox tools nos van a permitir agregar funcionalidades como el uso de clipboard, el tema de la resolucion de pantalla y demas. Asi que en nuestra VM en Virtualbox deberemos hacer clic en Devices -> Insert Guest Additions... Una vez hecho, instalaremos las tools ejecutando los siguientes comandos como root.

apt-get install build-essential dkms linux-headers-$(uname -r)
sudo mkdir -p /mnt/cdrom
sudo mount /dev/cdrom /mnt/cdrom
sh ./VBoxLinuxAdditions.run 
Una vez reiniciado el equipo, ya deberia estar todo correcto.

Tuneando URXVT


RXVT-Unicode va a ser la terminal que vamos a usar en este tutorial, asi que para darle un poco de color vamos a crear el fichero ~/.Xdefaults logueados con nuestro usuario.

nano ~/.Xdefaults
Y le agregamos el contenido de abajo.

URxvt.transparent: true
URxvt.shading: 20
URxvt*termName: rxvt-256color
URxvt*xftAntialias: true
URxvt*background: #3f3f3f
URxvt*foreground: #dcdccc
URxvt*cursorColor: #aaaaaa
URxvt*colorUL: #669090
URxvt*underlineColor: #dfaf8f
URxvt*color0: #3f3f3f
URxvt*color1: #cc9393
URxvt*color2: #7f9f7f
URxvt*color3: #d0bf8f
URxvt*color4: #6ca0a3
URxvt*color5: #dc8cc3
URxvt*color6: #93e0e3
URxvt*color7: #dcdccc
URxvt*color8: #000000
URxvt*color9: #dca3a3
URxvt*color10: #bfebbf
URxvt*color11: #f0dfaf
URxvt*color12: #8cd0d3
URxvt*color13: #dc8cc3
URxvt*color14: #93e0e3
URxvt*color15: #ffffff
URxvt.scrollBar: false
URxvt*font: xft:Inconsolata:size=10
Al abrir un terminal, ya deberiamos verlo algo mas bonito :)

Instalar rofi


Rofi nos va a permitir lanzar programas. Ya lo instalamos en los pasos previos pero ahora para darle un poco de vidilla podemos visitar: https://github.com/davatorium/rofi-themes Echamos un vistazo a los temas que hay, y cuando encontremos un tema que nos guste, nos lo descargamos y guardamos como config.rasi en el directorio ~/.config/rofi. En nuestro caso usaremos el theme de arthur asi que ejecutaremos lo siguiente, como nuestro usuario:

mkdir -p ~/.config/rofi
cd ~/.config/rofi
wget https://raw.githubusercontent.com/davatorium/rofi-themes/master/Official%20Themes/arthur.rasi -O config.rasi

Instalar fuentes


Para el tema de la fuente e iconos usaremos la Nerd fonts. Para instalarlas, ejecutaremos como root los siguientes comandos:

cd ~
wget https://github.com/ryanoasis/nerd-fonts/releases/download/v2.1.0/Hack.zip
mv Hack.zip /usr/local/share/fonts
cd /usr/local/share/fonts
unzip Hack.zip
rm Hack.zip

Instalar Polybar


Vamos a usar polybar en lugar de la i3status bar para tener una barra que nos muestre la fecha, la ip y los datos que queramos. Para instalar polybar primero instalamos los requisitos ejecutando como root los siguientes comandos:

mkdir -p ~/.config/polybar
apt install build-essential git cmake cmake-data pkg-config python3-sphinx libcairo2-dev libxcb1-dev libxcb-util0-dev libxcb-randr0-dev libxcb-composite0-dev python-xcbgen xcb-proto libxcb-image0-dev libxcb-ewmh-dev libxcb-icccm4-dev
Una vez instalado, ejecutamos los siguientes comandos tambien como root.

cd /opt
wget https://github.com/polybar/polybar/releases/download/3.5.2/polybar-3.5.2.tar.gz
tar -xf polybar-3.5.2.tar.gz
cd /opt/polybar
./build.sh
Y con esto ya lla tendriamos instalada. Ahora deberiamos agregar la siguiente configuracion al fichero: ~/.config/polybar/config

;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
;;
;;          ____        __      __
;;         / __ \____  / /_  __/ /_  ____ ______
;;        / /_/ / __ \/ / / / / __ \/ __ `/ ___/
;;       / ____/ /_/ / / /_/ / /_/ / /_/ / /
;;      /_/    \____/_/\__, /_.___/\__,_/_/
;;                    /____/
;;
;; Created By Aditya Shakya @adi1090x
;;
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_

;; Global WM Settings

[global/wm]
margin-bottom = 5
margin-top = 5

;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_

;; Bar Settings
[bar/main]
monitor =
monitor-fallback =
monitor-strict = false
override-redirect =false
top = true
fixed-center = true
width = 99%
height = 22
offset-x = 0
offset-y =0
background = ${color.alpha}
foreground = ${color.fg}
radius-top = 0.0
radius-bottom = 0.0
line-size = 2
line-color = ${color.shade5}
border-top-size = 6
border-color = ${color.alpha}
border-bottom-size = 6
padding-left= 1
padding-right= 1
module-margin-left = 0
module-margin-right = 0
font-5 = Material Design Icons:size=12
font-6 = Material Design Icons:size=10
font-0 = fixed:pixelsize=10;1
font-1 = unifont:fontformat=truetype:size=8:antialias=false;0
font-2 = siji:pixelsize=10;1
font-3 = Hack Nerd Font Mono:pixelsize=15;2
modules-left = sep workspaces sep
modules-center = date
modules-right = sep memory sep cpu sep ethernet
separator =
spacing = 0
dim-value = 1.0
wm-name =
locale =
tray-position = right
tray-detached = false
tray-maxsize = 16
tray-background = ${color.bg}
tray-underline = #bf616a
tray-foreground = #282828
tray-offset-x = 0
tray-offset-y = 0
tray-padding = 0
tray-scale = 1
enable-ipc = true
click-left =
click-middle =
click-right =
scroll-up =
scroll-down =
double-click-left =
double-click-middle =
double-click-right =
cursor-click =
cursor-scroll =
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_

;; Application Settings
[settings]
throttle-output = 5
throttle-output-for = 10
compositing-background = source
compositing-foreground = over
compositing-overline = over
compositing-underline = over
compositing-border = over
format-margin =0
pseudo-transparency = true

;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
;;
;;         ______      __
;;        / ____/___  / /___  __________
;;       / /   / __ \/ / __ \/ ___/ ___/
;;      / /___/ /_/ / / /_/ / /  (__  )
;;      \____/\____/_/\____/_/  /____/
;;
;; Created By Aditya Shakya @adi1090x
;;
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_

[color]
bg = #2E3440
bg2 = #3B4252
bg3 = #434C5E
bg4 = #4C566A
fg = #ECEFF4
fg-alt = #4C566A
alpha = #00000000
shade1 = #c5c8c6
shade2 = #d08870
shade3 = #81a1c1
shade4 = #ebcb8b
shade5 = #a3be8c
shade6 = #8fbcbb
shade7= #4c566a

;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
;;
;;          __  ___          __      __
;;         /  |/  /___  ____/ /_  __/ /__  _____
;;        / /|_/ / __ \/ __  / / / / / _ \/ ___/
;;       / /  / / /_/ / /_/ / /_/ / /  __(__  )
;;      /_/  /_/\____/\__,_/\__,_/_/\___/____/
;;
;; Created By Aditya Shakya @adi1090x
;;
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_

;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
[module/date]
type = internal/date
interval = 1.0
time =   %I:%M %p
time-alt =  %Y-%m-%d%
format = 

Retocando ultimas configs


Por la parte de "polybar" queremos que se vea nuestra direccion IP de nuestra interfaz enp0s3, asi que creamos un script con nuestro usuario:

touch ~/.config/polybar/ethernet.sh
Con el siguiente contenido:

#!/bin/sh
echo "$(/usr/bin/ip a show enp0s3 | grep "inet " | awk '{print $2}')"
Y le damos permiso de ejecucion.

chmod +x ~/.config/polybar/ethernet.sh
Por la parte de i3 creamos el siguiente script con nuestro usuario.

touch ~/.config/i3/polybar.sh
Con el siguiente contenido:

#!/usr/bin/env sh
killall -q polybar
while pgrep -x polybar >/dev/null; do sleep 1; done
polybar main &
y le damos permiso de ejecucion.

chmod +x ~/.config/i3/polybar.sh
Por ultimo, modificas el fichero:

nano ~/.config/i3/config
Le agregamos las siguientes lineas:

default_border pixel 1
exec_always --no-startup-id ~/.config/i3/polybar.sh &
exec_always --no-startup-id feh --bg-scale ~/.config/i3/wall.png
bindsym $mod+d exec rofi -modi run -show run
bindsym $mod+Tab exec rofi -show window -show-icons
Hay que tener cuidado ya que ya existe un atajo con bindsym $mod+d, asi que habra que eliminar primero esa linea antes de agregar las anteriores. Hecho esto, eliminamos las que tiene abajo:

bar {
    status_command i3status
}
Y con esto ya estaria :)

Wallpaper


Para configurar el wallpaper ejecutaremos:

wget https://images.hdqwalls.com/wallpapers/anime-girl-walk-in-abondon-city-4k-y5.jpg -O ~/.config/i3/wall.jpg

End?


Ahora solo faltaria instalar el software que vayamos a utilizar normalmente... Las dotfiles podeis encontrarlas en: https://github.com/lacashita/dotfiles