I’m not sure if this is copyleft license, regardless, FireFox became what it did because of that.
It seems our wonderful developer has released the code on Github for TotalSpaces, he / they obviously didn’t advertise this, but here it is:
Option 1] So, out of our community here of, what, approximately 1000 users, not one of us knows a friend of a friend or who has an uncle or something who is a coder? I’m sure we can all pull our strings and find SOMEONE to make this compatible and release a re-compiled working Ventura 13.1+ version for both intel and M2 macs.
Option 2] We all put together a fund, a group fund. A tiny contribution from each member will amass a large sum. The fund leader then goes and posts a job on UpWork.com and hires the best fullstack developer to create a fully working version of TS3 for M1 & Intel mac on Ventura 13.1+, WITH all those extra desktops we had access to in Catalina. (35+, not the limited 16.) I’d estimate they would charge $5000 for this, so we would be like $100 each person x we’d only need 50 members, and we can use a USDT wallet for ease of transactions and transparency. Maybe even find a group Escrow service.
What do you guys think? Then maybe the original coder would allow it to go copyleft license?
If we can get the full source code and some agreement with BinaryAge that they will accept a fix, I’m in for option 2 with $100. Not sure they will want to commit to that, though.
@7thzombie That is not the source code. “i18n” is a fancy short for “internationalisation,” thus meaning this is only a repository for translating keys used in the project. You don’t need to be a programmer to read the description on that page.
@stephen Just put all the source code in a repository and developers will start working on it! It’s not that difficult. People may start creating forks, and people may start raising pull requests. If you want to be paid for it, and that’s fair enough, just say so, many people here are willing to pay.
Project Lead who makes decisions on what goes into build and release.
Stephen obviously doesn’t have the time to constantly contribute, so he needs someone to maintain the project and then he will most likely add his input when he does have it.
Sigh… ok, I’ll bite. At least initially, and with few promises. Then again, it can’t get any worse .
But only as a decision-maker, also with respect to which direction/what focus we should spend the money on. Of course, I want to do that with input from the community but unless someone convinces me to prioritize something else, I will work with these priorities:
What I really, really miss is the ability to drag a single window along with the left/right/up/down arrows.
Plus a restart button (unless someone fixes the fact that it becomes “unresponsive”, of course)
Unless it’s easy to do both Intel and M1/M2 architectures without extra cost, I’d like to focus on that. That’s the future, and I’m lucky enough to already be there (M2! ). However, if that makes us loose too many contributors, it’s a toss-up that needs further study.
Broadly, what language(s), libraries/packages/frameworks do TS2 and TS3 use? I work as a software dev and am invested enough that I’d be interested in maintaining it, but without some hints as to the specifics I can’t say if I have the correct qualifications to do so.
TotalSpaces predates the move to Swift, so I reckon it’s mostly Objective-C. I would think some C or C++ could be useful as well. Some Swift knowledge might come in handy. Namely UIKit, not SwiftUI. It’s very unlikely there is SwiftUI in the codebase.
XCode 4 was released with Mac OS X 10.7 (Lion), which was the first system to drop the original Spaces. So I think that, if you need to track back to the version of Objective-C most used back in the day, you are likely to find the features available from version 4.0 onwards. Off the top of my head, things like synthesisers were not supported on versions 3.x, but things like that are not a huge deal.
Alright I’m not the best software engineer but I’ve been employed as one for 6 years so if we absolutely need someone to step up as a maintainer I’ll volunteer. I have decent enough software engineering fundamentals to be language agnostic at this point; I’ve worked on a lot of projects where I didn’t even know the language before I got put on the project, so I am fairly confident I can figure things out, given time and enough scaffolding (comments, history, instructions on how it worked/works.). Hopefully.
I hate Mission Control and Stage Manager and am fully committed to never use newer MacOSes as my main OS if it requires giving up Snow-Leopard-Spaces / post-10.6.8 TotalSpaces-like behavior[1]. I have to believe that level of spite and stubbornness combined with my experience as a software engineer can produce some sort of useful progress.
I do have a spare laptop that’s running OCLP Monterey and could run Ventura, has the latest XCode set up, and I could use that as a dedicated development environment.
[1] I tried Yabai and wasn’t able to get my specific workflow down to my satisfaction, so I’m very interested in getting TotalSpaces3 the rest of the way to functioning. In terms of features it looks like it’s close!
@stephen, can we talk about it? Consider this me formally volunteering to be a maintainer. I’m wiling to sign an NDA or non-compete if you want, so that if I decide this is beyond my abilities I can’t just take the secret sauce and make a clone
Disclaimer: I’d need to focus on the Intel build first as I only have Intel machines, but if I make enough progress there that it seems worthwhile for me to work on it, I’m sure I can source a used Apple Silicon device to develop on.
You can’t just find any “coder” or “full stack developer” - especially on Upwork - that would actually know what to do with the TotalSpaces codebase. Most “full stack developers” are web developers - either backend devs with some frontend experience, or frontend devs with some backend experience. Even someone who is well experienced is still a web developer.
As discussed here - TS3 is most likely written in Objective-C if not Swift. And beyond that - it’s not a simple window with some buttons that make an API call. (Public) APIs for Spaces don’t exist. From my understanding - TS3 is using Accessibility APIs to switch between spaces and Screen Recording APIs to present the animations. As some have noted - this can be very error prone as we’ve seen in the alpha. This would require someone who is very very very familiar with macOS at a low level. Not just someone who knows Objective-C or Swift or made a few Wordpress sites and created an Upwork profile listing themselves as full stack developer. I’ve spent plenty of time wading through that world when I was looking for iOS developers for a startup I was part of.
And for all of those same reasons above, I think Stephen needs a maintainer who is familiar with all of these things and can help drive the project forward and make actual technical design decisions. Not someone who is just reluctantly saying “fine, I’ll do it”. Not someone who picks colors or moves money (which won’t really exist once it’s open source after a few weeks, honestly) around. There might be a few people excited about these things, but unless there’s strong technical direction and organization - this will fizzle out like so many other open source projects. Look at how other massive open source projects (for example - I’m a KDE user when I’m on Linux, and have tried to contribute a tiny bit) with much more popularity and wide reach still really struggle to receive and manage quality contributions.
Right, you are spot on the tech requirements, but I think you are wrong about having to find the right person first. A capable Objective-C developer can probably compile and run the project and then start getting his hands dirty with Kernel extensions and trying to improve TS slowly.
Not releasing the code is worse because Apple is releasing one major version of Mac OS every year. Soon enough the whole codebase will be severely outdated. I just installed MacOS Sonoma and it keeps an icon lit on the menu bar because TS is recording my screen. The warning can be prevented at code level, but only by using the most recent APIs from Apple. If Apple updates Mission Control, and they are doing it and rebranding it every year, soon TS will be unable to tap into it.
Releasing immediately will give developers a chance to poke around and play with it, which beats just leaving it to rot in a digital cemetery somewhere.
I take my hat off to @StegosaurusFriend. He compromised even to avoid litigation. What is wrong with his volunteering? Why is it not sufficient?
What else do you need @stephen? Will you just let the project die?