You are not logged in.
We are trialing a new linux deskop build based on RHEL 8 using XFCE4 as the environment (installed via the "Xfce" dnf group, ie "dnf groupinstall Xfce"), but we've noticed something that is a bit of a showstopper, and could really use the community's help on this:
We have an environment where users will use different linux desktop stations throughout the day. These stations can have anywhere from one to four monitors attached. When a user sets up displays (Settings -> Display) as needed on multi-monitor systems -- rotating some monitors, rearranging them, etc. -- these settings follow the user as they login to different systems. This is a problem, because each linux desktop station has a different configuration.
For example, one station will have a monitor rotated 90 degrees because it is oriented in a "portrait" config. I can log in as a user and invoke Settings -> Display to orient it correctly... but when I login to a different station where all the monitors are not rotated, suddenly one of them is rotated. And of course if I fix it on the second station, then log back into the first station, now the first station doesn't have its monitor rotated. So the Display settings appear to be tied to each user, when we need them tied to the system itself.
In previous environments (MATE, for example), we could set up a default display layout for that specific system, and any user who logged in would get the displays oriented correctly. How can that be done with an XFCE4 setup?
Offline
We are trialing a new linux deskop build based on RHEL 8
Which version of Xfce is packaged with RHEL 8?
Are you using a centralized user profile? One that follows the user from station to station?
Please remember to mark your thread [SOLVED] to make it easier for others to find
--- How To Ask For Help | FAQ | Developer Wiki | Community | Contribute ---
Offline
if you can make a script specific for each station then i guess you can store the right one on each station with that station's configuration. my personal approach would be each script named for each station, and one common one that gets the station name and runs the station specific one. that way every station can have identical files. when and where to run this might be in ~/.config/autostart in each user home directory. if you'd rather not duplicate everything for each (new) user, you might need to run it before Xfce is started.
Offline
Which version of Xfce is packaged with RHEL 8?
4.16, according to xfce4-about.
Are you using a centralized user profile? One that follows the user from station to station?
Yes. Our users have NFS-mounted home directories; they have the same homedir no matter what station they log in to.
if you can make a script specific for each station then i guess you can store the right one on each station with that station's configuration. my personal approach would be each script named for each station, and one common one that gets the station name and runs the station specific one. that way every station can have identical files.
I like that idea! But:
when and where to run this might be in ~/.config/autostart in each user home directory. if you'd rather not duplicate everything for each (new) user, you might need to run it before Xfce is started.
A script seems doable in concept, but how can the display arrangement be scripted? And how can it be made permanent and/or take priority over whatever the user's .config/xfce4/xfconf files specify?
I was hoping for a way to save a system's layout somewhere to a local system after the displays have been organized once using Settings->Display, then apply ("replay"?) that config when a user logs in.
Offline
I don't have the capability to test this, so I'll throw the idea out.
You can configure monitor layouts on a system via xorg configuration files or xrandr. The issue is, that when xfsettingsd starts, it configures the display layouts dependent on saved settings. This poses the issue you are seeing with NFS-mounted home directories and multiple endpoints.
There is no runtime setting in xfce4-settings to disable/bypass/or set system defaults for monitor profiles. However, if you built the xfce4-settings package with the "--disable-xrandr" parameter, xfsettingsd will be built without display management support. Then, you could use one of the xorg config or scripted xrandr solutions to set the display layout on a system-by-system basis.
Are you able to test this suggestion?
Please remember to mark your thread [SOLVED] to make it easier for others to find
--- How To Ask For Help | FAQ | Developer Wiki | Community | Contribute ---
Offline
I'm able to test it, but adjusting monitors with xfce4-settings is very convenient. I'd rather have something where displays can be adjusted with xfce4-settings, then somehow make that permanent per-computer.
I'm going to try setting up the monitors, then copying ~/.config/xfce4/xfconf/xfce-perchannel-xml/displays.xml to /etc/xdg/xfce4/xfconf/xfce-perchannel-xml and then setting the channel as locked="*" to see if that works.
Offline
Unfortunately, xfconf seems to have selective application of locked="*" channels and properties. While forcing xfce4-panel settings with locked="*" works, it didn't work with /etc/xdg/xfce4/.....displays.xml.
Let's assume I can construct xrandr commands in a shell script that will rotate and orient displays appropriate for a certain workstation. Where would I place that script on each system such that it will execute last, after ~/.config/xfce4/xfconf/xfce-perchannel-xml/display.xml settings are applied?
if you'd rather not duplicate everything for each (new) user, you might need to run it before Xfce is started.
Can you elaborate on this? Wouldn't running Xfce apply new settings after the script had run?
Offline
[ Generated in 0.014 seconds, 7 queries executed - Memory usage: 560.67 KiB (Peak: 561.52 KiB) ]