Come modificare le preferenze del profilo gnome-terminal usando dconf o gsettings?


16

Dopo l'aggiornamento da Ubuntu 14.10 a 15.10, sembra che la modifica delle gnome-terminalpreferenze usando gconftool-2non sia più supportata. Immagino che questo problema sia legato alla migrazione da Gconf a GSettings .

Ora, vorrei cambiare alcuni dei miei vecchi script (poiché sono rotti in Ubuntu 15.10) per lavorare con dconf/ gesettingsinvece di gconftool-2.

Ad esempio, su Ubuntu 14.10 ( gnome-terminalversione 3.6.2) ho potuto impostare il numero di colonne nel Defaultprofilo usando:

$ 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

Ora, in Ubuntu 15.10, digitando:

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

profiles:/
schema-version

mentre

$ gsettings list-relocatable-schemas | grep Terminal

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

L'output sopra mi confonde:

Sempre in Ubuntu 15.10 (utilizzando la gnome-terminalversione 3.16.2), se eseguo:

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

Ottengo:

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

quindi esiste una default-size-columnschiave che potrebbe (?) corrispondere alla default_size_columnschiave in Ubuntu 14.10, ma non esiste una use-custom-default-sizechiave corrispondente alla use_custom_default_sizechiave in Ubuntu 14.10. Anche questo mi confonde.

Inoltre, se provo a correre:

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

e aprire una nuova gnome-terminalimpostazione di default-size-columnssembra non avere alcun effetto poiché il terminale si apre ancora con 80 colonne ..


Si prega di aggiornare prima al 15.10, poiché sia ​​il 14.10 che il 15.04 hanno già raggiunto la fine del ciclo di vita.
Byte Commander

@ByteCommander Ho aggiornato alla 15.10 ora, e la domanda rimane la stessa 15.10 del 15.04. Ho anche trovato una soluzione che vorrei pubblicare. Come posso riaprire questa domanda, così posso pubblicare la soluzione?
Håkon Hægland,

Risposte:


19

La sintassi da utilizzare con il gsettingscomando è descritta nelle Domande frequenti sul terminale GNOME .

Per prima cosa devi scoprire l'identificatore del profilo che desideri modificare. Ad esempio, l'identificatore del gnome-terminalprofilo predefinito può essere ottenuto dallo schema org.gnome.Terminal.ProfilesList.

Quindi modificare le chiavi desiderate del percorso /org/gnome/terminal/legacy/profiles:/:UUID/dello schema org.gnome.Terminal.Legacy.Profile:per questo profilo.

Nota i due punti nel percorso sopra. Non funzionerà se vengono omessi.

Ecco uno script che utilizza quanto sopra per impostare default-size-columnsil profilo predefinito:

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

1
Bello che tu abbia trovato la soluzione da solo. Non dimenticare di accettare la tua risposta.
Byte Commander

1
In realtà, puoi specificare il numero del profilo anziché il suo ID, quindi il comando sarebbe solo:gsettings set org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:0/ default-size-columns 150
Anatoli

1
O ancora più breve:gsettings set org.gnome.Terminal.Legacy.Profile:/:0/ default-size-columns 150
Anatoli,

La tua risposta mi ha salvato la giornata! Come hai scoperto la sintassi di "org.gnome.Terminal.Legacy.Profile: / org / gnome / terminal / legacy / profiles: /: ... /"? L'hai trovato nella documentazione? Ciò che mi ha bloccato è che non ho capito che "Profilo" dovrebbe essere seguito da "/ org / gnome / ...".
Yaobin,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.