come configurare GNOME

This commit is contained in:
dado 2025-01-12 16:08:46 +01:00
parent b81bcccaa0
commit 8217bd8464
2 changed files with 320 additions and 102 deletions

View File

@ -561,7 +561,8 @@ GRUB_TIMEOUT_STYLE=menu
GRUB_TIMEOUT=5 GRUB_TIMEOUT=5
``` ```
Dare infine il comando: `sudo update-grub`. Dare infine il comando: `sudo update-grub`. Eseguire infime uno snapshot: `sudo snapper -c root create --description "configurato GRUB"`
## Restore del sistema ## Restore del sistema
@ -608,108 +609,9 @@ Per eliminare invece gli snapshot da 1 a 3:
sudo snapper -c myconfig delete 1-3 sudo snapper -c myconfig delete 1-3
``` ```
## Un Desktop Environment minimale (e tiling) ## GNOME
```bash Per installare e configurare GNOME, si rimanda a [questo](/posts/gnome.md) articolo.
# Install 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 pipewire pipewire-pulse upower geoclue-2.0 bash-completion zip unzip unrar eza ncdu \
htop rsync firefox profile-sync-daemon chromium udisks2-btrfs btrfs-assistant resolvconf
# Flatpak
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
flatpak install flathub com.github.tchx84.Flatseal io.github.vikdevelop.SaveDesktop
#flatpak install flathub org.gnome.Epiphany io.freetubeapp.FreeTube im.dino.Dino io.github.kukuruzka165.materialgram org.signal.Signal com.github.tchx84.Flatseal io.github.vikdevelop.SaveDesktop
#flatpak override --user --env=SIGNAL_PASSWORD_STORE=gnome-libsecret --env=SIGNAL_START_IN_TRAY=1 org.signal.Signal
```
Abbiamo installato una versione minimale di GNOME, ma possiamo disinstallare ancora qualche applicativo inutile:
```bash
sudo apt remove totem gnome-weather yelp baobab debian-reference-it debian-reference-common debian-faq doc-debian gnome-logs && sudo apt autoremove && sudo apt --fix-broken install
```
Altre informazioni: [Remove preinstalled GNOME applications](https://unix.stackexchange.com/questions/691386/remove-preinstalled-gnome-applications)
### Fingerprint authentication
[fingerprint authentication](https://wiki.debian.org/SecurityManagement/fingerprint%20authentication)
```bash
sudo apt install fprintd libpam-fprintd
sudo pam-auth-update
```
Dalle impostazioni, registrare l'impronta.
### Network Manager
Nel caso la rete non funzionasse, commentare qualsiasi cosa nel file `/etc/network/interfaces`, ad eccezione delle righe:
```bash
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
```
Riavviare il servizio: `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:
```bash
cat /etc/NetworkManager/NetworkManager.conf
[main]
plugins=ifupdown,keyfile
[ifupdown]
managed=true
```
Ora tutto dovrebbe funzionare senza problemi. Possiamo quindi eseguire uno snapshot: `sudo snapper -c root create --description "debian SID GNOME minimal edition"`
### Estensioni per GNOME
Una lista di alcune estensioni:
- [Forge](https://extensions.gnome.org/extension/4481/forge/)/[Pop Shell](https://github.com/pop-os/shell): a tiling window manager for GNOME (qui le [scorciatoie predefinite](https://support.system76.com/articles/pop-keyboard-shortcuts/))
![pop_shell](/images/debian/pop_shell.png)
- [tilingshell](https://github.com/domferr/tilingshell)
- [Gnome 4x UI Improvements](https://extensions.gnome.org/extension/4158/gnome-40-ui-improvements/): Tunes gnome 4x Overview UI to make it more usable
- [Removable Drive Menu](https://extensions.gnome.org/extension/7/removable-drive-menu/)
- [Just Perfection](https://extensions.gnome.org/extension/3843/just-perfection/): Tweak Tool to Customize GNOME Shell, Change the Behavior and Disable UI Elements
- [Clipboard Indicator](https://extensions.gnome.org/extension/779/clipboard-indicator/)
- [AppIndicator and KStatusNotifierItem Support](https://extensions.gnome.org/extension/615/appindicator-support/): Adds AppIndicator, KStatusNotifierItem and legacy Tray icons support to the Shell
- [Wallhub](https://extensions.gnome.org/extension/6661/wallhub/): Dynamic wallpapers in slideshows
- [vertical-workspaces](https://github.com/G-dH/vertical-workspaces)
- [Compact Top Bar](https://extensions.gnome.org/extension/5669/compact-top-bar/)
- [awesome-gnome](https://github.com/Kazhnuz/awesome-gnome): a curated list of awesome apps, extensions, modules, themes and tools for the GNOME Desktop Environment
- [Top 21 GNOME Extensions to Enhance Your Experience](https://itsfoss.com/best-gnome-extensions/)
- Dei [dotfiles](https://github.com/felipe-juan/dotfiles) da cui prendere spunto
![debian_gnome](/images/debian/debian_gnome.png)
![debian_gnome](/images/debian/debian_gnome1.png)
![debian_gnome](/images/debian/debian_gnome2.png)
### Backup delle configurazioni
- Come scritto alla pagina [How do I backup all Gnome Tweaks configuration?](https://askubuntu.com/questions/1056386/how-do-i-backup-all-gnome-tweaks-configuration), eseguire il seguente comando:
```bash
cd ~
dconf dump / > ~/saved_settings.dconf
```
- Per il restore: `dconf load -f / < saved_settings.dconf`
- Inoltre, consigliata l'applicazione [SaveDesktop: Save your desktop configuration](https://flathub.org/apps/io.github.vikdevelop.SaveDesktop)
## Spiral Linux ## Spiral Linux

View File

@ -0,0 +1,316 @@
---
title: Come installare e personalizzare GNOME
date: 2025-01-12
description: GNOME offre un'interfaccia utente minimale, moderna e personalizzabile. In questo articolo, mostreremo come installare GNOME su Debian e come modificarne l'aspetto e le funzionalità attraverso l'uso di qualche semplice estensione. Inoltre, discuteremo l'importanza del backup delle impostazioni, fornendo le istruzioni necessarie per creare un ambiente di lavoro facilmente riproducibile.
tags:
- debian
- linux
- gnome
- customization
---
## Un Desktop Environment minimale (e tiling)
Una volta installato Debian, come [precedentemente descritto](/posts/debian_btrfs.md), 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.
### ## ufw
Configurare il firewall
```bash
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:
```bash
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:
```bash
### 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:
```bash
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
```
Riavviare il servizio: `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:
```bash
cat /etc/NetworkManager/NetworkManager.conf
[main]
plugins=ifupdown,keyfile
[ifupdown]
managed=true
```
#### Randomizzare il mac-address
Creare il seguente file:
```bash
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](https://privsec.dev/posts/linux/desktop-linux-hardening/), con diversi consigli.
#### DNS
Per aggiornare i dns di predefiniti di sistema, procedere coi seguenti passaggi:
```bash
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`):
```bash
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](https://github.com/pop-os/shell), in modo da avere un sistema tiling, simile a `sway` o `i3`:
```bash
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](https://support.system76.com/articles/pop-keyboard-shortcuts/).
### Altri programmi utili
Ora, alcune utilità di sistema, suddivise per categoria:
```bash
### Backup
sudo apt install mdadm borgbackup syncthing rsync libnotify-bin screen
### Browser
sudo apt install profile-sync-daemon chromium
### 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](https://blog.nightly.mozilla.org/2023/10/30/introducing-mozillas-firefox-nightly-deb-packages-for-debian-based-linux-distributions/), che riporto:
```bash
# 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:
```bash
### 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:
```bash
### System
sudo apt install smartmontools hw-probe lshw multitail htop openssh-server dnsutils speedtest-cli ipcalc iptraf-ng nmap network-manager-openvpn
```
Nuove icone e font personalizzati:
```bash
### 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
```
Interessante, per il mirror dello schermo del cellulare sul proprio pc:
```bash
### 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:
```bash
sudo apt install hugo openjdk-21-jre postgresql
```
### git
Per configurare git, se si utilizza:
```bash
git config --global user.email 'user@mail.me'
git config --global user.name 'user'
```
Infine, avviamo i vari **servizi**: `systemctl --user enable --now syncthing && sudo systemctl enable --now ssh && systemctl --user enable --now psd`
### Flatpak
Per le applicazioni grafiche, prediligo l'uso dei pacchetti flatpak, facili da installare e da backuppare. Una lista di programmi che utilizzo, suddivisi per categoria:
```bash
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, torrent e altri programmi multimediali
io.freetubeapp.FreeTube org.libreoffice.LibreOffice com.vscodium.codium com.github.hugolabe.Wike app.drey.Dialect de.haeckerfelix.Fragments
### Nextcloud
com.nextcloud.desktopclient.nextcloud
### Lettura
com.github.johnfactotum.Foliate io.gitlab.news_flash.NewsFlash
flatpak override --user --env=SIGNAL_PASSWORD_STORE=gnome-libsecret --env=SIGNAL_START_IN_TRAY=1 org.signal.Signal
```
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"`.
### 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`:
```bash
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
```
### Fingerprint authentication
Nel caso il proprio laptop o pc disponesse di un lettore di impronte digitali, per configuralo bisogna innanzitutto installare i seguenti pacchetti:
```bash
sudo apt install fprintd libpam-fprintd
sudo pam-auth-update
```
Dalle impostazioni, registrare l'impronta. Per maggiori informazioni: [fingerprint authentication](https://wiki.debian.org/SecurityManagement/fingerprint%20authentication).
## Rimozione del blotware
Una lista di programmi preinstallati, ma che possono essere tranquillamente rimossi:
```bash
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](https://unix.stackexchange.com/questions/691386/remove-preinstalled-gnome-applications).
Quindi eseguire lo snapshot: `sudo snapper -c root create --description "Removed the blotware"`.
### Creazione di un database con Postgresql
```bash
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 film (value, value) VALUES ('value1', 'value2');
```
### Estensioni per GNOME
Una lista di alcune estensioni:
- [Forge](https://extensions.gnome.org/extension/4481/forge/), una valida alternativa a `pop-shell`
- [tilingshell](https://github.com/domferr/tilingshell)
- [Just Perfection](https://extensions.gnome.org/extension/3843/just-perfection/): Tweak Tool to Customize GNOME Shell, Change the Behavior and Disable UI Elements
- [Clipboard Indicator](https://extensions.gnome.org/extension/779/clipboard-indicator/)
- [AppIndicator and KStatusNotifierItem Support](https://extensions.gnome.org/extension/615/appindicator-support/): Adds AppIndicator, KStatusNotifierItem and legacy Tray icons support to the Shell
- [Wallhub](https://extensions.gnome.org/extension/6661/wallhub/): Dynamic wallpapers in slideshows
- [Compact Top Bar](https://extensions.gnome.org/extension/5669/compact-top-bar/)
Infine, possono tornare utili le seguenti risorse:
- [awesome-gnome](https://github.com/Kazhnuz/awesome-gnome): un elenco curato di app, estensioni, moduli, temi e strumenti per GNOME
- [Top 21 GNOME Extensions to Enhance Your Experience](https://itsfoss.com/best-gnome-extensions/)
- Dei [dotfiles](https://github.com/felipe-juan/dotfiles) da cui prendere spunto
![pop_shell](/images/debian/pop_shell.png)
![debian_gnome](/images/debian/debian_gnome.png)
![debian_gnome](/images/debian/debian_gnome1.png)
![debian_gnome](/images/debian/debian_gnome2.png)
### Backup delle configurazioni
Come scritto alla pagina [How do I backup all Gnome Tweaks configuration?](https://askubuntu.com/questions/1056386/how-do-i-backup-all-gnome-tweaks-configuration), la procedura é semplice. Basta infatti eseguire il comando:
```bash
cd ~
dconf dump / > ~/saved_settings.dconf
```
Per il restore: `dconf load -f / < saved_settings.dconf`
Inoltre, consiglio l'applicazione [SaveDesktop: Save your desktop configuration](https://flathub.org/apps/io.github.vikdevelop.SaveDesktop)