Application icons in Linux
Moderators: FourthWorld, heatherlaine, Klaus, kevinmiller, robinmiller
Re: Application icons in Linux
... and here is the updated automatic version. Any and all feedback on either maker welcome
Last edited by bogs on Sun Jan 13, 2019 2:05 pm, edited 1 time in total.
Re: Application icons in Linux
Hi Bogs, i see i totally missed this post.
This looks very promising.
Will check it out tonight
Thanks!
This looks very promising.
Will check it out tonight
Thanks!
Re: Application icons in Linux
No problems, last few days were really busy for me, I haven't even had time to make *corrections to the fuller version of it lately.
*Corrections -
*Corrections -
- I notice that the interface is clunky when it comes to picking the actual exe file. Plan is to collect all exe file names (minus ones names 'setup', 'install', 'pref', etc) when more than 1 are in the folder and present the choice of exe to the user instead of requiring manually choosing by clicking on the label.
- Getting the icon for the program (if none were found) currently is done at the end, you have to click yes to making changes. Thinking of changing this to if no icon is found, presenting the dialog to pick one immediately.
Last edited by bogs on Sun Jan 13, 2019 1:59 pm, edited 1 time in total.
Re: Application icons in Linux
Hi Bogs,
it works awesome !
Very nice how you've changed it.
it works awesome !
Very nice how you've changed it.
Re: Application icons in Linux
Working on some further changes to meet these goals (in no particular order) -
- make the code more modular - now that the semi-rough draft is finished, moving some parts to individual handlers to ease maintenance.
- changing icon and exe finding routines to better filter options and hopefully get the correct items (if more than one found) the first time, probably by presenting a list.
- changing the scroll bars to only show if needed.
- changing the semi-automated version to include the minimum amount of information needed, reasoning being that an end user shouldn't be messing with it if used as part of an install routine. More work on the dev's part (will have to supply partial path to the icon, exe and such in the template), but should be transparent on the user end.
- control layout seems ok to me, but if anyone has suggestions, would be happy to consider them
Re: Application icons in Linux
Ok, I've uploaded the newest version of the remote launcher maker (which you can find here).
I've broken most of the routines out of the openStack into their own handlers, so goal 1 complete. I'll be doing the same to the more automated one when I get the time.
Some new things from the previous version -
While .png based icons will show up in the icon preview, .svg ones of course will not. I am not sure I want to try tackling that for the older versions of the IDE, Al Capellan's svgl works fantastically though if you really want/need to be able to preview them.
Have fun
I've broken most of the routines out of the openStack into their own handlers, so goal 1 complete. I'll be doing the same to the more automated one when I get the time.
Some new things from the previous version -
- Now has a help system
- New routine for picking the exe and icon files. If more than 1 of each is found, a dialog will confirm which is the correct one. If none is found, a different dialog will ask you to point to it (should be very rarely seen).
- Scrollbars were replaced with tool tips, since sometimes the scrollbars would not extend the field far enough to read the text in older IDEs.
- Removed the StartupWMClass entry as a minor simplification.
While .png based icons will show up in the icon preview, .svg ones of course will not. I am not sure I want to try tackling that for the older versions of the IDE, Al Capellan's svgl works fantastically though if you really want/need to be able to preview them.
Have fun
Last edited by bogs on Sun Jan 13, 2019 1:57 pm, edited 1 time in total.
Re: Application icons in Linux
Great great, it's getting better and better
I like to write my stacks too, like as simplistic to use for the user.
thanks man!
I like to write my stacks too, like as simplistic to use for the user.
thanks man!
Re: Application icons in Linux
Heh, I really need to go back through those routines for picking the exe and icon out, what a mess those turned into. Time to pull out the scratch paper
Also thinking (when I get the time ahead) of trying to figure out a way to display the svg icon preview. I've seen some great solutions, but they are far more complete than I need for this. The only icon format that is standard for all 'nixes I know that is missing now is .xpm, but that is for another day.
Ah well, all part of the refinement process
I think I'll rig a dropbox folder up, so the link to download from won't keep changing all the time too (probably should have done that first, but didn't think I'd revise it so much ).
*Edit - Ok, folder created, all updates for both versions from here on out will be uploaded to here, which should cut down on any confusion chasing posts (which are all being corrected to point to this link)
Also thinking (when I get the time ahead) of trying to figure out a way to display the svg icon preview. I've seen some great solutions, but they are far more complete than I need for this. The only icon format that is standard for all 'nixes I know that is missing now is .xpm, but that is for another day.
Ah well, all part of the refinement process
I think I'll rig a dropbox folder up, so the link to download from won't keep changing all the time too (probably should have done that first, but didn't think I'd revise it so much ).
*Edit - Ok, folder created, all updates for both versions from here on out will be uploaded to here, which should cut down on any confusion chasing posts (which are all being corrected to point to this link)
Re: Application icons in Linux
Nice, i can't wait. It's already working wonderfull.
Re: Application icons in Linux
In another post, someone mentioned rabbit holes and how they can be...erm, distracting I guess
In this utility, I just wasted about 3 days playing with this rabbit hole
The idea behind it was to make sure we had an executable to proceed with, or if the user decided to quit, or that they had even typed in the correct number for any of the choices. This is a good example of not having your brain cells connect while banging out code~
Since the main goal of all the above gobbly-goop was just to make sure we had something to work with or allow the user to quit, I changed it to this much simpler version ~
NOT the most stellar code on the planet, but I think a *lot* better than the mess above it. Too funny how we dig holes for ourselves
In this utility, I just wasted about 3 days playing with this rabbit hole
The idea behind it was to make sure we had an executable to proceed with, or if the user decided to quit, or that they had even typed in the correct number for any of the choices. This is a good example of not having your brain cells connect while banging out code~
Code: Select all
on pickExe
put shell("file *") into tmpExe
// find the executable file, if there is one...
if tmpExe is not empty then
repeat with x=1 to the number of lines of tmpExe
set the itemDelimiter to ":"
if matchChunk(line x of tmpExe, "LSB executable") then
put item 1 of line x of tmpExe into line x of tmpExe
else
put "" into line x of tmpExe
end if
end repeat
filter tmpExe without empty
end if
// put the possible executable files into tmpName...
put tmpExe into tmpName
set the itemDelimiter to slash // make sure we return this to / for the rest of the program...
// make sure there is only one line left in tmpName...
if tmpName is not "" then
if the number of lines of tmpName > 1 then
repeat for each line x in tmpName
add 1 to tmpLineNum
put tmpLineNum & " " & x before line tmpLineNum of tmpLine
end repeat
end if
ask question "Is one of the following the correct program?" & return & return & "Put the line number of the correct name below..." & return & return & tmpLine
if the result is "Cancel" then
exit to top
else
put the number of lines of tmpLine into tmpLineNum
repeat until (it > 0 and it <= tmpLineNum)
if it is not empty then // if the number entered is greater or less than the possible number of choices, then ask again for the right number...
ask question "Is one of the following the correct program?" & return & return & "Put the line number of the correct name below..." & return & return & tmpLine
if it is "" then
answer question "Would you like to quit?" with "Yes" or "No"
if it is "Yes" then exit to top
if it is "No" then answer question "Would you like to pick the executable manually?" with "Yes" or "No"
if it is "Yes" then answer file "Please select an executable..." with (tmpPath)
if it is "No" then exit to top
end if
end if
end repeat
breakpoint
// assume we have the right program...
put line it of tmpName into tmpName
end if
else
answer file "Unable to find an executable file..."
if it is not empty then
put it into tmpName
end if
end if
end pickExe
Code: Select all
on pickExe
// find the executable file, if there is one...
if tmpExe is not empty then
repeat with x=1 to the number of lines of tmpExe
set the itemDelimiter to ":"
if matchChunk(line x of tmpExe, "LSB executable") then
// "LSB executable" verifies it is not a .dll or .so file
put item 1 of line x of tmpExe into line x of tmpExe
else
put "" into line x of tmpExe
end if
end repeat
filter tmpExe without empty
// may be a problem with this as I still find empty in the last line...
if the number of lines of tmpExe > 1 then
put the number of lines of tmpExe into tmpNum
set the itemDelimiter to space
repeat with x=1 to tmpNum
put quote & line x of tmpExe & quote & space & "or" & space after tmpAnswer
end repeat
if the last item of tmpAnswer = "or" then delete the last item of tmpAnswer
put "answer" && quote & "Please choose one of the options below as the executable..." & quote && "with" && quote & "Cancel" & quote && "or" && tmpAnswer into tmpAnswer
// eliminate the need for the user to do anything other than click a button...
do tmpAnswer
if it is "Cancel" then
exit to top
else
put it into tmpExe
end if
end if
end if
end pickExe
Re: Application icons in Linux
Ha, you have not seen my clunky codes...
although i tend to tink that it is logical and straight forward in many cases.
But sometimes returning to a script after a while does take some time to get into again.
although i tend to tink that it is logical and straight forward in many cases.
But sometimes returning to a script after a while does take some time to get into again.
Re: Application icons in Linux
Yes, when I come back to things I wrote years ago (or decades in some cases), I really wonder what I was thinking at the time. Thankfully my addddddddddd saves me from thinking about it overly long
Ok, minor patching update to increase the accuracy of getting the exe and Icon correctly.
Some minor additions to the program -
Added a test to see if it is the first run [ checks for the tmpResFolder ]. If it isn't found, program assumes it is first run and displays the help file before continuing.
Added a test for Image Magick [ should be on most 'nix systems by default I think ]. I will later be incorporating Image Magick to allow representation of .svg and .xpm files by using it to convert any that the program comes across into a temporary .png file in the tmpResFolder, then displaying that.
I've been testing this myself on a wide variety of different types of programs, some that come with multiple exe files, some that come with multiple icons in the main folder, some without any icons, etc. across multiple distributions. I haven't seen it barf up on anything yet, but would appreciate it if you can tell me if you see something it doesn't handle well.
This pertains to the remoteMakeDesktopLauncher.livecode version only, I haven't made any changes to the more automated one yet.
Re: Application icons in Linux
Hi Bogs,
thanks very much.
i've downloaded your latest version, but had no time yet to test it.
I hope to do it this week, i'll keep you posted.
Do your additions like image magick have to be installed? i don see it in Mate.
Or is it an optional choice
Thanks !
thanks very much.
i've downloaded your latest version, but had no time yet to test it.
I hope to do it this week, i'll keep you posted.
Do your additions like image magick have to be installed? i don see it in Mate.
Or is it an optional choice
Thanks !
Re: Application icons in Linux
Having Image Magick or Inkscape (which I'm also adding a test for) or not having either of them will make no difference in the end result of the program, which is to make a menu entry with whatever you have that qualifies (an executable and an acceptable icon). It will only affect what you see (or don't see) in the icon box
The main use of those programs is to convert .svg and .xpm icons (if they are available) to a temporary png file (which will sit in the tmpResFolder) since Lc doesn't provide a ready way to do that itself, and I didn't feel like writing my own routine (or incorporating someone else's routine) to convert them to .png so Lc can display them because I am lazy
I also want this to be as backwards compatible as possible, so using Lc 8.x and up as the IDE just to have the svg part is a non starter (and they don't do xpm either, far as I can tell, despite what the guide says).
Image Magick is installed on most 'nix distros, which is why I am running the test for that one first. Inkscape is *often* installed on 'nix distros (but not as often as IM), and both of these can convert from the command line, which makes them easy to shell out to, change the (svg or xpm) to a temporary png, and use that to display in the icon box.
For the svg part, Image Magick relies on the rsvg library being installed as well in some cases.Technically, if Image Magick can't find the library, it is supposed to fall back to its own internal routines, but I did find some versions that do not do this correctly
Inkscape apparently not so much (but that makes sense, considering what Inkscape is).
The program will still use whatever the user picked as the actual icon for the menu entry, so whether or not you have either of the above programs will not affect the menu entry in any way. You will merely see a message saying that the program can not find either of those two programs, so .svg and .xpm files will not be displayed in the box.
*Edit - I forgot to mention that if you wanted to find out ahead of time whether Image Magick is installed or not, you can open a terminal and type "convert -version". The more important (for svg format) library you can see with "rsvg-convert -v". The output will look like this -
Re: Application icons in Linux
Well, I had some time today so I incorporated some changes into the help page which now, aside from being formatted a little better, includes a link to this thread as well as a link to the folder where all updates are uploaded to. The link *should* open in the local browser (it does here, anyway), but I count on someone independently testing that feature out
I also put in the code to have the testing for Image Magick and Inkscape, and I got at least Image Magick to convert the .svg icon to a temp. png format for display. According to everything I could find, .xpm is supposed to display in an image object, but I've yet to see it happen. Maybe I'm not holding my nose right
I'll be spending the next spare moments re-vamping the automated version of this so that it is entirely suitable for an installer to call. This means a bit more work for those that want to use it as part of an installer, of course, as you will have to set the names of the files, categories, etc yourself, but I'll make sure it is heavily commented to point out where that needs to be done.
I also put in the code to have the testing for Image Magick and Inkscape, and I got at least Image Magick to convert the .svg icon to a temp. png format for display. According to everything I could find, .xpm is supposed to display in an image object, but I've yet to see it happen. Maybe I'm not holding my nose right
I'll be spending the next spare moments re-vamping the automated version of this so that it is entirely suitable for an installer to call. This means a bit more work for those that want to use it as part of an installer, of course, as you will have to set the names of the files, categories, etc yourself, but I'll make sure it is heavily commented to point out where that needs to be done.