Appunti di Programmazione

Creative Commons License

Logo ArchLinux

Installazione manuale di Arch Linux e OpenBox

25 Aprile 2024

In un precedente articolo ho illustrato come installare Debian + OpenBox su un portatile Mac. L'esperienza è stata piuttosto piacevole ed interessante tanto che ho pensato di ripeterrla con Arch Linux.

La scelta è caduta su Arch piuttosto che su qualche altra distro, per due motivi principali: il primo per una sorta di sfida, visto che la distribuzione la si può installare solo manualmente senza l'ausilio di qualche installer grafico; il secondo per poter imparare qualcosa di nuovo sul mondo di Linux.

A onor del vero, esiste uno script, "ArchInstall", non distribuito dalla comunità ufficiale, che consente di ridurre l'installazione a pochi semplici domande, rispondendo alle quali si può ottenere sia un sistema base (solo terminale), sia un sistema completo corredato di Desktop Grafico .

C'ho impiegato un pò di tempo e diversi tentativi di installazione prima di arrivare alla versione definitiva perfettamente funzionante che descriverò di seguito.

Il pc di destinazione è lo stesso dell'esperimento eseguito con Debian: un Mac Book Pro 13" [8.1] dell'inizio 2011. Ovviamente, a parte l'installazione del sistema base di Linux Arch e dei driver per le periferiche del portatile, tutto il resto è dettato da una mia personale scelta dovuta ai gusti del sottoscritto e alla mia esperenza in merito alla tipologia di applicazioni che sono solito usare. Ovviamente non mi aspetto che dobbiate scegliere i programmi che utilizzo io, ma spero vi sia utile per capire come muoversi in questo terreno dove ogni cosa deve essere eseguita a mano.

Cominciamo!!!

- Scaricare l'ultima versione di Linux Arch dal Sito Ufficiale

- Rendere avviabile una chiavetta USB di almeno 8GB salvondoci sopra il file ISO appena scaricato utilizzando Balena Etcher, programmi similari o l'utility del terminale "dd".

- Collegare il cavo Ethernet tra Router e computer, poi inserire la chiavetta nel PC e accenderlo in modo che possa essere letta e inizi il processo di installazione di Arch.

- Impostare la tastiera Italiana:

# loadkeys it

- Controllare quali interfacce di rete sono presenti nel PC e se sono attive (UP). In questo caso la rete Ethernet enp2s0f0 lo è.

# ip link
1: lo: <LOOPBACK,UP,LOWER_UP mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp2s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 10:9a:dd:6e:fa:b4 brd ff:ff:ff:ff:ff:ff

- Verificare se la connesione funziona. In caso affermativo, come il seguente, il sistema invia alcuni pacchetti dati, al sito indicato e valuta il tempo di risposta.

# ping -c 4 archlinux.org
PING archlinux.org (95.217.163.246) 56(84) bytes of data.
64 bytes from archlinux.org (95.217.163.246): icmp_seq=1 ttl=48 time=64.3 ms
64 bytes from archlinux.org (95.217.163.246): icmp_seq=2 ttl=48 time=63.7 ms
64 bytes from archlinux.org (95.217.163.246): icmp_seq=3 ttl=48 time=63.4 ms
64 bytes from archlinux.org (95.217.163.246): icmp_seq=4 ttl=48 time=64.3 ms

---archlinux.org ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rrt min/avg/max/mdev = 65.355/63.889/64.276/0.396ms

- Verificare se il pc ha la modalità EFI

# ls /sys/firmware/efi/efivars

- Se viene mostrata una lista di file siamo in presenza di modalità EFI altrimenti Legacy.
La procedura di installazione seguente è adatta alla modalità EFI.

IMPOSTARE L'OROLOGIO

- Verificare come è impostato l'orologio:

# timedatectl
               Local time: Thu 2024-04-11 16:40:46 UTC
           Universal time: Thu 2024-04-11 16:40:46 UTC
                 RTC time: Thu 2024-04-11 16:40:46
                Time zone: UTC (UTC, +0000)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

- Se non è corretto recuperare la nostra zona:

# timedatectl list-timezones
...
...
Europe/Moscow
Europe/Nicosia
Europe/Oslo
Europe/Paris
Europe/Podgorica
Europe/Prague
Europe/Riga
Europe/Rome
Europe/Samara
Europe/San_Marino
Europe/Sarajevo
Europe/Saratov
Europe/Simferopol
Europe/Skopje
Europe/Sofia
Europe/Stockholm
Europe/Tallinn
Europe/Tirane
Europe/Tiraspol
Europe/Ulyanovsk
Europe/Uzhgorod
Europe/Vaduz
Europe/Vatican
lines 461-483

Premere q per uscire dalla lista:

- Impostare il fuso orario italiano:

# timedatectl set-timezone Europe/Rome

- Controllare se è corretta:

# timedatectl
               Local time: Thu 2024-04-11 18:43:43 CEST
           Universal time: Thu 2024-04-11 16:43:43 UTC
                 RTC time: Thu 2024-04-11 16:43:43
                Time zone: Europe/Rome (CEST, +0200)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

- In questo caso è attiva, ma qualora fosse necessario impostare la sincronizzazione dell'orologio attraverso internet, impartire il seguente comando:

# timedatectl set-ntp true

- Verificare se l'impostazione è stata attivata correttamente:

# timedatectl
               Local time: Thu 2024-04-11 18:44:23 CEST
           Universal time: Thu 2024-04-11 16:44:23 UTC
                 RTC time: Thu 2024-04-11 16:44:23
                Time zone: Europe/Rome (CEST, +0200)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

PARTIZIONARE L'HARD DISK

- Sono necessarie tre partizioni: boot in modalita UEFI, swap e root.

- Controllare le partizioni presenti sul disco:

# fdisk -l      
Disk /dev/sda: 298.09 GiB, 320072933376 bytes, 625142448 sectors
Disk model: Hitachi HTS54503                      
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: FCF4EDDB-A815-4BB8-A4F9-196AB3050BF0

Device     Start        End   Sectors   Size Tipo
/dev/sda1   2048  625141759  25139712 298.1G Microsoft basic data

- Entrare nella shell di fdisk per creare le partizioni necessarie (/dev/sda nel mio caso):

# fdisk /dev/sda

Welcome to fdisk (util-linux 2.39.3).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

A hybrid GPT was detected. You have to sync the hybrid MBR manually (expert command 'M').

Command (m for help):

- Digitare m seguito da INVIO per l'help dei comandi:

Command (m for help): m

Help:

  GPT
   M   enter protective/hybrid MBR

  Generic
   d   delete a partition
   F   list free unpartitioned space
   l   list known partition types
   n   add a new partition
   p   print the partition table
   t   change a partition type
   v   verify the partition table
   i   print information about a partition

  Misc
   m   print this menu
   x   extra functionality (experts only)

  Script
   I   load disk layout from sfdisk script file
   O   dump disk layout to sfdisk script file

  Save & Exit
   w   write table to disk and exit
   q   quit without saving changes

  Create a new label
   g   create a new empty GPT partition table
   G   create a new empty SGI (IRIX) partition table
   o   create a new empty DOS partition table
   s   create a new empty Sun partition table


Command (m for help):

- Creare una tabella di partizioni GPT con g seguito da INVIO:

Command (m for help): g

Created a new GPT disklabel (GUID: FF581116-CC28-46B0-A5C9-B95D6923C2A4).

Command (m for help):

- Creare la prima partizione, quella di boot, digitando n seguito da INVIO.
Accettare il valore di default [1] per il numero identificativo, stessa cosa per il valore del primo settore, ma impostare +512M come dimensione della partizione; infine rispondere y alla richiesta, se presente come in questo caso, di rimuovere la firma del filesystem attualmente presente nella partizione stessa, se diverso da EFI System.

Command (m for help): n
Partition number (1-128, default 1):
First sector (2048-625142414, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-625142414, default 625141759): +512M

Created a new partition 1 of type 'Linux filesystem' and of size 512 MiB.
Partition #1 contains a exfat signature.

Do you want to remove the signature''? [Y]es/[N]o: y

The signature will be removed by a write command.

Command (m for help):

- Impostare il tipo di partizione digitando t seguito da INVIO.
Inserire 1 come numero della partizione; digitare L per visionare la lista di tutti i filesystem utilizzabili e annotare che EFI System corrisponde al codice [1] mentre Linux swap al codice [19]; premere q per uscire dalla lista; inserire 1 come valore per impostare EFI System.

Command (m for help): t
Partition number (1-128, default 1): 1
Partition type or alias (type L to list all): L
  1 EFI System                     C12A7328-F81F-11D2-BA4B-00A0C93EC93B
  2 MBR partition scheme           024DEE41-33E7-11D3-9D69-0008C781F39F
  3 Intel Fast Flash               D3BFE2DE-3DAF-11DF-BA40-E3A556D89593
  4 BIOS boot                      21686148-6449-6E6F-744E-656564454649
  5 Sony boot partition            F4019732-066E-4E12-8273-346C5641494F
  6 Lenovo boot partition          BFBFAFE7-A34F-448A-9A5B-6213EB736C22
  7 PowerPC PReP boot              9E1A2D38-C612-4316-AA26-8B49521E5A8B
  8 ONIE boot                      7412F7D5-A156-4B13-81DC-867174929325
  9 ONIE config                    D4E6E2CD-4469-46F3-B5CB-1BFF57AFC149
 10 Microsoft reserved             E3C9E316-0B5C-4DB8-817D-F92DF00215AE
 11 Microsoft basic data           EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
 12 Microsoft LDM metadata         5808C8AA-7E8F-42E0-85D2-E1E90434CFB3
 13 Microsoft LDM data             AF9B60A0-1431-4F62-BC68-3311714A69AD
 14 Windows recovery environment   DE94BBA4-06D1-4D40-A16A-BFD50179D6AC
 15 IBM General Parallel Fs        37AFFC90-EF7D-4E96-91C3-2D7AE055B174
 16 Microsoft Storage Spaces       E75CAF8F-F680-4CEE-AFA3-B001E56EFC2D
 17 HP-UX data                     75894C1E-3AEB-11D3-B7C1-7B03A0000000
 18 HP-UX service                  E2A1E728-32E3-11D6-A682-7B03A0000000
 19 Linux swap                     0657FD6D-A4AB-43C4-84E5-0933C84B4F4F
 20 Linux filesystem               0FC63DAF-8483-4772-8E79-3D69D8477DE4
 21 Linux server data              3B8F8425-20E0-4F3B-907F-1A25A76F98E8
 22 Linux root (x86)               44479540-F297-41B2-9AF7-D131D5F0458A
 23 Linux root (x86-64)            4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709
...
...
Partition type or alias (type L to list all): 1

Changed type of partition 'Linux filesystem' to 'EFI System'.

Command (m for help):

- Creare la seconda partizione, quella di swap, digitando n seguito da INVIO.
Accettare il valore di default [2] per il numero identificativo, stessa cosa per il valore del primo settore, ma impostare +2G come dimensione della partizione; infine rispondere y alla richiesta, se presente come in questo caso, di rimuovere la firma del filesystem attualmente presente nella partizione stessa, se diverso da Linux swap.

Command (m for help): n
Partition number (2-128, default 2):
First sector (1050624-625142414, default 1050624):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (1050624-625142414, default 625141759): +2GB

Created a new partition 2 of type 'Linux filesystem' and of size 1.9 GiB.
Partition #2 contains a exfat signature.

Do you want to remove the signature''? [Y]es/[N]o: y

The signature will be removed by a write command.

Command (m for help):

- Impostare il tipo di partizione premendo t seguito da INVIO.
Inserire 2 come numero della partizione; digitare 19 come valore per impostare Linux swap.

Command (m for help): t
Partition number (1-128, default 2): 2
Partition type or alias (type L to list all): 19

Changed type of partition 'Linux filesystem' to 'linux swap'.

Command (m for help):

- Creare l'ultima partizione, quella di root, digitando n seguito da INVIO.
Accettare il valore di default [3] per il numero identificativo, stessa cosa per il valore del primo e dell'ultimo settore. E' inutile impostare il filesystem in quanto di default viene usato esattamente Linux filesystem che è quello che ci serve.

Command (m for help): n
Partition number (3-128, default 3):
First sector (4956160-625142414, default 4956160):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (4956160-625142414, default 625141759):

Created a new partition 3 of type 'Linux filesystem' and of size 295.7 GiB.

Command (m for help):

- Salvare le modifiche ed uscire da fdisk con w seguito da INVIO.

Command (m for help): w
The partition table has altered.
Calling ioctl to re-read partition table.
Syncing disks.

- Verificare il risultato:

# fdisk -l
Disk /dev/sda: 298.09 GiB, 320072933376 bytes, 625142448 sectors
Disk model: Hitachi HTS54503                      
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: FF581116-CC28-46B0-A5C9-B95D6923C2A4

Device       Start        End   Sectors   Size Tipo
/dev/sda1     2048    1050623   1048576   512M EFI System
/dev/sda2  1050624    4956159   3905536   1.9G Linux swap
/dev/sda3  4956160  625141759 620185600 295.7G Linux filesystem

FORMATTARE LE PARTIZIONI

- Iniziare con la prima, quella di boot:

# mkfs.fat -F32 /dev/sda1
mkfs.fat 4.2 (2021-01-31)

- Continuare con quella di swap:

# mkswap /dev/sda2
Setting up swapspace version 1, size = 1.9 GiB (1999630336 bytes)
no label, UUID=58ecd671-9622-436f-a6df-a18c842f43b8

- Infine quella di root; accettare le opzioni proposte premendo invio.

# mkfs.ext4 /dev/sda3
mke2fs 1.47.0 (5-Feb-2023)
Creating filesystem with 77523200 4K blocks and 19382272 inodes
Filesystem UUID: 6da8389b-e42f-46aa-8526-b7947688c28e
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616

Allocating group tables: done
Writing inode tables: done
Creating journal (262144 blocks):
done
Writing superblocks and filesystem accounting information: done

MONTARE LE PARTIZIONI

- Iniziare con quella di boot:

# mount --mkdir /dev/sda1 /mnt/boot

- Proseguire con quella di swap:

# swapon /dev/sda2

- Finire con quella di root:

# mount /dev/sda3 /mnt

SELEZIONARE IL MIRROR

- Impartire il seguente comando:

# reflector --verbose --country Italy --sort rate --save /etc/pacman.d/mirrorlist
[2024-04-11 19:08:15] INFO: rating 4 mirror(s) by download speed
[2024-04-11 19:08:15] INFO: Server                                               Rate       Time
[2024-04-11 19:08:20] WARNING: failed to rate http(s) download (http://archlinux.mirror.garr.it/archlinux/extra/os/x86_64/extra.db): Download timed out after 5 second(s).
[2024-04-11 19:08:20] INFO: http://archlinux.mirror.garr.it/archlinux/      0.00 KiB/s     0.00 s
[2024-04-11 19:08:25] WARNING: failed to rate http(s) download (https://archmirror.it/repos/extra/os/x86_64/extra.db): Download timed out after 5 second(s).
[2024-04-11 19:08:25] INFO: https://archmirror.it/repos/                    0.00 KiB/s     0.00 s
[2024-04-11 19:08:31] WARNING: failed to rate http(s) download (http://archlinux.mirror.server24.net/extra/os/x86_64/extra.db): Download timed out after 5 second(s).
[2024-04-11 19:08:31] INFO: http://archlinux.mirror.server24.net/           0.00 KiB/s     0.00 s
[2024-04-11 19:08:36] WARNING: failed to rate http(s) download (https://archlinux.mirror.server24.net/extra/os/x86_64/extra.db): Download timed out after 5 second(s).
[2024-04-11 19:08:36] INFO: https://archlinux.mirror.server24.net/           0.00 KiB/s     0.00 s

- Controllare se il file è stato creato correttamente:

#  cat /etc/pacman.d/mirrorlist
################################################################################
################# Arch Linux mirrorlist generated by Reflector #################
################################################################################

# With:       reflector --verbose --country Italy --sort rate --save /etc/pacman>
# When:       2024-04-28 04:59:31 UTC
# From:       https://archlinux.org/mirrors/status/json/
# Retrieved:  2024-04-28 04:59:10 UTC
# Last Check: 2024-04-28 04:50:44 UTC

Server = http://archlinux.mirror.garr.it/archlinux/$repo/os/$arch
Server = https://archmirror.it/repos/$repo/os/$arch
Server = http://archlinux.mirror.server24.net/$repo/os/$arch
Server = https://archlinux.mirror.server24.net/$repo/os/$arch

INSTALLARE IL SISTEMA OPERATIVO

# pacstrap -K /mnt base base-devel linux linux-firmware nano

- Generare la tabella fstab:

# genfstab -U /mnt >> /mnt/etc/fstab

- Passare al nuovo sistema:

# arch-chroot /mnt

IMPOSTARE IL FUSO ORARIO, LA LINGUA E LA TASTIERA ITALIANA

# ln -sf /usr/share/zoneinfo/Europe/Rome /etc/localtime

- Impostare l'orologio del pc su UTC:

# hwclock --systohc --utc

- Modificare il file /etc/locale.gen con nano, decommentando, cioè toglendo il [#] dalla linea che contiene le specifiche per la lingua italiana

# nano /etc/locale.gen

...
#hy_AM.ARMSCII-8 ARMSCII-8
#ia_FR UTF-8
#id_ID.UTF-8 UTF-8
#id_ID ISO-8859-1
#ig_NG UTF-8
#ik_CA UTF-8
#is-IS.UTF-8 UTF-8
#is_IS ISO-8859-1
#it_CH.UTF-8 UTF-8
#it_CH ISO-8859-1
it_IT.UTF-8 UTF-8
#it_IT ISO-8859-1
#it_IT@euro ISO-8859-15
#iu-CA UTF-8
...

- Impartire il seguente comando:

# locale-gen
Generating locales...
  it_IT.UTF-8... done
Generation complete

- Creare il file /etc/locale.conf con nano:

# nano /etc/locale.conf

- e inserire l'istruizione seguente:

LANG=it_IT.UTF-8

- Impostare la tastiera creando con nano il seguente file:

# nano /etc/vconsole.conf

- e aggiungere l'istruzione:

KEYMAP=it

CONFIGURARE LA RETE

- Abilitare systemd-networkd:

# systemctl enable systemd-networkd.service
Created symlink /etc/systemd/system/dbus-org.freedesktop.network1.service > /usr/lib/systemd/system/systemd-networkd.service.
Created symlink /etc/systemd/system/multi-user.target.wants/systemd-networkd.service > /usr/lib/systemd/system/systemd-networkd.service.
Created symlink /etc/systemd/system/sockets.target.wants/systemd-networkd.service > /usr/lib/systemd/system/systemd-networkd.socket.
Created symlink /etc/systemd/system/sysinit.target.wants/systemd-network-generator.service > /usr/lib/systemd/system/systemd-network-generator.service.
Created symlink /etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service > /usr/lib/systemd/system/systemd-networkd-wait-online.service.

- Creare il file /etc/hostname con nano per inserirvi il proprio hostname (ad esempio "archlinux"):

# nano /etc/hostname

- e scrivere il nome:

archlinux

CONFIGURARE ROOT e NUOVO UTENTE

- Impostare la password di root:

# passwd
New password:
Retype new password:
passwd: password update successfully

- Creare un nuovo utente:

# useradd -m -G wheel -s /bin/bash gandalfrank

- dove al posto di gandalfrank, deve essere inserito il vostro nome. Quindi proseguire impostando la relativa password:

# passwd gandalfrank
New password:
Retype new password:
passwd: password update successfully

INSTALLARE IL BOOTLOADER GRUB

- Creare la directory che ospiterà Grub:

# mkdir /boot/efi

- Montare la partizione di boot nella cartella appena creata:

# mount /dev/sda1 /boot/efi

- Installare Grub:

# pacman -S grub
resolving dependencies...
looking for conflicting packages...

Packages (1) grub-2:2.12-2

Total Download Size:    6.04 MiB
Total Installed Size:  33.67 MiB

:: Proceed with installation? [Y/n] y
:: Retrieving packages...
grub-2:2.12-2-x86_64
...
...

- Installare efibootmgr:

# pacman -S efibootmgr
resolving dependencies...
looking for conflicting packages...

Packages (2) evivar-39-1  efibootmgr-18-3

Total Download Size:   0.17 MiB
Total Installed Size:  0.61 MiB

:: Proceed with installation? [Y/n] y
:: Retrieving packages...
efivar-39-1-x86_64
efibootmgr-18-3-x86_64
...
...

- Se Arch viene installato a fianco di uno o più sistemi operativi installare anche os-prober (non è il mio caso).

# pacman -S os-prober

- Usare grub-install:

# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=grub

- Generare il file di configurazione:

# grub-mkconfig -o /boot/grub/grub.cfg

CONCLUDERE L'INSTALLAZIONE DEL SISTEMA BASE DI ARCH

- Uscire da chroot:

# exit
exit
arch-chroot /mnt 4.81s user 2.36s system 0% cpu 27:24:98 total

- Smontare tutto:

# umount -R /mnt

- Spegnere sistema:

# shutdown now

- Rimuovere la chiavetta USB di installazione e accendere il PC. Autenticarsi come root:

archlinux login: root
Password:

IMPOSTARE LA RETE ETHERNET PER IL SISTEMA APPENA INSTALLATO

- Accertarsi che il cavo Ethernet sia collegato e verificare la rete:

# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp2s0f0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 10:9a:dd:6e:fa:b4 brd ff:ff:ff:ff:ff:ff

- Se la rete Ethernet (enp2s0f0 nel mio caso) non ha il termine UP nella definizione 2: enp2s0f0: <BROADCAST,MULTICAST>... deve essere attivata come segue:

# ip link set enp2s0f0 up

- Controlliamo se è attivata:

# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp2s0f0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000
    link/ether 10:9a:dd:6e:fa:b4 brd ff:ff:ff:ff:ff:ff

- Verificare lo stato del servizio systemd.networkd-service:

# systemctl status systemd-networkd.service
systemd-networkd.service - Network Configuration
     Loaded: loaded (usr/lib/systemd/system/systemd-networkd.service; enabled; preset: enabled)
     Active: active (running) since Sun 2024-04-14 12:41:16 CEST; 9min ago
TriggeredBy: systemd-networkd.socket
       Docs: man:systemd-networkd.service(8)
             man:org.freedesktop.network1(15)
   Main PID: 273 (systemd-network)
     Status: "Processing request..."
      Tasks: 1 (limit: 4572)
   FD store: 0 (limit: 512)
     Memory: 3.2M (peak: 3.7M)
        CPU: 57ms
CGroup: /system.slice/systemd-networkd.service
        273 /usr/lib/systemd/systemd-networkd

apr 14 12:41:14 archlinux systemd[1]: Starting Network Configuration...
apr 14 12:41:16 archlinux systemd-networkd[273]: lo: Link UP
apr 14 12:41:16 archlinux systemd-networkd[273]: lo: Gaimed carrier
apr 14 12:41:16 archlinux systemd-networkd[273]: lo: Enumeration completed
apr 14 12:41:1 archlinux systemd[1]: Started Network Configuration...
apr 14 12:41:16 archlinux systemd-networkd[273]: eth0: Interface name change detected, renamed enp2s0f0.
apr 14 12:46:20 archlinux systemd-networkd[273]: enp2s0f0: Link UP
apr 14 12:46:23 archlinux systemd-networkd[273]: enp2s0f0: Gained carrier
apr 14 12:46:24 archlinux systemd-networkd[273]: enp2s0f0: Gained IPv6LL

- Come si può vedere dai termini in azzurro, il servizio è ABILITATO e ATTIVO; provare dunque a connettersi ad internet:

# ping -c 4 archlinux.org
ping archlinux.org: Errore temporaneo nella risoluzione del nome

- L'errore che è apparso indica che non sono configurati i server DNS cui connettersi per poter navigare in internet scrivendo i normali indirizzi dei siti da visitare. Quindi procedere con la configurazione del file resolved.conf con nano:

# nano /etc/systemd/resolved.conf

- Aggiungere le seguenti due linee in coda al file:

nameserver 8.8.8.8
nameserver 8.8.4.4

- Configurare la rete Ethernet scrivendo le linee seguenti nel file 20-wired.network usando nano:

# nano /etc/systemd/network/20-wired.network

[Match]
Name=enp2s0f0

[Network]    
DHCP=yes

[DHCPv4]
RouteMetric=100

[IPv6AcceptRA]
RouteMetric=100

- Aavviare il servizio systemd-resolved.service:

# systemctl enable systemd-resolved.service
Created symlink /etc/systemd/system/dbus-org.freedesktop.resolve1.service » /usr/lib/systemd/system/systemd-resolved.service.
Created symlink /etc/systemd/system/sysinit.target.wants/systemd-resolved.service » /usr/lib/systemd/system/systemd-resolved.service.

# systemctl start systemd-resolved.service

- Riavviare il sistema:

# reboot

- Autenticarsi come root:

archlinux login: root
Password:

INSTALLARE SUDO

- Digitare il seguente comando:

# pacman -S sudo

- Le impostazioni di sudo sono contenute in un file per modificare il quale si deve richiamare visudo con nano:

# EDITOR=nano visudo

- Nell'editor cercare la riga seguente (se non esiste createla):

# Defaults env_editor, editor=...

- E sostituirla con la seguente ricordando di togliere il [#]. Il suo scopo, come è facilmente intuibile, serve ad indicare quali sono gli editori testuali di default per la console. Ho inserito vi e vim che però devono essere installati.

Defaults env_editor,editor=/usr/bin/vi:/usr/bin/nano:/usr/bin/vim

- Aggiungere le seguenti istruzioni colorate in rosso e decommentare la linea %wheel ALL=(ALL:ALL) ALL (in blu nel riquadro sottostante):

## User privilege specification
##
root ALL=(ALL:ALL) ALL

gandalfrank ALL=(ALL:ALL) ALL

##Uncomment to allow members of group of wheel to execute any command
%wheel ALL=(ALL:ALL) ALL
...
...
gandalfrank archlinux=NOPASSWD: /usr/bin/pcmanfm, /usr/lib/pcmanfm, /usr/share/pcmanfm, /usr/bin/mousepad, /usr/lib/mousepad

## Read drop-in files from /etc/sudoers.d
@includedir /etc/sudoers.d

- Ovviamente al posto di gandalfrank inserite il vostro nome utente, al posto di archlinux il vostro hostname e correggete le cartelle indicate, qualora vogliate usare due programmi diversi da pcmanfm come file manager e mousepad come editor di testi. Le 2 linee rosse sopra aggiunte, servono ad assegnare i privilegi di amministratore al nostro utente usando la clausola "sudo", la prima; a usare il file manager (pcmanfm) e l'editor di testo (mousepad) con i privilegi di amministratore senza dovere inserire la password, la seconda.

- Terminare la sessione come amministratore:

# exit

- Ed effettuare il login con il nostro utente:

archlinux login: gandalfrank
Password:

- Chiaramente al posto di gandalfrank inserire il vostro username.

Logo OpenBox

INSTALLARE OPENBOX

- Per prima cosa fare un aggiornamento di sistema:

$ sudo pacman -Syu

- Adesso è la volta del Windows Manager OpenBox:

$ sudo pacman -S openbox xorg-xinit xorg-server

- ...e di un paio di font:

$ sudo pacman -S ttf-dejavu ttf-liberation

- Copiare il file di configurazione /etc/X11/xinit/xinitrc nella propria HOME:

$ cp /etc/X11/xinit/xinitrc ~/.xinitrc

- Modificare il file appena creato con nano:

$ nano ~/.xinitrc

- Commentare , aggiungendo [#], le ultime 5 righe del file e inserire la linea scritta in rosso:

#twm &
#xclock -geometry 50x50-1+1 &
#xterm -geometry 80x50+494+51 &
#xterm -geometry 80x20+494-0 &
#exec xterm -geometry 80x66+0+0 -name -login
exec openbox-session

- Creare le due cartelle annidate dentro la propria HOME:

$ mkdir -p ~/.config/openbox

- e copiarci i file di configurazione di /etc/xdg/openbox/:

$ cp -a /etc/xdg/openbox/ ~/.config/

- Adesso bisogna installare tutti quei programmi che sono utili al sistema e quelli necessari per le nostre normali attività quotidiane. Ovviamente ognuno deve scegliere in base alle proprie esigenze. Quello che segue è un elenco di applicazioni selezionate dal sottoscritto dopo avere compreso cosa mi serve veramente.

- git strumento per scaricare manulamente i pacchetti AUR
- pcmanfm file manager
- gvfs gestione cestino e montaggio volumi in pcmanfm
- xarchiver gestione file compressi in pcmanfm
- unzip gestione file compressi .zip in pcmanfm
- lxterminal terminale
- man-db pagine man degli strumenti del terminale
- obconf configurazione di OpenBox
- lxrandr configurazione del monitor
- pulseaudio driver scheda audio
- pavucontrol gestione scheda audio
- font-manager gestione fonts
- gpicview visualizzatore immagini
- htop visualizzatore processi evoluto per terminale
- scrot cattura screenshot da terminale
- atril lettore PDF
- gimp fotoritocco
- qcad CAD - Disegno Tecnico
- cherrytree editor testuale per prendere appunti
- flowblade video editor
- mousepad editor di file txt
- firefox web browser
- flowblade videomontaggio
- vlc lettore multimediale

sul sito di Arch esiste una sezione dedicata a tutte le applicazioni e i giochi disponibili per questa distro.

- per installarli è necessario usare pacman in questo modo:

$ sudo pacman -S git

$ sudo pacman -S pcmanfm

$ sudo pacman -S gvfs

...e così via per ogni applicazione.

- Riavviare il sistema ed effettuare il login con il vostro utente:

$ reboot

archlinux login: gandalfrank
Password:

CONFIGURARE MENU'

In OpenBox non esiste un pulsante di avvio con il quale visionare la lista delle applicazioni che sono installate sul sistema, ma soltanto un menù per accedere al quale si deve Cliccare-DX in un qualunque punto della scrivania.

- Modificare il file ~/.config/openbox/menu.xml in modo che il menù proponga le applicazioni appena installate:

$ nano ~/.config/openbox/menu.xml

<?xml version="1.0" encoding="UTF-8"?>

<openbox_menu xmlns="http://openbox.org/3.4/menu">
<menu id="root-menu" label="OpenBox 3">
<separator label="Applcazioni"/>
  <item label="Atril" icon="/home/gandalfrank/Icone/Atril.png">
    <action name="Execute">
      <command>atril</command>
    </action>
  </item>
  <item label="CherryTree" icon="/home/gandalfrank/Icone/CherryTree.png">
    <action name="Execute">
      <command>cherrytree</command>
    </action>
  </item>
  <item label="Firefox" icon="/home/gandalfrank/Icone/Firefox.png">
    <action name="Execute">
      <command>firefox</command>
    </action>
  </item>
  <item label="Flowblade" icon="/home/gandalfrank/Icone/FlowBlade.png">
    <action name="Execute">
      <command>flowblade</command>
    </action>
  </item>
  <item label="Font Manager" icon="/home/gandalfrank/Icone/Fonts.png">
    <action name="Execute">
      <command>font-manager</command>
    </action>
  </item>
  <item label="GIMP" icon="/home/gandalfrank/Icone/GIMP.png">
    <action name="Execute">
      <command>gimp</command>
    </action>
  </item>
  <item label="GPicView" icon="/home/gandalfrank/Icone/GPicView.png">
    <action name="Execute">
      <command>gpicview</command>
    </action>
  </item>
  <item label="LxRandr" icon="/home/gandalfrank/Icone/LxRandr.png">
    <action name="Execute">
      <command>lxrandr</command>
    </action>
  </item>
  <item label="LxTerminal" icon="/home/gandalfrank/Icone/LxTerminal.png">
    <action name="Execute">
      <command>lxterminal</command>
    </action>
  </item>
  <item label="MousePad" icon="/home/gandalfrank/Icone/MousePad.png">
    <action name="Execute">
      <command>mousepad</command>
    </action>
  </item>
  <item label="PavuControl" icon="/home/gandalfrank/Icone/Volume.png">
    <action name="Execute">
      <command>pavucontrol</command>
    </action>
  </item>
  <item label="PCMan File Manager" icon="/home/gandalfrank/Icone/PCManFM.png">
    <action name="Execute">
      <command>pcmanfm</command>
    </action>
  </item>
  <item label="QCAD" icon="/home/gandalfrank/Icone/CAD.png">
    <action name="Execute">
      <command>qcad</command>
    </action>
  </item>
  <menu id="amministratore" label="Root" icon="/home/gandalfrank/Icone/Root_2.png">
    <item label="MousePad" icon="/home/gandalfrank/Icone/MousePad.png">
      <action name="Execute">
        <command>sudo mousepad</command>
      </action>
    </item>
    <item label="PCMan File Manager" icon="/home/gandalfrank/Icone/PCManFM.png">
      <action name="Execute">
        <command>sudo pcmanfm</command>
      </action>
    </item>
  </menu>
  <item label="Vlc" icon="/home/gandalfrank/Icone/Vlc.png">
    <action name="Execute">
      <command>vlc</command>
    </action>
  </item>
  <separator />
  <item label="OB Conf" icon="/home/gandalfrank/Icone/OBConf.png">
    <action name="Execute">
      <command>obconf</command>
    </action>
  </item>
  <item label="Riconfigura OpenBox" icon="/home/gandalfrank/Icone/OB_Riconfigura.png">
    <action name="Reconfigure" />
  </item>
  <item label="Riavvia OpenBox" icon="/home/gandalfrank/Icone/OB_Riavvia.png">
    <action name="Restart" />
  </item>
  <separator />
  <menu id="exit" label="Esci" icon="/home/gandalfrank/Icone/Esci.png">
    <item label="Chiudi Sessione" icon="/home/gandalfrank/Icone/Chiudi_Sessione.png">
      <action name="Execute">
        <command>openbox --exit</command>
      </action>
    </item>
    <item label="Riavvia" icon="/home/gandalfrank/Icone/Riavvia.png">
      <action name="Execute">
        <command>systemctl reboot</command>
      </action>
    </item>
    <item label="Spegni" icon="/home/gandalfrank/Icone/Esci.png">
      <action name="Execute">
        <command>systemctl poweroff</command>
      </action>
    </item>
  </menu>
</menu>
</openbox_menu>

- L'icona da associare ad un programma deve essere indicata attraverso il suo percorso assoluto ... icon="/home/gandalfrank/Icone/Atril.png". Naturalmente tale percorso varia da PC a PC. Controllare il vostro.

- Riavviare il sistema ed autenticarsi con il proprio utente:

$ reboot

archlinux login: gandalfrank
Password:

- Creare qualche cartella utile nella HOME.

$ cd

$ mkdir Documenti Immagini Sfondi Icone Programmi Download Aiuto

- Ovviamente queste sono le cartelle che uso io, ognuno crei quello che vuole..

- Avviare OpenBox:

$ startx

- Cliccare-DX in un qualunque punto dello schermo fa apparire il menù seguente (non ci sono icone perché ancora non sono state salvate sul pc):

Menu iniziale con Root e Esci.

- Provare ad avviare ogni singolo programma per accertarsi che funzioni correttamente. Qualora Flowblade non si avvii, provate a farlo aprtire da LxTerminal.

$ flowblade

...se Flowblade genera questo errore:

Launch script dir: /usr/bin
Running from installation...
modules path: /usr/lib/python3.11/site-packages/Flowblade
MLT found, version: 7.22.0
Failed to import module app.py to launch Flowblade!
ERROR: No module named 'usb1'
Installation was assumed to be at: /usr/lib/python3.11/site-packages/Flowblade

...rimediare installando la seguente libreria:

$ sudo pacman -S python-libusb1

***CONSIGLIO*** Se per caso vi rendete conto che non c'è una corrispondenza esatta fra i tasti premuti e i caratteri che appaiono sullo schermo impartire questo comando:

$ sudo localectl set-x11-keymap it

- e riavviare usando il menù:

Menù Esci-Riavvia.

- Inserire nella cartella ~/Icone tutte quelle immagini da associare ai programmi installati.

Menù Esci-Riavvia.

- Nel menù selezionare la voce Riconfigura OpenBox...

Riconfigura OpenBox

- ...e le icone appariranno a fianco dei progroammi nel menù stesso.

Menu iniziale con Root e Esci.

INSTALLARE YAY

- yay è uno strumento che semplifica l'installazione dei pacchetti AUR (Arch User Repository). E' anch'esso un programma appartenente al gruppo AUR pertanto per installarlo lo si deve dapprima scaricare, poi compilare/installare in questo modo:

- Sul sito di Arch-AUR, digitare nell'apposita casella di ricerca, il termine yay e premere INVIO. Dalla lista che appare Cliccare-SX sul pacchetto yay; in alternativa si può installare yay.bin

cercare yay

- Nella pagina che appare Cliccare-SX sull'indirizzo del pacchetto, evidenziato con rettangolo rosso nell'immagine sottostante, per copiare il percorso completo.

pacchetto yay

- Usando il terminale entrare nella cartella Programmi:

$ cd ~/Programmi

- Digitare la seguente istruzione:

$ git clone INCOLLARE_INDIRIZZO_YAY

- Questo il risultato:

$ git clone https://aur.archlinux.org/yay.git

Entrare nella cartella che porta il nome del programma installato.

$ cd yay

Avviare la compilazione / installazione.

$ makepkg -si

Come anticipato poco prima, qualora l'installazione di yay produca errori è possibile provare ad installare yay.bin usando la stessa procedura.

INSTALLARE PACCHETTO UFFICIO

- Adesso che yay è funzionante, installare la suite da ufficio FreeOffice che si sitrova in AUR:

$ yay -S freeoffice

- Aprire con MousePad ~/.config/openbox/menu.xml per aggiungere il pacchetto ufficio, le linee in rosso, all'elenco dei programmi installati.

  ...
  <item label="Font Manager" icon="~/Icone/Fonts.png">
    <action name="Execute">
      <command>font-manager</command>
    </action>
  </item>
  <menu id="office" label="FreeOffice" icon="/home/gandalfrank/Icone/FreeOffice.png">
    <item label="PlanMaker" icon="/home/gandalfrank/Icone/PlanMaker.png">
      <action name="Execute">
        <command>freeoffice-planmaker</command>
      </action>
    </item>
    <item label="Presentations" icon="/home/gandalfrank/Icone/Presentations.png">
      <action name="Execute">
        <command>freeoffice-presentations</command>
      </action>
    </item>
    <item label="TextMaker" icon="/home/gandalfrank/Icone/TextMaker.png">
      <action name="Execute">
        <command>freeoffice-textmaker</command>
      </action>
    </item>
  </menu>
  <item label="GIMP" icon="~/Icone/GIMP.png">
    <action name="Execute">
      <command>gimp</command>
    </action>
  </item>
  ...

Aggiunta menù FreeOffice.

CONFIGURARE SCHEDA WiFi

- Adesso è la volta del driver per la scheda wifi BroadComm BCM4331 del mio Mac Book Pro 13" del 2011:

$ yay -S b43-firmware

- Riavviare il sistema per rendere effettive le modifiche e autenticarsi nuovamente con il proprio utente:

$ reboot

archlinux login: gandalfrank
Password:

- Avviare OpenBox:

$ startx

- Usando LxTerminal controllare se adesso la scheda WiFi viene riconosciuta.

$ ip link
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp2s0f0:  mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 10:9a:dd:6e:fa:b4 brd ff:ff:ff:ff:ff:ff
3: wlp3s0b1:  mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether e0:f8:47:42:62:6c brd ff:ff:ff:ff:ff:ff

- Installazione riuscita. Adesso è apparsa la terza voce wlp3s0b1 che corrisponde alla scheda WiFi (la mia...). Adesso va configurata. Dapprima installare wpa-supplicant:

$ sudo pacman -S wpa_supplicant
[sudo] password di gandalfrank:

- Creare il file di configurazione /etc/systemd/network/25-wireless.network con nano:

$ sudo nano /etc/systemd/network/25-wireless.network

[Match]
Name=wlp3s0b1

[Network)
DHCP=yes

[DHCPv4]
RouteMetric=600

[IPv6AcceptRA]
RouteMetric=600

- Creare il file di configurazione di wpa_supplicant:

$ sudo wpa_passphrase NOME_RETE_WiFi PASSWORD_DI_RETE > /etc/wpa_supplicant/wpa_supplicant.conf

- Eliminare la PASSWORD_DI_RETE che risulta in chiaro nel file appena creato:

$ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

network={
        ssid="NOME_RETE_WiFi"
        #psk="PASSWORD_DI_RETE"
        psk=6285080e311393454b7ab402ceadd22af9aba0a14456ddd499fa7374d3adfcf1
}

- Deve diventare:

network={
        ssid="NOME_RETE_WiFi"
        psk=6285080e311393454b7ab402ceadd22af9aba0a14456ddd499fa7374d3adfcf1
}

- Creare e configurare il file /etc/systemd/system/wpa_supplicant.service:

$ sudo cp /lib/systemd/system/wpa_supplicant.service /etc/systemd/system/wpa_supplicant.service

$ sudo nano /etc/systemd/system/wpa_supplicant.service

[Unit]
Description=WPA supplicant
Before=network.target
After=dbus.service
Wants=network.target
IgnoreOnIsolate=true

[Service]
Type=dbus
BusName=fi.w1.wpa_supplicant1
ExecStart=/usr/bin/wpa_supplicant -u -s -O /run/wpa_supplicant

[Install]
WantedBy=multi-user.target
Alias=dbus-fi.w1.wpa_supplicant1.service

- Sostituire la ExecStart evidenziata di rosso in questo modo:

[Unit]
Description=WPA supplicant
Before=network.target
After=dbus.service
Wants=network.target
IgnoreOnIsolate=true

[Service]
Type=dbus
BusName=fi.w1.wpa_supplicant1
ExecStart=/usr/bin/wpa_supplicant -u -s -c /etc/wpa_supplicant/wpa_supplicant.conf -i wlp3s0b1
Restart=always

[Install]
WantedBy=multi-user.target
Alias=dbus-fi.w1.wpa_supplicant1.service

- Abilitare wpa_supplicant.service:

$ sudo systemctl enable wpa_supplicant.service
Created symlink /etc/systemd/system/dbus-fi.w1.wpa_supplicant1.service → /etc/systemd/system/wpa_supplicant.service.
Created symlink /etc/systemd/system/multi-user.target.wants/wpa_supplicant.service → /etc/systemd/system/wpa_supplicant.service.

- Riavviare il sistema e autenticarsi nuovamente con il proprio utente:

$ reboot

archlinux login: gandalfrank
Password:

- Avviare OpenBox:

$ startx

- Scollegare il cavo Ethernet dal PC e verificare se la connessione WiFi funziona correttamente avviando Firefox.

WiFi funzionante.

INSTALLARE IL DISPLAY MANAGER

- Installare i seguenti pacchetti usando LxTerminal:

$ sudo pacman -S lightdm

$ sudo pacman -S lightdm-gtk-greeter

$ sudo pacman -S accountsservice

- Abilitare il servizio lightdm.service:

$ sudo systemctl enable lightdm.service
Created symlink /etc/systemd/system/display-manager.service → /usr/lib/systemd/system/lightdm.service.

Cambiare Avatar:

- Creare un'immagine png di 96x96 pixel (esempio gandalfrank.png) e copiarla nella directoty /var/lib/AccountsService/icons/gandalfrnk.png:

- Creare/modificare il file /var/lib/AccountsService/users/gandalfrank aggiungendo la seguente linea:

$ sudo nano /var/lib/AccountsService/users/gandalfrank

Icon=/var/lib/AccountsService/icons/gandalfrank.png

Cambiare Sfondo:

- Copiare l'immagine che farà da sfondo nella cartella /usr/share/pixmaps/sfondo.jpg:

- Modificare il file /etc/lightdm/lightdm-gtk-greeter.conf in questo modo:

$ sudo nano /etc/lightdm/lightdm-gtk-greeter.conf

...
[greeter]
background=/usr/share/pixmaps/sfondo.jpg
...

- Riavviare il sistema e autenticarsi nuovamente con il proprio utente, questa volta usando il menù e il login del display Manager:

Menù Esci-Riavvia.

Accesso con il Display Managers.

IMPOSTARE LO SFONDO DEL DESKTOP

- Per poter gestire l'immagine di fondo del desktop è necessario caricare all'avvio una piccola applicazione; pertanto aprire con nano il file ~/.config/openbox/autostart:

$ nano ~/.config/openbox/autostart

- Aggiungere il comando evidenziato in rosso nele codice sottostante::

#
# These things are run when an Openbox X Session is started.
# You may place a similar script in $HOME/.config/openbox/autostart
# to run user-specific things.
#

# If you want to use GNOME config tools...
#
#if test -x /usr/lib/openbox/gnome-settings-daemon >/dev/null; then
#  /usr/lib/openbox/gnome-settings-daemon &
#elif which gnome-settings-daemon >/dev/null 2>&1; then
#  gnome-settings-daemon &
#fi

# If you want to use XFCE config tools...
#
#xfce-mcs-manager &

pcmanfm --desktop &

- Al file ~/.config/openbox/menu.xml aggiungere la voce relativa alla gestione del Desktop in questo modo:

...
  <item label="Vlc" icon="/home/gandalfrank/Icone/Vlc.png">
    <action name="Execute">
      <command>vlc</command>
    </action>
  </item>
  <separator />
  <item label="Desktop" icon="/home/gandalfrank/Icone/Desktop.png">
    <action name="Execute">
      <command>pcmanfm --desktop-pref</command>
    </action>
  </item>
  <item label="OB Conf" icon="/home/gandalfrank/Icone/OBConf.png">
    <action name="Execute">
      <command>obconf</command>
    </action>
  </item>
...

- Nel menù fare Cliccare sulla voce Riconfigura Openbox:

Aggiunta menù Desktop.

- Riavviare il sistema usando il menu ed effettuare il login con il vostro utente:

- Cliccare-DX sullo schermo. Dal menu che appare scegliere la voce Preferenze della scrivania quindi sulla scheda Avanzate e mettere il segno di spunta sull'opzione "Mostra i menù forniti dai window manager quando si fa clic sulla scrivania".

Preferenze della scrivania.

- Da questo momento in poi, per cambiare sfondo alla scrivania, scegliere la voce Desktop dal menu e nella scheda Aspetto selezionare un'immagine per lo sfondo.

CAMBIARE TEMA A GRUB

- Scaricare un tema dal sito GNOME-LOOK.org e decomprimerlo in /urs/share/grub/themes/.

- Aprire /etc/default/grub con nano:

$ sudo nano /etc/default/grub

- Decommentare, ossia togliere il simbolo del cancelletto [#], dalla linea che segue e al posto di NOME_TEMA inserire il nome della cartella che contiene il tema da usare:

GRUB_THEME="/usr/share/grub/themes/NOME_TEMA/theme.txt"

Quindi rigenerare il file di configurazione di Grub. Nell'output deve apparire la linea che conferma la corretta impostazione del tema (in azzurro nel testo sottostante):

$ sudo grub-mkconfig -o /boot/grub/grub.cfg
Generating grub configuration file ...
Found theme: /usr/share/grub/themes/devuan/theme.txt
Found linux image: /boot/vmlinuz-linux
Found initrd image: /boot/initramfs-linux.img
Found fallback initrd image(s) in /boot:  initramfs-linux-fallback.img
Warning: os-prober will not be executed to detect other bootable partitions.
Systems on them will not be added to the GRUB boot configuration.
Check GRUB_DISABLE_OS_PROBER documentation entry.
Adding boot menu entry for UEFI Firmware Settings ...
done

CAMBIARE ICONA CESTINO

- Le icone del cestino sono entrambe file svg di 128x128 pixels e devono essere sostituite con altrettante immagini di eguali dimensioni e stesso formato.

Sono contenute in due cartelle distinte. Consiglio di rinominare le immagini originali con il suffisso OLD, o quello che volete, e assegnare il nome originale alle nuove.

Le due cartelle sono le seguenti:

/usr/share/icons/Adwaita/scalable/places/user-trash.svg

/usr/share/icons/Adwaita/scalable/status/user-trash-full.svg

E' necessario riavviare il PC per apprezzare le nuove immagini.

BLUETOOTH

- Per l'installazione di uno strumento da usare con il terminale:

$ sudo pacman -S bluez

$ sudo pacman -S bluez-utils

- Per abilitare il servizio:

$ sudo systemctl enable bluetooth.service
Created symlink /etc/systemd/system/dbus-org.bluez.service → /usr/lib/systemd/system/bluetooth.service.
Created symlink /etc/systemd/system/bluetooth.target.wants/bluetooth.service → /usr/lib/systemd/system/bluetooth.service.

- Per una sommaria lista dei comandi di uso del Bluetooth consultare il File di Aiuto - Comandi Utili del quale farò menzione più avanti; per una guida più dettagliata riferirsi alla pagina di Arch - Bluetooth o alla pagina man ufficiale del sistema:

$ man bluetoothctl

TASTIERA, MOUSE E TOUCHPAD

- Installare il driver per il Touchpad:

$ sudo pacman -S libinput

- Installare la libreria per la configurazione delle gestures:

$ yay -S libinput-gestures

- Installare lo strumento per la modifica delle impostazioni:

$ sudo pacman -S xorg-xinput

- Modificare il file /usr/share/X11/xorg.conf.d/40-libinput.conf aggiungendo queste linee:

$ sudo nano /usr/share/X11/xorg.conf.d/40-libinput.conf

# Match on all types of devices but joysticks
#
# If you want to configure your devices, do not copy this file.
# Instead, use a config snippet that contains something like this:
#
# Section "InputClass"
#   Identifier "something or other"
#   MatchDriver "libinput"
#
#   MatchIsTouchpad "on"
#   ... other Match directives ...
#   Option "someoption" "value"
# EndSection
#
# This applies the option any libinput device also matched by the other
# directives. See the xorg.conf(5) man page for more info on
# matching devices.

Section "InputClass"
        Identifier "libinput pointer catchall"
        MatchIsPointer "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
EndSection

Section "InputClass"
        Identifier "libinput keyboard catchall"
        MatchIsKeyboard "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
EndSection

Section "InputClass"
        Identifier "bcm5974"
        Driver "libinput"
        Option "Tapping" "true"
        Option "NaturalScrolling" "false"
EndSection

Section "InputClass"
        Identifier "libinput touchpad catchall"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
EndSection
...
...

- Dove bcm5974 è il nome della periferica, e le due Option sono recuperabili da man 4 libinput; inoltre i loro valori devono essere inseriti tra virgolette anche se si tratta di valori numerici.

Per recuperare il nome della periferica ho usato il comando dmesg cercando il termine bcm che è la contrazione di Broadcomm ossia il nome della scheda in mio possesso.

$ sudo dmesg | grep bcm
[   18.633353] bcma-pci-bridge 0000:03:00.0: bus0: Found chip with id 0x4331, rev 0x02 and package 0x09
[   18.633397] bcma-pci-bridge 0000:03:00.0: bus0: Core 0 found: ChipCommon (manuf 0x4BF, id 0x800, rev 0x25, class 0x0)
[   18.633429] bcma-pci-bridge 0000:03:00.0: bus0: Core 1 found: IEEE 802.11 (manuf 0x4BF, id 0x812, rev 0x1D, class 0x0)
[   18.633486] bcma-pci-bridge 0000:03:00.0: bus0: Core 2 found: PCIe (manuf 0x4BF, id 0x820, rev 0x13, class 0x0)
[   18.683418] bcma-pci-bridge 0000:03:00.0: bus0: Bus registered
[   19.080291] input: bcm5974 as /devices/pci0000:00/0000:00:1a.7/usb3/3-1/3-1.2/3-1.2:1.2/input/input12
[   19.080407] usbcore: registered new interface driver bcm5974
[   21.287439] b43 bcma0:1 wlp3s0b1: renamed from wlan0

RETRO-ILLUMINAZIONE TASTIERA

- Installare il programma:

$ yay -S macbook-lighter

- Creare il seguente file:

$ sudo nano /etc/udev/rules.d/90-backlight.rules

SUBSYSTEM=="backlight", ACTION=="add", \
  RUN+="/bin/chgrp video /sys/class/backlight/%k/brightness", \
  RUN+="/bin/chmod g+w /sys/class/backlight/%k/brightness"

- Di seguito le istruzioni per la modifica della retro-illuminazione della tastiera [range valori 0-255].

- Aggiustamento automatico illuminazione

$ sudo systemctl start macbook-lighter

- Incrementare di 50 unità l'illuminazione

$ sudo macbook-lighter-kbd --inc 50

- Diminuire di 40 unità l'illuminazione

$ sudo macbook-lighter-kbd --dec 40

- OPPURE

$ sudo macbook-lighter-kbd --inc -40

- Impostare l'illuminazione al max

$ sudo macbook-lighter-kbd --max

- Impostare l'illuminazione al min

$ sudo macbook-lighter-kbd --min

LUMINOSITA' SCHERMO

- Installare il driver della scheda video:

$ sudo pacman -S xf86-video-intel

- Installare l'applicazione per la gestione della lumnosità dello schermo:

$ sudo pacman -S xorg-xbacklight

- E' necessario riavviare per poter modificare la luminosità dello schermo.

Istruzioni per la gestione della lumnosità dello schermo [range valori 0-100]:

- Impostare la luminosità al 67%:

$ xbacklight -set 67

- Impostare la luminosità al 100%:

$ xbacklight -set 100

- Impostare la luminosità allo 0%:

$ xbacklight -set 0

MONITOR DI SISTEMA: CONKY

- Installare conky:

$ sudo pacman -S conky

- Nella HOME creare il file .conkyrc e copiarci queste linee:

$ nano ~/.conkyrc

conky.config = {
    alignment = 'top_right',
    background = false,
    border_width = 1,
    cpu_avg_samples = 2,
    default_color = '00ffff',
    default_outline_color = '999999',
    default_shade_color = 'white',
    double_buffer = true,
    draw_borders = true,
    draw_graph_borders = true,
    draw_outline = false,
    draw_shades = false,
    extra_newline = false,
    font = 'Courier:size=10',
    gap_x = 30,
    gap_y = 30,
    minimum_height = 5,
    minimum_width = 5,
    net_avg_samples = 2,
    no_buffers = true,
    out_to_console = false,
    out_to_ncurses = false,
    out_to_stderr = false,
    out_to_x = true,
    own_window = true,
    own_window_class = 'Conky',
    own_window_type = 'normal',
    show_graph_range = false,
    show_graph_scale = false,
    stippled_borders = 0,
    update_interval = 1.0,
    uppercase = false,
    use_spacer = 'none',
    use_xft = true,
}

conky.text = [[
${font Courier:size=32}${color ffffff}${alignc}${voffset 10}${time %k:%M}
${font Courier:size=10}${color}${alignc}${voffset 10}${time %A %e %B %Y}

${font Arial:size=10}${color ff8800}${offset 5}C A L E N D A R ${hr 2}${font}${color}
${exec cal}
${font Arial:size=10}${color ff8800}${offset 5}S Y S T E M ${hr 2}${font}
${color ffffff}${offset 15}Hostname: ${color}${alignr}${nodename}
${color ffffff}${offset 15}OS: ${color}${alignr}${distribution}
${color ffffff}${offset 15}Kernel: ${color}${alignr}${kernel}
${color ffffff}${offset 15}Architecture: ${color}${alignr}${machine}
${color ffffff}${offset 15}Uptime: ${color}${alignr}${uptime}

${font Arial:size=10}${color ff8800}${offset 5}P E R F O R M A N C E ${hr 2}${font}
${color ffffff}${offset 15}Frequency: ${color}${alignr}${freq} MHz
${color ffffff}${offset 15}RAM: ${color}${alignr}${mem}/${memmax}
${color ffffff}${offset 15}Swap: ${color}${swapperc}%${alignr}${color ffff00}${swapbar 10,120}
${color ffffff}${offset 15}CPU: ${color}${cpu}%${alignr}${color ff0000}${cpubar 10,120}
${color ffffff}${offset 15}Battery: ${color}${battery_percent}% ${alignr}${color 00ff00}${battery_bar 10, 120 }

${font Arial:size=10}${color ff8800}${offset 5}N E T W O R K ${hr 2}${font}
${color ffffff}${offset 15}WiFi:${alignr}${color}${wireless_essid wlp3s0b1}

${color ffffff}${offset 15}Ethernet: ${alignr}${color}${if_existing /sys/class/net/enp2s0f0/operstate up}CONNESSO${else}${alignr}DISCONNESSO${endif}

${color ffffff}${offset 15}Bluetooth: ${alignr}${color}${if_running bluetoothd}ATTIVO${else}INATTIVO${endif}

#${color ffffff}${offset 15}Architecture: ${alignr}${color}${exec hostnamectl | grep 'Architecture'| cut -c19-26}
#${color ffffff}${offset 15}WiFi: ${alignr}${color}${if_existing /sys/class/net/wlp3s0b1/operstate up}${exec sudo iw dev | grep 'ssid '| cut -c8-19}${else}${alignr}NESSUNA${endif}${font}
]]

- Aprire il file ~/.config/openbox/autostart aggiungere il collegamento a conky:

$ nano ~/.config/opebox/autostart

#
# These things are run when an Openbox X Session is started.
# You may place a similar script in $HOME/.config/openbox/autostart
# to run user-specific things.
#

# If you want to use GNOME config tools...
#
#if test -x /usr/lib/openbox/gnome-settings-daemon >/dev/null; then
#  /usr/lib/openbox/gnome-settings-daemon &
#elif which gnome-settings-daemon >/dev/null 2>&1; then
#  gnome-settings-daemon &
#fi

# If you want to use XFCE config tools...
#
#xfce-mcs-manager &

pcmanfm --desktop &

conky &

- Le modifiche hanno effetto solo dopo un riavvio.

INSTALLARE NUOVI FONTS

- Scaricare un nuovo font da siti come dafont.com o 1001freefonts.com e decomprimerli nella cartella ~/.local/share/fonts, quindi aggiornare la lista dei caratteri.

$ fc-cache

CAMBIARE COLORI TERMINALE

- Il colore di default delle cartelle nel terminale è blu e, a mio avviso, risulta difficile da leggere, preferisco cambiarlo con un colore più chiaro come il giallo.

- Inserire nel file ~/.bashrc la lista della configurazione dei colori di default:

$ dircolors -b >> ~/.bashrc

- Adesso editare il file con nano

$ nano ~/.bashrc

- Sostituire :di=01;34 che imposta il blu come colore per le directory con :di=01;93 che le colora di giallo.

LS_COLORS='rs=0:di=01;93:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:>
export LS_COLORS

- Riavviare il terminale per apprezzare le nuove impostazioni.

FILE DI AIUTO

- Mi sono creato un file di testo contenente alcuni comandi che possono tornarmi utili e l'ho inserito nel menù in modo da poterlo consultare all'occorrenza.

$ nano ~/Aiuto/Comandi_Utili

SCORCIATOIE DA TASTIERA
--------------------------------------------------------------------------------------------------------------------------------------------
Ctrl + Alt + F2                                                     Avvia terminale
F1                                                                  Browser Web          
F10                                                                 Menu applicaziojne attiva
Cmd + Alt + Sx/Dx                                                   Scorre avanti/indietro finestra desktop
Shift + Alt + Sx/DX                                                 Invia applicazione aperta al Desktop precedente/successivo
Cmd + [F1, F2, F3, F4]                                              Sceglie quale desktop aprire
Cmd + d                                                             Nasconde tutto quello che sta sul desktop
Alt + F4                                                            Chiude Applicazione
Alt + ESC                                                           Annulla
Alt + Spazio                                                        Mostra menu finmestra
Alt + TAB                                                           Scorrimento su tutte le applicazioni aperte
Alt + Shift + TAB                                                   Scorrimento in ordine inverso su tutte le applicazioni aperte
Cmd + Shift + Frecce                                                Scorrimento su applicazioni in base alla posizione usando le frecce


GESTIONE RETI
--------------------------------------------------------------------------------------------------------------------------------------------
sudo ip link set enp2s0f0 up                                        Avvia la rete ethernet
sudo ip link set enp2s0f0 down                                      Arresta la rete ethernet
sudo ip link set wlp3s0b1 up                                        Avvia la rete wifi
sudo ip link set wlp3s0b1 down                                      Arresta la rete wifi


GESTIONE BLUETOOTH
--------------------------------------------------------------------------------------------------------------------------------------------
sudo systemctl status bluetooth.service                             Fornisce informazioni sullo stato del servizio.
sudo systemctl start bluetooth.service                              Avvia il servizio.
sudo systemctl restart bluetooth.service                            Riavvia il servizio.
sudo systemctl stop bluetooth.service                               Arresta il servizio.
sudo systemctl enable bluetooth.service                             Abilita il servizio all'avvio del sistema.
sudo systemctl disable bluetooth.service                            Disabilita il servizio dall'avvio del sistema. 

digitare bluetoothctl per entrare nella shell dei comandi del bluetooth

discoverable on                                                     Attiva visibilità dell'interfaccia
devices                                                             Lista dei dispositivi attivi
scan on                                                             Ricerca del MAC del dispositivo voluto
pair A1:B2:C3:D4:E5:F6                                              Associa il dispositivo voluto al sistema
connect A1:B2:C3:D4:E5:F6                                           Connette un dispositivo già associato
paired-devices                                                      Lista dei dispositivi associati archiviati
trust A1:B2:C3:D4:E5:F6                                             Assegna fiducia al dispositivo
untrust A1:B2:C3:D4:E5:F6                                           Rimuove fiducia al dispositivo
remove A1:B2:C3:D4:E5:F6                                            Dissocia il dispositivo voluto al sistema
disconnect A1:B2:C3:D4:E5:F6                                        Disconnette un dispositivo dal sistema
block A1:B2:C3:D4:E5:F6                                             Blocca il dispositivo a connettersi al sistema
unblock A1:B2:C3:D4:E5:F6                                           Sblocca il dispositivo a connettersi al sistema
help                                                                Elenco comandi della shell


IMPOSTAZIONE GESTURES
--------------------------------------------------------------------------------------------------------------------------------------------
xinput set-prop "bcm5974"  "libinput Tapping Enabled" 1             Abilita il tap per il click
xinput set-prop "bcm5974"  "libinput Natural Scrolling Enabled" 0   Disabilita lo scrolling naturale
xinput list-props "bcm5974"                                         Elenca le proprietà del touchpad del mac
xinput list                                                         Elenca tutte le periferiche interessate da libinput


GESTIONE RETROILLUMINAZINE TASTIERA
--------------------------------------------------------------------------------------------------------------------------------------------
[valori 0-255]
sudo systemctl start macbook-lighter                                Avvia l'auto-bilanciamento
macbook-lighter-kbd --inc 50                                        Incrementa la luminosità di 50
macbook-lighter-kbd --dec 40                                        Diminuisce la luminosità di 40
macbook-lighter-kbd --max                                           Imposta la luminosità al max
macbook-lighter-kbd --min                                           Imposta la luminosità al min


GESTIONE ILLUMNAZIONE SCHERMO
--------------------------------------------------------------------------------------------------------------------------------------------
[valori 0-100%]
xbacklight -set 100                                                 Imposta la retroilluminazione dello schermo al 100%
xbacklight -set 67                                                  Imposta la retroilluminazione dello schermo al 67%
xbacklight -set 0                                                   Imposta la retroilluminazione dello schermo allo 0%


USO PACMAN
--------------------------------------------------------------------------------------------------------------------------------------------
pacman -Sy                                                          Aggiorna i repository
pacman -Su                                                          Aggiorna Arch
pacman -Syu                                                         Aggiorna i repository & Arch
pacman -Ss nome_pacchetto                                           Cerca "nome_pacchetto" nei repository
pacman  -Qs nome_pacchetto                                          Cerca "nome_pacchetto" fra i programmi installati
pacman -S nome_pacchetto                                            Installa/aggiorna "nome_pacchetto"
pacman -U nome_pacchetto.pkg.tar.xz                                 Installa un pacchetto precedentemente scaricato di nome "nome_pacchetto"
pacman -U http://www.esempio.com/repo/esempio.pkg.tar.xz            Installa un pacchetto scaricandolo da un link
pacman -R nome_pacchetto                                            Rimuove il pacchetto "nome_pacchetto"
pacman -Rs nome_pacchetto                                           Rimuove un pacchetto e tutte le sue dipendenze inutilizzate
pacman -Rs $(pacman -Qtdq)                                          Rimuove pacchetti inutilizzati


YAY
--------------------------------------------------------------------------------------------------------------------------------------------
yay nome_pacchetto                                                  Cerca "nome_pacchetto"
yay -Ss nome_pacchetto                                              Cerca "nome_pacchetto" nei repository e su AUR
yay -S nome_pacchetto                                               Installa "nome_pacchetto"
yay -G nome_pacchetto                                               Ottiene solo il PKGBUILD di nome_pacchetto
yay -R nome_pacchetto                                               Rimuove "nome_pacchetto"
yay -Rns nome_pacchetto                                             Rimuove un pacchetto e tutte le sue dipendenze
yay -Yc                                                             Rimuove pacchetti inutilizzati


GIT
--------------------------------------------------------------------------------------------------------------------------------------------
git clone [nome pacchetto aur.git]
cd NOME_DIRECTORY
makepkg -si


DATI BATTERIA
--------------------------------------------------------------------------------------------------------------------------------------------
cat /sys/class/power_supply/BAT0/uevent                             Informazioni sulla batteria
cat /sys/class/power_supply/BAT0/capacity                           Percentuale di carica della batteria

- Infine ho scaricato dal sito di Arch una serie di link ad argomenti inerenti questa installazione (OpenBox, Grub, Systemd, wpa-supplicant...) e li ho salvati direttamente nella cartella ~/Aiuto in modo da poterli consultare anche in assenza di internet.

- Aggiungere al file ~/.config/openbox/menu.xml le seguenti linee collocandole come ultima voce delle applicazioni, subito dopo Vlc:

  <menu id="aiuto" label="Aiuto" icon="/home/gandalfrank/Icone/Aiuto.png">
    <item label="AUR" icon="/home/gandalfrank/Icone/Manuale.png">
      <action name="Execute">
        <command>firefox /home/gandalfrank/Aiuto/Arch_User_Repository.html</command>
      </action>
    </item>
    <item label="Backlight" icon="/home/gandalfrank/Icone/Manuale.png">
      <action name="Execute">
        <command>firefox /home/gandalfrank/Aiuto/Backlight.html</command>
      </action>
    </item>
    <item label="Bluetooth" icon="/home/gandalfrank/Icone/Manuale.png">
      <action name="Execute">
        <command>firefox /home/gandalfrank/Aiuto/Bluetooth.html</command>
      </action>
    </item>
    <item label="File Manager Functionality" icon="/home/gandalfrank/Icone/Manuale.png">
      <action name="Execute">
        <command>firefox /home/gandalfrank/Aiuto/File_manager_functionality.html</command>
      </action>
    </item>
    <item label="General recommendations" icon="/home/gandalfrank/Icone/Manuale.png">
      <action name="Execute">
        <command>firefox /home/gandalfrank/Aiuto/General_recommendations.html</command>
      </action>
    </item>
    <item label="GRUB" icon="/home/gandalfrank/Icone/Manuale.png">
      <action name="Execute">
        <command>firefox /home/gandalfrank/Aiuto/GRUB.html</command>
      </action>
    </item>
    <item label="GRUB tips and tricks" icon="/home/gandalfrank/Icone/Manuale.png">
      <action name="Execute">
        <command>firefox /home/gandalfrank/Aiuto/GRUB_tips_and_tricks.html</command>
      </action>
    </item>
    <item label="Installation guide" icon="/home/gandalfrank/Icone/Manuale.png">
      <action name="Execute">
        <command>firefox /home/gandalfrank/Aiuto/Installation_guide.html</command>
      </action>
    </item>
    <item label="Keyboard backlight" icon="/home/gandalfrank/Icone/Manuale.png">
      <action name="Execute">
        <command>firefox /home/gandalfrank/Aiuto/Keyboard_backlight.html</command>
      </action>
    </item>
    <item label="libinput" icon="/home/gandalfrank/Icone/Manuale.png">
      <action name="Execute">
        <command>firefox /home/gandalfrank/Aiuto/libinput.html</command>
      </action>
    </item>
    <item label="LightDM" icon="/home/gandalfrank/Icone/Manuale.png">
      <action name="Execute">
        <command>firefox /home/gandalfrank/Aiuto/LightDM.html</command>
      </action>
    </item>
    <item label="List of applications" icon="/home/gandalfrank/Icone/Manuale.png">
      <action name="Execute">
        <command>firefox /home/gandalfrank/Aiuto/List_of_applications.html</command>
      </action>
    </item>
    <item label="List of games" icon="/home/gandalfrank/Icone/Manuale.png">
      <action name="Execute">
        <command>firefox /home/gandalfrank/Aiuto/List_of_games.html</command>
      </action>
    </item>
    <item label="MacBookPro8,x" icon="/home/gandalfrank/Icone/Manuale.png">
      <action name="Execute">
        <command>firefox /home/gandalfrank/Aiuto/MacBookPro8,x.html</command>
      </action>
    </item>
    <item label="Network configuration" icon="/home/gandalfrank/Icone/Manuale.png">
      <action name="Execute">
        <command>firefox /home/gandalfrank/Aiuto/Network_configuration.html</command>
      </action>
    </item>
    <item label="Network configuration Ethernet" icon="/home/gandalfrank/Icone/Manuale.png">
      <action name="Execute">
        <command>firefox /home/gandalfrank/Aiuto/Network_configuration_Ethernet.html</command>
      </action>
    </item>
    <item label="Network configuration Wireless" icon="/home/gandalfrank/Icone/Manuale.png">
      <action name="Execute">
        <command>firefox /home/gandalfrank/Aiuto/Network_configuration_Wireless.html</command>
      </action>
    </item>
    <item label="Official repositories" icon="/home/gandalfrank/Icone/Manuale.png">
      <action name="Execute">
        <command>firefox /home/gandalfrank/Aiuto/Official_repositories.html</command>
      </action>
    </item>
    <item label="Openbox" icon="/home/gandalfrank/Icone/Manuale.png">
      <action name="Execute">
        <command>firefox /home/gandalfrank/Aiuto/Openbox.html</command>
      </action>
    </item>
    <item label="pacman" icon="/home/gandalfrank/Icone/Manuale.png">
      <action name="Execute">
        <command>firefox /home/gandalfrank/Aiuto/pacman.html</command>
      </action>
    </item>
    <item label="PCManFM" icon="/home/gandalfrank/Icone/Manuale.png">
      <action name="Execute">
        <command>firefox /home/gandalfrank/Aiuto/PCManFM.html</command>
      </action>
    </item>
    <item label="systemd" icon="/home/gandalfrank/Icone/Manuale.png">
      <action name="Execute">
        <command>firefox /home/gandalfrank/Aiuto/systemd.html</command>
      </action>
    </item>
    <item label="systemd-boot" icon="/home/gandalfrank/Icone/Manuale.png">
      <action name="Execute">
        <command>firefox /home/gandalfrank/Aiuto/systemd-boot.html</command>
      </action>
    </item>
    <item label="systemd-networkd" icon="/home/gandalfrank/Icone/Manuale.png">
      <action name="Execute">
        <command>firefox /home/gandalfrank/Aiuto/systemd-networkd.html</command>
      </action>
    </item>
    <item label="systemd-resolved" icon="/home/gandalfrank/Icone/Manuale.png">
      <action name="Execute">
        <command>firefox /home/gandalfrank/Aiuto/systemd-resolved.html</command>
      </action>
    </item>
    <item label="udisks" icon="/home/gandalfrank/Icone/Manuale.png">
      <action name="Execute">
        <command>firefox /home/gandalfrank/Aiuto/udisks.html</command>
      </action>
    </item>
    <item label="wpa__supplicant" icon="/home/gandalfrank/Icone/Manuale.png">
      <action name="Execute">
        <command>firefox /home/gandalfrank/Aiuto/wpa_supplicant.html</command>
      </action>
    </item>
    <item label="xinput" icon="/home/gandalfrank/Icone/Manuale.png">
      <action name="Execute">
        <command>firefox /home/gandalfrank/Aiuto/xinput.html</command>
      </action>
    </item>
    <item label="Comandi Utili" icon="/home/gandalfrank/Icone/Appunti.png">
      <action name="Execute">
        <command>mousepad /home/gandalfrank/Aiuto/Comandi_Utili</command>
      </action>
    </item>
  </menu>

Aggiunta menù Aiuto.

- E questo è tutto.