I got into the gb.desktop component..
I made that editor for Desktop actions , .desktop files are a simple ini file so wouldn't take much.
then i found gb.desktop DesktopFile.class is already designed to handle these files.
(well kind of, i re-wrote it a bit to make desktop actions writeable and made a DesktopAction.class as it was done in a confusing way with collections, now it just a DesktopAction array)
worked great on MATE and Cinnamon as the icons I was editing were in a panel but then i thought about gnome desktop and other desktops that don't use the $HOME/Desktop folder.
so i thought about a panel launcher, a simple thin gambas transparent window thingy but before i knew it i was practically making a Desktop emulator :-\
Now this is very WIP (work in progress) there is tons of stuff to do to make it like a real desktop. It's essentially just a launcher app not really a desktop.
What I have so far......
- By default it reads your Desktop folder in $HOME and shows the files/launchers as icons.
- You can change he default directory to make your own launcher zone.
- You can also set a panel folder, icons from your panel folder show in a thin panel at the top of the window.
- Window can be transparent and borderless so it just looks like desktop.
- Icons can be arranged Arrange.Row or Arrange.Column (Arrange.none is available but incomplete, icons can be moved but positions do not save yet.)
- Icon sizes can be changed for both panel and main window
- Right clicking icons shows the Actions properties if set
- I have incorporated my "Gambas recents lister" into it so right clicking a Gambas3 launcher icon will display your recent file list and options to run with gtk or qt (or whatever you have as auto-detected)
- i have incorporated my new Icon actions editor into it.
- Changes saved in the icon editor show instantly
- Drag n drop should work (not FROM the app but TO the app) icons from folders can be dropped onto icons in the app and the app should run them.
- You can set an Allow list or a Deny list of desktops
As some desktops support the Desktop folder and show as normal you don't want this app to run on all your desktops if you have multiple choices.
I have mine set for an "Allowlist" of the following...
With that if the app launches on any other desktop it will instantly close again.
With that I have added the app to my "Startup applications" list.
Now it does not run when i log onto MATE or Cinnamon or gnome-fallback
If i log out of one and into another it only loads when needed.
Probably some, nothing major that could mess things up for you. if in doubt make a custom folder and copy your desktop/panel icons into there and it will only edit them.
- use DesktopMime.class to get lists of "Run With" options for file types and enable all that. (Done)
- enable Arrange.none and manual icon placement. (Done)
- better handle launching files (not launchers) am currently just adding xdg-open to the paths. (Done)
- Font color option. (Done)
- a million billion other things...
Here's how it looks on Gnome... Like i say it's fresh and needs a lot of work.
Sharing the initial beta/wip version as it's already functional form me on gnome
right clicking Gambas3 and having the recent file list is cool
Editing and experimenting with Actions is easy now.
blah blah blah
tra lala la la
(SEE POST BELOW FOR DOWNLOAD)