CamPeek is a powerful yet lightweight GNOME Shell extension inspired by the popular macOS app Hand Mirror, providing instant webcam access directly from your Linux desktop's top bar with advanced camera compatibility and intelligent detection. 🎥 Key Features: • ✨ Instant Access: Open your webcam feed in one quick click—perfect for a last-minute check before video calls. • 🖼️ Minimalist Design: A sleek, always-on-top, frameless window for a distraction-free preview. • 🔒 Privacy First: CamPeek streams your webcam feed directly without recording or saving any data. • 🚀 Lightweight & Simple: Fast, unobtrusive, and integrates smoothly into your GNOME desktop experience. 🔧 Advanced Camera Support: • 🎯 Intelligent Detection: Advanced multi-method camera detection with 95%+ compatibility across camera types. • 📹 Multi-Camera Support: Right-click to switch between multiple cameras with real camera names (not just "Camera 0"). • 🔄 Adaptive Resolution: Automatically detects and uses optimal resolutions (16:9 preferred, 4:3 fallback). • 🏗️ Enhanced Compatibility: Works with built-in laptop cameras, USB webcams, professional cameras, and capture cards. • ⚡ Optimized Performance: 60-80% faster camera detection with intelligent testing order (capability → format → GStreamer). • 🛠️ Smart Fallback: Multiple detection methods ensure compatibility with non-standard drivers and older cameras. 🎛️ Technical Excellence: • 📊 Expanded Device Range: Scans up to 20 camera devices (/dev/video0-19) for comprehensive coverage. • 🔍 Dual Capability Detection: Primary method checks Device Caps, fallback method for older cameras. • 📐 Format Validation: Counts actual video formats to distinguish capture devices from metadata devices. • 🎬 Enhanced GStreamer Pipeline: Adaptive capabilities with videoconvert, videoscale, and quality optimization. • ⚠️ Intelligent Error Handling: Specific error types with helpful solutions (missing GStreamer, permissions, etc.). 📍 Ideal For: • Quickly checking your appearance or environment before meetings. • Confirming camera functionality instantly—no need to open heavy applications. • Privacy-conscious users looking for a fast and straightforward webcam preview tool. • Users with multiple cameras who need easy switching between devices. • Systems with built-in cameras, professional equipment, or non-standard camera drivers.
Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.
Version | Status |
---|---|
27 | Rejected |
26 | Rejected |
25 | Active |
24 | Active |
23 | Active |
22 | Rejected |
21 | Active |
20 | Rejected |
19 | Active |
18 | Rejected |
17 | Rejected |
16 | Rejected |
15 | Active |
14 | Rejected |
13 | Rejected |
12 | Active |
11 | Rejected |
10 | Rejected |
9 | Rejected |
8 | Active |
7 | Rejected |
6 | Active |
5 | Active |
4 | Rejected |
3 | Rejected |
2 | Rejected |
1 | Rejected |
i have added 1 : Smart Camera Detection (New Feature) The extension now intelligently scans all available camera devices and only shows those that are actually usable. Cameras will only appear in the menu if GStreamer can successfully access them. This includes virtual cameras — they'll only show up if they're ready and working. how it works : Step 1 : Check the Current Camera It starts by verifying whether the currently configured camera device exists. If it does, GStreamer tries to open it to make sure it's functional. Step 2: Quick Camera Test A brief 1-second GStreamer test is run. If it passes, the extension continues using that camera. If it fails, it begins looking for another camera that works. Step 3: Scan for Other Cameras The extension goes through all other available devices one by one. Once a working camera is found, it switches over and saves the new setting so it’s remembered next time. 2 : Cleaner Camera Menu The camera selection menu now only lists devices that are actually working. Virtual cameras (like those created with v4l2loopback) will only appear if they’re actively streaming. This helps avoid confusion and prevents errors from trying to select unavailable or non-functional cameras.Cleaner Camera Menu The camera selection menu now only lists devices that are actually working. Virtual cameras (like those created with v4l2loopback) will only appear if they’re actively streaming. This helps avoid confusion and prevents errors from trying to select unavailable or non-functional cameras.
Approved for now but this is really getting full of spawn commands which we really want to avoid in extensions. Is it possible to make it as an app and just use that app as a dependency for this extension?
I completely understand your point, and I agree that using fewer spawn commands would be ideal. I’d really like to explore the idea of turning this into a separate app and using it as a dependency in the future. Right now though, I’m tied up with my graduation project and final exams, so I went with the simpler route just to keep things working for now.