Come installare e personalizzare GNOME
2025-01-12
Un Desktop Environment minimale (e tiling)
Una volta installato Debian, come precedentemente descritto, possiamo procedere a installare un Desktop Environment. Nello specifico, installeremo GNOME, cercando di renderlo il piú minimale possibile.
Nota: i pacchetti installati e le varie configurazioni rispecchiano il mio utilizzo e il mio gusto personale.
Il risultato finale, dovrebbe essere qualcosa del tipo:
ufw
Prima di procedere, é sempre importante mettere in sicurezza il proprio sistema, configurando il firewall:
sudo apt install ufw && ufw enable
sudo ufw default allow outgoing && sudo ufw default deny incoming
### Per disabilitare ipv6, modificare il file /etc/default/ufw nel modo seguente
cat /etc/default/ufw
IPV6=no
Installazione di GNOME
Per prima cosa, assicurarsi di avere i pacchetti aggiornati e di avere installato sul sistema alcuni pacchetti:
sudo apt update && sudo apt upgrade
sudo apt install wget git apt-transport-https curl
Per un’installazione minimale di GNOME, procedere a installare i seguenti pacchetti:
### Minimal GNOME
sudo apt install gnome-core gnome-tweaks gnome-shell-extension-manager gnome-shell-extensions gnome-extra-icons xdg-desktop-portal xdg-desktop-portal-wlr xdg-desktop-portal-gnome xdg-desktop-portal-gtk wayland-utils wayland-protocols xwayland gnome-keyring gnome-keyring-3 gnome-keyring-daemon mpv dconf-editor pipewire pipewire-pulse upower geoclue-2.0 fwupd ntfs-3g bash-completion zip unzip unrar 7zip eza ncdu alacritty
Network Manager
Nel caso la rete non funzionasse, commentare qualsiasi cosa nel file /etc/network/interfaces
, ad eccezione delle righe seguenti:
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
Riavviare il servizio NetworkManager col comando: sudo systemctl restart NetworkManager.service
Se si desidera che NetworkManager gestisca le interfacce abilitate in /etc/network/interfaces
, impostare managed=true
in /etc/NetworkManager/NetworkManager.conf
, ottenendo qualcosa del tipo:
cat /etc/NetworkManager/NetworkManager.conf
[main]
plugins=ifupdown,keyfile
[ifupdown]
managed=true
Randomizzare i mac-address
Per randomizzare i mac-address, basta creare il seguente file:
cat /etc/NetworkManager/conf.d/00-macrandomize.conf
[device]
wifi.scan-rand-mac-address=yes
[connection]
wifi.cloned-mac-address=random
ethernet.cloned-mac-address=random
Molto interessante la pagina Desktop Linux Hardening, con diversi consigli sul tema.
DNS personalizzati
Per aggiornare i dns predefiniti di sistema, procedere coi seguenti passaggi:
sudo apt install resolvconf
sudo systemctl enable --now resolvconf.service
sudo resolvconf --enable-updates
sudo resolvconf -u
Quindi modificare il file /etc/resolvconf/resolv.conf.d/head
con dei dns a scelta (nell’esempio, quelli di Mullvad):
cat /etc/resolvconf/resolv.conf.d/head
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "resolvectl status" to see details about the actual nameservers.
nameserver 194.242.2.9
Ora tutto dovrebbe funzionare senza problemi. Possiamo quindi eseguire uno snapshot: sudo snapper -c root create --description "debian SID GNOME minimal edition"
GNOME Tiling
Quindi, istalliamo Pop Shell, in modo da avere un sistema tiling, simile a sway
o i3
:
sudo apt install node-typescript
cd ~ && mkdir git && cd ~/git
git clone https://github.com/pop-os/shell.git && cd shell
make local-install
Le principali scorciatoie predefinite.
Altri programmi utili
Ora, alcune utilità di sistema, suddivise per categoria:
### Backup
sudo apt install mdadm borgbackup syncthing rsync libnotify-bin screen
### Browser e torrent
sudo apt install profile-sync-daemon chromium qbittorrent
### Btrfs
sudo apt install udisks2-btrfs btrfs-assistant
### Android
sudo apt install android-sdk-platform-tools-common android-tools-adb android-tools-fastboot
Per installare Firefox-Nightly
, basta seguire la procedura ufficiale di Mozilla, che riporto:
# Create a directory to store APT repository keys if it doesn't exist:
sudo install -d -m 0755 /etc/apt/keyrings
# Import the Mozilla APT repository signing key:
wget -q https://packages.mozilla.org/apt/repo-signing-key.gpg -O- | sudo tee /etc/apt/keyrings/packages.mozilla.org.asc > /dev/null
# The fingerprint should be 35BAA0B33E9EB396F59CA838C0BA5CE6DC6315A3
gpg -n -q --import --import-options import-show /etc/apt/keyrings/packages.mozilla.org.asc | awk '/pub/{getline; gsub(/^ +| +$/,""); print "\n"$0"\n"}'
# Next, add the Mozilla APT repository to your sources list:
echo "deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://packages.mozilla.org/apt mozilla main" | sudo tee -a /etc/apt/sources.list.d/mozilla.list > /dev/null
# Update your package list and install the Firefox Nightly .deb package:
sudo apt-get update && sudo apt-get install firefox-nightly
Nel caso si cercasse un file manager piú completo rispetto a Nautilus, Thunar potrebbe essere un’ottima scelta:
### Thunar
sudo apt install thunar thunar-archive-plugin thunar-volman tumbler tumbler-plugins-extra ffmpegthumbnailer thunar-archive-plugin thunar-data
Altri programmi utili per il monitoraggio dei dischi, dell’hardware, dei log e della rete:
### System
sudo apt install gdisk smartmontools hw-probe lshw multitail htop openssh-server dnsutils speedtest-cli ipcalc iptraf-ng nmap network-manager-openvpn
Nuove icone e font personalizzati:
### Icon and fonts
sudo apt install fonts-ubuntu fonts-ubuntu-console fonts-ubuntu-title fonts-font-awesome
cd ~/git
git clone https://github.com/somepaulo/MoreWaita.git && cd MoreWaita && ./install.sh
Font e icone si possono modificare grazie a gnome-tweaks
, precedentemente istallato:
Interessante, per il mirror dello schermo del cellulare sul proprio pc:
### scrcpy
sudo apt install ffmpeg libsdl2-2.0-0 adb wget gcc git pkg-config meson ninja-build libsdl2-dev libavcodec-dev libavdevice-dev libavformat-dev libavutil-dev libswresample-dev libusb-1.0-0 libusb-1.0-0-dev
cd ~/git && git clone https://github.com/Genymobile/scrcpy && cd scrcpy && ./install_release.sh &&
Altri programmi che utilizzo (assolutamente non necessari):
sudo apt install hugo openjdk-21-jre postgresql
Infine, avviamo i vari servizi: systemctl --user enable --now syncthing && sudo systemctl enable --now ssh && systemctl --user enable --now psd
git
Per configurare git correttamente, lanciare i seguenti comandi:
git config --global user.email 'user@mail.me'
git config --global user.name 'user'
Flatpak
Per le applicazioni grafiche, prediligo l’uso dei pacchetti flatpak, facili da installare e da backuppare, in quanto tutti i file si trovano in ~/.var/app/
. Una lista di programmi che utilizzo, suddivisi per categoria:
sudo apt install flatpak-xdg-utils flatpak gnome-software-plugin-flatpak
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
### Programmi per la gestione dei permessi e per il backup
flatpak install flathub com.github.tchx84.Flatseal io.github.vikdevelop.SaveDesktop
### Messaggistica
flatpak install flathub org.signal.Signal im.dino.Dino io.github.kukuruzka165.materialgram
### Webapp
org.ferdium.Ferdium net.codelogistics.webapps
### Sistema
io.gitlab.adhami3310.Impression it.mijorus.gearlever net.nokyan.Resources
### Editor di testo, traduzione, video e altri programmi
io.freetubeapp.FreeTube org.libreoffice.LibreOffice com.vscodium.codium com.github.hugolabe.Wike app.drey.Dialect
### Nextcloud
com.nextcloud.desktopclient.nextcloud
### ebook e feed-rss
com.github.johnfactotum.Foliate io.gitlab.news_flash.NewsFlash
### Per la cifratura della password del db di Signal
flatpak override --user --env=SIGNAL_PASSWORD_STORE=gnome-libsecret --env=SIGNAL_START_IN_TRAY=1 org.signal.Signal
Appimage
AppImage
è un formato open source per la distribuzione di software portable su GNU/Linux. Di conseguenza, un programma in formato AppImage può essere installato ed eseguito su qualsiasi distribuzione GNU/Linux. In questo é simile a Flatpak
. Le applicazioni in formato AppImage non supportano l’aggiornamento automatico nativamente; bisogna installare AppImageLauncher
:
wget -c https://github.com/TheAssassin/AppImageLauncher/releases/download/v2.2.0/appimagelauncher_2.2.0-travis995.0f91801.bionic_amd64.deb
sudo apt install ./appimagelauncher_2.2.0-travis995.0f91801.bionic_amd64.deb libfuse-dev
rm -rf appimagelauncher_2.2.0-travis995.0f91801.bionic_amd64.deb
Alcuni video sche spiegano molto bene le differenze tra i due formati:
Nessuno dei formati é intrinsecamente migliore dell’altro; tutto dipende dalle proprie esigenze e gusti personali.
Ora, dopo aver installato tutti o quasi i programmi che ci servono, si consiglia di eseguire uno snapshot: sudo snapper -c root create --description "Tiling DE. Installed necessary programs"
.
Fingerprint authentication
Nel caso il proprio laptop o pc disponesse di un lettore di impronte digitali, per configuralo bisogna innanzitutto installare i seguenti pacchetti:
sudo apt install fprintd libpam-fprintd
sudo pam-auth-update
Dalle impostazioni, registrare l’impronta. Per maggiori informazioni: fingerprint authentication.
Rimozione del blotware
Una lista di programmi preinstallati, ma che possono essere tranquillamente rimossi:
sudo apt remove totem gnome-weather yelp baobab gnome-terminal nautilus-extension-gnome-terminal debian-reference-it debian-reference-common debian-faq doc-debian gnome-logs gnome-system-monitor && sudo apt autoremove && sudo apt --fix-broken install
Altre informazioni: Remove preinstalled GNOME applications.
Quindi eseguire lo snapshot: sudo snapper -c root create --description "Removed the blotware"
.
Creazione di un database con Postgresql
Nel caso si utilizzasse, ecco la lista dei comandi:
sudo su postgres
postgres@pc:/home/user$ psql
postgres=# CREATE USER user SUPERUSER CREATEDB;
postgres=# CREATE DATABASE userdb WITH OWNER = user ALLOW_CONNECTIONS = true;
postgres=# ALTER USER user WITH PASSWORD 'PASSWORD';
postgres@pc:/home/user$ psql userdb
userdb=# insert into userdb (value, value) VALUES ('value1', 'value2');
Configurazioni di alcuni programmi
Per le configurazioni di VSCodium, rimando a questo articolo. Ho anche scritto un articolo su come personalizzare Firefox.
Estensioni per GNOME
Una lista di alcune estensioni:
- Forge, una valida alternativa a
pop-shell
- tilingshell
- Just Perfection: Tweak Tool to Customize GNOME Shell, Change the Behavior and Disable UI Elements
- Clipboard Indicator
- AppIndicator and KStatusNotifierItem Support: Adds AppIndicator, KStatusNotifierItem and legacy Tray icons support to the Shell
- Wallhub: Dynamic wallpapers in slideshows
- Compact Top Bar
Infine, possono tornare utili le seguenti risorse:
- awesome-gnome: un elenco curato di app, estensioni, moduli, temi e strumenti per GNOME
- Top 21 GNOME Extensions to Enhance Your Experience
- Dei dotfiles da cui prendere spunto
Configurare le estensioni
Ecco le estensioni abilitate sul mio sistema:
Queste le mie configurazioni:
pop shell
KStatusNotifierItem
Clipboard Indicator
Wallhub
Blur My Shell
Just Perfection
Backup delle configurazioni
Come scritto alla pagina How do I backup all Gnome Tweaks configuration?, la procedura é semplice. Basta infatti eseguire il comando:
dconf dump / > ~/saved_settings.dconf
Per il restore: dconf load -f / < saved_settings.dconf
Inoltre, consiglio l’applicazione SaveDesktop: Save your desktop configuration
dotfiles
I miei dotfiles si possono scaricare sulla nostra istanza Gitea