jmgomez-IAA / loogbook

Personal web page
0 stars 0 forks source link

Post Ideas: Configure Arch + i3wm #14

Open jmgomez-IAA opened 6 years ago

jmgomez-IAA commented 6 years ago

Posible titulo: Hacernos un Lazaro

Estaría bien hacer una retro-actualizacion para el portatil, dejandolo 100% funcional pero con algo ligero y rapido.

arch Linux install

arch-linux y i3wm

Preparar tambien una chuleta de comandos.

Por ahi tambien teniamos un tutorial en video de otro fiera. Buscalo!!

The lazy man:

https://sinister.ly/Thread-Tutorial-The-Lazy-Man-s-Guide-to-Ricing-Linux-WM-i3

jmgomez-IAA commented 6 years ago
jmgomez-IAA commented 6 years ago
jmgomez-IAA commented 6 years ago

ctags -eR

find -name ".cpp" -print -or -name ".h" -print -or -name ".hxx" -print -or -name ".cxx" -print | xargs ctags -ea

M-x visit-tags-table

Nos movemos hasta el fichero TAGS, y con M+. y M+, vamos siguiendo las funciones.

jmgomez-IAA commented 6 years ago

Emacs C++ IDE Imcreible, pero mucho que leer!! Complica mucho el asunto!! https://tuhdo.github.io/c-ide.html Dep: GNU Global https://aur.archlinux.org/packages/global/

jmgomez-IAA commented 5 years ago

Tools

Algunas de las aplicaciones seleccionadas de las lista: https://wiki.archlinux.org/index.php/list_of_applications

File Manager

Gestor de correo electronico en consola:

Visor PDF

Navegador Web

RSS feeds / atom

Conversor de documentos

[Pandoc](https://pandoc.org/) — Swiss-army knife for converting markup and document formats.

Bienestar

redshift Ajusta el brillo del monitor a la hora y posicion del sol.

Altenativamente se puede hacer manualmente empleando xrandr. [jmgomez@greencloud scripts]$ xrandr --listmonitors Monitors: 2 0: +*DVI-D-1 1920/527x1080/296+0+0 DVI-D-1 1: +HDMI-1 1920/527x1080/296+1920+0 HDMI-1 ]$ xrandr --output DVI-D-1 --gamma 1:1:1 --brightness 1.0 ]$ xrandr --output DVI-D-1 --gamma 1:1:0.5 --brightness 0.7 ]$

Q&A

PACMAN

1.- Actualizar el keyring y el sistema. pacman -Sy archlinux-keyring && pacman -Syyu

2 .-Sobreescribir un paquete que esta molestando pacman -Syu --overwrite /usr/lib/libstfl.so.0

Configuracion 1.- Resolucion pantalla xrandr https://unix.stackexchange.com/questions/81746/how-can-i-get-better-looking-fonts-in-my-terminal-urxvt http://wiki.afterstep.org/index.php?title=Rxvt-Unicode_Configuration_Tutorial

jmgomez-IAA commented 5 years ago

Controlar los dot files que nos crean las aplicaciones

jmgomez-IAA commented 5 years ago
jmgomez-IAA commented 5 years ago

Config

jmgomez-IAA commented 5 years ago

Arduino en Arch

Lo primero será instalar el paquete arduino y su dependencia arduino-avr-core, disponibles en los repositorios oficiales (Y de paso actualizamos nuestro sistema):

`sudo pacman -Syu arduino arduino-avr-core`

En ArchLinux, el grupo propietario de /dev/ttyUSB0 (En mi caso es el que se genera cuando lo conecto a través del USB a mi PC) es uucp, esto es porque nuestra placa se comunica con nuestro PC a través de una conexion serial(o serie a USB,mejor dicho):

```rafa@delorean ~ % ls -l /dev/ttyUSB0
crw-rw—- 1 root uucp 188, 0 dic 31 15:01 /dev/ttyUSB0```

Tenemos que agregar el usuario actual a dicho grupo para poder escribir en ese directorio, y por lo tanto enviar los sketches a nuestra placa:

`sudo gpasswd -a $USER uucp`

Dado que vamos a usar el IDE oficial, que usa Java, también tenemos que agregar a nuestro usuario actual al grupo lock:

 `sudo gpasswd -a $USER lock`

Hecho esto ya podemos empezar a programar y subir nuestros sketches a la placa Arduino

jmgomez-IAA commented 4 years ago

Quick Guide

Configurar el sistema base

Creando Hostname

El hostname o nombre de equipo es un nombre único para un equipo en una red. Estos nombres de host son cadenas de caracteres, en pocas palabras va a ser el nombre con el que nuestro equipo va a verse en la red. Para crearlo ejecutamos: $ echo nombredehost > /etc/hostname

Tambien es importante establecer los DNS, últimamente pacman y yay para algunos paquetes exisgen que /etc/resolv.conf sea explicitamente creado:

~]$  cat << EOF | sudo tee /etc/resolv.conf  
# Generated by dhcpcd
# /etc/resolv.conf.head can replace this line
# /etc/resolv.conf.tail can replace this line

# Google DNS
nameserver 8.8.8.8 
nameserver 8.8.4.4

Establecer la zona horaria

Es importante establecer la zona horaria. En la siguiente lista mostramos algunos países con la linea de comando que debemos ingresar según corresponda para establecer esta configuración.

$ ls /usr/share/zoneinfo

España

ln -sf /usr/share/zoneinfo/Europe/Madrid /etc/localtime

Configurar idioma del sistema

Para configurar el idioma principal de nuestro sistema operativo vamos a editar el archivo locale.gen:

nano /etc/locale.gen Una vez dentro, buscamos nuestro país o región.

Descomentar es_ES.UTF-8 o en_US.UTF-8 ingles americano. Establecemos nuestros preferencias de localización. $ echo LANG=en_US.UTF-8 > /etc/locale.conf

Generamos el archivo locale.gen con el siguiente comando: $ locale-gen

Configuración de el reloj de hardware

Cuando GNU/Linux arranca, el sistema está configurado para leer el reloj interno del equipo, después el reloj del sistema, que es independiente. Usaremos el comando hwclock -w para ajustar el reloj interno.

$ hwclock -w

Configurar distribución de teclado

Ahora, para configurar la distribución de nuestro teclado y dejarlo con el idioma que escogimos al principio de toda la instalación, cuando usamos el comando loadkeys (pero siempre tendremos que escoger nuestra distribución de teclado en las configuraciones de Teclado del entorno gráfico que escojas):

$ echo KEYMAP=es > /etc/vconsole.conf

Instalar grub

Ahora procedamos a instalar el grub y usar el comando correcto, dependiendo si usas UEFI o No.

Sin UEFI

$ grub-install /dev/sda
$ grub-mkconfig -o /boot/grub/grub.cfg

Verificar sistemas operativos instalados

Si estás haciendo un dualboot con windows y cuando estabas configurando el grub, no te apareción windows u otro sistema operativo en la lista, usa el comando os-prober

Establecer contraseña del Administrador (root)

Establecemos una contraseña para root:

$ passwd

Escribes la contraseña que desees. No te mostrará nada al escribir, así que fíjate muy bien cuál pondrás de root. Te pedirá nuevamente que confirme la contraseña que acabas de ingresar y una vez confirma, pasemos a lo siguiente.

Crear usuario

Ahora creamos un usuario con los permisos correspondientes:

$ useradd -m -g users -G audio,lp,optical,storage,video,wheel,games,power,scanner -s /bin/bash tu_usuario
# Le cambiamos la contraseña
$ passwd tu_usuario

Saliendo de chroot

Ya terminado esto, salimos de chroot $ exit

Dosmontar particiones y reinicio de sistema

Es importante desmontar las particiones en el siguiente orden:

> /boot o /boot/efi
> /home
> /

O todo junto con:

$ umount -R /mnt

Configuracion post instalacion

Configuracion de la red

$ ip link

2: enp0s25: <BROADCAST, MU...... Habilitamos el cliente dhcp para la interfaz..

$ sudo systemctl enable dhcpcd@enp0s25.service
$ sudo systemctl start dhcpcd@enp0s25.service
$ ip addr show

Tambien es importante establecer los DNS, últimamente pacman y yay para algunos paquetes exisgen que /etc/resolv.conf sea explicitamente creado:


~]$ cat << EOF | sudo tee /etc/resolv.conf  
# Generated by dhcpcd
# /etc/resolv.conf.head can replace this line
# /etc/resolv.conf.tail can replace this line

Google DNS

nameserver 8.8.8.8 nameserver 8.8.4.4

Actualizamos el sistema
`$ pacman -Syyu`

## Repositorios AUR y el gestor de paquetes yay.
Una vez hecho, pasaremos a algo importante y es agregar el repositorio AUR,(Arch Users Repository) que es donde se alberga una gran cantidad de paquetería a parte de las que hay en los repositorios oficiales de Arch Linux, y es mantenida por la comunidad de usuarios de dicha distribución. Si no encuentras algo en los oficiales, seguramente estará en AUR y eso es una de las grandes ventajas de Arch Linux. Ya no necesitarás buscar más repositorios como en Debian, Ubuntu y derivados, en AUR está casi todo.

Abriremos un terminal y escribimos:

`sudo nano /etc/pacman.conf`

Donde nano es un editor de texto por consola y lo utilizaremos para editar el archivo de configuracion de pacman. Pegamos el repositorio al final de community

> [archlinuxfr]
> SigLevel = Optional TrustAll
> Server = http://repo.archlinux.fr/$arch

`$ pacman  -Sy`

Ahora procedamos instalar un AURHelper, porque pacman, el gestor de paquetes, no nos permite utilizarlo para instalar paquetería de AUR. No recomiendo yaourt, que era uno de los más populares, ya que el proyecto fue descontinuado. Tampoco trizen y aurman. Usaremos yay y para instarlo haremos lo siguiente en un terminal:

$ pacman -S git $ git clone https://aur.archlinux.org/yay.git cd yay makepkg -si

Yay usa la misma estructura que pacman, y anteriormente ya puse los comandos básicos para pacman, solo reemplaza pacman por yay. Como ejemplo:

En vez de: sudo pacman -S "paquete" para instalar un paquete, reemplaza pacman por yay, yay -S "paquete".

y así sucesivamente…

### Servidor sshd

$ pacman -S openssh $ systemctl enable sshd $ systemctl start sshd $ systemctl status sshd


Para editar la configuracion:
` $ sudo nano /etc/ssh/sshd_config`
y despues reiniciamos el servicio:
`$ sudo systemctl restart sshd`

Finalmente copiamos nuestra ID RSA a la nueva maquina

The ssh-copy-id command (in the openssh-client package and installed by default) does exactly this:
`$ ssh-copy-id user@hostname.example.com`
copies the public key of your default identity (use -i identity_file for other identities) to the remote hos
jmgomez-IAA commented 4 years ago

LTS kernel en ArchLinux

This is why it is advisable to use an LTS kernel if you prefer a more stable system and/or have an older one. But the decision is yours to make.

Before you install an LTS kernel, check the Linux kernel version you are using.

uname -r

To install the LTS kernel and Linux LTS headers, type the below command:

sudo pacman -S linux-lts sudo pacman install linux-lts-headers

At this point, the LTS version is the default one.

Once done, you can remove the older kernels by typing the below command. However, I prefer to keep it in “case” something goes wrong, I can boot into the other Linux kernel version.

sudo pacman -Rs linux

jmgomez-IAA commented 4 years ago

Install i3-gaps en Arch

$ sudo pacman -S xorg-server xorg-init OK, now we’re ready to set up our graphical environment. The first thing we need is xorg-server, which provides us with our X11 base:

$ sudo pacman -S xorg-server

Then we need to install a video driver. For VirtualBox, the vesa driver works fine:

$ sudo pacman -S xf86-video-vesa

In order to run startx, which boots up the X session, we’ll need the following package as well:

$ sudo pacman -S xorg-xinit $sudo pacman -S i3-gaps

Esta es la version minima, adicionalmente esta bien instalar: $ sudo pacman -S i3status dmenu i3lock rxvt-unicode

Despues modifcamos el fichero de inicio de xinit para que en lugar de twm arranque i3.

$ sudo nano /etc/X11/xinit/xinitrc

twm &

exec i3

Y ya podemos arrancar emplear startx

jmgomez-IAA commented 4 years ago

Mejorar estilo y fuentes

z@aries ~]$ sudo ln -s /etc/fonts/conf.avail/11-lcdfilter-default.conf /etc/fonts/conf.d [jmgomez@aries ~]$ ls -la /etc/profile.d/ total 32 drwxr-xr-x 2 root root 4096 Sep 10 10:32 . drwxr-xr-x 53 root root 4096 Sep 11 08:40 .. -rw-r--r-- 1 root root 545 Jul 2 13:33 freetype2.sh -rw-r--r-- 1 root root 1107 Aug 26 13:43 gawk.csh -rw-r--r-- 1 root root 757 Aug 26 13:43 gawk.sh -rw-r--r-- 1 root root 766 May 23 16:18 locale.sh -rw-r--r-- 1 root root 699 Jun 18 19:57 perlbin.csh -rw-r--r-- 1 root root 668 Jun 18 19:57 perlbin.sh [jmgomez@aries ~]$ sudo ls -la /etc/profile.d/freetype2.sh [sudo] password for jmgomez: ^Csudo: 1 incorrect password attempt [jmgomez@aries ~]$ sudo /etc/profile.d/freetype2.sh [sudo] password for jmgomez: sudo: /etc/profile.d/freetype2.sh: command not found [jmgomez@aries ~]$ sudo nano /etc/profile.d/freetype2.sh Crear el fichero [jmgomez@aries ~]$ sudo nano /etc/fonts/local.conf

<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd">

Noto Sans serif Noto Serif sans-serif Noto Sans monospace Noto Mono
jmgomez-IAA commented 4 years ago

i3lock

Bloquea la pantalla poniendo un fondo borroso y una imagne encima.

#!/bin/bash
revert() {
  rm /tmp/*screen*.png
  xset dpms 0 0 0
}
trap revert HUP INT TERM
xset +dpms dpms 0 0 5
scrot -d 1 /tmp/locking_screen.png
convert -blur 0x8 /tmp/locking_screen.png /tmp/screen_blur.png
convert -composite /tmp/screen_blur.png ~/Pics/Evil_Rick_Sprite.png -gravity South -geometry -20x1200 /tmp/screen.png
i3lock -i /tmp/screen.png
revert

Copiar el script en /.config/i3/scripts/.

Asignamos la tecla Pausa

i3lock bindsym $mod+Pause exec "~/.config/i3/scripts/i3lock.sh"

Bloqueo automatico

xautolock

exec --no-startup-id xautolock -time 10 -locker "~/.config/i3/scripts/i3lock.sh"

Ref

https://elblogdelazaro.gitlab.io/posts/2019-03-07-i3wm_bloquea_la_pantalla_de_forma_original/

jmgomez-IAA commented 4 years ago

Bienestar de los ojos

redshift Ajusta el brillo del monitor a la hora y posicion del sol. eyesome Scripts para lo mismo. Altenativamente se puede hacer manualmente empleando xrandr. [jmgomez@greencloud scripts]$ xrandr --listmonitors Monitors: 2 0: +*DVI-D-1 1920/527x1080/296+0+0 DVI-D-1 1: +HDMI-1 1920/527x1080/296+1920+0 HDMI-1 ]$ xrandr --output DVI-D-1 --gamma 1:1:1 --brightness 1.0 ]$ xrandr --output DVI-D-1 --gamma 1:1:0.5 --brightness 0.7 ]$ xrandr --output HDMI-1 --gamma 1:1:0.5 --brightness 0.7 ]$ xrandr --output HDMI-1 --gamma 1:1:1 --brightness 1

Algunos valores para probar: / cribbed from redshift, but truncated with 500K steps / static const struct { float r; float g; float b; } whitepoints[] = { { 1.00000000, 0.18172716, 0.00000000, }, / 1000K / { 1.00000000, 0.42322816, 0.00000000, }, { 1.00000000, 0.54360078, 0.08679949, }, { 1.00000000, 0.64373109, 0.28819679, }, { 1.00000000, 0.71976951, 0.42860152, }, { 1.00000000, 0.77987699, 0.54642268, }, { 1.00000000, 0.82854786, 0.64816570, }, { 1.00000000, 0.86860704, 0.73688797, }, { 1.00000000, 0.90198230, 0.81465502, }, { 1.00000000, 0.93853986, 0.88130458, }, { 1.00000000, 0.97107439, 0.94305985, }, { 1.00000000, 1.00000000, 1.00000000, }, / 6500K / { 0.95160805, 0.96983355, 1.00000000, }, { 0.91194747, 0.94470005, 1.00000000, }, { 0.87906581, 0.92357340, 1.00000000, }, { 0.85139976, 0.90559011, 1.00000000, }, { 0.82782969, 0.89011714, 1.00000000, }, { 0.80753191, 0.87667891, 1.00000000, }, { 0.78988728, 0.86491137, 1.00000000, }, / 10000K / { 0.77442176, 0.85453121, 1.00000000, }, };