Skip to content

[Feature request] Catclock #108

Open
@markusbkk

Description

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.

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions