So I’m still working on my little project in my spare time. Admittedly I haven’t done a lot in recent times on it, but since I got a bit tired of playing EVE night after night, I thought it is time to do something productive and get back to that. So I did some revisions on the code what is ultimately meant to be a desktop operating system, and the changes are quite interesting.
I figured out that there is a way to communicate between two different programs, meaning processes, as long as these processes share the same implementation of code. The solution for this is called GNUstep Distributed Objects or simply DO. There’s a little tool called gdomap which is given to you when you install the GNUstep environment, which can be opened at system boot time, making sure you always have it. It’s a little daemon inside which you can store GNUstep objects for others to access.
Using this approach, I can now create incredibly fast and lightweight code, while creating an API for others that makes it super-fast to create applications. You can change content of the menu bar with one line.
So as of the moment there are certain things implemented, very important for desktop handling:
lastGI – The laststep Graphical Interface (framework)
With this, you simply use any of the elements like button, progress bars etc., for your application. Very simple to use, allocated like normal Objective-C objects, and can be manipulated the same. However the framework is specific to the system and has modified implementations of existing components, LSWindow for example is a modified version of NSWindow with methods and functions to access the laststep specific menu bar.
MenuService.app – The menu bar
Very important system service. Graphical front-end which mainly holds the menu of the application that has focus, as well as little other elements such as a clock, or a system tray (haven’t figured this one out yet), as well as an icon for the app that currently has the focus. In LSWindow there is gonna be a method to display the right menu.
DesktopService.app – Uhm, Desktop?
Nothing fancy right now. Only a huge window as big as the screen, and does not much in the moment.
So as you can see, it is progressing… I’ll keep you posted.
Related posts:

