forked from CastroFidel/winehelper
updated create menu and desktop files
This commit is contained in:
parent
20f2f6d112
commit
5c0a62ff02
91
winehelper
91
winehelper
@ -51,6 +51,10 @@ WH_DB_DIR="$DATA_PATH/database"
|
|||||||
WH_AUTOINSTALL_DIR="$DATA_PATH/autoinstall"
|
WH_AUTOINSTALL_DIR="$DATA_PATH/autoinstall"
|
||||||
WH_MANUALINSTALL_DIR="$DATA_PATH/manualinstall"
|
WH_MANUALINSTALL_DIR="$DATA_PATH/manualinstall"
|
||||||
|
|
||||||
|
WH_MENU_DIR="$HOME/.local/share/applications/WineHelper"
|
||||||
|
WH_MENU_CATEGORY="$HOME/.local/share/desktop-directories/WineHelper.directory"
|
||||||
|
WH_MENU_CONFIG="$HOME/.config/menus/applications-merged/WineHelper.menu"
|
||||||
|
|
||||||
# export WINEDLLOVERRIDES=mshtml,mscoree="
|
# export WINEDLLOVERRIDES=mshtml,mscoree="
|
||||||
|
|
||||||
check_variables WINEESYNC "0"
|
check_variables WINEESYNC "0"
|
||||||
@ -357,6 +361,7 @@ var_ld_library_path_update () {
|
|||||||
create_desktop () {
|
create_desktop () {
|
||||||
local name_desktop="$1"
|
local name_desktop="$1"
|
||||||
local exe_file="$2"
|
local exe_file="$2"
|
||||||
|
local desktop_filename="$(basename "$exe_file" .exe | sed "s| |_|")"
|
||||||
local icon_file="$WH_IMAGE_PATH/$3.png"
|
local icon_file="$WH_IMAGE_PATH/$3.png"
|
||||||
|
|
||||||
if [[ -z "$name_desktop" ]] || [[ -z "$exe_file" ]] ; then
|
if [[ -z "$name_desktop" ]] || [[ -z "$exe_file" ]] ; then
|
||||||
@ -379,25 +384,77 @@ create_desktop () {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
create_new_dir "$WH_MENU_DIR"
|
||||||
|
|
||||||
[[ ! -f "$icon_file" ]] && icon_file=wine
|
[[ ! -f "$icon_file" ]] && icon_file=wine
|
||||||
|
|
||||||
|
# Создаем .desktop файл
|
||||||
{
|
{
|
||||||
echo "[Desktop Entry]"
|
echo "[Desktop Entry]"
|
||||||
echo "Name=$name_desktop"
|
echo "Name=$name_desktop"
|
||||||
echo "Exec=env \"$RUN_SCRIPT\" \"$exe_file\" %F"
|
echo "Exec=env \"$RUN_SCRIPT\" \"$exe_file\" %F"
|
||||||
echo "Type=Application"
|
echo "Type=Application"
|
||||||
echo "Categories=WineHelper;Application;Other;"
|
echo "Categories=WineHelper;"
|
||||||
echo "StartupNotify=true"
|
echo "StartupNotify=true"
|
||||||
echo "Path=$DATA_PATH"
|
echo "Path=$DATA_PATH"
|
||||||
echo "Icon=$icon_file"
|
echo "Icon=$icon_file"
|
||||||
} > "$USER_WORK_PATH/$name_desktop.desktop"
|
} > "$USER_WORK_PATH/$desktop_filename.desktop"
|
||||||
chmod +x "$USER_WORK_PATH/$name_desktop.desktop"
|
chmod +x "$USER_WORK_PATH/$desktop_filename.desktop"
|
||||||
|
|
||||||
create_new_dir "$HOME/.local/share/applications/WineHelper/"
|
cp -f "$USER_WORK_PATH/$desktop_filename.desktop" "$WH_MENU_DIR/"
|
||||||
cp -f "$USER_WORK_PATH/$name_desktop.desktop" "$HOME/.local/share/applications/WineHelper/"
|
|
||||||
cp -f "$USER_WORK_PATH/$name_desktop.desktop" "$(xdg-user-dir DESKTOP)"
|
# Создаем файл категории для меню
|
||||||
update-desktop-database "$HOME/.local/share/applications/"
|
create_new_dir "$HOME/.local/share/desktop-directories"
|
||||||
print_info "В меню и на рабочем столе создан $name_desktop.desktop"
|
if [[ ! -f "$WH_MENU_CATEGORY" ]] ; then
|
||||||
|
cat > "$WH_MENU_CATEGORY" <<EOF
|
||||||
|
[Desktop Entry]
|
||||||
|
Type=Directory
|
||||||
|
Name=WineHelper
|
||||||
|
Icon=wine
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Создаем файл меню для всех приложений
|
||||||
|
create_new_dir "$HOME/.config/menus/applications-merged"
|
||||||
|
if [[ ! -f "$WH_MENU_CONFIG" ]] ; then
|
||||||
|
cat > "$WH_MENU_CONFIG" <<EOF
|
||||||
|
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
|
||||||
|
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
|
||||||
|
<Menu>
|
||||||
|
<Name>Applications</Name>
|
||||||
|
<Menu>
|
||||||
|
<Name>WineHelper</Name>
|
||||||
|
<Directory>WineHelper.directory</Directory>
|
||||||
|
<Include>
|
||||||
|
<Category>WineHelper</Category>
|
||||||
|
</Include>
|
||||||
|
</Menu>
|
||||||
|
</Menu>
|
||||||
|
EOF
|
||||||
|
# Обновляем меню
|
||||||
|
if check_command update-menus ; then
|
||||||
|
update-menus
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Обновляем кэш desktop файлов
|
||||||
|
if check_command update-desktop-database ; then
|
||||||
|
update-desktop-database "$HOME/.local/share/applications"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $4 != "nocopy" ]] ; then
|
||||||
|
if [[ -n $4 ]] ; then
|
||||||
|
local desktop_path="$(xdg-user-dir DESKTOP)/$4"
|
||||||
|
create_new_dir "$desktop_path"
|
||||||
|
print_info "В меню создан $desktop_filename.desktop и скопирован на рабочий стол в каталог $4"
|
||||||
|
else
|
||||||
|
local desktop_path="$(xdg-user-dir DESKTOP)"
|
||||||
|
print_info "В меню и на рабочем столе создан $desktop_filename.desktop"
|
||||||
|
fi
|
||||||
|
cp -f "$USER_WORK_PATH/$desktop_filename.desktop" "$desktop_path"
|
||||||
|
else
|
||||||
|
print_info "В меню создан $desktop_filename.desktop"
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ -n "$INSTALL_SCRIPT_NAME" ]] \
|
if [[ -n "$INSTALL_SCRIPT_NAME" ]] \
|
||||||
&& [[ -f "$exe_file" ]]
|
&& [[ -f "$exe_file" ]]
|
||||||
@ -417,9 +474,27 @@ create_desktop () {
|
|||||||
remove_desktop () {
|
remove_desktop () {
|
||||||
if [[ -n "$1" ]] ; then
|
if [[ -n "$1" ]] ; then
|
||||||
try_remove_file "$USER_WORK_PATH/$1.desktop"
|
try_remove_file "$USER_WORK_PATH/$1.desktop"
|
||||||
|
try_remove_file "$WH_MENU_DIR/$1.desktop"
|
||||||
try_remove_file "$HOME/.local/share/applications/$1.desktop"
|
try_remove_file "$HOME/.local/share/applications/$1.desktop"
|
||||||
try_remove_file "$(xdg-user-dir DESKTOP)/$1.desktop"
|
try_remove_file "$(xdg-user-dir DESKTOP)/$1.desktop"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Удаляем категорию если она пуста
|
||||||
|
if [[ -d "$WH_MENU_DIR" ]] && [[ -z "$(ls -A "$WH_MENU_DIR")" ]]; then
|
||||||
|
try_remove_dir "$WH_MENU_DIR"
|
||||||
|
try_remove_file "$WH_MENU_CATEGORY"
|
||||||
|
try_remove_file "$WH_MENU_CONFIG"
|
||||||
|
# Обновляем меню
|
||||||
|
if check_command update-menus ; then
|
||||||
|
update-menus
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Обновляем кэш desktop файлов
|
||||||
|
if check_command update-desktop-database ; then
|
||||||
|
update-desktop-database "$HOME/.local/share/applications"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
##### INSTALLED PROGRAMS #####
|
##### INSTALLED PROGRAMS #####
|
||||||
|
@ -1,5 +0,0 @@
|
|||||||
[Desktop Entry]
|
|
||||||
Encoding=UTF-8
|
|
||||||
Type=Directory
|
|
||||||
Name=WineHelper
|
|
||||||
Icon=wine
|
|
Loading…
Reference in New Issue
Block a user