Tester Gimp 2.9.5 avec Flatpak
Flatpak (anciennement xdg-app), tout comme AppImage, est une solution visant à simplifier et uniformiser l'installation d'applications sur différentes distributions GNU/Linux. Le but est de fournir un espace cloisonné (sandbox) dans lequel s'exécute l'application, c'est une forme de virtualisation mais d'application uniquement et non d'un système complet. Cela permet donc aux utilisateurs curieux de tester les dernières versions de leurs logiciels favoris sans avoir à les compiler, ni à se soucier des dépendances.
Installation de Flatpak :
Voyons comment installer ça :
zypper install flatpak
Configuration :
Nous ajoutons ensuite les dépôts depuis lesquels nous allons par la suite installer le runtime (un environnement d'exécution virtualisé) :
wget https://sdk.gnome.org/keys/gnome-sdk.gpg
flatpak remote-add --gpg-import=gnome-sdk.gpg gnome https://sdk.gnome.org/repo/
flatpak remote-add --gpg-import=gnome-sdk.gpg gnome-apps https://sdk.gnome.org/repo-apps/
Puis installation de la plateforme, ici celle de Gnome 3.20 puisque c'est une application GTK que je souhaite installer. J'en profite pour traduire (et résumer) 2 passages de la F.A.Q. qui rassureront ceux qui n'utilisent ni Gnome comme environnement de travail, ni Fedora comme OS :
Flatpak est-il lié à Gnome ?
Non. Bien que Flatpak ait été développé par des gens impliqués depuis longtemps dans la communauté Gnome, il n'est lié à aucun environnement de bureau. En réalité, il a été conçu avec pour objectif clair de permettre la construction d'applications utilisant n'importe quel base de bibliothèques ou langage de programmation souhaités par l'auteur.
Flatpak est-il lié à Fedora ?
Non. Les développeurs ont une expérience de Fedora [...] mais Flatpak a été développé de manière à faire abstraction de la distribution et à se déployer sur n'importe quel système GNU/Linux disponible. Nous avons pris contact et discuté avec des représentants d'autres distributions très tôt dans le projet.
Installer une application :
Assez de blabla, on installe Gimp !
flatpak install gnome org.gnome.Platform 3.20
Passons maintenant à ce qui nous intéresse vraiment : l'installation des applications ! Dans cet exemple, nous allons installer Gimp dans sa version de développement " Nightly" et donc ajouter le dépôt "Nightly graphics" et sa clé :
wget http://209.132.179.2/keys/nightly.gpg
flatpak remote-add --gpg-import=nightly.gpg nightly-graphics http://209.132.179.2/repo/
Pour voir ce que contient ce dépôt :
flatpak remote-ls nightly-graphics --app
net.scribus.ScribusDevel
org.darktable.DarktableDevel
org.gimp.GimpDevel
org.gimp.GimpDevelGtk3
org.inkscape.InkscapeDevel
org.mypaint.MypaintDevel
org.telegram.TelegramDesktopDevel
Il contient quelques applications qui intéresseront les graphistes !
Installons donc Gimp :
flatpak install nightly-graphics org.gimp.GimpDevel master
Et enfin, nous pouvons en profiter :
flatpak run org.gimp.GimpDevel
Pour les utilisateurs de Gnome (et possiblement d'autres DE mais je n'ai pas testé), l'application est même ajoutée au menu des applis. Je peux donc avoir simultanément ma version stable de Gimp et celle de développement sans avoir recours à une VM ni un chroot "classique" !
Gérer les machines virtuelles distantes avec GNOME Boxes
Bien que j'utilise habituellement plutôt virt-manager pour gérer les machines virtuelles locales et distantes, j'ai voulu redonner sa chance à GNOME Boxes (paquet gnome-boxes) sur mon portable perso. L'idée est juste de pouvoir gérer et me connecter aux machines virtuelles qui sont hébergées sur mon serveur à la maison.
Comment se connecter à distance ?
Pour expliquer tout cela, je vais prendre comme exemple la configuration suivante :
- le serveur gérant les machines (hyperviseur) se nomme my_server, son IP est 192.168.1.250 et il utilise qemu + kvm ;
- la connexion se fait via SSH, sur le port 10001 avec l'utilisateur henry, celui-ci doit appartenir au groupe libvirt pour avoir les droits nécessaires à l'interaction avec le démon libvirtd et donc les machines virtuelles ;
- je pars du principe que la connexion SSH est déjà configurée entre le client et le serveur, ce n'est pas l'objet de cet article.
Il faut donc ouvrir Boxes, puis choisir « Nouveau », « Saisir une URL ». Cette dernière sera, au regard de notre configuration d'exemple :
qemu+ssh://henry@my_server:10001/system
La connexion devrait s'établir après validation et les miniatures des machines virtuelles apparaître.
Autoriser la connexion à Spice
Par défaut, le serveur Spice (qui permet, entre autres, de partager l'affichage) n'écoute que sur l'interface de loopback du serveur (IP 127.0.0.1). Vous ne pouvez donc pas vous y connecter, si vous essayez Boxes renverra une erreur.
Il faut donc configurer le serveur Spice, sur l'hyperviseur, pour qu'il écoute sur une adresse réseau accessible.
Pour cela éditez, en root et sur my_server, le fichier /etc/libvirt/qemu.conf
et chercher la ligne :
#spice_listen = "0.0.0.0"
Décommentez-la pour que Spice écoute sur toutes les interfaces réseaux disponibles ou spécifiez l'adresse IP d'une interface (ici celle de notre hyperviseur) :
spice_listen = "192.168.1.250"
Enregistrez et relancez le démon libvirtd :
systemctl stop libvirtd
systemctl start libvirtd
En cliquant sur une miniature, la VM devrait s'afficher correctement.
Configurer le pare-feu
Si vous utilisez un pare-feu sur votre serveur, il faudra penser à ouvrir les ports correspondants.
Spice écoute sur le port 5900 par défaut et ouvre autant de ports que nécessaire (si vous voulez afficher plusieurs machines virtuelles) : 5901, 5902, etc. Il faut donc prévoir, dans la configuration de votre pare-feu, l'accès à autant de ports que nécessaire.
Sur mon serveur tournant sur CentOS et avec 4 machines virtuelles, cela donne :
firewall-cmd --add-port=590{0,1,2,3}/tcp --permanent
firewall-cmd --reload
Gérer les groupes d'applications dans Gnome Shell
Dans ce post, nous allons découvrir deux façons de créer et gérer des groupes d'applications dans Gnome Shell. Bien qu'il soit plus rapide de lancer une application simplement en tapant son nom ou sa fonction puis Entrée, j'aime bien avoir mes applis correctement organisées. Dans certains cas je veux en masquer certaines (utilitaires divers de gestion des préférences), dans d'autres je veux regrouper ensemble des logiciels utilisés lors d'un même flux de travail (ex: un convertisseur audio => un utilitaire de gestion des tags => mon lecteur audio).
Graphiquement :
L'outil d'exploration de la logithèque (Logiciels) permet cela très simplement. Il suffit de le lancer, d'aller dans l'onglet "Installées" et de cliquer sur l'icône "Coché" :
Dans cet exemple, je vais créer le dossier "Musique" et y ajouter Asunder :
Un groupe "Musique" est alors créé qui contient le lanceur d'Asunder.
Pour supprimer le lanceur de ce dossier, il faut procéder de même et cliquer très logiquement sur "Supprimer du dossier". Un dossier ne contenant plus de lanceurs est supprimé automatiquement.
En ligne de commande :
Graphiquement c'est bien mignon, mais c'est pénible si on veut scripter cela, pour faire des installations multiples ou encore, en cas de réinstallation totale, pour configurer rapidement son environnement.
Grâce à gsettings
nous pouvons faire ça simplement :
Nous créons les dossiers (ils sont vides et donc invisibles) :
# Ajouter les dossiers Photo et Musique
gsettings set org.gnome.desktop.app-folders folder-children "['Utilities', 'Sundry', 'Photo', 'Musique']"
Nous y ajoutons des lanceurs :
# Ajouter des applis au dossier Photo :
gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Photo/ apps "['shotwell.desktop' ,'darktable.desktop' ,'gthumb.desktop']"
# Ajouter des applis au dossier Musique :
gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Musique/ apps "['soundconverter.desktop' ,'asunder.desktop' ,'rhythmbox.desktop']"
À ce stade nos dossiers sont créés et remplis, il reste à définir leur nom tel qu'il sera affiché (et qui peut être totalement différent du nom de "l'objet" dossier) :
# Renommer les dossiers
gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Photo/ name "Photographie"
gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Musique/ name "Audiothèque"
Il peut être nécessaire de recharger Gnome Shell, pour ce faire, ouvrir l'invite de commande avec Alt + F2, saisir rt et valider par Entrée.
Et voilà le travail :
Tags: gnome
Corriger l'erreur "No application data found" dans Gnome Software
Depuis un peu plus d'une semaine, j'ai une erreur bizarre dans le gestionnaire de logithèque GNOME, gnome-software (ou Logiciels) : aucune application n'apparaît, la recherche est impossible et j'ai le message d'erreur :
No application data found
J'ai bien pensé à une erreur de cache mais ça ne vient pas de zypper qui fonctionne, évidemment, à la perfection, ni de PackageKit. Pour résoudre ce soucis, il faut supprimer le cache app-info :
rm -rf /var/cache/app-info/
puis lancer sa reconstruction :
appstreamcli refresh --force --verbose
** (appstreamcli:22970): DEBUG: Data did not change, no cache refresh needed.**
(appstreamcli:22970): DEBUG: Forcing refresh anyway.** (appstreamcli:22970):
DEBUG: Refreshing AppStream cache** (appstreamcli:22970): DEBUG: Caches are up
to date.** (appstreamcli:22970): DEBUG: Using cached data.**
(appstreamcli:22970): DEBUG: Missing cache for language 'fr_FR', attempting to
load fresh data.** (appstreamcli:22970): DEBUG: Skipped writing cache file: No
components to serialize.AppStream cache update completed successfully.
Après cela, Logiciels devrait être content :
Enjoy !
Tags: gnome
2 petites astuces pour Gnome
Je ne pensais vraiment pas dire ça il y a quelques temps en arrière, mais j'aime bien Gnome ! C'est devenu mon bureau par défaut au boulot pour des raisons professionnelles puis à la maison. Ça a mis un peu de temps mais son mode de fonctionnement et les raccourcis sont rentrés et j'aurais du mal (tout est relatif hein) à utiliser autre chose.
Bref, je vais pas raconter ma vie avec le Gnome, juste vous faire partager deux minis scripts dont j'ai eu le besoin dans le cadre de son utilisation :
Activer/désactiver à la volée les espaces de travail sur tous les écrans ou seulement l'écran principal :
Je travaille souvent avec un écran secondaire et, parfois, j'aime naviguer entre mes espaces de travail sur l'écran principal (celui du portable) tout en conservant l'affichage du moniteur auxiliaire fixe, parfois c'est le contraire et je veux que les deux affichages se « déplacent » quand je passe d'un espace à l'autre. Pour cela, ce petit script :
#!/bin/bash
# |-------------------------------------------------------------
# | Nom : wops (Workspace on Primary Switcher
# | Description : Activer/désactiver à la volée les espaces
# | : de travail sur tous les écrans ou seulement
# | : l'écran principal
# | Auteur : Sébastien Poher <sebastien.poher@eveha.fr>
# | Mise à jour : 16/06/2016
# | Licence : GNU GLPv2 ou ultérieure
# |-------------------------------------------------------------
# |-----------------------------------------------------------
# | Définition des variables :
_SETTINGS="org.gnome.shell.overrides workspaces-only-on-primary"
# |-----------------------------------------------------------
# | Fonctions :
# |-----------------------------------------------------------
CheckState () {
_STATE=$(gsettings get org.gnome.shell.overrides workspaces-only-on-primary)
}
# |------------------------------------------------------------
# | Exécution du script :
# |------------------------------------------------------------
CheckState
echo "$_STATE"
case "$_STATE" in
"false" ) gsettings set $_SETTINGS true
_NEWSTATE="fixe" ;;
"true" ) gsettings set $_SETTINGS false
_NEWSTATE="mobile" ;;
esac
if [ $? -eq 0 ]
then
notify-send --hint=int:transient:1 -t 2 "WOPS" "Espace secondaire $_NEWSTATE"
fi
exit 0
Activer/désactiver à la volée le touchpad :
Dans la même veine, selon comment je travaille, je veux que le touchpad soit actif ou non. Dans les deux cas, je souhaite conserver le trackpad (de mon Thinkpad) actif. Je n'ai pas de touche dédiée à une désactivation matérielle, d'où ce petit script :
#!/bin/bash
# |-------------------------------------------------------------
# | Nom : touchpad
# | Description : Activer/désactiver à la volée le touchpad
# | Auteur : Sébastien Poher <sebastien.poher@eveha.fr>
# | Mise à jour : 07/04/2017
# | Licence : GNU GLPv2 ou ultérieure
# |-------------------------------------------------------------
# |-----------------------------------------------------------
# | Définition des variables :
_KEY="org.gnome.desktop.peripherals.touchpad send-events"
# |-----------------------------------------------------------
# | Fonctions :
# |-----------------------------------------------------------
CheckState () {
_STATE=$(gsettings get $_KEY)
}
# |------------------------------------------------------------
# | Exécution du script :
# |------------------------------------------------------------
CheckState
case "$_STATE" in
"'enabled'" ) gsettings set $_KEY 'disabled'
_NEWSTATE="désactivé" ;;
"'disabled'" ) gsettings set $_KEY 'enabled'
_NEWSTATE="activé" ;;
esac
if [ $? -eq 0 ]
then
notify-send --hint=int:transient:1 -t 2 "Touchpad" "Touchpad $_NEWSTATE"
fi
exit 0
Association avec un raccourci clavier :
Pour les avoir toujours sous la main, je les place dans mon $HOME/bin
et les associe avec un raccourci clavier :
- Maj + Super + W pour wops ;
- Super + T ou une touche du Thinkpad inactive pour touchpad.
EDIT 14 avril : utilisation de notify-send pour avoir une notification du changement effectif d'état
En espérant que cela puisse être utile à certains.
Configurer l'environnement GNOME à distance
Lors d'intervention sur une machine distance, il est utile de pouvoir manipuler via une simple connexion SSH les paramètres de l'environnement de bureau de l'utilisateur. Si cela peut être fait via la commande gsettings lorsqu'on travaille sur la machine en direct, il faut faire appel à dconf dans le cas d'une intervention distante.
Voici une petite procédure et quelques exemples pour ça :
Accèder à la machine en SSH et se connecter sous le compte de l'utilisateur (si on était connecté en root) :
su - prenom.nom
Avant tout, déclarer dans quel "affichage" du serveur X on travaille en préfixant chaque commande avec :
DISPLAY=:0
La syntaxe de dconf est assez simple :
Lire la valeur d'une clé :
dconf read CLÉ
Écrire une nouvelle valeur dans une clé :
dconf write CLÉ VALEUR
Afficher l'ensemble des données de la base :
dconf dump
(À piper vers less
ou à rediriger vers un fichier)
Mettre à jour la base avec les modifications apportées :
dconf update
Les CLÉS sont constituées par un chemin commençant par " / ". bash supporte l'auto-complétion pour les chemins dconf, pensez à l'utiliser. Les VALEURS doivent être encadrés par des ' ' (en plus des " ") si ce sont des mots. Les listes entre crochets ne sont pas considérées comme des mots.
Exemples d'utilisation :
Réactiver les extensions par défaut : (cette liste est un exemple hein !)
DISPLAY=:0 dconf write /org/gnome/shell/enabled-extensions \
"['alternate-tab@gnome-shell-extensions.gcampax.github.com', \
'places-menu@gnome-shell-extensions.gcampax.github.com', \
'drive-menu@gnome-shell-extensions.gcampax.github.com', \
'topIcons@adel.gadllah@gmail.com', 'chatstatus@zeten30.gmail.com', \
'applications-overview-tooltip@RaphaelRochet']"
Remettre le fond d'écran par défaut :
DISPLAY=:0 dconf write /org/gnome/desktop/background/picture-uri \
"'file:///home/prenom.nom/chemin/vers/image.jpg'"
Afficher les icônes sur le bureau :
DISPLAY=:0 dconf write /org/gnome/desktop/background/show-desktop-icons/ "'true'"
Détacher les fenêtres de dialogue de la fenêtre principale :
DISPLAY=0 dconf write /org/gnome/mutter/attach-modal-dialogs "'false'"
Afficher les boutons "Minimiser", "Maximiser", "Fermer" sur les fenêtres :
DISPLAY=:0 dconf write /org/gnome/desktop/wm/preferences/button-layout \
"'appmenu:minimize,maximize,close'"
Dans tous les cas, finir par un
DISPLAY=:0 dconf update
pour mettre à jour la base Les modifications apportées seront visibles de l'utilisateur après reconnexion à sa session.
Toutes les CLÉS disponibles dans gsettings sont disponibles dans dconf. Il faut juste penser à remplacer les "." (séparateur gsettings) par des "/" (séparateur dconf).
Tags: gnome