Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
152 commits
Select commit Hold shift + click to select a range
4c9c29b
Restructuring
htdguide Apr 1, 2025
ce5b984
restructuring
htdguide Apr 2, 2025
ef9f64d
Terminal updates, state manager working #34
htdguide Apr 3, 2025
38b48c2
#34 State manager updates and connections with Dock, Menubar and icon…
htdguide Apr 3, 2025
38e47f9
Minor terminal updates
htdguide Apr 3, 2025
b18cfdc
Terminal settings update
htdguide Apr 3, 2025
4cd7df6
Fixed close button position
htdguide Apr 3, 2025
79059a6
State editor operations update
htdguide Apr 4, 2025
8a6aba2
mario prototype ready
htdguide Apr 4, 2025
9ce88ee
iFrame for window done
htdguide Apr 4, 2025
7b972bf
Dragging window fix
htdguide Apr 7, 2025
d822527
iFrame fixes
htdguide Apr 7, 2025
723d534
Icon added
htdguide Apr 7, 2025
5452bda
icon update
htdguide Apr 7, 2025
d3cb0c1
Quake added, not working
htdguide Apr 7, 2025
8989bc1
Monitor prototype ready! #35
htdguide Apr 10, 2025
f81a918
Some fixes related to monitor #35
htdguide Apr 10, 2025
0d6bb1b
Resstructuring a little bit
htdguide Apr 10, 2025
97c416f
Restructuring again
htdguide Apr 27, 2025
6c81268
WelcomeWrap adapted for the div
htdguide Apr 27, 2025
aa87d2e
Welcomewrap fixed
htdguide Apr 27, 2025
11c7772
Resizing bug fixed #36
htdguide Apr 28, 2025
64d3346
#36 resizing fixed
htdguide Apr 28, 2025
ffe4edb
#29 full screen button added
htdguide Apr 28, 2025
e411ab0
#36 added one more corner for resizing
htdguide Apr 28, 2025
c202fc1
Window resizing edges added #36
htdguide Apr 28, 2025
4c9c698
Quake 3 workable condition done
htdguide Apr 28, 2025
4e46be5
Removed comment
htdguide May 1, 2025
e6a713c
Multiple windows fix #38
htdguide May 19, 2025
a702f03
Kiwiicon added
htdguide May 19, 2025
a1fefc0
Mission control prototype ready #35
htdguide May 19, 2025
70e1510
Added black margin between desktops
htdguide May 19, 2025
0bce39a
#35 Mission control overlay states created
htdguide May 19, 2025
e358351
Mission cotrol menu prototype ready #35
htdguide May 20, 2025
335ef84
Mission control wallpaper added #35
htdguide May 20, 2025
bd1a427
Mission control deisgn prototype update
htdguide May 20, 2025
752db6f
Sliding animation working
htdguide May 20, 2025
161a509
Sliding animation done
htdguide May 20, 2025
f53fc38
Animation updated
htdguide May 21, 2025
d4eb5a3
text moved a bit lower
htdguide May 21, 2025
5d91d3e
Allignment adjustments
htdguide May 21, 2025
04e6adf
Wallpaper sync added
htdguide May 21, 2025
5955293
Improved speed of work
htdguide May 21, 2025
052b01b
Some fixes to mission control
htdguide May 21, 2025
2206054
MissionControl split to two elements
htdguide May 23, 2025
e32742b
UI update for MissionControl
htdguide May 23, 2025
2b7a642
State fixes
htdguide May 23, 2025
d85cf0c
Some fixes
htdguide May 23, 2025
2cf1727
Removed fade in transition
htdguide May 26, 2025
1b38f2d
Wallpaper element redesigned
htdguide May 26, 2025
8f9bc49
Good animation stage
htdguide May 26, 2025
0b15601
Some styling edits
htdguide May 26, 2025
ad22000
state fixes
htdguide May 26, 2025
b4ecc76
Moved dock
htdguide May 26, 2025
6afd8d9
No anim method added
htdguide May 28, 2025
3398d82
version tag moved
htdguide May 28, 2025
4bf632f
#35 Restructuring to portal system
htdguide May 28, 2025
8395c1e
Getting rid of the focus provider dependency
htdguide May 28, 2025
8d70b51
#39 added styling for unfocused, needs refinements
htdguide Jun 1, 2025
2f7df80
#39 fixed focus bug
htdguide Jun 1, 2025
fd408d0
Task manager prototype created #40
htdguide Jun 1, 2025
259d1cf
#35 desktop refresh bugfix
htdguide Jun 1, 2025
6edef7d
#41 Desktop debugging added
htdguide Jun 2, 2025
185a6b8
#41 Logger component created
htdguide Jun 2, 2025
986226d
Logger terminal app added, stateeditor design improved #41
htdguide Jun 2, 2025
d5b1479
#41 Multiple components support
htdguide Jun 2, 2025
80084b5
#41 some minor fixes
htdguide Jun 2, 2025
b71a40f
DesktopIcon logging added #41
htdguide Jun 2, 2025
0c70931
Logs for Dock done #41
htdguide Jun 2, 2025
c5a6866
#41 logs for draggable window and logger update
htdguide Jun 2, 2025
8cbe24d
Miniapps logging added #41
htdguide Jun 2, 2025
26e3481
#40 Task manager deleted, it needs rework
htdguide Jun 2, 2025
616876e
License added
htdguide Jun 4, 2025
e1377bc
Renaming of the Desktop to IconGrid
htdguide Jun 5, 2025
32ed7ca
Reorginized MissionControl
htdguide Jun 5, 2025
e315f95
Desktop renaming support
htdguide Jun 5, 2025
766662d
Moved desktops to the MissionBar
htdguide Jun 5, 2025
ac4b71c
#40 style fixes
htdguide Jun 6, 2025
3836cd1
#40 Prototyping the new window managing system
htdguide Jun 8, 2025
bb7abcf
#40 added wrap id
htdguide Jun 8, 2025
566b6d2
Removed portal
htdguide Jun 9, 2025
76953d9
Restructuring of the #40
htdguide Jun 9, 2025
39d196b
Slight renaming
htdguide Jun 9, 2025
fd49893
Closing animation of #40
htdguide Jun 9, 2025
5a16231
css fix #40
htdguide Jun 9, 2025
05f657f
Fixed access to the desktops #40
htdguide Jun 9, 2025
5a37e65
DraggableWindow fixes
htdguide Jun 9, 2025
bf46376
Focusing fixed
htdguide Jun 9, 2025
baa639d
Fixed double openings for Mar
htdguide Jun 9, 2025
94ef19c
Fixed other apps
htdguide Jun 9, 2025
508449f
Loading screen removed from window
htdguide Jun 9, 2025
1150c12
Full screen draggable window prototype working #40
htdguide Jun 9, 2025
4a9a365
Size increase animation done #40
htdguide Jun 9, 2025
e6a33b1
Smooth draggable window transition added #40
htdguide Jun 9, 2025
a54b1d3
Restructuring
htdguide Jun 9, 2025
951e9bf
wrapID added to draggablewindow
htdguide Jun 10, 2025
92d601f
Updated to new react version
htdguide Jun 10, 2025
2849d7f
Styling polishing
htdguide Jun 10, 2025
add911e
Huge restructuring
htdguide Jun 10, 2025
26611fd
Renaming of efi to BIOS
htdguide Jun 10, 2025
a7644fa
env added and some css polishing
htdguide Jun 10, 2025
db79761
Added fullscreen detection in provider
htdguide Jun 10, 2025
06674bc
Fixed windows scaling
htdguide Jun 10, 2025
43c7627
#35 updated styling
htdguide Jun 12, 2025
d80e567
Multidesktop issue fixed #35
htdguide Jun 13, 2025
5394529
Fixed bug with mission control, black screen blink #35
htdguide Jun 13, 2025
97c9928
Dock rearrangement
htdguide Jun 13, 2025
1f0f0d1
#42 icons rearrangement done
htdguide Jun 15, 2025
d9cefbe
#42 Fixing bugs with new rearrangement
htdguide Jun 15, 2025
73f2923
#42 adding dependencies to css
htdguide Jun 15, 2025
3d94b88
#42 multiple icons drag added
htdguide Jun 15, 2025
3e86a7e
#42 bug fixes after previous changes
htdguide Jun 15, 2025
9f10284
#42 resizing connected to state manager
htdguide Jun 15, 2025
a6d5801
#42 transfered margins to the states
htdguide Jun 15, 2025
71197ab
#42 multiple desktops fix
htdguide Jun 15, 2025
2e54009
Dock fixes
htdguide Jun 16, 2025
fe5c58a
#42 orientation change fix
htdguide Jun 16, 2025
c0f7505
z reindexing
htdguide Jun 16, 2025
722a89a
#40 Add button added to MissionBar
htdguide Jun 18, 2025
665d021
Desktops finally shifting #40
htdguide Jun 24, 2025
eeefa2b
Desktop shift animation done #40
htdguide Jun 24, 2025
4566db5
Opacity fix for desktop names #40
htdguide Jun 24, 2025
a36e5e6
Deletion function added #40
htdguide Jun 24, 2025
86b34f7
Deletion of first desktop added #40
htdguide Jun 24, 2025
de2e551
Mid deletion done #40
htdguide Jun 24, 2025
83bd653
Dockerfile returned
htdguide Jun 24, 2025
a26052c
Added new workflow
htdguide Jun 24, 2025
f69bd0a
Fixed css
htdguide Jun 24, 2025
d0a75b5
Fixed casing
htdguide Jun 24, 2025
29b494b
Nginx testing support added
htdguide Jun 24, 2025
de36875
Try nginx with different configs
htdguide Jun 24, 2025
9462414
Changed entrypoint
htdguide Jun 24, 2025
346baa4
Fixed ssl config
htdguide Jun 24, 2025
f41bda0
Testing local server update
htdguide Jun 24, 2025
8ede78b
Testing local server again
htdguide Jun 24, 2025
9f4ac79
Anti scrolling added
htdguide Jun 26, 2025
e5c7ee0
#40 desktop switching by border added
htdguide Jun 26, 2025
651c9c0
#40 touchscreen swithcing added
htdguide Jun 26, 2025
8fe064d
Added missioncontrol icon and removed some apps from dock
htdguide Jun 26, 2025
f8312d8
A lot of css work to make Dock working in Safari properly.
htdguide Jun 26, 2025
36480a2
Disabled icons function added
htdguide Jun 26, 2025
3d1b529
Dock multipage animation updated
htdguide Jun 26, 2025
6f031a3
#44 bug fixed. DesktopAssembler rearranged. Dock logic rearranged.
htdguide Jul 13, 2025
2a69a40
#45 Notification styling fixes. Fixed bug with sliding stuck
htdguide Jul 13, 2025
790f671
#40 Added + button
htdguide Jul 13, 2025
9d8e5e3
#40 smooth animation of desktop creation added
htdguide Jul 14, 2025
bac7891
MissionControl opener added to desktop #40
htdguide Jul 28, 2025
0be572d
#40 Related updates, dock animation revisit, statemanager update with…
htdguide Aug 4, 2025
fe97b63
#40 fixes with a lot of minor refinements
htdguide Aug 4, 2025
2688800
#41 div debugging mode added
htdguide Aug 5, 2025
10367f2
Some polishment of the minor issues with window snapping and sizing
htdguide Aug 5, 2025
1e2fb0d
Readme syncing with main
htdguide Aug 5, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified .DS_Store
Binary file not shown.
2 changes: 2 additions & 0 deletions .env
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# .env
VITE_APP_WEBOS_VERSION="0.2.4"
50 changes: 50 additions & 0 deletions .github/workflows/testing.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# File: .github/workflows/testing.yml

name: Build and Push Docker Image to Docker Hub (Testing)

on:
push:
branches:
- testing

jobs:
build-and-push:
runs-on: ubuntu-latest
steps:
# 1) Check out the repo
- name: Check out repository
uses: actions/checkout@v2

# 2) Set up Node.js
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: 18

# 3) Install dependencies
- name: Install Dependencies
run: npm install --legacy-peer-deps

# 4) Run tests (optional)
- name: Run Tests
run: npm run test

# 5) Build production artifacts
- name: Build
run: npm run build

# 6) Log in to Docker Hub
- name: Login to Docker Hub
run: docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}

# 7) Build Docker image
- name: Build Docker Image
run: |
docker build --no-cache \
-t ${{ secrets.DOCKER_USERNAME }}/webportfoliotesting:latest \
-f Dockerfile \
.

# 8) Push Docker image
- name: Push Docker Image
run: docker push ${{ secrets.DOCKER_USERNAME }}/webportfoliotesting:latest
18 changes: 13 additions & 5 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,16 +1,24 @@
# Use the official Nginx image
FROM nginx:stable-alpine

# Remove the default Nginx HTML
# Remove default HTML
RUN rm -rf /usr/share/nginx/html/*

# Copy the production build – contents of 'dist' only
# Copy your production build
COPY dist/ /usr/share/nginx/html/

# Copy your custom HTTPS-only (or redirection) nginx.conf
COPY nginx.conf /etc/nginx/conf.d/default.conf
# Copy both HTTP- and HTTPS-ready nginx configs
COPY nginx.http.conf /etc/nginx/conf.d/default-http.conf
COPY nginx.ssl.conf /etc/nginx/conf.d/default-ssl.conf

# Expose port 443 (and 80 if you want HTTP open/redirect)
# Copy the entrypoint script that picks the right config
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh

# Expose both ports (so Docker can map whichever one runs)
EXPOSE 80
EXPOSE 443

# Entrypoint will choose config, then run nginx
ENTRYPOINT ["/entrypoint.sh"]
CMD ["nginx", "-g", "daemon off;"]
21 changes: 21 additions & 0 deletions LICENCE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2025 Nikita Mogilevskii

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the “Software”), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@ Welcome to **WebOS**! This project brings a desktop-like experience into your we

[Visit the Website](https://htdguide.com)

<img width="1792" alt="Screenshot 2025-05-21 at 7 35 52 PM" src="https://github.com/user-attachments/assets/59176430-205d-473a-b40b-c3640fe7f782" />
<img width="1792" alt="Screenshot 2025-05-21 at 7 36 04 PM" src="https://github.com/user-attachments/assets/328ccca4-87a1-4c31-9f12-348607e8531b" />
<img width="1792" alt="Screenshot 2025-05-21 at 7 37 13 PM" src="https://github.com/user-attachments/assets/bd8fba26-3958-4d2d-9229-43df9086a95f" />


---

## **Explore More**
Expand Down
18 changes: 18 additions & 0 deletions entrypoint.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#!/bin/sh
set -e

# Detect whether both cert and key actually exist
if [ -f /etc/ssl/certs/ssl.crt ] && [ -f /etc/ssl/private/ssl.key ]; then
echo "✅ SSL certs found, enabling HTTPS"
cp /etc/nginx/conf.d/default-ssl.conf /etc/nginx/conf.d/default.conf
else
echo "⚠️ No SSL certs found, falling back to HTTP only"
cp /etc/nginx/conf.d/default-http.conf /etc/nginx/conf.d/default.conf
fi

# Remove everything else in conf.d so nginx only sees default.conf
rm -f /etc/nginx/conf.d/default-http.conf \
/etc/nginx/conf.d/default-ssl.conf

# Launch nginx
exec "$@"
6 changes: 3 additions & 3 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta name="theme-color" content="#000000" />
<meta name="description" content="htdguide's portfolio website" />
<meta name="description" content="htdguide's webOS" />
<link rel="icon" href="favicon.png" />
<link rel="apple-touch-icon" href="/logo192.png" />
<title>webOS</title>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.jsx"></script>
<noscript>You need to enable JavaScript to run this app.</noscript>
<script type="module" src="/main/main.jsx"></script>
<noscript>You need to enable JavaScript to run webOS.</noscript>
</body>
</html>
38 changes: 38 additions & 0 deletions main/index.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
/* index.css */

/* Global styles */
html, body, #root {
margin: 0;
padding: 0;
width: 100%;
height: 100%;
background-color: black; /* Outside the monitor: black */
overflow: hidden !important; /* Disable scrolling */
overscroll-behavior: none !important; /* Prevent scroll chaining */
-webkit-user-select: none !important; /* Disable text selection in WebKit */
-moz-user-select: none !important; /* Disable text selection in Firefox */
-ms-user-select: none !important; /* Disable text selection in IE10+ */
user-select: none !important; /* Standard property */
-webkit-tap-highlight-color: transparent !important; /* Remove tap highlight flash */
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', sans-serif;
}


/* Hide React error overlay */
#react-error-overlay {
display: none !important;
}

/* Hide any iframes that might be embedded inadvertently */
body > iframe {
display: none;
}

/* Apply to all elements, to be sure no child can be selected */
* {
-webkit-user-select: none !important;
-moz-user-select: none !important;
-ms-user-select: none !important;
user-select: none !important;
overscroll-behavior: none !important;
}
35 changes: 35 additions & 0 deletions main/main.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
// main.jsx

import React, { StrictMode, useEffect } from 'react';
import { createRoot } from 'react-dom/client';
import './index.css';
import BIOS from '../src/BIOS/BIOS';

const Main = () => {
useEffect(() => {
// Prevent all scrolling
const preventDefault = (e) => {
e.preventDefault();
};

// Block wheel, touchmove, text selection start, and context menu (long-press)
document.addEventListener('wheel', preventDefault, { passive: false });
document.addEventListener('selectstart', preventDefault);
document.addEventListener('contextmenu', preventDefault);

return () => {
document.removeEventListener('wheel', preventDefault);
document.removeEventListener('touchmove', preventDefault);
document.removeEventListener('selectstart', preventDefault);
document.removeEventListener('contextmenu', preventDefault);
};
}, []);

return (
<StrictMode>
<BIOS />
</StrictMode>
);
};

createRoot(document.getElementById('root')).render(<Main />);
13 changes: 13 additions & 0 deletions nginx.http.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# HTTP-only server
server {
listen 80;
server_name _;

root /usr/share/nginx/html;
index index.html;

# SPA fallback
location / {
try_files $uri $uri/ /index.html;
}
}
2 changes: 1 addition & 1 deletion nginx.conf → nginx.ssl.conf
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,4 @@ server {
location / {
try_files $uri $uri/ /index.html;
}
}
}
Loading
Loading