Page 1 of 1


Posted: Saturday 31st July 2021 10:39am
by BruceSteers
It went like this...

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.

Todo: tons.
  • 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...
    Loaded on Gnome desktop
    Loaded on Gnome desktop
    Untitled.png (1.71 MiB) Viewed 443 times
    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


Re: Desktop-ish

Posted: Saturday 31st July 2021 10:50am
by BruceSteers
Some notes on Usage:
  • To move/resize the window.
    If the panel folder is set and showing icons the panel can be used to drag the window around.
    To resize, right click an area not an icon and select "Options" on the options page enable the titlebar, then resize/move, then hide the titlebar again(if you want)
  • After changing icon size hit the "refresh" button to see changes or it updates when closing the window.

Re: Desktop-ish

Posted: Saturday 31st July 2021 6:23pm
by BruceSteers
Some changes...

Icon editor adding gambas toolkit options GB_GUI=gb.gtk, etc was putting in the .desktop file name not the Exec command.

Deny list was working but Allow list code was not done.

Now uses DBus and will only launch one instance.
There is a ShowDesktop option in the options. if set when you run the app while it is already running it will just perform a "ShowDesktop" but leave it's own windows showing and not launch a second instance.
DBus has 2 commands

org.command.Activate() ' the ShowDesktop function
org.command.AddArg(Arg As String) ' (not yet implemented, just prints the given arg at present, haven't decided what to do if the application is given a file as an arg/files dropped on it's launcher)

Now uses Exec for most commands instead of Shell.

It's on git if you want to keep up with the changes...

Re: Desktop-ish

Posted: Sunday 01st August 2021 11:57am
by BruceSteers
More features added.

Panel can now be top or bottom.

Background for panel and main window now transparent or a colour.

Icon font / text colour and background colour can be set.

(Note i can't see a way to make semi-transparent colours like the icon text background and panel background in the image below with QT but with gtk3 the colour selector is better)

Align panel icons left, center or right

Panel border now works

A bugfix or 2 :)
(I'll update the zip file above)


Re: Desktop-ish

Posted: Sunday 08th August 2021 2:19pm
by BruceSteers
More updates...

Added a crude Start menu
can trigger Shutdown/reboot/Suspend/logout via dbus (not properly using gb.dbus yet just using dbus-send in shell)
Edit: now uses gambas DBus method not dbus-send

Lists ALL applications

Blanked out the gtk warnings :)

uses DesktopMime.class to get registered apps for filetypes (right click open with options)

added some startup args
-f --forceopen ignores opening rules and opens anyway
-n --nominimise will stop the ShowDesktop function on relaunch.

$ git clone

Re: Desktop-ish

Posted: Wednesday 11th August 2021 7:57pm
by BruceSteers
Growing in features especially for the gambasser

now right click any launcher to a gambas application that's in it's project folder and there's an "Open in IDE" option

shutdown/reboot/logout via dbus

right click blank panel area and select to add one or more launchers from either a application menu item/ a .desktop icon or an application.

various tweaks and enhancments.

Re: Desktop-ish

Posted: Sunday 15th August 2021 3:19pm
by BruceSteers
Added more stuff.

Now you can set it to run at system start or not

Config now saves independent for each desktop Ie, $HOME/.config/gambas3/Desktop-ish-GNOME.conf , Desktop-ish-MATE.conf, etc
So you can have the whole 9 yards on gnome where you get no desktop or panel and then only a handy panel bar on MATE.

The start menu button can now load into main view if you are not using the panel

typing in the text box in the start menu now searches system path for results and shows them, click a result to enter command, Ctrl-Click item to get path as well as command

set bg/fg color on start menu

fixed some positioning errors.
I cant fix the error that happens if you go from border to non border then close, gambas reports the wrong window position. (bug reported) to set correct position enable panel drag and use that to move the window without a border.

A gambas launcher now gets a "Copy system info to clipboard" option for bugtrackers.

Exe's now get the "Run, Run in Terminal, Open" options.

Shutdown/ logout stuff has been worked on to try default kde/gnome methods before resorting to generic login1 dbus stuff or shell command.

Re: Desktop-ish

Posted: Saturday 11th September 2021 9:21am
by BruceSteers
The Dragging and the Dropping is now the working.

By that i mean not only can you drag icons onto launcher icons you can also drag icons outside the application. then launcher filename is dropped.