For a native menu and tray library for desktop apps, the first results are maxogden/menubar (Menubar is a library for building Electron applications that live in the system tray, providing native menu integration and tray icon management — it fits your cross-platform tray and menu need, though it assumes an Electron host), asticode/go-astilectron and getlantern/systray (getlantern/systray is a cross-platform Go library that provides the exact core demand: placing a native menu and icon in the system tray notification area, with event-driven callbacks for menu interactions — squarely matching the search for a cross-platform tray and menu library). zidoro/pomatez and lencx/chatgpt round out the shortlist. Compare the match explanations and check the project documentation against your requirements.
Cross-platform libraries for implementing system tray icons and native application menus in desktop software.
This is a framework for building desktop applications that reside in the system tray using Electron. It functions as a system tray integration library and window manager, providing the necessary components to handle native tray icons, tooltips, and the associated window lifecycles for menubar applications. The framework coordinates native system tray interactions with web-based user interfaces. It maps application commands to the operating system's native menu system and orchestrates the visibility and positioning of child windows relative to tray icon click events. The project covers native
Menubar is a library for building Electron applications that live in the system tray, providing native menu integration and tray icon management — it fits your cross-platform tray and menu need, though it assumes an Electron host.
go-astilectron is a cross-platform GUI framework and binding that enables the creation of desktop software by combining a compiled Go backend with an Electron frontend. It functions as an inter-process communication bridge, utilizing an asynchronous messaging system to exchange JSON events and synchronize state between the Go process and the JavaScript user interface. The project provides a native desktop API wrapper to orchestrate system-level features from the backend. This includes the ability to manage browser windows, construct native application menus, and control system tray icons and
go-astilectron is a Go library that provides cross-platform APIs for constructing native menus and controlling system tray icons through an Electron bridge, directly matching the request for a cross-platform desktop tray and menu library with event-driven callbacks and desktop framework integration.
systray is a Go library used to create and manage icons and menus within the operating system notification area. It functions as a cross-platform GUI library that provides a persistent application entry point and a notification area menu manager. The library enables the creation of hierarchical menus and custom tray icons across different desktop operating systems. It supports the use of nested submenus and allows for the styling of individual menu entries with custom images. The toolset covers a range of interaction capabilities, including the management of menu item states through checked
getlantern/systray is a cross-platform Go library that provides the exact core demand: placing a native menu and icon in the system tray (notification area), with event-driven callbacks for menu interactions — squarely matching the search for a cross-platform tray and menu library.
Pomatez is a desktop focus tool and Pomodoro timer application designed to track work intervals and scheduled breaks. It integrates a task management list for creating and checking off items during focused work sessions. The application enforces strict focus through timer control restrictions and full-screen overlays that block desktop access during mandatory break periods. It provides continuous progress monitoring via a system tray timer and indicator, allowing session tracking without opening the main window. The software manages time through customizable work and break cycles, including
Pomatez is a Pomodoro timer desktop application that uses a system tray icon and menu, but it is not a library providing APIs for building native menus and tray icons in other applications — it is a finished product, not the reusable component you are looking for.
This project is a cross-platform desktop application that wraps web-based interfaces into a standalone, native container. By utilizing a webview-based rendering engine, it allows users to access web services as local applications on Windows, macOS, and Linux without requiring a full browser installation. The application is built on a memory-safe backend that manages system-level tasks and facilitates secure communication between the web frontend and the native operating system. This architecture enables features such as system-tray integration for background execution and quick access, provid
This project is a ChatGPT desktop application that uses system-tray integration, but it is not a library that provides APIs for building native menus and tray icons—the visitor wants a reusable library, not a specific app.
This project is a desktop embedding layer that serves as a bridge between the Flutter engine and the native windowing systems of desktop operating systems. It functions as a Flutter desktop plugin and a native menu bar manager to facilitate the development of cross-platform desktop applications. The system focuses on desktop application integration and native operating system menu management. It provides the tools necessary to create and manage application menus within the native system menu bar for desktop platforms.
This Flutter desktop embedding plugin provides native menu management but does not cover system tray icons, so it addresses only part of the cross-platform tray and menu library you're looking for.
Pomotroid is a cross-platform desktop Pomodoro timer application designed for managing work and break intervals. It functions as a focus manager and productivity statistics tracker that utilizes a high-precision timer engine to organize focus sessions. The application distinguishes itself by operating as a WebSocket timer broadcaster, featuring a local server that streams timer state and lifecycle events to external automation scripts and stream overlays. It also includes a productivity trend analysis system that logs completed rounds to a local database to generate daily summaries, weekly st
Pomotroid is a cross-platform desktop Pomodoro timer application that itself uses system tray icons and menus, but it is not a library that exposes APIs for other applications to create native menus and tray icons — it is a finished app, not the reusable building block you are seeking.
Cinnamon is a desktop environment interface for Linux operating systems. It provides a visual layout and user interface for managing windows and applications, focusing on desktop workflow management. The project enables Linux GUI customization, allowing the look and feel of the environment to be modified. It includes a window management system to handle the placement and behavior of application windows within the workspace. The environment utilizes a JavaScript-based shell and a modular applet architecture for extensibility, while using CSS for component styling. The interface is built with
Cinnamon is a full desktop environment for Linux, not a cross-platform library you embed in your own applications to create native menus and system trays.
Marktext is a cross-platform desktop application designed for markdown document authoring and structured note-taking. It functions as a WYSIWYG text processor, providing a distraction-free interface that renders formatted content in real-time while hiding the underlying markup syntax. The application utilizes a multi-process architecture that separates system integration from the user interface, ensuring consistent performance across Windows, macOS, and Linux. By employing a custom editor core built on native browser capabilities and a structured syntax tree, it manages complex document eleme
Marktext is a markdown editor desktop application, not a library that provides APIs for building native menus and system tray icons, so it does not match the request for a cross-platform desktop tray and menu library.
Waybar is a modular status bar for Wayland compositors that provides a configuration-driven interface for system monitoring and desktop management. It functions as a shell component that integrates directly with Wayland protocols to track window manager states, manage system tray icons, and display real-time hardware, network, and power metrics. The project distinguishes itself through a highly flexible architecture that allows for independent or synchronized interface bars across multiple monitors, each with unique layout and styling rules. Users can extend the bar's functionality by creatin
Waybar is a Wayland status bar with system tray display, not a cross-platform library providing APIs for adding native menus or tray icons to arbitrary desktop applications—it's a shell component, not a toolkit for app developers.
This project is a cross-platform desktop application that functions as a graphical shell replacement. Built using web technologies, it provides a unified workspace that integrates a terminal emulator with real-time system monitoring tools, allowing users to interact with their operating system through a touch-friendly, native-like interface. The application distinguishes itself through a highly customizable layout engine that uses external configuration files to arrange interface components. It features a distinct visual aesthetic and wraps standard terminal emulation within a graphical conta
Edex-UI is a desktop shell and terminal emulator application, not a library for programmatically creating native menus and system tray icons — it uses them internally rather than exposing them as APIs for other projects.
Twinkle Tray is a Windows display manager and DDC/CI monitor control utility designed to manage hardware settings across internal and external displays. It functions as a system tray application that allows for the adjustment of brightness, contrast, and volume on multiple monitors. The project provides multi-display brightness normalization to balance backlight levels across different hardware profiles for a consistent visual experience. It also includes an automatic brightness scheduler that modifies luminosity based on the time of day or system idle states. Beyond the user interface, the
Twinkle Tray is a Windows-specific monitor control utility that itself lives in the system tray, not a cross-platform library that provides APIs for building native menus and tray icons into other desktop applications.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| maxogden/menubar | 6.8K | TypeScript | BSD-2-Clause | |
| asticode/go-astilectron | 4.9K | Go | MIT | |
| getlantern/systray | 3.7K | Go | Apache-2.0 | |
| zidoro/pomatez | 4.9K | TypeScript | MIT | |
| lencx/chatgpt | 54.4K | Rust | — | |
| google/flutter-desktop-embedding | 7.1K | C++ | Apache-2.0 | |
| splode/pomotroid | 5.3K | Rust | MIT | |
| linuxmint/cinnamon | 5.3K | JavaScript | gpl-2.0 | |
| marktext/marktext | 57.4K | TypeScript | MIT | |
| alexays/waybar | 10.7K | C++ | mit |