Repository navigation
feat(settings): an app-exception list that leaves programs' own keys alone - #116
Open
istoolsfox wants to merge 1 commit into
Open
istoolsfox wants to merge 1 commit into
istoolsfox wants to merge 1 commit into
Conversation
istoolsfox
force-pushed
the
feat/app-exceptions
branch
from
October 19, 2026 09:20
3b309b7 to
aa38c2f
Compare
istoolsfox
marked this pull request as ready for review
October 19, 2026 09:33
…alone Rebased onto v0.6.0: the helper protocol gains version 7 on top of the teammate's 6 (the skipApps config field, the foregroundApp and appList events and the getForegroundApp and getAppList commands).
istoolsfox
force-pushed
the
feat/app-exceptions
branch
from
October 26, 2026 01:59
82fb35e to
4c783f1
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #104
What and why
Issue #104: in Photoshop the Option + click that inspects layers is also lolPing's ping trigger, and the only way out was turning lolPing off. This adds an app-exception list (Settings → Trigger → 程序例外 / App exceptions): in the apps you name, lolPing stands down entirely — the ping and emote trigger keys, custom ones included, pass through, so the program's own shortcuts keep working. Gestures stay off there too; only the toggle hotkey still answers.
How it works for the user: pick a running app from the dropdown (with its icon; the list updates as apps come and go), press capture foreground (the window hides for 3 s and adds whatever the user switched to), or just type a process name. At most 32 entries, and the list lives in
skipApps(normalizeSettingsdefaults it to[], so old settings files read as before).Under the hood:
configgainsskipApps; the helper checks the foreground app per platform —GetForegroundWindow+QueryFullProcessImageNameon Windows (cached per window, so a press costs one query) andNSWorkspace's frontmost application on macOS (hooks_mac.cppnow compiles as Objective-C++). A hit costs nothing when the list is empty. The helper'sreadyversion becomes 5. Linux has no list yet: its helper never skips.针对 #104:Photoshop 里 Option+单击查图层会和信号触发键打架,现在可以把 Photoshop 加进「程序例外」——在这些程序里 lolPing 完全让位(触发键、自定义触发键、手势都放行,程序自己的快捷键一切照常),总开关快捷键仍可用。支持从下拉框选正在运行的程序(带图标)、捕获前台程序(窗口隐藏 3 秒)、手输名字三种添加方式,最多 32 条,旧配置文件完全兼容。
How I tested it
New suites cover the helper's list command and macOS app scan, the icon fetching, the settings normalization (invalid entries dropped, cap enforced, old files default to an empty list) and the trigger pass-through in the input bridge.
Ran by hand on:
Checklist
npm run typecheck,npm run test:helperandnpm testpasssrc/shared/i18n.ts, both READMEs)docs/design.mdis updated (helper §App exceptions, trigger pass-through, ready version 5)AGENTS.mdin context and I read the whole diff. Tool: ZCode (GLM)