You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ublinux-init/ublinux/rc.desktop/deonly/xfce4-xfconf

32 lines
1.6 KiB

#!/bin/bash
ENABLED=yes
[ "$ENABLED" != "yes" ] && exit 0
SOURCE=/usr/lib/ublinux/os-config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0
SOURCE=${SYSCONF}/config; [ -f ${SOURCE} ] && . ${SOURCE} 2>/dev/null
SOURCE=${SYSCONF}/kiosk; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null
if [[ -n ${XFCE4_XFCONF[@]} ]]; then
for CHANNEL_PROPERTY in "${!XFCE4_XFCONF[@]}"; do
USERS=$(cut -d: -f1 <<< ${CHANNEL_PROPERTY} | tr " ,;" "\n")
# Выбрать пользователей из указанных групп %..
USERS_GROUP=$(grep "^%" <<< ${USERS} | tr -d "%" | xargs -rl getent group | cut -d: -f4 | tr "," "\n")
if [[ -z ${USERS} ]] || grep -q "^${USER}$" <<< ${USERS} || grep -q "^${USER}$" <<< ${USERS_GROUP}; then
CHANNEL=$(cut -d: -f2 <<< ${CHANNEL_PROPERTY})
PROPERTY=$(cut -d: -f3 <<< ${CHANNEL_PROPERTY})
TYPE=$(cut -d: -f1 <<< ${XFCE4_XFCONF[${CHANNEL_PROPERTY}]})
SET=$(cut -d: -f2 <<< ${XFCE4_XFCONF[${CHANNEL_PROPERTY}]})
if [[ ${TYPE,,} == "reset" ]]; then
xfconf-query --channel "${CHANNEL}" --property "${PROPERTY}" --reset --recursive
else
xfconf-query --channel "${CHANNEL}" --property "${PROPERTY}" --create --type "${TYPE}" --set "${SET}"
# Дописать для массивов, где --type и --set несколько, пример
# xfconf-query --channel "xfce4-panel" --property "/panels/panel-2/plugin-ids" --create --type "int" --type "int" --set "12" --set "14"
# Добавить условие, если --channel "xfce4-panel", то `xfce4-panel -r`
fi
fi
done
fi