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_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="
|
||||
|
||||
check_variables WINEESYNC "0"
|
||||
@ -357,6 +361,7 @@ var_ld_library_path_update () {
|
||||
create_desktop () {
|
||||
local name_desktop="$1"
|
||||
local exe_file="$2"
|
||||
local desktop_filename="$(basename "$exe_file" .exe | sed "s| |_|")"
|
||||
local icon_file="$WH_IMAGE_PATH/$3.png"
|
||||
|
||||
if [[ -z "$name_desktop" ]] || [[ -z "$exe_file" ]] ; then
|
||||
@ -379,25 +384,77 @@ create_desktop () {
|
||||
fi
|
||||
fi
|
||||
|
||||
create_new_dir "$WH_MENU_DIR"
|
||||
|
||||
[[ ! -f "$icon_file" ]] && icon_file=wine
|
||||
|
||||
# Создаем .desktop файл
|
||||
{
|
||||
echo "[Desktop Entry]"
|
||||
echo "Name=$name_desktop"
|
||||
echo "Exec=env \"$RUN_SCRIPT\" \"$exe_file\" %F"
|
||||
echo "Type=Application"
|
||||
echo "Categories=WineHelper;Application;Other;"
|
||||
echo "Categories=WineHelper;"
|
||||
echo "StartupNotify=true"
|
||||
echo "Path=$DATA_PATH"
|
||||
echo "Icon=$icon_file"
|
||||
} > "$USER_WORK_PATH/$name_desktop.desktop"
|
||||
chmod +x "$USER_WORK_PATH/$name_desktop.desktop"
|
||||
} > "$USER_WORK_PATH/$desktop_filename.desktop"
|
||||
chmod +x "$USER_WORK_PATH/$desktop_filename.desktop"
|
||||
|
||||
create_new_dir "$HOME/.local/share/applications/WineHelper/"
|
||||
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/"
|
||||
print_info "В меню и на рабочем столе создан $name_desktop.desktop"
|
||||
cp -f "$USER_WORK_PATH/$desktop_filename.desktop" "$WH_MENU_DIR/"
|
||||
|
||||
# Создаем файл категории для меню
|
||||
create_new_dir "$HOME/.local/share/desktop-directories"
|
||||
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" ]] \
|
||||
&& [[ -f "$exe_file" ]]
|
||||
@ -417,9 +474,27 @@ create_desktop () {
|
||||
remove_desktop () {
|
||||
if [[ -n "$1" ]] ; then
|
||||
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 "$(xdg-user-dir DESKTOP)/$1.desktop"
|
||||
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 #####
|
||||
|
@ -1,5 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Encoding=UTF-8
|
||||
Type=Directory
|
||||
Name=WineHelper
|
||||
Icon=wine
|
Loading…
Reference in New Issue
Block a user