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

12h 37m 3s logged

JishOS Python IDE Becomes a Real IDE

This was one of the biggest development sessions for JishOS so far. The Python IDE went from a basic code runner to something that feels much closer to a real desktop IDE.

✨ New Features

🧩 Desktop Widgets

Introduced desktop widgets to enhance the operating system experience.

Features:

  • πŸ•’ Live digital clock
  • πŸ“… Interactive calendar
  • Seamlessly integrated with the desktop UI

🐍 Pyodide Integration

  • Embedded a full Python runtime using Pyodide.
  • Python now runs completely inside the browser.
  • No backend server required.

πŸ“ Monaco Editor

  • Integrated Monaco Editor.
  • Python syntax highlighting.
  • Larger font and cleaner editing experience.
  • Code is automatically saved using local storage.

πŸ’» Interactive Terminal

  • Terminal displays Python output.

  • Color-coded messages:

    • 🟒 Python output
    • πŸ”΄ Errors
    • 🟑 User commands
    • πŸ”΅ JishOS responses
  • Auto-scroll implemented.

  • Fixed several scrolling and layout bugs.

πŸ“¦ Package Manager

Implemented a lightweight package manager.

Supported command:

pip install <package>

Features:

  • Downloads packages using pyodide.loadPackage()
  • Remembers installed packages with LocalStorage
  • Prevents duplicate installations
  • Clean success/error messages

Successfully tested with:

  • numpy
  • pandas
  • matplotlib

πŸ“Š Plot Viewer

Added the first version of the Plot Viewer.

Current implementation:

  • Detects when Matplotlib creates figures.
  • Automatically opens a Plot Viewer window.
  • Embeds Matplotlib’s native WebAgg viewer inside JishOS.
  • Toolbar (zoom, pan, save) works.

This is considered a temporary v1 solution before moving to a custom renderer in a future version.

πŸ–₯ Window System Improvements

Improved the desktop window manager:

  • Better focus handling
  • More reliable resizing
  • Fixed several overflow issues
  • Better scrolling behavior for embedded applications

πŸ› Major Bugs Fixed

  • Fixed terminal scrollbar appearing too late.
  • Fixed Monaco editor overflowing its window.
  • Fixed terminal auto-scroll.
  • Fixed rounded Monaco container.
  • Fixed Pyodide loading issues.
  • Fixed duplicate package installation.
  • Fixed Plot Viewer DOM integration.

πŸ“š Things Learned

Today involved learning about:

  • Pyodide package loading
  • Browser virtual file systems
  • React refs
  • DOM manipulation
  • WebAgg backend
  • LocalStorage persistence
  • Component communication in React
  • Handling asynchronous Python execution

πŸ”œ Planned for Version 2

Instead of delaying the first release, these features have been postponed to v2:

  • πŸ“ Virtual filesystem
  • πŸ“„ Multiple files (main.py, main2.py, data.csv, notes.txt)
  • πŸ—‚ File Explorer
  • πŸ“‚ Folder support
  • πŸ’Ύ Projects
  • πŸ–Ό Custom Plot Viewer (PNG-based rendering)
  • πŸ–₯ Multiple Python projects

0
2

Comments 0

No comments yet. Be the first!