You are not logged in.
I am trying to deploy RHEL 8.6 (AlmaLinux 8.6, specifically) + XFCE 4.16 as a new desktop environment for hundreds of users that have NFS home directories with .config/xfce4 customizations, sometimes with configurations from 12+ years ago. These custom settings need to be overridden, as they either force menu entries we don't want, or are so old that they outright break xfce-panel. However, I've been unsuccessful in forcing xfce-panel entries and having user settings ignored -- the user settings always take precedence.
I tried Kiosk mode by creating /etc/xdg/xfce4/kiosk/kioskrc with the following contents:
[xfce4-panel]
CustomizePanel=%systems,%operations
...but this failed. I also tried editing /etc/xdg/user-dirs.conf to change enabled=false but that also didn't work. Finally, I tried locking entire channels, for example:
<channel name="xfce4-panel" version="1.0" locked="*" unlocked="root">
...and yet the user settings were the ones taken every time. The only way I could get the user settings to not be used was to outright delete ~user/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml , which is not a practical solution moving forward.
(All changes were made while xfconf was not running, so this was not a case of xfconf reverting my changes or not picking them up.)
What am I missing?
Offline
are you replacing user files in ~/.config at a time when those users have no processes running on the individual desktop machines? users not being logged in is not good enough. rebooting the file server is not good enough. if you have a means to reboot every desktop, do that before changing the files. then you need to replace every file that has settings to be changed on every user.
NFS buffering may affect things, so i suggest also rebooting the file server after all the desktops are rebooted, just to be sure.
when a user logs out, a few user processes persist in the background holding changed values for settings and can end up "saving" the original values back, even though the user never changed any setting, replacing your setting changes. these processes probably run only on the desktops.
Offline
if a user can use any desktop, they can encounter problems with settings reverting back to the previous value. this would be the result of conflicting user background processes on multiple desktops.
Offline
The tests were performed with a single user not logged in anywhere else that would also be running xfconf. They were also performed with a user local to that specific system, with the same results, so NFS shared home directories were not the cause of this.
I'm looking for confirmation that setting
locked="*"
on a channel as described above is the correct syntax, and/or why it doesn't work, and/or what the proper way is to configure xfce4 such that a local system's settings always override user settings.
Last edited by jleonard (2022-06-03 15:56:41)
Offline
Per Xfconf's official documentation:
Only one of the two attributes may be specified for a particular channel or property. If both are present, the “unlocked” attribute is used, and the “locked” attribute is ignored.
So you need to omit the locked property.
Remember to edit the subject of your topic to include the [SOLVED] tag once you're satisfied with the answers or have found a solution (in which case, don't forget to share it as well), so that other members of the community can quickly refer to it and save their time. Pretty please!
Offline
That's not what the documentation says; it says that if both are present, the unlocked attribute is used, so there should be no reason to remove locked.
I tried with only locked="*" and that did not work. I just now tried with only unlocked="root" and that seems to have worked after a few tests.
If only the unlocked attribute works, the documentation should be updated. Using only "locked" does not work, and having both "locked" and "unlocked" does not behave as the documentation suggests.
Offline
[ Generated in 0.010 seconds, 7 queries executed - Memory usage: 541.17 KiB (Peak: 542.45 KiB) ]