probonopd / LIVEstep

Experimental Live ISO based on FreeBSD with GNUstep and other components.
BSD 3-Clause "New" or "Revised" License
74 stars 12 forks source link

Make GWorkspace+Rik more appealing to Mac switchers #9

Open probonopd opened 4 years ago

probonopd commented 4 years ago

The Rik theme apparently is an effort to update the look of GNUstep to something newer than the 90s.

I would like to experiment with FreeBSD, FuryBSD, GNUStep, GWorkspace and Rik to see whether we can make an open source desktop operating system that is welcoming to switchers coming from the Mac. Can the mentioned components be used to pull this off?

I realize that the GNUstep developers value the look and feel of the original NeXT systems. No one wants to take that away but I think there should also be a configuration that is more appealing to users who have never used a NeXT system. I am quite optimistic that shipping a complete operating system on a Live ISO with a polished integration of GNUstep could attract a larger user base and developer audience to GNUstep. Just like there are more users who use modern Macs than NeXT boxes, there will be more users who will like an open source Mac-like system than there are users who like an open source NeXT-like system.

When Apple bought NeXT, they had to turn OPENSTEP into something that would appeal to Mac users. I think back in the day they did a pretty good job in bringing the best from the BSD world and the NeXT world into something that became "Mac-like". We now have a similar exercise at hand when it comes to turning GNUstep into somehting that would appeal to today's switchers.

Below is an incomplete, prioritized list of changes that would be needed to make GWorkspace and the Rik theme more welcoming to switchers coming from the Mac. I have no appreciation yet for how much (or how little) work each of those might be, so I'd really appreciate anyone's thoughts about the viability of these. Maybe @ericwa @AlessandroSangiuliano @qmathe @davidchisnall @rmottola would like to chime in there, I could imagine this is not the first time someone is suggesting something along those lines.

Cosmetics

Questions

Integration of non-GNUstep applications

By now it is a fact that for some types of applications there are no contemporary native options. So they should be made integrate as well as possible into the GWorkspace/Rik desktop.

probonopd commented 4 years ago
liveuser@furybsd:~ % cat /home/liveuser/GNUstep/Defaults/WMWindowAttributes
{
  "*" = {NoAppIcon=Yes;};
}

makes those pesky extra icons disappear.

But the icons in the Dock don't have all of their functionality, e.g., they are not bouncing,...

rmottola commented 4 years ago

I'm quoted here... I wonder in this long list what the contribution can be. E.g. given GWorkspace I see many items... some do exist (there is a specific preference panel to set background color as well as desktop image and its positioning)... other things are on the "todo" list... and other are specific choices, so if in your distribution you want to differ, you need to maintain e.g. a patchset to apply to the upstream repository. Maybe some discussion should go through emails?I don't know.

rmottola commented 4 years ago

GWorkspace -> spatial browser. It was removed, it does not fit in the model of use, caused code issues and bloat GWorkspace -> No network browsing "extra", but mounted filesystems are respected, so e.g. mount your NFS and you can browse it. GWorkspace -> Mounting, several options are supported, it tries to intercept existing automount daemons automatically (at most, try check disks), as well as check discs will automount user-mountable discs. Otherwise, if mounted by sudo they are generaly auto-detected (latest gnustep+gworkspace required)

rmottola commented 4 years ago

Dock & Minicons : right now they remain as they are and the defaults are choosen not to hide each others. GWorkspace has also the Tabbed Shelf. Currently there is no API to show the AppIcon in the Dock (or any other replacement of it) so if you disable them (there is an system-wide default you can tweak) you will loose things like battery level, notifications like email count, CPU load and such.

rmottola commented 4 years ago

Generally, I advise you to install systempreferences and play with it - you can tweak things like minicons, scrollers, decorations without remembering all the defaults name. Some of those settings can then also be set by the Theme, if wished.

probonopd commented 4 years ago

Thank you very much @rmottola for answering. This is very helpful to make sure I don't reinvent the wheel for things that are already there.

GWorkspace -> spatial browser. It was removed, it does not fit in the model of use,

Good to know, so I can stop searching for it ;-)

GWorkspace -> No network browsing "extra", but mounted filesystems are respected, so e.g. mount your NFS and you can browse it.

What I am looking for is to see the network shares that are announced by zeroconf, e.g., machines with sshd. In other systems (like Xfce) you see those, and they get mounted as a virtual filesystem. So I take it that GWorkspace cannot detect network devices (and mount e.g., using fuse/sshfs) yet. So maybe I will write a small helper app to do it (since I don't know how to integrate this into GWorkspace).

GWorkspace -> Mounting,

How does one uinmount a disk or network share in GWorkspace? Essentially I am looking for

image

Dock & Minicons. Currently there is no API to show the AppIcon in the Dock

Why is this? Just lack of time or other reasons? How hard would it be to put them into the Dock? I am just disabling Minicons entirely because I think that is what we have the Dock for. Everything else I find very confusing.

Generally, I advise you to install systempreferences and play with it

Done that, but so far I did not find a way to get the scrollbars on the right-hand side. Is there an extra "control panel" for the Rik theme somewhere?

Again, thank you for your hints, highly appreciated. Feel free to download and test our Live ISO if you like.

AlessandroSangiuliano commented 4 years ago

Hi guys, I'm sorry if i didn't reply to the proposal of testing the distro. I was away from home and i hard worked to fix in uroswm some stuffs of "GNUstep support" branch. Progresses were made and now the GNUstep client windows of an App is right placed inside the frame window. Another step was making the AppIcon to be mapped on the screen without decorating it because GS is using motif hints to say to don't decorate Appicon windows. It actually works at 90% because the AppIcon window appears on the screen when an Appis started but the inside icon is not visible. Closing the App and restarting it solve the problems making the AppIcon window and the inside icon to be totaly visible, obviously this is the right way but still not complete.

Then there is a problem to slve with GS App Client window: when an App is mapped clicking in inside buttons that generates a configure request make the app to be moved on the screen, this shouldn't happen and i have to investigate the reason.

Example: starts SystemPreferences->Modifier Keys (button) and the app will move on the top left corner of the screen. then clicking on the dialog window inside that section will still move the app to the top-left corner of the screen but just few pixel at time, like 1-3 piexels. This totally sucks and need to be fixed, so the way to have GNUstep well supported is still long and need lot of work.

All this to say that actually I can't help testing the freebsd distro you are making, but I will in the future.

Cheers,

Alex.

probonopd commented 4 years ago

Thanks @AlessandroSangiuliano. Keep up your great work!

Letterus commented 3 years ago

Please note that @trunkmaster has written new Login.app and Preferences.app (and some libraries more) that provide interfaces for prefs et. al. at https://github.com/trunkmaster/nextspace/tree/master/Applications. These could be used by this approach as well. For this project these apps maybe should be merged into existing apps from the GNUstep project or be patched to meet the Cocoa UI guidelines. At the end of the day both projects could do things that are technically identical (Sergii is using the new runtime as well), but just look different.

probonopd commented 3 years ago

Thanks for the suggestion @Letterus. I tried to compile Login.app but failed. Can you get it to compile on LIVEstep?

Letterus commented 3 years ago

Thanks for the suggestion @Letterus. I tried to compile Login.app but failed. Can you get it to compile on LIVEstep?

So, here are the results:

Login.app depends on DesktopKit DesktopKit depends on values.h - I don't know which library or framework should include that header. Would you like to help us, @trunkmaster?

Further errors seem to indicate that libdispatch is missing. I did not find a port for that. Is that one missing at FreeBSD, @davidchisnall?

At the end one might end at problems with the Linux integration where you'd have to replace system calls. I've no clue about those… @pgeorgi and me were working at the Debian port at https://github.com/trunkmaster/nextspace/tree/master/Packaging/Debian - I won't have fun to work on both integrations, Debian and FreeBSD…

As far as I know @trunkmaster started with trying FreeBSD but later switched to Linux…

rmottola commented 3 years ago

we have SystemPreferences in GNUstep which is in both looks similar to mac and also implements similar/compatible API.

rmottola commented 3 years ago

To unmount a volume, drag it to the trash, it so since NeXT and classic MacOS

rmottola commented 3 years ago
Dock & Minicons. Currently there is no API to show the AppIcon in the Dock

Why is this? Just lack of time or other reasons? How hard would it be to put them into the Dock? I am just disabling Minicons entirely because I think that is what we have the Dock for. Everything else I find very confusing.

Disable something, but it is not elsewhere. It is not just lack of time, I lack APIs to implement in the GWorkspace Dock (or any other dock replacement) ... so the app sets the appIconImage which is what you are disabling, but that image is not "replicatable" it exists once.

probonopd commented 3 years ago

I lack APIs to implement in the GWorkspace Dock (or any other dock replacement)

Couldn't the macOS APIs serve as inspiration here?