Omahub
← All plugins
J

Projector & Cast

by Jeff Cortez

Screen mirroring to Epson projectors, smart TVs, and wireless displays (Miracast) with resolution, scale and multi-aspect ratio presets (16:9, 16:10, 21:9, 32:9, 4:3).

Security review

Review recommended · 4 findings

Deterministic scan — not a security guarantee

Medium
Risk level
Medium
Analyzed commit
edfd5e0
Scanned
3 days ago
  • Command runs with sudo, elevating the process beyond the plugin environment.

    sudo ufw allow 7236:7250/udp comment 'Miracast-RTP'"
  • Docs sudo README.md:36

    Command runs with sudo, elevating the process beyond the plugin environment.

    sudo pacman -S gnome-network-displays
  • Docs sudo README.md:49

    Command runs with sudo, elevating the process beyond the plugin environment.

    sudo ufw allow 7236/tcp comment 'Miracast-RTSP'
  • Docs sudo README.md:50

    Command runs with sudo, elevating the process beyond the plugin environment.

    sudo ufw allow 7236:7250/udp comment 'Miracast-RTP'

Automated analysis only — not a security guarantee.

AI advisory review

No obvious issues detected

Language-model assessment · ~deepseek/deepseek-v4-flash-latest — advisory only

Low
AI risk level
Low
Recommendation
install
Model
~deepseek/deepseek-v4-flash-latest
Analyzed commit
edfd5e0
Reviewed
3 days ago

The plugin is a well-structured bar widget that manages Miracast screen mirroring via a Python helper. The only elevated command is a sudo ufw rule, which is user-initiated (via a UI button) and documented as optional in the README; the README's sudo commands are documentation only. No obfuscation, persistence, or credential theft was found.

  • The helper contains a sudo ufw command (line 662) that elevates privileges; it should be confirmed that it only runs when the user explicitly clicks the firewall action and never automatically.
  • The plugin executes external commands (hyprctl, systemd-inhibit, etc.) but they are standard and scoped to display management.
How this check works

This review combines the deterministic scan (the rule-based results above) with an independent look at the plugin's code by a language model. The model reads a trimmed sample of the repository's files, the manifest, and the README, then gives a plain-language risk level and a recommendation: install (no notable danger), review (look closer first), or avoid (clearly dangerous).

It runs on the same analyzed commit as the deterministic scan and is strictly advisory — it is not a security guarantee and never blocks a plugin by itself. A human moderator still reviews plugins before they are listed.

AI advisory only — automated analysis, not a security guarantee.

Install
$ omarchy plugin add https://github.com/JeffCortez23/omarchy-projector-cast --enable
Widgets #Hyprland #bar #quickshell

📽️ Projector & Cast — Omarchy Status Bar Plugin

Omarchy Plugin License: MIT Languages

Projector & Cast (io.github.jeffcortez23.omarchy-projector-cast) is a bar widget and popup panel for Omarchy Linux and Hyprland. It enables 1-click screen mirroring (Miracast / Wi-Fi Direct) to classroom/auditorium projectors (such as Epson 3LCD laser projectors) and Smart TVs (TCL, Samsung, LG, Sony), with instantaneous resolution switching, intelligent HiDPI auto-scaling, and extensive multi-aspect ratio presets (16:9, 16:10, 3:2, 21:9, 32:9, 4:3).

Projector & Cast Preview


✨ Features

  • 📡 1-Click Screen Mirroring (Miracast): Seamlessly launches and manages gnome-network-displays with automatic PipeWire video streaming over Wi-Fi Direct (P2P).
  • 🛡️ Presentation Mode (Anti-Sleep & DND): 1-click toggle that inhibits desktop sleep/idle lock and silences desktop notifications during slide presentations.
  • ⚡ Smart Wi-Fi Band & Portal Diagnostics: Real-time detection of 5 GHz vs 2.4 GHz bands with low-latency tips, ScreenCast portal readiness check, and non-privileged firewall verification.
  • 🖥️ Multi-Monitor Target Selection: Easily select which connected display to resize or project when using multi-monitor setups.
  • 🖱️ Top Bar Quick Action: Right-click on the bar icon to instantly stop casting or reset to native resolution without opening the popup.
  • 📐 Multi-Aspect Ratio & Resolution Presets:
    • 16:9 Standard (TVs & Monitors): 1080p FHD, 2K QHD (1.25x), 4K UHD (2x HiDPI), 5K UHD (2x HiDPI), 720p HD Ready.
    • 16:10 Classroom Projectors & High-Res Laptops: WXGA (Epson 1280x800), WUXGA (1920x1200), 2.8K OLED (2880x1800 1.5x), 3.2K OLED (3200x2000 1.6x), WQXGA (2560x1600 1.25x).
    • 3:2 Productivity (Surface / MateBook): 3K (3000x2000 1.5x).
    • 21:9 & 32:9 Ultrawide: UW-FHD (2560x1080), UW-QHD (3440x1440 1.25x), Super UW (5120x1440 1.25x).
    • 4:3 / 5:4 Classic: XGA (1024x768), SXGA (1280x1024).
  • 🔄 Hardware-Aware Native Auto-Detection: Automatically detects any laptop or monitor's exact factory resolution and HiDPI scale (1080p, 2.8K, 3.2K, 4K, 5K, ultrawide) and provides a 1-click restore.
  • 🌐 Multilingual Support (i18n): Auto-detects system locale or allows quick manual switching between English (EN), Español (ES), Português (PT), Français (FR), Deutsch (DE), 中文 (ZH), 日本語 (JA), and 한국어 (KO).
  • 🪟 Hyprland Universal Compatibility: Supports Omarchy's Lua runtime API with fallback to standard Hyprland keyword dispatching.

📦 Prerequisites

  1. GNOME Network Displays (for Miracast wireless casting):

    sudo pacman -S gnome-network-displays
    
  2. Hyprland Window Rule (Recommended): To keep the connection window floating and centered, add this rule to ~/.config/hypr/hyprland.lua:

    o.window({ class = ".*[nN]etwork[dD]isplays.*" }, { float = true, center = true, size = "800 580" })
    

    (Or in standard hyprland.conf: windowrule = float, class:.*[nN]etwork[dD]isplays.*)

  3. Firewall (UFW - Optional): If UFW is active on your machine, allow the RTSP control port (7236/tcp) and the RTP media stream ports (7236-7250/udp):

    sudo ufw allow 7236/tcp comment 'Miracast-RTSP'
    sudo ufw allow 7236:7250/udp comment 'Miracast-RTP'
    

    (The plugin includes a 1-click clipboard button in the UI if UFW is detected active).


🚀 Installation & Removal

Installation via Omarchy CLI

omarchy plugin add https://github.com/JeffCortez23/omarchy-projector-cast --enable

Removal

omarchy plugin remove io.github.jeffcortez23.omarchy-projector-cast --yes

📜 License

MIT License © 2026 Jeff Cortez