Various compilation scripts & patches for Linux programs.
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.
 
 

185 lines
6.8 KiB

--- /dev/null
+++ b/bash/winexec
@@ -0,0 +1,27 @@
+#!/bin/bash
+
+allargs=("$@")
+
+fixpath=0
+for idx in "${!allargs[@]}"; do
+ arg="${allargs[$idx]}"
+
+ if [[ $fixpath -eq 0 ]]; then
+ # fix file paths only after the first executable is found in arg
+ if [[ "$arg" == *.exe ]]; then
+ fixpath=1
+ fi
+ if [[ "$arg" == *.EXE ]]; then
+ fixpath=1
+ fi
+ continue
+ elif [[ $fixpath -eq 1 ]]; then
+ # if arg starts with '/' and it's a path that exists on host
+ # precede the path with drive 'Z:'
+ if [[ "${arg:0:1}" == '/' && -e "$arg" ]]; then
+ allargs[$idx]="z:${arg//\//\\}"
+ fi
+ fi
+done
+
+exec env "${allargs[@]}"
--- /dev/null
+++ b/bash/remove_shortcut
@@ -0,0 +1,41 @@
+#!/usr/bin/env bash
+
+# Copyright (C) 2011 Pâris Quentin
+
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+# This script makes shortcut of programs
+
+[ "$PLAYONLINUX" = "" ] && exit 0
+source "$PLAYONLINUX/lib/sources"
+
+
+TITLE="$(eval_gettext '$APPLICATION_TITLE shortcut remover')"
+
+if [ "$1" ]; then
+ PACKAGE="$1"
+else
+ POL_SetupWindow_games "$(eval_gettext "Please choose a software to package")" "$TITLE"
+ PACKAGE="$APP_ANSWER"
+fi
+
+POL_SetupWindow_Init
+POL_SetupWindow_wait_next_signal "$(eval_gettext "Removing shortcut...")" "$TITLE"
+POL_Shortcut_RemoveDesktopShortcut "$PACKAGE"
+POL_SetupWindow_message "$(eval_gettext "The shortcut has been removed from $HOME.local/share/applications/ and your desktop")" "$TITLE"
+POL_SetupWindow_Close
+
+exit 0
--- a/python/mainwindow.py
+++ b/python/mainwindow.py
@@ -784,7 +784,9 @@
i+=1
self.menuGaucheAddLink("pol_prgm_configure", _("Configure"), i,Variables.playonlinux_env+"/resources/images/menu/run.png",self.Configure)
i+=1
- self.menuGaucheAddLink("pol_prgm_shortcut", _("Create a shortcut"), i,Variables.playonlinux_env+"/resources/images/menu/shortcut.png",self.Package)
+ self.menuGaucheAddLink("pol_prgm_shortcut", _("Create desktop shortcut"), i,Variables.playonlinux_env+"/resources/images/menu/shortcut.png",self.Package)
+ i+=1
+ self.menuGaucheAddLink("pol_prgm_shortcut_rem", _("Remove desktop shortcut"), i,Variables.playonlinux_env+"/resources/images/menu/shortcut.png",self.RemShortcut)
i+=1
self.menuGaucheAddLink("pol_prgm_adddir", _("Open the directory"), i,Variables.playonlinux_env+"/resources/images/menu/folder-wine.png",self.GoToAppDir)
@@ -980,6 +982,10 @@
def Package(self, event):
game_exec = self.GetSelectedProgram()
subprocess.Popen(["bash", Variables.playonlinux_env+"/bash/make_shortcut", game_exec])
+
+ def RemShortcut(self, event):
+ game_exec = self.GetSelectedProgram()
+ subprocess.Popen(["bash", Variables.playonlinux_env+"/bash/remove_shortcut", game_exec])
def UninstallGame(self, event):
game_exec = self.GetSelectedProgram()
--- a/lib/scripts.lib
+++ b/lib/scripts.lib
@@ -384,7 +384,7 @@
# Do nothing on Mac OS
if [ -n "$Categories" -a "$POL_OS" = "Linux" ] || [ -n "$Categories" -a "$POL_OS" = "BSD" ]; then
LOCALAPPS="$HOME/.local/share/applications"
- make_desktop_shortcut "$iconPath" "$ICON_FILENAME" "$LOCALAPPS" "$PLAYONLINUX/playonlinux --run \"$ICON_FILENAME\"" "$binary_name" "$Categories" "playonlinux-"
+ make_desktop_shortcut "$iconPath" "$ICON_FILENAME" "$LOCALAPPS" "$PLAYONLINUX/bash/winexec $PLAYONLINUX/playonlinux --run \"$ICON_FILENAME\"" "$binary_name" "$Categories" "playonlinux-"
fi
fi
@@ -394,7 +394,7 @@
if [ "$POL_OS" = "Mac" ]; then
POL_SetupWindow_AutoApp "$ICON_FILENAME"
else
- make_desktop_shortcut "$iconPath" "$ICON_FILENAME" "$DESKTOP" "$PLAYONLINUX/playonlinux --run \"$ICON_FILENAME\"" "$binary_name" "$Categories"
+ make_desktop_shortcut "$iconPath" "$ICON_FILENAME" "$DESKTOP" "$PLAYONLINUX/bash/winexec $PLAYONLINUX/playonlinux --run \"$ICON_FILENAME\"" "$binary_name" "$Categories"
fi
fi
fi
@@ -1039,13 +1039,33 @@
# http://stackoverflow.com/questions/8939580/bash-split-a-string-exactly-like-readline-would-split-it
eval set -- $(grep '^POL_Wine ' "$POL_USER_ROOT/shortcuts/$PACKAGE"|tail -n 1)
local binary="$2"
- make_desktop_shortcut "$iconPath" "$PACKAGE" "$DESKTOP" "$PLAYONLINUX/playonlinux --run \"$PACKAGE\"" "$binary" ""
+ LOCALAPPS="$HOME/.local/share/applications"
+ make_desktop_shortcut "$iconPath" "$PACKAGE" "$LOCALAPPS" "$DESKTOP" "$PLAYONLINUX/bash/winexec $PLAYONLINUX/playonlinux --run \"$PACKAGE\"" "$binary" ""
+ ln -s "$PLACE/$PACKAGE.desktop" "$DESKTOP"
;;
*)
POL_Debug_Warning "POL_Shortcut_MakeDesktopShortcut: not supported OS: $POL_OS"
esac
}
+
+POL_Shortcut_RemoveDesktopShortcut()
+{
+ PACKAGE="$1"
+ if [ "$POL_OS" = "Mac" ]; then
+ if [ -f "$HOME/Desktop/$PACKAGE.app" ]; then
+ rm "$HOME/Desktop/$PACKAGE.app"
+ fi
+ fi
+ if [ "$POL_OS" = "Linux" ] || [ "$POL_OS" == "FreeBSD" ]; then
+ LOCALAPPS="$HOME/.local/share/applications"
+ if [ -f "$LOCALAPPS/$PACKAGE.desktop" ];then
+ rm "$DESKTOP/$PACKAGE.desktop"
+ rm "$LOCALAPPS/$PACKAGE.desktop"
+ fi
+ fi
+}
+
POL_System_is32bit()
{
# Check if the file (1) is a 32bit executable
--- a/lib/playonlinux.lib
+++ b/lib/playonlinux.lib
@@ -670,12 +670,12 @@
(echo "[Desktop Entry]"
echo "Encoding=UTF-8"
echo "Name=$ICON_NAME"
- echo "Comment=PlayOnLinux"
echo "Type=Application"
- echo "Exec=$EXECUTABLE %F"
+ echo "Exec=$EXECUTABLE"
echo "Icon=$ICON"
- echo "Name[fr_FR]=$ICON_NAME"
echo "StartupWMClass=$WMCLASS"
+ echo "StartupNotify=true"
+ echo "Comment="
echo "Categories=$CATEGORIES") > "${SHORT_NAME}.desktop"
chmod +x "${SHORT_NAME}.desktop"
}
--- a/bash/make_shortcut
+++ b/bash/make_shortcut
@@ -34,7 +34,7 @@
POL_SetupWindow_Init
POL_SetupWindow_wait_next_signal "$(eval_gettext "Creating shortcut...")" "$TITLE"
POL_Shortcut_MakeDesktopShortcut "$PACKAGE"
-POL_SetupWindow_message "$(eval_gettext "The shortcut has been placed on your desktop")" "$TITLE"
+POL_SetupWindow_message "$(eval_gettext "The shortcut has been placed on $HOME.local/share/applications/ and linked to your desktop")" "$TITLE"
POL_SetupWindow_Close