|
|
|
|
# Introducción
|
|
|
|
|
|
|
|
|
|
Mis portatiles son:
|
|
|
|
|
|
|
|
|
|
- Un ordenador Acer 5755G con las siguientes características:
|
|
|
|
|
|
|
|
|
|
- Core i5 2430M 2.4GHz
|
|
|
|
|
|
|
|
|
|
- NVIDIA Geforce GT 540M (+ intel integrada)
|
|
|
|
|
|
|
|
|
|
- 8Gb RAM
|
|
|
|
|
|
|
|
|
|
- 750Gb HD
|
|
|
|
|
|
|
|
|
|
Este portátil equipa una tarjeta *Nvidia Geforce GT540M* que resulta
|
|
|
|
|
pertenecer a una rama muerta en el árbol de desarrollo de Nvidia.
|
|
|
|
|
|
|
|
|
|
Esta tarjeta provocaba todo tipo de problemas de
|
|
|
|
|
sobrecalientamiento, pero en las últimas versiones de Linux
|
|
|
|
|
instalando el driver de Nvidia parece funcionar correctamente.
|
|
|
|
|
|
|
|
|
|
- Un Lenovo Legion
|
|
|
|
|
|
|
|
|
|
- Core i7-9750H
|
|
|
|
|
|
|
|
|
|
- Nvidia GTX1650-4Gb (+ intel integrada)
|
|
|
|
|
|
|
|
|
|
- 16Gb RAM
|
|
|
|
|
|
|
|
|
|
- 512Gb SSD + 1Tb HDD
|
|
|
|
|
|
|
|
|
|
# Programas básicos
|
|
|
|
|
|
|
|
|
|
## Linux Mint
|
|
|
|
|
|
|
|
|
|
Linux Mint incluye `sudo` y las aplicaciones que uso habitualmente para
|
|
|
|
|
gestión de paquetes por defecto (*aptitude* y *synaptic*).
|
|
|
|
|
|
|
|
|
|
Interesa tener instalado el paquete *ppa-purge*
|
|
|
|
|
(`sudo apt install ppa-purge`). Sirve para eliminar ppas junto con los
|
|
|
|
|
programas instalados desde ese ppa.
|
|
|
|
|
|
|
|
|
|
Tampoco voy a enredar nada con los orígenes del software (de momento),
|
|
|
|
|
es decir no voy a cambiar al depósito regional.
|
|
|
|
|
|
|
|
|
|
## Firmware
|
|
|
|
|
|
|
|
|
|
Ya no es necesario intalar los paquetes de *microcode* la instalación de
|
|
|
|
|
Ulyana se encargó de instalar:
|
|
|
|
|
|
|
|
|
|
- `amd64-microcode`
|
|
|
|
|
- `intel-microcode`
|
|
|
|
|
|
|
|
|
|
Instalamos el driver de nvidia recomendado, el *Mint* nos avisa de que
|
|
|
|
|
tenemos que revisar la instalación de los drivers.
|
|
|
|
|
|
|
|
|
|
El driver de Nvidia viene muy mejorado. Merece la pena ver todas las
|
|
|
|
|
opciones.
|
|
|
|
|
|
|
|
|
|
Una vez instalado el driver de nvidia, el comando
|
|
|
|
|
`prime-select query`debe indicarnos la tarjeta activa y podremos cambiar
|
|
|
|
|
de tarjeta ejecutando `prime-select [nvidia|intel]`
|
|
|
|
|
|
|
|
|
|
## Control de configuraciones con git
|
|
|
|
|
|
|
|
|
|
Una vez instalado el driver de nvidia y antes de seguir con la
|
|
|
|
|
instalación instalamos el `git` y el `etckeeper` para que todos los
|
|
|
|
|
cambios que se produzcan en el directorio `/etc` durante nuestra
|
|
|
|
|
instalación queden reflejados en el git.
|
|
|
|
|
|
|
|
|
|
Yo nunca almaceno esta información en la nube, pero me permite tener
|
|
|
|
|
controlados los cambios de configuración y ayuda en caso de problemas.
|
|
|
|
|
|
|
|
|
|
### Instalación de `etckeeper`
|
|
|
|
|
|
|
|
|
|
¡Ojo!, nos hacemos `root` para ejecutar:
|
|
|
|
|
|
|
|
|
|
``` {bash}
|
|
|
|
|
sudo su -
|
|
|
|
|
git config --global user.email xxxxx@whatever.com
|
|
|
|
|
git config --global user.name "Name Surname"
|
|
|
|
|
apt install etckeeper
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
*etckeeper* hara un control automático de tus ficheros de configuración
|
|
|
|
|
en `/etc`
|
|
|
|
|
|
|
|
|
|
Para echar una mirada a los *commits* creados puedes ejecutar:
|
|
|
|
|
|
|
|
|
|
``` {bash}
|
|
|
|
|
cd /etc
|
|
|
|
|
sudo git log
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Controlar dotfiles con git
|
|
|
|
|
|
|
|
|
|
Vamos a crear un repo de git para controlar nuestros ficheros personales
|
|
|
|
|
de configuración.
|
|
|
|
|
|
|
|
|
|
Creamos el repo donde queramos
|
|
|
|
|
|
|
|
|
|
``` {bash}
|
|
|
|
|
mkdir usrcfg
|
|
|
|
|
cd usrcfg
|
|
|
|
|
git init
|
|
|
|
|
git config core.worktree "/home/salvari"
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Y ya lo tenemos, un repo que tiene el directorio de trabajo apuntando a
|
|
|
|
|
nuestro *$HOME*.
|
|
|
|
|
|
|
|
|
|
Podemos añadir los ficheros de configuración que queramos al repo:
|
|
|
|
|
|
|
|
|
|
``` {bash}
|
|
|
|
|
git add .bashrc
|
|
|
|
|
git commit -m "Add some dotfiles"
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Una vez que tenga añadidos los ficheros que quiero tener controlados
|
|
|
|
|
pondré `*` en el fichero `.git/info/exclude` de mi repo para que ignore
|
|
|
|
|
todos los ficheros de mi `$HOME`.
|
|
|
|
|
|
|
|
|
|
Cuando instalo algún programa nuevo añado a mano los ficheros de
|
|
|
|
|
configuración al repo.
|
|
|
|
|
|
|
|
|
|
Yo no tengo información confidencial en este repositorio (claves ssh por
|
|
|
|
|
ejemplo) así que no tengo problemas en almacenarlo en la nube. Facilita
|
|
|
|
|
mucho las cosas en casos de upgrade del sistema o copiar configuraciones
|
|
|
|
|
entre ordenadores.
|
|
|
|
|
|
|
|
|
|
## Parámetros de disco duro
|
|
|
|
|
|
|
|
|
|
Tengo un disco duro ssd y otro hdd normal.
|
|
|
|
|
|
|
|
|
|
El area de intercambio la hemos creado en el disco duro hdd, no se usará
|
|
|
|
|
mucho (mejor dicho: no se usará nunca) pero evitamos multiples
|
|
|
|
|
operaciones de escritura en el disco ssd en caso de que se empiece a
|
|
|
|
|
tirar del swap.
|
|
|
|
|
|
|
|
|
|
Añadimos el parámetro `noatime` para las particiones de `root` y
|
|
|
|
|
`/home`, que si que se han creado en el ssd.
|
|
|
|
|
|
|
|
|
|
``` {fstab}
|
|
|
|
|
# /etc/fstab: static file system information.
|
|
|
|
|
#
|
|
|
|
|
# Use 'blkid' to print the universally unique identifier for a
|
|
|
|
|
# device; this may be used with UUID= as a more robust way to name devices
|
|
|
|
|
# that works even if disks are added and removed. See fstab(5).
|
|
|
|
|
#
|
|
|
|
|
# <file system> <mount point> <type> <options> <dump> <pass>
|
|
|
|
|
# / was on /dev/sda5 during installation
|
|
|
|
|
UUID=d96a5501-75b9-4a25-8ecb-c84cd4a3fff5 / ext4 noatime,errors=remount-ro 0 1
|
|
|
|
|
# /home was on /dev/sda7 during installation
|
|
|
|
|
UUID=8fcde9c5-d694-4417-adc0-8dc229299f4c /home ext4 defaults,noatime 0 2
|
|
|
|
|
# /store was on /dev/sdc7 during installation
|
|
|
|
|
UUID=0f0892e0-9183-48bd-aab4-9014dc1bd03a /store ext4 defaults 0 2
|
|
|
|
|
# swap was on /dev/sda6 during installation
|
|
|
|
|
UUID=ce11ccb0-a67d-4e8b-9456-f49a52974160 none swap sw 0 0
|
|
|
|
|
# swap was on /dev/sdc5 during installation
|
|
|
|
|
UUID=11090d84-ce98-40e2-b7be-dce3f841d7b4 none swap sw 0 0
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Una vez modificado el `/etc/fstab` no hace falta arrancar, basta con
|
|
|
|
|
ejecutar lo siguiente:
|
|
|
|
|
|
|
|
|
|
``` {bash}
|
|
|
|
|
mount -o remount /
|
|
|
|
|
mount -o remount /home
|
|
|
|
|
mount
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Ajustar *Firefox*
|
|
|
|
|
|
|
|
|
|
Las diferencias de rendimiento del Firefox con estos ajustes son
|
|
|
|
|
bastante notables.
|
|
|
|
|
|
|
|
|
|
Seguimos [esta
|
|
|
|
|
referencia](https://easylinuxtipsproject.blogspot.com/p/ssd.html#ID10)
|
|
|
|
|
|
|
|
|
|
Visitamos `about::config` con el navegador.
|
|
|
|
|
|
|
|
|
|
Cambiamos
|
|
|
|
|
|
|
|
|
|
- `browser.cache.disk.enable` **false**
|
|
|
|
|
- `browser.cache.memory.enable` **true**
|
|
|
|
|
- `browser.cache.memory.capacity` **204800**
|
|
|
|
|
- `browser.sessionstore.interval` **15000000**
|
|
|
|
|
|
|
|
|
|
TODO: Comprobar *trim* en mi disco duro. Y mirar
|
|
|
|
|
[esto](https://easylinuxtipsproject.blogspot.com/p/speed-mint.html)
|
|
|
|
|
|
|
|
|
|
## Fuentes (tipográficas) adicionales
|
|
|
|
|
|
|
|
|
|
Instalamos algunas fuentes desde los orígenes de software:
|
|
|
|
|
|
|
|
|
|
``` {bash}
|
|
|
|
|
sudo apt install ttf-mscorefonts-installer
|
|
|
|
|
sudo apt install fonts-noto
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Y la fuente [Mensch](https://robey.lag.net/2010/06/21/mensch-font.html)
|
|
|
|
|
la bajamos directamente al directorio `~/.local/share/fonts`
|
|
|
|
|
|
|
|
|
|
Puede ser conveniente instalar el paquete *font-manager*
|
|
|
|
|
(`sudo apt install font-manager`), sólo lo uso para visualizar fuentes,
|
|
|
|
|
no para hacer configuración.
|
|
|
|
|
|
|
|
|
|
Otras fuentes muy interesantes
|
|
|
|
|
|
|
|
|
|
- [nerd-fonts](https://github.com/ryanoasis/nerd-fonts) (instalada la
|
|
|
|
|
3270 completa)
|
|
|
|
|
- [Powerline fonts](https://github.com/powerline/fonts)
|
|
|
|
|
- [Programming
|
|
|
|
|
fonts](https://github.com/ProgrammingFonts/ProgrammingFonts)
|
|
|
|
|
|
|
|
|
|
## Firewall
|
|
|
|
|
|
|
|
|
|
`ufw` y `gufw` vienen instalados por defecto, pero no activados.
|
|
|
|
|
|
|
|
|
|
``` {bash}
|
|
|
|
|
aptitude install ufw
|
|
|
|
|
ufw default deny
|
|
|
|
|
ufw enable
|
|
|
|
|
ufw status verbose
|
|
|
|
|
aptitude install gufw
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
> **Nota**: Ojo con el log de `ufw`, tampoco le sienta muy bien al ssd
|
|
|
|
|
> esa escritura masiva. Yo normalmente lo dejo desactivado excepto
|
|
|
|
|
> cuando valido una nueva configuración.
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
## Aplicaciones variadas
|
|
|
|
|
|
|
|
|
|
> **Nota**: Ya no instalamos *menulibre*, Linux Mint tiene una utilidad
|
|
|
|
|
> de edición de menús.
|
|
|
|
|
|
|
|
|
|
Keepass2
|
|
|
|
|
Para mantener nuestras contraseñas a buen recaudo
|
|
|
|
|
|
|
|
|
|
Gnucash
|
|
|
|
|
Programa de contabilidad, la versión de los repos está bastante atrasada
|
|
|
|
|
habrá que probar la nueva que puede instalarse desde la web o desde el
|
|
|
|
|
flathub.
|
|
|
|
|
|
|
|
|
|
Deluge
|
|
|
|
|
Programa de descarga de torrents (acuérdate de configurar tus
|
|
|
|
|
cortafuegos)
|
|
|
|
|
|
|
|
|
|
rsync, grsync
|
|
|
|
|
Para hacer backups de nuestros ficheros
|
|
|
|
|
|
|
|
|
|
Descompresores variados
|
|
|
|
|
Para lidiar con los distintos formatos de ficheros comprimidos
|
|
|
|
|
|
|
|
|
|
mc
|
|
|
|
|
Midnight Comander, gestor de ficheros en modo texto
|
|
|
|
|
|
|
|
|
|
most
|
|
|
|
|
Un `less` mejorado
|
|
|
|
|
|
|
|
|
|
tree
|
|
|
|
|
Para ver estructuras de directorios
|
|
|
|
|
|
|
|
|
|
neofetch
|
|
|
|
|
Este solo vale para presumir de ordenador creo ¬\_¬
|
|
|
|
|
|
|
|
|
|
fasd
|
|
|
|
|
Para cambiar entre directorios rápidamente
|
|
|
|
|
|
|
|
|
|
silversearcher-ag
|
|
|
|
|
Una alternativa mejorada al clásico *grep*
|
|
|
|
|
|
|
|
|
|
mate-tweak
|
|
|
|
|
Para *customizar* nuestro escritorio Mate
|
|
|
|
|
|
|
|
|
|
<!-- -->
|
|
|
|
|
|
|
|
|
|
sudo apt install keepass2 gnucash deluge rsync grsync rar unrar \
|
|
|
|
|
zip unzip unace bzip2 lzop p7zip p7zip-full p7zip-rar \
|
|
|
|
|
most mc tree neofetch fasd silversearcher-ag mate-tweak
|
|
|
|
|
|
|
|
|
|
Chromium
|
|
|
|
|
Como Chrome pero libre, ahora en Ubuntu solo está disponible como snap
|
|
|
|
|
así que tendremos que dar un rodeo.
|
|
|
|
|
|
|
|
|
|
``` {bash}
|
|
|
|
|
sudo add-apt-repository ppa:xalt7x/chromium-deb-vaapi
|
|
|
|
|
cat <<EOF | sudo tee /etc/apt/preferences.d/pin-xalt7x-chromium-deb-vaapi
|
|
|
|
|
Package: *
|
|
|
|
|
Pin: release o=LP-PPA-xalt7x-chromium-deb-vaapi
|
|
|
|
|
Pin-Priority: 1337
|
|
|
|
|
EOF
|
|
|
|
|
|
|
|
|
|
sudo apt update
|
|
|
|
|
sudo apt install chromium-browser chromium-codecs-ffmpeg
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Algunos programas de control del sistema
|
|
|
|
|
|
|
|
|
|
Son útiles para control de consumo.
|
|
|
|
|
|
|
|
|
|
sudo apt install tlp tlp-rdw htop powertop
|
|
|
|
|
|
|
|
|
|
## Programas de terminal
|
|
|
|
|
|
|
|
|
|
Dos imprescindibles:
|
|
|
|
|
|
|
|
|
|
``` {bash}
|
|
|
|
|
sudo apt install guake terminator
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
*terminator* lo dejamos como aplicación terminal preferida del sistema.
|
|
|
|
|
|
|
|
|
|
**TODO:** asociar *Guake* a una combinación apropiada de teclas.
|
|
|
|
|
|
|
|
|
|
También instalo *rxvt* para tener una alternativa ligera al
|
|
|
|
|
*terminator*.
|
|
|
|
|
|
|
|
|
|
``` {bash}
|
|
|
|
|
sudo apt install rxvt-unicode
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### tmux
|
|
|
|
|
|
|
|
|
|
*tmux* combinado por ejemplo con *rxvt* nos da la misma funcionalidad
|
|
|
|
|
que *Terminator*, además merece la pena aprender a usarlo por que
|
|
|
|
|
instalado en servidores remotos es increíblemente útil.
|
|
|
|
|
|
|
|
|
|
``` {bash}
|
|
|
|
|
sudo apt install tmux
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
- [El tao de tmux](https://leanpub.com/the-tao-of-tmux/read)
|
|
|
|
|
- [rxvt
|
|
|
|
|
customizations](https://www.askapache.com/linux/rxvt-xresources/)
|
|
|
|
|
|
|
|
|
|
## Dropbox
|
|
|
|
|
|
|
|
|
|
Lo instalamos desde el software manager.
|
|
|
|
|
|
|
|
|
|
## Chrome
|
|
|
|
|
|
|
|
|
|
No lo he instalado.
|
|
|
|
|
|
|
|
|
|
Puede instalarse desde [la página web de
|
|
|
|
|
Chrome](https://www.google.com/chrome/)
|
|
|
|
|
|
|
|
|
|
## Varias aplicaciones instaladas de binarios
|
|
|
|
|
|
|
|
|
|
Lo recomendable en un sistema POSIX es instalar los programas
|
|
|
|
|
adicionales en `/usr/local` o en `/opt`. Yo soy más chapuzas y suelo
|
|
|
|
|
instalar en `~/apt` por que el portátil es personal e intrasferible. En
|
|
|
|
|
un ordenador compartido es mejor usar `/opt`.
|
|
|
|
|
|
|
|
|
|
En general cuando instalo en el directorio `~/apps` sigo los siguientes
|
|
|
|
|
pasos:
|
|
|
|
|
|
|
|
|
|
1. Descargamos los binarios o *appimage* desde la web
|
|
|
|
|
|
|
|
|
|
2. Descomprimo en un nuevo directorio para la aplicación, tomamos como
|
|
|
|
|
ejemplo freeplane, así que el directorio se llamará:
|
|
|
|
|
`~/apps/mi_aplicacion`
|
|
|
|
|
|
|
|
|
|
3. Creamos enlace simbólico al que llamamos `current`. Esto es para no
|
|
|
|
|
editar los ficheros `.desktop` cada vez que actualicemos la versión
|
|
|
|
|
del programa. El enlace puede apuntar a un directorio o a un
|
|
|
|
|
binario, depende de como obtengamos la aplicación. En el caso de
|
|
|
|
|
freeplane yo tengo la siguiente estructura
|
|
|
|
|
|
|
|
|
|
freeplane
|
|
|
|
|
├── current -> freeplane-1.7.11
|
|
|
|
|
├── freeplane-1.7.10
|
|
|
|
|
└── freeplane-1.7.11
|
|
|
|
|
|
|
|
|
|
Vemos que el enlace apunta a la versión más reciente de *freeplane*.
|
|
|
|
|
|
|
|
|
|
4. Añadimos la aplicación a los menús, al hacer esto se creará un
|
|
|
|
|
fichero `.desktop` en el directorio `~/.local/share/applications`
|
|
|
|
|
|
|
|
|
|
### Freeplane
|
|
|
|
|
|
|
|
|
|
Para hacer mapas mentales, presentaciones, resúmenes, apuntes… La
|
|
|
|
|
versión incluida en LinuxMint está un poco anticuada.
|
|
|
|
|
|
|
|
|
|
### Treesheets
|
|
|
|
|
|
|
|
|
|
Está bien para hacer chuletas rápidamente. Descargamos el *appimage*
|
|
|
|
|
desde [la web](http://strlen.com/treesheets/)
|
|
|
|
|
|
|
|
|
|
### Telegram Desktop
|
|
|
|
|
|
|
|
|
|
Cliente de Telegram, descargado desde la [página
|
|
|
|
|
web](https://desktop.telegram.org/). El programa de instalación de
|
|
|
|
|
Telegram ya se encarga de crear el fichero `.desktop`
|
|
|
|
|
|
|
|
|
|
### Tor browser
|
|
|
|
|
|
|
|
|
|
Descargamos desde la [página oficial del
|
|
|
|
|
proyecto](https://www.torproject.org/) Descomprimimos en `~/apps/` y
|
|
|
|
|
ejecutamos desde terminal:
|
|
|
|
|
|
|
|
|
|
cd ~/apps/tor-browser
|
|
|
|
|
./start-tor-browser.desktop --register-app
|
|
|
|
|
|
|
|
|
|
Tor se encarga tanto de crear el fichero `.desktop` como de mantenerse
|
|
|
|
|
actualizado a la última versión.
|
|
|
|
|
|
|
|
|
|
### Brave browser
|
|
|
|
|
|
|
|
|
|
Instalamos siguiendo las instrucciones de la [página web
|
|
|
|
|
oficial](https://brave-browser.readthedocs.io/en/latest/installing-brave.html#linux)
|
|
|
|
|
|
|
|
|
|
``` {bash}
|
|
|
|
|
curl -s https://brave-browser-apt-release.s3.brave.com/brave-core.asc | sudo apt-key --keyring /etc/apt/trusted.gpg.d/brave-browser-release.gpg add -
|
|
|
|
|
|
|
|
|
|
echo "deb [arch=amd64] https://brave-browser-apt-release.s3.brave.com/ stable main" | sudo tee /etc/apt/sources.list.d/brave-browser-release.list
|
|
|
|
|
|
|
|
|
|
sudo apt update
|
|
|
|
|
|
|
|
|
|
sudo apt install brave-browser
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### TiddlyDesktop
|
|
|
|
|
|
|
|
|
|
Descargamos desde la [página
|
|
|
|
|
web](https://github.com/Jermolene/TiddlyDesktop), descomprimimos y
|
|
|
|
|
generamos la entrada en el menú.
|
|
|
|
|
|
|
|
|
|
### Joplin
|
|
|
|
|
|
|
|
|
|
Una herramienta libre para mantener notas sincronizadas entre el móvil y
|
|
|
|
|
el portátil.
|
|
|
|
|
|
|
|
|
|
Instalamos siguiendo las instrucciones de la [página
|
|
|
|
|
web](https://joplinapp.org/)
|
|
|
|
|
|
|
|
|
|
``` {bash}
|
|
|
|
|
wget -O - https://raw.githubusercontent.com/laurent22/joplin/master/Joplin_install_and_update.sh | bash
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Joplin se instala en el directorio `~/.joplin` y crea su propia entrada
|
|
|
|
|
en el menú.
|
|
|
|
|
|
|
|
|
|
## Terminal y shells
|
|
|
|
|
|
|
|
|
|
Por defecto tenemos instalado `bash`.
|
|
|
|
|
|
|
|
|
|
### bash-git-promt
|
|
|
|
|
|
|
|
|
|
Para dejar configurado el *bash-git-prompt* seguimos las instrucciones
|
|
|
|
|
de [este github](https://github.com/magicmonty/bash-git-prompt)
|
|
|
|
|
|
|
|
|
|
### zsh
|
|
|
|
|
|
|
|
|
|
Nos adelantamos a los acontecimientos, pero conviene tener instaladas
|
|
|
|
|
las herramientas de entornos virtuales de python antes de instalar *zsh*
|
|
|
|
|
con el plugin para *virtualenvwrapper*.
|
|
|
|
|
|
|
|
|
|
apt install python-all-dev
|
|
|
|
|
apt install python3-all-dev
|
|
|
|
|
apt install virtualenv virtualenvwrapper python3-virtualenv
|
|
|
|
|
|
|
|
|
|
*zsh* viene por defecto en mi instalación, en caso contrario:
|
|
|
|
|
|
|
|
|
|
apt install zsh
|
|
|
|
|
|
|
|
|
|
Para *zsh* vamos a usar [antigen](https://github.com/zsh-users/antigen),
|
|
|
|
|
así que nos lo clonamos en `~/apps/`
|
|
|
|
|
|
|
|
|
|
cd ~/apps
|
|
|
|
|
git clone https://github.com/zsh-users/antigen
|
|
|
|
|
|
|
|
|
|
También vamos a usar
|
|
|
|
|
[zsh-git-prompt](https://github.com/olivierverdier/zsh-git-prompt), así
|
|
|
|
|
que lo clonamos también:
|
|
|
|
|
|
|
|
|
|
cd ~/apps
|
|
|
|
|
git clone https://github.com/olivierverdier/zsh-git-prompt
|
|
|
|
|
|
|
|
|
|
Y editamos el fichero `~/.zshrc` para que contenga:
|
|
|
|
|
|
|
|
|
|
# This line loads .profile, it's experimental
|
|
|
|
|
[[ -e ~/.profile ]] && emulate sh -c 'source ~/.profile'
|
|
|
|
|
|
|
|
|
|
source ~/apps/zsh-git-prompt/zshrc.sh
|
|
|
|
|
source ~/apps/antigen/antigen.zsh
|
|
|
|
|
|
|
|
|
|
# Load the oh-my-zsh's library.
|
|
|
|
|
antigen use oh-my-zsh
|
|
|
|
|
|
|
|
|
|
# Bundles from the default repo (robbyrussell's oh-my-zsh).
|
|
|
|
|
antigen bundle git
|
|
|
|
|
antigen bundle command-not-found
|
|
|
|
|
|
|
|
|
|
# must install autojump for this
|
|
|
|
|
#antigen bundle autojump
|
|
|
|
|
|
|
|
|
|
# extracts every kind of compressed file
|
|
|
|
|
antigen bundle extract
|
|
|
|
|
|
|
|
|
|
# jump to dir used frequently
|
|
|
|
|
antigen bundle z
|
|
|
|
|
|
|
|
|
|
#antigen bundle pip
|
|
|
|
|
|
|
|
|
|
antigen bundle common-aliases
|
|
|
|
|
|
|
|
|
|
antigen bundle robbyrussell/oh-my-zsh plugins/virtualenvwrapper
|
|
|
|
|
|
|
|
|
|
antigen bundle zsh-users/zsh-completions
|
|
|
|
|
|
|
|
|
|
# Syntax highlighting bundle.
|
|
|
|
|
antigen bundle zsh-users/zsh-syntax-highlighting
|
|
|
|
|
antigen bundle zsh-users/zsh-history-substring-search ./zsh-history-substring-search.zsh
|
|
|
|
|
|
|
|
|
|
# Arialdo Martini git needs awesome terminal font
|
|
|
|
|
#antigen bundle arialdomartini/oh-my-git
|
|
|
|
|
#antigen theme arialdomartini/oh-my-git-themes oppa-lana-style
|
|
|
|
|
|
|
|
|
|
# autosuggestions
|
|
|
|
|
antigen bundle tarruda/zsh-autosuggestions
|
|
|
|
|
|
|
|
|
|
#antigen theme agnoster
|
|
|
|
|
antigen theme gnzh
|
|
|
|
|
|
|
|
|
|
# Tell antigen that you're done.
|
|
|
|
|
antigen apply
|
|
|
|
|
|
|
|
|
|
# Correct rm alias from common-alias bundle
|
|
|
|
|
unalias rm
|
|
|
|
|
alias rmi='rm -i'
|
|
|
|
|
|
|
|
|
|
Para usar *virtualenvwrapper* hay que decidir en que directorio queremos
|
|
|
|
|
salvar los entornos virtuales. El obvio seria `~/.virtualenvs` la
|
|
|
|
|
alternativa sería `~/.local/share/virtualenvs`.
|
|
|
|
|
|
|
|
|
|
El que escojamos lo tenemos que crear y añadirlo a nuestro `~/.profile`
|
|
|
|
|
con las líneas:
|
|
|
|
|
|
|
|
|
|
# WORKON_HOME for virtualenvwrapper
|
|
|
|
|
if [ -d "$HOME/.virtualenvs" ] ; then
|
|
|
|
|
WORKON_HOME="$HOME/.virtualenvs"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
Después de seguir estos pasos basta con arrancar el *zsh*
|
|
|
|
|
|
|
|
|
|
*Antigen* ya se encarga de descargar todos los plugins que queramos
|
|
|
|
|
utilizar en zsh. Todos el software se descarga en `~/.antigen`
|
|
|
|
|
|
|
|
|
|
Para configurar el
|
|
|
|
|
[zsh-git-prompt](https://github.com/olivierverdier/zsh-git-prompt), que
|
|
|
|
|
inspiró el bash-git-prompt.
|
|
|
|
|
|
|
|
|
|
He modificado el fichero `zshrc.sh` de `zsh-git-prompt` cambiando la
|
|
|
|
|
linea \`echo “$STATUS”:
|
|
|
|
|
|
|
|
|
|
#echo "$STATUS"
|
|
|
|
|
if [[ "$__CURRENT_GIT_STATUS" == ": 0 0 0 0 0 0" ]]; then
|
|
|
|
|
echo ""
|
|
|
|
|
else
|
|
|
|
|
echo "$STATUS"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
También he cambiado el fichero del tema *gnzh* en
|
|
|
|
|
`~/.antigen/bundles/robbyrussell/oh-my-zsh/themes/gnzh.zsh-theme` por
|
|
|
|
|
que me interesa ver la versión python asociada a cada virtualenv.
|
|
|
|
|
|
|
|
|
|
## Utilidades
|
|
|
|
|
|
|
|
|
|
*Agave* y *pdftk* ya no existen, nos pasamos a *gpick* y
|
|
|
|
|
*poppler-utils*:
|
|
|
|
|
|
|
|
|
|
Instalamos *gpick* con `sudo apt install gpick`
|
|
|
|
|
|
|
|
|
|
## Codecs
|
|
|
|
|
|
|
|
|
|
sudo apt-get install mint-meta-codecs
|
|
|
|
|
|
|
|
|
|
## Syncthing
|
|
|
|
|
|
|
|
|
|
Añadimos el ppa:
|
|
|
|
|
|
|
|
|
|
``` {bash}
|
|
|
|
|
curl -s https://syncthing.net/release-key.txt | sudo apt-key add -
|
|
|
|
|
echo "deb https://apt.syncthing.net/ syncthing stable" | sudo tee /etc/apt/sources.list.d/syncthing.list
|
|
|
|
|
sudo apt-get update
|
|
|
|
|
sudo apt-get install syncthing
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
# Utilidades
|
|
|
|
|
|
|
|
|
|
graphviz
|
|
|
|
|
Una utilidad de generación de gráficos que uso a veces. También es útil
|
|
|
|
|
para `web2py` y para \`org-roam
|
|
|
|
|
|
|
|
|
|
`sudo apt install graphviz`
|
|
|
|
|
|
|
|
|
|
sqlite3
|
|
|
|
|
Un motor de bases de datos sencillo que se uso a menudo
|
|
|
|
|
|
|
|
|
|
`sudo apt install sqlite3`
|
|
|
|
|
|
|
|
|
|
cheat
|
|
|
|
|
Chuletas de comandos habituales, se instala bajando el ejecutable desde
|
|
|
|
|
[su github](https://github.com/cheat/cheat/releases)
|
|
|
|
|
|
|
|
|
|
cheat.sh
|
|
|
|
|
Echa una mirada a su página web: <http://cheat.sh/>, es casi idéntico al
|
|
|
|
|
anterior pero disponible desde cualquier ordenador con conexión.
|
|
|
|
|
|
|
|
|
|
gparted
|
|
|
|
|
Instalamos *gparted* para poder formatear memorias usb
|
|
|
|
|
|
|
|
|
|
`sudo apt install gparted`
|
|
|
|
|
|
|
|
|
|
wkhtmltopdf
|
|
|
|
|
Para pasar páginas web a pdf
|
|
|
|
|
|
|
|
|
|
`sudo apt install wkhtmltopdf`
|
|
|
|
|
|
|
|
|
|
lsd
|
|
|
|
|
`ls` potenciado, instalamos el paquete desde [la página de releases del
|
|
|
|
|
github del proyecto](https://github.com/Peltoche/lsd/releases)
|
|
|
|
|
|
|
|
|
|
bat
|
|
|
|
|
`cat` potenciado, instalamos el paquete desde [la página de releases del
|
|
|
|
|
github del proyecto](https://github.com/sharkdp/bat/releases)
|
|
|
|
|
|
|
|
|
|
nmap ndiff ncat
|
|
|
|
|
`nmap` nos permite realizar mapeos de subredes en nuestras redes
|
|
|
|
|
locales. Por ejemplo para localizar dispositivos enganchados a nuestra
|
|
|
|
|
red. `ndiff` nos permite comparar escaneos realizados con `nmap` y
|
|
|
|
|
`ncat` hace todo tipo de cosas (mira en la red)
|
|
|
|
|
|
|
|
|
|
`sudo apt install nmap ndiff ncat`
|
|
|
|
|
|
|
|
|
|
# Internet
|
|
|
|
|
|
|
|
|
|
## Rclone
|
|
|
|
|
|
|
|
|
|
Instalamos desde la página web(https://rclone.org/), descargando el
|
|
|
|
|
fichero `.deb`.
|
|
|
|
|
|
|
|
|
|
curl https://rclone.org/install.sh | sudo bash
|
|
|
|
|
|
|
|
|
|
### Recetas rclone
|
|
|
|
|
|
|
|
|
|
Copiar directorio local en la nube:
|
|
|
|
|
|
|
|
|
|
rclone copy /localdir hubic:backup -vv
|
|
|
|
|
|
|
|
|
|
Si queremos ver el directorio en la web de Hubic tenemos que copiarlo en
|
|
|
|
|
*default*:
|
|
|
|
|
|
|
|
|
|
rclone copy /localdir hubic:default/backup -vv
|
|
|
|
|
|
|
|
|
|
Sincronizar una carpeta remota en local:
|
|
|
|
|
|
|
|
|
|
rclone sync hubic:directorio_remoto /home/salvari/directorio_local -vv
|
|
|
|
|
|
|
|
|
|
### Referencias
|
|
|
|
|
|
|
|
|
|
- [Como usar rclone
|
|
|
|
|
(blogdelazaro)](https://elblogdelazaro.gitlab.io//articles/rclone-sincroniza-ficheros-en-la-nube/)
|
|
|
|
|
- [y con cifrado
|
|
|
|
|
(blogdelazaro)](https://elblogdelazaro.gitlab.io//articles/rclone-cifrado-de-ficheros-en-la-nube/)
|
|
|
|
|
- [Documentación](https://rclone.org/docs/)
|
|
|
|
|
|
|
|
|
|
# time-tracking
|
|
|
|
|
|
|
|
|
|
## Activity Watcher
|
|
|
|
|
|
|
|
|
|
Instalado desde la web
|
|
|
|
|
|
|
|
|
|
En realidad no lo uso para nada.
|
|
|
|
|
|
|
|
|
|
## go for it
|
|
|
|
|
|
|
|
|
|
Este programa no para de escribir en el disco continuamente. He dejado
|
|
|
|
|
de usarlo por que me sobra con el org-mode de emacs.
|
|
|
|
|
|
|
|
|
|
Si de todas formas lo quieres instalar, aquí tienes los comandos:
|
|
|
|
|
|
|
|
|
|
``` {bash}
|
|
|
|
|
sudo add-apt-repository ppa:go-for-it-team/go-for-it-daily && sudo apt-get update
|
|
|
|
|
sudo apt-get install go-for-it
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
# Documentación
|
|
|
|
|
|
|
|
|
|
## Vanilla LaTeX
|
|
|
|
|
|
|
|
|
|
Para instalar la versión más reciente de LaTeX hago la instalación desde
|
|
|
|
|
[ctan](https://www.ctan.org/)
|
|
|
|
|
|
|
|
|
|
Una vez instalado usamos *equivs* para generar un paquete `deb` y que
|
|
|
|
|
nuestro sistema sepa que tenemos *texlive* instalado.
|
|
|
|
|
|
|
|
|
|
cd ~
|
|
|
|
|
mkdir tmp
|
|
|
|
|
cd tmp
|
|
|
|
|
wget http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz
|
|
|
|
|
tar xzf install-tl-unx.tar.gz
|
|
|
|
|
cd install-tl-xxxxxx
|
|
|
|
|
|
|
|
|
|
La parte xxxxxx varía en función del estado de la última versión de
|
|
|
|
|
LaTeX disponible.
|
|
|
|
|
|
|
|
|
|
sudo ./install-tl
|
|
|
|
|
|
|
|
|
|
Una vez lanzada la instalación podemos desmarcar las opciones que
|
|
|
|
|
instalan la documentación y las fuentes. Eso nos obligará a consultar la
|
|
|
|
|
documentación on line pero ahorrará practicamente el 50% del espacio
|
|
|
|
|
necesario. En mi caso sin doc ni src ocupa 2,3Gb
|
|
|
|
|
|
|
|
|
|
mkdir -p /opt/texbin
|
|
|
|
|
sudo ln -s /usr/local/texlive/2020/bin/x86_64-linux/* /opt/texbin
|
|
|
|
|
|
|
|
|
|
Por último para acabar la instalación añadimos `/opt/texbin` al *PATH*.
|
|
|
|
|
Para *bash* y *zsh* basta con añadir al fichero `~/.profile` las
|
|
|
|
|
siguientes lineas:
|
|
|
|
|
|
|
|
|
|
# adds texlive to my PATH
|
|
|
|
|
if [ -d "/opt/texbin" ] ; then
|
|
|
|
|
PATH="$PATH:/opt/texbin"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
En cuanto a *fish* (si es que lo usas, claro) tendremos que modificar (o
|
|
|
|
|
crear) el fichero `~/.config/fish/config.fish` y añadir la siguiente
|
|
|
|
|
linea:
|
|
|
|
|
|
|
|
|
|
set PATH $PATH /opt/texbin
|
|
|
|
|
|
|
|
|
|
### Falsificando paquetes
|
|
|
|
|
|
|
|
|
|
Ya tenemos el *texlive* instalado, ahora necesitamos que el gestor de
|
|
|
|
|
paquetes sepa que ya lo tenemos instalado.
|
|
|
|
|
|
|
|
|
|
sudo apt install equivs --no-install-recommends
|
|
|
|
|
mkdir -p /tmp/tl-equivs && cd /tmp/tl-equivs
|
|
|
|
|
equivs-control texlive-local
|
|
|
|
|
|
|
|
|
|
Alternativamente para hacerlo más fácil podemos descargarnos un fichero
|
|
|
|
|
`texlive-local`ya preparado, ejecutando:
|
|
|
|
|
|
|
|
|
|
wget http://www.tug.org/texlive/files/debian-equivs-2018-ex.txt
|
|
|
|
|
/bin/cp -f debian-equivs-2020-ex.txt texlive-local
|
|
|
|
|
|
|
|
|
|
Editamos la versión (si queremos) y procedemos a generar el paquete
|
|
|
|
|
*deb*.
|
|
|
|
|
|
|
|
|
|
equivs-build texlive-local
|
|
|
|
|
|
|
|
|
|
El paquete que hemos generado tiene una dependencia: *freeglut3*, hay
|
|
|
|
|
que instalarla previamente.
|
|
|
|
|
|
|
|
|
|
sudo apt install freeglut3
|
|
|
|
|
sudo dpkg -i texlive-local_2020-1_all.deb
|
|
|
|
|
|
|
|
|
|
Todo listo, ahora podemos instalar cualquier paquete debian que dependa
|
|
|
|
|
de *texlive* sin problemas de dependencias, aunque no hayamos instalado
|
|
|
|
|
el *texlive* de Debian.
|
|
|
|
|
|
|
|
|
|
### Fuentes
|
|
|
|
|
|
|
|
|
|
Para dejar disponibles las fuentes opentype y truetype que vienen con
|
|
|
|
|
texlive para el resto de aplicaciones:
|
|
|
|
|
|
|
|
|
|
sudo cp $(kpsewhich -var-value TEXMFSYSVAR)/fonts/conf/texlive-fontconfig.conf /etc/fonts/conf.d/09-texlive.conf
|
|
|
|
|
sudo nano /etc/fonts/conf.d/09-texlive.conf
|
|
|
|
|
|
|
|
|
|
Borramos la linea:
|
|
|
|
|
|
|
|
|
|
<dir>/usr/local/texlive/20xx/texmf-dist/fonts/type1</dir>
|
|
|
|
|
|
|
|
|
|
Y ejecutamos:
|
|
|
|
|
|
|
|
|
|
sudo fc-cache -fsv
|
|
|
|
|
|
|
|
|
|
Actualizaciones Para actualizar nuestro *latex* a la última versión de
|
|
|
|
|
todos los paquetes:
|
|
|
|
|
|
|
|
|
|
sudo /opt/texbin/tlmgr update --self
|
|
|
|
|
sudo /opt/texbin/tlmgr update --all
|
|
|
|
|
|
|
|
|
|
También podemos lanzar el instalador gráfico con:
|
|
|
|
|
|
|
|
|
|
sudo /opt/texbin/tlmgr --gui
|
|
|
|
|
|
|
|
|
|
Para usar el instalador gráfico hay que instalar previamente:
|
|
|
|
|
|
|
|
|
|
sudo apt-get install perl-tk --no-install-recommends
|
|
|
|
|
|
|
|
|
|
Lanzador para el actualizador de *texlive*:
|
|
|
|
|
|
|
|
|
|
mkdir -p ~/.local/share/applications
|
|
|
|
|
/bin/rm ~/.local/share/applications/tlmgr.desktop
|
|
|
|
|
cat > ~/.local/share/applications/tlmgr.desktop << EOF
|
|
|
|
|
[Desktop Entry]
|
|
|
|
|
Version=1.0
|
|
|
|
|
Name=TeX Live Manager
|
|
|
|
|
Comment=Manage TeX Live packages
|
|
|
|
|
GenericName=Package Manager
|
|
|
|
|
Exec=gksu -d -S -D "TeX Live Manager" '/opt/texbin/tlmgr -gui'
|
|
|
|
|
Terminal=false
|
|
|
|
|
Type=Application
|
|
|
|
|
Icon=system-software-update
|
|
|
|
|
EOF
|
|
|
|
|
|
|
|
|
|
## Tipos de letra
|
|
|
|
|
|
|
|
|
|
Creamos el directorio de usuario para tipos de letra:
|
|
|
|
|
|
|
|
|
|
mkdir ~/.local/share/fonts
|
|
|
|
|
|
|
|
|
|
## Fuentes Adicionales
|
|
|
|
|
|
|
|
|
|
Me he descargado de internet la fuente
|
|
|
|
|
[Mensch](https://robey.lag.net/downloads/mensch.ttf) el directorio de
|
|
|
|
|
usuario para los tipos de letra: `~/.local/share/fonts`
|
|
|
|
|
|
|
|
|
|
Además he clonado el repo [*Programming
|
|
|
|
|
Fonts*](https://github.com/ProgrammingFonts/ProgrammingFonts) aunque
|
|
|
|
|
parece que las fuentes están un poco anticuadas.
|
|
|
|
|
|
|
|
|
|
cd ~/wherever
|
|
|
|
|
git clone https://github.com/ProgrammingFonts/ProgrammingFonts
|
|
|
|
|
cd ~/.local/share/fonts
|
|
|
|
|
ln -s ~/wherever/ProgrammingFonts/Menlo .
|
|
|
|
|
|
|
|
|
|
La fuente Hack la he instalado directamente desde el [sitio
|
|
|
|
|
web](https://sourcefoundry.org/hack/)
|
|
|
|
|
|
|
|
|
|
## Pandoc
|
|
|
|
|
|
|
|
|
|
*Pandoc* es un traductor entre formatos de documento. Está escrito en
|
|
|
|
|
Python y es increiblemente útil. De hecho este documento está escrito
|
|
|
|
|
con *Pandoc*.
|
|
|
|
|
|
|
|
|
|
Instalado el *Pandoc* descargando paquete `.deb` desde [la página web
|
|
|
|
|
del proyecto](http://pandoc.org/installing.html).
|
|
|
|
|
|
|
|
|
|
Además descargamos plantillas de Pandoc desde [este
|
|
|
|
|
repo](https://github.com/jgm/pandoc-templates) ejecutando los siguientes
|
|
|
|
|
comandos:
|
|
|
|
|
|
|
|
|
|
mkdir ~/.pandoc
|
|
|
|
|
cd ~/.pandoc
|
|
|
|
|
git clone https://github.com/jgm/pandoc-templates templates
|
|
|
|
|
|
|
|
|
|
Las plantillas no son imprescindibles pero si quieres aprender a usarlas
|
|
|
|
|
o hacer alguna modificación viene bien tenerlas.
|
|
|
|
|
|
|
|
|
|
## Algunos editores adicionales
|
|
|
|
|
|
|
|
|
|
Dos editores para hacer pruebas:
|
|
|
|
|
|
|
|
|
|
Obsidian
|
|
|
|
|
Instalado con *appimage* descargado desde la [página
|
|
|
|
|
web](https://obsidian.md/)
|
|
|
|
|
|
|
|
|
|
Zettlr
|
|
|
|
|
Instalado con fichero `.deb` descargado desde [su página
|
|
|
|
|
web](https://www.zettlr.com/)
|
|
|
|
|
|
|
|
|
|
## Calibre
|
|
|
|
|
|
|
|
|
|
La mejor utilidad para gestionar tu colección de libros electrónicos.
|
|
|
|
|
|
|
|
|
|
Ejecutamos lo que manda la página web:
|
|
|
|
|
|
|
|
|
|
sudo -v && wget -nv -O- https://download.calibre-ebook.com/linux-installer.sh | sudo sh /dev/stdin
|
|
|
|
|
|
|
|
|
|
El programa queda instalado en `/opt/calibre`. Se puede desinstalar con
|
|
|
|
|
el comando `sudo calibre-unistall`.
|
|
|
|
|
|
|
|
|
|
Para usar el calibre con el Kobo Glo:
|
|
|
|
|
|
|
|
|
|
- Desactivamos todos los plugin de Kobo menos el Kobo Touch Extended
|
|
|
|
|
- Creamos una columna MyShelves con identificativo \#myshelves
|
|
|
|
|
- En las opciones del plugin:
|
|
|
|
|
- En la opción Collection columns añadimos las columnas
|
|
|
|
|
series,\#myshelves
|
|
|
|
|
- Marcamos las opciones Create collections y Delete empy
|
|
|
|
|
collections
|
|
|
|
|
- Marcamos *Modify CSS*
|
|
|
|
|
- Update metadata on device y Set series information
|
|
|
|
|
|
|
|
|
|
Algunos enlaces útiles:
|
|
|
|
|
|
|
|
|
|
- (https://github.com/jgoguen/calibre-kobo-driver)
|
|
|
|
|
- (http://www.lectoreselectronicos.com/foro/showthread.php?15116-Manual-de-instalaci%C3%B3n-y-uso-del-plugin-Kobo-Touch-Extended-para-Calibre)
|
|
|
|
|
- (http://www.redelijkheid.com/blog/2013/7/25/kobo-glo-ebook-library-management-with-calibre)
|
|
|
|
|
- (https://www.netogram.com/kobo.htm)
|
|
|
|
|
|
|
|