Repository navigation
Releases
Releases · krypdoh/NFL-TCKR
NFL-TCKR v0.1.57
0.1.57 — 2026-11-08
- Shortcut L jumps the scroll to the first Leaders card. Does nothing when
Leaders are not currently on the ticker.
0.1.56 — 2026-11-08
- Settings → Leaders tab: weekly and season PASSING / RUSHING / RECEIVING
leaders (top 1–5). Each scope can show during live games, when no live games
are running, or not at all. Weekly tops come from this week's in/post
scoreboard leaders; season tops from ESPN season leaders.
0.1.55 — 2026-11-08
- Fix crash when two or more displays are selected: mirror bars no longer borrow
NFLTicker.nativeEvent/moveEvent (super() failed on TickerMirror).
0.1.54 — 2026-11-08
- Settings → General: Display placement (Single / Clone / Continuous span) and
per-monitor checkboxes. Clone syncs the same scroll on each selected display;
span runs one continuous path left-to-right across them. Each bar docks and
hides for fullscreen on its own monitor. Applying settings re-reads the
display plan (monitor_index was previously ignored on Apply).
NFL-TCKR v0.1.53
NFL-TCKR CHANGELOG
0.1.52 — 2026-10-04
- Settings → Shortcuts lists the ticker keys. + and − change scroll speed.
Q still quits. - Settings → General: Follow Team. F centers that game and pauses; F or P
resumes.
0.1.51 — 2026-10-04
- Keys while the ticker is focused: P pause/resume, T start the scroll
from the beginning, R replay the last scoring banner
0.1.50 — 2026-10-04
- Dock: reserve the full on-screen strip and sit below other top docks
instead of covering them. Apply and quit release that strip, so the next
start no longer parks under the previous reservation.
0.1.49 — 2026-09-30
- Dock: keep checking the top of the monitor for another bar, not only other
tickers and not only at startup. NFL-TCKR stacks below that reservation.
0.1.48 — 2026-09-30
- Defaults: 64px bar, speed 10, 5s refresh, city names, team-name glow,
drive summary, post-game stats in Subway Ticker, and alternate colors for
Bills, Patriots, Browns, Steelers, Bears, Packers, Texans, Titans, Seahawks
0.1.47 — 2026-09-29
- Scroll: passer-line rotation on a final (and live) card stamps that line
onto the cached card. The names, logos, and team-name glow are not
repainted every 5 seconds.
0.1.46 — 2026-09-29
- Scroll: team-name glow stays on the cached card. Live ticks still stamp
only the clock, down, play, score, timeouts, and possession icon. Glow-all
still repaints the whole card.
0.1.45 — 2026-09-29
- Scroll: cache the stable part of each live card (names, logos) and stamp
only the clock, down, play, score, timeouts, and possession icon so a
tick does not rebuild the whole card on the GUI thread. Both possession
slots stay reserved so a possession flip does not change card width.
0.1.44 — 2026-09-29
- Scroll: paint changed cards on the GUI thread one per event-loop turn
(QTimer.singleShot(0)); install each image as it finishes so VBlank wakes
are not starved by a QThread holding the GIL in QPainter
0.1.43 — 2026-09-29
- Live cards: reserve center from clock + fixed down samples only; last play /
drive wraps up to 3 lines inside that column so scores sit closer
0.1.42 — 2026-09-29
- Scroll: yield the GIL during card rebuilds and install only finished images so
down / play / score updates do not drop a VBlank frame
0.1.41 — 2026-09-29
- Scoring flash: 3s all-caps type line (e.g. GIANTS TOUCHDOWN!), then 4s play detail
- Detail form e.g. Giants Score: Scattebo 22 YD Run Touchdown!; hold is 7s total
0.1.40 — 2026-09-29
- Live cards: reserve fixed center and two-digit score columns so down / last-play /
score-digit updates do not change card width or shift logos and neighbors - Timeouts stay centered under the reserved score slot
0.1.39 — 2026-09-29
- Last play: Pixel Font7 (fonts/PixelFont7-G02A.ttf) at 8–14px with AA off for that line only
0.1.38 — 2026-09-29
- Live down line: Ozone LED face (uppercased); last-play text nudged down 2px
0.1.37 — 2026-09-29
- Live down line: "2nd & 7 on NYG 45" (word "on" instead of "@"; connector stays white)
0.1.36 — 2026-09-29
- Last play: Roboto Medium (fonts/Roboto-Medium.ttf) instead of Zed Sans Regular —
slightly thicker at the small play-line size - Quarter / linescore table: Ozone LED face for grid cells; FINAL/HALFTIME
heading stays on the clock/time face
0.1.35 — 2026-09-29
- Pregame center: larger gap between kickoff / network / spread; network and
spread fonts closer to kickoff size; away record sits left of the team name
0.1.34 — 2026-09-29
- Add
-test/--testCLI mode: fake live slate (no ESPN) so the bar can be
demoed when no games are on; advances clocks / downs / plays every ~4.5s
0.1.33 — 2026-09-29
- Final cards: restore the center linescore table (periods only, OT when
present); remove compact quarter digits under each score - Linescore table no longer includes a redundant FINAL/total column on
finals or in-game quarter breaks
0.1.32 — 2026-09-29
- Live down line colors: 4th down gold, else red zone red, else possession
team color (clock blue / white when possession unknown); & and @ stay white - Settings → General: Show drive summary (mutually exclusive with last play);
bottom row shows "12 plays, 75 yards" from the current drive when available - Pregame cards: team records beside names, broadcast under kickoff, spread
in the center (hidden once live or final) - Final cards: compact quarter points under each score; no down / last play /
drive / possession; full linescore table kept for in-game quarter breaks
0.1.31 — 2026-09-29
- Glow all: keep halos cached (text, logos, possession icons) and drop the
oldest entry instead of wiping at 400. A full slate was rebuilding every
halo on the next card and holding the scroll clock for hundreds of ms
per card; the scroll blit itself stayed under 1ms - Card rebuild runs at low priority and yields between halos so a cold glow
pass cannot pin the machine
0.1.30 — 2026-09-28
- Settings → General: Include Post-Game Stats (off by default)
- After each final score, scroll away then home PASS/RUSH/REC/SACKS/TACKLE
leaders (headers in that team's color, e.g. LAC PASS); post-game line is
2× situation size; Settings chooses the post-game stats typeface
0.1.29 — 2026-09-28
- QB line includes completions/attempts: #16 Lawrence 20/33 182 YDS, 3 TD, 1 INT
(live/final boxscore C/ATT and pregame season leader C/ATT)
0.1.28 — 2026-09-28
- AppBar always registers (ABM_NEW/QUERYPOS/SETPOS) so NFL reserves its own
strip below any existing top reservation; windows should not open underneath - Clear WS_EX_TOOLWINDOW before register so Explorer includes this HWND in rcWork
- Stop SPI_SETWORKAREA(NULL) which rebuilt work area from AppBars and dropped us
- Re-force work-area top to the bottom of our strip 1s and 3s after dock
0.1.27 — 2026-09-28
- Ticker face: ignore leftover Settings.json "Arial" and use bundled Ozone;
Settings → General now has a Ticker font list from fonts/ - AppBar: if the top is already reserved, dock below it (do not steal y=0);
still shrink the work area so windows start below NFL-TCKR; re-park if Qt
snaps the HWND back to the screen top
0.1.26 — 2026-09-28
- Frozen exe: ship each fonts/*.ttf|otf into the onefile extract (fonts/ and root)
- Register bundled faces after QApplication; exe prefers fonts-folder over installed
- Search _MEIPASS/fonts, extract root, and a fonts/ folder next to the exe
0.1.25 — 2026-09-28
- Settings → Network tab: Enable Proxy + URL, optional SSL certificate file
- ESPN fetches honor proxy (HTTP(S)_PROXY + requests proxies); corporate SSL
inspection uses a merged Windows CA bundle when no custom cert is set
0.1.24 — 2026-09-27
- Live center: fixed 4-row slots so clock Y stays put with or without last play;
more gap clock→down, play a tad lower, clock face +1px - Clock > 2:00: time + down in bright blue, dash white; down line & and @ always white
- Logo / name / score gaps use visible ink (not canvas pad) and a shared 10px spacing
- Inter-game gap 40% tighter (~1.8× bar height instead of 3×)
- Timeout dashes use the team-name color; row sits 1px lower
- Last play: Gotham Medium then smaller, now fonts/zed-sans-regular.ttf
- Fonts: installed family first, then fonts/, then default; --debug logs every role
- Scroll: ESPN fetch on _SlateThread, cards on _CardBuildThread (QImage); idle
scoreboard poll 60s when no live / kickoff-soon games - Intro: yellow "NFL-TCKR" centered 3s, then scroll in from the right; --faststart skips
- Loop marker: logos/nfl-com-logo.png at the start of each pass
- Right-click + tray: About… (author, 2026 copyright, github.com/krypdoh/NFL-TCKR)
- build-nfltckr.ps1: onefile PyInstaller (console + noconsole) and Authenticode sign
- Frozen APP_DIR uses sys._MEIPASS so bundled fonts/logos/images resolve in the exe
- .gitignore: build/, dist/, logs, pycache, exes, signing certs
0.1.23 — 2026-09-27
- Logo / possession-icon white glow much more subtle: lower opacity (~half),
tighter scale, smaller pad; team-name / text bloom unchanged from 0.1.22
0.1.22 — 2026-09-27
- Team-name / text glow: real behind-glyph bloom (wide soft silhouette + heavy
multi-pass blur at moderate opacity) so names keep normal weight instead of
looking bold/outlined; shared _draw_text_glow also improves glow_all text
0.1.21 — 2026-09-27
- AppBar fix: always ABM_NEW/QUERYPOS/SETPOS when docked (old “passive dock”
skipped shell registration whenever anything was already at the top, so the
bar never reserved desktop space) - Force SPI_SETWORKAREA if the shell does not shrink the work area after SETPOS
- Deferred + retry AppBar setup after HWND is realized; clearer [AppBar] logs
0.1.20 — 2026-09-27
- Glow reworked as soft background bloom (blurred halo behind content) instead of
tight offset copies that only made glyphs look bolder
0.1.19 — 2026-09-27
- Windows AppBar: docked mode reserves top desktop strip (SHAppBarMessage)
- Passive dock below sister tickers (MLB-TCKR / other *-TCKR) so bars don’t stack
- Fullscreen yield: hide via opacity when a fullscreen app owns the monitor
- Settings: “Do...
NFL-TCKR
NFL-TCKR CHANGELOG
0.1.30 — 2026-09-28
- Settings → General: Include Post-Game Stats (off by default)
- After each final score, scroll away then home PASS/RUSH/REC/SACKS/TACKLE
leaders (headers in that team's color, e.g. LAC PASS); post-game line is
2× situation size; Settings chooses the post-game stats typeface
0.1.29 — 2026-09-28
- QB line includes completions/attempts: #16 Lawrence 20/33 182 YDS, 3 TD, 1 INT
(live/final boxscore C/ATT and pregame season leader C/ATT)
0.1.28 — 2026-09-28
- AppBar always registers (ABM_NEW/QUERYPOS/SETPOS) so NFL reserves its own
strip below any existing top reservation; windows should not open underneath - Clear WS_EX_TOOLWINDOW before register so Explorer includes this HWND in rcWork
- Stop SPI_SETWORKAREA(NULL) which rebuilt work area from AppBars and dropped us
- Re-force work-area top to the bottom of our strip 1s and 3s after dock
0.1.27 — 2026-09-28
- Ticker face: ignore leftover Settings.json "Arial" and use bundled Ozone;
Settings → General now has a Ticker font list from fonts/ - AppBar: if the top is already reserved, dock below it (do not steal y=0);
still shrink the work area so windows start below NFL-TCKR; re-park if Qt
snaps the HWND back to the screen top
0.1.26 — 2026-09-28
- Frozen exe: ship each fonts/*.ttf|otf into the onefile extract (fonts/ and root)
- Register bundled faces after QApplication; exe prefers fonts-folder over installed
- Search _MEIPASS/fonts, extract root, and a fonts/ folder next to the exe
0.1.25 — 2026-09-28
- Settings → Network tab: Enable Proxy + URL, optional SSL certificate file
- ESPN fetches honor proxy (HTTP(S)_PROXY + requests proxies); corporate SSL
inspection uses a merged Windows CA bundle when no custom cert is set
0.1.24 — 2026-09-27
- Live center: fixed 4-row slots so clock Y stays put with or without last play;
more gap clock→down, play a tad lower, clock face +1px - Clock > 2:00: time + down in bright blue, dash white; down line & and @ always white
- Logo / name / score gaps use visible ink (not canvas pad) and a shared 10px spacing
- Inter-game gap 40% tighter (~1.8× bar height instead of 3×)
- Timeout dashes use the team-name color; row sits 1px lower
- Last play: Gotham Medium then smaller, now fonts/zed-sans-regular.ttf
- Fonts: installed family first, then fonts/, then default; --debug logs every role
- Scroll: ESPN fetch on _SlateThread, cards on _CardBuildThread (QImage); idle
scoreboard poll 60s when no live / kickoff-soon games - Intro: yellow "NFL-TCKR" centered 3s, then scroll in from the right; --faststart skips
- Loop marker: logos/nfl-com-logo.png at the start of each pass
- Right-click + tray: About… (author, 2026 copyright, github.com/krypdoh/NFL-TCKR)
- build-nfltckr.ps1: onefile PyInstaller (console + noconsole) and Authenticode sign
- Frozen APP_DIR uses sys._MEIPASS so bundled fonts/logos/images resolve in the exe
- .gitignore: build/, dist/, logs, pycache, exes, signing certs
0.1.23 — 2026-09-27
- Logo / possession-icon white glow much more subtle: lower opacity (~half),
tighter scale, smaller pad; team-name / text bloom unchanged from 0.1.22
0.1.22 — 2026-09-27
- Team-name / text glow: real behind-glyph bloom (wide soft silhouette + heavy
multi-pass blur at moderate opacity) so names keep normal weight instead of
looking bold/outlined; shared _draw_text_glow also improves glow_all text
0.1.21 — 2026-09-27
- AppBar fix: always ABM_NEW/QUERYPOS/SETPOS when docked (old “passive dock”
skipped shell registration whenever anything was already at the top, so the
bar never reserved desktop space) - Force SPI_SETWORKAREA if the shell does not shrink the work area after SETPOS
- Deferred + retry AppBar setup after HWND is realized; clearer [AppBar] logs
0.1.20 — 2026-09-27
- Glow reworked as soft background bloom (blurred halo behind content) instead of
tight offset copies that only made glyphs look bolder
0.1.19 — 2026-09-27
- Windows AppBar: docked mode reserves top desktop strip (SHAppBarMessage)
- Passive dock below sister tickers (MLB-TCKR / other *-TCKR) so bars don’t stack
- Fullscreen yield: hide via opacity when a fullscreen app owns the monitor
- Settings: “Docked (reserve desktop space)” checkbox (default on); undocked =
floating always-on-top without AppBar
0.1.18 — 2026-09-27
- Settings: optional "Glow team names" (team-color halo)
- Settings: optional "Glow all items" (text glow + faint white logo glow)
0.1.17 — 2026-09-27
- Settings: Content transparency slider (scores/logos/names/stats strip)
- Renamed prior control to Background transparency for clarity
0.1.16 — 2026-09-27
- Settings → General: Transparency slider (0% solid … 100% clear) for ticker
background; persists as background_opacity
0.1.15 — 2026-09-27
- Scroll debug default OFF; enable with
python NFL-TCKR.py --debug
(or NFL_TCKR_SCROLL_DEBUG=1; =0 forces off)
0.1.14 — 2026-09-27
- Residual scroll judder: drive animation from DwmFlush VBlank (MLB _VBlankDriver),
not QTimer — fixed dx still phase-drifted vs the display refresh - Each VBlank: fixed px/refresh + synchronous repaint() before compositor deadline
- QTimer remains fallback if DwmFlush unavailable; SCROLL_DEBUG shows clock=VBlank|QTimer
0.1.13 — 2026-09-27
- Scroll judder: fixed px/tick at ~display refresh (no wall-clock dt catch-up)
— kills dx swing from 8 ms timer jitter (logs: spikes=0 but dx 0.2–5.3 px) - Skip STRIP rebuild when slate fingerprint unchanged (scoreboard poll + QB rotate)
— stops ~5 s / refresh 32k pixmap hitches when cards look identical - Preserve scroll offset across rebuilds; SPIKE threshold 1.5× for softer cadence hits
- SCROLL_DEBUG summaries include fixed step=…px
0.1.12 — 2026-09-27
- Fix name Y: center on actual KeepAspectRatio logo height (was using request box
79px while logos draw at ~59px → names sat low beside logos) - Extra optical lift (~logo_h/8); one-shot [CARD] align coordinate log
- Scroll debug default ON (SCROLL_DEBUG=True); NFL_TCKR_SCROLL_DEBUG=0 to silence
- All [SCROLL]/DEBUG] prints flush=True; loud startup "[SCROLL] profiler enabled"
0.1.11 — 2026-09-27
- Card layout: team names optically centered on logos (QB stats still under name)
- Was centering name+QB as one block, which sat names too low beside the logo
(incomplete: still used logo_size box, not pixmap height — fixed in 0.1.12)
0.1.10 — 2026-09-27
- Scroll judder profiler: NFL_TCKR_SCROLL_DEBUG=1 (dedicated; API DEBUG can stay off)
- ~1s summaries: tick/paint dt min/avg/max/jitter/stdev, dx, offset, pause state
- Immediate SPIKE lines when tick dt > 2× timer target or paint interval > 2× VBlank
- Logs STRIP rebuilds (pixmap recompose hitch risk)
0.1.9 — 2026-09-27
- Smooth scroll: PreciseTimer ≤8 ms + delta-time px/ms (MLB QTimer path; kills ~1 Hz judder beat)
- Strip is a DPR-aware QPixmap; paint blits via QPointF (no per-frame rescale)
- SmoothPixmapTransform only at DPR<2; LED background cached
0.1.8 — 2026-09-27
- Settings: Team Colors tab (AFC/NFC divisions) with Primary/Secondary/Tertiary/Custom
- Defaults seeded from NFL team color guide hexes; overrides persist in Settings.json
- get_team_color matches MLB model (per-team slot int or custom hex → names + flash)
0.1.7 — 2026-09-27
- Consistent inter-card gap: fixed ~3× ticker height (MLB-style) in strip composer
- No longer embeds tiny trailing spacing in each card (avoids pregame bunching)
0.1.6 — 2026-09-27
- Player surnames keep multi-part / suffixes (Beckham Jr., Penix Jr., Cook III)
- Prefer ESPN athlete lastName; unified format_player_lastname for QB + scoring flash
0.1.5 — 2026-09-27
- Pregame: hide 0-0 score digits (kickoff/vs only until live/final)
- Scoring flash: team-color sweep overlay on new ESPN scoringPlays (live only)
- Alert text: PASS / RUN / FIELD GOAL / SAFETY / 2PT / XP; dedupe by play id
- DEBUG notes when a scoring flash is queued/shown
0.1.4 — 2026-09-27
- Finals: hide last-play text under the score (show "F" only)
0.1.3 — 2026-09-27
- DEBUG console logs for ESPN GETs (endpoint, status, ms) + abbreviated payloads
- Parsed-game digests include scores, situation, QB lines (game vs season scope)
- Gate with NFL_TCKR_DEBUG (default ON; set 0/false/off to silence)
0.1.2 — 2026-09-27
- QB stats: live + final use this game's boxscore passing; pregame uses season leaders
- Pregame season lines formatted as C/ATT YDS TD Int (from competitor passingLeader)
0.1.1 — 2026-09-27
- Logos 2× size on score cards
- Smaller kickoff / clock time font
- QB/player stats use Gotham Black (+ MLB-TCKR size formula), matching MLB player text
0.1.0 — 2026-09-27
- Initial NFL ticker (sibling to MLB-TCKR)
- ESPN scoreboard + summary fetch for scores, situation, QB boxscore
- Layout: logos, team-colored names, center score / down & distance
- Last play under score (wraps to 2 lines), ball-on text, possession football icon
- QB stats under team names; rotate when ≥2 QBs with ≥4 pass attempts
- Settings: name display (team / city / both / abbr), refresh, height, filters
- System tray + hover-to-pause scrolling bar