Mi Ubuntu Desktop — Puesta a punto de una máquina de escritorio

Ubuntu recién instalado

Abre una terminal y teclea:

echo "" >> ~/.bashrc
echo "export EDITOR=nano" >> ~/.bashrc

Esto pone a nano como el editor por defecto, en lugar de vi.

Para activar el firewall, teclea en la terminal:

sudo ufw enable

Cambia los servidores de DNS a los de Google: Configure your network settings to use Google Public DNS.

Para activar los espacios de trabajo, busca en Unity: Apariencia → Comportamiento y da clic sobre Activar las áreas de trabajo.

Para modificar el número de áreas de trabajo (ej: 3) en la horizontal:

gsettings set org.compiz.core:/org/compiz/profiles/unity/plugins/core/ hsize 3

Para modificar el número de áreas de trabajo (ej: 2) en la vertical:

gsettings set org.compiz.core:/org/compiz/profiles/unity/plugins/core/ vsize 2

Busca e instala actualizaciones

Ya sea con la aplicación de Actualización de software o con:

sudo apt-get update
sudo apt-get upgrade

Ten en cuenta que la lista de los paquetes por actualizar en Actualización de software y apt-get upgrade puede variar un poco debido a: Phasing of Stable Release Updates (a veces en Actualización de software dice que está todo al día, pero al ejecutar apt-get upgrade te da una lista de paquetes que si necesitan actualización).

Ubuntu en una MacBook Pro

Si estás instalando Ubuntu en una MacBook Pro encontrarás útil lo que viene a continuación.

Ajusta el teclado

Para intercambiar las teclas Command y Alt (para que queden al estilo de un teclado de PC):

Con efecto inmediato pero temporal:

echo 1 | sudo tee /sys/module/hid_apple/parameters/swap_opt_cmd

Para hacerlo permanente:

echo options hid_apple swap_opt_cmd=1 | sudo tee -a /etc/modprobe.d/hid_apple.conf
sudo update-initramfs -u -k all

Para cambiar el comportamiento de las teclas de función (para bajar el brillo ahora tendrás que presionar FN + F1):

Con efecto inmediato pero temporal:

echo 2 | sudo tee /sys/module/hid_apple/parameters/fnmode

Para hacerlo permanente:

echo options hid_apple fnmode=2 | sudo tee -a /etc/modprobe.d/hid_apple.conf
sudo update-initramfs -u -k all

Pega con una tecla

Si vas a usar sólo el teclado de la laptop, recomiendo mapear alguna de las teclas menos usadas (como el Command de la derecha) para que funcione como si le hicieras clic con el botón medio del ratón.

sudo apt-get install xkbset
echo "" >> ~/.bashrc
echo "xmodmap -e \"keycode 134 = Pointer_Button2\"; xkbset m" >> ~/.bashrc

Ajusta la escala de la UI

La pantalla Retina hace que todo se vea demasiado pequeño, para escalarla:

Busca en Unity: Monitores → Escala de menús y barras de título y ponle un valor como 1.25 o 1.5.

Ajusta el touchpad

Si el puntero salta de un lado a otro mientras arrastras algo por la pantalla, será mejor que instales libinput:

sudo apt-get install xserver-xorg-input-libinput

Para personalizar el comportamiento del trackpad necesitas modificar el archivo:
/usr/share/X11/xorg.conf.d/60-libinput.conf

Log out, log in… enjoy! 🙂

Software de cajón

Algunas cosas útiles que he encontrado a través de los años y que siempre termino instalando:

sudo apt-get install alpine testdisk mlock gddrescue transmission byobu \
comix gimp gimp-ufraw gnote inkscape anki fail2ban logwatch chkrootkit rkhunter nethogs \
unrar curl nmap htop mtr-tiny pdftk wkhtmltopdf imagemagick poppler-utils \
pandoc gdal-bin network-manager-openvpn-gnome libgeoip-dev libav-tools python-dev

Guía para rkhunter.

Navegador

Mi navegador preferido para desarrollo web: Google Chrome

Si tienes problemas para instalar Chrome, revisa este enlace: Cómo instalar Google Chrome en Ubuntu

Si quieres instalar la versión beta o la de desarrollo: Chrome Release Channels

Para activar el WebGL a veces es necesario entrar a: chrome://gpu/
Instalar chat de voz y video para gmail: Chat de vídeo y voz de Google

Para activar el click to play para Flash:
ConfiguraciónMostrar configuración avanzada…PrivacidadConfiguración de contenidoComplementosPermitirme elegir cuándo ejecutar contenido de complementos

Plugins

ColorZilla: Advanced Eyedropper, Color Picker, Gradient Generator and other colorful goodies.
Postman – REST Client: Postman helps you be more efficient while working with APIs.
EditThisCookie: EditThisCookie is a cookie manager. You can add, delete, edit, search, protect and block cookies!
uBlock Origin: An efficient blocker. Easy on CPU and memory.
JSON Formatter: Makes JSON easy to read. Open source.
Google Cast: Permite enviar contenido al Chromecast y a otros dispositivos que admitan Google Cast (versión BETA).
Videostream for Google Chromecast: Play your downloaded videos on the Chromecast™ (any file type).
ClearBrowserData: Clear all browser data with one simple click.

Activa TRIM para mejorar el rendimiento de tu disco duro de estado sólido

Si cuentas con un SSD, lo más recomendable es que pongas un trabajo cron a realizar las tareas de mantenimiento que necesita este tipo de disco duro:
Enable TRIM on SSD in Ubuntu for better performance (Using a daily cron job – recommended)

Verifica que el comando fstrim funciona adecuadamente en tu equipo:

sudo fstrim -v /

Si todo sale bien, verás algo como:
/: 2.5 GiB (2688892928 bytes) trimmed

Entonces, teclea en la terminal:

sudo nano /etc/cron.daily/trim

Agrégale este contenido:

#!/bin/sh
LOG=/var/log/trim.log
echo "*** $(date -R) ***" >> $LOG
fstrim -v / >> $LOG

Si tienes otras particiones en el SSD agrégalas al final del script anterior.

No olvides hacer ejecutable el script:

sudo chmod +x /etc/cron.daily/trim

Ubuntu para desarrollo de software

git es mi herramienta predilecta para control de versiones, y la necesito para instalar mi ambiente de trabajo: rbenv, nvm, pyenv, etc.

Aquí la guía de: Cómo instalar git

Para facilitar los cambios de directorio en la terminal: z

git clone https://github.com/rupa/z ~/z
echo ". ~/z/z.sh" >> ~/.bashrc

Aquí la guía de: Cómo instalar Ruby

Si te interesa el gamedev en Ruby, checa los prerequisitos para Ubuntu aquí: Getting Started on Linux

Y estas las gemas necesarias para darle rienda suelta al hobby:

gem install gosu chipmunk texplay lotu

Este es un mini demo que hice inspirado en el venerable Missile Command:

gem install missile-command-ruby

Instala Elixir con: Installing Elixir.

Para el manejador de versiones de Python: pyenv.

Instala Node.js con esta guía.
Instala PostgreSQL con esta guía.
Instala RethinkDB con esta guía.
Instala Redis con esta guía.

Instala OpenJDK Java con esta guía u Oracle Java con esta otra.

Las IDEs de JetBrains como IntelliJ (y demás) necesitan que se configure de manera particular el Inotify Watches Limit:

sudo apt-get install inotify-tools

Ubuntu desktop y entretenimiento

Instala calibre.

Para ajustar los tonos del monitor de acuerdo a la hora del día

Antes recomendaba f.lux, pero ya no hay repo actualizado y al parecer no funcionaba en algunos equipos. He probado Redshift y jala bastante bien.

sudo apt-get install redshift-gtk geoclue-hostip

Durante la noche, teclea en la terminal:

redshift-gtk &

Para escuchar música

Un muy buen reproductor de música: Clementine

sudo apt-get install clementine

Para descargar videos de youtube

Instala youtube-dl

Después de instalar git, clona en un directorio, entra a él y después ejecuta:

make clean
make all
sudo make install

Servidor de medios

Instala Plex Media Server.
Guía de instalación.

Para poder conectar algún dispositivo como una Smart TV a tu servidor Plex, debes abrir el puerto 32400 en el firewall. Teclea en la terminal:

sudo ufw allow from 192.168.x.x to any port 32400

Cambia 192.168.x.x por la dirección IP de tu Smart TV.

Si tus videos y películas están en otro disco duro, recuerda darle permisos 755 al directorio /media/$USER:

sudo chmod 755 /media/$USER

De otra forma Plex no podrá leer tus archivos.

Cómo instalar git en Ubuntu 16.04

Unos artículos atrás había comentado ya, un poco acerca de git y cuan grandioso es. 🙂

Instalación

Abre una terminal y teclea:

sudo apt-get install git

Listo, ya puedes usar git.

Para probar tu instalación teclea esto:

git --version

En mi caso presenta: git version 2.7.4.

Configuración

Es recomendable ejecutar los siguientes comandos para propósitos de identificación. Estos datos serán utilizados para marcar los commits que realices.

git config --global user.name "Pon aquí tu nombre"
git config --global user.email "pon@aqui.tu.correo"

Para tener texto en color:

git config --global color.ui "auto"

Para habilitar la detección automática del número de hilos a usar al empacar repositorios (bueno para computadoras multi-CPU o multi-núcleo):

git config --global pack.threads "0"

Since Git 2.0, Git defaults to the more conservative ‘simple’ behavior, which only pushes the current branch to the corresponding remote branch that ‘git pull’ uses to update the current branch.

git config --global push.default simple

Aquí algunos alias que tengo dados de alta en mi ~/.gitconfig, ayudan a teclear menos en la terminal:

[alias]
    l = log --oneline --decorate --graph
    co = checkout
    ci = commit
    man = help
    h = help
    a = add
    f = fetch
    d = diff
    dc = diff --cached
    dt = difftool
    dtc = difftool --cached
    ds = diff --stat
    dsc = diff --stat --cached
    s = status --short --branch
    b = branch
    lg = log --graph --abbrev-commit --decorate --date=relative --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)'
    lgb = log --graph --abbrev-commit --decorate --date=relative --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --branches
 
[credential]
    helper = cache
 
[diff]
    algorithm = patience

Para tener un .gitignore global:

git config --global core.excludesfile ~/.gitignore_global

Para ignorar los archivos de las IDEs de JetBrains:

echo ".idea/" >> ~/.gitignore_global

Para el adecuado manejo de los comienzos de línea:

git config --global core.autocrlf input
# Configure Git on Linux to properly handle line endings

GitHub Social Code Hosting

Si tienes un proyecto open source y quieres un servicio de hospedaje de código y control de versiones premium sin pagar un centavo, prueba con GitHub.
También cuentan con soporte para proyectos privados en planes.

Tutoriales