App Launcher

UUID: app-launcher@mchilli
Last edited:
2 months ago 2024-02-05, 14:25
Last commit: [394ebb8c] Rewrite cinnamon-spices-makepot: (#5463)

A simple App Launcher

README

Close

App Launcher

A simple launcher for your panels

Features:

  • a GUI to organize your applications, even in groups
  • add new applications via drag'n'drop
  • add colorful separators
  • run multiple apps with middleclick
  • rightclick opens the context menu to edit your apps
  • support for horizontal and vertical panels
  • set custom icons for applications and groups
  • customize different properties of your applet:
    • set/hide label
    • set custom applet icon
    • enable/disable notification
    • set hotkey to open the menu
    • show/hide application icons
    • set application icon size
Drag'n'Drop Context Menu
Drag'n'Drop Demo Context Demo

Log In To Comment!

51 Comments

garuffalo
garuffalo-2 months ago
I love this applet, but I have a feature request. When clicking on a subfolder in the list, instead of expanding vertically within the main list, with a small area to scroll through -- could the contents pop out to the side? This would make navigation of the launcher much more user friendly. Thanks!
mchilli
mchilli-2 months ago
I know what you mean, but I use a default Cinnamon functionality for this. So I can be sure that it works well in different versions. A function like you expect may be possible, but I don't think it's worth programming it. Because it is just a optical enhancement and too much work. I hope you understand my point of view.
garuffalo
garuffalo-2 months ago
Fair enough. Still love the applet!
RT Cunningham
RT Cunningham-2 months ago
Never mind. I completely ignored the group setting during edits.
RT Cunningham
RT Cunningham-2 months ago
I like the separators, but one more thing would make them better, a group title. Perhaps a group title could be a separate item. Other than that, this applet is perfect.
SelfMadeSystem
SelfMadeSystem-9 months ago
Would it be possible to add files and folders in addition to regular apps? I don't think you would need to change much. I was thinking you could just reuse the current way you save applications, but add a `type` parameter that could be either `app` or `file` and have the `command` be something like `exo-open ${file}`. You could also automatically add the icon by just using the system's way to find icons. Thank you
SelfMadeSystem
SelfMadeSystem-9 months ago
I have discord (same username) if you want to chat about it. I might be interested in helping
mchilli
mchilli-9 months ago
Hi, to be honest this applet is an app launcher, not a file opener. But it could open your files or folders as well, if you extend your command with the parameter you want. For eg.: `nemo /path/to/your/folder` or `xdg-open /path/to/your/file` I personally use it also this way. But ok I will build in some functionality. If you select a normal file automatically pretend the command with `xdg-open` and use the default mimetype icon.
ggabri
ggabri-9 months ago
Configuration window does not show. (21.1)
mchilli
mchilli-9 months ago
Hi and also sorry. But its' the same as for "likengmx".
likengmx
likengmx-9 months ago
Linux Mint 21.1 Applet configuration window does not show, although in panel appears its icon. Also high cpu usage, sometimes several minutes, top shows Xorg 100%. I don't understand how an applet can hoard all the cpu. There must be a serious flaw somewhere.
mchilli
mchilli-9 months ago
Hi and sry you have trouble with my applet. I tried it on different machines and also tested it with live systems from Mint 19 - 21.1, but I can't reproduce this issue. Thats why I struggle to find the reason for this bug. I suspect the problem is somewhere in the "widgets.py" file, maybe a missing dependency or else. Hopefully you can help me to fight this issue?! I'm interested in fixing it!
likengmx
likengmx-9 months ago
Hi, I'll try my best. Mint 21.1 clean install Python 3.10.6 Computer Thinkpad X390 Yoga When Xorg freezes due to this applet, there are no errors in cinnamon debugger (melange), but related messages in .xession-errors are: -------------------------- Window manager warning: last_user_time (1150433) is greater than comparison timestamp (1144937). This most likely represents a buggy client sending inaccurate timestamps in messages such as _NET_ACTIVE_WINDOW. Trying to work around... Window manager warning: 0x3c00007 appears to be one of the offending windows with a timestamp of 1150433. Working around... (cinnamon:1272): Gdk-WARNING **: 21:58:28.543: Native Windows wider or taller than 32767 pixels are not supported .. (last message repited 20 times per second) ------------------------------------------------------------------------- Xorg freezes until you kill process xlet-settings Let me know how I can help you better to trace the problem.
mchilli
mchilli-9 months ago
hm, did you have a second screen on your notebook maybe a 4k display? Btw can you comment out line 172 in "/home/USERNAME/.local/share/cinnamon/applets/app-launcher@mchilli/widgets.py", like this: # self.connect("realize", get_window) and let me know if the settings window will open now?
likengmx
likengmx-9 months ago
OK. After commenting that line everything seems to be going well. The configuration window appears and xorg does not freeze. There are also no messages in .xsession-errors. I am not using any external monitor.
mchilli
mchilli-9 months ago
ok can you change the function in line 179 to this: def on_check_resize(self, window): log(window.get_size().height) and tell me whats the output in the debug.log file inside the applet folder?
likengmx
likengmx-9 months ago
that log does not work, window is probably null. it works if you modify this line adding the funciton argument: window.connect("check-resize", self.on_check_resize(window))
mchilli
mchilli-9 months ago
sry first you have to reverse the comment in line 172 from previous post.
likengmx
likengmx-9 months ago
I did it. It was required to reach the function with the log, but anyway it didn't work. Then I tried with log("test") and it worked, so window should be null. I moved your log to the previous, calling function and it worked, heigh was 600. So the problem was that def on_check_resize(self,window) was not receiving the second argument.
mchilli
mchilli-9 months ago
oh ok weird. So lets revert all changes in widgets.py back to original and change the following: line 170: window.connect("check-resize", self.on_check_resize, window) line 179: def on_check_resize(self, object, window):
likengmx
likengmx-9 months ago
it does not work. Settings windows does not show. I added a log(height) to function on_check_resize and debug.log grows fast with what seems like random numbers (14139,29049,...).
likengmx
likengmx-9 months ago
OK. I found the problem. When you extend the list with -152 the main window increases height, so there is an infinite loop calling on_check_resize, increasing window height to infinite. It is solved when I use -155 instead -152. Forget about null pointers, my previous messages, maybe it was my mistake. So, with your original widgets.py problem is solved with -155 in this laptop. So you have to better calculate this parameter, because it seems dependent on the machine or desktop.
likengmx
likengmx-9 months ago
More details. You can reproduce this bug changing in Desktop, font selections "text scaling factor" to 1.4. So it does not depend on the version of Linux but on the user scaling fonts at least.
mchilli
mchilli-9 months ago
yeah you're right, thanks. If I change the value more down, like 140 the same problem appear on my maschine. I'm currently thinking about how can I better calculate the list height. Maybe set the value 200 is enough. But I think it's not an elegant way to solve this.
likengmx
likengmx-9 months ago
I suppose the good method would be to see what is the protocol to resize childrens in this environment. In any case to avoid always an infinite loop, maybe setting a maximum allowed height. if self.height != height and height<800: or similar.
mchilli
mchilli-9 months ago
OK can you check it please and replace your widgets.py with this: https://github.com/mchilli/cinnamon-spices/blob/master/applets/app-launcher%40mchilli/files/app-launcher%40mchilli/widgets.py Please tell my if this works, so I can create a PR.
likengmx
likengmx-9 months ago
OK. It seems to work. The only anomaly is that when you maximize window and then un-maximize, the height does not restore.
mchilli
mchilli-9 months ago
Yep I have notice that too, it's because that the height will be increase when you maximized the window but doesn't forcefully decrease when go back to normal. But I think for now its ok, maybe I can challenge this later.
likengmx
likengmx-9 months ago
better: if height<800: self.scrollbox.set_size_request(-1, self.height - 152)
likengmx
likengmx-9 months ago
better 2: if self.height != height: self.height = height if height>800: height=800 self.scrollbox.set_size_request(-1, height - 152)
He-Zu
He-Zu-1 year ago
Hi, my Python Version is 3.9.2 many greetings
He-Zu
He-Zu-1 year ago
Hello, there is no entry in the looking glass log. But you're right, it's up to my system. I started LMDE5 from a Live Boot Stick and installed the applet. It works perfectly. I have no idea where the problem is with my installation. One more thing I found. When I open the settings and then restart cinnamon, the settings window opens, but I can't operate anything in it. I will continue to search if I can find something. Thanks for the help
mchilli
mchilli-1 year ago
Ok, sounds unfamiliar. Could it be possible that there's something wrong with your python version? The custom list widget, where you configure your apps in the settings, is the only difference from other applets.
He-Zu
He-Zu-1 year ago
Hi, I wanted to use your applet. Installation works. Add apps too. However, I can't get into the settings. When I select "Set up" an icon opens in the taskbar but the window for the settings does not open. I'm using Linux Mint Debian Edition (LMDE5) Cinnamon Version 5.4.12 Any idea why. Thanks for help.
mchilli
mchilli-1 year ago
hm, can you configure the applet before you add any apps? maybe there is an error message in the looking glass log!? I've tested it with a fresh lmde5 installation and everything works fine.
freewee
freewee-2 years ago
I recently use Mint Cinnamon and I was looking for an alternative to Classicmenu indicator, that is a litle bit "recalcitrant"! I found your applet very interesting, the first tests seem conclusive... The drag and drop is very efficient! I will transfer all my shortcuts ( I really have a lot!!). Perhaps 1 improvement (for me!): No clicks over the menu... And I' m not sure it would be possible: opening the applet within my old "Plank"? Anyway many thanks for this great applet!
freewee
freewee-2 years ago
Really nice! But something is missing (I think!): I don't find how to make sub-menus!! Many thanks
mchilli
mchilli-2 years ago
Hey, nice to hear that you like it. Submenus can created when you edit an application and click the plus button next to the group selection. If you mean the old "Plank Dock", then no its not possible, sry. Greetings
freewee
freewee-2 years ago
Thank you! About submenus, I wanted to say "sub-submenus"!!
mchilli
mchilli-2 years ago
oh ok, but i think there is no possibility for this in cinnamon
freewee
freewee-2 years ago
Thank you! I will use it without that!
fazla86
fazla86-2 years ago
good and useful applet one annoying thing is that every time the application configuration in applet is changed, it freezes the whole system, for about 10-15 seconds in my case. The CPU hits the 100%. Even if I just change applications order in the list, it freezes. other than that, it is perfect my system is: Linux Mint 20.2 Cinnamon 5.0.7 Intel© Core™ i7-1065G7 CPU @ 1.30GHz × 4
fazla86
fazla86-2 years ago
UPDATE: After removing the swap, wait is reduced to 2-3 seconds. yaaaay :D I have 16GB of RAM memory and could simply remove 2GB swap on my system
RT Cunningham
RT Cunningham-2 years ago
Drag 'n' drop now works for me, with the latest update.
mchilli
mchilli-2 years ago
Hey, nice to hear that it works now!
RT Cunningham
RT Cunningham-2 years ago
Drag 'n' drop doesn't seem to work. Maybe I'm doing it wrong?
mchilli
mchilli-2 years ago
Maybe ;-), you pick an application from the menu and drag it to the app-launcher. I've created a demo gif to demonstration: https://git.io/J0tiv
RT Cunningham
RT Cunningham-2 years ago
I can only add applications manually.
RT Cunningham
RT Cunningham-2 years ago
Okay, I did exactly that and nothing at all changed.
mchilli
mchilli-2 years ago
Hm strange, ok can you tell me more informations e.g. OS with version and Cinnamon version? So I can try to reproduce the issue. Do you have the latest version of the applet?
RT Cunningham
RT Cunningham-2 years ago
Mint 20.2, Cinnamon 5.05 I don't understand why it wouldn't work. Every other applet does.