I only recently reached an alpha - and I am looking for testers!
- Alpha screenshot: https://drive.google.com/file/d/1Wi6MqxC17iIzfSL--_nNxHxbID1...
- Rambling why I built it, plus Discord link: https://progress.compose.sh/about
I only recently reached an alpha - and I am looking for testers!
- Alpha screenshot: https://drive.google.com/file/d/1Wi6MqxC17iIzfSL--_nNxHxbID1...
- Rambling why I built it, plus Discord link: https://progress.compose.sh/about
I would've enjoyed an "About" tab, or something similar. I like your basic approach to the app, but if you did want to share more with your users, I think that'd be a good thing.
The key distinction is it's built to be extended with third-party plugins (think Obsidian). I stopped using uBar because it had features I needed, but it's not actively adding features anymore last I checked. And of course, this will be fully open source.
This solves a lot of problems I have feeling productive in any not-MATE UI. More here: https://progress.compose.sh/about
It's in active alpha development but has all the core features you'd expect: taskbar works great, but only a basic system tray and start menu. And it'd be very much an alpha that needs feedback :-)
Explaining a difficult concept in terms anyone can understand. Great diagrams and examples. And top marks on readability UX for spacing and typography.
OP, what inspired you to create your current theme? Have you ever considered creating an engineer-focused publishing platform?
You may consider starting with a simple unique value proposition and reworking presentation from there.
Take the first sentence of the Readme as example: "Superstreamer is a self hostable platform that aims to simplify the complexities of video delivery" - and answer questions:
1. Who is benefiting?
2. How is this better?
3. What complexity is being solved?
4. What's the tangible outcome, or CTA?
5. What well-known alternative is this related to?
ChatGPT took a stab at it. Not amazing, but something to start with:
"Superstreamer is a self-hosted platform that simplifies video delivery, giving you full control over your content without third-party dependencies. Reduce costs, customize your setup, and deliver high-quality streams with ease. Drop <competitor> today and get started in minutes."
Also simple things like defining an acronym before it's used goes a long way.
Overall presentation, UX, design, code quality, and detail is a homerun IMO. Nice work, I can tell you put a heap of passion into it.
I saw others already mentioned uniqueness of city names. In the US there is no guarantee a state, zip code, or even county won't have a duplicate city name. To solve this one must store the lat/lng coordinates instead. Then offer users a search list of matched cities, so they can select the right geographic location.
Good stuff - cheers!
Coming from Hyprland and even KDE, Windows seems to be lacking a bit out of the box, but maybe I'm missing something deeper about how it all works.
I'm naturally biased then to early Windows and MATE-esque environments. And, it's worth noting that I despise Win11 overall, so a better comparison is indeed Linux Mint MATE[1]. Part of the project inspiration is to never use Windows 11 again, actually!
Before I started the project I wrote down what I consider productivity boosters for me:
1. Fast context switching between open apps and windows, natively. All open apps are in front of me by way of the taskbar, always, and never hidden. I never have to think about where to find my immediate work. I can group apps, pin them, and create custom behavior for them.
2. System tray apps for things that you interact with often, but aren't necessarily immediately working on. Macos has something similar but it isn't really pluggable or widely used yet, and nowhere near as customizable. With Win10 I can add, remove, or hide system tray apps based on how I use my workstation best.
3. Optimized Start Menu. I press a button, I get access to things I've favorited, recent apps/files, and categories of apps I use often. It is highly customizable in Win10, while I struggle to have something as efficient in macos (even though macos global search is wonderful!).
I feel like the old UX rule of "don't make me think" applies heavily here. The macos app dock is a great example of this. You're forced to think about what you want to do with 10-20+ options glaring at you. Disabling the dock is the first thing I do on a new Mac ;)
Lastly, Win10 lets me customize my system to a high degree as my needs change. I just don't get that with macos, nor have I found apps that hit the mark for me.
I'm curious about your own experiences if you care to share :-)
-
[1] Linux Mint MATE: https://www.linuxmint.com/rel_vanessa_mate_whatsnew.php
It has been a wild ride. Often frustrating but rewarding. Some days I may spend 10 hours solving an API for which app is frontmost at a given second. Sure, there's a system API for that, but it doesn't even remotely cover edge cases that exist. And many times with no answers out there on how to do something, it feels like I'm the first, so finally solving it is a great endorphin rush.
Part of the complexity is I wanted the app to be completely pluggable, kind of like Obsidian. The app communicates events to a local socket server in full duplex, which enables cross-plugin communication (but also cross-app!). Plugins access the app's JavaScript system bridge API for pubsub and system calls through a Webkit interface. Edits are hot reloaded and instant, no compile time necessary. The first time I could change my "Start" menu in real time through JavaScript/CSS was quite a feeling.
Sadly, I couldn't leverage existing tools like Tauri or Electron. They don't have adequate system bridge APIs available, and would be more work to leverage instead of less. They are too general, whereas this project only builds to macos. Therefore it can be much more complicated (and useful) by design.
I originally set out to be more productive in macos. But I've also spent time making prototypes for fun. A desktop widget system, real-time system color theme set from Spotify album art, live video desktop backgrounds from Twitch/YT, a Destiny 2 macos system theme, etc.
I plan to open source it and build a community around it one day.
Even though I am not your target audience (linux i3 user myself), I would be interested in knowing how much "hacking" the macOS system is required to do this. Is it hard to get a list of running apps for your Task Bar? Is it hard to list the apps for the menu? How about keeping it all "on top" while other windows e.g. get maximized/minimized/full-screen, etc?
You actually nailed the major pain points. Particularly window focus and state management. I've spent months solving this problem alone.
-
1. Applications data list: Getting the list is easy! Finding out which apps in that list are "real" apps isn't. Getting icons isn't. Reliably getting information on app state isn't. Finding out why something doesn't work right is as painful as can be. Doing all this in a performant way is a nightmare.
2. Applications menu renderer: Rendering the list for the menu is easy enough: the macOS app sends this data via socket. The frontend is just web sockets and web components under the hood (https://lit.dev). The difficult part was converting app icons to PNG, which is awfully slow. So a cache-warmup stage on startup finds all apps, converts their icons to png, and caches them to the app directory for read.
3. Window state: again, by far the worst and it isn't even close. Bugs galore. The biggest issue was overriding macOS core behavior on what a window is, when it's focused, and how to communicate its events reliably to the app. Although I did include a couple private APIs to achieve this, you can get pretty far by overriding Window class types in ways that I don't think were intended (lol). There is trickery required for the app to behave correctly: and the app is deceptively simple at a glance.
-
One bug, and realization, that still makes me chuckle today.. anything can be a window in macOS.
I'm writing this on Firefox now, and if I hover over a tab and a tooltip pops up - that's a window. So a fair amount of time has gone into determining _what_ these apps are doing and why. Then coming up with rules on determining when a window is likely to be a "real" window or not.
The Accessibility Inspector app comes standard on macOS and was helpful for debugging this, but it was a pain regardless.