Skip to content

GUI Window Manager

Distendo edited this page May 15, 2026 · 1 revision

GUI & Window Manager

I don't really know if it's stable , so u can run beta GUI! The minios GUI is a from-scratch window compositor running on the VESA framebuffer (800×600×32). It features overlapping windows, a taskbar, apps menu, and drag & drop.

Desktop

  • Resolution: 800×600 (fixed), 32-bit color
  • Background: Configurable color and pattern (checkerboard, solid, stripes)
  • Cursor: Three styles — crosshair, arrow, hand (configurable in Settings)

Window Manager

Window Controls

Every window has:

  • Title bar — active (blue) or inactive (grey/dark blue)
  • Close button — red X on the right
  • Minimize button — yellow bar next to close
  • Resize handle — bottom-right corner (10×10 area, terminal windows only)
  • Drag — click and drag the title bar to move

Z-Order

Windows stack in z-order. Clicking a window raises it to the front. The active window has a brighter title bar.

Minimize & Restore

  • Click the minimize button (yellow) to hide a window
  • Click the window's name in the taskbar to restore it

Taskbar

The taskbar is a 22-pixel bar at the bottom of the screen:

  • Apps button — opens the apps menu on the left
  • Window list — shows all open windows (click to focus/restore)
  • Clock — live RTC clock on the right (updates every second)

Apps Menu

Click the "Apps" button on the taskbar to open the menu:

# App Launch
1 Terminal New terminal window
2 Paint Drawing canvas
3 Snake Snake game
4 Browser Web browser
5 Settings System settings
6 Files File manager
7 Winver About screen
8 Calc RPN calculator
9 Notepad GUI text editor

Terminal Emulator

  • 100 rows × 80 columns scrollback buffer
  • White text on light grey background (simulated VGA look)
  • Blinking cursor at current position
  • Supports newlines, backspace, printable ASCII
  • Scrolls when output exceeds 100 lines

Built-in Apps

Paint

  • Freehand drawing with mouse
  • Press C to clear canvas
  • Window title updates dynamically

Snake

  • Classic snake game
  • Arrow keys to move
  • Score displayed in window title bar
  • Eat food to grow

Browser

  • Basic HTTP web browser
  • Connects via the TCP/IP stack
  • Renders HTML text content

Settings

  • Change background color and pattern
  • Select cursor style
  • Toggle boot animation
  • Adjust animation speed
  • Choose Desktop Environment (Default / Pixel DE)
  • Settings save to /settings.cfg

Files

  • File manager grid
  • Click to select, click again to drag
  • Drop on terminal → runs cat <file>
  • Drop on Notepad → opens file

Calculator

  • RPN-style GUI calculator
  • Keyboard input: digits, operators, Enter, C (clear), Backspace

Notepad

  • 30×60 character text editor
  • Line numbers in a left gutter
  • Syntax highlighting for C, Python, and shell files
  • Arrow keys for navigation (Home, End, up/down)
  • Status bar with filename and line:column
  • ESC to save and close
  • Supports file drag & drop

Winver

Simple about screen showing minios version info.

Drag & Drop

Files can be dragged from the File Manager:

  1. Select a file (click once)
  2. Click and hold to start dragging
  3. A label follows the cursor showing the filename
  4. Drop on a Terminal window → runs cat <filename>
  5. Drop on a Notepad window → opens file for editing

Pixel Desktop Environment

Access via Settings → Desktop Env → Pixel DE:

  • Full-screen experience
  • Gradient background (dark blue to lighter)
  • 80 animated stars
  • Mouse cursor crosshair
  • Press ESC to exit back to the normal desktop

Clone this wiki locally