From 3f5797e58a775df82b092908415936992def2735 Mon Sep 17 00:00:00 2001 From: LucaGerlich Date: Tue, 18 Aug 2026 21:19:02 +0200 Subject: [PATCH 1/8] docs: document Homebrew installation --- README.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/README.md b/README.md index c2bd5c1..2384ac5 100644 --- a/README.md +++ b/README.md @@ -11,8 +11,20 @@ If you keep a German external keyboard next to a US MacBook keyboard, you alread ## Install +With [Homebrew](https://brew.sh): + +```bash +brew tap LucaGerlich/tap +brew install --cask inputpilot +``` + +Or manually: + 1. Download **`InputPilot-x.y.z.dmg`** from the [latest release](https://github.com/LucaGerlich/InputPilot/releases/latest). 2. Open the DMG and drag InputPilot into Applications. + +Then, either way: + 3. Launch it. A keyboard icon appears in the menu bar — there is no Dock icon and no main window. 4. A welcome window asks for **Input Monitoring**. Grant it, then quit and reopen InputPilot if macOS asks. 5. Press a key on each keyboard you want to configure, then open **Settings** from the menu bar icon and pick an input source per keyboard. From 70e2a0521369ce2bab2099c6915214ff2abf17a6 Mon Sep 17 00:00:00 2001 From: LucaGerlich Date: Sun, 11 Oct 2026 02:17:42 +0200 Subject: [PATCH 2/8] fix: make the privacy, update and shortcut claims precisely true - Structured data on the site still said the app never reads key codes; it reads the usage code to detect modifiers, then discards it. - "Nothing leaves your Mac" ignored Sparkle's automatic daily update check; the welcome text, README, site and SECURITY.md now say so. - Tab is not a modifier, so the claim that Cmd-Tab never changes the layout was false. Describe what is actually ignored. - The layout switches within half a second of the first key press, not "the moment you start typing". - SECURITY.md: the usage code is a local constant, the storage list is complete, redaction runs on record rather than export, and Sparkle checks a code signature rather than notarization. - CHANGELOG: only update archives are signed, not the appcast itself. - Name Keychange, the closest alternative, in the comparison FAQ. - Note the corrected network claim in the pre-release audit and drop the work account's team ID from the published page. --- CHANGELOG.md | 4 ++-- Config/AppInfo.plist | 2 +- InputPilot/UI/WelcomeView.swift | 2 +- README.md | 2 +- SECURITY.md | 17 ++++++++++++----- docs/index.html | 26 +++++++++++++------------- docs/pre-release-audit.md | 4 ++-- 7 files changed, 32 insertions(+), 25 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9faf7bd..7b82159 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,9 +24,9 @@ First public release. - Undo for the last automatic switch, and pause for 15 or 60 minutes. - Conflict detection for mappings pointing at removed or disabled input sources. - Debounce (400 ms) and cooldown (1.5 s) to prevent flapping between keyboards. -- Optional switching on modifier-only key presses, off by default, so ⌘-Tab does not change the layout. +- Optional switching on modifier-only key presses, off by default, so a lone ⇧ or ⌘ press does not change the layout. Any other key — including the Tab in ⌘-Tab — counts as typing on that keyboard. - In-app debug log with copy and export, containing device and status information only. -- Automatic updates via Sparkle, over a signed appcast. +- Automatic updates via Sparkle; every update archive is EdDSA-signed and verified before install. ### Fixed diff --git a/Config/AppInfo.plist b/Config/AppInfo.plist index 805c57b..b837939 100644 --- a/Config/AppInfo.plist +++ b/Config/AppInfo.plist @@ -3,7 +3,7 @@ NSInputMonitoringUsageDescription - InputPilot detects which keyboard you are typing on to switch your input language automatically. It never reads or stores what you type. + InputPilot uses key presses only to tell which keyboard you are typing on and whether a modifier key was pressed, so it can switch your input language automatically. It never records, stores or sends what you type. SUFeedURL https://raw.githubusercontent.com/LucaGerlich/InputPilot/main/appcast.xml