Skip to content

Commit f5b9484

Browse files
author
VAC34
committed
release: v0.1.21 -- ctrl+q default window snap (T-180)
1 parent 60696a0 commit f5b9484

76 files changed

Lines changed: 228 additions & 227 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,31 @@ All notable changes to SAIPENVIEW are documented here.
44
Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
55
Semantic versioning — see `saipenview/__init__.py`.
66

7+
## [0.1.21] - 2026-08-07
8+
9+
### Changed
10+
11+
- **Default window-snap hotkey is now `Ctrl+Q` (T-180).** `snap_hotkey`
12+
ships `["ctrl+q"]` instead of `["alt+f14"]`, reversing the 4d291a0
13+
decision that freed the combo — a global binding hijacks it in every app
14+
and it collides with common quit accelerators, a tradeoff the user
15+
explicitly accepted. The load-time migration that silently purged `ctrl+q`
16+
from any saved config is gone: a snap binding the user sets in Settings
17+
now survives restarts instead of being reset on the next launch. Settings
18+
placeholder, quick-help and all 34 locale/README translations follow.
19+
20+
### Removed
21+
22+
- `config.py`'s `_is_ctrl_q` load-time strip and its four migration tests
23+
(the strip existed only to clean configs that predated 4d291a0).
24+
25+
### Fixed
26+
27+
- Release version files reconciled: `pyproject.toml` and
28+
`saipenview/__init__.py` had lagged v0.1.18..v0.1.20 (tags shipped while
29+
the declared version stayed 0.1.17, so wheels carried stale METADATA).
30+
Reset to 0.1.21 so the tag, the wheel and the changelog agree again.
31+
732
## [0.1.20] - 2026-08-07
833

934
### Added

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@
7575

7676
### ⌨️ Hotkeys & Window
7777
- **Show/Hide**`Ctrl+Alt+X` (configurable)
78-
- **Snap corners**`Alt+F14` cycles TL → TR → BL → BR
78+
- **Snap corners**`Ctrl+Q` cycles TL → TR → BL → BR
7979
- **Zoom**`Ctrl+MouseWheel`, `Ctrl+`+`/`-`
8080
- **System tray** — minimize to tray, start hidden
8181
- **Always-on-top** toggle
@@ -142,7 +142,7 @@ Coming soon ✨
142142
| Action | How |
143143
|---|---|
144144
| **Show / Hide** | `Ctrl+Alt+X` or `Alt+F15` (both configurable) |
145-
| **Snap corner** | `Alt+F14` — cycles Top-Left → Top-Right → Bottom-Left → Bottom-Right |
145+
| **Snap corner** | `Ctrl+Q` — cycles Top-Left → Top-Right → Bottom-Left → Bottom-Right |
146146
| **Kill switch** | `Ctrl+Shift+Alt+Q` — force-quit the process |
147147
| **Zoom in / out** | `Ctrl+MouseWheel` or `Ctrl` + `+` / `-` |
148148
| **Zoom reset** | `Ctrl+0` |
@@ -235,7 +235,7 @@ Key defaults (abridged — the full `DEFAULTS` dict lives in `saipenview/config.
235235
```json
236236
{
237237
"hotkeys": ["ctrl+alt+x", "alt+f15"],
238-
"snap_hotkey": ["alt+f14"],
238+
"snap_hotkey": ["ctrl+q"],
239239
"zoom_level": 1.0,
240240
"font_family": "Verdana_m1",
241241
"theme": "goldendefault",
@@ -313,7 +313,7 @@ saipenview/
313313
├── tray.py pystray system-tray icon + menu
314314
├── hotkey.py Global hotkey registration (keyboard lib)
315315
├── autostart.py Windows Registry autostart management
316-
├── zone_picker.py Alt+F14 corner-snap overlay (tkinter)
316+
├── zone_picker.py Ctrl+Q corner-snap overlay (tkinter)
317317
├── events.py In-process event bus (EventBus)
318318
├── guard.py Single-instance lock + show-request handoff
319319
├── git_diff.py Working-tree diff / commit / revert for agent actions

docs/i18n/README.ar.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@
7373

7474
### ⌨️ اختصارات المفاتيح والنوافذ
7575
- **إظهار/إخفاء**`Ctrl+Alt+X` (قابل للضبط)
76-
- **التصاق الزوايا** - `Alt+F14` يتنقل TL ← TR ← BL ← BR
76+
- **التصاق الزوايا** - `Ctrl+Q` يتنقل TL ← TR ← BL ← BR
7777
- **التكبير/التصغير**`Ctrl+عجلة الماوس`، `Ctrl+`+`/`-`
7878
- **صينية النظام** — التصغير إلى الصينية، البدء مخفياً
7979
- **دائماً في الأعلى** تبديل
@@ -140,7 +140,7 @@ saipenview
140140
| الإجراء | كيفية الاستخدام |
141141
|---|---|
142142
| **إظهار / إخفاء** | `Ctrl+Alt+X` أو `Alt+F15` (كلاهما قابل للضبط) |
143-
| **التصاق الزاوية** | `Alt+F14` - يتنقل أعلى-يسار ← أعلى-يمين ← أسفل-يسار ← أسفل-يمين |
143+
| **التصاق الزاوية** | `Ctrl+Q` - يتنقل أعلى-يسار ← أعلى-يمين ← أسفل-يسار ← أسفل-يمين |
144144
| **مفتاح الإنهاء** | `Ctrl+Shift+Alt+Q` — إغلاق إجباري للعملية |
145145
| **تكبير / تصغير** | `Ctrl+عجلة الماوس` أو `Ctrl` + `+` / `-` |
146146
| **إعادة ضبط التكبير** | `Ctrl+0` |
@@ -225,7 +225,7 @@ saipenview/_data/config.json
225225
```json
226226
{
227227
"hotkeys": ["ctrl+alt+x", "alt+f15"],
228-
"snap_hotkey": ["alt+f14"],
228+
"snap_hotkey": ["ctrl+q"],
229229
"zoom_level": 1.0,
230230
"font_family": "Verdana_m1",
231231
"scan_roots": null,
@@ -269,7 +269,7 @@ saipenview/
269269
├── tray.py أيقونة صينية النظام والقائمة بـ pystray
270270
├── hotkey.py تسجيل الاختصارات العالمية (مكتبة keyboard)
271271
├── autostart.py إدارة التشغيل التلقائي في سجل Windows
272-
├── zone_picker.py تراكب التصاق الزاوية Alt+F14 (tkinter)
272+
├── zone_picker.py تراكب التصاق الزاوية Ctrl+Q (tkinter)
273273
├── events.py ناقل أحداث داخل العملية (EventBus)
274274
├── guard.py قفل النسخة الواحدة + تسليم طلب الإظهار
275275
├── git_diff.py فرق/تثبيت/تراجع شجرة العمل لإجراءات الوكيل

docs/i18n/README.bg.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@
7373

7474
### ⌨️ Бързи клавиши и Прозорец
7575
- **Показване/Скриване**`Ctrl+Alt+X` (конфигурируемо)
76-
- **Залепване в ъгли** - `Alt+F14` превключва TL → TR → BL → BR
76+
- **Залепване в ъгли** - `Ctrl+Q` превключва TL → TR → BL → BR
7777
- **Мащабиране**`Ctrl+КолелоНаМишката`, `Ctrl+`+`/`-`
7878
- **Системен трей** — минимизиране в трея, стартиране скрит
7979
- **Винаги най-отгоре** превключвател
@@ -140,7 +140,7 @@ saipenview
140140
| Действие | Как |
141141
|---|---|
142142
| **Показване / Скриване** | `Ctrl+Alt+X` или `Alt+F15` (и двете са конфигурируеми) |
143-
| **Залепване в ъгъл** | `Alt+F14` - превключва Горе-Ляво → Горе-Дясно → Долу-Ляво → Долу-Дясно |
143+
| **Залепване в ъгъл** | `Ctrl+Q` - превключва Горе-Ляво → Горе-Дясно → Долу-Ляво → Долу-Дясно |
144144
| **Аварийно спиране** | `Ctrl+Shift+Alt+Q` — принудително прекратяване на процеса |
145145
| **Увеличаване / Намаляване** | `Ctrl+КолелоНаМишката` или `Ctrl` + `+` / `-` |
146146
| **Нулиране на мащаба** | `Ctrl+0` |
@@ -225,7 +225,7 @@ saipenview/_data/config.json
225225
```json
226226
{
227227
"hotkeys": ["ctrl+alt+x", "alt+f15"],
228-
"snap_hotkey": ["alt+f14"],
228+
"snap_hotkey": ["ctrl+q"],
229229
"zoom_level": 1.0,
230230
"font_family": "Verdana_m1",
231231
"scan_roots": null,
@@ -269,7 +269,7 @@ saipenview/
269269
├── tray.py Икона в системния трей pystray + меню
270270
├── hotkey.py Глобална регистрация на бързи клавиши (библиотека keyboard)
271271
├── autostart.py Управление на автостарт в Windows Registry
272-
├── zone_picker.py Оверлей за залепване в ъгъл Alt+F14 (tkinter)
272+
├── zone_picker.py Оверлей за залепване в ъгъл Ctrl+Q (tkinter)
273273
├── events.py Вътрешнопроцесна шина за събития (EventBus)
274274
├── guard.py Заключване на един екземпляр + предаване на показване
275275
├── git_diff.py Diff / commit / revert на работното дърво за действия на агенти

docs/i18n/README.cs.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@
7474

7575
### ⌨️ Hotkeys & Window
7676
- **Show/Hide**`Ctrl+Alt+X` (configurable)
77-
- **Snap corners**`Alt+F14` cycles TL → TR → BL → BR
77+
- **Snap corners**`Ctrl+Q` cycles TL → TR → BL → BR
7878
- **Zoom**`Ctrl+MouseWheel`, `Ctrl+`+`/`-`
7979
- **System tray** — minimize to tray, start hidden
8080
- **Always-on-top** toggle
@@ -141,7 +141,7 @@ Coming soon ✨
141141
| Action | How |
142142
|---|---|
143143
| **Show / Hide** | `Ctrl+Alt+X` or `Alt+F15` (both configurable) |
144-
| **Snap corner** | `Alt+F14` — cycles Top-Left → Top-Right → Bottom-Left → Bottom-Right |
144+
| **Snap corner** | `Ctrl+Q` — cycles Top-Left → Top-Right → Bottom-Left → Bottom-Right |
145145
| **Kill switch** | `Ctrl+Shift+Alt+Q` — force-quit the process |
146146
| **Zoom in / out** | `Ctrl+MouseWheel` or `Ctrl` + `+` / `-` |
147147
| **Zoom reset** | `Ctrl+0` |
@@ -234,7 +234,7 @@ Key defaults (abridged — the full `DEFAULTS` dict lives in `saipenview/config.
234234
```json
235235
{
236236
"hotkeys": ["ctrl+alt+x", "alt+f15"],
237-
"snap_hotkey": ["alt+f14"],
237+
"snap_hotkey": ["ctrl+q"],
238238
"zoom_level": 1.0,
239239
"font_family": "Verdana_m1",
240240
"scan_roots": null,
@@ -278,7 +278,7 @@ saipenview/
278278
├── tray.py pystray system-tray icon + menu
279279
├── hotkey.py Global hotkey registration (keyboard lib)
280280
├── autostart.py Windows Registry autostart management
281-
├── zone_picker.py Alt+F14 corner-snap overlay (tkinter)
281+
├── zone_picker.py Ctrl+Q corner-snap overlay (tkinter)
282282
├── events.py In-process event bus (EventBus)
283283
├── guard.py Single-instance lock + show-request handoff
284284
├── git_diff.py Working-tree diff / commit / revert for agent actions

docs/i18n/README.da.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@
7373

7474
### ⌨️ Genvejstaster & Vindue
7575
- **Vis/Skjul**`Ctrl+Alt+X` (konfigurerbar)
76-
- **Fastgør til hjørner** - `Alt+F14` skifter OV → OH → NV → NH
76+
- **Fastgør til hjørner** - `Ctrl+Q` skifter OV → OH → NV → NH
7777
- **Zoom**`Ctrl+Musehjul`, `Ctrl+`+`/`-`
7878
- **Systembakke** — minimer til bakke, start skjult
7979
- **Altid øverst**-skift
@@ -140,7 +140,7 @@ Kommer snart ✨
140140
| Handling | Hvordan |
141141
|---|---|
142142
| **Vis / Skjul** | `Ctrl+Alt+X` eller `Alt+F15` (begge kan konfigureres) |
143-
| **Fastgør til hjørne** | `Alt+F14` - skifter Øverst-venstre → Øverst-højre → Nederst-venstre → Nederst-højre |
143+
| **Fastgør til hjørne** | `Ctrl+Q` - skifter Øverst-venstre → Øverst-højre → Nederst-venstre → Nederst-højre |
144144
| **Nødstop (Kill switch)** | `Ctrl+Shift+Alt+Q` — tving afslutning af processen |
145145
| **Zoom ind / ud** | `Ctrl+Musehjul` eller `Ctrl` + `+` / `-` |
146146
| **Nulstil zoom** | `Ctrl+0` |
@@ -225,7 +225,7 @@ Vigtigste standardværdier (forkortet - den fulde `DEFAULTS`-ordbog ligger i `sa
225225
```json
226226
{
227227
"hotkeys": ["ctrl+alt+x", "alt+f15"],
228-
"snap_hotkey": ["alt+f14"],
228+
"snap_hotkey": ["ctrl+q"],
229229
"zoom_level": 1.0,
230230
"font_family": "Verdana_m1",
231231
"scan_roots": null,
@@ -269,7 +269,7 @@ saipenview/
269269
├── tray.py pystray-systembakkeikon + menu
270270
├── hotkey.py Global registrering af genvejstaster (keyboard lib)
271271
├── autostart.py Håndtering af Windows Registreringsdatabase autostart
272-
├── zone_picker.py Alt+F14 hjørne-fastgørelsesoverlejring (tkinter)
272+
├── zone_picker.py Ctrl+Q hjørne-fastgørelsesoverlejring (tkinter)
273273
├── events.py In-process hændelsesbus (EventBus)
274274
├── guard.py Enkeltinstans-lås + visning-anmodning overlevering
275275
├── git_diff.py Arbejdstræets diff / commit / revert for agenthandlinger

docs/i18n/README.de.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@
7373

7474
### ⌨️ Tastenkombinationen & Fenster
7575
- **Anzeigen/Ausblenden**`Strg+Alt+X` (konfigurierbar)
76-
- **Ecken-Einrasten** - `Alt+F14` wechselt OL → OR → UL → UR
76+
- **Ecken-Einrasten** - `Ctrl+Q` wechselt OL → OR → UL → UR
7777
- **Zoom**`Strg+Mausrad`, `Strg+`+`/`-`
7878
- **System-Tray** — in den Tray minimieren, versteckt starten
7979
- **Immer im Vordergrund**-Umschalter
@@ -140,7 +140,7 @@ Demnächst verfügbar ✨
140140
| Aktion | Wie |
141141
|---|---|
142142
| **Anzeigen / Ausblenden** | `Strg+Alt+X` oder `Alt+F15` (beide konfigurierbar) |
143-
| **Ecke einrasten** | `Alt+F14` - wechselt Oben-Links → Oben-Rechts → Unten-Links → Unten-Rechts |
143+
| **Ecke einrasten** | `Ctrl+Q` - wechselt Oben-Links → Oben-Rechts → Unten-Links → Unten-Rechts |
144144
| **Not-Aus (Kill Switch)** | `Strg+Umschalt+Alt+Q` — Prozess sofort beenden |
145145
| **Vergrößern / Verkleinern** | `Strg+Mausrad` oder `Strg` + `+` / `-` |
146146
| **Zoom zurücksetzen** | `Strg+0` |
@@ -225,7 +225,7 @@ Wichtige Standardwerte (gekurzt - das vollstandige `DEFAULTS`-Worterbuch befinde
225225
```json
226226
{
227227
"hotkeys": ["ctrl+alt+x", "alt+f15"],
228-
"snap_hotkey": ["alt+f14"],
228+
"snap_hotkey": ["ctrl+q"],
229229
"zoom_level": 1.0,
230230
"font_family": "Verdana_m1",
231231
"scan_roots": null,
@@ -269,7 +269,7 @@ saipenview/
269269
├── tray.py pystray System-Tray-Symbol + Menü
270270
├── hotkey.py Globale Hotkey-Registrierung (keyboard-Bibliothek)
271271
├── autostart.py Windows-Registrierungs-Autostart-Verwaltung
272-
├── zone_picker.py Alt+F14 Ecken-Einrast-Overlay (tkinter)
272+
├── zone_picker.py Ctrl+Q Ecken-Einrast-Overlay (tkinter)
273273
├── events.py Prozessinterner Ereignisbus (EventBus)
274274
├── guard.py Einzelinstanz-Sperre + Anzeige-Anfrage-Ubergabe
275275
├── git_diff.py Arbeitsbaum-Diff / Commit / Revert fur Agent-Aktionen

docs/i18n/README.ded.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@
7373

7474
### ⌨️ Клавиши и окно
7575
- **Показать/Скрыть**`Ctrl+Alt+X` (настраивается)
76-
- **Привязка к углам**`Alt+F14` гоняет по кругу ЛВ → ЛН → ПН → ПВ
76+
- **Привязка к углам**`Ctrl+Q` гоняет по кругу ЛВ → ЛН → ПН → ПВ
7777
- **Масштаб**`Ctrl+Колесо`, `Ctrl+`+`/`-`
7878
- **Трей** — сворачивается в трей, можно стартовать скрытым
7979
- **Поверх всех окон** — переключатель
@@ -142,7 +142,7 @@ saipenview
142142
| Действие | Как |
143143
|---|---|
144144
| **Показать / Скрыть** | `Ctrl+Alt+X` или `Alt+F15` (оба настраиваются) |
145-
| **Привязка к углу** | `Alt+F14` — цикл Верх-Лево → Верх-Право → Низ-Лево → Низ-Право |
145+
| **Привязка к углу** | `Ctrl+Q` — цикл Верх-Лево → Верх-Право → Низ-Лево → Низ-Право |
146146
| **Аварийный выход** | `Ctrl+Shift+Alt+Q` — принудительно, без соплей |
147147
| **Масштаб** | `Ctrl+Колесо` или `Ctrl` + `+` / `-` |
148148
| **Сброс масштаба** | `Ctrl+0` |
@@ -239,7 +239,7 @@ saipenview/_data/config.json
239239
```json
240240
{
241241
"hotkeys": ["ctrl+alt+x", "alt+f15"],
242-
"snap_hotkey": ["alt+f14"],
242+
"snap_hotkey": ["ctrl+q"],
243243
"zoom_level": 1.0,
244244
"font_family": "Verdana_m1",
245245
"scan_roots": null,
@@ -285,7 +285,7 @@ saipenview/
285285
├── tray.py Иконка pystray в трее + меню
286286
├── hotkey.py Глобальные хоткеи (keyboard)
287287
├── autostart.py Автозапуск через реестр Windows
288-
├── zone_picker.py Оверлей привязки к углу Alt+F14 (tkinter)
288+
├── zone_picker.py Оверлей привязки к углу Ctrl+Q (tkinter)
289289
├── events.py Внутрипроцессная шина событий (EventBus)
290290
├── guard.py Блокировка одиночного экземпляра + показ
291291
├── git_diff.py Diff / commit / revert рабочего дерева для агентов

docs/i18n/README.ee.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@
7373

7474
### ⌨️ Kiirklahvid ja aken
7575
- **Kuva / Peida**`Ctrl+Alt+X` (seadistatav)
76-
- **Nurga klõps**`Alt+F14` tsüklina VP → VN → AN → AP
76+
- **Nurga klõps**`Ctrl+Q` tsüklina VP → VN → AN → AP
7777
- **Suum**`Ctrl+Hiireratas`, `Ctrl+`+`/`-`
7878
- **Süsteemsalv** — minimeerimine salve, peidetud käivitus
7979
- **Alati ees** — lüliti
@@ -142,7 +142,7 @@ Varsti ✨
142142
| Tegevus | Kuidas |
143143
|---|---|
144144
| **Kuva / Peida** | `Ctrl+Alt+X` või `Alt+F15` (mõlemad seadistatavad) |
145-
| **Nurga klõps** | `Alt+F14` — tsükkel Üles-Vasak → Üles-Parem → Alla-Vasak → Alla-Parem |
145+
| **Nurga klõps** | `Ctrl+Q` — tsükkel Üles-Vasak → Üles-Parem → Alla-Vasak → Alla-Parem |
146146
| **Hädasulge** | `Ctrl+Shift+Alt+Q` — protsessi sundlõpetamine |
147147
| **Suum sisse / välja** | `Ctrl+Hiireratas` või `Ctrl` + `+` / `-` |
148148
| **Suumi lähtestus** | `Ctrl+0` |
@@ -239,7 +239,7 @@ Peamised vaikimisi väärtused (lühendatud — täielik `DEFAULTS`-sõnastik on
239239
```json
240240
{
241241
"hotkeys": ["ctrl+alt+x", "alt+f15"],
242-
"snap_hotkey": ["alt+f14"],
242+
"snap_hotkey": ["ctrl+q"],
243243
"zoom_level": 1.0,
244244
"font_family": "Verdana_m1",
245245
"scan_roots": null,
@@ -285,7 +285,7 @@ saipenview/
285285
├── tray.py pystray salveikoon + menüü
286286
├── hotkey.py Globaalsete kiirklahvide registreerimine (keyboard)
287287
├── autostart.py Windowsi registri automaatkäivituse haldus
288-
├── zone_picker.py Alt+F14 nurga-klõpsu ülekate (tkinter)
288+
├── zone_picker.py Ctrl+Q nurga-klõpsu ülekate (tkinter)
289289
├── events.py Protsisisisene sündmussiin (EventBus)
290290
├── guard.py Ühekordse eksemplari lukk + näitamistaotluse edastus
291291
├── git_diff.py Tööpuu diff / commit / revert agentide tegevuste jaoks

0 commit comments

Comments
 (0)