Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save MasterGeekMX/6e2d4e47d9852c04f162bf672066daa5 to your computer and use it in GitHub Desktop.
Save MasterGeekMX/6e2d4e47d9852c04f162bf672066daa5 to your computer and use it in GitHub Desktop.

Revisions

  1. MasterGeekMX revised this gist Nov 13, 2023. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion guia_instalacion_arch_linux.md
    Original file line number Diff line number Diff line change
    @@ -393,7 +393,7 @@ reboot

    ## Actualización automática de entradas de arranque de instantáneas

    Edita el servicio **`grub-btrfsd`** para habilitar la **actualización automática de entradas en GRUB** cada vez que una instantánea sea creada. Ya que voy a usar Timeshift voy a reemplazar `ExecStart=...` con `ExecStart=/usr/bin/grub-btrfsd --syslog --timeshift-auto`. si no usas Timeshift o prefieres actualizar manualmente las entradas entonces checa [esto (en inglés)](https://github.com/Antynea/grub-btrfs).
    Edita el servicio **`grub-btrfsd`** para habilitar la **actualización automática de entradas en GRUB** cada vez que una instantánea sea creada. Ya que voy a usar Timeshift voy a reemplazar `ExecStart=...` con `ExecStart=/usr/bin/grub-btrfsd --syslog --timeshift-auto`. si no usas Timeshift o prefieres actualizar manualmente las entradas entonces revisa [esto (en inglés)](https://github.com/Antynea/grub-btrfs).

    ```Zsh
    sudo systemctl edit --full grub-btrfsd
  2. MasterGeekMX revised this gist Nov 13, 2023. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions guia_instalacion_arch_linux.md
    Original file line number Diff line number Diff line change
    @@ -393,12 +393,12 @@ reboot

    ## Actualización automática de entradas de arranque de instantáneas

    Edit **`grub-btrfsd`** service to enable **automatic grub entries update** each time a snapshot is created. Because I will use timeshift i am going to replace `ExecStart=...` with `ExecStart=/usr/bin/grub-btrfsd --syslog --timeshift-auto`. If you don't use timeshift or prefer to manually update the entries then lookup [here](https://github.com/Antynea/grub-btrfs)
    Edita el servicio **`grub-btrfsd`** para habilitar la **actualización automática de entradas en GRUB** cada vez que una instantánea sea creada. Ya que voy a usar Timeshift voy a reemplazar `ExecStart=...` con `ExecStart=/usr/bin/grub-btrfsd --syslog --timeshift-auto`. si no usas Timeshift o prefieres actualizar manualmente las entradas entonces checa [esto (en inglés)](https://github.com/Antynea/grub-btrfs).

    ```Zsh
    sudo systemctl edit --full grub-btrfsd

    # Enable grub-btrfsd service to run on boot
    # Habilita el servicio grub-btrfsd para que se inicie al arrancar
    sudo systemctl enable grub-btrfsd
    ```

  3. MasterGeekMX revised this gist Nov 13, 2023. 1 changed file with 26 additions and 26 deletions.
    52 changes: 26 additions & 26 deletions guia_instalacion_arch_linux.md
    Original file line number Diff line number Diff line change
    @@ -268,30 +268,30 @@ arch-chroot /mnt
    ## Configurar la zona horaria

    ```Zsh
    # In our new system we have to set up the local time zone, find your one in /usr/share/zoneinfo mine is /usr/share/zoneinfo/Europe/Rome and create a symbolic link to /etc/localtime
    ln -sf /usr/share/zoneinfo/Europe/Rome /etc/localtime
    # En nuestro sistema nuevo tenemos que configurar la zona horaria. Encuentra la tuya en /usr/share/zoneinfo. La mía es /usr/share/zoneinfo/America/Mexico_City. Crea un enlace simbólico en /etc/localtime
    ln -sf /usr/share/zoneinfo/America/Mexico_City /etc/localtime

    # Now sync the time to the hardware clock
    # Ahora sincroniza la hora con el reloj del hardware
    hwclock --systohc
    ```

    <br>

    ## Configurar el idioma y la distribución del teclado en TTY

    Edit `/etc/locale.gen` and uncomment the entries for your locales, this will "**enable**" \( **NOT ACTIVATE** \) the language but also formats for time, date, currency and other country related settings. In my case I will uncomment _\( ie: remove the # \)_ `en_US.UTF-8 UTF-8` and `it_IT.UTF-8 UTF-8` because I use English as a "display" language and Italian for date, time and other formats.
    Edita `/etc/locale.gen` y descomenta las entradas para tus localizaciones. Esto "**habilitará**" \(**NO ACTIVARÁ**\) el idioma pero también los formatos para fecha, hora, moneda y otras cosas relacionadas al país. En mi caso voy a descomentar _\(es decir, borrar los #\)_ en `en_US.UTF-8 UTF-8` y `es_MX.UTF-8 UTF-8` para que el sistema muestre la interfaz en inglés estadounidense, pero conservando el español mexicano para fechas, monedas y otros formatos regionales.

    ```Zsh
    # To edit I will use vim, feel free to use nano instead.
    # Para editarlo voy a usar VIM. Usa otro editor como nano si te es más cómodo.
    vim /etc/locale.gen

    # Now generate the locales
    # Ahora genera las localizaciones.
    locale-gen
    ```

    <br>

    Create the configuration file `/etc/locale.conf` and set the locale to the desired one, by setting the `LANG` variable accordingly. In my case I'll write `LANG=it_IT.UTF-8` to apply Italian settings to everything and then override only the display language to English by setting `LC_MESSAGES=en_US.UTF-8`. _\( if you want formats and language to stay the same **DON'T** set `LC_MESSAGES` \)_. More on this [here](https://wiki.archlinux.org/title/Locale#Variables)
    Crea el archivo de configuración `/etc/locale.conf` y configura la localización a la deseada poniendo la variable `LANG` apropiadamente. En mi caso pondré `LANG=es_MX.UTF-8` para aplicar el español mexicano a todo, pero poniendo que sólo los textos de la interfaz se muestren en inglés con `LC_MESSAGES=en_US.UTF-8`. _\(si quieres que el idioma del sistema y de la interfaz de usuario sea la misma **NO** pongas la variable `LC_MESSAGES`\)_. Mas información [aquí](https://wiki.archlinux.org/title/Locale#Variables).

    ```Zsh
    touch /etc/locale.conf
    @@ -300,7 +300,7 @@ vim /etc/locale.conf

    <br>

    Now to make the current keyboard layout permanent for tty sessions , create `/etc/vconsole.conf` and write `KEYMAP=your_key_map` substituting the keymap with the one previously set [here](#preliminary-steps). In my case `KEYMAP=it`
    Ahora, para hacer que la distribución del teclado actual sea permanente para todas las sesiones de TTY, crea el archivo `/etc/vconsole.conf` y escribe `KEYMAP=tu_distribución` sustituyendo con la distribución del teclado que configuraste [aquí](#pasos-preliminares). En mi caso es `KEYMAP=la-latin1`

    ```Zsh
    vim /etc/vconsole.conf
    @@ -311,15 +311,15 @@ vim /etc/vconsole.conf
    ## Configuración de nombre de Host y otros Hosts

    ```Zsh
    # Create /etc/hostname then choose and write the name of your pc in the first line. In my case I'll use Arch
    # Escoge un nombre para tu PC. Entonces crea el archivo /etc/hostname y escríbelo en la primera linea. En mi caso será "Arch"
    touch /etc/hostname
    vim /etc/hostname

    # Create the /etc/hosts file. This is very important because it will resolve the listed hostnames locally and not over the Internet.
    # Crea el archivo /etc/hosts. Este archivo es muy importante ya que resolverá los nombres listados de forma local y no usando el Internet.
    touch /etc/hosts
    ```

    Write the following ip, hostname pairs inside /etc/hosts, replacing Arch with **YOUR** hostname:
    Escribe las siguientes parejas de direcciones IP y nombres de host, reemplazando Arch con **TU** nombre de host que escogiste:

    ```
    127.0.0.1 localhost
    @@ -328,7 +328,7 @@ Write the following ip, hostname pairs inside /etc/hosts, replacing Arch with **
    ```

    ```Zsh
    # Edit the file with the information above
    # Edita el archivo /etc/hosts con la info de arriba
    vim /etc/hosts
    ```

    @@ -337,32 +337,32 @@ vim /etc/hosts
    ## Root y otros usuarios

    ```Zsh
    # Set up the root password
    # Configura la contraseña del usuario root
    passwd

    # Add a new user, in my case mjkstra.
    # -m creates the home dir automatically
    # -G adds the user to an initial group, in this case is wheel, the administration group.
    useradd -mG wheel mjkstra
    passwd mjkstra
    # Agregar un nuevo usuario, en mi caso master
    # -m crea el directorio personal en /home/ automáticamente
    # -G agrega el usuario a un grupo inicial. En este caso es wheel, que es el grupo de administradores
    useradd -mG wheel master
    passwd master

    # Uncomment the wheel group to allow execution of any command( ie: remove the # from the wheel line ). if you want to use nano then write EDITOR=nano instead.
    # Descomenta el grupo wheel (es decir, borrar el # de la línea de wheel) para permitir que ejecuten cualquier comando. Si quieres editar con nano, usa EDITOR=nano en su lugar.
    EDITOR=vim visudo
    ```

    <br>

    ## Configuracion de GRUB

    Now I'll [deploy grub](https://wiki.archlinux.org/title/GRUB#Installation)
    Ahora [instalaremos grub](https://wiki.archlinux.org/title/GRUB_%28Español%29#Instalación_2)

    ```Zsh
    grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB
    ```

    <br>

    Generate the grub configuration ( it will include the microcode installed with pacstrap earlier )
    Genera el archivo de configuración de GRUB (incluirá el microcódigo que instalamos antes con pacstrap)

    ```Zsh
    grub-mkconfig -o /boot/grub/grub.cfg
    @@ -373,19 +373,19 @@ grub-mkconfig -o /boot/grub/grub.cfg
    ## Desmontar todo y reiniciar

    ```Zsh
    # Enable newtork manager before rebooting otherwise, you won't be able to connect
    # Habilita el servicio de NetworkManager antes de reiniciar. Sin el, no tendremos conexión.
    systemctl enable NetworkManager

    # Enable the network time synchronization
    # Habilita e inicia el servicio de sincronización de tiempo
    timedatectl set-ntp true

    # Exit from chroot
    # Salimos del chroot
    exit

    # Unmount everything to check if the drive is busy
    # Desmonta todo para revisar si el disco está ocupado
    umount -R /mnt

    # Reboot the system and unplug the installation media
    # Reinicia el sistema. Desconecta el medio de instalación ahora.
    reboot
    ```

  4. MasterGeekMX revised this gist Nov 13, 2023. 1 changed file with 40 additions and 40 deletions.
    80 changes: 40 additions & 40 deletions guia_instalacion_arch_linux.md
    Original file line number Diff line number Diff line change
    @@ -17,26 +17,26 @@
    - [Root y otros usuarios](#root-y-otros-usuarios)
    - [Configuración de GRUB](#configuración-de-grub)
    - [Desmontar todo y reiniciar](#desmontar-todo-y-reiniciar)
    - [Automatic snapshot boot entries update](#automatic-snapshot-boot-entries-update)
    - [Virtual machine \[Optional\]](#virtual-machine-optional)
    - [Ayudante de AUR e instalación de paquetes adicionales \[Opcional\]](#ayudante-de-aur-e-instalación-de-paquetes-adicionales-opcional)
    - [Finalization](#finalization)
    - [Video drivers](#video-drivers)
    - [Actualización automática de entradas de arranque de instantáneas](#actualización-automática-de-entradas-de-arranque-de-instantáneas)
    - [Máquina virtual \[opcional\]](#máquina-virtual-opcional)
    - [Ayudante de AUR e instalación de paquetes adicionales \[opcional\]](#ayudante-de-aur-e-instalación-de-paquetes-adicionales-opcional)
    - [Finalización](#finalización)
    - [Controladores de video](#controladores-de-video)
    - [Amd](#amd)
    - [32 Bit support](#32-bit-support)
    - [Soporte de 32 bits](#soporte-de-32-bits)
    - [Nvidia](#nvidia)
    - [Intel](#intel)
    - [Setting up a graphical environment](#setting-up-a-graphical-environment)
    - [Option 1: KDE Plasma](#option-1-kde-plasma)
    - [Option 2: Hyprland \[WIP\]](#option-2-hyprland-wip)
    - [Adding a display manager](#adding-a-display-manager)
    - [Gaming](#gaming)
    - [Gaming clients](#gaming-clients)
    - [Windows compatibility layers](#windows-compatibility-layers)
    - [Generic optimizations](#generic-optimizations)
    - [Overclocking and monitoring](#overclocking-and-monitoring)
    - [Tips and tricks](#tips-and-tricks)
    - [Things to add \[WIP\]](#things-to-add-wip)
    - [Configurando un entorno gráfico](#configurando-un-entorno-gráfico)
    - [Opción 1: KDE Plasma](#opción-1-kde-plasma)
    - [Opción 2: Hyprland \[en construcción\]](#opción-2-hyprland-en-construcción)
    - [Agregando un manejador de pantalla](#agregando-un-manejador-de-pantalla)
    - [Juegos](#juegos)
    - [Clientes de juegos](#clientes-de-juegos)
    - [Capas de compatibilidad con Windows](#capas-de-compatibilidad-con-windows)
    - [Optimizaciones genéricas](#optimizaciones-genéricas)
    - [Overclocking y monitoreo](#overclocking-y-monitoreo)
    - [Trucos y consejos](#trucos-y-consejos)
    - [Cosas por agregar \[en construcción\]](#cosas-por-agregar-en-construcción)

    # Introducción

    @@ -391,7 +391,7 @@ reboot

    <br>

    ## Automatic snapshot boot entries update
    ## Actualización automática de entradas de arranque de instantáneas

    Edit **`grub-btrfsd`** service to enable **automatic grub entries update** each time a snapshot is created. Because I will use timeshift i am going to replace `ExecStart=...` with `ExecStart=/usr/bin/grub-btrfsd --syslog --timeshift-auto`. If you don't use timeshift or prefer to manually update the entries then lookup [here](https://github.com/Antynea/grub-btrfs)

    @@ -404,7 +404,7 @@ sudo systemctl enable grub-btrfsd

    <br>

    ## Virtual machine \[Optional\]
    ## Máquina virtual \[opcional\]

    Follow these steps if you are running Arch on a Virtualbox VM.

    @@ -422,7 +422,7 @@ systemctl enable vboxservice.service
    <br>

    ## Ayudante de AUR e instalación de paquetes adicionales \[Opcional\]
    ## Ayudante de AUR e instalación de paquetes adicionales \[opcional\]

    To gain access to the arch user repository we need an aur helper, I will choose yay which also works as a pacman wrapper \( which means you can use yay instead of pacman. Cool, right ? \). Yay has a CLI, but if you later want to have an aur helper with a GUI, I advise installing [`pamac`](https://gitlab.manjaro.org/applications/pamac), which is the default on Manjaro.

    @@ -442,7 +442,7 @@ yay -S timeshift-autosnap
    <br>

    ## Finalization
    ## Finalización

    ```Zsh
    # To complete the main/basic installation reboot the system
    @@ -455,9 +455,9 @@ reboot
    <br>

    # Video drivers
    # Controladores de video

    In order to have the smoothest experience on a graphical environment, **Gaming included**, we first need to install video drivers. To help you choose which one you want or need, read [this section](https://wiki.archlinux.org/title/Xorg#Driver_installation) of the arch wiki.
    In order to have the smoothest experience on a graphical environment, **juegos included**, we first need to install Controladores de video. To help you choose which one you want or need, read [this section](https://wiki.archlinux.org/title/Xorg#Driver_installation) of the arch wiki.

    > Note: skip this section if you are on a Virtual Machine
    @@ -479,7 +479,7 @@ For this guide I'll install the [**AMDGPU** driver](https://wiki.archlinux.org/t
    sudo pacman -S mesa xf86-video-amdgpu vulkan-radeon libva-mesa-driver mesa-vdpau
    ```

    ### 32 Bit support
    ### Soporte de 32 bits

    *IF* you want add **32-bit** support, we need to enable the `multilib` repository on pacman: edit `/etc/pacman.conf` and uncomment the `[multilib]` section _\( ie: remove the hashtag from each line of the section. Should be 2 lines \)_. Now we can install the additional packages.

    @@ -510,7 +510,7 @@ Installation looks almost identical to the AMD one, but every time a package con

    <br>

    # Setting up a graphical environment
    # Configurando un entorno gráfico

    I'll provide 2 options:

    @@ -521,9 +521,9 @@ On top of that I'll add a **display manager**, which you can omit if you don't l

    <br>

    ## Option 1: KDE-plasma
    ## Opción 1: KDE-plasma

    **KDE Plasma** is a very popular DE which comes bundled in many distributions. It supports both the older more stable **Xorg** and the newer **Wayland** protocols. It's **user friendly** and also it's used on the Steam Deck, which makes it great for **gaming**. I'll provide the steps for a minimal installation and add some basic packages.
    **KDE Plasma** is a very popular DE which comes bundled in many distributions. It supports both the older more stable **Xorg** and the newer **Wayland** protocols. It's **user friendly** and also it's used on the Steam Deck, which makes it great for **juegos**. I'll provide the steps for a minimal installation and add some basic packages.

    ```Zsh
    # Install the plasma desktop environment, the audio and network applets, task manager, screen configurator, global shortcuts, power manager, some useful basic addons, configuration for GTK application theming and other package of personal interest
    @@ -534,7 +534,7 @@ Now don't reboot your system yet. If you want a display manager, which is genera

    <br>

    ## Option 2: Hyprland [WIP]
    ## Opción 2: Hyprland \[en construcción\]

    **Hyprland** is a **tiling WM** that sticks to the wayland protocol. It looks incredible and it's one of the best Wayland WMs right now. It's based on **wlroots** the famous library used by Sway, the most compatible/working Wayland WM there is. I don't know if I would recommend this to beginners because it's a different experience from Windows/Ubuntu/PopOs and distros like that, moreover it requires you to read the [guide](https://wiki.hyprland.org/Getting-Started/Master-Tutorial) for configuration. The good part is that even if it seems discouraging, it's actually an easy read because it is written beautifully even better than the Arch wiki !

    @@ -548,7 +548,7 @@ yay -S wlogout
    <br>

    # Adding a display manager
    # Agregando un manejador de pantalla

    **Display managers** are useful when you have multiple DE or WMs and want to choose where to boot from in a GUI fashion, also they take care of the launch process. I'll show the installation process of **SDDM**, which is highly customizable and compatible.

    @@ -570,24 +570,24 @@ reboot

    <br>

    # Gaming
    # juegos

    Gaming on linux has become a very fluid experience, so I'll give some tips on how to setup your arch distro for gaming.
    juegos on linux has become a very fluid experience, so I'll give some tips on how to setup your arch distro for juegos.

    Let's break down what is needed to game:

    1. **Gaming client** ( eg: Steam, Lutris, Bottles, etc..)
    2. **Windows compatibility layers** ( eg: Proton, Wine, DXVK, VKD3D )
    1. **juegos client** ( eg: Steam, Lutris, Bottles, etc..)
    2. **Capas de compatibilidad con Windows** ( eg: Proton, Wine, DXVK, VKD3D )

    Optionally we can have:

    1. **Generic optimization** ( eg: gamemode )
    2. **Overclocking and monitoring software** ( eg: CoreCtrl, Mangohud )
    2. **Overclocking y monitoreo software** ( eg: CoreCtrl, Mangohud )
    3. **Custom kernels**

    <br>

    ## Gaming clients
    ## Clientes de juegos

    I'll install **Steam** and to access games from other launchers I'll use **Bottles**, which should be installed through **flatpak**.

    @@ -601,7 +601,7 @@ flatpak install flathub com.usebottles.bottles

    <br>

    ## Windows compatibility layers
    ## Capas de compatibilidad con Windows

    Proton is the compatibility layer developed by Valve, which includes **DXVK**( DirectX 9-10-11 to Vulkan), **VKD3D** ( DirectX 12 to Vulkan ) and a custom version of **Wine**. It is embedded in Steam and can be enabled directly in Steam settings. A custom version of proton, **Proton GE** exists and can be used as an alternative if something is broken or doesn't perform as expected. Can be either downloaded manually, like explained [here](https://github.com/GloriousEggroll/proton-ge-custom#installation) or through yay as below.

    @@ -614,7 +614,7 @@ yay -S proton-ge-custom-bin
    <br>

    ## Generic optimizations
    ## Optimizaciones genéricas

    We can use gamemode to gain extra performance. To enable it read [here](https://github.com/FeralInteractive/gamemode#requesting-gamemode)

    @@ -625,7 +625,7 @@ pacman -S gamemode

    <br>

    ## Overclocking and monitoring
    ## Overclocking y monitoreo

    To live monitor your in-game performance, you can use **mangohud**. To enable it read [here](https://github.com/flightlessmango/MangoHud#normal-usage)

    @@ -638,7 +638,7 @@ To overclock your system, i suggest installing [**corectrl**](https://gitlab.com

    <br>

    ### Tips and tricks
    ### Trucos y consejos

    > Tip: On KDE disabling mouse acceleration is simple, just go to the settings via the GUI and on the mouse section enable the flat acceleration profile. If not using KDE then read [here](https://wiki.archlinux.org/title/Mouse_acceleration)
    @@ -651,7 +651,7 @@ To overclock your system, i suggest installing [**corectrl**](https://gitlab.com
    <br>

    # Things to add [WIP]
    # Cosas por agregar \[en construcción\]

    1. Additional pacman configuration \( paccache, colors, download packages simultaneously \)
    2. Reflector configuration
  5. MasterGeekMX revised this gist Nov 13, 2023. 1 changed file with 2 additions and 1 deletion.
    3 changes: 2 additions & 1 deletion guia_instalacion_arch_linux.md
    Original file line number Diff line number Diff line change
    @@ -186,7 +186,8 @@ mount /dev/nvme0n1p2 /mnt
    # Crea los subvolúmenes. En mi caso he escogido hacer un subvolúmen para / y otro para /home. Los subvolúmenes se identifican poniendo un arroba al principio
    btrfs subvolume create /mnt/@
    btrfs subvolume create /mnt/@home

    # La lista de subvolúmenes será incrementada en una versión posterior de esta guía después de que sean probadas.
    # Los planes actuales son añadir los siguientes subvolúmenes: @log @cache @tmp. De esta forma no serán incluidos cuando se hagan instantáneas de el subvolúmen raíz (ej: @)

    # Desmontemos el sistema de archivos raíz
    umount /mnt
  6. MasterGeekMX revised this gist Nov 13, 2023. 1 changed file with 45 additions and 44 deletions.
    89 changes: 45 additions & 44 deletions guia_instalacion_arch_linux.md
    Original file line number Diff line number Diff line change
    @@ -8,18 +8,18 @@
    - [Particionado de disco](#particionado-de-disco)
    - [Formateado de disco](#formateado-de-disco)
    - [Montado de discos](#montado-de-discos)
    - [Packages installation](#packages-installation)
    - [Instalación de paquetes](#instalación-de-paquetes)
    - [Fstab](#fstab)
    - [Context switch to our new system](#context-switch-to-our-new-system)
    - [Set up the time zone](#set-up-the-time-zone)
    - [Set up the language and tty keyboard map](#set-up-the-language-and-tty-keyboard-map)
    - [Hostname and Host configuration](#hostname-and-host-configuration)
    - [Root and users](#root-and-users)
    - [Grub configuration](#grub-configuration)
    - [Unmount everything and reboot](#unmount-everything-and-reboot)
    - [Cambio de contexto al sistema nuevo](#cambio-de-contexto-al-sistema-nuevo)
    - [Configurar la zona horaria](#configurar-la-zona-horaria)
    - [Configurar el idioma y la distribución del teclado en TTY](#configurar-el-idioma-y-la-distribución-del-teclado-en-tty)
    - [Configuración de nombre de Host y otros Hosts](#configuración-de-nombre-de-host-y-otros-hosts)
    - [Root y otros usuarios](#root-y-otros-usuarios)
    - [Configuración de GRUB](#configuración-de-grub)
    - [Desmontar todo y reiniciar](#desmontar-todo-y-reiniciar)
    - [Automatic snapshot boot entries update](#automatic-snapshot-boot-entries-update)
    - [Virtual machine \[Optional\]](#virtual-machine-optional)
    - [Aur helper and additional packages installation \[Optional\]](#aur-helper-and-additional-packages-installation-optional)
    - [Ayudante de AUR e instalación de paquetes adicionales \[Opcional\]](#ayudante-de-aur-e-instalación-de-paquetes-adicionales-opcional)
    - [Finalization](#finalization)
    - [Video drivers](#video-drivers)
    - [Amd](#amd)
    @@ -187,6 +187,7 @@ mount /dev/nvme0n1p2 /mnt
    btrfs subvolume create /mnt/@
    btrfs subvolume create /mnt/@home


    # Desmontemos el sistema de archivos raíz
    umount /mnt
    ```
    @@ -213,30 +214,30 @@ mount /dev/nvme0n1p1 /mnt/efi

    <br>

    ## Packages installation

    ```Zsh
    # This will install some packages to "bootstrap" methaphorically our system. Feel free to add the ones you want
    # "base, linux, linux-firmware" are needed
    # "base-devel" base development packages
    # "git" to install the git vcs
    # "btrfs-progs" are user-space utilities for file system management ( needed to harness the potential of btrfs )
    # "grub" the bootloader
    # "efibootmgr" needed to install grub
    # "grub-btrfs" adds btrfs support for the grub bootloader and enables the user to directly boot from snapshots
    # "inotify-tools" used by grub btrfsd deamon to automatically spot new snapshots and update grub entries
    # "timeshift" a GUI app to easily create,plan and restore snapshots using BTRFS capabilities
    # "amd-ucode" microcode updates for the cpu. If you have an intel one use "intel-ucode"
    # "vim" my goto editor, if unfamiliar use nano
    # "networkmanager" to manage Internet connections both wired and wireless ( it also has an applet package network-manager-applet )
    # "pipewire pipewire-alsa pipewire-pulse pipewire-jack" for the new audio framework replacing pulse and jack. You should be prompted to choose a session manager, I'll choose Wireplumber.
    # "reflector" to manage mirrors for pacman
    # "zsh" my favourite shell
    # "zsh-completions" for zsh additional completions
    # "zsh-autosuggestions" very useful, it helps writing commands [ Needs configuration in .zshrc ]
    # "openssh" to use ssh and manage keys
    # "man" for manual pages
    # "sudo" to run commands as other users
    ## Instalación de paquetes

    ```Zsh
    # Esto instalará algunos paquetes para "inicializar" nuestro sistema, metafóricamente hablando. Siéntete libre de agregar los que quieras
    # "base, linux, linux-firmware" son necesarios
    # "base-devel" paquetes de desarrollo básicos
    # "git" para instalar el sistema de control de versiones GIT
    # "btrfs-progs" son utilidades del espacio de usuario para manejar el sistema de archivos (necesarias para sacarle todo el provecho a BTRFS)
    # "grub" es el gestor de arranque
    # "efibootmgr" es necesario para instalar GRUB en sistemas UEFI
    # "grub-btrfs" agrega soporte para BTRFS en el gestor de arranque GRUB y permite al usuario arrancar directamente desde instantáneas
    # "inotify-tools" usado por por el daemon de GRUB btrfsd para detectar nuevas instantáneas automáticamente y generar entradas de arranque en GRUB
    # "timeshift" una interfaz gráfica para crear, planear y restaurar instantáneas usando las capacidades de BTRFS
    # "amd-ucode" actualizaciones del microcódigo para procesadores AMD. Si tienes un procesador Intel, instala "intel-ucode" en su lugar
    # "vim" mi editor de preferencia. Si no lo conoces bien, usa "nano" en su lugar
    # "networkmanager" para manejar conexiones a internet ya sean cableadas o inalámbricas (también tiene un applet para la bandeja del sistema llamada "network-manager-applet")
    # "pipewire pipewire-alsa pipewire-pulse pipewire-jack" para el nuevo sistema de audio que reemplaza a PulseAudio y JACK. Una pregunta sobre qué manejador de sesión quieres usar. Yo usaré "Wireplumber"
    # "reflector" para administrar servidores espejo de pacman
    # "zsh" mi interfaz shell favorita
    # "zsh-completions" para poder completar comandos y otras cosas en ZSH usando la tecla Tab
    # "zsh-autosuggestions" muy útil, te ayuda a escribir comandos [necesita ser configurado en el archivo .zshrc]
    # "openssh" para usar SSH y manejar claves
    # "man" para tener páginas del manual
    # "sudo" para correr comandos como otros usuarios
    pacstrap -K /mnt base base-devel linux linux-firmware git btrfs-progs grub efibootmgr grub-btrfs inotify-tools timeshift vim networkmanager pipewire pipewire-alsa pipewire-pulse pipewire-jack reflector zsh zsh-completions zsh-autosuggestions openssh man sudo
    ```

    @@ -245,25 +246,25 @@ pacstrap -K /mnt base base-devel linux linux-firmware git btrfs-progs grub efibo
    ## Fstab

    ```Zsh
    # Fetch the Montado de discos points as they are now ( we mounted everything before ) and generate instructions to let the system know how to mount the various disks automatically
    # Toma los puntos de montado de los discos a como están en este momento (los montamos previamente) y genera instrucciones para informarle al sistema como montar las particiones de forma automática
    genfstab -U /mnt >> /mnt/etc/fstab

    # Check if fstab is fine
    # Checa que el archivo fstab esté correcto
    cat /mnt/etc/fstab
    ```

    <br>

    ## Context switch to our new system
    ## Cambio de contexto al sistema nuevo

    ```Zsh
    # To access our new system we chroot into it
    # Para acceder a nuestro nuevo sistema "hacemos chroot" (cambiamos de raíz) a el
    arch-chroot /mnt
    ```

    <br>

    ## Set up the time zone
    ## Configurar la zona horaria

    ```Zsh
    # In our new system we have to set up the local time zone, find your one in /usr/share/zoneinfo mine is /usr/share/zoneinfo/Europe/Rome and create a symbolic link to /etc/localtime
    @@ -275,7 +276,7 @@ hwclock --systohc

    <br>

    ## Set up the language and tty keyboard map
    ## Configurar el idioma y la distribución del teclado en TTY

    Edit `/etc/locale.gen` and uncomment the entries for your locales, this will "**enable**" \( **NOT ACTIVATE** \) the language but also formats for time, date, currency and other country related settings. In my case I will uncomment _\( ie: remove the # \)_ `en_US.UTF-8 UTF-8` and `it_IT.UTF-8 UTF-8` because I use English as a "display" language and Italian for date, time and other formats.

    @@ -306,7 +307,7 @@ vim /etc/vconsole.conf

    <br>

    ## Hostname and Host configuration
    ## Configuración de nombre de Host y otros Hosts

    ```Zsh
    # Create /etc/hostname then choose and write the name of your pc in the first line. In my case I'll use Arch
    @@ -332,7 +333,7 @@ vim /etc/hosts

    <br>

    ## Root and users
    ## Root y otros usuarios

    ```Zsh
    # Set up the root password
    @@ -350,7 +351,7 @@ EDITOR=vim visudo

    <br>

    ## Grub configuration
    ## Configuracion de GRUB

    Now I'll [deploy grub](https://wiki.archlinux.org/title/GRUB#Installation)

    @@ -368,7 +369,7 @@ grub-mkconfig -o /boot/grub/grub.cfg

    <br>

    ## Unmount everything and reboot
    ## Desmontar todo y reiniciar

    ```Zsh
    # Enable newtork manager before rebooting otherwise, you won't be able to connect
    @@ -420,7 +421,7 @@ systemctl enable vboxservice.service
    <br>

    ## Aur helper and additional packages installation \[Optional\]
    ## Ayudante de AUR e instalación de paquetes adicionales \[Opcional\]

    To gain access to the arch user repository we need an aur helper, I will choose yay which also works as a pacman wrapper \( which means you can use yay instead of pacman. Cool, right ? \). Yay has a CLI, but if you later want to have an aur helper with a GUI, I advise installing [`pamac`](https://gitlab.manjaro.org/applications/pamac), which is the default on Manjaro.

  7. MasterGeekMX revised this gist Nov 12, 2023. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion guia_instalacion_arch_linux.md
    Original file line number Diff line number Diff line change
    @@ -204,7 +204,7 @@ mount -o compress=zstd,subvol=@home /dev/nvme0n1p2 /mnt/home

    <br>

    Ahora tenemos que montar la partición EFI. En general, hay dos puntos de montaje comunes: `/efi` ó `/boot`, pero en esta configuración estoy forzado a usar `/efi` ya que si escogemos `/boot` podríamos experimentar un **fallo del sistema** al intentar restaurar el subvolúmen `@root` a un estado previo después de actualizar el kernel. Esto ocurre porque los archivos de arranque como el kernel no están almacenados en `@root` sino en la partición EFI y por lo tanto no pueden ser guardados al hacer una instantánea de `@root`. Esta opción también otorga separación de preocupaciones y también es buena si uno quiere encriptar `/boot`, ya que no puedes encriptar los archivos EFI. Aprende más [aquí](https://wiki.archlinux.org/title/EFI_system_partition_%28Españ1ol%29#Puntos_de_montaje_alternativos).
    Ahora tenemos que montar la partición EFI. En general, hay dos puntos de montaje comunes: `/efi` ó `/boot`, pero en esta configuración estoy forzado a usar `/efi` ya que si escogemos `/boot` podríamos experimentar un **fallo del sistema** al intentar restaurar el subvolúmen `@root` a un estado previo después de actualizar el kernel. Esto ocurre porque los archivos de arranque como el kernel no están almacenados en `@root` sino en la partición EFI y por lo tanto no pueden ser guardados al hacer una instantánea de `@root`. Esta opción también otorga separación de preocupaciones y también es buena si uno quiere encriptar `/boot`, ya que no puedes encriptar los archivos EFI. Aprende más [aquí](https://wiki.archlinux.org/title/EFI_system_partition_%28Español%29#Puntos_de_montaje_alternativos).

    ```Zsh
    mkdir -p /mnt/efi
  8. MasterGeekMX revised this gist Nov 12, 2023. 1 changed file with 46 additions and 46 deletions.
    92 changes: 46 additions & 46 deletions guia_instalacion_arch_linux.md
    Original file line number Diff line number Diff line change
    @@ -2,12 +2,12 @@

    # Índice

    - [Introducción](#Introducción)
    - [Preliminary Steps](#preliminary-steps)
    - [Main installation](#main-installation)
    - [Disk partitioning](#disk-partitioning)
    - [Disk formatting](#disk-formatting)
    - [Disk mounting](#disk-mounting)
    - [Introducción](#introducción)
    - [Pasos preliminares](#pasos-preliminares)
    - [Instalación principal](#instalación-principal)
    - [Particionado de disco](#particionado-de-disco)
    - [Formateado de disco](#formateado-de-disco)
    - [Montado de discos](#montado-de-discos)
    - [Packages installation](#packages-installation)
    - [Fstab](#fstab)
    - [Context switch to our new system](#context-switch-to-our-new-system)
    @@ -52,86 +52,86 @@ El objetivo de esta guía es ayudar a nuevos usuarios a que se acoplen con Arch

    <br>

    **No** encriptaremos el sistema ya que no lo necesito y en mi opinión hay pocas situaciones donde de verdad se requiere. \( siempre puedes encriptar información sensible con GPG \). Además, el arranque se hará inevitablemente más **lento**.
    **No** encriptaremos el sistema ya que no lo necesito y en mi opinión hay pocas situaciones donde de verdad se requiere. \(siempre puedes encriptar información sensible con GPG\). Además, el arranque se hará inevitablemente más **lento**.

    <br>

    Nos **saltaremos** la descarga de la imagen ISO, firmas GPG y la preparación del medio de instalación.

    <br>

    Usaré una conexión **cableada**, por lo que no habrá pasos para configuración inalámbrica. Si quieres conectarte al WiFi, puedes ya sea lanzar `wifi-menu` desde la terminal ya que es una **TGUI** \( interfaz gráfica de usuario por terminal \) ó usar [`iwctl`](https://wiki.archlinux.org/title/Iwd#iwctl).
    Usaré una conexión **cableada**, por lo que no habrá pasos para configuración inalámbrica. Si quieres conectarte al WiFi, puedes ya sea lanzar `wifi-menu` desde la terminal ya que es una **TGUI** \(interfaz gráfica de usuario por terminal\) ó usar [`iwctl`](https://wiki.archlinux.org/title/Iwd#iwctl).

    <br>

    # Preliminary steps
    # Pasos preliminares

    First set up your keyboard layout
    Primero, configura tu distribución del teclado

    ```Zsh
    # List all the available keyboard maps and filter them through grep, in this case i am looking for an italian keyboard, which usually starts with "it", for english filter with "en"
    ls /usr/share/kbd/keymaps/**/*.map.gz | grep it
    # Lista todas las distribuciones del teclado y las filtra usando grep. En este caso estamos buscando distribuciones del teclado españolas, las cuales suelen empezar por "es". Las latinoamericanas suelen empezar por "la"
    ls /usr/share/kbd/keymaps/**/*.map.gz | grep es

    # If you prefer you can scroll the whole list like this
    # Si lo prefieres, puedes desplazarte por la lista completa de esta forma
    ls /usr/share/kbd/keymaps/**/*.map.gz | less

    # Or like this
    # O de esta forma
    localectl list-keymaps

    # Now get the name without the path and the extension ( localectl returns just the name ) and load the layout. In my case it is simply "it"
    loadkeys it
    # Ahora identifica su nombre sin la ruta ni la extensión (localectl regresa solo el nombre) y carga la distribución. En mi caso (teclado latinoamericano) se llama "la-latin1"
    loadkeys la-latin1
    ```

    <br>

    Check that we are in UEFI mode
    Checa que estás en modo UEFI

    ```Zsh
    # If this command prints 64 or 32 then you are in UEFI
    # Si este comando regresa 64 ó 32, estás en modo UEFI
    cat /sys/firmware/efi/fw_platform_size
    ```

    <br>

    Check the internet connection
    Checa que tengas conexión a Internet

    ```Zsh
    ping -c 5 archlinux.org
    ```

    <br>

    Check the system clock just in case
    Checa el reloj del sistema por si acaso

    ```Zsh
    # Check if ntp is active and if the time is right
    # Checa si ntp está activo y que la hora es correcta
    timedatectl
    ```

    <br>

    # Main installation
    # Instalación principal

    ## Disk partitioning
    ## Particionado de disco

    I will make 2 partitions:
    Haremos dos particiones:

    | Number | Type | Size |
    | Número | Tipo | Tamaño |
    | --- | --- | --- |
    | 1 | EFI | 512 Mb |
    | 2 | Linux Filesystem | 99.5Gb \(all of the remaining space \) |
    | 2 | Linux Filesystem | 99.5Gb \(El resto del espacio en el disco\) |

    <br>

    ```Zsh
    # Check the drive name. Mine is /dev/nvme0n1
    # If you have an hdd is something like sdax
    # Checa el nombre del disco. El mío es /dev/nvme0n1
    # Si tienes un disco SATA es probable que sea sdax
    fdisk -l

    # Invoke fdisk to partition
    # Invoca el programa fdisk para particionar tu disco
    fdisk /dev/nvme0n1

    # Now press the following commands, when i write ENTER press enter
    # Ahora ejecuta los siguientes comandos. Cuando escriba ENTER, presionas la tecla Enter.
    g
    ENTER
    n
    @@ -148,63 +148,63 @@ ENTER
    n
    ENTER
    ENTER
    ENTER # If you don't want to use all the space then select the size by writing +XG ( eg: to make a 10GB partition +10G )
    ENTER # Si no quieres usar todo el espacio entonces selecciona el espacio que quieras escribiendo +XG (por ejemplo, para hacer una partición de 10GB escribe +10G)
    p
    ENTER # Now check if you got the partitions right
    ENTER # Revisa que las particiones estén bien

    # If so write the changes
    # Si lo están, escribe los cambios
    w
    ENTER

    # If not you can quit without saving and redo from the beginning
    # Si no lo están, puedes salirte sin guardar y empezar de nuevo desde el inicio
    q
    ENTER
    ```

    <br>

    ## Disk formatting
    ## Formateado de disco

    As a file system I've chosen to use **BTRFS** which has evolved quite a lot during the years. It has a set of incredible functionalities but is most known for its **Copy on Write** feature which enables it to make system snapshots in a blink of a an eye and to save a lot of disk space, which can be even saved to a greater extent by eanbling **compression**. Also it enables the creation of **subvolumes** which can be individually snapshotted. Learn more [here](https://wiki.archlinux.org/title/Btrfs)
    Como sistema de archivos he escogido usar **BTRFS** ya que ha evolucionado mucho con los años. Tiene un conjunto de increíbles funcionalidades, pero es más conocido por su característica de **Copia en Escritura** que permite hacer instantáneas en un parpadeo y ahorrar espacio en disco, y si se habilita la **compresión** se puede ahorrar aún más espacio. También permite la creación de **subvolúmenes**, los cuales se puede generar instantáneas individualmente. Puedes aprender más [aquí](https://wiki.archlinux.org/title/Btrfs_%28Español%29).

    ```Zsh
    # Find the efi partition with fdisk -l or lsblk. For me it's /dev/nvme0n1p1 and format it.
    # Encuentra la partición EFI con fdisk -l ó lsblk y formateala. En mi caso es /dev/nvme0n1p1
    mkfs.fat -F 32 /dev/nvme0n1p1

    # Find the root partition. For me it's /dev/nvme0n1p2 and format it. I will use BTRFS.
    # Encuentra la partición raíz y formateala. En mi caso es /dev/nvme0n1p2. Usaremos BTRFS
    mkfs.btrfs /dev/nvme0n1p2

    # Mount the root fs to make it accessible
    # Monta la partición raíz para hacerla accesible
    mount /dev/nvme0n1p2 /mnt
    ```

    <br>

    ## Disk mounting
    ## Montado de discos

    ```Zsh
    # Create the subvolumes, in my case I choose to make a subvolume for / and one for /home. Subvolumes are identified by prepending @
    # Crea los subvolúmenes. En mi caso he escogido hacer un subvolúmen para / y otro para /home. Los subvolúmenes se identifican poniendo un arroba al principio
    btrfs subvolume create /mnt/@
    btrfs subvolume create /mnt/@home

    # Unmount the root fs
    # Desmontemos el sistema de archivos raíz
    umount /mnt
    ```

    <br>

    For this guide I'll compress the btrfs subvolumes with **Zstd**, which has proven to be [a good algorithm among the choices](https://www.phoronix.com/review/btrfs-zstd-compress)
    Para esta guía hemos decidido comprimir los subvolúmenes BTRFS con el algoritmo **Zstd** ya que ha demostrado ser [un buen algoritmo de los disponibles](https://www.phoronix.com/review/btrfs-zstd-compress)

    ```Zsh
    # Mount the root and home subvolume. If you don't want compression just remove the compress option.
    # Monta los subvolúmenes de raíz y home. Si no quieres compresión, solamente quita la opción "compress=".
    mount -o compress=zstd,subvol=@ /dev/nvme0n1p2 /mnt
    mkdir -p /mnt/home
    mount -o compress=zstd,subvol=@home /dev/nvme0n1p2 /mnt/home
    ```

    <br>

    Now we have to mount the efi partition. In general there are 2 main mountpoints to use: `/efi` or `/boot` but in this configuration i am **forced** to use `/efi`, because by choosing `/boot` we could experience a **system crash** when trying to restore `@root` to a previous state after kernel updates. This happens because boot files such as the kernel aren't stored on `@root` but on the efi partition and hence they can't be saved when snapshotting `@root`. Also this choice grants separation of concerns and also is good if one wants to encrypt `/boot`, since you can't encrypt efi files. Learn more [here](https://wiki.archlinux.org/title/EFI_system_partition#Typical_mount_points)
    Ahora tenemos que montar la partición EFI. En general, hay dos puntos de montaje comunes: `/efi` ó `/boot`, pero en esta configuración estoy forzado a usar `/efi` ya que si escogemos `/boot` podríamos experimentar un **fallo del sistema** al intentar restaurar el subvolúmen `@root` a un estado previo después de actualizar el kernel. Esto ocurre porque los archivos de arranque como el kernel no están almacenados en `@root` sino en la partición EFI y por lo tanto no pueden ser guardados al hacer una instantánea de `@root`. Esta opción también otorga separación de preocupaciones y también es buena si uno quiere encriptar `/boot`, ya que no puedes encriptar los archivos EFI. Aprende más [aquí](https://wiki.archlinux.org/title/EFI_system_partition_%28Españ1ol%29#Puntos_de_montaje_alternativos).

    ```Zsh
    mkdir -p /mnt/efi
    @@ -245,7 +245,7 @@ pacstrap -K /mnt base base-devel linux linux-firmware git btrfs-progs grub efibo
    ## Fstab

    ```Zsh
    # Fetch the disk mounting points as they are now ( we mounted everything before ) and generate instructions to let the system know how to mount the various disks automatically
    # Fetch the Montado de discos points as they are now ( we mounted everything before ) and generate instructions to let the system know how to mount the various disks automatically
    genfstab -U /mnt >> /mnt/etc/fstab

    # Check if fstab is fine
  9. MasterGeekMX revised this gist Nov 12, 2023. 1 changed file with 54 additions and 55 deletions.
    109 changes: 54 additions & 55 deletions guia_instalacion_arch_linux.md
    Original file line number Diff line number Diff line change
    @@ -1,9 +1,8 @@
    # Modern Arch linux installation guide
    # Guía de instalación moderna de Arch Linux

    # Índice

    - [Introduction](#introduction)
    - [Introducción](#Introducción)
    - [Preliminary Steps](#preliminary-steps)
    - [Main installation](#main-installation)
    - [Disk partitioning](#disk-partitioning)
    @@ -39,35 +38,35 @@
    - [Tips and tricks](#tips-and-tricks)
    - [Things to add \[WIP\]](#things-to-add-wip)

    # Introduction
    # Introducción

    In this guide I'll show how to install **Arch Linux** with **BTRFS** on an **UEFI system**. I'll comment each step to make it understandable. Apart from the basic terminal installation I'll add steps to install video drivers, a desktop environment and to configure arch for gaming.
    En este guía te mostraré como instalar **Arch Linux** con **BTRFS** en un **sistema UEFI**. Comentaré cada paso para hacerlo más entendible. Aparte de la instalación básica por terminal agregaré pasos para instalar controladores de video, un entorno de escritorio y configuraremos Arch para juegos.

    <br>

    The goal of this guide is to help new users interface with Arch Linux by summarizing the main installation processes and grouping up further configuration choices as well as providing a **modern, minimilastic and personal** touch to it, which consists in "design" choices. Because of this reasons, when possible I've added external references if one wants to dive more into the details.
    El objetivo de esta guía es ayudar a nuevos usuarios a que se acoplen con Arch Linux al resumir el proceso de instalación y agregando opciones de configuración extra al mismo tiempo de que se añade un toque **moderno, minimalista y personal**, que consiste en decisiones de "diseño". Por estas razones, cuando es posible he agregado referencias externas por si alguien desea indagar en los detalles.

    <br>

    I **won't** prepare the system for **secure boot** because the procedure of custom key enrollment in the BIOS is dangerous and can lead to a bricked system, read the warnings [here](https://wiki.archlinux.org/title/Unified_Extensible_Firmware_Interface/Secure_Boot#Creating_and_enrolling_keys). If you are wondering why not using the default OEM keys in the BIOS, it's because they will make secure boot useless by being most likely not enough secure, as the arch wiki [states](https://wiki.archlinux.org/title/Unified_Extensible_Firmware_Interface/Secure_Boot#Implementing_Secure_Boot).
    **No** prepararemos el sistema para **arranque seguro** porque el procedimiento de enrolar claves personalizadas en el BIOS es peligroso y puede conducir a un sistema bloqueado. Lea sobre las advertencias (en inglés) [aquí](https://wiki.archlinux.org/title/Unified_Extensible_Firmware_Interface/Secure_Boot#Creating_and_enrolling_keys). Si te estas preguntando por qué no usar las claves por defecto del OEM en el BIOS, es porque harán el arranque seguro inútil ya que probablemente no sean lo suficientemente seguras, como la wiki de Arch [especifica](https://wiki.archlinux.org/title/Unified_Extensible_Firmware_Interface/Secure_Boot#Implementing_Secure_Boot).

    <br>

    I **won't** encrypt the system because I don't need it and in my opinion has few uses cases in which is actually needed \( you can always encrypt sensible information with gpg \). Also the boot would become inevitably **slower**.
    **No** encriptaremos el sistema ya que no lo necesito y en mi opinión hay pocas situaciones donde de verdad se requiere. \( siempre puedes encriptar información sensible con GPG \). Además, el arranque se hará inevitablemente más **lento**.

    <br>

    I'll **skip** the Arch ISO download, gpg signature check and installation media preparation.
    Nos **saltaremos** la descarga de la imagen ISO, firmas GPG y la preparación del medio de instalación.

    <br>

    I'll use a **wired** connection, so no wireless configuration steps will be shown. If you want to connect to wifi, you can either launch `wifi-menu` from the terminal which is a **TGUI** or use [`iwctl`](https://wiki.archlinux.org/title/Iwd#iwctl).
    Usaré una conexión **cableada**, por lo que no habrá pasos para configuración inalámbrica. Si quieres conectarte al WiFi, puedes ya sea lanzar `wifi-menu` desde la terminal ya que es una **TGUI** \( interfaz gráfica de usuario por terminal \) ó usar [`iwctl`](https://wiki.archlinux.org/title/Iwd#iwctl).

    <br>

    # Preliminary steps
    # Preliminary steps

    First set up your keyboard layout
    First set up your keyboard layout

    ```Zsh
    # List all the available keyboard maps and filter them through grep, in this case i am looking for an italian keyboard, which usually starts with "it", for english filter with "en"
    @@ -85,7 +84,7 @@ loadkeys it

    <br>

    Check that we are in UEFI mode
    Check that we are in UEFI mode

    ```Zsh
    # If this command prints 64 or 32 then you are in UEFI
    @@ -94,10 +93,10 @@ cat /sys/firmware/efi/fw_platform_size

    <br>

    Check the internet connection
    Check the internet connection

    ```Zsh
    ping -c 5 archlinux.org
    ping -c 5 archlinux.org
    ```

    <br>
    @@ -115,12 +114,12 @@ timedatectl

    ## Disk partitioning

    I will make 2 partitions:
    I will make 2 partitions:

    | Number | Type | Size |
    | --- | --- | --- |
    | 1 | EFI | 512 Mb |
    | 2 | Linux Filesystem | 99.5Gb \(all of the remaining space \) |
    | 2 | Linux Filesystem | 99.5Gb \(all of the remaining space \) |

    <br>

    @@ -164,7 +163,7 @@ ENTER

    <br>

    ## Disk formatting
    ## Disk formatting

    As a file system I've chosen to use **BTRFS** which has evolved quite a lot during the years. It has a set of incredible functionalities but is most known for its **Copy on Write** feature which enables it to make system snapshots in a blink of a an eye and to save a lot of disk space, which can be even saved to a greater extent by eanbling **compression**. Also it enables the creation of **subvolumes** which can be individually snapshotted. Learn more [here](https://wiki.archlinux.org/title/Btrfs)

    @@ -194,7 +193,7 @@ umount /mnt

    <br>

    For this guide I'll compress the btrfs subvolumes with **Zstd**, which has proven to be [a good algorithm among the choices](https://www.phoronix.com/review/btrfs-zstd-compress)
    For this guide I'll compress the btrfs subvolumes with **Zstd**, which has proven to be [a good algorithm among the choices](https://www.phoronix.com/review/btrfs-zstd-compress)

    ```Zsh
    # Mount the root and home subvolume. If you don't want compression just remove the compress option.
    @@ -214,7 +213,7 @@ mount /dev/nvme0n1p1 /mnt/efi

    <br>

    ## Packages installation
    ## Packages installation

    ```Zsh
    # This will install some packages to "bootstrap" methaphorically our system. Feel free to add the ones you want
    @@ -243,7 +242,7 @@ pacstrap -K /mnt base base-devel linux linux-firmware git btrfs-progs grub efibo

    <br>

    ## Fstab
    ## Fstab

    ```Zsh
    # Fetch the disk mounting points as they are now ( we mounted everything before ) and generate instructions to let the system know how to mount the various disks automatically
    @@ -255,7 +254,7 @@ cat /mnt/etc/fstab

    <br>

    ## Context switch to our new system
    ## Context switch to our new system

    ```Zsh
    # To access our new system we chroot into it
    @@ -278,7 +277,7 @@ hwclock --systohc

    ## Set up the language and tty keyboard map

    Edit `/etc/locale.gen` and uncomment the entries for your locales, this will "**enable**" \( **NOT ACTIVATE** \) the language but also formats for time, date, currency and other country related settings. In my case I will uncomment _\( ie: remove the # \)_ `en_US.UTF-8 UTF-8` and `it_IT.UTF-8 UTF-8` because I use English as a "display" language and Italian for date, time and other formats.
    Edit `/etc/locale.gen` and uncomment the entries for your locales, this will "**enable**" \( **NOT ACTIVATE** \) the language but also formats for time, date, currency and other country related settings. In my case I will uncomment _\( ie: remove the # \)_ `en_US.UTF-8 UTF-8` and `it_IT.UTF-8 UTF-8` because I use English as a "display" language and Italian for date, time and other formats.

    ```Zsh
    # To edit I will use vim, feel free to use nano instead.
    @@ -333,15 +332,15 @@ vim /etc/hosts

    <br>

    ## Root and users
    ## Root and users

    ```Zsh
    # Set up the root password
    passwd

    # Add a new user, in my case mjkstra.
    # -m creates the home dir automatically
    # -G adds the user to an initial group, in this case is wheel, the administration group.
    # -G adds the user to an initial group, in this case is wheel, the administration group.
    useradd -mG wheel mjkstra
    passwd mjkstra

    @@ -351,25 +350,25 @@ EDITOR=vim visudo

    <br>

    ## Grub configuration
    ## Grub configuration

    Now I'll [deploy grub](https://wiki.archlinux.org/title/GRUB#Installation)
    Now I'll [deploy grub](https://wiki.archlinux.org/title/GRUB#Installation)

    ```Zsh
    grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB
    grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB
    ```

    <br>

    Generate the grub configuration ( it will include the microcode installed with pacstrap earlier )
    Generate the grub configuration ( it will include the microcode installed with pacstrap earlier )

    ```Zsh
    grub-mkconfig -o /boot/grub/grub.cfg
    ```

    <br>

    ## Unmount everything and reboot
    ## Unmount everything and reboot

    ```Zsh
    # Enable newtork manager before rebooting otherwise, you won't be able to connect
    @@ -390,11 +389,11 @@ reboot

    <br>

    ## Automatic snapshot boot entries update
    ## Automatic snapshot boot entries update

    Edit **`grub-btrfsd`** service to enable **automatic grub entries update** each time a snapshot is created. Because I will use timeshift i am going to replace `ExecStart=...` with `ExecStart=/usr/bin/grub-btrfsd --syslog --timeshift-auto`. If you don't use timeshift or prefer to manually update the entries then lookup [here](https://github.com/Antynea/grub-btrfs)
    Edit **`grub-btrfsd`** service to enable **automatic grub entries update** each time a snapshot is created. Because I will use timeshift i am going to replace `ExecStart=...` with `ExecStart=/usr/bin/grub-btrfsd --syslog --timeshift-auto`. If you don't use timeshift or prefer to manually update the entries then lookup [here](https://github.com/Antynea/grub-btrfs)

    ```Zsh
    ```Zsh
    sudo systemctl edit --full grub-btrfsd

    # Enable grub-btrfsd service to run on boot
    @@ -403,7 +402,7 @@ sudo systemctl enable grub-btrfsd

    <br>

    ## Virtual machine \[Optional\]
    ## Virtual machine \[Optional\]

    Follow these steps if you are running Arch on a Virtualbox VM.

    @@ -421,11 +420,11 @@ systemctl enable vboxservice.service
    <br>

    ## Aur helper and additional packages installation \[Optional\]
    ## Aur helper and additional packages installation \[Optional\]

    To gain access to the arch user repository we need an aur helper, I will choose yay which also works as a pacman wrapper \( which means you can use yay instead of pacman. Cool, right ? \). Yay has a CLI, but if you later want to have an aur helper with a GUI, I advise installing [`pamac`](https://gitlab.manjaro.org/applications/pamac), which is the default on Manjaro.
    To gain access to the arch user repository we need an aur helper, I will choose yay which also works as a pacman wrapper \( which means you can use yay instead of pacman. Cool, right ? \). Yay has a CLI, but if you later want to have an aur helper with a GUI, I advise installing [`pamac`](https://gitlab.manjaro.org/applications/pamac), which is the default on Manjaro.

    To learn more about yay read [here](https://github.com/Jguer/yay#yay)
    To learn more about yay read [here](https://github.com/Jguer/yay#yay)

    > Note: you can't execute makepkg as root, so you need to log in your main account. For me it's mjkstra
    @@ -448,23 +447,23 @@ yay -S timeshift-autosnap
    reboot
    ```

    > After these steps you **should** be able to boot on your newly installed Arch Linux, if so congrats !
    > After these steps you **should** be able to boot on your newly installed Arch Linux, if so congrats !
    > The basic installation is complete and you could stop here, but if you want to to have a graphical session, you can continue reading the guide.
    <br>

    # Video drivers

    In order to have the smoothest experience on a graphical environment, **Gaming included**, we first need to install video drivers. To help you choose which one you want or need, read [this section](https://wiki.archlinux.org/title/Xorg#Driver_installation) of the arch wiki.
    In order to have the smoothest experience on a graphical environment, **Gaming included**, we first need to install video drivers. To help you choose which one you want or need, read [this section](https://wiki.archlinux.org/title/Xorg#Driver_installation) of the arch wiki.

    > Note: skip this section if you are on a Virtual Machine
    <br>

    ## Amd
    ## Amd

    For this guide I'll install the [**AMDGPU** driver](https://wiki.archlinux.org/title/AMDGPU) which is the open source one and the recommended, but be aware that this works starting from the **GCN 3** architecture, which means that cards **before** RX 400 series are not supported. _\( FYI I have an RX 5700 XT \)_
    For this guide I'll install the [**AMDGPU** driver](https://wiki.archlinux.org/title/AMDGPU) which is the open source one and the recommended, but be aware that this works starting from the **GCN 3** architecture, which means that cards **before** RX 400 series are not supported. _\( FYI I have an RX 5700 XT \)_

    ```Zsh

    @@ -492,9 +491,9 @@ pacman -S lib32-mesa lib32-vulkan-radeon lib32-libva-mesa-driver lib32-mesa-vdpa

    <br>

    ## Nvidia
    ## Nvidia

    In summary if you have an Nvidia card you have 2 options:
    In summary if you have an Nvidia card you have 2 options:

    1. [**Nouveau** open source driver](https://wiki.archlinux.org/title/Nouveau)
    2. [**NVIDIA** proprietary driver](https://wiki.archlinux.org/title/NVIDIA)
    @@ -511,12 +510,12 @@ Installation looks almost identical to the AMD one, but every time a package con

    # Setting up a graphical environment

    I'll provide 2 options:
    I'll provide 2 options:

    1. **KDE-plasma**
    1. **KDE-plasma**
    2. **Hyprland**

    On top of that I'll add a **display manager**, which you can omit if you don't like ( if so, you have additional configuration steps to perform ).
    On top of that I'll add a **display manager**, which you can omit if you don't like ( if so, you have additional configuration steps to perform ).

    <br>

    @@ -533,9 +532,9 @@ Now don't reboot your system yet. If you want a display manager, which is genera

    <br>

    ## Option 2: Hyprland [WIP]
    ## Option 2: Hyprland [WIP]

    **Hyprland** is a **tiling WM** that sticks to the wayland protocol. It looks incredible and it's one of the best Wayland WMs right now. It's based on **wlroots** the famous library used by Sway, the most compatible/working Wayland WM there is. I don't know if I would recommend this to beginners because it's a different experience from Windows/Ubuntu/PopOs and distros like that, moreover it requires you to read the [guide](https://wiki.hyprland.org/Getting-Started/Master-Tutorial) for configuration. The good part is that even if it seems discouraging, it's actually an easy read because it is written beautifully even better than the Arch wiki !
    **Hyprland** is a **tiling WM** that sticks to the wayland protocol. It looks incredible and it's one of the best Wayland WMs right now. It's based on **wlroots** the famous library used by Sway, the most compatible/working Wayland WM there is. I don't know if I would recommend this to beginners because it's a different experience from Windows/Ubuntu/PopOs and distros like that, moreover it requires you to read the [guide](https://wiki.hyprland.org/Getting-Started/Master-Tutorial) for configuration. The good part is that even if it seems discouraging, it's actually an easy read because it is written beautifully even better than the Arch wiki !

    ```Zsh
    # Install hyprland from tagged releases and other utils
    @@ -571,22 +570,22 @@ reboot

    # Gaming

    Gaming on linux has become a very fluid experience, so I'll give some tips on how to setup your arch distro for gaming.
    Gaming on linux has become a very fluid experience, so I'll give some tips on how to setup your arch distro for gaming.

    Let's break down what is needed to game:
    Let's break down what is needed to game:

    1. **Gaming client** ( eg: Steam, Lutris, Bottles, etc..)
    2. **Windows compatibility layers** ( eg: Proton, Wine, DXVK, VKD3D )

    Optionally we can have:
    Optionally we can have:

    1. **Generic optimization** ( eg: gamemode )
    2. **Overclocking and monitoring software** ( eg: CoreCtrl, Mangohud )
    3. **Custom kernels**

    <br>

    ## Gaming clients
    ## Gaming clients

    I'll install **Steam** and to access games from other launchers I'll use **Bottles**, which should be installed through **flatpak**.

    @@ -602,7 +601,7 @@ flatpak install flathub com.usebottles.bottles

    ## Windows compatibility layers

    Proton is the compatibility layer developed by Valve, which includes **DXVK**( DirectX 9-10-11 to Vulkan), **VKD3D** ( DirectX 12 to Vulkan ) and a custom version of **Wine**. It is embedded in Steam and can be enabled directly in Steam settings. A custom version of proton, **Proton GE** exists and can be used as an alternative if something is broken or doesn't perform as expected. Can be either downloaded manually, like explained [here](https://github.com/GloriousEggroll/proton-ge-custom#installation) or through yay as below.
    Proton is the compatibility layer developed by Valve, which includes **DXVK**( DirectX 9-10-11 to Vulkan), **VKD3D** ( DirectX 12 to Vulkan ) and a custom version of **Wine**. It is embedded in Steam and can be enabled directly in Steam settings. A custom version of proton, **Proton GE** exists and can be used as an alternative if something is broken or doesn't perform as expected. Can be either downloaded manually, like explained [here](https://github.com/GloriousEggroll/proton-ge-custom#installation) or through yay as below.

    ```Zsh
    # Installation through yay
    @@ -639,11 +638,11 @@ To overclock your system, i suggest installing [**corectrl**](https://gitlab.com

    ### Tips and tricks

    > Tip: On KDE disabling mouse acceleration is simple, just go to the settings via the GUI and on the mouse section enable the flat acceleration profile. If not using KDE then read [here](https://wiki.archlinux.org/title/Mouse_acceleration)
    > Tip: On KDE disabling mouse acceleration is simple, just go to the settings via the GUI and on the mouse section enable the flat acceleration profile. If not using KDE then read [here](https://wiki.archlinux.org/title/Mouse_acceleration)
    > Tip: To enable freesync or Gsync you can read [here](https://wiki.archlinux.org/title/Variable_refresh_rate), depending on your session \( Wayland or Xorg \) and your gfx provider \( Nvidia, AMD, Intel \) the steps may differ. On a KDE wayland session, you can directly enable it from the monitor settings
    > Tip: To enable freesync or Gsync you can read [here](https://wiki.archlinux.org/title/Variable_refresh_rate), depending on your session \( Wayland or Xorg \) and your gfx provider \( Nvidia, AMD, Intel \) the steps may differ. On a KDE wayland session, you can directly enable it from the monitor settings
    > About custom kernels: To be fair I don't recommend changing the kernel to a custom one, for many reasons:
    > About custom kernels: To be fair I don't recommend changing the kernel to a custom one, for many reasons:
    > 1. You have to manually update it and recompile it each time unless you use a precompiled kernel from pacman or aur such as `linux-zen`
    > 2. Performance gain is little to none and sometimes it may results in losses with other scenarios
    > 3. In my opinion changing to a custom kernel should be considered only if you experience problems or for the sake of science
  10. MasterGeekMX revised this gist Nov 12, 2023. 1 changed file with 2 additions and 4 deletions.
    6 changes: 2 additions & 4 deletions guia_instalacion_arch_linux.md
    Original file line number Diff line number Diff line change
    @@ -1,9 +1,7 @@
    # THIS IS A WORK-IN-PROGRESS TRANSLATION
    # ESTA ES UNA TRADUCCIÓN AÚN EN VÍAS

    # Modern Arch linux installation guide
    # Guía de instalación moderna de Arch Linux

    # Table of contents
    # Índice

    - [Introduction](#introduction)
    - [Preliminary Steps](#preliminary-steps)
  11. MasterGeekMX renamed this gist Nov 10, 2023. 1 changed file with 3 additions and 0 deletions.
    Original file line number Diff line number Diff line change
    @@ -1,3 +1,6 @@
    # THIS IS A WORK-IN-PROGRESS TRANSLATION
    # ESTA ES UNA TRADUCCIÓN AÚN EN VÍAS

    # Modern Arch linux installation guide

    # Table of contents
  12. @mjkstra mjkstra revised this gist Nov 10, 2023. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion arch_linux_installation_guide.md
    Original file line number Diff line number Diff line change
    @@ -204,7 +204,7 @@ mount -o compress=zstd,subvol=@home /dev/nvme0n1p2 /mnt/home

    <br>

    Now we have to mount the efi partition. There are 2 main mountpoints to use: `/efi` or `/boot`. I'll choose `/efi` because it grants separation of concerns and also is a good choice if one wants to encrypt `/boot`, since you can't encrypt efi files. Learn more [here](https://wiki.archlinux.org/title/EFI_system_partition#Typical_mount_points)
    Now we have to mount the efi partition. In general there are 2 main mountpoints to use: `/efi` or `/boot` but in this configuration i am **forced** to use `/efi`, because by choosing `/boot` we could experience a **system crash** when trying to restore `@root` to a previous state after kernel updates. This happens because boot files such as the kernel aren't stored on `@root` but on the efi partition and hence they can't be saved when snapshotting `@root`. Also this choice grants separation of concerns and also is good if one wants to encrypt `/boot`, since you can't encrypt efi files. Learn more [here](https://wiki.archlinux.org/title/EFI_system_partition#Typical_mount_points)

    ```Zsh
    mkdir -p /mnt/efi
  13. @mjkstra mjkstra revised this gist Nov 10, 2023. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion arch_linux_installation_guide.md
    Original file line number Diff line number Diff line change
    @@ -237,7 +237,7 @@ mount /dev/nvme0n1p1 /mnt/efi
    # "openssh" to use ssh and manage keys
    # "man" for manual pages
    # "sudo" to run commands as other users
    pacstrap /mnt base base-devel linux linux-firmware git btrfs-progs grub efibootmgr grub-btrfs inotify-tools timeshift vim networkmanager pipewire pipewire-alsa pipewire-pulse pipewire-jack reflector zsh zsh-completions zsh-autosuggestions openssh man sudo
    pacstrap -K /mnt base base-devel linux linux-firmware git btrfs-progs grub efibootmgr grub-btrfs inotify-tools timeshift vim networkmanager pipewire pipewire-alsa pipewire-pulse pipewire-jack reflector zsh zsh-completions zsh-autosuggestions openssh man sudo
    ```

    <br>
  14. @mjkstra mjkstra revised this gist Nov 10, 2023. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion arch_linux_installation_guide.md
    Original file line number Diff line number Diff line change
    @@ -640,7 +640,7 @@ To overclock your system, i suggest installing [**corectrl**](https://gitlab.com

    > Tip: On KDE disabling mouse acceleration is simple, just go to the settings via the GUI and on the mouse section enable the flat acceleration profile. If not using KDE then read [here](https://wiki.archlinux.org/title/Mouse_acceleration)
    > Tip: To enable freesync or Gsync you can read [here](https://wiki.archlinux.org/title/Variable_refresh_rate), depending on your session \( Wayland or Xorg \) and your gfx provider \( Nvidia, AMD, Intel \) the steps may differ.
    > Tip: To enable freesync or Gsync you can read [here](https://wiki.archlinux.org/title/Variable_refresh_rate), depending on your session \( Wayland or Xorg \) and your gfx provider \( Nvidia, AMD, Intel \) the steps may differ. On a KDE wayland session, you can directly enable it from the monitor settings
    > About custom kernels: To be fair I don't recommend changing the kernel to a custom one, for many reasons:
    > 1. You have to manually update it and recompile it each time unless you use a precompiled kernel from pacman or aur such as `linux-zen`
  15. @mjkstra mjkstra revised this gist Nov 10, 2023. 1 changed file with 6 additions and 4 deletions.
    10 changes: 6 additions & 4 deletions arch_linux_installation_guide.md
    Original file line number Diff line number Diff line change
    @@ -40,19 +40,19 @@

    # Introduction

    In this guide I'll show how to install **Arch Linux** with **BTRFS** on an **UEFI system**. I'll comment each step to make it understandable. Apart from the basic terminal installation I'll add steps to install video drivers, a desktop environment and to configure arch for gaming. All of this done in an **elegant** and **minimalistic** approach which I like to consider **modern**.
    In this guide I'll show how to install **Arch Linux** with **BTRFS** on an **UEFI system**. I'll comment each step to make it understandable. Apart from the basic terminal installation I'll add steps to install video drivers, a desktop environment and to configure arch for gaming.

    <br>

    During the process you will find out that certain choices are completely **personal** like: disk partitioning, BTRFS subvolume creation, pacstrap package choices etc.. As such I will alert you with tags in square brackets like: `[Optional:]` and provide external references to learn how to adjust things to your needs.
    The goal of this guide is to help new users interface with Arch Linux by summarizing the main installation processes and grouping up further configuration choices as well as providing a **modern, minimilastic and personal** touch to it, which consists in "design" choices. Because of this reasons, when possible I've added external references if one wants to dive more into the details.

    <br>

    I **won't** prepare the system for **secure boot** because the procedure of custom key enrollment in the BIOS is dangerous and can lead to a bricked system, read the warnings [here](https://wiki.archlinux.org/title/Unified_Extensible_Firmware_Interface/Secure_Boot#Creating_and_enrolling_keys). If you are wondering why not using the default OEM keys in the BIOS, it's because they will make secure boot useless by being most likely not enough secure, as the arch wiki [states](https://wiki.archlinux.org/title/Unified_Extensible_Firmware_Interface/Secure_Boot#Implementing_Secure_Boot).

    <br>

    I **won't** encrypt the system because I don't need it and has few uses cases in which is actually needed \( you can always encrypt sensible information with gpg \). Also the boot would become inevitably **slower**.
    I **won't** encrypt the system because I don't need it and in my opinion has few uses cases in which is actually needed \( you can always encrypt sensible information with gpg \). Also the boot would become inevitably **slower**.

    <br>

    @@ -165,6 +165,8 @@ ENTER

    ## Disk formatting

    As a file system I've chosen to use **BTRFS** which has evolved quite a lot during the years. It has a set of incredible functionalities but is most known for its **Copy on Write** feature which enables it to make system snapshots in a blink of a an eye and to save a lot of disk space, which can be even saved to a greater extent by eanbling **compression**. Also it enables the creation of **subvolumes** which can be individually snapshotted. Learn more [here](https://wiki.archlinux.org/title/Btrfs)

    ```Zsh
    # Find the efi partition with fdisk -l or lsblk. For me it's /dev/nvme0n1p1 and format it.
    mkfs.fat -F 32 /dev/nvme0n1p1
    @@ -191,7 +193,7 @@ umount /mnt

    <br>

    For this guide I'll compress the root partition thanks to BTRF capabilities with **Zstd**, which is the [fastest compression algorithm available](https://www.phoronix.com/review/btrfs-zstd-compress)
    For this guide I'll compress the btrfs subvolumes with **Zstd**, which has proven to be [a good algorithm among the choices](https://www.phoronix.com/review/btrfs-zstd-compress)

    ```Zsh
    # Mount the root and home subvolume. If you don't want compression just remove the compress option.
  16. @mjkstra mjkstra revised this gist Nov 8, 2023. 1 changed file with 2 additions and 7 deletions.
    9 changes: 2 additions & 7 deletions arch_linux_installation_guide.md
    Original file line number Diff line number Diff line change
    @@ -7,8 +7,7 @@
    - [Main installation](#main-installation)
    - [Disk partitioning](#disk-partitioning)
    - [Disk formatting](#disk-formatting)
    - [BTRFS subvolumes](#btrfs-subvolumes)
    - [Mount efi](#mount-efi)
    - [Disk mounting](#disk-mounting)
    - [Packages installation](#packages-installation)
    - [Fstab](#fstab)
    - [Context switch to our new system](#context-switch-to-our-new-system)
    @@ -177,11 +176,9 @@ mkfs.btrfs /dev/nvme0n1p2
    mount /dev/nvme0n1p2 /mnt
    ```

    > Note: if you don't want BTRFS, you can go with the standard `ext4` format, but in that case you should skip all of the btrfs steps in this guide
    <br>

    ### BTRFS subvolumes
    ## Disk mounting

    ```Zsh
    # Create the subvolumes, in my case I choose to make a subvolume for / and one for /home. Subvolumes are identified by prepending @
    @@ -205,8 +202,6 @@ mount -o compress=zstd,subvol=@home /dev/nvme0n1p2 /mnt/home

    <br>

    ### Mount efi

    Now we have to mount the efi partition. There are 2 main mountpoints to use: `/efi` or `/boot`. I'll choose `/efi` because it grants separation of concerns and also is a good choice if one wants to encrypt `/boot`, since you can't encrypt efi files. Learn more [here](https://wiki.archlinux.org/title/EFI_system_partition#Typical_mount_points)

    ```Zsh
  17. @mjkstra mjkstra revised this gist Nov 7, 2023. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions arch_linux_installation_guide.md
    Original file line number Diff line number Diff line change
    @@ -527,8 +527,8 @@ On top of that I'll add a **display manager**, which you can omit if you don't l
    **KDE Plasma** is a very popular DE which comes bundled in many distributions. It supports both the older more stable **Xorg** and the newer **Wayland** protocols. It's **user friendly** and also it's used on the Steam Deck, which makes it great for **gaming**. I'll provide the steps for a minimal installation and add some basic packages.

    ```Zsh
    # Install the plasma desktop environment, the audio and network applets, task manager, screen configurator, some useful basic addons, configuration for GTK application theming and other package of personal interest
    pacman -S plasma-desktop plasma-pa plasma-nm plasma-systemmonitor kscreen kdeplasma-addons kde-gtk-config breeze-gtk alacritty dolphin firefox kate okular mpv gimp powerdevil
    # Install the plasma desktop environment, the audio and network applets, task manager, screen configurator, global shortcuts, power manager, some useful basic addons, configuration for GTK application theming and other package of personal interest
    pacman -S plasma-desktop plasma-pa plasma-nm plasma-systemmonitor kscreen khotkeys powerdevil kdeplasma-addons kde-gtk-config breeze-gtk alacritty dolphin firefox kate okular mpv gimp
    ```

    Now don't reboot your system yet. If you want a display manager, which is generally recommended, head to the [related section](#adding-a-display-manager) in this guide and proceed from there otherwise you'll have to [manually configure](https://wiki.archlinux.org/title/KDE#From_the_console) and launch the graphical environment each time \(which I would advise to avoid\).
  18. @mjkstra mjkstra revised this gist Nov 7, 2023. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion arch_linux_installation_guide.md
    Original file line number Diff line number Diff line change
    @@ -386,7 +386,7 @@ exit
    # Unmount everything to check if the drive is busy
    umount -R /mnt

    # Reboot the system
    # Reboot the system and unplug the installation media
    reboot
    ```

  19. @mjkstra mjkstra revised this gist Nov 7, 2023. 1 changed file with 14 additions and 4 deletions.
    18 changes: 14 additions & 4 deletions arch_linux_installation_guide.md
    Original file line number Diff line number Diff line change
    @@ -177,6 +177,8 @@ mkfs.btrfs /dev/nvme0n1p2
    mount /dev/nvme0n1p2 /mnt
    ```

    > Note: if you don't want BTRFS, you can go with the standard `ext4` format, but in that case you should skip all of the btrfs steps in this guide
    <br>

    ### BTRFS subvolumes
    @@ -539,9 +541,12 @@ Now don't reboot your system yet. If you want a display manager, which is genera

    ```Zsh
    # Install hyprland from tagged releases and other utils
    pacman -S hyprland swaylock wofi waybar dolphin alacritty
    pacman -S --needed hyprland swaylock wofi waybar dolphin alacritty
    yay -S wlogout
    ```

    > Note: this section needs configuration and misses a lot of stuff, I don't know when and if I will expand it but at least you have a starting point, which is the wiki and the master tutorial
    <br>

    # Adding a display manager
    @@ -623,7 +628,7 @@ pacman -S gamemode

    ## Overclocking and monitoring

    To live monitor your in-game performance, you can use **mangohud**. To enable it read [here](https://archlinux.org/packages/extra/x86_64/mangohud/)
    To live monitor your in-game performance, you can use **mangohud**. To enable it read [here](https://github.com/flightlessmango/MangoHud#normal-usage)

    ```Zsh
    # Install mangohud
    @@ -636,9 +641,14 @@ To overclock your system, i suggest installing [**corectrl**](https://gitlab.com

    ### Tips and tricks

    > On KDE disabling mouse acceleration is simple, just go to the settings via the GUI and on the mouse section enable the flat acceleration profile. If not using KDE then read [here](https://wiki.archlinux.org/title/Mouse_acceleration)
    > Tip: On KDE disabling mouse acceleration is simple, just go to the settings via the GUI and on the mouse section enable the flat acceleration profile. If not using KDE then read [here](https://wiki.archlinux.org/title/Mouse_acceleration)
    > Tip: To enable freesync or Gsync you can read [here](https://wiki.archlinux.org/title/Variable_refresh_rate), depending on your session \( Wayland or Xorg \) and your gfx provider \( Nvidia, AMD, Intel \) the steps may differ.
    > To enable freesync or Gsync you can read [here](https://wiki.archlinux.org/title/Variable_refresh_rate), depending on your session \( Wayland or Xorg \) and your gfx provider \( Nvidia, AMD, Intel \) the steps may differ.
    > About custom kernels: To be fair I don't recommend changing the kernel to a custom one, for many reasons:
    > 1. You have to manually update it and recompile it each time unless you use a precompiled kernel from pacman or aur such as `linux-zen`
    > 2. Performance gain is little to none and sometimes it may results in losses with other scenarios
    > 3. In my opinion changing to a custom kernel should be considered only if you experience problems or for the sake of science
    <br>

  20. @mjkstra mjkstra revised this gist Nov 6, 2023. 1 changed file with 18 additions and 8 deletions.
    26 changes: 18 additions & 8 deletions arch_linux_installation_guide.md
    Original file line number Diff line number Diff line change
    @@ -6,7 +6,9 @@
    - [Preliminary Steps](#preliminary-steps)
    - [Main installation](#main-installation)
    - [Disk partitioning](#disk-partitioning)
    - [Disk formatting and BTRFS subvolumes creation](#disk-formatting-and-btrfs-subvolumes-creation)
    - [Disk formatting](#disk-formatting)
    - [BTRFS subvolumes](#btrfs-subvolumes)
    - [Mount efi](#mount-efi)
    - [Packages installation](#packages-installation)
    - [Fstab](#fstab)
    - [Context switch to our new system](#context-switch-to-our-new-system)
    @@ -39,19 +41,19 @@

    # Introduction

    In this guide I'll show how to install **Arch Linux** with **BTRFS** on an **UEFI system**. I'll comment each step to make it understandable. Apart from the basic installation I'll add steps to install a **Desktop Environment**(DE) or **Window Manager**(WM) at the end of this guide **\[WIP\]**. I am planning to cover **Hyprland** which is a **Wayland** bleeding edge WM based on **wlroots** and the popular **KDE Plasma** DE which supports both **Xorg** and **Wayland** protocols.
    In this guide I'll show how to install **Arch Linux** with **BTRFS** on an **UEFI system**. I'll comment each step to make it understandable. Apart from the basic terminal installation I'll add steps to install video drivers, a desktop environment and to configure arch for gaming. All of this done in an **elegant** and **minimalistic** approach which I like to consider **modern**.

    <br>

    During the process you will find out that certain choices are completely **personal** like: disk partitioning, BTRFS subvolume creation, pacstrap package choices etc.. As such I will alert you with tags in square brackets like: "\[Optional:\]" and provide external references to learn how to adjust things to your needs.
    During the process you will find out that certain choices are completely **personal** like: disk partitioning, BTRFS subvolume creation, pacstrap package choices etc.. As such I will alert you with tags in square brackets like: `[Optional:]` and provide external references to learn how to adjust things to your needs.

    <br>

    I **won't** prepare the system for **secure boot** because the procedure of custom key enrollment in the BIOS is dangerous and can lead to a bricked system, read the warning [here](https://wiki.archlinux.org/title/Unified_Extensible_Firmware_Interface/Secure_Boot#Creating_and_enrolling_keys). If you are wondering why not using the default OEM keys in the BIOS, it's because they will make secure boot useless by being most likely not enough secure, as the arch wiki [states](https://wiki.archlinux.org/title/Unified_Extensible_Firmware_Interface/Secure_Boot#Implementing_Secure_Boot).
    I **won't** prepare the system for **secure boot** because the procedure of custom key enrollment in the BIOS is dangerous and can lead to a bricked system, read the warnings [here](https://wiki.archlinux.org/title/Unified_Extensible_Firmware_Interface/Secure_Boot#Creating_and_enrolling_keys). If you are wondering why not using the default OEM keys in the BIOS, it's because they will make secure boot useless by being most likely not enough secure, as the arch wiki [states](https://wiki.archlinux.org/title/Unified_Extensible_Firmware_Interface/Secure_Boot#Implementing_Secure_Boot).

    <br>

    I **won't** encrypt the system because I don't need it and has few uses cases in which is actually needed \( you can always encrypt sensible information with gpg \). Also the boot would become **much slower**.
    I **won't** encrypt the system because I don't need it and has few uses cases in which is actually needed \( you can always encrypt sensible information with gpg \). Also the boot would become inevitably **slower**.

    <br>

    @@ -162,7 +164,7 @@ ENTER

    <br>

    ## Disk formatting and BTRFS subvolumes creation
    ## Disk formatting

    ```Zsh
    # Find the efi partition with fdisk -l or lsblk. For me it's /dev/nvme0n1p1 and format it.
    @@ -173,7 +175,13 @@ mkfs.btrfs /dev/nvme0n1p2

    # Mount the root fs to make it accessible
    mount /dev/nvme0n1p2 /mnt
    ```

    <br>

    ### BTRFS subvolumes

    ```Zsh
    # Create the subvolumes, in my case I choose to make a subvolume for / and one for /home. Subvolumes are identified by prepending @
    btrfs subvolume create /mnt/@
    btrfs subvolume create /mnt/@home
    @@ -195,6 +203,8 @@ mount -o compress=zstd,subvol=@home /dev/nvme0n1p2 /mnt/home

    <br>

    ### Mount efi

    Now we have to mount the efi partition. There are 2 main mountpoints to use: `/efi` or `/boot`. I'll choose `/efi` because it grants separation of concerns and also is a good choice if one wants to encrypt `/boot`, since you can't encrypt efi files. Learn more [here](https://wiki.archlinux.org/title/EFI_system_partition#Typical_mount_points)

    ```Zsh
    @@ -512,10 +522,10 @@ On top of that I'll add a **display manager**, which you can omit if you don't l

    ## Option 1: KDE-plasma

    **KDE Plasma** is a very popular DE which comes bundled in many distributions. It's **user friendly** and also it's used on the Steam Deck, which makes it great for **gaming**. I'll provide the steps for a minimal installation and how to add KDE utils if one wants to have the full experience.
    **KDE Plasma** is a very popular DE which comes bundled in many distributions. It supports both the older more stable **Xorg** and the newer **Wayland** protocols. It's **user friendly** and also it's used on the Steam Deck, which makes it great for **gaming**. I'll provide the steps for a minimal installation and add some basic packages.

    ```Zsh
    # Install the plasma desktop environment, the audio and network applets, task manager, screen manager, some useful basic addons, configuration for GTK application theming and other package of personal interest
    # Install the plasma desktop environment, the audio and network applets, task manager, screen configurator, some useful basic addons, configuration for GTK application theming and other package of personal interest
    pacman -S plasma-desktop plasma-pa plasma-nm plasma-systemmonitor kscreen kdeplasma-addons kde-gtk-config breeze-gtk alacritty dolphin firefox kate okular mpv gimp powerdevil
    ```

  21. @mjkstra mjkstra revised this gist Nov 6, 2023. 1 changed file with 6 additions and 6 deletions.
    12 changes: 6 additions & 6 deletions arch_linux_installation_guide.md
    Original file line number Diff line number Diff line change
    @@ -562,20 +562,20 @@ Gaming on linux has become a very fluid experience, so I'll give some tips on ho

    Let's break down what is needed to game:

    1. **Gaming client** ( eg: steam, lutris, bottles, etc..)
    2. **Windows compatibility layers** ( eg: protonGe, wine, DXVK, VKD3D )
    1. **Gaming client** ( eg: Steam, Lutris, Bottles, etc..)
    2. **Windows compatibility layers** ( eg: Proton, Wine, DXVK, VKD3D )

    Optionally we can have:

    1. **Generic optimization** ( eg: gamemode )
    2. **Overclocking and monitoring software** ( eg: corectrl, mangohud )
    2. **Overclocking and monitoring software** ( eg: CoreCtrl, Mangohud )
    3. **Custom kernels**

    <br>

    ## Gaming clients

    I'll install **steam** and to access games from other launchers I'll use **bottles**, which should be installed through **flatpak**.
    I'll install **Steam** and to access games from other launchers I'll use **Bottles**, which should be installed through **flatpak**.

    ```Zsh
    # Install steam and flatpak
    @@ -589,14 +589,14 @@ flatpak install flathub com.usebottles.bottles

    ## Windows compatibility layers

    Proton is the compatibility layer developed by Valve, which includes DXVK( DirectX 9-10-11 to Vulkan), VKD3D ( DirectX 12 to Vulkan ) and a custom version of Wine. It is embedded in Steam and can be enabled directly in Steam settings. A custom version of proton, **Proton GE** exists and can be used as an alternative if something is broken or doesn't perform as expected. Can be either downloaded manually, like explained [here](https://github.com/GloriousEggroll/proton-ge-custom#installation) or through yay as below.
    Proton is the compatibility layer developed by Valve, which includes **DXVK**( DirectX 9-10-11 to Vulkan), **VKD3D** ( DirectX 12 to Vulkan ) and a custom version of **Wine**. It is embedded in Steam and can be enabled directly in Steam settings. A custom version of proton, **Proton GE** exists and can be used as an alternative if something is broken or doesn't perform as expected. Can be either downloaded manually, like explained [here](https://github.com/GloriousEggroll/proton-ge-custom#installation) or through yay as below.

    ```Zsh
    # Installation through yay
    yay -S proton-ge-custom-bin
    ```

    > Tips: To have a more fluid shader compilation when using steam, enable from its settings shader precaching and background processing of vulkan shaders
    > Tips: To have a more fluid shader compilation when using steam, enable from its settings **shader precaching** and **background processing of vulkan shaders**
    <br>

  22. @mjkstra mjkstra revised this gist Nov 5, 2023. 1 changed file with 8 additions and 5 deletions.
    13 changes: 8 additions & 5 deletions arch_linux_installation_guide.md
    Original file line number Diff line number Diff line change
    @@ -438,6 +438,10 @@ yay -S timeshift-autosnap
    reboot
    ```

    > After these steps you **should** be able to boot on your newly installed Arch Linux, if so congrats !
    > The basic installation is complete and you could stop here, but if you want to to have a graphical session, you can continue reading the guide.
    <br>

    # Video drivers
    @@ -497,11 +501,10 @@ Installation looks almost identical to the AMD one, but every time a package con

    # Setting up a graphical environment

    After these steps you **should** be able to boot on your newly installed Arch Linux, if so congrats !
    The basic installation is complete and you could stop here, but if you want to to add a GUI, I will provide 2 options:
    I'll provide 2 options:

    1. **Hyprland**
    2. **KDE-plasma** minimal
    1. **KDE-plasma**
    2. **Hyprland**

    On top of that I'll add a **display manager**, which you can omit if you don't like ( if so, you have additional configuration steps to perform ).

    @@ -516,7 +519,7 @@ On top of that I'll add a **display manager**, which you can omit if you don't l
    pacman -S plasma-desktop plasma-pa plasma-nm plasma-systemmonitor kscreen kdeplasma-addons kde-gtk-config breeze-gtk alacritty dolphin firefox kate okular mpv gimp powerdevil
    ```

    Now don't reboot your system yet. If you want a display manager, which is generally recommended, head to the [section](#adding-a-display-manager) in this guide and proceed from there otherwise you'll have to [manually configure](https://wiki.archlinux.org/title/KDE#From_the_console) and launch the graphical environment each time \(which I would advise to avoid\).
    Now don't reboot your system yet. If you want a display manager, which is generally recommended, head to the [related section](#adding-a-display-manager) in this guide and proceed from there otherwise you'll have to [manually configure](https://wiki.archlinux.org/title/KDE#From_the_console) and launch the graphical environment each time \(which I would advise to avoid\).

    <br>

  23. @mjkstra mjkstra revised this gist Nov 5, 2023. 1 changed file with 2 additions and 0 deletions.
    2 changes: 2 additions & 0 deletions arch_linux_installation_guide.md
    Original file line number Diff line number Diff line change
    @@ -444,6 +444,8 @@ reboot

    In order to have the smoothest experience on a graphical environment, **Gaming included**, we first need to install video drivers. To help you choose which one you want or need, read [this section](https://wiki.archlinux.org/title/Xorg#Driver_installation) of the arch wiki.

    > Note: skip this section if you are on a Virtual Machine
    <br>

    ## Amd
  24. @mjkstra mjkstra revised this gist Nov 5, 2023. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion arch_linux_installation_guide.md
    Original file line number Diff line number Diff line change
    @@ -1,4 +1,4 @@
    # Modern Arch linux UEFI installation guide
    # Modern Arch linux installation guide

    # Table of contents

  25. @mjkstra mjkstra renamed this gist Nov 5, 2023. 1 changed file with 0 additions and 0 deletions.
  26. @mjkstra mjkstra revised this gist Nov 5, 2023. 1 changed file with 141 additions and 4 deletions.
    145 changes: 141 additions & 4 deletions arch_linux_btrfs_uefi_installation_guide.md
    Original file line number Diff line number Diff line change
    @@ -20,10 +20,21 @@
    - [Virtual machine \[Optional\]](#virtual-machine-optional)
    - [Aur helper and additional packages installation \[Optional\]](#aur-helper-and-additional-packages-installation-optional)
    - [Finalization](#finalization)
    - [Video drivers](#video-drivers)
    - [Amd](#amd)
    - [32 Bit support](#32-bit-support)
    - [Nvidia](#nvidia)
    - [Intel](#intel)
    - [Setting up a graphical environment](#setting-up-a-graphical-environment)
    - [Option 1: KDE Plasma](#option-1-kde-plasma)
    - [Option 2: Hyprland \[WIP\]](#option-2-hyprland-wip)
    - [Adding a display manager](#adding-a-display-manager)
    - [Gaming](#gaming)
    - [Gaming clients](#gaming-clients)
    - [Windows compatibility layers](#windows-compatibility-layers)
    - [Generic optimizations](#generic-optimizations)
    - [Overclocking and monitoring](#overclocking-and-monitoring)
    - [Tips and tricks](#tips-and-tricks)
    - [Things to add \[WIP\]](#things-to-add-wip)

    # Introduction
    @@ -429,6 +440,59 @@ reboot

    <br>

    # Video drivers

    In order to have the smoothest experience on a graphical environment, **Gaming included**, we first need to install video drivers. To help you choose which one you want or need, read [this section](https://wiki.archlinux.org/title/Xorg#Driver_installation) of the arch wiki.

    <br>

    ## Amd

    For this guide I'll install the [**AMDGPU** driver](https://wiki.archlinux.org/title/AMDGPU) which is the open source one and the recommended, but be aware that this works starting from the **GCN 3** architecture, which means that cards **before** RX 400 series are not supported. _\( FYI I have an RX 5700 XT \)_

    ```Zsh

    # What are we installing ?
    # mesa: DRI driver for 3D acceleration
    # xf86-video-amdgpu: DDX driver for 2D acceleration in Xorg
    # vulkan-radeon: vulkan support
    # libva-mesa-driver: VA-API h/w video decoding support
    # mesa-vdpau: VDPAU h/w accelerated video decoding support

    sudo pacman -S mesa xf86-video-amdgpu vulkan-radeon libva-mesa-driver mesa-vdpau
    ```

    ### 32 Bit support

    *IF* you want add **32-bit** support, we need to enable the `multilib` repository on pacman: edit `/etc/pacman.conf` and uncomment the `[multilib]` section _\( ie: remove the hashtag from each line of the section. Should be 2 lines \)_. Now we can install the additional packages.

    ```Zsh
    # Refresh and upgrade the system
    yay

    # Install 32bit support for mesa, vulkan, VA-API and VDPAU
    pacman -S lib32-mesa lib32-vulkan-radeon lib32-libva-mesa-driver lib32-mesa-vdpau
    ```

    <br>

    ## Nvidia

    In summary if you have an Nvidia card you have 2 options:

    1. [**Nouveau** open source driver](https://wiki.archlinux.org/title/Nouveau)
    2. [**NVIDIA** proprietary driver](https://wiki.archlinux.org/title/NVIDIA)

    I won't explain further because I don't have an Nvidia card and the process for such cards is tricky unlike for AMD or Intel cards. Moreover for reason said before, I can't even test it.

    <br>

    ## Intel

    Installation looks almost identical to the AMD one, but every time a package contains the `radeon` word substitute it with `intel`. However this does not stand for [h/w accelerated decoding](https://wiki.archlinux.org/title/Hardware_video_acceleration), and to be fair I would recommend reading [the wiki](https://wiki.archlinux.org/title/Intel_graphics#Installation) before doing anything.

    <br>

    # Setting up a graphical environment

    After these steps you **should** be able to boot on your newly installed Arch Linux, if so congrats !
    @@ -487,12 +551,85 @@ reboot

    <br>

    # Gaming

    Gaming on linux has become a very fluid experience, so I'll give some tips on how to setup your arch distro for gaming.

    Let's break down what is needed to game:

    1. **Gaming client** ( eg: steam, lutris, bottles, etc..)
    2. **Windows compatibility layers** ( eg: protonGe, wine, DXVK, VKD3D )

    Optionally we can have:

    1. **Generic optimization** ( eg: gamemode )
    2. **Overclocking and monitoring software** ( eg: corectrl, mangohud )
    3. **Custom kernels**

    <br>

    ## Gaming clients

    I'll install **steam** and to access games from other launchers I'll use **bottles**, which should be installed through **flatpak**.

    ```Zsh
    # Install steam and flatpak
    pacman -S steam flatpak

    # Install bottles through flatpak
    flatpak install flathub com.usebottles.bottles
    ```

    <br>

    ## Windows compatibility layers

    Proton is the compatibility layer developed by Valve, which includes DXVK( DirectX 9-10-11 to Vulkan), VKD3D ( DirectX 12 to Vulkan ) and a custom version of Wine. It is embedded in Steam and can be enabled directly in Steam settings. A custom version of proton, **Proton GE** exists and can be used as an alternative if something is broken or doesn't perform as expected. Can be either downloaded manually, like explained [here](https://github.com/GloriousEggroll/proton-ge-custom#installation) or through yay as below.

    ```Zsh
    # Installation through yay
    yay -S proton-ge-custom-bin
    ```

    > Tips: To have a more fluid shader compilation when using steam, enable from its settings shader precaching and background processing of vulkan shaders
    <br>

    ## Generic optimizations

    We can use gamemode to gain extra performance. To enable it read [here](https://github.com/FeralInteractive/gamemode#requesting-gamemode)

    ```Zsh
    # Install gamemode
    pacman -S gamemode
    ```

    <br>

    ## Overclocking and monitoring

    To live monitor your in-game performance, you can use **mangohud**. To enable it read [here](https://archlinux.org/packages/extra/x86_64/mangohud/)

    ```Zsh
    # Install mangohud
    pacman -S mangohud
    ```

    To overclock your system, i suggest installing [**corectrl**](https://gitlab.com/corectrl/corectrl) if you have an AMD Gpu or [**TuxClocker**](https://github.com/Lurkki14/tuxclocker) for NVIDIA.

    <br>

    ### Tips and tricks

    > On KDE disabling mouse acceleration is simple, just go to the settings via the GUI and on the mouse section enable the flat acceleration profile. If not using KDE then read [here](https://wiki.archlinux.org/title/Mouse_acceleration)
    > To enable freesync or Gsync you can read [here](https://wiki.archlinux.org/title/Variable_refresh_rate), depending on your session \( Wayland or Xorg \) and your gfx provider \( Nvidia, AMD, Intel \) the steps may differ.
    <br>

    # Things to add [WIP]

    1. Additional pacman configuration ( paccache, colors, download packages simultaneously )
    1. Additional pacman configuration \( paccache, colors, download packages simultaneously \)
    2. Reflector configuration
    3. Gaming configuration ( Steam, ProtonGE, mangohud, gamemode, corectrl, bottles )
    4. Dot files
    5. Pywal configuration for dynamic color schemes

    <br>
  27. @mjkstra mjkstra revised this gist Nov 1, 2023. 1 changed file with 3 additions and 0 deletions.
    3 changes: 3 additions & 0 deletions arch_linux_btrfs_uefi_installation_guide.md
    Original file line number Diff line number Diff line change
    @@ -478,6 +478,9 @@ sudo pacman -S sddm
    # Enable SDDM service to make it start on boot
    sudo systemctl enable sddm

    # If using KDE I suggest installing this to control the SDDM configuration from the KDE settings App
    pacman -S --needed sddm-kcm

    # Now it's time to reboot the system
    reboot
    ```
  28. @mjkstra mjkstra revised this gist Oct 31, 2023. 1 changed file with 2 additions and 1 deletion.
    3 changes: 2 additions & 1 deletion arch_linux_btrfs_uefi_installation_guide.md
    Original file line number Diff line number Diff line change
    @@ -213,10 +213,11 @@ mount /dev/nvme0n1p1 /mnt/efi
    # "reflector" to manage mirrors for pacman
    # "zsh" my favourite shell
    # "zsh-completions" for zsh additional completions
    # "zsh-autosuggestions" very useful, it helps writing commands [ Needs configuration in .zshrc ]
    # "openssh" to use ssh and manage keys
    # "man" for manual pages
    # "sudo" to run commands as other users
    pacstrap /mnt base base-devel linux linux-firmware git btrfs-progs grub efibootmgr grub-btrfs inotify-tools timeshift vim networkmanager pipewire pipewire-alsa pipewire-pulse pipewire-jack reflector zsh zsh-completions openssh man sudo
    pacstrap /mnt base base-devel linux linux-firmware git btrfs-progs grub efibootmgr grub-btrfs inotify-tools timeshift vim networkmanager pipewire pipewire-alsa pipewire-pulse pipewire-jack reflector zsh zsh-completions zsh-autosuggestions openssh man sudo
    ```

    <br>
  29. @mjkstra mjkstra revised this gist Oct 31, 2023. 1 changed file with 2 additions and 0 deletions.
    2 changes: 2 additions & 0 deletions arch_linux_btrfs_uefi_installation_guide.md
    Original file line number Diff line number Diff line change
    @@ -488,5 +488,7 @@ reboot
    1. Additional pacman configuration ( paccache, colors, download packages simultaneously )
    2. Reflector configuration
    3. Gaming configuration ( Steam, ProtonGE, mangohud, gamemode, corectrl, bottles )
    4. Dot files
    5. Pywal configuration for dynamic color schemes

    <br>
  30. @mjkstra mjkstra revised this gist Oct 31, 2023. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion arch_linux_btrfs_uefi_installation_guide.md
    Original file line number Diff line number Diff line change
    @@ -216,7 +216,7 @@ mount /dev/nvme0n1p1 /mnt/efi
    # "openssh" to use ssh and manage keys
    # "man" for manual pages
    # "sudo" to run commands as other users
    pacstrap /mnt base base-devel linux linux-firmware git btrfs-progs grub efibootmgr grub-btrfs inotify-tools timeshift vim networkmanager pipewire pipewire-alsa pipewire-pulse pipewire-jack reflector zsh openssh man sudo
    pacstrap /mnt base base-devel linux linux-firmware git btrfs-progs grub efibootmgr grub-btrfs inotify-tools timeshift vim networkmanager pipewire pipewire-alsa pipewire-pulse pipewire-jack reflector zsh zsh-completions openssh man sudo
    ```

    <br>