Debian10 Desktop for 2021
Intro
Hoy vamos a tunear nuestro Debian 10 instalado desde
cero para ponerlo a nuestro gusto.
Video
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 =
format-underline = #bf616a
format-background = ${color.bg}
format-padding = 1
label = %time%
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
[module/memory]
type = internal/memory
interval = 5
format =
format-prefix = 礪
format-background = ${color.bg}
format-underline = #bf616a
format-padding = 1
label = " %mb_used%"
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
[module/cpu]
type = internal/cpu
format-background = ${color.bg}
format-underline = #bf616a
interval = 0.5
format =
format-prefix = 菉
label = " %percentage%"
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
[module/ethernet]
type = custom/script
interval = 3
format-prefix =
exec = ~/.config/polybar/ethernet.sh
format-background = ${color.bg}
;format-foreground = ${color.fg}
format-underline = #bf616a
[module/workspaces]
type = internal/xworkspaces
pin-workspaces = false
enable-click = true
enable-scroll = true
label-active-foreground = ${color.fg}
label-active-underline = ${color.fg}
label-active-background = #bf616a
label-occupied-background = ${color.bg}
label-occupied-underline = #bf616a
label-urgent-foreground = ${color.bg}
label-urgent-background = ${color.shade4}
label-empty-background = ${color.bg}
label-empty-foreground = ${color.fg}
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
[module/sep]
type = custom/text
content = "|"
content-background = ${color.alpha}
content-foreground = ${color.alpha}
content-padding = 0
prev = ""
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
;; __________ ______
;; / ____/ __ \/ ____/
;; / __/ / / / / /_
;; / /___/ /_/ / __/
;; /_____/\____/_/
;;
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
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