-
Notifications
You must be signed in to change notification settings - Fork 57
Home
helloSystem was partly inspired by my six-part series about #LinuxUsability. I started developing helloSystem mainly by removing what I don't like about other open source desktops as a early and longtime Mac user (frustrated with it becoming increasingly locked down like iOS).
- Build a modern, elegant desktop operating system that conceptually matches the simplicity of Macintosh System 1
- Binary compatibility (newer apps always must run on older versions of the OS)
- Visual elegance matching the conceptual elegance (check out the work of people like https://alexanderustinov.tumblr.com/... let's collect some more here)
- Lots of polish
- Dedicated to personal computer desktops with as little complications as possible (no server stuff, no mobile stuff)
- Be able to run the "Libre Graphics Suite"
- Be able to run on inexpensive devices (e.g., ARM-based embedded systems)
- https://www.folklore.org/
- Oral History of Andy Hertzfeld and Bill Atkinson, https://archive.computerhistory.org/resources/access/text/2013/05/102658007-05-01-acc.pdf
- Learn from Mac OS X how to suck less at system integration https://github.com/AppImage/appimaged/issues/30
- My six-part series about #LinuxUsability https://medium.com/@probonopd/make-it-simple-linux-desktop-usability-part-1-5fa0fb369b42
- History of GNOME and Eazel https://en.wikipedia.org/wiki/Eazel
- Launch Services https://developer.apple.com/documentation/coreservices/launch_services
- MacOS & iOS Internals 1st edition http://newosxbook.com/1stEdIsFree.html
- Poma Ads: Apple Macintosh "Hello 1" (1984) https://www.youtube.com/watch?v=YaFTLrULHwg
- Apple WWDC 2000 Session 144 - Mac OS X: Application Packaging and Document Typing https://www.youtube.com/watch?v=qQsnqWJ8D2c
- Apple WWDC 2001 Session 114 - Application Packaging and Document Binding https://www.youtube.com/watch?v=e7TOAsL-CPY
- 2018 Desktop Linux Platform Issues https://media.ccc.de/v/ASG2018-174-2018_desktop_linux_platform_issues#
- Simplicity wins
- Direct modification of objects (e.g., each object in the filesystem is shown in one place only and has its properties like icons etc. on itself, not in some other files)
- Make it no more complicated to use than Macintosh System Software 1.x
- https://github.com/AppImage/AppImageKit/wiki/Design-principles
- The system = one file
- Each application = one file
- FreeBSD based (not Debian or Ubuntu because the "Linux Desktop" is a mess beyond repair) (Update 2022: http://hackerpublicradio.org/eps.php?id=3705 explains how to use FreeBSD on the desktop)
- Or Haiku? Is Haiku actually "hello" done consequently (whole stack)?
- The operating system is contained inside a single read-only image that the user cannot mess with (think of it as the "System" file in Macintosh System 1). This is booted using SystemImageKit
- AppImages are used for the applications
- A custom or customized desktop environment is used that uses concepts (not: copies the look and feel of) Macintosh System 1 and Mac OS X around 10.4, e.g., global menus, application bundles, no launcher, no applications menu, no app store, just drag-and-drop in the file manager
- (At least) the ABI guarantees and lifecycle of RHEL/CentOS
- Stand on the shoulders of giants
- Change the world
- Build yet another "Linux distribution" with a Mac theme on an existing desktop environment
"As a Mac user that went FOSS I can say, I am tired of the other DEs putting liptstick on the pig. All the changes are just superficial. - @dszidi"
- Screen is a rounded rect, https://manytricks.com/displaperture/displaperture.png
- Use animations to make easy to understand what is going on (not as a mere "bling" factor) https://uxdesign.cc/my-attempt-at-redesigning-the-desktop-experience-macos-case-study-99f5f2fb3b10
In the original 1984 Macintosh desktop, every application was a single file that could be freely moved around in the file system. No installation was necessary. The system used a desktop database that automatically associated files with the applications that had created them (using the type and creator resrouces). The desktop information was stored in two files, Desktop DB
and Desktop DF
).
Source: Wikipedia
Note that when after the merger with NeXT, Apple went on to create Mac OS X, they explicitly stated in 2000 (16 years after Classic Mac OS) that it was their objective to match that level of simplicity for modern applications.
(Source: Apple WWDC 2000 Session 144 - Mac OS X: Application Packaging and Document Typing, 3:22)
NeXTSTEP was an operating system launched by Steve Jobs' NeXT Computer in the late 1980s and is the predecessor to today's macOS. It had a concise concept application system integration. Let's the system describe itself:
Source: https://medium.com/@probonopd/make-it-simple-linux-desktop-usability-part-6-1c03de7c00a9
This is how NeXT Workspace Manager (in 1989) automatically handled file associations using the Apps directory. Note that no files (other than the application itself) have to be copied around, no databases have to be manually triggered.
The applications themselves were directories that the file manager showed like files, but the terminal showed like directories:
Source: https://medium.com/@probonopd/make-it-simple-linux-desktop-usability-part-6-1c03de7c00a9
NeXTSTEP 1.0 filesystem in Terminal vs. Directory Browser GUI
GNUstep is a framework for GUI desktop applications and server applications that closely follows Apple's Cocoa APIs and is portable to a variety of platforms and architectures. According to its homepage, "the completion of a desktop environment is done by other projects like the The GNUstep Application Project or Etoile".
When Mac OS X was created around 2000, Application Packaging and Document Typing merged the simplicity of Classic Mac OS single-file applications with the benefits of NeXT-style application directories, and introduced a new bundle format and Launch Services. This is explained in detail in
- Apple WWDC 2000 Session 144 - Mac OS X: Application Packaging and Document Typing https://www.youtube.com/watch?v=qQsnqWJ8D2c
- Apple WWDC 2001 Session 114 - Application Packaging and Document Binding https://www.youtube.com/watch?v=e7TOAsL-CPY
https://guidebookgallery.org/screenshots/
- hello Menu: What draws the global menu bar. Prototype: https://github.com/helloSystem/Menu/
- hello Filer: File manager (Finder replacement, "Filer") with support for application bundles so that you can manage the system and the apps by drag-and-drop in the file manager ("File manager" in Linux terminology). Also renders the icons on the desktop. Prototype: https://github.com/helloSystem/Filer/
- hello Launch Services: The equivalent of https://developer.apple.com/documentation/coreservices/launch_services (has no Linux equivalent as of yet?)
- hello Live ISO builder: Live ISO image builder that builds a system containing the above components. Prototype: https://github.com/helloSystem/ISO/