From 22dc656daabf18a59c422274e5111c1416c99d78 Mon Sep 17 00:00:00 2001 From: Daniel Hammer Date: Sat, 28 Feb 2026 14:31:55 +0100 Subject: [PATCH] feat: update readme image --- README.md | 4 ++-- images/MontaukOS-1.png | Bin 0 -> 1381863 bytes images/MontaukOS-2.png | Bin 0 -> 1154531 bytes 3 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 images/MontaukOS-1.png create mode 100644 images/MontaukOS-2.png diff --git a/README.md b/README.md index 0362616..9bd527e 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # The Montauk Operating System MontaukOS is a hobbyist operating system written in modern C++. It runs on bare metal and supports various applications, including DOOM, a Wikipedia client, and standard desktop utilities. -![MontaukOS screenshot](images/MontaukOS.png) +![MontaukOS screenshot](images/MontaukOS-2.png) ## Features * Modern preemptive multitasking kernel @@ -10,7 +10,7 @@ MontaukOS is a hobbyist operating system written in modern C++. It runs on bare * Support for USB including input devices (keyboard/mouse), along with PS/2 input support * VFS using numbered drive identifiers with ramdisk support * Support for UEFI Runtime Services, including power management calls (shutdown/reboot) -* Customizable desktop environment with 12 graphical apps, including a terminal emulator, file manager, Wikipedia client, weather app, DOOM, and more +* Customizable desktop environment with 12+ graphical apps, including a terminal emulator, file manager, Wikipedia client, weather app, DOOM, and more * Modern icon pack (Flat Remix) used in desktop environment * Support for TrueType font, JPEG image, and SVG icon rendering * Networking including TCP/IP stack, UDP, DNS, DHCP and TLS via BearSSL diff --git a/images/MontaukOS-1.png b/images/MontaukOS-1.png new file mode 100644 index 0000000000000000000000000000000000000000..c52d3398bc4fbc3c9fe60e484694815a18c9b6ae GIT binary patch literal 1381863 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