Anahtar, DBUS_SESSION_BUS_ADDRESS
ortam değişkenini belirlemektir.
Bu ileti dizisinde Aşağıdaki kodları buldum. Bu, bu değişkenin doğru değerini elde etmenize yardımcı olur. Dbus ayarlarını değiştirmek istediğimiz masaüstünde çalışan işlemin adını gerektirir. (Paralel olarak 1'den fazla çalışan grafiksel oturum olabilir). Haydi discover_session_bus_address.sh
#!/bin/bash
# Remember to run this script using the command "source ./filename.sh"
# Search these processes for the session variable
# (they are run as the current user and have the DBUS session variable set)
compatiblePrograms=( nautilus kdeinit kded4 pulseaudio trackerd )
# Attempt to get a program pid
for index in ${compatiblePrograms[@]}; do
PID=$(pidof -s ${index})
if [[ "${PID}" != "" ]]; then
break
fi
done
if [[ "${PID}" == "" ]]; then
echo "Could not detect active login session"
return 1
fi
QUERY_ENVIRON="$(tr '. ./discover_session_bus_address.sh unity
gsettings set org.compiz.core:/org/compiz/profiles/unity/plugins/core/ hsize "4"
' '\n' < /proc/${PID}/environ | grep "DBUS_SESSION_BUS_ADDRESS" | cut -d "=" -f 2-)"
if [[ "${QUERY_ENVIRON}" != "" ]]; then
export DBUS_SESSION_BUS_ADDRESS="${QUERY_ENVIRON}"
echo "Connected to session:"
echo "DBUS_SESSION_BUS_ADDRESS=${DBUS_SESSION_BUS_ADDRESS}"
else
echo "Could not find dbus session ID in user environment."
return 1
fi
return 0
Bu komut dosyası ile, unity
işleminin masaüstünde çalıştırıldığını varsayarsak, aşağıdaki ayarları yapabiliriz:
%pre%
Ve işler iyi çalışmalı.