copy / v86

x86 PC emulator and x86-to-wasm JIT, running in the browser
https://copy.sh/v86/
BSD 2-Clause "Simplified" License
19.64k stars 1.37k forks source link

UX/UI/URI improvements proposal #870

Open bitcoinmeetups opened 1 year ago

bitcoinmeetups commented 1 year ago

Hi,

I'm The Dwarf, a very friendly guy : )

I have the following suggestions and improvement proposals.

  1. Auto-loading state URI scheme. This would be soooooooo useful. Example: User points browser to http://website.com/v86/v86statexyz and the state loads automatically.

  2. Open maximized. It should be possible to make the Terminal window fill the whole screen without that frankly not-so-great looking button tool bar at the top. Just the Terminal covering the whole screen. Not full screen but the full width of the browser real estate.

  3. Save and load state shortcuts. And shortcuts in general. For those of use that want to hide the menu it should be possible to load and save the state using shortcuts. A quickload and quicksave option would also be really useful and even improve on the real Linux OS's that don't provide state > bin file functionality as far as I know.

OS: https://copy.sh/v86/?profile=buildroot

This is the best OS I have tried so far. It's small, loads relatively fast and has Internet access.

I also offer a bounty of 1 Astral token on Polygon and 1 custom NFT for anyone that completes the above points successfully.

I test a lot of apps and I know when I'm right. My design suggestions above should be implemented to facilitate the mainstreaming of v86.

Update:

  1. Being able to save state files to web3 storage such as IPFS or Arweave would also be cool. Or possibly to akash.
copy commented 1 year ago

Auto-loading state URI scheme. This would be soooooooo useful. Example: User points browser to http://website.com/v86/v86statexyz and the state loads automatically.

Can you clarify what you mean by this? Something like https://copy/v86/?state=https://myfileserver.com/arch.bin (where the user hosts their own statefile, but points at my website)? At the moment, the state images doesn't have all settings embedded, so perhaps something json-based like https://github.com/copy/v86/issues/448

Open maximized. It should be possible to make the Terminal window fill the whole screen without that frankly not-so-great looking button tool bar at the top. Just the Terminal covering the whole screen. Not full screen but the full width of the browser real estate.

Agreed. Ideally, we'd have an sidebar menu similar to novnc for maximised/fullscreen.

Save and load state shortcuts. And shortcuts in general. For those of use that want to hide the menu it should be possible to load and save the state using shortcuts. A quickload and quicksave option would also be really useful and even improve on the real Linux OS's that don't provide state > bin file functionality as far as I know.

Sure, why not. Agree on in-memory state saving/restoring, too. Or even in localStorage.

SuperMaxusa commented 1 year ago

from https://github.com/copy/v86/issues/870#issuecomment-1573474897:

Or even in localStorage.

I have some doubts that localStorage is not particularly suitable for this, because there is a maximum limit of 5 MB per webpage. IndexedDB and OPFS seem to have no such restrictions.

bitcoinmeetups commented 1 year ago

Update:

  1. Being able to save state files to web3 storage such as IPFS or Arweave would also be cool. Or possibly to akash.
bitcoinmeetups commented 1 year ago

Auto-loading state URI scheme. This would be soooooooo useful. Example: User points browser to http://website.com/v86/v86statexyz and the state loads automatically.

Can you clarify what you mean by this? Something like https://copy/v86/?state=https://myfileserver.com/arch.bin (where the user hosts their own statefile, but points at my website)? At the moment, the state images doesn't have all settings embedded, so perhaps something json-based like #448

Open maximized. It should be possible to make the Terminal window fill the whole screen without that frankly not-so-great looking button tool bar at the top. Just the Terminal covering the whole screen. Not full screen but the full width of the browser real estate.

Agreed. Ideally, we'd have an sidebar menu similar to novnc for maximised/fullscreen.

Save and load state shortcuts. And shortcuts in general. For those of use that want to hide the menu it should be possible to load and save the state using shortcuts. A quickload and quicksave option would also be really useful and even improve on the real Linux OS's that don't provide state > bin file functionality as far as I know.

Sure, why not. Agree on in-memory state saving/restoring, too. Or even in localStorage.

Replies:

  1. Yes, something like https://copy/v86/?state=https://myfileserver.com/arch.bin. There should be a way to easily link directly to the states. Listen, there is a zx spectrum emulator on Github somewhere that does exactly that if I remember correctly. It's cool because you can see a list of states and just click and the specific state opens automatically. This is the future.

  2. As a user what I personally want to see is a clean full width terminal that loads fast. Personally I don't use sidebars or any bars. Optional bars and optional orientation would be better than enforced menubars.

  3. and 4. Now what if we could save/load the state files to/from web storage such as IPFS, arweave or akash? Wouldn't that be neat?

I would be happy to share some more feedback on this project every once in a while. At one point I had a kind of vision of what v86 could turn into and that vision is big and requiring just a few initial improvements to get started on that path.

Please leave a voice message at my WhatsApp here:

https://wa.link/0jm2gd

I will definitely reply with additional feedback. My main points are as above.

bitcoinmeetups commented 1 year ago

I read #448 and that might be one way to do it. Maybe the URL will get super long if there are a lot of settings? Or maybe it would work.