Skip to content

Open-source distraction-free browser (Python / PyQt6 / CEF) integrating DNS-level filtering and webapp isolation, designed to replace native browsers while promoting productivity..

License

Notifications You must be signed in to change notification settings

Abhijit-71/DiFri

Repository files navigation

Do check the Desktop branch for latest commits on desktop build , android development is paused if intrested you can visit Android branch.

DiFri Browser

Project logo

A lightweight Python browser built with PyQt6 and QWebEngineView, initialized using uv init for package management. With a builtin in content filter , blocking certain domains and keywords a clean GUI.


Features

Basic Navigation:

  • Enter a URL in the address bar and press Enter to navigate
  • Use Back, Forward, and Reload buttons to control navigation
  • The browser starts on DiFri HomePage by default

Tab Management:

  • Click the Home button to open a new tab
  • Close tabs with the X button on each tab
  • Drag tabs to reorder them
  • Tab titles and icons update automatically

Downloads:

  • Click the Download button to open download manager
  • Downloads show progress, can be paused/resumed/cancelled
  • Recent downloads history is maintained

Content Filtering:

  • Built-in filter blocks inappropriate content automatically
  • Safe for educational and family environments

PDF Viewing:

  • NEW! Advanced native chromium viewer with full text functionality
  • Text selection and copying
  • Zoom slider (25% - 500%) with smooth scaling
  • Page navigation and real-time page counter
  • Works with any PDF file - guaranteed compatibility
  • Provides download option

Demo of Browser

Alt text Alt text Alt text

Getting Started

  1. Clone the repository:
git clone https://github.com/Abhijit-71/DiFri.git
cd DiFri
  1. Initialize the environment and manage packages with UV:
uv install
  1. Run the browser:

for windows --

cd Desktop
..\.venv\Scripts\activate.ps1
uv run main.py

For Exclusive Platform Development

  • Checkout Desktop and Andriod branches
  • They just provide all req. and code for specific platform

Technical Requirements:

  • Python version: 3.8–3.12 (PyQt6 compatibility)
  • Dependencies: PyQt6, PyQt6-WebEngine, requests, urllib3, UV package manager
  • Platforms: Windows (tested), macOS/Linux (should work if compiled properly)

References


Contributors

About

Open-source distraction-free browser (Python / PyQt6 / CEF) integrating DNS-level filtering and webapp isolation, designed to replace native browsers while promoting productivity..

Topics

Resources

License

Stars

Watchers

Forks