diff --git a/.gitignore b/.gitignore index 86e5cb4..020c0e4 100644 --- a/.gitignore +++ b/.gitignore @@ -8,4 +8,6 @@ node_modules .npmrc !.env.example .vscode/ -build.zip \ No newline at end of file +build.zip +win32_rsa +win32_rsa.pub \ No newline at end of file diff --git a/README.md b/README.md index 779d9f3..23f4bd3 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,11 @@ -# win32.run -### Yet another fake Windows XP in the browser, but with a File System and comes with it, Programs. -Microsoft and Windows XP trademarks & logos definitely belong to Microsoft Corporation. All the programs' names and logos (Foxit, Word, WinRar, Internet Explorer, etc.) are of their rightful copyright holders. -**win32.run** is purely for the purpose of nostalgia. I have no intent and no right to monetize win32.run, but you may occasionally see ads when playing third-party games. \ No newline at end of file +# Introduction + +Yet another Windows XP in the browser, but with a File System and comes with it, Programs. + +_Microsoft and Windows XP trademarks & logos definitely belong to Microsoft Corporation. All the programs' names and logos (Foxit, Word, WinRar, Internet Explorer, etc.) are of their rightful copyright holders._ _**win32.run**_ _is purely for the purpose of nostalgia. I have no intent and no right to monetize_ _**win32.run**__, but you may occasionally see ads when playing third-party games._ + +win32.run runs purely on the client-side (the user's browser). All files are processed right in the user's browser. There is no file uploading, no server-side processing (cause I'm broke, can't afford it). Each user has his own OS session (just like the good old Windows XP) + +Files (and Folders) in win32.run are stored locally in IndexedDB. Apps (and 3rd-party apps) can interact with files through win32.run homemade file picker and saver dialog (with Windows XP appearance). + +![](https://win32.run/video/win32_2x.mp4) \ No newline at end of file diff --git a/src/lib/components/xp/ContextMenu.svelte b/src/lib/components/xp/ContextMenu.svelte index c8a0130..3dd6126 100644 --- a/src/lib/components/xp/ContextMenu.svelte +++ b/src/lib/components/xp/ContextMenu.svelte @@ -38,7 +38,7 @@ } else if(type == 'RecycleBin'){ menu_obj = (await import('./context_menu/RecycleBin')).make({type, originator}); - + } else { console.log('unknown context menu type') } diff --git a/src/routes/xp/programs/my_computer.svelte b/src/routes/xp/programs/my_computer.svelte index 860d7b1..2c662c8 100644 --- a/src/routes/xp/programs/my_computer.svelte +++ b/src/routes/xp/programs/my_computer.svelte @@ -224,7 +224,7 @@ page_index = Math.min(history.length - 1, page_index + 1); } - function up(){ + export function up(){ let parent_id = $hardDrive[history[page_index]].parent; open(parent_id); } diff --git a/src/routes/xp/programs/my_computer/viewer.svelte b/src/routes/xp/programs/my_computer/viewer.svelte index 6d98427..8d4fb02 100644 --- a/src/routes/xp/programs/my_computer/viewer.svelte +++ b/src/routes/xp/programs/my_computer/viewer.svelte @@ -172,11 +172,11 @@ } function on_keydown(e){ - console.log('keyevent in my computer'); + if(my_computer_instance.window.z_index != $zIndex) return; if(renaming) return; if(id == null) return; - console.log('not skip'); + console.log('keyevent in my computer'); if(!(e.ctrlKey || e.metaKey)) return; if(e.key == 'c'){ @@ -188,6 +188,10 @@ } else if(e.key == 'a'){ let els = node_ref.querySelectorAll('.fs-item'); ds.setSelection(els, true); + } else if(e.key == 'ArrowUp'){ + e.preventDefault(); + my_computer_instance.up(); + } }