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:

gnome_de

gnome_de

gnome_de

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 atop nmon

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:

tweaks

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:

Infine, possono tornare utili le seguenti risorse:

Configurare le estensioni

Ecco le estensioni abilitate sul mio sistema:

gnome_extensions

gnome_system_extensions

Queste le mie configurazioni:

  • pop shell

pop_shell

  • KStatusNotifierItem

KStatusNotifierItem

  • Clipboard Indicator

Clipboard Indicator

  • Wallhub

Wallhub

  • Blur My Shell

blur_my_shell

blur_my_shell

blur_my_shell

blur_my_shell

blur_my_shell

  • Just Perfection

just_perfection

just_perfection

just_perfection

just_perfection

just_perfection

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

Inserisci l'indirizzo della tua istanza


Altri post come questo

Debian SID con btrfs e snapper per una maggiore stabilità

2024-11-10 | #btrfs #debian #distro #linux #snapper #snapshot

Debian SID è la scelta ideale per gli utenti che desiderano immergersi nel cuore dello sviluppo di Debian, ma la sua natura instabile richiede un approccio proattivo alla gestione del sistema. In questo articolo, scopriremo come Btrfs e Snapper possano trasformare l'esperienza con Debian SID, offrendo funzionalità avanzate di snapshot e ripristino, e come GRUB-BTRFS possa facilitare la navigazione tra le diverse versioni del sistema.

Continua a leggere 