Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature request] Catclock #108

Open
markusbkk opened this issue Oct 26, 2022 · 2 comments
Open

[Feature request] Catclock #108

markusbkk opened this issue Oct 26, 2022 · 2 comments
Labels
enhancement New feature or request

Comments

@markusbkk
Copy link

Is your feature request related to a problem? Please describe.
Technically, it should be a crime to ship an operating system without a clone of the venerable X10/X11 catclock 馃樃

Describe the solution you'd like
I'm in the process of creating a "naive" implementation myself but would like to ask for some help.

While the eyes and clock hands are CSS primitives, the base "sprite" is essentially re-used from catback.xbm.
I converted it to a PNG through Convertio and then used another online service to vectorize it (surprisingly, the result is better/closer to the original than what I had previously been able to produce through Inkscape).

My knowledge of vector graphics and the SVG format is rather limited and I'm stuck attempting to remove the white background from the base stencil (see SVG file below) I generated through PngToSvg.

Would be great if somebody could help and remove the white background without changing other attributes (as a happy little accident will have it, I'm able to partly colorize the SVG with custom CSS variables, similar to how the original can be colorized).

Describe alternatives you've considered

An alternative is to recreate the entire look through CSS primitives and/or handwritten SVG, or by having a talented vector artist pen a high res replica.

Another alternative is to use an HTML canvas to emulate a framebuffer and render the original xbm pixel by pixel, ideally doubling all pixels for a higher resolution. That, however, seems rather a bit more complicated (especially when it comes to addressing the correct pixels for colorization) and will probably be less performant.

Additional context

The SVG in question (I changed height/width to 100% each, so it scales with the window. Other than that, it's straight from PngToSvg)

image2vector

Demo:
Screen-recording-2022-10-26-10 07 43-PM

I will open source the full code as soon as it's properly polished and has the correct graphics (still missing the tail, too).
Note that the kind of grainy/retro look of the demo is from the WEBM to GIF conversion and not part of the initial offering (although I dig it enough, I might consider adding full screen filters like that).

As a follow-up, I'd also be interested in implementing frameless windows with custom handles for this, sometime down the line.

Your OS is, by far, one of the top 5 things I've found on GitHub throughout the years.
I was actually working on an OS similar to yours myself, but I was too fixated on certain hard-to-implement details so it never took off the way yours did.

@markusbkk markusbkk added the enhancement New feature or request label Oct 26, 2022
@tobychui
Copy link
Owner

Hi @markusbkk ,

I have asked around in the authors group, it seems no author is free to help you with this feature. Maybe you can ask around in the ArozOS user telegram group? You can find the link in the README file.

Thanks for your feature request :)

@markusbkk
Copy link
Author

Hi @markusbkk ,

I have asked around in the authors group, it seems no author is free to help you with this feature. Maybe you can ask around in the ArozOS user telegram group? You can find the link in the README file.

Thanks for your feature request :)

I left Telegram due to too much drama (living in Germany, it's also not safe for me to be on there. Not with the current German government)

Anyhow. I made some progress removing it from the PNG and tracing it without the background.
Next I might give editing the original XBM a try.

RN I'm experimenting with turning the whole thing into multiple (P)react components.

Coincidentally, I just got the original catclock to work in Greenfield.

IMHO, integrating Greenfield with something like ArozOS would be an absolute killer-app.
With decent performance optimizations and GPU acceleration on the Greenfield/Wayland side, we would have the building blocks for a wholly new distro with the ability of running GNU/Linux applications straight in the browser.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants