summaryrefslogtreecommitdiff
path: root/Mozo/MainWindow.py
diff options
context:
space:
mode:
authorVictor Kareh <[email protected]>2026-03-03 15:23:30 -0500
committerVictor Kareh <[email protected]>2026-03-03 15:23:30 -0500
commitae37271573f7b5ab88614679bd3220f86c05262f (patch)
tree2d10856378eaae54605da5e618a1fdd6f52f7e02 /Mozo/MainWindow.py
parent89532fb843cedb669e3af7d20fc1c1ba5c618af6 (diff)
downloadmozo-new-app-name-filename.tar.bz2
mozo-new-app-name-filename.tar.xz
Use application name for generated .desktop filenamesnew-app-name-filename
Instead of naming user-created launchers mozo-made.desktop, mozo-made-1.desktop, etc., derive the filename from the Name field (e.g. "My App" becomes My-App.desktop). This makes it easier to identify launcher files in ~/.local/share/applications/. Fixes #27
Diffstat (limited to 'Mozo/MainWindow.py')
-rw-r--r--Mozo/MainWindow.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/Mozo/MainWindow.py b/Mozo/MainWindow.py
index 31b2135..070c738 100644
--- a/Mozo/MainWindow.py
+++ b/Mozo/MainWindow.py
@@ -270,11 +270,26 @@ class MainWindow:
name = '<small><i>' + html.escape(item.get_name()) + '</i></small>'
self.item_store.append((show, icon, name, item))
+ def _renameToNameBased(self, file_path, extension):
+ try:
+ keyfile = GLib.KeyFile()
+ keyfile.load_from_file(file_path, util.KEY_FILE_FLAGS)
+ name = keyfile.get_string(GLib.KEY_FILE_DESKTOP_GROUP, 'Name')
+ name = util.sanitizeFileName(name)
+ except Exception:
+ return file_path
+ new_file_id = util.getUniqueFileId(name, extension)
+ new_path = os.path.join(os.path.split(file_path)[0], new_file_id)
+ if new_path != file_path:
+ os.rename(file_path, new_path)
+ return new_path
+
#this is a little timeout callback to insert new items after
#mate-desktop-item-edit has finished running
def waitForNewItemProcess(self, process, parent_id, file_path):
if process.poll() is not None:
if os.path.isfile(file_path):
+ file_path = self._renameToNameBased(file_path, '.desktop')
self.editor.insertExternalItem(os.path.split(file_path)[1], parent_id)
return False
return True
@@ -286,6 +301,7 @@ class MainWindow:
if os.path.isfile(broken_path):
os.rename(broken_path, file_path)
if os.path.isfile(file_path):
+ file_path = self._renameToNameBased(file_path, '.directory')
self.editor.insertExternalMenu(os.path.split(file_path)[1], parent_id)
return False
return True