Comment changer les préférences de profil de gnome-terminal en utilisant dconf ou gsettings?

16

Après la mise à niveau du formulaire Ubuntu 14.10 vers 15.10, il semble que la modification des gnome-terminalpréférences à l'aide gconftool-2ne soit plus prise en charge. Je suppose que ce problème est lié à la migration de Gconf vers GSettings .

Maintenant, je voudrais changer certains de mes anciens scripts (car ils sont cassés dans Ubuntu 15.10) pour fonctionner avec dconf/ gesettingsau lieu de gconftool-2.

Par exemple, sur Ubuntu 14.10 ( gnome-terminalversion 3.6.2), je pouvais définir le nombre de colonnes dans le Defaultprofil en utilisant:

$ gconftool-2 --set /apps/gnome-terminal/profiles/Default/default_size_columns \
            --type=int 140
$ gconftool-2 --set /apps/gnome-terminal/profiles/Default/use_custom_default_size \
            --type=bool true

Maintenant, dans Ubuntu 15.10, en tapant:

$ dconf list /org/gnome/terminal/legacy/

donne

profiles:/
schema-version

tandis que

$ gsettings list-relocatable-schemas | grep Terminal

donne

org.gnome.Terminal.SettingsList
org.gnome.Terminal.Legacy.Profile
org.gnome.Terminal.Legacy.Keybindings

La sortie ci-dessus me confond:

Toujours dans Ubuntu 15.10 (en utilisant la gnome-terminalversion 3.16.2), si je lance:

$ gsettings list-keys org.gnome.Terminal.Legacy.Profile:/ | grep default

Je reçois:

default-size-rows
default-show-menubar
default-size-columns

il y a donc une default-size-columnsclé qui pourrait (?) correspondre à la default_size_columnsclé dans Ubuntu 14.10, mais il n'y a pas de use-custom-default-sizeclé correspondant à la use_custom_default_sizeclé dans Ubuntu 14.10. Cela m'embrouille aussi.

De plus, si j'essaie de courir:

$ gsettings set org.gnome.Terminal.Legacy.Profile:/ default-size-columns 150

et en ouvrir un nouveau dont gnome-terminalle paramètre default-size-columnssemble n'avoir aucun effet puisque le terminal s'ouvre toujours avec 80 colonnes.

Håkon Hægland
la source
Veuillez d'abord passer à la version 15.10, car les versions 14.10 et 15.04 ont déjà atteint la fin de leur durée de vie.
Byte Commander
@ByteCommander J'ai maintenant mis à jour vers 15.10, et la question reste la même à 15.10 que pour 15.04. J'ai aussi trouvé une solution, que j'aimerais poster. Comment rouvrir cette question pour que je puisse publier la solution?
Håkon Hægland

Réponses:

19

La syntaxe à utiliser avec la gsettingscommande est décrite dans la foire aux questions du terminal GNOME .

Vous devez d'abord trouver l'identifiant du profil que vous souhaitez modifier. Par exemple, l'identifiant du gnome-terminalprofil par défaut peut être obtenu à partir du schéma org.gnome.Terminal.ProfilesList.

Modifiez ensuite les clés de chemin /org/gnome/terminal/legacy/profiles:/:UUID/de schéma souhaitées org.gnome.Terminal.Legacy.Profile:pour ce profil.

Notez les deux points dans le chemin ci-dessus. Cela ne fonctionnera pas s'ils sont omis.

Voici un script qui utilise ce qui précède pour définir default-size-columnsle profil par défaut:

profile=$(gsettings get org.gnome.Terminal.ProfilesList default)
profile=${profile:1:-1} # remove leading and trailing single quotes
gsettings set "org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:$profile/" default-size-columns 150
Håkon Hægland
la source
1
Cool que vous ayez trouvé la solution vous-même. N'oubliez pas d'accepter votre propre réponse.
Byte Commander
1
En fait, vous pouvez spécifier le numéro du profil au lieu de son ID, donc la commande serait juste:gsettings set org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:0/ default-size-columns 150
Anatoli
1
Ou encore plus court:gsettings set org.gnome.Terminal.Legacy.Profile:/:0/ default-size-columns 150
Anatoli
Votre réponse m'a sauvé la journée! Comment avez-vous découvert la syntaxe de "org.gnome.Terminal.Legacy.Profile: / org / gnome / terminal / legacy / profiles: /: ... /"? L'avez-vous trouvé dans la documentation? Ce qui m'a bloqué, c'est que je ne savais pas que "Profil" devait être suivi de "/ org / gnome / ...".
yaobin