screenoverlay 0.4.0__py3-none-any.whl → 0.4.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
screenoverlay/overlay.py CHANGED
@@ -23,7 +23,7 @@ except ImportError:
23
23
 
24
24
 
25
25
  class NativeBlurOverlay:
26
- def __init__(self, mode='blur', blur_strength=3, opacity=0.85, color_tint=(136, 136, 136)):
26
+ def __init__(self, mode='blur', blur_strength=3, opacity=0.85, color_tint=(136, 136, 136), all_screens=True):
27
27
  """
28
28
  Initialize native overlay
29
29
 
@@ -36,9 +36,11 @@ class NativeBlurOverlay:
36
36
  - blur_strength (int): How blurred/obscured (1-5, only for mode='blur')
37
37
  - opacity (float): Window opacity (0.0 to 1.0)
38
38
  - color_tint (tuple): RGB color tint (0-255)
39
+ - all_screens (bool): If True, blur all monitors. If False, only blur primary monitor (default: True)
39
40
  """
40
41
  self.mode = mode.lower()
41
42
  self.blur_strength = max(1, min(5, blur_strength))
43
+ self.all_screens = all_screens
42
44
 
43
45
  # Apply mode-specific settings
44
46
  if self.mode == 'black':
@@ -206,9 +208,13 @@ class NativeBlurOverlay:
206
208
  return [(0, 0, width, height)]
207
209
 
208
210
  def _create_windows(self):
209
- """Create overlay windows for all monitors"""
211
+ """Create overlay windows for all monitors (or just primary if all_screens=False)"""
210
212
  monitors = self._get_monitors()
211
213
 
214
+ # If all_screens is False, only use primary monitor
215
+ if not self.all_screens:
216
+ monitors = monitors[:1] # Only keep first monitor
217
+
212
218
  # Create primary root window
213
219
  self.root = tk.Tk()
214
220
  self.root.overrideredirect(True)
@@ -220,7 +226,7 @@ class NativeBlurOverlay:
220
226
  self._configure_window(self.root, x, y, width, height)
221
227
  self.windows.append(self.root)
222
228
 
223
- # Create additional windows for other monitors
229
+ # Create additional windows for other monitors (only if all_screens=True)
224
230
  for x, y, width, height in monitors[1:]:
225
231
  win = tk.Toplevel(self.root)
226
232
  win.overrideredirect(True)
@@ -279,7 +285,7 @@ class NativeBlurOverlay:
279
285
 
280
286
  def activate(self, duration=5):
281
287
  """Show native blur overlay and exit after duration"""
282
- self._create_window()
288
+ self._create_windows() # Use multi-monitor aware method
283
289
 
284
290
  # Auto-exit timer
285
291
  self._timer_id = self.root.after(int(duration * 1000), self.kill_completely)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: screenoverlay
3
- Version: 0.4.0
3
+ Version: 0.4.1
4
4
  Summary: Cross-platform screen overlay with blur, black, white, and custom modes
5
5
  Home-page: https://github.com/pekay-ai/screenoverlay
6
6
  Author: Pekay
@@ -484,11 +484,63 @@ Contributions are welcome! Here's how you can help:
484
484
 
485
485
  ---
486
486
 
487
- ## 📄 License
487
+ ## 📄 Licensing
488
488
 
489
- This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
489
+ ScreenOverlay uses a **dual-license model** similar to xlwings:
490
490
 
491
- **Why MIT?** We believe privacy tools should be freely accessible to everyone. Use it in your personal projects, integrate it into your commercial applications, or fork it to create something entirely new. No restrictions, no complications.
491
+ ### 🆓 Non-Commercial Use (Free)
492
+
493
+ Free for individuals and non-commercial purposes:
494
+
495
+ ✅ Personal projects
496
+ ✅ Educational use
497
+ ✅ Academic research
498
+ ✅ Open source projects (OSI-approved licenses)
499
+ ✅ Non-profit organizations
500
+ ✅ Evaluation and testing
501
+
502
+ **No license key needed** - just `pip install screenoverlay` and start using it!
503
+
504
+ ### 💼 Commercial Use (License Required)
505
+
506
+ A commercial license is required if you use ScreenOverlay:
507
+
508
+ 💼 At a company or for commercial purposes
509
+ 🏢 In a commercial product or service
510
+ 💰 For client work or revenue-generating activities
511
+ 🔧 In any business context
512
+
513
+ #### Pricing:
514
+
515
+ | License Type | Price | Use Case |
516
+ |--------------|-------|----------|
517
+ | 👨‍💻 **Developer** | $149/year | Single developer |
518
+ | 👥 **Team** | $699/year | Up to 5 developers |
519
+ | 🏢 **Enterprise** | Custom | Unlimited developers + priority support |
520
+
521
+ **All commercial licenses include:**
522
+
523
+ ✅ Commercial use rights
524
+ ✅ Priority email support
525
+ ✅ Perpetual license for purchased version
526
+ ✅ 1 year of updates
527
+
528
+ **[Purchase License](mailto:ppnicky@gmail.com?subject=ScreenOverlay%20Commercial%20License) | [Contact Sales](mailto:ppnicky@gmail.com?subject=ScreenOverlay%20Enterprise%20Inquiry)**
529
+
530
+ ### ❓ Which License Do I Need?
531
+
532
+ **Simple rule:** If you're using it in a business/commercial context, you need a commercial license.
533
+
534
+ | Scenario | License Needed |
535
+ |----------|----------------|
536
+ | Personal side project (no revenue) | 🆓 Non-Commercial |
537
+ | Learning Python at home | 🆓 Non-Commercial |
538
+ | University research project | 🆓 Non-Commercial |
539
+ | Open source project (MIT, GPL, etc.) | 🆓 Non-Commercial |
540
+ | Using at your company/job | 💼 Commercial |
541
+ | Building a SaaS product | 💼 Commercial |
542
+ | Freelance client work | 💼 Commercial |
543
+ | Integrating into commercial software | 💼 Commercial |
492
544
 
493
545
  ---
494
546
 
@@ -0,0 +1,7 @@
1
+ screenoverlay/__init__.py,sha256=NX7qDYscRGygfi9p6HJC_gT876L8wNpX1f01sS1mxPc,256
2
+ screenoverlay/overlay.py,sha256=rLVjc2NGG5TffVg8nZ-PkZ6PftZ8krERavX4ZjguE78,18276
3
+ screenoverlay-0.4.1.dist-info/licenses/LICENSE,sha256=QlEjK4tuMjNEYVlvzaIhxfsCeU8hcGZyuT85cm1YChE,1084
4
+ screenoverlay-0.4.1.dist-info/METADATA,sha256=OVWAHek0ALWLywqb5f4NoGRFF2msyFBoO_Bu8kwFWvY,16746
5
+ screenoverlay-0.4.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
6
+ screenoverlay-0.4.1.dist-info/top_level.txt,sha256=kfPL07o_kJ-mlb14Ps2zp_tIYnD8GfsSXlbDxDF6Eic,14
7
+ screenoverlay-0.4.1.dist-info/RECORD,,
@@ -1,7 +0,0 @@
1
- screenoverlay/__init__.py,sha256=NX7qDYscRGygfi9p6HJC_gT876L8wNpX1f01sS1mxPc,256
2
- screenoverlay/overlay.py,sha256=h3z8tl33oB-i4q91Zoc7-mqjypnbYOtZNi5fQKmeoI8,17843
3
- screenoverlay-0.4.0.dist-info/licenses/LICENSE,sha256=QlEjK4tuMjNEYVlvzaIhxfsCeU8hcGZyuT85cm1YChE,1084
4
- screenoverlay-0.4.0.dist-info/METADATA,sha256=6XJrI12_VPcULWDkiq69itu6THJW9dhCXD3jAEz63v4,15143
5
- screenoverlay-0.4.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
6
- screenoverlay-0.4.0.dist-info/top_level.txt,sha256=kfPL07o_kJ-mlb14Ps2zp_tIYnD8GfsSXlbDxDF6Eic,14
7
- screenoverlay-0.4.0.dist-info/RECORD,,