You are browsing as a guest. Sign up (or log in) to start making projects!

berryOS

  • 8 Devlogs
  • 6 Total hours

This is my very own OS that can be run in the web!

Ship #1 Changes requested

webOS, directly ran inside your browser (desktop app coming soon?)

What is it? - berryOS is a "simple" webOS that allows you to have your own little Catppuccin inspired operating system right inside your browser! It offers a notes app, welcome page and a settings app (more apps to come).

What I learnt - I found this project as a good way to learn SvelteKit, as ReactJS has gotten me very pissed off, and SvelteKit seemed like a good alternative to React as it has no heavy virtual DOM. Overall, SvelteKit seems like a choice I don't regret, as it does everything I need it to do!

What's coming next - Proper alt tabbing system, persistent settings, more apps, desktop icons, terminal, browser (possibly), desktop and more!

Try project → See source code →
Open comments for this post

46m 16s logged

Custom desktop and accent colors!

I added a modular color picker component in the Personalization settings panel. Clicking a preset or using the native eye-dropper custom color tool instantly updates buttons, icons, switches, and highlights across the entire OS. I also implemented a FileReader data-stream pipeline. Users can upload any .jpg, .png, or .webp file from their local machine, converting it to a base64 string to update the active desktop background immediately. Also, if a user doesn’t have a custom wallpaper, the default desktop gradient now intelligently samples the chosen accent color, blending a low-opacity hue directly into the dark/light background.

Custom desktop and accent colors!

I added a modular color picker component in the Personalization settings panel. Clicking a preset or using the native eye-dropper custom color tool instantly updates buttons, icons, switches, and highlights across the entire OS. I also implemented a FileReader data-stream pipeline. Users can upload any .jpg, .png, or .webp file from their local machine, converting it to a base64 string to update the active desktop background immediately. Also, if a user doesn’t have a custom wallpaper, the default desktop gradient now intelligently samples the chosen accent color, blending a low-opacity hue directly into the dark/light background.

Replying to @SysError06

0
2
Open comments for this post

1h 19m 24s logged

Alt tabbing (sort of).

A lot of this time was spent refactoring the window system to use a windows object.

To start off, I tried adding a navigator.connection API to try and identify cellular vs wifi vs ethernet structures, however as of reading the MDN docs it turns out its not a very common API, with Firefox dropping it as of Firefox 31, and Safari never having it in the first place, I ended up switching to the onLine/offLine property, which is supported by all mainstream browsers.

Also Alt + tab is currently slightly broken, as it does not yet show a window preview, as well as not properly focusing the chosen window, however this is something I will tackle later on, as I plan on adding custom wallpaper support now.

Alt tabbing (sort of).

A lot of this time was spent refactoring the window system to use a windows object.

To start off, I tried adding a navigator.connection API to try and identify cellular vs wifi vs ethernet structures, however as of reading the MDN docs it turns out its not a very common API, with Firefox dropping it as of Firefox 31, and Safari never having it in the first place, I ended up switching to the onLine/offLine property, which is supported by all mainstream browsers.

Also Alt + tab is currently slightly broken, as it does not yet show a window preview, as well as not properly focusing the chosen window, however this is something I will tackle later on, as I plan on adding custom wallpaper support now.

Replying to @SysError06

0
2
Open comments for this post

42m 4s logged

(flashbang warning)

Light mode!

Changes CSS values to respect the theme detection, also tries auto detect light/dark mode based on browser settings.

Oh yes also changed up the topbar to look better (looks alot more like macOS now which I may change in the future.)

(flashbang warning)

Light mode!

Changes CSS values to respect the theme detection, also tries auto detect light/dark mode based on browser settings.

Oh yes also changed up the topbar to look better (looks alot more like macOS now which I may change in the future.)

Replying to @SysError06

0
2
Open comments for this post

29m 44s logged

Simple stuff this time around, just made the desktop look more like macOS, will probably edit though so it doesn’t look TOO similar. Will add the ability to change dark/light mode and background next!

Simple stuff this time around, just made the desktop look more like macOS, will probably edit though so it doesn’t look TOO similar. Will add the ability to change dark/light mode and background next!

Replying to @SysError06

0
2
Open comments for this post

1h 31m 7s logged

So, A LOT of time was spent on this, a lot more than I anticipated. Firstly, I added a new settings app (which currently only has like one setting) that uses shadcn’s components for switches, buttons, sliders, etc. This was because I did NOT want to make my own components from scratch. Quick look at the docs, I added my necessary components, and CSS theming. I had a slight issue with setting raw CSS variables on .dark blocks weren’t syncing up properly with unedited shadcn svelte components due to Tailwind’s V4 theme compiler rules. Configuring custom colors directly in the @theme inline block in layout.css seemed to fix this. I also migrated the dock into its own components (Dock.svelte), allowing for better scalability.

Overall, pretty happy with this session, as now I can seamlessly add settings, add components, app, and all. The new task is to clean up the desktop, making it more visually appealing to the eyes.

So, A LOT of time was spent on this, a lot more than I anticipated. Firstly, I added a new settings app (which currently only has like one setting) that uses shadcn’s components for switches, buttons, sliders, etc. This was because I did NOT want to make my own components from scratch. Quick look at the docs, I added my necessary components, and CSS theming. I had a slight issue with setting raw CSS variables on .dark blocks weren’t syncing up properly with unedited shadcn svelte components due to Tailwind’s V4 theme compiler rules. Configuring custom colors directly in the @theme inline block in layout.css seemed to fix this. I also migrated the dock into its own components (Dock.svelte), allowing for better scalability.

Overall, pretty happy with this session, as now I can seamlessly add settings, add components, app, and all. The new task is to clean up the desktop, making it more visually appealing to the eyes.

Replying to @SysError06

0
3
Open comments for this post

28m 23s logged

Not much was doen apart from porting the gh pages to SvelteKit

Was done by making a deploy.yml workflow that builds the website and deploys it to GitHub Pages. Next plan of action is cleaning up desktop to make it more pleasing on the eyes

Not much was doen apart from porting the gh pages to SvelteKit

Was done by making a deploy.yml workflow that builds the website and deploys it to GitHub Pages. Next plan of action is cleaning up desktop to make it more pleasing on the eyes

Replying to @SysError06

0
3
Open comments for this post

35m 16s logged

Sigh….. I got bored

I hate vanilla html and javascript, so…. I switched my webOS entirely to SvelteKit.

This change should help me add components easier, also can add better stuff, I have also switched from base CSS to TailwindCSS, which is what I’m more used to. What I plan on doing is making every app its own svelte page, making it really easy to add apps. Overall nothing changed for now, I just spent the time porting over to SvelteKit.

Sigh….. I got bored

I hate vanilla html and javascript, so…. I switched my webOS entirely to SvelteKit.

This change should help me add components easier, also can add better stuff, I have also switched from base CSS to TailwindCSS, which is what I’m more used to. What I plan on doing is making every app its own svelte page, making it really easy to add apps. Overall nothing changed for now, I just spent the time porting over to SvelteKit.

Replying to @SysError06

0
3
Open comments for this post

34m 55s logged

First devlog of berryOS!

This is part of the webOS mission, however I am already pretty experienced in web devving so I kinda improvised on some stuff. I got an app dock, windows, topbar, time and a background!

First devlog of berryOS!

This is part of the webOS mission, however I am already pretty experienced in web devving so I kinda improvised on some stuff. I got an app dock, windows, topbar, time and a background!

Replying to @SysError06

0
2

Followers

Loading…