helloSystem / hello

Desktop system for creators with a focus on simplicity, elegance, and usability. Based on FreeBSD. Less, but better!
2.31k stars 57 forks source link

Why not just build on top of KDE? #162

Closed BennyKJohnson closed 3 years ago

BennyKJohnson commented 3 years ago

Hi,

First of all thanks for your Linux usability articles and your contribution to the Linux community with the App Image system. As a current MacOS user and someone who is dipping their toes into the Linux/BSD OS world, the Hello System project is quite interesting to me.

I agree with the majority of your ideas around user experience and would love an open OS that embodies the design principles you have discussed. As a software engineer however I do have concerns about your approach. Building a distro is a huge undertaking. What is concerning me is you're building it using half baked components. I've noticed forks of a file manager, a dock and a menu bar. All these components are lacking in a lot of features compared to the main alternatives such as Latte Dock and Dolphin file manager. This is a problem because instead of focusing on what makes Hello unique, you are spending a lot of time maintaining all these components. I think you are a bit too ambitious with what you're trying to achieve and I fear your going to burn out before this project even gets off the ground.

In its current state, Hello is not suitable for day to day usage. Someone can admire the project from a virtual machine, but then they will go back to their main OS. I believe this is a huge problem from a motivation standpoint. It will be difficult to attract users and contributors as there are currently too many compromises.

My suggestion would be to focus on adding your special sauce by standing on the shoulders of others. Why spend time adding basic features and maintaining when you can use other peoples work that do a better a job? Choose areas where you can add the most value by filling in the usability gaps. If this was my project, I would start with a fully functional KDE environment on top of BSD. It could come with the global menu widget and latte dock out of the box. It would ship with the most common apps like Firefox, Thunderbird etc. This would be unique enough combination to be interesting. I would then focus on areas where I can add the most value. Maybe starting by adding deep integration of AppImages into the OS. I would continue with this approach slowly but surely chipping away at the usability gaps. With this approach, the OS would be usable as a daily driver from the start and the user experience would improve over time. I get that KDE is not perfect, but in my opinion you are better off having an Distro that's not perfect but functional today than having a Distro thats barely performs what is needed in a modern OS and has a high chance of being abandon because the scope of the project is too large.

I wish you all the best with your project.

probonopd commented 3 years ago

Hello @BennyKJohnson

Thanks for your thoughts.

Building a distro is a huge undertaking.

Indeed. Hence we don't want to "build a distro". helloSystem is still FreeBSD, but preconfigured to do out-of-the-box what it is supposed to do. The base system and almost all of the packages come 1:1 from FreeBSD and FreeBSD Ports.

What we are building, though, is a desktop environment. We are putting it together from existing components rather than strating from scratch, but then go on to simplify things. In choosing components, we are going for the ones with the least amount of dependencies outside of Qt.

All these components are lacking in a lot of features compared to the main alternatives such as Latte Dock and Dolphin file manager.

Sure, but that is the point. Our Dock, for example, has no configuration. Our Filer is getting the features we really care about (icons for volumes on the desktop, Command-I for Get Info, etc.) and maybe some day we will find a way to add [Miller Columns].

In its current state, Hello is not suitable for day to day usage.

As someone who is using it every day exclusively since half a year I have to disagree.

I would start with a fully functional KDE environment on top of BSD

Let's distinguish between the KDE project and the KDE Plasma desktop. helloSystem is happy to use components from the KDE project, but instead of the KDE Plasma desktop we are using our custom helloSystem desktop environment.

While we do use some KDE components and applications, we think that the architecture of the KDE Plasma desktop is overly complex with layers upon layers of infrastructure, and way too many configuration options. Our objective is to make computing simple again, and KDE Plasma seems to value flexibility and configurability over being lean and being simple.

Can you point out concrete examples that make helloSystem "unusable as a daily driver" whereas KDE Plasma seems viable to you?

It could come with the global menu widget and latte dock out of the box.

Those do not work exactly in the way we would want them to work. As for the Dock, it is possible that it will go away entirely in favor of an Applications menu.

It would ship with the most common apps like Firefox, Thunderbird etc.

Those are not native Qt. Our objective is to remove Gtk along with other unwelcome technologies.

adding your special sauce by standing on the shoulders of others

Fully agree. Hence we are starting from existing pieces. But in line with our mission, we are usially choosing the simplest ones we can find, not the complicated ones. I call it "software minimalism".

BennyKJohnson commented 3 years ago

@probonopd thanks for your reply. Sorry I didn't make the clear I was talking about the KDE Plasma desktop. Out of the desktop environments I have tried, I found KDE Plasma allowed me to get the closest to the capabilities of MacOS. Although I needed to configure a lot of it.

Can you point out concrete examples that make helloSystem "unusable as a daily driver" whereas KDE Plasma seems viable to you?

Here are use cases I think are important from a modern OS that I found were missing currently in Hello.

Missing file manager features

Configuration

Obviously everyone's idea of what features should be in a desktop OS are different, but I think every major OS has these features already and most users would come to expect them. If simplicity and minimalism are your goals thats great, but your are also marketing HelloSystem as an option for MacOS switchers. If making Hello into a viable alternative to MacOS is your intended goal, I think Hello needs a lot of work before it even comes remotely close to achieving that goal. The amount of work required would take several years to achieve. My 2 cents I was trying to get at with this issue is that starting with an existing desktop environment like KDE Plasma and ripping out the stuff you don't like and modifying stuff you need would be a far more effective way to prototype and test your ideas.

Those are not native Qt. Our objective is to remove Gtk along with other unwelcome technologies.

While GTK has its issues. I think it's much better to provide the user with the most capable software. Users don't care what the the underlying technology is. They just care their favourite software works.

probonopd commented 3 years ago

Thanks @BennyKJohnson for your explanation. While we don't have everything yet, we do have some of the things you are asking for, and have others on our roadmap. Some things we would like to avoid - like the user having to configure stuff. Everything should "just work" without the user having to "fiddle around".

So here we go...

As a user I want to install software without going to the terminal

Agree. In fact, we assume that most users of helloSystem will never see the terminal nor know what it is. For example, we ship many curated applications that will be automatically installed when the user launches them for the first time, including software for

Unfortunately going to the internet to get apps is not really an option as FreeBSD support is unavailable for the majority of apps

I am not sure what you mean by this. You do realize that most open source applications have been ported to FreeBSD? Eventually we will have a graphical application to get download applications from the FreeBSD ports/packages system. In the meantime, the user can use pkg install <name>.

As a user I want to be able to play a video, how do I do this?

Just double-click the viceo?

As a user I want to get an overview of all my open windows (Exposé in Mac, Activities overview in Gnome)

That is a relatively new feature that was never part of Classic Mac. I don't really use it to this day. If you have so many windows open that you can't keep track of them anymore, it's probably a good idea to close a few.

As a power user I want to have access to multiple desktops

That is also a relatively new feature that was never part of Classic Mac. Would confuse most users we are targeting.

As a user I want to quickly switch tasks using the keyboard with a task switcher

Command-tab like on the Mac.

As a user I want to be able to search for files. I want to be able to search for files by filename, contents and metadata.

Right now we have Search in the Tools menu of Filer. But yes, full-text search is on the agenda.

As a user I want to extract a zip file at my current location.

Starting with 0.5.0 you will be able to double-click a zip file and it will open like a folder.

As a power user I want plugin services to perform operations on files.

Starting with 0.5.0 you will be able to extend Filer with your own scripts following https://hellosystem.github.io/docs/developer/filer-context-menus.

As a user I want to configure my network settings

Why? Everyone is using DHCP and expects things to "just work" without having to fiddle around. And it does. Very advanced users have all the power FreeBSD offers.

As a user I want to change the time display format and timezone

Again, why? If we do our job well, it will "just work" out of the box. (But yes, we are not entirely there yet. We need more autodetection.) Again, very advanced users have all the power FreeBSD offers.

As a creative/power user I want to be able to install fonts

Just copy them to /usr/local/share/fonts/. A Fonts utility would be a welcome addition indeed. (We have been looking for a good yet simple one but not found one yet.)

As a power user I want to have applications automatically start on login

Easy. Just put a symlink into /Applications/Autostart/.

kettle-7 commented 3 years ago

A Fonts utility would be a welcome addition indeed.

I was thinking exactly that as well (I like choosing my own fonts) I'm making a Fonts utility now (should it go in Preferences?)

kettle-7 commented 3 years ago

Fonts.tar.gz There you go @BennyKJohnson

You can go to Google Fonts, pick a random font (or a not random one), and in the top-right click 'Download Family'. It'll download a ZIP file. You still need to open a terminal and run cd Downloads; unzip your_font.zip, but from there you just open the Fonts app and drag the .ttf files from Filer into Fonts. If you want to get rid of a font, click on it and press 'Delete Font'.

It should show up immediately in all of your apps (at least the Qt ones)

Now time to write an unzip app!

kettle-7 commented 3 years ago

I've got a screenshot of it here: image

probonopd commented 3 years ago

I'm making a Fonts utility now (should it go in Preferences?)

Nice. Is it PyQt based? I could imagine that we integrate this as a right-click/open-with action, not a an application the user launches manually. Wdyt?

Let's start a new ticket regarding the Fonts application though.

Back to the original subject of this post, we are currently evaluating KWin and will likely switch to it at some point.

BennyKJohnson commented 3 years ago

I'm happy to close this issue. I still think leveraging the existing functionality of KDE Neon would be beneficial, but agree to disagree. While HelloSystem does not suit my needs, I'm excited to see what HelloSystem grows into.

probonopd commented 3 years ago

Over time you may see more KDE components show up in helloSystem, e.g., we are looking at kwin_x11 right now @BennyKJohnson. But overall we are aiming for way less need to configure things to get our desired out-of-the-box experience.