I think I want to design and build a desktop environment. I believe I've figured out all the different parts I need for this.

Assigning applications to windows is working!

I only have 64kb of memory to work with, but it's going jam-packed with goodies.

Follow

Awyis! First directory listing. Gonna have to turn this into icons..

· · Web · 6 · 8 · 31

Managed to bind a top menu to a window's application manifest. This whole thing is now at 4514 bytes in size.

If I can keep all desktop environment stuff under 8kb, it'll leave plenty of space for fun stuff.

Dragging windows around makes it feel a bit more real. I love i3's win+click to drag any window under the cursor, so I went with something like that.

You need to press B button the NDS to move the window with the stylus.

While full background redraw is fine on a raspberry pi, it might be a bit heavy on slower devices so I think I'll use this trick, draw an outline of the drag, and only redraw on release.

Started working on something like a desktop :maru:

It's nice to pick and choose from all kinds of UX that I've enjoyed over the years.

We're now at 5kb/64kb

@neauoire getting heavy atari st and early mac vibes

@lyncia going for something inbetween, I won't be able to make something like System 7 in 64kb, but I can do something close to TOS.

@neauoire what is this magic? C64- desktop environment? ♥️😱😍

@neauoire #TIL about this awesome thing. Thank you!
Incredible interesting and inspiring.

Going back home after a long vacation and will dl this right away i get home. ♥️☕

@coffe gimmie a couple more days to make this all nice tho, I've only started yesterday.

@neauoire will do! Think I'm going to give my friend goto80 a visit and try to understood this Orca-thing first. He has a way of understanding odd music-things. Hopefully he can give me a push in the right direction. Keep on truckin' and stay safe! ☕

@neauoire and i mean odd in the best way! Odd as in fun, inspiring and playful.

@coffe Lemme know if you have orca-related questions :) I'll be more than happy to help as well.

@neauoire
Any thoughts regarding a 16-bit 68000-style big sister to Varvara?

Something with a different set of limitations for a different set of problems (i.e. fun!)

@neauoire
Oh, I know there are shorts, but I was thinking of a little more memory and maybe some more graphical tricks... something like a HAM mode or some raster interrupts for palette shifting trickery ;)

@RL_Dane Ah! you mean like adding new devices! Yeah, that could be fun, I have ideas for a full color screen device at some point :)

@neauoire
Sweet!
Really early Macintoshes had experimental third-party displays that basically used the printer port to "print" a color image to the screen. Never saw one in person or heard any details on how they worked, but that's the general gist I could gather. Very hacky and interesting.

Later on, there was the ScuzzyView, which was basically a video card for the SCSI port for compact macs. Insanely cool hack. 8 colors using "monochrome" Quickdraw (because the printer could produce 8)

@RL_Dane yeah exactly, that wouldn't be too hard to do actually, like "show me this TGA image in full color", it wouldn't impeed on the applications in any way who don't need it.

If someone ever has a use for it, I'll implement it :)

@neauoire

Nice! That actually reminds me of early multimedia software that used hypercard on the mac to display images on a laserdisc. The navigation GUI would be in monochrome on the mac, and it would just tell the player which frame (or video clips) to display via the serial port to the LD player. Cool stuff!

@neauoire
Raster interrupts/display lists or at least a vsync register would be fun to have, too, for some hacky demoscene-style effects.

@neauoire idea: workspaces and workspace files

when you switch away from one workspace to another, all the memory from one is put into a file, and the memory from the other's file is loaded. this would allow you to have essentially unlimited apps open, and a little bit of sandboxing too

idk how possible this'd be tho 😅

@neauoire I was thinking about launchers and a "multithreaded" runtime a while back. How does the launcher handle absolute references or jumps in subprograms?

@awildthorp I don't think I have the programming vocabulary to explain this in a way that would make sense :/

@neauoire No worries I might not have the vocabulary to understand the solution anyway xD

I'll have to take a look at the implementation sometime. I think if I look at the launcher it should make it clear

@neauoire
That works!!

Strictly a preference thing, but you're not going to put the icons on the right side like the classic mac? Do we have Windows 95 nostalgia mixed in, too? 😆

@RL_Dane Probably not, it would be a slower and more complicated code to align right haha.

@neauoire
Interesting. I hadn't thought of that.
Of course, it wasn't actually right-aligned in the classic macos, but rather centered below the icon, but you have to make the best use of the screen real estate as you see fit.

@RL_Dane I'm trying to make it as fast/small as I know how to make it, most of the drawing of the screen is one big hack!

git.sr.ht/~rabbits/potato/tree

@neauoire
Interesting! I'm looking forward to learning more. Haven't had much free time to study, but it's on my list! :D

@neauoire @RL_Dane
Are you familiar with Bill Atkinson's QuickDraw tricks? I suspect the answer is "yes" but asking just in case because they seem to be somewhat forgotten because Apple used to have a patent on them.

https://patents.google.com/patent/US4622545A/en

The original source code in all of its 68K glory is available here:

https://computerhistory.org/blog/macpaint-and-quickdraw-source-code/

(I know I had a bookmark of a blogpost explaining how the region trick in the patent worked, but I can't find it now)

@neauoire @RL_Dane

This might have been the blog post I was thinking of.

http://basalgangster.macgui.com/RetroMacComputing/The_Long_View/Entries/2010/8/29_Regions.html

(tangent: what happened to online search? Filtering out irrelevant search results to find this was an incredible pain)

@vanderZwan @neauoire

I was mentioning Atkinson's QD tricks a while ago, but didn't have a source for them. Thanks for the info!!

@neauoire This seems like a super reasonable trade-off. Back when I used twm years ago, I actually quite liked that feature.

@tty ah! yes, I couldn't remember where I saw this, but yes :) twm does that

@neauoire

My FVWM desktop works in that way: just an outline until the mouse button is released, both for moving and resizing.

@neauoire it's actually quite common, especially for certain use cases. For example windows had (has?l this feature and it's very useful for remote sessions (it was the default) via RDP, just because it saves performance a lot

@neauoire yeah i've always liked the look of this -- it's quite stylish

@neauoire
It's got a "Finder!" The feels!

No "chessboard" 50% color desktop pattern, though? 😄

@RL_Dane yeah, right now my wallpaper is just
0000 0000 0000 0001, but it could be a checkboard haha

Sign in to participate in the conversation
Merveilles

Revel in the marvels of the universe. We are a collective of forward-thinking individuals who strive to better ourselves and our surroundings through constant creation. We express ourselves through music, art, games, and writing. We also put great value in play. A warm welcome to any like-minded people who feel these ideals resonate with them.