TreeMap
무료 오픈소스 디스크 사용량 시각화 도구로, 사각형 트리맵·중복 파일 탐색·디스크 가득 예측·정리 시 파일을 휴지통으로만 이동한다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
A floating speaker-notes overlay for Windows that is completely invisible to screen capture — Teams, Meet, Zoom, OBS, all of them. No admin rights. No drivers. No DLL injection. Just a Python window that hides itself using a single Win32 API call.
This started with Netflix.README 전문 보기 ↗A floating speaker-notes overlay for Windows that is completely invisible to screen capture — Teams, Meet, Zoom, OBS, all of them. No admin rights. No drivers. No DLL injection. Just a Python window that hides itself using a single Win32 API call.
This started with Netflix.
Like most streaming services, Netflix blocks screen recording — try to capture it and you get a black rectangle where the video should be. I got curious about how that worked. After digging into it, I found that Windows exposes a per-window flag called SetWindowDisplayAffinity. When you set it to WDA_EXCLUDEFROMCAPTURE, the window is rendered normally on your screen but the capture pipeline sees only a transparent void.
Netflix's player sets this flag on its video surface. That's the whole trick.
The obvious next thought: what if I set that flag on a window I own? A window full of presenter notes, floating over everything, visible only to me — invisible to whoever is watching my screen share.
That is exactly what this project is.
Windows has a display stack with multiple layers. Applications like Netflix render into a protected layer that the capture APIs cannot read. The mechanism is a single function:
SetWindowDisplayAffinity(hwnd, WDA_EXCLUDEFROMCAPTURE)
The critical constraint: the calling process must own the window. You cannot cloak someone else's window — Windows enforces this. This is why Netflix's protection cannot be trivially bypassed by an external tool, and it is also why self-cloaking works perfectly: our Python process creates its own tkinter window and immediately cloaks it.
There is one subtle gotcha: tkinter.winfo_id() returns an inner child HWND, not the top-level window handle. SetWindowDisplayAffinity rejects child windows with error 87 (invalid parameter). The fix is GetParent(winfo_id()) to reach the real top-level HWND.
inner = window.winfo_id()
hwnd = ctypes.windll.user32.GetParent(inner) or inner
ctypes.windll.user32.SetWindowDisplayAffinity(hwnd, 0x00000011)
No admin. No elevated privileges. No side effects on the rest of the system.
# headings, ## subheadings, **bold**, - bullets, > speaker prompts> lines render as a distinct highlighted callout box, separate from the main notesA built-in live interview copilot — like Parakeet, but nothing leaves your machine. Click the ✦ COPILOT sidebar tab to arm it. It listens to the other side's audio (the call output, not your mic), transcribes it locally, and when you press F9 it streams an AI-generated answer straight into the same cloaked card — invisible to the screen share.
copilot_profile.md (git-ignored) and answers come back in first person, grounded in your background.Setup: install Ollama and ollama pull qwen3:8b, then pip install -r requirements.txt (first run downloads the Whisper model). See CLAUDE.md for env overrides and GPU notes.
http://localhost:11434 (Ollama). No audio, transcript, or answer is uploaded anywhere. Model weights are downloaded once from Hugging Face and then run offline.A single HTML file — no build step, no framework. Open it directly in your phone browser or deploy it to GitHub Pages / Vercel.
WDA_EXCLUDEFROMCAPTURE)pywin32 (usually pre-installed or available via pip)pip install -r requirements.txt
1. Clone and create a virtual environment
git clone https://github.com/Sid009192/speaker-notes-prompter.git
cd speaker-notes-prompter
python -m venv .venv
.\.venv\Scripts\activate
pip install -r requirements.txt
2. Configure your sync method
Copy .env.example to .env and fill in your Firebase URL:
FIREBASE_URL=https://your-project-default-rtdb.firebaseio.com
Or leave it blank and use the --firebase / --local flags at runtime (see below).
# Activate venv first
.\.venv\Scripts\activate
# Auto-connect using .env
python overlay.py
# Local text file
python overlay.py sample_notes.txt
# Firebase (URL overrides .env)
python overlay.py --firebase https://your-project-default-rtdb.firebaseio.com
# Local WebSocket (same network as phone)
python overlay.py --local
# Prints the LAN IP — enter it in the web UI
# Custom port
python overlay.py --local --port 9000
# Slide Heading
## Subheading
Regular paragraph text. **Bold inline.**
- Bullet point one
- Bullet point two
> This is a speaker prompt — renders as a highlighted callout box.
> Visible only in the overlay, great for reminders and cues.
---
# Next Slide
--- on its own line separates slides.
https://your-app-default-rtdb.firebaseio.com).env as FIREBASE_URL=... or enter it in the web UITest mode rules expire after 30 days. Renew in Firebase Console → Rules if sync stops working.
overlay.py # Main application — OverlayApp class
copilot/ # Local, on-device AI copilot (capture, transcribe, LLM)
capture.py # WASAPI loopback audio capture
transcriber.py # faster-whisper STT (RealtimeSTT + Silero VAD)
llm.py # Ollama streaming client (local LLM)
engine.py # Orchestrator: audio -> STT -> buffer -> F9 -> answer
phone_ui/
index.html # Web UI for phone (no build step)
sample_notes.txt # Example notes file
requirements.txt # requests, websockets, + copilot deps
copilot_profile.example.md # Template for your private résumé summary
.env.example # Config template — copy to .env
| Key | Action |
|---|---|
← / → | Previous / next slide |
Ctrl + Shift + ` or Ctrl + ` | Toggle show / hide overlay (system-wide global hotkey + in-app) |
Ctrl + Shift + H or Ctrl + H | Toggle show / hide overlay (alternative global hotkey) |
F2 or Ctrl + E | Toggle Read-Only / Editable mode (locks click-to-edit; enables content space drag) |
Alt + D / Alt + I (or Ctrl + [ / ]) | Decrease / increase window opacity by 10% |
F9 | Copilot: answer the latest transcribed question (global while copilot mode is on) |
Ctrl + Shift + Q | Screen capture: take screenshot of presenter's screen & sync to client |
Escape | Close settings popup / slide switcher / stop copilot / exit |
SetWindowDisplayAffinity is a Win32 API with no equivalent on macOS or LinuxMIT