Skip to content

programmersd21/nimbus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌩️ Nimbus Island

A sleek, Apple-inspired system monitoring widget for Windows with built-in screenshot and recording capabilities.

Version Python License Platform


✨ Features

📊 Real-Time System Monitoring

  • CPU Usage - Live processor utilization with core/thread info
  • RAM Status - Memory percentage and used capacity tracking
  • Battery Info - Current percentage with charging status
  • Network - Active WiFi SSID and signal strength
  • Bluetooth - Connected device detection
  • Media Player - Current playback information
  • Terminal Monitor - Active PowerShell/CMD window tracking

📸 Screenshot & 🎥 Recording

  • Instant Screenshots - Capture desktop with one click
  • Screen Recording - High-quality MP4 recordings via FFmpeg
  • Auto-Notifications - Visual feedback on completion
  • Smart Storage - Organized folders in Pictures/Nimbus/
  • Quick Access - View saved files directly

🎨 Premium UI/UX

  • Apple-Inspired Design - Glassmorphic aesthetic with custom typography
  • Smooth Animations - Fade in/out transitions on expand/collapse
  • Dark Mode - Eye-friendly dark theme with neon accents
  • Responsive Layout - Adaptive centered display
  • Marquee Text - Auto-scrolling for long media titles

⚡ Performance

  • Lightweight - Minimal resource footprint
  • Always-On-Top - Persistent window management
  • System Tray - Quick toggle visibility
  • Multi-Threaded - Non-blocking data fetching

🚀 Installation

Requirements

  • Windows 10/11 (or higher)
  • Python 3.8+
  • FFmpeg (for recording - download)

Step 1: Clone Repository

git clone https://github.com/yourusername/nimbus.git
cd nimbus

Step 2: Install Dependencies

pip install -r requirements.txt

Step 3: Install FFmpeg

  • Option A: Chocolatey

    choco install ffmpeg
  • Option B: Manual Download Download from ffmpeg.org and add to PATH

  • Option C: Winget

    winget install FFmpeg

Step 4: Run Application

python nimbus.py

📦 Dependencies

PySide6
psutil
requests
Pillow
mss

See requirements.txt for complete list.


🎮 How to Use

💻 Compact Mode

Default view - Shows rotating system stats

  • ⏰ Time & Date
  • 🖥️ CPU Usage
  • 🧠 RAM Usage
  • 📡 WiFi/Bluetooth Status
  • 🎵 Media Playback
  • 🔋 Charging Notifications

Click to expand → Full dashboard

📱 Expanded Mode

Detailed view with:

  • Current time (HH:MM)
  • Complete date and year
  • 6 stat boxes (CPU, RAM, Battery, Media, WiFi, Bluetooth)
  • Active terminal window info
  • Real-time data updates

Click anywhere to collapse

📸 Screenshot Button

Located next to the main display in compact mode

  1. Click screenshot icon
  2. Desktop captures instantly
  3. Saved to: C:\Users\[YourName]\Pictures\Nimbus\Screenshots\
  4. Button morphs to checkmark ✅

🎥 Recording Button

Located next to screenshot button

  1. Click recording icon
  2. High-quality desktop recording starts (30 FPS, H.264)
  3. Saved to: C:\Users\[YourName]\Pictures\Nimbus\Recordings\
  4. Button morphs to checkmark ✅

🖱️ System Tray

Right-click tray icon for quick access:

  • Show/Hide window
  • Exit application

🎨 Customization

Change Colors

Edit Colors class in nimbus.py:

class Colors:
    ACCENT_CYAN = QColor(120, 230, 255)  # Edit RGB values
    ACCENT_PINK = QColor(255, 160, 210)
    # ... more colors

Adjust UI Scale

Modify UI_SCALE at the top:

UI_SCALE = 0.8  # Range: 0.5 - 1.5

Change Font

Replace font file path in __init__:

id = QFontDatabase.addApplicationFont("path/to/your/font.otf")

Customize Update Speed

Adjust timers:

self.timer_rot.start(4000)  # Rotate content every 4 seconds
self.timer_hov.start(50)    # Check input every 50ms

⌨️ Keyboard Shortcuts

| Action | Key | | Toggle Expand/Collapse | Click Widget | | Quick Screenshot | Click 📸 Button | | Quick Recording | Click 🎥 Button | | Exit Application | Tray Menu → Exit |


🔧 Troubleshooting

❌ "ModuleNotFoundError: No module named 'PySide6'"

pip install PySide6 --upgrade

❌ FFmpeg Not Found

  • Verify FFmpeg is installed: ffmpeg -version
  • Add to PATH or specify full path in code
  • Use system tray to check status

❌ Screenshots Not Saving

  • Ensure mss is installed: pip install mss
  • Check folder permissions: C:\Users\[YourName]\Pictures\
  • Try PIL fallback (auto-enables if mss fails)

❌ High CPU Usage

  • Increase timer intervals (see Customization)
  • Reduce update frequency
  • Check background processes

❌ Widget Not Appearing

  • Check system tray for hidden window
  • Try: Tray Menu → Show
  • Restart application

🎯 Performance Tips

Do This:

  • Keep folder structure organized
  • Update Windows regularly
  • Monitor FFmpeg processes

Avoid This:

  • Running multiple instances
  • Excessive recording sessions
  • Network-heavy operations simultaneously

🤝 Contributing

Want to improve Nimbus?

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit changes (git commit -m 'Add amazing feature')
  4. Push to branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📜 License

This project is licensed under the MIT License - see the LICENSE file for details.


🙏 Acknowledgments

  • Design Inspiration - Apple's macOS widgets
  • Icons & Typography - SF Pro Display font
  • Libraries - PySide6, psutil, mss, FFmpeg

📞 Support & Contact

Issues? Open a GitHub issue with:

  • Windows version
  • Python version
  • Error logs
  • Steps to reproduce

Questions? Check the FAQ below or create a discussion.


📋 FAQ

Q: Will this work on Mac/Linux? A: Currently Windows-only due to WinAPI integration. Linux port planned for v2.0.

Q: Can I customize the update interval? A: Yes! Edit timer values in the __init__ method.

Q: Does this affect gaming performance? A: No, it's lightweight and optimized for low overhead.

Q: Where are my screenshots saved? A: C:\Users\[YourName]\Pictures\Nimbus\Screenshots\

Q: Can I disable WiFi/Bluetooth monitoring? A: Yes, comment out poll_connectivity() in the worker thread.

Q: Is there a portable version? A: You can use PyInstaller or similar.


🌟 Show Your Support

If you love Nimbus, please:

  • ⭐ Star this repository
  • 📢 Share with friends
  • 🐛 Report bugs
  • 💡 Suggest features

Made with ❤️ for Windows power users

Releases

No releases published

Packages

 
 
 

Contributors

Languages