Álvaro González Sotillo

Configuración de mi nuevo ordenador

Recientemente he jubilado mi Vaio e14 por un Thinkpad e14.

Aunque el hardware ya no aguantaba mucho más, había estado configurándolo a mi gusto durante 8 años, y quería reproducir el mismo entorno de trabajo en el nuevo ordenador. Esta es una lista más o menos completa de los pasos que he seguido, por si necesito volver a configurarlo en el futuro.

Instalación de base

Windows no es una opción una vez que se ha probado la experiencia de no tener publicidad, ni antivirus, ni indexación de ficheros, ni actualizaciones que interrumpen el trabajo. Es posible que un Mac solucionase todos estos problemas, pero el presupuesto y sobre todo la cabezonería no dan para más.

Ubuntu suele ser la mejor opción para el soporte del hardware, aunque Gnome no es de mi gusto. KDE permite una mayor personalización, así que la elección final es Kubuntu.

El nuevo ordenador tiene dos discos nve. He utilizado el disco pequeño para el sistema, y el disco mayor para el directorio /home y /opt.

Para montar un directorio utilizo un mount --bind en el fichero fstab

UUID=ca42fe72-45ec-4b58-85f3-a0c3bbabb84d /         ext4    errors=remount-ro 0 1
UUID=9125dd39-2a6b-4e30-a1a2-d6e5ae9c356c /datos-1T ext4    errors=remount-ro 0 1
/datos-1T/home                            /home     none    defaults,bind     0 0
/datos-1T/opt                             /opt      note    defaults,bind     0 0

Shell

zsh supone una mejora en muchos aspectos a bash. Yo lo uso principalmente por la mejor autocomplección y el mejor manejo de la historia de comandos.

Utilizo el tema por defecto, cambiando el PROPMT para que muestre la hora, usuario, nombre de host y directorio actual.

sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
PROMPT="%{$fg[blue]%}%T %{$fg[cyan]%}%n%{$fg[blue]%}@%{$fg[cyan]%}%m ${PROMPT}"

Mis cosas

Muchos de los programas que utilizo pueden instalarse mediante apt, o con un un paquete .deb

sudo apt install zsh texlive-full inkscape htop tmux git iftop \
                 iotop tcpdump curl silversearcher-ag graphviz \
                 virtualbox pandoc pdftk krita wxmaxima gdebi \
                 kmail korganizer obs-studio kdenlive xclip \
                 gromit-mpx openssh-server qgit screenruler gitk \
                 cifs-utils sshfs printer-driver-cups-pdf ripgrep \
                 unrar shellcheck \
                 nextcloud-desktop dolphin-nextcloud 
wget https://github.com/xournalpp/xournalpp/releases/download/1.1.0/xournalpp-1.1.0-Ubuntu-focal-x86_64.deb
gdebi xournalpp-1.1.0-Ubuntu-focal-x86_64.deb
git config --global user.email "alvaro@thinkpad"
git config --global user.name "alvaro@thinkpad"
git config --global status.showuntrackedfiles=all

emacs

La versión de emacs incluida en ubuntu no está demasiado actualizada. La compilación de lisp a código nativo mejora bastante el (mediocre) rendimiento de emacs.

git clone git://git.sv.gnu.org/emacs.git
cd emacs
sudo apt-get install libtiff-dev build-essential libgtk-3-dev \
                     libtiff5-dev libgif-dev libjpeg-dev libpng-dev \
                     libxpm-dev libncurses-dev autoconf texinfo \
                     libgnutls28-dev libxml2-dev libjansson-dev libgccjit-dev
./autogen.sh 
./configure --with-native-compilation
make
sudo make install

para que los ficheros de texto se abran con emacs:

  xdg-mime default /usr/local/share/applications/emacsclient.desktop text/plain

si no funciona, fichero por fichero: mimeopen -d instalaciones.org

Mi configuración de emacs la guardo en un repositorio de Github.

cd $HOME
git clone https://github.com/alvarogonzalezsotillo/.emacs.d.git

educamadrid y PIM

Como profesor de secundaria, utilizo a diario los servicios de educamadrid.

La nube está basada en onwcloud, pero prefiero utilizar la interfaz web solo en caso de emergencia. Por lo general, sincronizo mis ficheros con un directorio local.

KEY=https://download.owncloud.com/desktop/ownCloud/stable/latest/linux/Ubuntu_20.04/Release.key
wget -nv $KEY -O - | sudo apt-key add -
REPO='deb https://download.owncloud.com/desktop/ownCloud/stable/latest/linux/Ubuntu_20.04/ /'
echo $REPO | sudo tee -a /etc/apt/sources.list.d/owncloud.list
sudo apt install owncloud-client owncloud-client-dolphin

El otro servicio que uso diariamente es el correo. Para ello utilizo el cliente de escritorio kmail conectado a los servidores de pop e imap.

Los contactos y calendario están sincronizados con Google y korganizer.

Autofirma

Utilizo autofirma para firmar PDFs. No consigo que encuentre mis certificados, así que cada vez tengo que encontrar el fichero de claves.

  wget https://estaticos.redsara.es/comunes/autofirma/1/6/5/AutoFirma_Linux.zip
  unzip AutoFirma_Linux.zip
  sudo gdebi AutoFirma_1_6_5.deb

He cambiado la plantilla de la firma visible, porque aunque la firma es igual de válida a veces se me quejan de que no tiene tantos numeritos como la que pone el Acrobat. Para saber qué variables se pueden utilizar, hay que recurrir al código fuente de autofirma.

Firmado por $$SUBJECTCN$$ el día $$SIGNDATE=dd/MM/yyyy$$ con un certificado emitido por $$ISSUERCN$$ con número de serie $$CERTSERIAL$$

Ficheros personales

Dispongo de varias cuentas de office365 que me dan la posibilidad de usar 1TB de disco en la nube. Lamentablemente, la sincronización en linux no está demasiado bien resuelta. Tanto rclone como onedrive son demasiado lentos, y tienen múltiples problemas de throthling.

He acabado contratando un hosting de ficheros. HiDrive ofrece la posibilidad de acceso rsync, sftp y cifs (carpeta compartida de Windows). Esto resuelve el problema de la sincronización (rsync) y el acceso desde cualquier sistema operativo.

Hibernar

Es una realidad incómoda que la hibernación en linux no está nada resuelta. Por suerte, tanto en mi antiguo ordenador como en el nuevo funciona bastante bien uswsusp.

sudo apt install uswsusp pm-tools

Tras instalarlo, y montar una unidad de swap suficientemente grande como para guardar toda la memoria RAM, pm-hibernate consigue hibernar el ordenador sin problemas.

Para poder hibernar cómodamente, he añadido pm-hibernate y s2disk al fichero de sudoers, de forma que no se necesite contraseña. Invoco estos comandos con krunner (se invoca con alt-espacio o alt-f2).

alvaro ALL=(ALL) NOPASSWD: /usr/sbin/pm-hibernate
alvaro ALL=(ALL) NOPASSWD: /usr/sbin/s2disk

Integración con redes windows

Para poder resolver nombres de Windows, además de instalar winbind, hay que añadir winbind a nsswitch.conf

sudo apt install libnss-winbind
hosts:          files winbind mdns4_minimal [NOTFOUND=return] dns

Gestures e input remap

Envidio la facilidad para cambiar de workspace con un simple gesto que tienen los Mac. Se puede conseguir algo muy parecido con libinput-gestures

sudo apt-get install wmctrl xdotool  
git clone https://github.com/bulletmark/libinput-gestures.git
cd libinput-gestures
sudo make install

He cambiado los gestures por defecto para que los workspaces se cambien horizontalmente, y el pellizco se integre con KDE.

gesture pinch in	xdotool key ctrl+F9
gesture pinch out	xdotool key ctrl+F9
gesture swipe right	_internal ws_up
gesture swipe left	_internal ws_down

El teclado del ordenador viene sin la tecla de menú contextual. He remapeado la tecla fn + PrintScr (XF86WakeUp + Print) a Menu, utilizando Input Remapper.

SQLDeveloper y packettracer

Son herramientas que utilizo en clase de redes y bases de datos. Basta con descargar, Descomprimir y gdebi. Para SQLDeveloper se necesita openjdk-11-jdk

sudo apt install openjdk-11-jdk
wget https://download.oracle.com/otn/java/sqldeveloper/sqldeveloper-21.2.1.204.1703-no-jre.zip #necesita login
unzip sqldeveloper-21.2.1.204.1703-no-jre.zip
wget https://gni-prod-resources.s3.us-west-1.amazonaws.com/resources/Packet%20Tracer%20Resources/PT%20Desktop/v8.0.1/CiscoPacketTracer_801_Ubuntu_64bit.deb #necesita login
gdebi CiscoPacketTracer_801_Ubuntu_64bit.deb

Office 2010

Tengo un prefix de Wine con Office 2010 instalado, que llevo arrastrando ya varios años, y que suele funcionar sin más que descomprimirlo. Es necesario instalar previamente winbind.

curl https://dl.winehq.org/wine-builds/winehq.key | sudo apt-key add -
sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ focal main'
sudo apt install winbind
sudo apt install --install-recommends winehq-stable

Lenguajes de programación

rust

Instalado mediante rustup

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

scala

Por alguna razón, me funciona ammonite pero scala con sudo apt install --install-recommends scala no 🤷‍♂️

sudo sh -c '(echo "#!/usr/bin/env sh" && curl -L https://github.com/com-lihaoyi/Ammonite/releases/download/2.4.0/2.12-2.4.0) > /usr/local/bin/amm && chmod +x /usr/local/bin/amm' && amm

Impresora

Imprimir en mi Brother DCP 1610w, tanto por USB como WiFi, no ha tenido problemas.

Para hacer funcionar el escáner he utilizado los drivers de https://support.brother.com/g/b/downloadlist.aspx?c=as_ot&lang=en&prod=dcp1610w_eu_as&os=128

He instalado linux-brprinter-installer-2.1.1-1.gz

El escáner solo funciona como administrador. Para tenerlo accesible por red:

sudo brsaneconfig4 -a name=Brother-DCP-1610W-wifi model=DCP-1610W ip=192.168.1.100