How can I keep my program groups on desktop?
It took me a while, but I guess I found what you are looking for. I looked for something similar but somewhat different, however that solution works for us both.
You need to create a dconf-Database. To do that, you need access to the folders located in /etc/dconf/
:
Create the database by creating the following file:
sudo nano /etc/dconf/profile/user
with the following content:
user-db:user
system-db:local
This shows gnome, where your settings are stored.
Next define, what your profile looks like. To do so create the following folder and file
sudo mkdir /etc/dconf/db/local.d
sudo nano /etc/dconf/db/local.d/my_style
and put something like this in:
[org/gnome/desktop/app-folders]
folder-children=['myfolder']
[org/gnome/desktop/app-folders/folders/myfolder]
name='Preferences'
apps=['app1.desktop', 'app2.desktop']
[org/gnome/shell]
app-picker-layout=[{'firefox.desktop': <{'position': <0>}>,'myfolder': <{'position': <1>}>}]
Then put a lock on these settings to keept the changes (however then they cannot be changed)
sudo mkdir /etc/dconf/db/local.d/locks
sudo nano /etc/ dconf/db/local.d/locks/mystyle
with the following content:
/org/gnome/desktop/app-folders/folder-children
/org/gnome/desktop/app-folders/folders/myfolder/name
/org/gnome/desktop/app-folders/folders/myfolder/apps
/org/gnome/shell/app-picker-layout
Finally reload your dconf:
sudo dconf update
This will keep the changes alive for any user logging in. If you want to keep the changes only for you, make sure the environment variable DCONF_PROFILE is set to a profile defined by you. Then you can skip the first step and just name the db like your DCONF_PROFILE. (local
is assigned to all users here. You need to skip the step system-db:local
to make these changes not for the system, but only for you. Setting the DCONF_PROFILE variable should happen right after logging in to have any effect.)
If you are not allowed to do that on your system, you could run a script on startup doing exactly that.
gsettings set org.gnome.desktop.app-folders folder-children "['myfolder']"
gsettings set org.gnome.desktop.app-folders.folders.myfolder name 'Preferences'
gsettings set org.gnome.desktop.app-folders.folders.myfolder apps "['app1.desktop', 'app2.desktop']"
gsettings set org.gnome.shell app-picker-layout "[{'firefox.desktop': <{'position': <0>}>,'myfolder': <{'position': <1>}>}]"
However I do not know if the autostart-programs for ad-users are stored ;).