From f9dbdf45228ccda206b9e7280b481aa85a664f85 Mon Sep 17 00:00:00 2001 From: Anatzum Date: Sat, 28 Jan 2017 02:54:26 -0600 Subject: [PATCH] Updated MoveItemToTrash in platform_util_linux.cc If ELECTRON_TRASH is null, first check the DESKTOP_SESSION variable and set trash accordingly. Additional desktop environments can be added easily this way with the fallback of ELECTRON_DEFAULT_TRASH. --- atom/common/platform_util_linux.cc | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/atom/common/platform_util_linux.cc b/atom/common/platform_util_linux.cc index 923adbd..66ef0cc 100644 --- a/atom/common/platform_util_linux.cc +++ b/atom/common/platform_util_linux.cc @@ -98,11 +98,19 @@ void OpenExternal(const GURL& url, bool activate, bool MoveItemToTrash(const base::FilePath& full_path) { std::string trash; if (getenv(ELECTRON_TRASH) != NULL) { - trash = getenv(ELECTRON_TRASH); + trash = getenv(ELECTRON_TRASH); } else { - trash = ELECTRON_DEFAULT_TRASH; + // Determine desktop environment and set accordingly. + std::string desktopEnv = getenv(DESKTOP_SESSION); + if (desktopEnv.find("plasma") != std::string::npos) { + trash = "kioclient5"; + } else if (desktopEnv.find("kde") != std::string::npos) { + trash = "kioclient"; + } else { + trash = ELECTRON_DEFAULT_TRASH; + } } - + std::vector argv; if (trash.compare("kioclient5") == 0 || trash.compare("kioclient") == 0) { -- 2.7.4