From Fedora Project Wiki

< KDE

Line 12: Line 12:
== XDG_CONFIG_HOME ==
== XDG_CONFIG_HOME ==
<pre>
<pre>
if [ -d /data/$USER/.config ]; then
if [ -d /srv/home/$USER/.config ]; then
   XDG_CONFIG_HOME=/data/$USER/.config
   XDG_CONFIG_HOME=/srv/home/$USER/.config
   export XDG_CONFIG_HOME
   export XDG_CONFIG_HOME
fi
fi

Revision as of 18:45, 2 February 2015

Home directory on NFS (Network File System) with KDE might cause problems while desktop's IPC (Inter Process Communication) socket's are stored on networked disk and I/O-speed of network and storage itself doesn't match speeds that today's desktop systems can provide with local disk. This might appear as sluggishness and occasional hangups on desktop.

User's KDE IPC files under ~/.kde directory:

lrwxrwxrwx.  1 tuju tuju   22 Nov  5  2012 cache-wasa.netnix.ee -> /var/tmp/kdecache-tuju
lrwxrwxrwx.  1 tuju tuju   26 Feb  2 15:47 socket-wasa.netnix.ee -> /run/user/500/ksocket-tuju
lrwxrwxrwx.  1 tuju tuju   13 Nov  5  2012 tmp-wasa.netnix.ee -> /tmp/kde-tuju

Following user's environment variables can be used to change where these different IPC-files are stored and point them into local disk. To make them system-wide for every user, each setting can be put into own file and dropped into /etc/profile.d directory to get included into user's login process.

XDG_CONFIG_HOME

if [ -d /srv/home/$USER/.config ]; then
  XDG_CONFIG_HOME=/srv/home/$USER/.config
  export XDG_CONFIG_HOME
fi

XDG_CACHE_HOME

# could be more paranoid, and not accept any previously defined XDG_CACHE_HOME
if [ -z "${XDG_CACHE_HOME}" ] ; then
  XDG_CACHE_HOME="/var/tmp/xdgcache-${USER}"
  export XDG_CACHE_HOME
fi

if [ -d "${XDG_CACHE_HOME}" ]; then
  # verify existing dir is suitable
  if ! `test -G "${XDG_CACHE_HOME}" -a -w "${XDG_CACHE_HOME}"` ; then
    # else, make a new/secure one with mktemp
    XDG_CACHE_HOME="$(mktemp -d ${XDG_CACHE_HOME}-XXXXXX)"
    export XDG_CACHE_HOME
  fi
else
  mkdir -p "${XDG_CACHE_HOME}" 
fi


XDG_DATA_HOME

if [ -d /srv/home/$USER/.local/share ]; then
  XDG_DATA_HOME=/srv/home/$USER/.local/share
  export XDG_DATA_HOME
fi

KDEHOME

KDEHOME affects where user's .kde directory is located and hence where those problematic socket files are located. Setting KDEHOME makes user's KDE settings machine specific which might be problematic in environment where users move from desktop machine to another and expect to see the same, personalized desktop at each machine.

# cat USE_LOCAL_DATA.sh 

if [ -d /srv/home/$USER/.kde ]; then
  KDEHOME=/srv/home/$USER/.kde
  export KDEHOME
fi

At the same time while setting KDEHOME, user's .kde directory content should be moved into newly created local host home directory to avoid loosing any KDE settings and application data.

Disabling selinux permanently should be considered if new location does not match with default /home directory fcontext settings - which is most likely the case.

See Also