Внезапно я могу придумать 4 способа сделать это, но я бы не рекомендовал ни один из них!
Используйте пространства имен Linux; внутри каждого пространства имен для каждого пользователя смонтируйте файл для каждого пользователя поверх базового файла.
Создайте среду chroot для каждого пользователя с символической ссылкой базового файла на целевой файл
Запустите файловую систему на основе FUSE и смонтируйте ее поверх базового файла.
Сделайте базовый файл именованным каналом с процессом демона, обрабатывающим чтение / запись в файл для каждого пользователя.
Но все из них сложны в настройке и хрупки , и я бы их не рекомендовал. Я не буду вдаваться в подробности того, как это реализовать, потому что, если вы не можете его собрать, вы не сможете это исправить КОГДА он сломается!
В общем, вам следует обойти проблему другим способом в вашем коде (например, использовать переменные среды).
Похоже, эти решения связаны с тем, что большинство программ не компенсируют автоматически мониторы с более высоким DPI. Если бы мы оставили все как есть (без масштабирования или настроек DPI ), многие программы в конечном итоге выглядели бы крошечными на экране HiDPI. Таким образом, компенсация может быть выполнена на уровне ОС (, см. Информацию о HiDPI для Arch Linux ), но это вызывает проблему при наличии двух экранов с разной плотностью пикселей.
Настроить внешний справа:
xrandr --dpi 276 --fb 7040x3960 --output eDP-1 --mode 3200x1800 --output
DP-1 --scale 2x2 --pos 3200x0 --panning 3840x2160+3200+0
Настроить внешний слева:
xrandr --dpi 276 --fb 7040x3960 --output DP-1 --scale 2x2 --panning
-3840x2160+3200+0 --pos 0x0 --output eDP-1 --mode 3200x1800 --pos 3840x0
Если вы обнаружите, что часто переключаетесь, может быть хорошей идеей поместить эти команды в ваш.bashrc в качестве псевдонима. Например:
alias ext-config-right="xrandr --dpi 276 --fb 7040x3960 --output eDP-1 --mode
3200x1800 --output DP-1 --scale 2x2 --pos 3200x0 --panning 3840x2160+3200+0"