new applauncher.py

Forum Forums antiX-development Development new applauncher.py

This topic contains 65 replies, has 7 voices, and was last updated by BobC Jul 24-11:47 pm.

Viewing 15 posts - 1 through 15 (of 66 total)
  • Author
    Posts
  • #23905
    Forum Admin
    Dave
    Dave

    Forgot to finish this up and post it earlier.
    It is from some testing to improve the personal menu / add desktop / default applications / desktop-menu apps… for now I just added an os.system call to run the selected item as it may help with the “cluttered” menu/no search/etc (as opposed to having an add/set/generate button for the rewrite/update of the other apps)

    #!/usr/bin/env python
    
    import gi
    
    gi.require_version('Gtk', '3.0')
    from gi.repository import Gtk, Gdk, GObject, GLib, Gio, GdkPixbuf
    from xdg.DesktopEntry import DesktopEntry
    import os
    import re
    
    apps = Gio.app_info_get_all()
    
    class mainWindow(Gtk.Window):
    	
        def language_filter_func(self, model, iter, data):
            if self.current_filter_language is None or self.current_filter_language == "None":
                return True
            else:
                return model[iter][2] == self.current_filter_language
        
        def run_button(self, test):
            self.run(self,"","")
                
        def run(self, test, fill, fill2):
            tree_selection = self.treeview.get_selection()
            (model, pathlist) = tree_selection.get_selected_rows()
            for i, path in enumerate(pathlist) :
                tree_iter = model.get_iter(path)
                appname = model.get_value(tree_iter,1)
                appexec = model.get_value(tree_iter,2)
                appexec = re.sub(r'%.*', '', appexec)
                os.system(appexec+"&")
            
        def make_list(self):
            count = 0
            store = Gtk.ListStore(GdkPixbuf.Pixbuf,str,str,str)
            for name in apps:
                filename = name.get_filename()
                appexec = DesktopEntry(filename).getExec()
                appname = DesktopEntry(filename).getName()
                appicon = DesktopEntry(filename).getIcon()
                if appicon == "":
                    appicon = "error"   
                
                if os.path.exists(appicon):
                    pixbuf = GdkPixbuf.Pixbuf.new_from_file(appicon)
                else:
                    icon_theme = Gtk.IconTheme.get_default()
                    icon_check = icon_theme.lookup_icon(appicon, 48, 0)
                    if icon_check:
                        icon_info = icon_theme.lookup_icon(appicon, 48, 0)
                        pixbuf = GdkPixbuf.Pixbuf.new_from_file(icon_info.get_filename())
                
                pixbuf = GdkPixbuf.Pixbuf.scale_simple(pixbuf, 48, 48,0)
                
                store.append([pixbuf, appname, appexec,filename])
                store.set_sort_column_id(1,0)
    
                count += 1
            
            self.current_filter_language = None
            self.language_filter = store.filter_new()
            self.language_filter.set_visible_func(self.language_filter_func)
            
            self.treeview = Gtk.TreeView.new_with_model(self.language_filter)
            self.treeview.connect("row-activated", self.run)
            self.treeview.set_enable_search(True)
            renderer = Gtk.CellRendererPixbuf()
            column = Gtk.TreeViewColumn("image", renderer, pixbuf=0)
            self.treeview.append_column(column)
            for i, column_title in enumerate(["App Name", "App Exec","Filename"]):
                renderer = Gtk.CellRendererText()
                column = Gtk.TreeViewColumn(column_title, renderer, text=i+1)
                self.treeview.append_column(column)
    
            self.sw.add(self.treeview)
    
        def __init__(self):
            Gtk.Window.__init__(self)
            self.set_size_request(640,480)
            self.set_border_width(10)
            self.set_title("Choose Item")
        
            vbox = Gtk.VBox()
            self.add(vbox)
            vbox.show()
            
            self. sw= Gtk.ScrolledWindow()
            vbox.pack_start(self.sw,1,1,1)
            self.sw.show()
            self.make_list()
            
            buttonbox = Gtk.HButtonBox()
            vbox.pack_start(buttonbox,0,0,1)
            buttonbox.show()
            
            run = Gtk.Button(stock=Gtk.STOCK_EXECUTE)
            run.connect("clicked", self.run_button)
            buttonbox.pack_start(run,0,0,0)
            run.set_can_default(True)
            run.grab_default()
            run.show()
            
            close = Gtk.Button(stock=Gtk.STOCK_CLOSE)
            close.connect("clicked", lambda w: Gtk.main_quit())
            buttonbox.add(close)
            close.show()
            
        
            
    
    win = mainWindow()
    win.connect("delete-event", Gtk.main_quit)
    win.show_all()
    Gtk.main()
    
    

    applauncher

    • This reply was modified 3 months, 4 weeks ago by Dave.
    • This reply was modified 3 months, 3 weeks ago by Dave.
    • This reply was modified 3 months, 3 weeks ago by Dave.

    Computers are like air conditioners. They work fine until you start opening Windows. ~Author Unknown

    #23911
    Member
    Xecure
    Xecure

    Forgot to finish this up and post it earlier.
    It is from some testing to improve the personal menu / add desktop / default applications / desktop-menu apps… for now I just added an os.system call to run the selected item as it may help with the “cluttered” menu/no search/etc (as opposed to having an add/set/generate button for the rewrite/update of the other apps)

    I like it very very much! As an idea, I think it should be named “All Apps” instead of “Choose item”, but I find this very interesting!

    Another thing I would change: Third column should display the App description so that new users know what each app does, if the app name is not enough.
    With my very limited python knowledge, I have added an extra action to retrieve the Comment value from DesktopEntry and added that extra column “Description”.

    #!/usr/bin/env python
    
    import gi
    
    gi.require_version('Gtk', '3.0')
    from gi.repository import Gtk, Gdk, GObject, GLib, Gio, GdkPixbuf
    from xdg.DesktopEntry import DesktopEntry
    import os
    import re
    
    apps = Gio.app_info_get_all()
    
    class mainWindow(Gtk.Window):
    	
        def language_filter_func(self, model, iter, data):
            if self.current_filter_language is None or self.current_filter_language == "None":
                return True
            else:
                return model[iter][2] == self.current_filter_language
        
        def run_button(self, test):
            self.run(self,"","")
                
        def run(self, test, fill, fill2):
            tree_selection = self.treeview.get_selection()
            (model, pathlist) = tree_selection.get_selected_rows()
            for i, path in enumerate(pathlist) :
                tree_iter = model.get_iter(path)
                appname = model.get_value(tree_iter,1)
                appexec = model.get_value(tree_iter,3)
                appexec = re.sub(r'%.*', '', appexec)
                os.system(appexec+"&")
            
        def make_list(self):
            count = 0
            store = Gtk.ListStore(GdkPixbuf.Pixbuf,str,str,str,str)
            for name in apps:
                filename = name.get_filename()
                appexec = DesktopEntry(filename).getExec()
                appname = DesktopEntry(filename).getName()
                appicon = DesktopEntry(filename).getIcon()
                appcomment = DesktopEntry(filename).getComment()
                if appicon == "":
                    appicon = "error"   
                
                if os.path.exists(appicon):
                    pixbuf = GdkPixbuf.Pixbuf.new_from_file(appicon)
                else:
                    icon_theme = Gtk.IconTheme.get_default()
                    icon_check = icon_theme.lookup_icon(appicon, 48, 0)
                    if icon_check:
                        icon_info = icon_theme.lookup_icon(appicon, 48, 0)
                        pixbuf = GdkPixbuf.Pixbuf.new_from_file(icon_info.get_filename())
                
                pixbuf = GdkPixbuf.Pixbuf.scale_simple(pixbuf, 48, 48,0)
                
                store.append([pixbuf, appname, appcomment, appexec,filename])
                store.set_sort_column_id(1,0)
    
                count += 1
            
            self.current_filter_language = None
            self.language_filter = store.filter_new()
            self.language_filter.set_visible_func(self.language_filter_func)
            
            self.treeview = Gtk.TreeView.new_with_model(self.language_filter)
            self.treeview.connect("row-activated", self.run)
            self.treeview.set_enable_search(True)
            renderer = Gtk.CellRendererPixbuf()
            column = Gtk.TreeViewColumn("image", renderer, pixbuf=0)
            self.treeview.append_column(column)
            for i, column_title in enumerate(["App Name", "Description", "App Exec","Filename"]):
                renderer = Gtk.CellRendererText()
                column = Gtk.TreeViewColumn(column_title, renderer, text=i+1)
                self.treeview.append_column(column)
    
            self.sw.add(self.treeview)
    
        def __init__(self):
            Gtk.Window.__init__(self)
            self.set_size_request(640,480)
            self.set_border_width(10)
            self.set_title("Choose Item")
        
            vbox = Gtk.VBox()
            self.add(vbox)
            vbox.show()
            
            self. sw= Gtk.ScrolledWindow()
            vbox.pack_start(self.sw,1,1,1)
            self.sw.show()
            self.make_list()
            
            buttonbox = Gtk.HButtonBox()
            vbox.pack_start(buttonbox,0,0,1)
            buttonbox.show()
            
            run = Gtk.Button(stock=Gtk.STOCK_EXECUTE)
            run.connect("clicked", self.run_button)
            buttonbox.pack_start(run,0,0,0)
            run.set_can_default(True)
            run.grab_default()
            run.show()
            
            close = Gtk.Button(stock=Gtk.STOCK_CLOSE)
            close.connect("clicked", lambda w: Gtk.main_quit())
            buttonbox.add(close)
            close.show()
            
        
            
    
    win = mainWindow()
    win.connect("delete-event", Gtk.main_quit)
    win.show_all()
    Gtk.main()
    Attachments:
    #23915
    Member
    Avatar
    PPC

    @Dave: Great work! Great little script, I hope anti makes it available in the next beta! “Great” because it’s a near perfect application launcher for antiX, “little” because it takes almost no resources at all, lean and mean!
    Xecure suggestions/changes adding the description make it even better, helping newbies and are just browsing/ looking for apps and don’t know what they do…
    If I may be so bold I would have just a couple of minor suggestions and then a huge one that would turn this application into a completely different “beast”:

    Tiny changes, from the usability/ UI standpoint:
    1- Change the title (line 83 of the original script), like Xecure suggested to something more user friendly like “App Launcher”, “Application Launcher”, “Applications” or “All applications”
    2- There’s really no need to display the name of the first column (“image”), I think it’s self explanatory. If you need to present a name, perhaps something like “Icon”? (line 69 of the original script)
    3- There’s no need for the “Execute” button. The user, if using the mouse, can just double left click the application name and launch it or, if using the keyboard, just press enter (I successfully commented out lines 98 through 103 of the original script). One can argue that the “Close” button is also redundant (the user can just click the close window “X” button), but I like it there.
    4- The columns view feels a bit out dated. I don’t mind it, and the extra info it presents about the applications can me handy for intermediate to advanced Linux users, but overkill for a newbie… If possible, maybe present only the image and AppName columns? If so, there would be no need to show the columns names. Note: Xecure posted while I was writing this… The columns view does “make sense” if they are used to display the icon, app name and app description…

    The big change that would make the script “perfect”:
    I only don’t say your script/application has perfect functionality as it is right now because it lacks one thing that I, not knowing any python don’t know can be easily implemented or even implemented at all- a real “search” function. For example: if the user starts typing “Synaptic”- he/she can just type “Sy” and press enter and Synaptic is launched! That’s a great way to launch applications (similar to what I do in MX linux menu or in antiX using j4-dmenu)
    but if the user wants to search a file in the hard drive and starts typing “search”, because the “search” is done using the characters of the application name starting from the first character “Space FM file search” will never be “reached”.
    This does not greatly reduce the launcher usability, but if this script was able to do that, applauncher.py would be on par with the file launch capability of all other file launchers out there…

    If applauncher.py is available out of the box in the next antix beta it needs a nice and suggestive icon like /usr/share/icons/papirus-antix/32×32/apps/gnome-gmenu.png or /usr/share/icons/papirus-antix/32×32/categories/app-launcher.png or, like Xecure choose, a magnifying lens (it be the ideal icon if applauncher.py had a “real” search function), and also a good position on the menu, and maybe even a place next to the start menu in iceWM and JWM???

    As always the hard work of not only the dev team but many folks from the forum amazes me!

    P.

    • This reply was modified 3 months, 3 weeks ago by PPC.
    • This reply was modified 3 months, 3 weeks ago by Dave.
    #23920
    Forum Admin
    Dave
    Dave

    @Xecure; Thanks, added the section for description as you have!

    @PPC / Xecure:
    1. Ok Changed to all apps as I still plan to use this for selecting apps from the other apps as this was the original intent (next to update desktop-defaults-set)

    @PPC:
    2. Done
    3. Though it is redundant it shall stay. These are probably going to change function depending on how it is called. (as it was not originally intended for an app launcher)
    Plus double clicking is aaaaalllllloooooootttttt of effort and the keyboard is wwwwwwwwwwaaaaaaaaaayyyyyyy to far away… how am I to run the program? lol 😛
    4. Have given it alot of output to help with building it (used to have columns for list iterated number, processed number, and gtk class values). Dropped the .desktop filename column. The rest I think are useful for searching. (For example I better know the control centre as antixcc which would not show up if the exec column is removed)

    Final Point.

    The big change that would make the script “perfect”:
    I only don’t say your script/application has perfect functionality as it is right now because it lacks one thing that I, not knowing any python don’t know can be easily implemented or even implemented at all- a real “search” function. For example: if the user starts typing “Synaptic”- he/she can just type “Sy” and press enter and Synaptic is launched! That’s a great way to launch applications (similar to what I do in MX linux menu or in antiX using j4-dmenu)
    but if the user wants to search a file in the hard drive and starts typing “search”, because the “search” is done using the characters of the application name starting from the first character “Space FM file search” will never be “reached”.
    This does not greatly reduce the launcher usability, but if this script was able to do that, applauncher.py would be on par with the file launch capability of all other file launchers out there…

    Should be added.

    • This reply was modified 3 months, 3 weeks ago by Dave.
    • This reply was modified 3 months, 3 weeks ago by Dave.
    Attachments:
    1. applauncher.tar

    Computers are like air conditioners. They work fine until you start opening Windows. ~Author Unknown

    #23923
    Member
    Avatar
    PPC

    @Dave – Wow! Applauncher now looks a lot more polished! Ready to be put in general use, as very good application launcher.
    The “search bar” and filtering system is very cool. Example (for those that have not tested it): if the user types “LibreOffice” only LibreOffice applications will be displayed!
    In terms of usability that puts it up there with XFCE’s whisker menu, with only one thing missing (like you said “should be added”):
    -a full “app search”- example: ideally if Applauncher was able to search the application by it’s name contents and (that would be perfect) description, a user could type “Writer” and have LibreOffice Writer pop up (along with all other apps that include the word “writer” in their name/description).

    P.S.- I didn’t mention this in my first reply to you, but recently, reading this thread I thought: “if I knew programming I would try to create some kind of basic application to read desktop files, and present them in a list, stripping them from their extension, ideally showing the icon and app name… and antiX would have it’s own very handy launcher…” I thought about googling yad scripts and try to patch together something better than the default yad desktop application. I’m glad people that really know what they are doing took that small “problem” in their own hands and solved it.

    Update- P.S. 2- It just crossed my mind- do you think there’s a need to translate this to other languages? How exactly does one translate a *.py file? Just edit the text and you end up with as many .py files as the there are translations or is there a more general way to go around that problem (ex: place holders than can be translated “in bulk”)?

    @Dev team -Side note: antiX has been running strong for years, but only recently users have begun to really “complain” about some parts that could use some improvement:
    0- The distro looks- anticapitalista took really good care of that- the system looks amazing, with new wallpapers, fonts and icons. Folks even managed to make Fluxbox look really cool with very good themes (as you can see from Xecure screen grab)
    1- Menu overcrowding and application launching- (I tried a bit with a YAD script but) this python script solves the last part, also easing the “menu” problem- the devs, if they so wish, can clean up the menu, and still have everything readily available from the applauncher
    2- A GUI way to change time/date settings (and not only the time zone)- I bet 99% of the users never needed to do that, but someone mentioned that and skiddo took care of that (offering a script of his own and even improving a script I found on-line to set time and date via a GUI)
    3- This probably affects even less than 1% of the users- How to change not only the keyboard language, but the OS language? Once again this situation never crossed my mind until noClue talked about that and I realized- hey, its true! I’m trying out antiX 19b1 running the iso live from my HD, from GRUB- I have no “boot screen” to choose my language and didn’t think to set that in the grub entry (I know I can edit it, duh!), so I’m stuck with English. That doesn’t really bug me, as you can see, I do read and write in English with some proficiency. But if someone that does not speak Portuguese wants to use my installed antiX system, I found no easy and fast way to change the OS language on the fly. It’s way faster to reboot and run antiX live from USB, selecting another language, than try using any of the ways I digged around the web to change language in a Debian system. That, it seems is a Debian problem, not a antiX problem only… I even tried live Debian XFCE to see if they found a way around that and there was nothing I could see, I even thought antix CC has way more options than the original Debian system options ( I salute you for that, anticapitalista, and the rest of the dev team).

    P.

    • This reply was modified 3 months, 3 weeks ago by PPC.
    • This reply was modified 3 months, 3 weeks ago by PPC.
    • This reply was modified 3 months, 3 weeks ago by PPC.
    #23938
    Member
    Xecure
    Xecure

    3. Though it is redundant it shall stay. These are probably going to change function depending on how it is called. (as it was not originally intended for an app launcher)

    For this application in particular, this is very good. Even if the user doesn’t click on the Exec and Close buttons, simply being there already gives an idea to the user of what to expect and that they can easily exit this window. Many times people will panic when something opens up and they are not familiar with it, but knowing they can exit without breaking anything eases their anxiety. These buttons, at a glance, tell you what is going on. For some people, double clicking is not intuitive (like people who don’t change the default file manager values of “single click does all”), so the Exec button is great. Also, for people with no window decorations, the close button is an easy way to exit the applauncher. 10/10. Good decision.

    Attachments:
    applauncher-1.tar

    WOW. This is much more than I expected. I won’t say more than what PPC has already perfectly expressed. Hands down an amazing program with very small amount of lines of code that does very very much. We bow to thee!

    I am with PPC. I applaud the amazing devs. 🤗 antiX works great for me and now it looks even better!

    Update- P.S. 2- It just crossed my mind- do you think there’s a need to translate this to other languages? How exactly does one translate a *.py file? Just edit the text and you end up with as many .py files as the there are translations or is there a more general way to go around that problem (ex: place holders than can be translated “in bulk”)?

    When looking at the code, the first thing I saw is that Dave had already considered it for multilang, as applauncher checks to see the current locale and imports the info stored in the application .desktop launcher for the language (if available). The only things that are hard-coded in the current version of the applauncher are the words not related to the apps (Search/Filter, search categories, Column names, etc). I am sure it has already been planned to be changed to variables and use some .mo locales, taking advantage of already similar words translated) once everything works properly.
    I even went ahead and tested it with a different language and the apps names and descriptions are translated (when the translated language is available in the .desktop file), so that feature works perfectly.

    a full “app search”- example: ideally if Applauncher was able to search the application by it’s name contents and (that would be perfect) description, a user could type “Writer” and have LibreOffice Writer pop up (along with all other apps that include the word “writer” in their name/description).

    This is the only thing I am not entirely sure is something good. Yes, it makes life easier for the user, but it requires (I believe) a very complex and long amount of code and patching.
    Right now, I think this is already a very good app that doesn’t need all the intelligent searching other “launchers” use, which can be “user friendly”, but spoil the users intelligence.
    Right now, it works using the app name (first word), “Description” (first word) and the app launch command (first word, which unfortunately isn’t good for all those that launch with sudo or gksu or other parameters). Maybe it can be improved a bit by searching for all words in the App name and some of the words, maybe the last word (if not a parameter) of the exec file, but that is it. Doing more is going to suck so much time and effort it is not worth it.
    See a (very bad) example of the problems that may occur: You are looking for firefox and expect to simply hit Enter and launch it, but there is a program named “Awesome-browser”(this is made up), another named “Customize Firefox” (also made up), another named Elifox(made up) and finally, the fourth entry, is firefox. Awesome-browser contains this in the description “Browser based on Firefox that is really awesome”. Customize Firefox has Firefox in its application name. Elifox is launched as “eli -e –firefox“. They appear first because, during the search, each application is processed alphabetically, first name, then description, then Exec. The four apps appear on the list because they all contain somewhere the word firefox. The user will say, “Why isn’t Firefox First? What a shitty app launcher”, and then badmouth and criticize on the forums the enormous effort that went into creating this app as if it was a piece of sh**, without having written a line of code in their life and not knowing how difficult it is to create anything good. Then Dave will feel preasured to fix this and will have to come up with all kind of difficult algorithms to decide which words are more important than what, and have many sleepless nights computing in his head different ideas. This will happen much less if the app remains as it is now, and people will understand, “Ah! I need to know the program’s name to be able to find it”, and they will start increasing their IQ as they start learning about linux and antiX.
    (Sorry for writing this much)

    I even thought antix CC has way more options than the original Debian system options

    This is something people that distrojump and come to tryout antiX (or reviewers) sometimes don’t even know that it exists! I will keep pushing for it to be above the Applications submenu so that people see it when looking for applications and think “What is this? Let’s click”. From there you can access so many important things. When I have more time on the weekend I will try to finish and post here a mini-guide to the antiX Control Center.

    PD: Sorry for overcrowding this topic that should be related to testing the beta. I will try to not go off-topic as often.

    • This reply was modified 3 months, 3 weeks ago by Xecure. Reason: Edited out the note to Dave
    #23957
    Member
    Avatar
    skidoo

    regarding the “all applications launcher”:
    it presents some (several? many?) items which cannot be successfully launched from this context

    Example:
    item named “ADSL/PPOE configuration”
    ( /usr/share/applications/ppoeconf.desktop )

    When parsing .desktop files, the launcher will need to check for
    Terminal=true
    and either suppress those items from display (boo, in that case “ALL_Applications” is misleading)
    or handle conditionally, concatenating blablah launchstring to something like “desktop-defaults-run -t blablah

    #23960
    Member
    Avatar
    skidoo

    added a conditional OpenInTerminal handler. It still begs a more robust substring search (vs startswith)

    tweaked_applauncher.py

    .

    #23963
    Member
    Avatar
    PPC

    added a conditional OpenInTerminal handler. It still begs a more robust substring search (vs startswith)

    tweaked_applauncher.py

    >

    @Skidoo- Man, don’t you ever sleep??? 🙂 Congratulations, your applauncher has a improved UI, and it now does not look like it uses “columns” to display all the information, and, I tested, and it ran “ADSL/PPOE configuration”, but then again, so did the original script, at least on my computer (there I had to enter my password twice???)…
    If Dave wants to use your changes, I would mention some minor points:

    1- the “tweaked_applauncher.py” showed me a warning it needed lxterminal to be installed. I know nothing about python programing, but I did a search and replace in the .py text contents, using “roxterm” instead and it run great… Is there a technical reason to use Lxterminal and not Roxterm or is it a personal choice? (Roxterm is the default terminal in antiX19B1, where I tested the applauncher…)
    2- now the “search bar” does not have focus when the launcher starts. In Dave’s version, you could start typing right away to search the application you want to launch…
    3- my vision is not so great and I noticed, right away that now the icons look quite smaller. People with vision problems will have a hard time with smaller icons… Is there a way, for example, to allow the icon column be displayed with the height of the 3 text lines in the “column” to the right?

    If before I thought antiX applauncher was ready for prime time, with this new way to display information it looks even “modern”… If solving the above points (at least the first 2), it will be perfect, even without a more detailed search available…

    P.

    • This reply was modified 3 months, 3 weeks ago by PPC.
    #23974
    Member
    Avatar
    skidoo

    lxterminal

    I drafted that with the expectation that Dave would swap in an alternative handler. Althought roxterm is technically the the better choice of default handler here, the default roxterm font/colorscehme (pink and cyan prompt on white background) is non-ideal IMO.

    could start typing right away to search

    Okay, restored that “immediately focus searchentry” behavior.
    This results in absence of “Type to filter…” default being text displayed at startup
    (but that was a misleading anyhow, b/c typing had no effect until searchentry received focus)

    People with vision problems will have a hard time with smaller icons

    FWIW, the reason I had chosen a smaller size (past tense, now changed in the copy at gitlab) ~~ many of the specified icon images are smaller than 48px and look quite pixelated when stretched to fill that larger size.

    #23980
    Forum Admin
    Dave
    Dave

    Maybe you can verify, but I believe the pixelated images are hard coded ones of our own / from the pixmaps folder. Perhaps someone could take on the chore of updating these to a larger size that could be scaled back?

    Then again I am not certain how this would affect other items such as the menu and the control centre…

    @skidoo most of your changes I have implemented either verbatim or slightly modified. I have yet to finalize the terminal start items.

    Computers are like air conditioners. They work fine until you start opening Windows. ~Author Unknown

    #23984
    Member
    Xecure
    Xecure

    Perhaps someone could take on the chore of updating these to a larger size that could be scaled back?

    Someone give me a list and I will do my best. With vectors I can scale them to whatever sizes are needed.

    By the way, I tried to restrain myself from posting anything here about all the great ideas and work discussed, as this is really Off-topic. If this discussion is to continue, we should open a new thread in Development subforum and leave this thread for the antiX-19 beta problems.

    #24034
    Member
    Avatar
    BobC

    I really like the applauncher idea. I have tried various app launchers and been adding the xfce4 one to my systems and do use it to avoid having to traverse all the menus to find an app.

    I wish my python coding was at a level where I could read or tweak the code, but its not. I do have an idea to make it even more useful, by giving it the option of looking in a “recently run” list for any items matching the search criteria first, so that when you are searching for something you found and ran before, that it gets to or near the top and/or is highlighted somehow, so that you can notice it easily and run it again if that’s what you are trying to do.

    The way I saw to do this was to keep a list of the last x=max-50 apps found and run, where the most recent was #1 and each time an app is run it becomes the new #1 and all the others get renumbered up to max-50 and the most recently run list file gets overwritten. The idea would be that when reloading the apps list the next time, I would check to see if they were in my most recent list, and if so load an attribute field with the value, else max+1, ie 51. When I would display the list I could

    1. sort the list so all recently used matching the search are sorted alpha, followed by those not in the recent list sorted by alpha

    2. sort the list numerically, followed by alpha, so if any recently run apps matched the search, they appear first, most recent match at the top, followed by those not in the recent list sorted by alpha. I would also highlight the recent list search matches with color, border, font, or with a History icon somehow so you would visibly see those were ones you had searched for and run recently so the user would understand why they were up top.

    3. instead of sorting the list by recently used vs not, just highlight the recent list search matches with color, border, font, or with a History icon somehow so you would visibly see those were ones you had searched for and run recently.

    I wish I could figure out how to add this feature myself, because I think testing it will quickly show which of those sort sequences is reasonable, but the code is too foreign for me.

    PS: I think what you have at this point is likely better than the xfce4 program, so that’s quite an accomplishment, and I’m hoping to see/use it in the near future.

    #24103
    Forum Admin
    Dave
    Dave

    As the discussions became larger than anticipated for this new app….

    Computers are like air conditioners. They work fine until you start opening Windows. ~Author Unknown

    #24120
    Member
    Avatar
    BobC

    I think this will be the lean but not mean, ease of use feature will make quick work of finding the app you are looking for, and should be tested with all the desktops, and included on a default key, and demoed/highlighted in antiX19.

    All the other apps like this come with megabytes of baggage and megabytes of overhead, that this one doesn’t need to drag around…

    Reviewers and newbies will love it. Really!

    LOL, not to mention the lazy and tired looking for easy ways to do everything, like me.

Viewing 15 posts - 1 through 15 (of 66 total)

You must be logged in to reply to this topic.