A minimal browser based on Chromium, made using Qt/QML and a bit of C++.
NanoBrowser is a lightweight, minimalist web browser built on top of the Chromium engine. It aims to provide a clean and simplified browsing experience while leveraging the rendering capabilities of Chromium and the UI flexibility of Qt/QML.
- Minimalist interface with essential browsing controls
- Chromium-based rendering engine for modern web compatibility
- Cross-platform support
- Download manager
- Search functionality
- Full-screen notification support
- Web authentication dialog
- Frontend: Qt Quick/QML (93.0%)
- Backend: C++ (3.9%)
- Build System: CMake (3.1%)
- Rendering Engine: Chromium
assets/- Application resourcesApplicationRoot.qml- Main application entry pointBrowserDialog.qml- Browser dialog implementationsBrowserWindow.qml- Main browser window implementationDownloadView.qml- Download manager interfaceFindBar.qml- Search functionalityFullScreenNotification.qml- Full-screen mode notificationsMain.qml- Main QML fileWebAuthDialog.qml- Authentication dialog for websitesmain.cpp- C++ entry pointutils.cpp/h- Utility functions
- Qt 6 or higher
- CMake 3.15 or higher
- C++ compiler with C++17 support
- Chromium Embedded Framework (CEF) or QtWebEngine
-
Clone the repository:
git clone https://github.com/GilbertAshivaka/NanoBrowser.git -
Navigate to the project directory:
cd NanoBrowser -
Create a build directory:
mkdir build && cd build -
Configure with CMake:
cmake .. -
Build the project:
cmake --build .
- Launch NanoBrowser from the build directory
- Use the address bar to navigate to websites
- Access browser settings through the menu
- Use keyboard shortcuts for common actions:
- Ctrl+T: New tab
- Ctrl+W: Close tab
- Ctrl+L: Focus address bar
- Ctrl+F: Find in page
This was a fun project to build, made me learn how browsers work at the intermidiate layer.
Contributions to NanoBrowser are welcome! Please feel free to submit a Pull Request or open an Issue to discuss potential improvements or report bugs.
Gilbert Ashivaka - GitHub Profile
Project Link: https://github.com/GilbertAshivaka/NanoBrowser