System-wide configuration of Ptyxis terminal

I’m trying to configure the terminal (Ptyxis) on a system-wide basis. I.e. when a new user is created and they open the terminal for the first time, the configuration should be applied. Specifically, I want to change the default theme (because the blue on dark background has very low contrast).

I have recently learned that dconf-based applications can still be configured via text files by placing them in /etc/dconf/db/local.d/. This works great for most apps I need to configure, but not Ptyxis. The theme is configured on a per-profile basis. The first profile is only created when the user opens the application for the first time. A profile is referred to with some kind of UUID. I’ve tried dconf dump and put the result in the above mentioned location:

[org/gnome/Ptyxis]
default-profile-uuid='12078f8f9be68b49e10b597568a72c1c'
profile-uuids=['12078f8f9be68b49e10b597568a72c1c']

[org/gnome/Ptyxis/Profiles/12078f8f9be68b49e10b597568a72c1c]
palette='One Half Black'

So, I’m pretending there already is a profile with a specific UUID. This does not seem to work.

Does anybody know how these profiles are generated, so I could do that in a scripted fashion myself before any user actually opens the app?

I would like to mention that gnome-terminal also has the same profile UUID system.

This doesn’t provide a solution, but gnome-terminal has had this system for a longer time, so maybe someone already solved it.

2 Likes

Hello there! I ran into this while chasing what I thought was a bug from upgrading to Ubuntu 25.10, on a surface pro. I mean who knows how many bugs I was experiencing with that setup, but it resulted in a lot of learning for me! So I thought i’d pass the details along.

The dconf can be updated almost exactly like you are describing and a few others ways depending on how you installed Ptyxis - the exact locations and route you take to get there might be different from mine. (i.e. distro packaging or flathub or nightly flatpak as the README calls out).

  • I was able to ‘dump’ the dconf to a file, completely ‘reset’ the settings, and then ‘load’ the file again to bring the profiles back through a few lines in the terminal. I’m new to changing the settings in dconf, I wound up dumping the dconf keys and values into a file again because I was unsure about the naming / schema / formatting / etc. etc. and i’m not sure if they are documented or easy to view otherwise.

  • If it helps to know, I also found that I was able to use the ‘dconf commands’ to create a profile from scratch.

  • Also, you can use ‘gsetting commands’, which is probably preferred? And it is mentioned in the README file for setting opacity!

Basically that UUID just needs to be in the right 2 or 3 places if you want the profile to actually show up as a selectable option, and if you want it to be the ‘default’ profile that is used when a user starts a Ptyxis session. Also note that it will take any string for the UUID, as long as the schema is being followed.

for example:


; side note - make sure to keep the right settings in the right "[]" if writing a file, or "path" if using a script like below!

[/]

default-profile-uuid='dev-testing'

profile-uuids=['dev-testing','98b8e52b9af866698178242d6907dd24']

; ...other options

[Profiles]

default-profile-uuid='dev-testing'

; ...other options

[Profiles/'dev-testing']

label='[DEV] Testing - label'

; ...other options

[Profiles/98b8e52b9af866698178242d6907dd24]

bold-is-bright=true

label='The other profile!'

palette='Everforest'

; ....more other options


# to dump the stored dconf settings to a file:

dconf dump /org/gnome/Ptyxis/ > ~/ptyxis-dconf-backup.ini

# to restore from that file:

dconf dump /org/gnome/Ptyxis/ > ~/ptyxis-dconf-backup.ini


# set the label that is visible for the profile you want to create - without this, you might wind up with a bunch of "unknown profiles" listed

dconf write /org/gnome/Ptyxis/Profiles/dev-testing/label "'[DEV] Testing - label'"

# to "set the UUIDs of available profiles" - if they aren't listted here they will not show up as an option!

dconf write /org/gnome/Ptyxis/profile-uuids "['dev-testing','98b8e52b9af866698178242d6907dd24']"

# to set the "default profile" - "UUID"

dconf write /org/gnome/Ptyxis/Profiles/default-profile-uuid "'dev-testing'"

An example from the README (for setting opacity):


# gsettings....

gsettings set org.gnome.Ptyxis.Profile:/org/gnome/Ptyxis/Profiles/$UUID/ opacity .85

# this is the same as hitting dconf key....

/org/gnome/Ptyxis/Profiles/$UUID/opacity

Anyways, hope this leads to decent solution for you if you are still testing configurations.