parent
7a264efc82
commit
d0e5749744
@ -1,21 +1,67 @@
|
|||||||
#!/bin/sh
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
ENABLED=yes
|
ENABLED=yes
|
||||||
[[ ${ENABLED} == "yes" ]] || exit 0
|
[[ ${ENABLED} == yes ]] || exit 0
|
||||||
|
|
||||||
XDG_DESKTOP_DIR="$HOME/Рабочий стол"
|
SOURCE=/usr/lib/ublinux/functions; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null
|
||||||
|
SOURCE=/usr/lib/ublinux/default; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null
|
||||||
. /usr/lib/ublinux/default
|
|
||||||
SOURCE=${SYSCONF}/config; [ -f ${SOURCE} ] && . ${SOURCE} 2>/dev/null
|
SOURCE=${SYSCONF}/config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null
|
||||||
|
SOURCE=${SYSCONF}/kiosk; [ -f ${SOURCE} ] && . ${SOURCE} 2>/dev/null
|
||||||
[ -z "$PLACEONDESKTOP" ] && exit 0
|
|
||||||
[ -f ~/.config/.desktopinitialized ] && exit 0
|
|
||||||
. ~/.config/user-dirs.dirs
|
declare -A APPDESKTOP_PLACEONDESKTOP APPDESKTOP_PLACEONDESKTOP_INIT
|
||||||
[ -d "$XDG_DESKTOP_DIR" ] || mkdir -p "$XDG_DESKTOP_DIR"
|
|
||||||
echo "$PLACEONDESKTOP" | tr ',;' \\n | while read a ;do
|
place_on_desktop_ubinstall(){
|
||||||
DF=$(find /usr/share/applications -type f -name $a.desktop )
|
[[ $(cmdline_value ub.sgnfiles) =~ .*"-iso.sgn" ]] && APPDESKTOP_PLACEONDESKTOP+=",${UBINSTALL_DESKTOP}"
|
||||||
[ -f "$DF" ] && cp "$DF" "$XDG_DESKTOP_DIR"
|
}
|
||||||
grep "#!/usr/bin/env xdg-open" "$XDG_DESKTOP_DIR"/$a.desktop || sed -i 1s%^%'\#\!/usr/bin/env xdg-open\n'% "$XDG_DESKTOP_DIR"/$a.desktop
|
|
||||||
chmod 755 "$XDG_DESKTOP_DIR"/$a.desktop
|
place_on_desktop_init(){
|
||||||
done
|
[[ -f ${HOME}/.config/.desktopinitialized ]] && return 0
|
||||||
touch ~/.config/.desktopinitialized
|
if [[ -n ${APPDESKTOP_PLACEONDESKTOP_INIT[@]} ]]; then
|
||||||
|
for SELECT_USERS_GROUPS in "${!APPDESKTOP_PLACEONDESKTOP_INIT[@]}"; do
|
||||||
|
APPDESKTOP_PLACEONDESKTOP[${SELECT_USERS_GROUPS}]+=",${APPDESKTOP_PLACEONDESKTOP_INIT[${SELECT_USERS_GROUPS}]}"
|
||||||
|
touch ${HOME}/.config/.desktopinitialized
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
place_on_desktop(){
|
||||||
|
copy_desktop(){
|
||||||
|
local APPDESKTOP_PLACEONDESKTOP="$1"
|
||||||
|
APPDESKTOP_PLACEONDESKTOP=${APPDESKTOP_PLACEONDESKTOP//.desktop/}
|
||||||
|
APPDESKTOP_PLACEONDESKTOP=${APPDESKTOP_PLACEONDESKTOP//;/,}; APPDESKTOP_PLACEONDESKTOP=${APPDESKTOP_PLACEONDESKTOP//,,/,}
|
||||||
|
[[ ${APPDESKTOP_PLACEONDESKTOP:0:1} == ',' ]] && APPDESKTOP_PLACEONDESKTOP=${APPDESKTOP_PLACEONDESKTOP:1}
|
||||||
|
[[ ${APPDESKTOP_PLACEONDESKTOP} =~ ','$ ]] && APPDESKTOP_PLACEONDESKTOP=${APPDESKTOP_PLACEONDESKTOP%*,}
|
||||||
|
find /usr/share/applications -type f $(awk 'NR > 1 {print "-o"}; {print "-name", $0".desktop"}' <<< "${APPDESKTOP_PLACEONDESKTOP//,/$'\n'}") | while IFS= read -r FIND_SELECT_DESKTOP; do
|
||||||
|
if [[ ! -f "${XDG_DESKTOP_DIR}/${FIND_SELECT_DESKTOP##*/}" ]]; then
|
||||||
|
cp -f "${FIND_SELECT_DESKTOP}" "${XDG_DESKTOP_DIR}"
|
||||||
|
#grep "#!/usr/bin/env xdg-open" "${XDG_DESKTOP_DIR}/${FIND_SELECT_DESKTOP##*/}" || sed -i 1s%^%'\#\!/usr/bin/env xdg-open\n'% "${XDG_DESKTOP_DIR}/${FIND_SELECT_DESKTOP##*/}"
|
||||||
|
chmod ugo+x "${XDG_DESKTOP_DIR}/${FIND_SELECT_DESKTOP##*/}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
if [[ -n ${APPDESKTOP_PLACEONDESKTOP[@]} ]]; then
|
||||||
|
SOURCE=${HOME}/.config/user-dirs.dirs; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null
|
||||||
|
[[ -n ${XDG_DESKTOP_DIR} ]] || XDG_DESKTOP_DIR="${HOME}/$(gettext -d xdg-user-dirs "Desktop")"
|
||||||
|
[[ -n ${XDG_DESKTOP_DIR} ]] || XDG_DESKTOP_DIR="${HOME}/Desktop"
|
||||||
|
[[ -d ${XDG_DESKTOP_DIR} ]] || mkdir -p "${XDG_DESKTOP_DIR}"
|
||||||
|
ID_GROUPS=$(id --name --groups)
|
||||||
|
for SELECT_USERS_GROUPS in "${!APPDESKTOP_PLACEONDESKTOP[@]}"; do
|
||||||
|
while IFS= read -r READ_USER_GROUP; do
|
||||||
|
[[ ${READ_USER_GROUP} == "0" ]] || [[ ${READ_USER_GROUP} == ${USER} ]] || [[ ${READ_USER_GROUP} =~ ^'@' && ${ID_GROUPS} =~ (^| )${READ_USER_GROUP//@/}( |$) ]] \
|
||||||
|
&& copy_desktop ${APPDESKTOP_PLACEONDESKTOP[${SELECT_USERS_GROUPS}]}
|
||||||
|
done <<< ${SELECT_USERS_GROUPS//,/$'\n'}
|
||||||
|
done
|
||||||
|
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
################
|
||||||
|
##### MAIN #####
|
||||||
|
################
|
||||||
|
|
||||||
|
place_on_desktop_ubinstall
|
||||||
|
place_on_desktop_init
|
||||||
|
place_on_desktop
|
||||||
|
|||||||
@ -0,0 +1,65 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
ENABLED=yes
|
||||||
|
[[ ${ENABLED} == "yes" ]] || exit 0
|
||||||
|
|
||||||
|
SOURCE=/usr/lib/ublinux/functions; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null
|
||||||
|
SOURCE=/usr/lib/ublinux/default; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null
|
||||||
|
|
||||||
|
SOURCE=${SYSCONF}/config; [ -f ${SOURCE} ] && . ${SOURCE} 2>/dev/null
|
||||||
|
SOURCE=${SYSCONF}/kiosk; [ -f ${SOURCE} ] && . ${SOURCE} 2>/dev/null
|
||||||
|
|
||||||
|
declare -A APPDESKTOP_PLACEONDESKTOP APPDESKTOP_PLACEONDESKTOP_INIT
|
||||||
|
|
||||||
|
place_on_desktop_ubinstall(){
|
||||||
|
[[ $(cmdline_value ub.sgnfiles) =~ .*"-iso.sgn" ]] && APPDESKTOP_PLACEONDESKTOP+=",${UBINSTALL_DESKTOP}"
|
||||||
|
}
|
||||||
|
|
||||||
|
place_on_desktop_init(){
|
||||||
|
[[ -f ${HOME}/.config/.desktopinitialized ]] && return 0
|
||||||
|
if [[ -n ${APPDESKTOP_PLACEONDESKTOP_INIT[@]} ]]; then
|
||||||
|
for SELECT_USERS_GROUPS in "${!APPDESKTOP_PLACEONDESKTOP_INIT[@]}"; do
|
||||||
|
APPDESKTOP_PLACEONDESKTOP[${SELECT_USERS_GROUPS}]+=",${APPDESKTOP_PLACEONDESKTOP_INIT[${SELECT_USERS_GROUPS}]}"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
place_on_desktop_trust(){
|
||||||
|
trust_desktop(){
|
||||||
|
local APPDESKTOP_PLACEONDESKTOP="$1"
|
||||||
|
APPDESKTOP_PLACEONDESKTOP=${APPDESKTOP_PLACEONDESKTOP//.desktop/}
|
||||||
|
APPDESKTOP_PLACEONDESKTOP=${APPDESKTOP_PLACEONDESKTOP//;/,}; APPDESKTOP_PLACEONDESKTOP=${APPDESKTOP_PLACEONDESKTOP//,,/,}
|
||||||
|
[[ ${APPDESKTOP_PLACEONDESKTOP:0:1} == ',' ]] && APPDESKTOP_PLACEONDESKTOP=${APPDESKTOP_PLACEONDESKTOP:1}
|
||||||
|
[[ ${APPDESKTOP_PLACEONDESKTOP} =~ ','$ ]] && APPDESKTOP_PLACEONDESKTOP=${APPDESKTOP_PLACEONDESKTOP%*,}
|
||||||
|
find "${XDG_DESKTOP_DIR}" -type f $(tr ',;' $'\n' <<< "${APPDESKTOP_PLACEONDESKTOP}" | awk 'NR > 1 {print "-o"}; {print "-name", $0".desktop"}') | while IFS= read -r FIND_SELECT_DESKTOP; do
|
||||||
|
if ! gio info "${FIND_SELECT_DESKTOP}" | grep metadata::xfce-exe-checksum > /dev/null 2>&1; then
|
||||||
|
chmod ugo+x "${FIND_SELECT_DESKTOP}"
|
||||||
|
gio set -t string "${FIND_SELECT_DESKTOP}" metadata::xfce-exe-checksum "$(sha256sum "${FIND_SELECT_DESKTOP}" | awk '{print $1}')" 2>/dev/null
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
if [[ -n ${APPDESKTOP_PLACEONDESKTOP[@]} ]]; then
|
||||||
|
SOURCE=${HOME}/.config/user-dirs.dirs; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null
|
||||||
|
[[ -n ${XDG_DESKTOP_DIR} ]] || XDG_DESKTOP_DIR="${HOME}/$(gettext -d xdg-user-dirs "Desktop")"
|
||||||
|
[[ -n ${XDG_DESKTOP_DIR} ]] || XDG_DESKTOP_DIR="${HOME}/Desktop"
|
||||||
|
ID_GROUPS=$(id --name --groups)
|
||||||
|
for SELECT_USERS_GROUPS in "${!APPDESKTOP_PLACEONDESKTOP[@]}"; do
|
||||||
|
while IFS= read -r READ_USER_GROUP; do
|
||||||
|
[[ ${READ_USER_GROUP} == "0" ]] || [[ ${READ_USER_GROUP} == ${USER} ]] || [[ ${READ_USER_GROUP} =~ ^'@' && ${ID_GROUPS} =~ (^| )${READ_USER_GROUP//@/}( |$) ]] \
|
||||||
|
&& trust_desktop ${APPDESKTOP_PLACEONDESKTOP[${SELECT_USERS_GROUPS}]}
|
||||||
|
done <<< ${SELECT_USERS_GROUPS//,/$'\n'}
|
||||||
|
done
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
################
|
||||||
|
##### MAIN #####
|
||||||
|
################
|
||||||
|
|
||||||
|
/usr/lib/ublinux/rc.desktop/all/placeondesktop
|
||||||
|
place_on_desktop_ubinstall
|
||||||
|
place_on_desktop_init
|
||||||
|
place_on_desktop_trust
|
||||||
@ -0,0 +1 @@
|
|||||||
|
../deonly/xfce4-placeondesktop-trust
|
||||||
Loading…
Reference in new issue