From 8c6552fb576588e5d35b15cd113d13a8e550fdd8 Mon Sep 17 00:00:00 2001 From: wangjiati Date: Sun, 31 May 2026 19:33:03 +0800 Subject: [PATCH 1/5] =?UTF-8?q?Add=20Desktop=20Peek=20feature=20=E2=80=94?= =?UTF-8?q?=20click=20empty=20desktop/taskbar=20to=20reveal=20windows?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Port PeekDesktop (github.com/shanselman/PeekDesktop) into AltSnap: - new peek.c: low-level mouse hook detects clicks on desktop wallpaper and empty taskbar area, minimizes all visible windows on click and restores them on next click/app-switch (like macOS Sonoma) - add Peek controls to General tab: enable/disable, double-click mode, taskbar peek, gaming pause, restore-on-app-switch, peek mode selector - add configuration support (optlst/strlst/combo) in config.c - add 8 control IDs in resource.h and expand dialog layout to fit - unify all 6 property-sheet pages to 275px height with consistent container margins, expand dialog width to 260 DLU - add complete Peek translations for all 19 supported languages - document the feature in README (EN/ZH/KO) - add .gitignore to exclude .claude/, build/, tests/ Bugs fixed along the way: - IsFullscreenApp false-positive with system windows (TextInputHost etc.) - IsTaskbarBlank now walks parent chain + uses MonitorFromPoint fallback - PeekHandleMouseEvent no longer blocks mouse-up from propagating - double-click detection state preserved across click pairs - About-tab crash (duplicate control IDs in window.rc, NULL langinfo) Co-Authored-By: Claude Opus 4.7 --- .gitignore | 8 + AltSnap.dni | Bin 55834 -> 27789 bytes CLAUDE.md | 76 ++++++ Lang/_en_US baseline.txt | Bin 21854 -> 11536 bytes Lang/ca_ES.ini | Bin 7562 -> 4046 bytes Lang/de_DE.ini | Bin 25762 -> 13615 bytes Lang/es_ES.ini | Bin 11740 -> 6079 bytes Lang/fi_FI.ini | Bin 10898 -> 5785 bytes Lang/fr_FR.ini | Bin 19108 -> 9839 bytes Lang/gl_ES.ini | Bin 8168 -> 4338 bytes Lang/it_IT.ini | Bin 19142 -> 9706 bytes Lang/ja_JP.ini | Bin 21396 -> 13395 bytes Lang/ko_KR.ini | 305 +-------------------- Lang/nb_NO.ini | Bin 8014 -> 4250 bytes Lang/nl_NL.ini | Bin 8336 -> 4352 bytes Lang/pl_PL.ini | Bin 24826 -> 13369 bytes Lang/pt_PR.ini | Bin 8290 -> 4446 bytes Lang/ru_RU.ini | Bin 11292 -> 8385 bytes Lang/sz_SK.ini | Bin 7708 -> 4179 bytes Lang/tr_TR.ini | Bin 23826 -> 13241 bytes Lang/uk_UA.ini | Bin 24214 -> 17702 bytes Lang/zh_CN.ini | Bin 13658 -> 10046 bytes Lang/zh_TW.ini | Bin 19814 -> 13957 bytes README.md | 3 + README_ko-KR.md | 111 ++++---- README_zh-CN.md | 3 + config.c | 46 +++- hooks.c | 30 ++- hooks.h | 3 +- languages.h | 10 + peek.c | 561 +++++++++++++++++++++++++++++++++++++++ resource.h | 9 + window.rc | 187 ++++++------- 33 files changed, 908 insertions(+), 444 deletions(-) create mode 100644 .gitignore create mode 100644 CLAUDE.md create mode 100644 peek.c diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..cd0520ae --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +# Claude Code +.claude/ + +# Build output +build/ + +# Test files +tests/ diff --git a/AltSnap.dni b/AltSnap.dni index 36bef34f06db0485e09fd9fd92c2cb58ded68b92..00b21c6b253379bb4e2bc007e012b5471ba552a6 100644 GIT binary patch literal 27789 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 literal 55834 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 Pm%>u-#~j-sA@2CU(9-p! diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 00000000..4c9223a7 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,76 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +## Project Overview + +AltSnap is a Windows utility that enables Alt+Click window moving/resizing, inspired by Linux window managers. It is a C/Win32 fork of Stefan Sundin's AltDrag, rewritten by Raymond Gillibert. Targets Windows NT 4 through Windows 11. GPLv3+ licensed. + +## Build Commands + +All builds require MinGW GCC (or Clang/TCC for alternative Makefiles). + +```bash +make # 32-bit release (default) +make -f MakefileX64 # 64-bit release +make -f Makefiledb # 32-bit debug +make -f MakefileX64db # 64-bit debug +make clean # Remove build artifacts (deletes AltSnap.exe + hooks.dll) +``` + +Quick rebuild scripts (kill running instance, build, restart): +- `mk.bat` — 32-bit +- `mk64.bat` — 64-bit + +MSVC builds: `mkmsvc.bat` (Visual Studio) or `mkvcc6.bat` (VC++ 6.0) + +Release packaging: `makerelease.bat` builds both architectures and creates NSIS installers + zip archives. + +## Architecture + +**Two-component design — EXE + DLL:** + +### AltSnap.exe (main executable) +- **Entry point**: `unfuckWinMain()` in `altsnap.c` — bypasses CRT, calls `tWinMain()` +- Single compilation unit: `altsnap.c` #includes `tray.c`, `config.c`, `languages.c` directly (not separate .o files) +- Responsibilities: system tray icon, configuration dialog (property sheets), loading hooks.dll, message loop, elevation, command-line parsing + +### hooks.dll (hook library — bulk of program logic) +- **Entry point**: `DllMain()` in `hooks.c` (~6,750 lines) +- Exports: `Load()` (returns WNDPROC), `Unload()`, `LowLevelKeyboardProc()` +- Also a single compilation unit: `hooks.c` #includes `zones.c` and `snap.c` +- Responsibilities: low-level keyboard/mouse hooks, window move/resize logic, snap zones, Aero snap emulation, action menu, scroll handling, all ~50 actions + +### Key headers +- `hooks.h` — shared header with action enums (X-macro `ACTION_MAP`), structs, IPC message definitions, window property names +- `unfuck.h` — Win32 compatibility layer; dynamically loads newer APIs (DWM, DPI) at runtime so the binary runs on older Windows +- `nanolibc.h` — minimal C library (the project links with `-nostdlib`) +- `languages.h` — L10N string definitions + +### Data flow +1. AltSnap.exe starts, loads hooks.dll, calls `Load()` to get a WNDPROC +2. DLL installs `WH_KEYBOARD_LL` hook +3. On Alt+Click detection, DLL hooks mouse and handles movement/resize +4. Config read from `AltSnap.ini` (portable) or `%APPDATA%\AltSnap\AltSnap.ini` +5. EXE handles config UI/tray/IPC; DLL handles all window manipulation + +## Coding Conventions + +- Pure C99, Win32 API only — no frameworks, no C runtime (`-nostdlib`) +- Unicode build (`-DUNICODE -D_UNICODE`, `-municode`, `-fshort-wchar`) +- `-fshort-enums` — enums may be smaller than int +- Heavy size optimization (`-Os`, `-fmerge-all-constants`, `-fno-exceptions`, etc.) +- Warnings treated as errors for VLAs (`-Werror=vla`) +- Stack usage limit: 4096 bytes per function (`-Wstack-usage=4096`) +- Actions are defined via X-macro `ACTION_MAP` in `hooks.h` — to add a new action, add an `ACVALUE()` entry and implement the handler in `hooks.c` + +## Configuration Files + +- `AltSnap.dni` — default config template (UTF-16LE INI, ~1,400 lines, heavily commented). If no `AltSnap.ini` exists, this is copied to create one +- `Lang/*.ini` — 22 translation files (UTF-16LE) +- `.gitattributes` — enforces UTF-16LE-BOM encoding for `.dni` and `Lang/*` files +- `altsnap.nsi` — NSIS installer script + +## Testing + +No automated tests or CI. Manual testing only — build and run the exe. diff --git a/Lang/_en_US baseline.txt b/Lang/_en_US baseline.txt index ee8044e083f44e42f28206ae830bd868bc32f113..5ade00ea5c453236712ae0aff55fe28f6f0510a2 100644 GIT binary patch literal 11536 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 Ai~s-t diff --git a/Lang/ca_ES.ini b/Lang/ca_ES.ini index bad0fa4f052e4cad75e7bdbabce4e1b933e3db7a..303a79e1ea7cd3779c35e3bd16c8c12f93742bd9 100644 GIT binary patch literal 4046 zcmai1&vV;07QSaj{{xZ((@tx-*=_gWmYtDhx$&&EaV@z$Z1(U(LKGqpU;xmza@s#7 zJvBXacBXsVEB~?m9!N=)6HhOq2z+>Wzu(7i#oUqcnu4-MER~jGX`LA9aOS8GFNR+Y zz7-iAO=d#djI?^!A{QIc{97-r@nY8eVzQNd2jGpDLYmCx$`s;eetz`gZo2tGGgffeZdxs#Bo=D%A6Eq;(jI?`$P+;2=R zypu)6tuzx;Q(Sy*y;I+qzjx8FF`l&#^bkY4gH2_p+f`~6XVOD2NL0wSV-` znn9<^sl89H$Tjav8JzT@Xf^fQeR$uV+pPBK#3V~(h(i(?=_B|pTqFE*a?W}$i&~oD zYjb6T7nPHxbRtl>Xnqsp;IydlF3kfG!`(g7+4Q1RFlmIpVwM=Hwwo6wMpDi)XSGhx zWa2ALFt3ydjpV%Es-!yT&VcFJMLMf1#7yMR6TEGOvSl+|lJcJtS)aAyU{6jJ^dK#A z*Ly;cIDJ9`ck3bC-}aE7DzA3?Z?u)vvXCY|F8(r+ggg+h+H-A zAwb-W#)2wxQr%0WH2PXj;#L;?U}&@taq!Z6)aRGD92vCnaTBp_v&=_1nJp_Vk-$i? zU6yWjpCoL=PQPwBPuo9Rr?hYAyC^*uP?T|jI|DR9+#If`a~ci?7pAI1>;*9tS%yQL zHCni?HS7_W)6?|S1_+TJMj;S=;7L!`bcbX~r79i+UhjcUqE7br9*8^ry1V%6$06Tz zkZ&G?bTxc!5ffzjuEN;QC!Hro=-bvz?XBbzYfF9Ccc`_n#av6T-l2iYTtR@xseOYw z0FJdqqn)EUJ_48`IZBq*{t53M!Cl%r>Cg;sRS&?uf@fu4wUNG~jelk4w!&a3%Nmuo z?Eo;HG&>q|GV~9P;RT52hwH=9<0_0H()z$E6u}Ck81_H7I?QRoL+J}V`|^LXx-MlJ zAN}<>ow;&Mwn?`y%?E?J@54^5%cVmr^Xc3c1?D_5yIbjE_tJ*7+<4C8Gbc02LnXv1 z*5y(MxRlEP1zAavbeY`U)gi7`vD!iM1etlb&k}xC2DhaNp1HmA+mbj0MnN6&=cGgC zpOnXwDox_NdR(Un8Yeu|K9(}IAQEu~(h@z*p|_Cs^499s4Fahem{DlV&3jdIQ^M4| z2}&y@ozT?bkQ^nwY5wQ4nr8=(PkK{xlig+!Ryj{V$utmXBRh8RaH{h->GOph@XFZ? z(cHZs&K!j2p#-V>=66w9xWS7ygN^`?dC?D{u0%9E$SHTmh`t9KS{^!GL27g)rbZOV6HuOl0wvf7ULvlF;Fe$Qf270 zd&=AV2G)o%RX6_$FaQaIx00M1#6qF@z0Z+PvjZ2$=I~frIWy+o!Gg zGq?`y;2h3Na{P}(Iw}|2Qu`qT1yM!Nv-yB$(jq>cDh?Cofa1j=Z53(S-POXedU_ugxE9!-BsdcqZ}53bAS(^0sb1h;6fZ!!q}B zz(m3M3NrVWnaoz^YxCO75LnD=6t7@+A)p{VAjk*o1ca9F=DWT`2EZ&;7>hA*w6dTq z@Oe}WYH^}4w^XJ^lGdKv$;0dR!r#Wls@=<12f2ITz~C4n$8 zX=>GC9*h62dQNxpt$tIr;U1T<<~>ct@b1cM^yhmygIF2t>8Omj%3qad<@t1GCB4 zkG)9V)CEN#W;3*vugs{b(uCirhCDQ-j9M0f8tz(`jVGq~I)0h*FZYMmoX?W-^OGn4 E2Y9FG_W%F@ literal 7562 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 a9eYF0;#Ptwc#Xqn%A@vilqU;Q6|;4|O= literal 25762 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 O{|qh?W@~hK^X$LN1SM1d#y?GE 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 SlKdF?cfH%U?_j{`v;P8!%h{;_ literal 10898 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 U3Gw+yUAgY_?Y?{Z?%P`W53qD37ytkO diff --git a/Lang/fr_FR.ini b/Lang/fr_FR.ini index 6e68e2a649036575e6e86da9f3112acb4bba0692..36491a4f18220b14da90f52981d4e6eb738b2f99 100644 GIT binary patch literal 9839 zcmbta&2k&L5x#E~-vN6FWbbt!b5SXy*-Yh<&5UKk zyqaiHuxGp9{ci9*JG4@#3znNyTFT} zfZ122WSDOJ!^3PPbSkrCNWbg5&PWtn;iWbROzoSSq$6cE4?Na4kpg;X4ozB@Nzg5K?YzA} zsok4weOKfHx~r?*cY0V9^{xEK%G$C~Wph^Gj4UXjqi+`2ZFZ8@B*#nTMBCGpp|spY zvdL1|3U5p@>?jkxfU;CF&lR6bJoMAv3j< zx&+i{iHC~u)Z{si%%Ey18;kdG*JJGuJ4r1l5||)i)28yNK*h^AZ~W>wnbbvLYz5UU z8OICuhz@3FB9(0YcebqaN)@F18RSB2l#ke9w6!i_`-ew-9(a<3n;vQCq z#p-4)l02DkxaVdq9!=+E+%;1Emd@#+2Fe#yEDkSZl7dn5VCY!Y1g7#Q{o|aIy7IOfLdy=f-_#9@H0?tP{#G9;tUOBA;7Vv3qeynj; znDN&%${s}e(8(@3p{VzNcU~BFG@BSyiOO5ada0Oo0TL1a@cVS)Y-D%C^x_> z$dPBHF3xIzD70WCCvle*Oq8GntHD|=M8E{zFM*M`+8N2l#3XtKsV)mn%_82tDT#z7m|V!m5?Z*Pp;Ad{nlC*MYA9 zRoz^}=KM=lB&VhV#^FTppjX2YTLI3oH(Xo>#D`0Pm#}nbgeEZDbRme=)Y!FxgC&+% z240AjvLsMpf-Q}LZV{PVOk-)#MGaKg4vwk-tCa^JQ+J5}^V8qzO2I!6U5&Ywz!gAD zLaUit-$@|zIRP<%WG0|4Py8+b=M~LxbDfFbx~K& zagv4&qcu9|2T$4|sfOvZgg@J5=N8_Ayk&oIFX4N;WbD#v>^AERAD>=c?!#!jLNN|^ z-<$q+0Yo1s=aOsONQDb0K{?|gP=3-`%8_0qpsd0S$#_5E`!Hvy!d#G@0T$8lB`@I|l=!lm}An?+BD37-(N0C18A;DI7(rE)k48~65c-lkp?4|vpA!Z5TJyX&^1{vKPM=fEY z02&=G6NO!WDoLwzko#-(O6gZ>jxk06m7Ku2QH)8R(c=g(i>XwxLIPZ19xmP{^qMMI za!G(l5aq@2gsHp)3|eRp02#u_SqgXMyfLVw-Frz#wu7T`V)G+jefmz+dVU*%iueU# zC4j+*$l5b^3B9Z1hte*AU!5&}P;l>;oMHrWf!55CBrSvT_)X3Qh4t?5!$jZ!!5bJU zkep^v&IebM^7@r5uPaj|;g|7qyzFu{hRa$~j5=1Fo^X}DVQ~|N1*fNt;S=)#p$8vM zk$G+m4f7A;wmj39*qtNPcn|+UP7WDH)!l)DJ82P>mIPro!`+t5=%;2DFx6j8h;l{< zykU?qYj`6Zd5>a2b$2Cz`=yvB6wu+f zJMzZlBm)1_9dK!TA*gC_n{@uulkx=x_6Hg`Tf4}9yB>`ZQYZ8$KnDz@yHmtaKqDmx zEP-iOQS@cGNcd^!Qc>83s-{buK!0z*H{eP<`$w! zB?~y5GK9w-5PjJOe^K;ww%^Q0H?lmEy`Js>`T( zipnY^XRca?bWzWNI6maW*$@Cmi0rRT}#y_{q$NvQJNSxP<=ry9hHT z3pK0YQQpT8t9g$^EUl|Dxe#fJ@DlYB&sXk3V8>6FoeA8Qn{ZAgl@XEwXCX*de6sY=9((J7xdN%Nj${EtezEn=+ ztO}RM_(n)eQoB&|MN5!T9@V=tnjbEjhno)RT93>v6X@P@FA=tVwI~{%Ke$jJ;i#o< zU!xV|gKKn1I%_};M~KQzauxG`#QZ31;uUFoCgIh+zL&i+Ztt)z2^b2ay8F5Ba z<4B*|$0u3c;@!|)A*kTwfTpGq6PM%{cYELssr zmj0K$CWS;?_y)2?2F8{yO`|%>uTFMxGW9@{GhT>P0q@9cmochsul5o-uNQH0$YTHs zQtE%TlHHdJbe)VPH2^M9C&DKeQ9|R;e>m19%oygBP;C?)EGP?AgsFCq#s%VkKa3*; zpV|r;6E09E4M{1Ab`|Ia($bg>k*&BDW1iEl@?%Xc zUEh3!J0RFVHUk5ydW*f_DRYO^Ak zp%~`Gt%(8&)kip$_H4hh6_1Wei7zCQ)H{X5WH)Bu4NOoVE-iEJ8TM3 zY?CMkSvPC7OZkJAB!HF)XpnCmx5puAx3fA@Lq^UHX#%I1xLxEF%H*ylIYkHOy+EP2 z#4X3``Rsa|stJW!qJeR&Gm6I0fj>rhmmaAjARS%qd*e#>AtMae!Gdkr;3i-+oQ zI5)NIoW?%JcOMWE8Jzn-A@s9Q!T}saq{UYXP%;SjYZlz7dvK<4(foEO!^OQnmz^H8x3efQ5Vn# zI1m#ud`*N9{RqL!m}-d>vEm-V84y1%nBq&Fv?4`?J!Y^s%tt_j(!E9CxkJX}19B$v zVj-po*(hRjrUSHepg|uw%?y1vA~#U%i$17*K?p}kHY}i8I1q|>u72wV{HI9x28H@0 z;1Y2z$oM_FSJT}4G5)IUqyx2K?WJ4jQk2(d=f+)vX0{Dp?z)?v_BB9A&*{Sn+(79| x@04rs_p)}21qX3PU#3uVKKcg0gwL~`;UL&53P+FhTpl5yzz>CB{-7_v_%Cf`D(kcB+XY>GW&#-0SR2zlvoJn@E?NhZH8xBLsl z4VY{0kbw88w?9|a*}83zWxM;FQ{TQV_@rEACO)rMBF=1}Von|F2ZdAbK3FK*yLV zic( z`NL(hyG+}k)77ac35g@KiToA$`t>l)mhGg%gI8l6nd_BgMQGzdG))EHx(VvR_fmIH znt#miSW@r>T|7S#cc+rtvEDCBU8(a2%{Ri0#;47%B|l!9XP)A>w5aWLAIV~qwWXCB zLo#(t>_WmL9wqLOFwt;D@2|z}_56MRnvG;XL^S*wdqv~6&yuEX!Q538oXO&_Ydl~- z(M>eRPQlxca#lEx;oAFTaISBNiYagt=7qiBZR_5#PPS{kcKpQqyC ziM#3xEN3b$ASJGhVSv(rfesd7 znI@=vq8l4Tf=5YzZT#cdku)~`MwyprLN$U{@s1jSm_qgAx`(LeD@2{CR-Ps}0wUuQ4w17f-3>u}BDhJv2pq$KV zi}n*_tLw4v2ESR5|2g7 zWxjbU$-K_)_L`8qbDk-?>ZL1uJ~DD`ZC$#il69GVKIxHk8|F{u+AM1vN4;7`?R6h& z9WjkKoiiP^&ULaBEUl~OHk6M9zNB(AMd=i+y6R$}wS z>rz9k#D0)`co!Monjk{E_J2>9jla+C%SZxNJbOA4QP2v#1XZVT2MvpLRN`9GYR6gX z{beE;Ud{^F9$gCx6RxY*Lp z4OHNm)5}D2NYXgmEm2VtIigNM(`0TcbVskCG1EmY6V}|0gJcUhqrRcbMWS#U`F@hP z%bb@`e=s4Ap#|g}kgh}r`0xPxihT%sJxn#vweGuG-b~Q3U{@j3BaSLeB{DA8%*X~> zORPDEdr}2PC;{d@QN{Z|s#iV{MlAGFSCJtV^Od{haok zu-s{aXMJ|9uYR6REwAXS9?Iukp}K=2#<=IgSFR$Ru1`_O(kbP{`-wUH5-5HexGZ}E`aO^&UlwwX2`rM1rKXoPAQ z%3cog@I*elt)Kf^Plh4pW?!1>4%+A1kQBa1R)jrl2*#%VQyJP)sH(AXWD-3f)*Bx4 z?h;U+3#ws21=(h-{}`fjUDUzjG-(YzIv)hFkT`Fe6*UcIl^R8>S$Je&AA z2Ictx6i?HT^w?@R_*v3ZNyAjv7OncYXVu4}tLhGHLp;)r%|szSG=}f7GHcnr;VVu){r5!w@)&9?k7Z4lH`4q{oQIr4_RcRz zC~(>CLIX9t9Ov!(k5$3A=571`v8d1fKMV!$4Ji0ihV!$*IEc@Ge6#9QnDVNR2Uo2p z&no*txPj}w>OZQ|y01b`RF8j`BqNGb`+I*VWX3cxN6?!0u127OC{9i8o^DrHf+OR> zc3maWg)+CodZ~+uuJAz2nB2@Bq8{7TQ)F${FrkUss`LjcC7|<+)B}n(lBmj*4{nz{MxV0!);+%5?2YMr3)ok z(0=+Kb?j~E+emgs4H8pPu2A#%n(b5fbfgWU-m(L|Zruq2KN>jcYUb8LTICr1v zziod{eBq^icg8&PdBTr}KM;4WS($=|r&F^m8(}t*gsucDUQz$BACs#W&q4Yn*sd~} z8O0s}@^Oynt2BpY)%MKCk}>qv{z@d8>JD6!t9)J~_cUYhu@JO-lbut{2Hyhk4i%$9Q~9&-!)=@JRM3$nC@d zc40n{oMP@W4BeA?w6`z&d@4KJPcthzet5}o8ypz}*_<8f#W5>#bPXNrDf6|Zei!(w zk_^%HnKbosY1umhgiMF!6V#U&xaPVj+dW+}6-#*2YrPwW%3c%`t(9~Ffme6&=zv0$ zjn~6)CYn_YQ}k3)^i1q4(Za-s8YJ&Gwe?M1fK^7Fb0%BBf0oAp)px@&&dKINPN+TT z(5@2)&VRS%rj4bKo8|G0bM#a*o<-VWXBBUJUw*$S{^;zOYTZ^xZA^W9-3HeK?~ar7_?CO#!c+SLhsN0=#-d+&)jO-IxnK?TIWto_1$y`A zTDzwoPbYn@q?8?dxlvQv%G>_22nQ!td_IN#9twzn>~SsPucnm=)l9UUi|VQR1gdQ) zL#MZcw52u3%~Nhy(#$ktvM~nDXSp`D-kP>AVah5T*!U-bh zt}(ppdIoLRmPlU;<*}bN27wvHf#lx@gV`8*8Mp1Ap|d9Ah9wSfL9Ra&}E z3f>|!xSua`0GiD)HDZEmu`#UphFFkQ2n{iSBe+FtBi>cszgQp-&=N&hgG0+uG zQtyPlMhyV0?imNHh@FHVrqjo@44}Y~v*wFAt)W^@L1pc~&>eTY@4%IqgYZ8lIC&4D zdy+h|VpP)bP@gC7uA#f4Ht_Vdd!M*gKjZT^L?R*p@X-gE(6PJ=qk9FYb+-(^w}Dw! zH?D$-!8J_gMx{0^VeetmaoAqkTy%3(S;tT#u(ICA?sDi8z@BHvYjfxmJ4{od4!tse zcU2dAQA|*{HxsU)b4a@Nen+Xztf?C3g{03tf7%7Fx20g)oYWcD=EHe3Ei+bF-jn3> zWFc2kIX2jz${7q^&Tsn@4I9EAl~=CxHd0+lJ!bv6{%Nm`={$HJCduw4TBtSR(_Hxq z5z6N;uz#pV5+5WU&`r!AdHq)NBb|B<8*k%{6ZTXuR1(z0*rTU-euqCp7oT|xXjARX z;y?9ShDBJI+?QCo)8rutQO9p90>bM>iiAhv*!2rLq)fh$3>8R@Ub()8dgf!_Xgxcj zi>1^W~N29UN>QA)z1bX|rJ7im1H`C`>le0d0qPjq`?0fdd zw}>;_dipHcbxBQRn@nTKByvcX7NRLK;S6@^?{pFP3bhAaKeZp)vd-Jq6LftlP19Mq zM=PsLv=@^$>&gBQ^S!o3gr(uTuM!1F#q#1FR_#wC%=8K0Ja36;(WgmZeRDI#SuZH{ zc@jr_;9^tMg~Z7I^McUQ);hL_Zu8m2@cD9gXw2rZF{~76%+fwkmZr}i*oO1DjC>Z! z6*zY9v&DFSmW$;KZe$prq5M>M_`C?6pS_6Bi*oAos5dvqtk%`nEODDBSJrPiBeD%m zm95Gsf?e_6zB)@7slhq*hb{K$?!G3K)?YsP;H<^oTe(wZ>#F^_OH-GkQkxfo3GIE9 zJWMpQ2OiVXe$5Q~T%Vs2yRoSZeR>1GpAJq9)b_&pdGtG#$8b&tJjfbbYTM1-sH>&g zCmly7q8S+Rdi=-JG%SqIQ2KmtTy?x#Mnm|;_&F0(MBPSSh^+HnvNS3$GEY^yLmaM;hm+IfoA zd@n$T_*{41NWa7=;`SpwN1t%0iWNE|Mh9g2L07os1N@b|8dVa$h_1>rdPD`W71 z3-~3S0r`pN`HM8|#bgH}5;&qe#*U*JdT;(5({?IXU&q?%%AI96&BUu8&V4Ru&ovIa zDluzE%8txb*_Jsng|0kR2pgxa-;t!4YXt=R6q@Ah#D(s>kTlWasphQ@v;tafugHLJ z&)|Ft)|$@-B5f#fZX%Z+&Y$btM=k<)dW5T*Ytkw6FE*T((Y(IS`bRRxF+P<^Dr{g;>g-R@lDqduAC#5~LZsah@q+ z1D>I{q6AYn_q$g@VvdBrN>QlI<@Wr(Cm)X!Wctg^Bpvi)>m$O&ccgGN;!x}?L&GO& zhWKIXo}WoW`P)VM`j#K8Svp+d?bQewv`=>eDdZ zPAB*91u_KlHP1{+E*H^S+WN9ue>>4M5ykwpKSkz>8h?sO9T6nH!=`>7%MLxn^UN@@ z8}#N%#Ws{@t<*98^cGp-aK3}c?1tINhU7uC$+J>hqh;p0yiFr`$Vy}+M^UVTEag0A z3b0+Sb8en`glKZ)DlI7M?Hm`B-oa`?Uf_?! zrOF-c4vw=WnN($RjOWAN$>-V(T6vD`>bdl*C}Fz~N7%PEt-Tyh%p8&9#8R2CdGuoQ zB*;06RvmpXH&kwZHKN))WeP!1)rAM~NpOXz$Pq$l@A#;bV62>#=Ouen@Vl59s=Cc{ zLut@UHA|f>3OR&}tAZXtT5TRz8opF!D-b@Jn0$A7dU`I0Gh0~~l)y)~&Pp*C$uH&R zG3b;^Xa%WNP7c!3o9DD&%3gTECq4V{Rj=jdzg{HPL3xo8R5pQ%f}YcTB|jHx6_nG+ z&WwB~{BydmL8l?n$LKhNYRZ*7&$KP~#YJSez>YmfB5EsWtL2{9k*uL%)3-Q0hSN$8Kax{DyF}tip_UXtA77k+X`EgHpH|w!QZRK^f+0syX5F87wa0IC zB`-Hmfg|ge8ix>43aPny6t!89fcHGD06pUqkrM2`v<32mNpT`7#BWibF9hWrzwIU* z)}lsx+?G|LLK6_%DDBi}wCKcaS2G!3c2Uu;v(yt0R7{71;JM-5Zg#iwwKqf-hRe|DW%^jZxJAVaVgw)(z06 z40nJ?8Vv^Lrm91PQx5%cipV#di%K{~*WLET^jIF-z(B1$%;7RC@MEesJ+kSJtW-#{ zLp0YrnoK#R;p#&-9e>j?{O0ifx844?hxS|WySA_`)Iq>T3}nRGlla2kEB7<%GK&tl zUUCv6pXV0N5<9HnwHBUJ6z|3qplH-IAoQEx@t;I^XO>~}Tc``$8hH$qwPtFUO7dS< z5gOYyo7YIS2h=qfj#Crl5Tz*`eX^6nqWWE_ba8Ndio`AXp7!M+QPf)gN!tV5#>G9Y z{d;p`f&8&jFvgXYc=mUGvPE4g**r{t2Mvqy3~we~%if2k*8FES+^MzaD31+-M;KQMP*N!025?Jq zq2>X+nSU4Rt#~cLwayn?iY9{h3HS!&I`~OE{^F7z(Z}xLRzSvnpiR4dR#BE6&7oVS z7H!&9+h8b@QwDrNGs{U#B5=1P5ODxjL^C4Z{Zi|tW%vh*-FkY3{f25vdh@$a>jGik z!W9aCSBzs#@jz2XPx1hlZR2&IUqV)LOGd)PZfr|>={rwUBAdD4WBe%u9N*c4o;;O(E9a00i$bbyhu|T^Iz;AkE zk#3$!E9Nx{8ZsS*>lx(bPQACN8cpSh-ARVr(sSJ08U7GuU*)&VQKS%tMa7VT|L8q5 zB<)q~VuS$-O%`SE@)nuP;euT*{ZTyMI1EmX-azMvsDWP^EP&Hv&)gJ~PElkM&r{9T zPs%Z}$@t_(DIP#i$)n2&NLY)ovA#>mIoqaoWo z>ezN9aWaH<+;}w3=c0_$ae{-R(4OR|~7+=W2Rsh&MX{{ePgLK5`C#2;%$Tg zKsu{0AUsT>b7L`ESs0Etw5btTkcGkE*{zD3GE6lNX6EKE)Ko;%;i?v13K$rn%(=le zd6ySWtfOckv;aT2iusj1WKgLQhnS+FT$C`WJxBMaos-KosL|5bzE}&$P7)i0RpA I@aDz;05tGiN&o-= literal 8168 zcmbuEOLN=R8OG0=nSKYsqQKC)q(B!1F_kYN0Xr~`Lp#%UAt8m3uVrm4PH=`784*Gs3m znx=7F&9$bN2D)FR-B>@-{k^o6K2E<&?4VsFq3hH1H?16|A9OtzpOOBbrw^~WJ(0ZZ9!pl))|rCnOoCe#IK>+LtCsw-^7h%2M+5(^sJ{T+U)eb!~n-4%_f%kS;?HY}emlL)P&* z2+Lds$E;yLJrI{;@j`-?t{1hnyCGLuy(=2XdDET;+H<0HM$rq&^++}VKj->hiVNrh zJu`h{b1cD*=env&itT2Bx{35$XhlCYpEV^Oh~7M`(wB8c+OyDq_`sn`eNX(*xi5SU z(=S?=Emh@l6l*|37jL}uI&_12GajHdY!6SI+$$Q`pX}h@&MEjZE5_RL? zI#}Nm=bQPy*;DYVTWecdJePb`tAdQ7cxO*MmlU>bd%xplu53UyBCh-C_Yo1N@x-`% zCJHlY|4Q$B@^4S{7eTY2cPsr%YmW5hJpHVzUb@gqP~a?dA?j0Io8peBEp*Q+o?usa zY~s2Vwyx_w2)*W#_+jKnM=O{^U$WO@Q5=dxTknVQW+W-j_3QA^v(4X>w$@-p1juc%~mU1a{VGM z?pnFtq`{uBFplhqN1S`|6J#}V@cc776L zc2@oK2i=1zqL*IcywUONQvmrcF#1~UelsIS`z%-}P!Ri-}@RoAGu!`7B~7um_Ti$Ec| z8MRHB$Psio^mHKGJsEWhEMMr^eBD*Bl4qN>aP8^VVRGyEaK)x-55#Q~enD9;{asY) zN#{B#iJ=#q0j-8WP~9=Ro>7yINMwrl^sXl*OPptFjs zO-)>`@j;y>e*8bva=q`OcF;i$-@B6Cp3Y$h9k4==h6APtLn1yzGz&9HHaKe*4ggvuBm3u1Ft0~U9Y2y+yOGG zosB#0djCu`xX;Rnu>Y%`q)&y`GX1)~;$)fo_Kd!jPI@aLm3c%P#bA~m8Tmjoa`msT zi1{LE9skvxhuTHQ@iKOE2ikJRF?CzxHq>@PRwApPzSI9vRN&jnav;w13QSZiPyNa5 zswJglEvvqvMs5D=!x!Bc4E!vCaM_T-Ry%Mt<8Ne z=SAOE{A`xR8UILYjzc@TqL1S2cznaI@5N^- zq=K7%s@}Pe?Ut_0?sE4=?q&+p{RSVlJShOP zd1g?remCn@?34FbDcxQkvLEqA&Z*8dh$GJ0WHcg)?qGUdo9R*M35^nL$vXPbobSow z#30=eryTB`q1>M_#T{x^ORrI1h? z^fK)^SjPR1c2wt(!@xY}NvaAIJ-_u?hi<3L%i2`GllDxX@G7x|CYz^kg<7s)?w!4# zZrZ(1n@;;leXdt1Z=$fL?%jO=wKdm8sJQ?AB6R;DaB?c7yccn~(jKJxlm0lr5cBwd z8GZl{Gg+O!oh*8(oVcayxmJUul`Kk@p6H$$KhpPc%SKzl>0Hm>OJ9Z*SEBJ$pD%*W zm+}cGDQX9NpwHBQELzU>@F>Utsn(UrLDj$D-Im9@%yN93W3}*oMhSKL9!ZHOvh$DYDw?J2X&Mdc`Mqov-Icp0Ja`YqUd~r{LG%`vWBNF#b%{j0S7tv z*miK|R|>BIPsCc?p54DEA_*UQVCo3J=;4>Sa>t%zAT#45dJZxZ2*(rH%x{gg_HSUh zzSS|q++?5+Ifc_Pd4MT4-18KKK9&rJjqzQc6I3Ig)p)^t%dd6#gc#sGwU1s8ee(L| zFH&U&@_5b96DD&;I;xA$D%5wLa7KBl?<^PD5f8e~j}tRHP;8WdB{BnhIb#`Zc?UU- zc``V%JvP~mISn7niRM0I`*$0Bf#!J{$cYYq1$CCH+PPq1_<}wE0!+QYu1MKcCrU>5 z*~6zb_dS*f8PJW>2|80FIB7XML-&J_5kA>|$DuihK$`bk@p~RUH`c`yo~lgs3>mQj c)fM^ShX!QK_w~ej)ql0IPfApMxbAoU2ZXQOzyJUM diff --git a/Lang/it_IT.ini b/Lang/it_IT.ini index 7000540f363c880620132899e38d139e64bd43d2..f595e9961766984ab512ebb91f543dab8cdf56f3 100644 GIT binary patch literal 9706 zcmb7~&2k($a>wrz(eHpgxFqe&P!?CSj?hGfqe)RBW7!mgO-hcn91e6f*hH`zDAz|z z)YI&7&%XIQFXmqYsOst_HEUnk#X=&HNM!!=1NE!AuC;4Q-CFO|tu2kZ^|hLo?cC`~ zy*l{wzf68rXRR)+cB=FR58op3;z6C7uUea*)RkU)cjJn?pOh|5(`dJ>ePznhtZM5l z9Bvw;j4S-ox|O=Qe)sdMKcAndFSfl?M;~UY^=e_1Ua&lm9mF@zLTx6Ke;*0>ACqI= z<+lC#?0Ryp-6~I#`S9O~Ta~uC>t9Z$U3=&2{QoNDWM*7<;zWu(o3^dp=TZQ?t5 z*uFlsOM`3=d3K?j!n>tai0tB=WAAS5s;lADKk9>ngTQaP@Lii{XAVuT^*0o6!}|}F zac9oH;}G&`R@Lw;k5Ql){%9q9x1-bL1{IlQKIIp)9xW6PNzQ08Nn#xNuld=!^6&|VrdCl*+Y?}K z{+%znCZC(q2n|}+DobkCYT4mz=!|o1YmCM^y*94(2cO+#=Q%Q5$Z!&7Z8((Uwk}m= zY88!+H!$mY9Sn<_+UGO7)@sU=nrGNTKQ>?Mx|P>?921we2vC+bLwNR^wiXCY-IHeU z5nAN&wN{n=?SJ}tyVF`*+&^5I#(p#Tm0enP)5LA#&81k@U}C`>v%;cftjwvIwp~;7 z0-QNr;BaPM)V?e+Q5MDlhS_LJJZ}(q_Vz5FcU9$U@FL^Co)JJ3t$Z5IUn56`sRx_h zuB)E&96VHP-pPp|d-q~EY&lEOLB8d~n>El^gfnA*Z~8TR+JDXmglPT#;H&(|*Lckm z?R(X5(DnKe(P93h!Xr)X{IK_ZMt_1v4)G}(!Ng9lK%H}dw%dw$iCbW9tK*Ur%P-jR z0x&N$CxrL?D6iG?Y$-@*ON*nRvSj5Vv#%R1Ni)K!jXR@zW^xn>#WC{rLBW^4URXaJ*xBUNH>lDxdApoH~o|VGruwUJPXd; zYx+sT~ zZL549mr#O5da3-%F+0krHm0tB`x`oFI>`jUOv1IpcL@5c6??y#9+L!!Ghr_$XQGL8xOV9;#Ho#LM>!kg{{PcMl%^c%(KG-kr~7Qz7TLbes*zveUu;R8k7f^ zRMy(omwrU?=??A8^6YI2U4mV~Yl7GA6JF e`SAqlmCiem*{Kj-D>MJjShoA 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 ZtGF*}WOGW^?3Y*!hTQb~dh^5Ne*xqt|H=RW literal 19142 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 diff --git a/Lang/ja_JP.ini b/Lang/ja_JP.ini index 3367c3bf0535ee62410dc8672ec6c05099dae80d..c5a1ff898c339b7f50f430af8d00e7e944a81b9f 100644 GIT binary patch literal 13395 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 b^FfYQz0-_Nq#_kf=`$3&rTjS?=|1~kr*MpG diff --git a/Lang/ko_KR.ini b/Lang/ko_KR.ini index 431e90ac..36dfa419 100644 --- a/Lang/ko_KR.ini +++ b/Lang/ko_KR.ini @@ -1,296 +1,9 @@ -; Translation file for AltSnap 1.66 -; ko-KR localization by VenusGirl (비너스걸) -; Updated by Raymond Gillibert to take in account modifications. -; Use this as a baseline for translation to any other language. -; then rename the file with the language-country code and -; with a .ini extension and put it in the Altdrag\Lang directorry. -; Use encoding UTF-16LE with BOM to be able to use Unicode - -; Accelerators can be set using '&' prefix for any leter. -; You can also set (&X) in a string if the X accelerator -; that you want to does not appear in the string. -; In the case of the InputAction* and InputHotkeys* the string will -; be striped from its '&' and anything between parenthesis ( ) before -; being displayed in a droplist. - -[Translation] -Code=ko-KR -LangEnglish=Korean -Lang=한국어 -Author=비너스걸 - -; Tray Menu -MenuEnable=활성화(&E) -MenuDisable=비활성화(&D) -MenuHideTray=트레이로 숨기기(&H) -MenuOpenIniFile=ini 파일 열기(&O) -MenuConfigure=구성(&C)... -MenuEmptyZone= (비어있음) -MenuSnapLayout=스냅 레이아웃 & -MenuSaveZones=테스트 창을 스냅 레이아웃으로 저장(&S) -MenuCloseAllZones=모든 테스트 창 닫기(&L) -MenuEditLayout=스냅 레이아웃 편집(&t) -MenuAbout=정보(&A) -MenuExit=종료(&x) - -; Global titles -ConfigTitle=AltSnap 구성 -ConfigTabGeneral=일반 -ConfigTabMouse=마우스 -ConfigTabKeyboard=키보드 -ConfigTabBlacklist=블랙리스트 -ConfigTabAdvanced=고급 -ConfigTabAbout=정보 - -; General -GeneralBox=일반 설정 -GeneralAutoFocus=드래그할 때 창에 초점을 맞춥니다.\nCtrl 키를 눌러 창에 초점을 맞출 수도 있습니다. -GeneralAero=모방 에어로 스냅 모방(&N) -GeneralSmartAero=스마트 에어로 스냅 치수(&P) -GeneralSmarterAero=더 스마트한 에어로 스냅 치수(&O) -GeneralStickyResize=Shift를 사용하여 다른 스냅된 창 크기 조정(&Z) -GeneralInactiveScroll=비활성 창 스크롤(&S) -GeneralMDI=MDI 지원(&M) -GeneralPiercingClick=Alt+클릭 차단 방지 (AltSnap 더블 클릭 비활성화)(&D) -GeneralAutoSnap=자동 스냅(&N): -GeneralAutoSnap0=비활성화 -GeneralAutoSnap1=화면 테두리 -GeneralAutoSnap2=+ 창 밖 -GeneralAutoSnap3=+ 창 안 -GeneralLanguage=언어(&L): -GeneralResizeAll=모든 창 크기 조정(&R) -GeneralResizeCenter=가운데 크기 조정 모드 -GeneralResizeCenterNorm=모든 방향(&I) -GeneralResizeCenterBr=우측 하단(&O) -GeneralResizeCenterMove=이동(&V) -GeneralResizeCenterClose=가장 가까운 쪽(&E) - -GeneralUseZones=Shift를 사용하여 레이아웃으로 스냅 (트레이 메뉴로 구성) -GeneralAutostartBox=자동 실행 -GeneralAutostart=로그인할 때 AltDrag 시작(&T) -GeneralAutostartHide=트레이로 숨기기(&H) -GeneralAutostartElevate=관리자 권한으로 상승(&E) -GeneralAutostartElevateTip=UAC를 완전히 비활성화하거나 작업 스케줄러를 사용하지 않는 한, 로그인할 때마다 UAC 프롬프트가 나타날 것입니다.\n이 목적을 위해 스케줄링된 작업을 설정하려면 Altsnap의 폴더에 있는 sch_On.bat 배치 파일을 사용할 수 있습니다. -GeneralElevate=권한 상승(&l) -GeneralElevated=권한 상승됨 -GeneralElevationAborted=권한 상승이 중단되었습니다. - -; Mouse Input -InputMouseBox=마우스 동작 -InputMouseBtAc1=1. 기본 동작(&1) -InputMouseBtAc2=2. 대체 동작(&2) -InputMouseINTTB=제목 표시줄(&T) -InputMouseWhileM=이동하는 동안(&E) -InputMouseWhileR=크기를 조절하는 동안(&Z) - -InputMouseLMB=왼쪽 마우스 버튼(&B): -InputMouseMMB=가운데 마우스 버튼(&M): -InputMouseRMB=오른쪽 마우스 버튼(&G): -InputMouseMB4=마우스 버튼 4(&4): -InputMouseMB5=마우스 버튼 5(&5): -InputMouseScroll=스크롤 휠(&S): -InputMouseHScroll=스크롤 휠 (수평)(&H): -InputMouseMoveUp=드래그 없이 길게 이동(&D): -InputMouseResizeUp=드래그 없이 길게 크기 조정(&F): -InputMouseTTBActionBox=제목 표시줄을 클릭할 때 특정 작업 사용 -InputMouseTTBActionNA=단축키 없음(&K) -InputMouseTTBActionWA=단축키 있음(&W) - -; Actions -InputActionMove=창 이동 (&M) -InputActionResize=창 크기 조정(&S) -InputActionRestore=창 복원 -InputActionClose=창 닫기(&C) -InputActionKill=프로그램 종료(&K) -InputActionMinimize=창 최소화(&N) -InputActionMaximize=창 최대화(&X) -InputActionLower=하단 창(&L) -InputActionFocus=초점 창 -InputActionAlwaysOnTop=항상 위로 전환(&T) -InputActionBorderless=테두리 없음 전환(&B) -InputActionCenter=화면 가운데에 창 표시(&E) -InputActionNothing=없음 -InputActionAltTab=Alt+Tab -InputActionVolume=볼륨 -InputActionTransparency=투명도 -InputActionRoll=창 펼치기/접기(&R) -InputActionMenu=동작 메뉴 -InputActionHScroll=수평 스크롤 -InputActionMaximizeHV=수직 최대화(&V) -InputActionMinAllOther=다른 창 최소화(&O) -InputActionMute=소리 음소거(&S) -InputActionSideSnap=모니터 측면/모서리에 맞추기(&S) -InputActionExtendSnap=모니터 측면/모서리까지 확장 -InputActionExtendTNEdge=다음 가장자리까지 확장 -InputActionXTNLEdge=다음 왼쪽 가장자리까지 확장 -InputActionXTNTEdge=다음 위쪽 가장자리까지 확장 -InputActionXTNREdge=다음 오른쪽 가장자리까지 확장 -InputActionXTNBEdge=다음 아래쪽 가장자리까지 확장 -InputActionMoveTNEdge=다음 가장자리로 이동 -InputActionMTNLEdge=다음 왼쪽 가장자리로 이동 -InputActionMTNTEdge=다음 위쪽 가장자리로 이동 -InputActionMTNREdge=다음 오른쪽 가장자리로 이동 -InputActionMTNBEdge=다음 아래쪽 가장자리로 이동 -InputActionZoom=창 확대/축소 -InputActionZoom2=창 2 확대/축소 -InputActionNStacked=다음 스택 창 -InputActionNStacked2=다음 스택 창 2 -InputActionPStacked=이전 스택 창 -InputActionPStacked2=이전 스택 창 2 -InputActionNPStacked=다음/이전 스택 창 -InputActionNPStacked2=다음/이전 레이저 스택 창 -InputActionStackList=스택 창 목록 -InputActionStackList2=레이저 스택 창 목록 -InputActionAltTabList=창 목록 -InputActionAltTabFullList=모든 창 목록 -InputActionMLZone=왼쪽 영역으로 이동 -InputActionMTZone=위쪽 영역으로 이동 -InputActionMRZone=오른쪽 영역으로 이동 -InputActionMBZone=아래쪽 영역으로 이동 -InputActionXLZone=왼쪽 영역으로 확장 -InputActionXTZone=위쪽 영역으로 확장 -InputActionXRZone=오른쪽 영역으로 확장 -InputActionXBZone=아래쪽 영역으로 확장 -InputActionASOnOff=AltSnap 일시정지/재개(&U) -InputActionMoveOnOff=이동 비활성화(&A) -InputActionOriClick=원래 클릭 전송(&G) -InputActionStepL=왼쪽으로 이동 -InputActionStepT=위로 이동 -InputActionStepR=오른쪽으로 이동 -InputActionStepB=아래로 이동 -InputActionSStepL=왼쪽으로 약간 이동 -InputActionSStepT=위로 약간 이동 -InputActionSStepR=오른쪽으로 약간 이동 -InputActionSStepB=아래로 약간 이동 -InputActionFocusL=왼쪽 창에 집중 -InputActionFocusT=위쪽 창에 집중 -InputActionFocusR=오른쪽 창에 집중 -InputActionFocusB=아래쪽 창에 집중 -InputActionNPLayout=다음/이전 스냅 레이아웃 -InputActionNLayout=다음 스냅 레이아웃 -InputActionPLayout=이전 스냅 레이아웃 - -InputActionPause=프로그램 일시 중지 -InputActionResume=프로그램 재개 - -; Keybaord Input -InputHotclicksBox=클릭으로 활성화 -InputMouseMMBHC=가운데 마우스 버튼(&I) -InputMouseMB4HC=마우스 버튼 4(&O) -InputMouseMB5HC=마우스 버튼 5(&U) -InputMouseLongClickMove=긴 왼쪽 클릭으로 창 이동(&V) -InputHotclicksMore=체크된 버튼은 동작과 결합될 수 있지만 이 경우에는 항상 차단됩니다. - -InputHotkeysBox=단축키: -InputHotkeysAlt=Alt -InputHotkeysCtrl=Ctrl -InputHotkeysWinkey=Win -InputHotkeysShift=Shift - -InputHotkeysShortcuts=동작 단축키(&H): -InputHotkeysShortcutsPick=키 선택(&K) -InputHotkeysShortcutsClear=키 지우기(&Y) -InputHotkeysShortcutsSet=저장(&V) -InputHotkeysUsePtWindow=포인팅된 창에 적용(&P) - -InputHotkeysLeftAlt=왼쪽 Alt(&E) -InputHotkeysRightAlt=오른쪽 Alt(&R) -InputHotkeysLeftWinkey=왼쪽 Win 키(&W) -InputHotkeysRightWinkey=오른쪽 Win 키(&I) -InputHotkeysLeftCtrl=왼쪽 Ctrl(&L) -InputHotkeysRightCtrl=오른쪽 Ctrl(&G) -InputHotkeysLeftShift=왼쪽 Shift -InputHotkeysRightShift=오른쪽 Shift -InputKeyCombo=두 키 조합을 사용하여 활성화(&C) -InputGrabWithAlt=클릭없이 활성화(&A) -InputGrabWithAltB=클릭없이 활성화 (alt)(&O): -InputAggressivePause=Alt+Shift+Pause 키를 누르면 프로세스가 일시 중지됩니다 (Alt+Pause 키를 누르면 재개). -InputAggressiveKill=Ctrl+Alt+F4로 프로세스 강제 종료\n작업 메뉴에 강제 종료 옵션 추가(&K) -InputScrollLockState=스크롤 잠금 상태에 따라 AltDrag 활성화/비활성화(&S) - -InputHotkeysModKey=대체 동작용 수정 키(&T): -InputHotkeysMore=ini 파일을 편집하여 원하는 키를 추가할 수 있습니다.\nShift 키를 사용하여 창을 서로 맞춥니다. -; Blacklist -BlacklistBox=블랙리스트 설정 -BlacklistProcessBlacklist=프로세스 블랙리스트(&P): -BlacklistBlacklist=창 블랙리스트(&W): -BlacklistScrolllist=스크롤 동작을 무시해야 하는 창(&S): -BlacklistMDIs=MDI로 취급하지 말아야 하는 항목(&M): -BlacklistPause=일시 중지 또는 종료하지 않을 프로세스(&U): -BlacklistFindWindowBox=창 식별 - -; Advanced -AdvancedMetricsBox=지표 -AdvancedCenterFraction=중심/측면 비율(%)(&C): -AdvancedAeroHoffset=에어로 오프셋 (%) 수평(&H): -AdvancedAeroVoffset=수직(&V): -AdvancedSnapThreshold=스냅 임계값 (픽셀)(&S): -AdvancedAeroThreshold=에어로 임계값 (픽셀)(&A): -AdvancedSnapGap=스냅 간격 (픽셀)(&G): -AdvancedAeroSpeed=최대 스냅 속도 (픽셀)(&X): -AdvancedTestWindow=테스트 창(&W) -AdvancedMoveTrans=이동 시 불투명도(&Y): -AdvancedBehaviorBox=동작 -AdvancedMultipleInstances=AltDrag의 여러 인스턴스 허용(&I) -AdvancedAutoRemaximize=모니터를 변경할 때 자동으로 창 최대화(&R) -AdvancedAeroTopMaximizes=창을 위쪽으로 스냅하여 최대화(&M) -AdvancedAeroDBClickShift=더블 클릭 에어로 스냅을 위한 Shift 동작 반전(&B) -AdvancedMaxWithLClick=이동 중 크기 조정 버튼으로 상태 최대화 전환(&T) -AdvancedRestoreOnClick=원본 AltDrag처럼 클릭 한 번으로 창 복원(&O) -AdvancedFullScreen=전체 화면 창에서 활성화(&F) -AdvancedBLMaximized=최대화된 창에서 AltSnap 비활성화(&D) -AdvancedFancyZone=FancyZones 스냅 창 복원(&Z) -AdvancedNoRestore=Alt 스냅된 창을 절대 복원하지 않음(&P) -AdvancedTopmostIndicator=항상 상단 창에 표시기 표시(&N) - -; About dialog -AboutBox=AltDrag 정보 -AboutVersion=버전 -AboutAuthor=제작: Stefan Sundin -AboutAuthor2=관리: Raymond Gillibert -AboutLicense=AltDrag는 무료 오픈소스 소프트웨어입니다!\n자유롭게 재배포하세요! -AboutTranslationCredit=번역: 비너스걸 - -MiscZoneConfirmation=기존 스냅 레이아웃을 지우고 현재 테스트 창 위치를 새 스냅 레이아웃으로 저장하시겠습니까? -MiscUnhookError=AltDrag를 비활성화하는 중 오류가 발생했습니다. Windows에서 AltDrag 후크를 이미 비활성화했기 때문일 가능성이 높습니다.\n\n처음 발생하는 문제라면 무시하고 AltDrag를 계속 사용해도 됩니다.\n\n이 문제가 반복적으로 발생하는 경우 웹사이트에서 재발 방지 방법을 확인할 수 있습니다 (설명서에서 'AltDrag가 이상하게 작동을 멈춥니다' 항목을 확인하세요). -MiscZoneTestWinHelp=스냅 레이아웃을 설정하려면:\n1) 테스트 창을 여러 개 엽니다.\n2) 원하는 대로 삭제합니다.\n3) 트레이 메뉴에서 *테스트 창을 스냅 레이아웃으로 저장(&S)* 옵션을 선택합니다. - -; Spetial extra keyboard Input -InputUniKeyHoldMenu=알파벳 키를 누를 때 확장 문자 메뉴 팝업(&U) - -; List of characters that populate the extended key menu -;A=àáâäãåæª%āăąǎǟǡǣǻǽȁȃȧ|Ȧḁ%ⱥ|Ⱥɐ|Ɐɑ|Ɑɒ|Ɒⲁ|Ⲁⓐ -;B=%ƀɓƃƅɃ%ɓḃḅḇⓑ -;C=碩%ćĉċčƈḉȼ|Ȼɕⓒ -;D=ð%ďđɖɗƌƍḋḍḏḑḓdžDždzDzȡȸⓓ -;E=èéêë€%ēĕėęěǝəɛȅȇḕḗḙḛȩ|Ȩḝɇ|Ɇⱸⓔ -;F=ƒ%ḟɸⱷⓕ%♩♪♮♭♯♬♫ -;G=%ǵǧḡɠɣǥⓖ -;H=%ĥħƕǶḣḥḧḩḫȟ|Ȟⱨ|Ⱨⱶ|Ⱶẖⓗ -;I=ìíîï%ĩīĭǐȉȋįİıijɩɨḭḯⓘ -;J=%ĵǰȷɉ|Ɉⓙ -;K=%ķĸƙǩḱḳⱪ|Ⱪꝁ|Ꝁʞ|Ʞⓚ -;L=£%ĺļľŀłƛljLjȴƚ|Ƚⱡ|Ⱡɫ|Ɫḷḹḻḽⓛ -;M=µ%ḿṁṃɱ|Ɱɯⓜ -;N=ñ%ńņňʼnŋɲƞ|ȠnjNjǹȵ%ṅṇṉṋⓝ -;O=òóôöõø°%ōŏő%ɔɵơƣǒǫǭǿȍȏȣ|Ȣȫ|Ȫȭ|Ȭȯ|Ȯȱ|Ȱṍṏṑṓ%ⱺⓞ -;P=¶þ·•%ƥᵽ|Ᵽṕṗⓟ -;Q=¿¤‰‘’“”„…–—«»‹›%ȹɋ|Ɋⓠ -;R=®%ŕŗřƦȑȓṙṛṝṟɍ|Ɍɽ|Ɽⱹⓡ -;S=šß§%śŝşſ%ƨʃƪș|Șȿ|Ȿ%ṡṣṥṧṩⓢ -;T=†‡™%ţťŧƫƭʈț|Țȶⱦ|Ⱦ%ṫṭṯṱẗⓣ -;U=ùúûü%ũūůŭűų%ưʊǔǖǘǚǜȕȗʉ|Ʉ%ṳṵṷṹṻⓤ -;V=%ʋɅⱱⱴ%ṽṿⓥ -;W=%ẁẃŵẅⱳ|Ⱳ%ẇẉⓦ -;X=±×÷¬%ẋẍⓧ -;Y=ýÿ¥%ŷẏȳ|Ȳƴɏ|Ɏⓨ -;Z=ž%źẑżẓẕ%ƶʒƹƺǯȥ|Ȥɀ|Ɀⱬ|Ⱬⓩ - -; No separator between each letter, just the list... -; All char should be set lower-case if applicable -; You can put a % to include a sparator, I used it to separat LATIN-1 from unicode characters -; -; Use lowercase|UPPERCASE if Windows can not convert a letter by himself, you should set -; ie: a|Ab|Bc|C. In general it is not needed but Windows is buggy for some characters -; for instance It is required for ȧ|Ȧ, ȭ|Ȭ but not needed for ṓ ask MS why... -; it is not a problem if you over-do it and specify x|X even if x uppercasing is handled by MS. +; Translation file for AltSnap 1.66 ; ko-KR localization by VenusGirl (비너스걸) ; Updated by Raymond Gillibert to take in account modifications. ; Use this as a baseline for translation to any other language. ; then rename the file with the language-country code and ; with a .ini extension and put it in the Altdrag\Lang directorry. ; Use encoding UTF-16LE with BOM to be able to use Unicode ; Accelerators can be set using '&' prefix for any leter. ; You can also set (&X) in a string if the X accelerator ; that you want to does not appear in the string. ; In the case of the InputAction* and InputHotkeys* the string will ; be striped from its '&' and anything between parenthesis ( ) before ; being displayed in a droplist. [Translation] Code=ko-KR LangEnglish=Korean Lang=한국어 Author=비너스걸 ; Tray Menu MenuEnable=활성화(&E) MenuDisable=비활성화(&D) MenuHideTray=트레이로 숨기기(&H) MenuOpenIniFile=ini 파일 열기(&O) MenuConfigure=구성(&C)... MenuEmptyZone= (비어있음) MenuSnapLayout=스냅 레이아웃 & MenuSaveZones=테스트 창을 스냅 레이아웃으로 저장(&S) MenuCloseAllZones=모든 테스트 창 닫기(&L) MenuEditLayout=스냅 레이아웃 편집(&t) MenuAbout=정보(&A) MenuExit=종료(&x) ; Global titles ConfigTitle=AltSnap 구성 ConfigTabGeneral=일반 ConfigTabMouse=마우스 ConfigTabKeyboard=키보드 ConfigTabBlacklist=블랙리스트 ConfigTabAdvanced=고급 ConfigTabAbout=정보 ; General GeneralBox=일반 설정 GeneralAutoFocus=드래그할 때 창에 초점을 맞춥니다.\nCtrl 키를 눌러 창에 초점을 맞출 수도 있습니다. GeneralAero=모방 에어로 스냅 모방(&N) GeneralSmartAero=스마트 에어로 스냅 치수(&P) GeneralSmarterAero=더 스마트한 에어로 스냅 치수(&O) GeneralStickyResize=Shift를 사용하여 다른 스냅된 창 크기 조정(&Z) GeneralInactiveScroll=비활성 창 스크롤(&S) GeneralMDI=MDI 지원(&M) GeneralPiercingClick=Alt+클릭 차단 방지 (AltSnap 더블 클릭 비활성화)(&D) GeneralAutoSnap=자동 스냅(&N): GeneralAutoSnap0=비활성화 GeneralAutoSnap1=화면 테두리 GeneralAutoSnap2=+ 창 밖 GeneralAutoSnap3=+ 창 안 GeneralLanguage=언어(&L): GeneralResizeAll=모든 창 크기 조정(&R) GeneralResizeCenter=가운데 크기 조정 모드 GeneralResizeCenterNorm=모든 방향(&I) GeneralResizeCenterBr=우측 하단(&O) GeneralResizeCenterMove=이동(&V) GeneralResizeCenterClose=가장 가까운 쪽(&E) GeneralUseZones=Shift를 사용하여 레이아웃으로 스냅 (트레이 메뉴로 구성) GeneralAutostartBox=자동 실행 GeneralAutostart=로그인할 때 AltDrag 시작(&T) GeneralAutostartHide=트레이로 숨기기(&H) GeneralAutostartElevate=관리자 권한으로 상승(&E) GeneralAutostartElevateTip=UAC를 완전히 비활성화하거나 작업 스케줄러를 사용하지 않는 한, 로그인할 때마다 UAC 프롬프트가 나타날 것입니다.\n이 목적을 위해 스케줄링된 작업을 설정하려면 Altsnap의 폴더에 있는 sch_On.bat 배치 파일을 사용할 수 있습니다. GeneralElevate=권한 상승(&l) GeneralElevated=권한 상승됨 GeneralElevationAborted=권한 상승이 중단되었습니다. ; Mouse Input InputMouseBox=마우스 동작 InputMouseBtAc1=1. 기본 동작(&1) InputMouseBtAc2=2. 대체 동작(&2) InputMouseINTTB=제목 표시줄(&T) InputMouseWhileM=이동하는 동안(&E) InputMouseWhileR=크기를 조절하는 동안(&Z) InputMouseLMB=왼쪽 마우스 버튼(&B): InputMouseMMB=가운데 마우스 버튼(&M): InputMouseRMB=오른쪽 마우스 버튼(&G): InputMouseMB4=마우스 버튼 4(&4): InputMouseMB5=마우스 버튼 5(&5): InputMouseScroll=스크롤 휠(&S): InputMouseHScroll=스크롤 휠 (수평)(&H): InputMouseMoveUp=드래그 없이 길게 이동(&D): InputMouseResizeUp=드래그 없이 길게 크기 조정(&F): InputMouseTTBActionBox=제목 표시줄을 클릭할 때 특정 작업 사용 InputMouseTTBActionNA=단축키 없음(&K) InputMouseTTBActionWA=단축키 있음(&W) ; Actions InputActionMove=창 이동 (&M) InputActionResize=창 크기 조정(&S) InputActionRestore=창 복원 InputActionClose=창 닫기(&C) InputActionKill=프로그램 종료(&K) InputActionMinimize=창 최소화(&N) InputActionMaximize=창 최대화(&X) InputActionLower=하단 창(&L) InputActionFocus=초점 창 InputActionAlwaysOnTop=항상 위로 전환(&T) InputActionBorderless=테두리 없음 전환(&B) InputActionCenter=화면 가운데에 창 표시(&E) InputActionNothing=없음 InputActionAltTab=Alt+Tab InputActionVolume=볼륨 InputActionTransparency=투명도 InputActionRoll=창 펼치기/접기(&R) InputActionMenu=동작 메뉴 InputActionHScroll=수평 스크롤 InputActionMaximizeHV=수직 최대화(&V) InputActionMinAllOther=다른 창 최소화(&O) InputActionMute=소리 음소거(&S) InputActionSideSnap=모니터 측면/모서리에 맞추기(&S) InputActionExtendSnap=모니터 측면/모서리까지 확장 InputActionExtendTNEdge=다음 가장자리까지 확장 InputActionXTNLEdge=다음 왼쪽 가장자리까지 확장 InputActionXTNTEdge=다음 위쪽 가장자리까지 확장 InputActionXTNREdge=다음 오른쪽 가장자리까지 확장 InputActionXTNBEdge=다음 아래쪽 가장자리까지 확장 InputActionMoveTNEdge=다음 가장자리로 이동 InputActionMTNLEdge=다음 왼쪽 가장자리로 이동 InputActionMTNTEdge=다음 위쪽 가장자리로 이동 InputActionMTNREdge=다음 오른쪽 가장자리로 이동 InputActionMTNBEdge=다음 아래쪽 가장자리로 이동 InputActionZoom=창 확대/축소 InputActionZoom2=창 2 확대/축소 InputActionNStacked=다음 스택 창 InputActionNStacked2=다음 스택 창 2 InputActionPStacked=이전 스택 창 InputActionPStacked2=이전 스택 창 2 InputActionNPStacked=다음/이전 스택 창 InputActionNPStacked2=다음/이전 레이저 스택 창 InputActionStackList=스택 창 목록 InputActionStackList2=레이저 스택 창 목록 InputActionAltTabList=창 목록 InputActionAltTabFullList=모든 창 목록 InputActionMLZone=왼쪽 영역으로 이동 InputActionMTZone=위쪽 영역으로 이동 InputActionMRZone=오른쪽 영역으로 이동 InputActionMBZone=아래쪽 영역으로 이동 InputActionXLZone=왼쪽 영역으로 확장 InputActionXTZone=위쪽 영역으로 확장 InputActionXRZone=오른쪽 영역으로 확장 InputActionXBZone=아래쪽 영역으로 확장 InputActionASOnOff=AltSnap 일시정지/재개(&U) InputActionMoveOnOff=이동 비활성화(&A) InputActionOriClick=원래 클릭 전송(&G) InputActionStepL=왼쪽으로 이동 InputActionStepT=위로 이동 InputActionStepR=오른쪽으로 이동 InputActionStepB=아래로 이동 InputActionSStepL=왼쪽으로 약간 이동 InputActionSStepT=위로 약간 이동 InputActionSStepR=오른쪽으로 약간 이동 InputActionSStepB=아래로 약간 이동 InputActionFocusL=왼쪽 창에 집중 InputActionFocusT=위쪽 창에 집중 InputActionFocusR=오른쪽 창에 집중 InputActionFocusB=아래쪽 창에 집중 InputActionNPLayout=다음/이전 스냅 레이아웃 InputActionNLayout=다음 스냅 레이아웃 InputActionPLayout=이전 스냅 레이아웃 InputActionPause=프로그램 일시 중지 InputActionResume=프로그램 재개 InputActionPeekDesktop=Desktop &Peek ; Keybaord Input InputHotclicksBox=클릭으로 활성화 InputMouseMMBHC=가운데 마우스 버튼(&I) InputMouseMB4HC=마우스 버튼 4(&O) InputMouseMB5HC=마우스 버튼 5(&U) InputMouseLongClickMove=긴 왼쪽 클릭으로 창 이동(&V) InputHotclicksMore=체크된 버튼은 동작과 결합될 수 있지만 이 경우에는 항상 차단됩니다. InputHotkeysBox=단축키: InputHotkeysAlt=Alt InputHotkeysCtrl=Ctrl InputHotkeysWinkey=Win InputHotkeysShift=Shift InputHotkeysShortcuts=동작 단축키(&H): InputHotkeysShortcutsPick=키 선택(&K) InputHotkeysShortcutsClear=키 지우기(&Y) InputHotkeysShortcutsSet=저장(&V) InputHotkeysUsePtWindow=포인팅된 창에 적용(&P) InputHotkeysLeftAlt=왼쪽 Alt(&E) InputHotkeysRightAlt=오른쪽 Alt(&R) InputHotkeysLeftWinkey=왼쪽 Win 키(&W) InputHotkeysRightWinkey=오른쪽 Win 키(&I) InputHotkeysLeftCtrl=왼쪽 Ctrl(&L) InputHotkeysRightCtrl=오른쪽 Ctrl(&G) InputHotkeysLeftShift=왼쪽 Shift InputHotkeysRightShift=오른쪽 Shift InputKeyCombo=두 키 조합을 사용하여 활성화(&C) InputGrabWithAlt=클릭없이 활성화(&A) InputGrabWithAltB=클릭없이 활성화 (alt)(&O): InputAggressivePause=Alt+Shift+Pause 키를 누르면 프로세스가 일시 중지됩니다 (Alt+Pause 키를 누르면 재개). InputAggressiveKill=Ctrl+Alt+F4로 프로세스 강제 종료\n작업 메뉴에 강제 종료 옵션 추가(&K) InputScrollLockState=스크롤 잠금 상태에 따라 AltDrag 활성화/비활성화(&S) InputHotkeysModKey=대체 동작용 수정 키(&T): InputHotkeysMore=ini 파일을 편집하여 원하는 키를 추가할 수 있습니다.\nShift 키를 사용하여 창을 서로 맞춥니다. ; Blacklist BlacklistBox=블랙리스트 설정 BlacklistProcessBlacklist=프로세스 블랙리스트(&P): BlacklistBlacklist=창 블랙리스트(&W): BlacklistScrolllist=스크롤 동작을 무시해야 하는 창(&S): BlacklistMDIs=MDI로 취급하지 말아야 하는 항목(&M): BlacklistPause=일시 중지 또는 종료하지 않을 프로세스(&U): BlacklistFindWindowBox=창 식별 ; Advanced AdvancedMetricsBox=지표 AdvancedCenterFraction=중심/측면 비율(%)(&C): AdvancedAeroHoffset=에어로 오프셋 (%) 수평(&H): AdvancedAeroVoffset=수직(&V): AdvancedSnapThreshold=스냅 임계값 (픽셀)(&S): AdvancedAeroThreshold=에어로 임계값 (픽셀)(&A): AdvancedSnapGap=스냅 간격 (픽셀)(&G): AdvancedAeroSpeed=최대 스냅 속도 (픽셀)(&X): AdvancedTestWindow=테스트 창(&W) AdvancedMoveTrans=이동 시 불투명도(&Y): AdvancedBehaviorBox=동작 AdvancedMultipleInstances=AltDrag의 여러 인스턴스 허용(&I) AdvancedAutoRemaximize=모니터를 변경할 때 자동으로 창 최대화(&R) AdvancedAeroTopMaximizes=창을 위쪽으로 스냅하여 최대화(&M) AdvancedAeroDBClickShift=더블 클릭 에어로 스냅을 위한 Shift 동작 반전(&B) AdvancedMaxWithLClick=이동 중 크기 조정 버튼으로 상태 최대화 전환(&T) AdvancedRestoreOnClick=원본 AltDrag처럼 클릭 한 번으로 창 복원(&O) AdvancedFullScreen=전체 화면 창에서 활성화(&F) AdvancedBLMaximized=최대화된 창에서 AltSnap 비활성화(&D) AdvancedFancyZone=FancyZones 스냅 창 복원(&Z) AdvancedNoRestore=Alt 스냅된 창을 절대 복원하지 않음(&P) AdvancedTopmostIndicator=항상 상단 창에 표시기 표시(&N) ; Peek Desktop Settings ; About dialog AboutBox=AltDrag 정보 AboutVersion=버전 AboutAuthor=제작: Stefan Sundin AboutAuthor2=관리: Raymond Gillibert AboutLicense=AltDrag는 무료 오픈소스 소프트웨어입니다!\n자유롭게 재배포하세요! AboutTranslationCredit=번역: 비너스걸 MiscZoneConfirmation=기존 스냅 레이아웃을 지우고 현재 테스트 창 위치를 새 스냅 레이아웃으로 저장하시겠습니까? MiscUnhookError=AltDrag를 비활성화하는 중 오류가 발생했습니다. Windows에서 AltDrag 후크를 이미 비활성화했기 때문일 가능성이 높습니다.\n\n처음 발생하는 문제라면 무시하고 AltDrag를 계속 사용해도 됩니다.\n\n이 문제가 반복적으로 발생하는 경우 웹사이트에서 재발 방지 방법을 확인할 수 있습니다 (설명서에서 'AltDrag가 이상하게 작동을 멈춥니다' 항목을 확인하세요). MiscZoneTestWinHelp=스냅 레이아웃을 설정하려면:\n1) 테스트 창을 여러 개 엽니다.\n2) 원하는 대로 삭제합니다.\n3) 트레이 메뉴에서 *테스트 창을 스냅 레이아웃으로 저장(&S)* 옵션을 선택합니다. ; Spetial extra keyboard Input InputUniKeyHoldMenu=알파벳 키를 누를 때 확장 문자 메뉴 팝업(&U) ; List of characters that populate the extended key menu ;A=àáâäãåæª%āăąǎǟǡǣǻǽȁȃȧ|Ȧḁ%ⱥ|Ⱥɐ|Ɐɑ|Ɑɒ|Ɒⲁ|Ⲁⓐ ;B=%ƀɓƃƅɃ%ɓḃḅḇⓑ ;C=碩%ćĉċčƈḉȼ|Ȼɕⓒ ;D=ð%ďđɖɗƌƍḋḍḏḑḓdžDždzDzȡȸⓓ ;E=èéêë€%ēĕėęěǝəɛȅȇḕḗḙḛȩ|Ȩḝɇ|Ɇⱸⓔ ;F=ƒ%ḟɸⱷⓕ%♩♪♮♭♯♬♫ ;G=%ǵǧḡɠɣǥⓖ ;H=%ĥħƕǶḣḥḧḩḫȟ|Ȟⱨ|Ⱨⱶ|Ⱶẖⓗ ;I=ìíîï%ĩīĭǐȉȋįİıijɩɨḭḯⓘ ;J=%ĵǰȷɉ|Ɉⓙ ;K=%ķĸƙǩḱḳⱪ|Ⱪꝁ|Ꝁʞ|Ʞⓚ ;L=£%ĺļľŀłƛljLjȴƚ|Ƚⱡ|Ⱡɫ|Ɫḷḹḻḽⓛ ;M=µ%ḿṁṃɱ|Ɱɯⓜ ;N=ñ%ńņňʼnŋɲƞ|ȠnjNjǹȵ%ṅṇṉṋⓝ ;O=òóôöõø°%ōŏő%ɔɵơƣǒǫǭǿȍȏȣ|Ȣȫ|Ȫȭ|Ȭȯ|Ȯȱ|Ȱṍṏṑṓ%ⱺⓞ ;P=¶þ·•%ƥᵽ|Ᵽṕṗⓟ ;Q=¿¤‰‘’“”„…–—«»‹›%ȹɋ|Ɋⓠ ;R=®%ŕŗřƦȑȓṙṛṝṟɍ|Ɍɽ|Ɽⱹⓡ ;S=šß§%śŝşſ%ƨʃƪș|Șȿ|Ȿ%ṡṣṥṧṩⓢ ;T=†‡™%ţťŧƫƭʈț|Țȶⱦ|Ⱦ%ṫṭṯṱẗⓣ ;U=ùúûü%ũūůŭűų%ưʊǔǖǘǚǜȕȗʉ|Ʉ%ṳṵṷṹṻⓤ ;V=%ʋɅⱱⱴ%ṽṿⓥ ;W=%ẁẃŵẅⱳ|Ⱳ%ẇẉⓦ ;X=±×÷¬%ẋẍⓧ ;Y=ýÿ¥%ŷẏȳ|Ȳƴɏ|Ɏⓨ ;Z=ž%źẑżẓẕ%ƶʒƹƺǯȥ|Ȥɀ|Ɀⱬ|Ⱬⓩ ; No separator between each letter, just the list... ; All char should be set lower-case if applicable ; You can put a % to include a sparator, I used it to separat LATIN-1 from unicode characters ; ; Use lowercase|UPPERCASE if Windows can not convert a letter by himself, you should set ; ie: a|Ab|Bc|C. In general it is not needed but Windows is buggy for some characters ; for instance It is required for ȧ|Ȧ, ȭ|Ȭ but not needed for ṓ ask MS why... ; it is not a problem if you over-do it and specify x|X even if x uppercasing is handled by MS. ; Peek Desktop +; Peek Desktop +PeekBox=데스크탑 피크 +PeekEnabled=데스크탑 피크 활성화(&k) +PeekDblClick=더블 클릭 필요(&d) +PeekTaskbar=빈 작업 표시줄에서 피크(&t) +PeekGamingSuppress=게임 중 일시 중지(&g) +PeekRestoreOnApp=앱 전환 시 복원(&R) +PeekModeH=피크 모드(&m): diff --git a/Lang/nb_NO.ini b/Lang/nb_NO.ini index 6e88caee157eda4cbd9e85f1406550a376dfc24a..2ce707adb13eced06e4a15006be92b8ff15ec351 100644 GIT binary patch literal 4250 zcmb7H%W~Ve65Xdt|A5MZmDH5v$-EYs!PJ#yJ9b5iQ<0o3ZtemSArc`7umDhw=70PT z+3UyVH24rBCo^?7mI*W({XBi}J6kznycR)O!?sFGwzZB;b+~XMV=pE@j(%rmJ$`e` zwA~1;{%R!Gd$!7LDLk8+R5~vWdlrtG{C|Ql>BQLQIDY3PlV)R6WiocRx*EUuZGOq_ zRmj=-?Sci%){==euExJLgzt=kv>c88J238lqZ!tCv}H6GCc8A5RzBx%th<+)5+<(F zr!UyKEy}}#9!=|zTgOjq9gP;!)R%@X<OLixCMA;npFxHT%j{773lsZ)??_4dW8Q3 z&8>u3zmi5ep?Un3IvjTv7Qy0++8>u*%l+C4m-3Z}R=VTXxfYuO0SkP&6D~;lS01;g z=}wr9OkpGHLAt>`y&t32mUH{LGY3gi#`vJLMs^X!Rs?akS9Vi-o?O`ib~?6GCavjL zrfjSCA>hE|qq(SAAq=ybKRmGD_C+DtEI1wO5KG(Uxa`hP`YWWf{4xaTw8{*d;*(uT zAK0^HVnp@4le;luLm6IfoYk5q?`o}?g4s=qJH4Iw;^KxU_%rt5@CDktb@FHly*%C_ z@KvG}P-^h~<*Cq*ysw~ey7z*wlqR18GRrEs=!;L%mC~F_{=|P^b?~S@!^G~?(9WQr zAw@a(ju^E{Ei%cMl{-8XUzv&;ae=Z)x>|Q^RmJ6@F>!$}6B6&Sf$|9JwaqeQ@{u?- z4UU|4%%DD^)=MpSB1nE^U4Hnor)V;fmdciv?)5r%Pk(oWrK^Tmu{C1%0ZOMvHhc6C>kcp?^I7VZ_jykCY z5y)N(>MB1xm=r++x<)4}XEP_t5_;occ?|s*| z->|1~>fe0&I;I#)z#rgM%5STRN`$6}*sUFabTS&g+I5NjFPC}A!TohqDABq)@ZPT)Gwqz%jz$Y;&M?$BTaxs8g( z?Pl+t^y)8(-k~la$a79=%wWV{5_@zyIyCTPsClaI z#ophVm93Dc!eg!ot%FM0;S0LfhoSIH0y`aPLb}?Ez6R2m_{PCEHsmN7euMF3Xyyzx zq2*R$O(XaR{0?{CTV0ou$DiSPWF(bvAT)daikiWe-~tUkwNbyep^$q|1$kXNYz0hX z>DuJByK}h>xR<|A+Oot)b5Ses4v-fmsO%DC=Tv|+py_Z`U)l-2$8_6cO|4{G!yl4w z36e&dy+?iY^;lPwX*JD~Q;~%Q7i!14mKmUqKpnVO93E&^GcvF%Vkd#G1W_oTG4W3W zPH^t(f-Q5k4dd8PKpSGED9J4bd`|^p&I!~bya5b)jzgip8S;{N-VcaRFZ$Nmjr6|% z9?+u(X&7MBLxK|6OZEQ@#N}ZB@^htyiCme_rDuN#mOHuSPxBBe|MKh%Zft@3HO7mX zWa#pGJyG^d=#YYVpQUzlw(c0)BoC#2`sckWlr(>wi9e&`26Lbp`Vf1gIwP6H$T@_rnM#BG^<++DfQ_-7s1LCtXtnk-vgB?xcakNPeWLWcY2_ z4Z&vZJ@5l4h@y6pT1P=J9(oweF^K~W-(}1PTgHSm=jLjI*6ay7qnn+ga-b=SS^~4k zP?Qx6E0j)Ufd|Tw(Lxr0OZAPZqt>9lpc#<@^m7;kEE;oRQ7V!r_yu&wrNPT*Mmq42 zARH7>DRy|jD8IQgxwXZmbMWI536+RwWN$W&-PIGCwi19J^r-7dgD>{5*<&1|8@)ic z>OQdA7h3B!N|v`>%2I*FLG#>0g&-J>n?Sjb}cc| zn*RAl?{qEFRv<3L#GrX7LhDVVU6FeBjGnW&!m+2VEv($bPp9x6(|Zh2TX}YmCPZMK z#_M86$FW(TPw*msD`f%d<_m~EIr*eLs^X=g&?4QHzyra72!jTpex8s(^K`{yt$C#~ zZ<2qIzF6y-R-1yqc5=s()UMZfNJi=qwXK9N)&c`{a3$UYEI~D8Vuz<9C`FWfCBT=n zWnEPch{)dxP$`C%K`;_uHIKk32wD-4$y+n6DxT1sgf54$#mWTt8m~b|8l?-g&2@iy LQrfikFQ5Dk_t!s@ literal 8014 zcmcJUTW=dj5{3JDf&7PoAA|&f`TDTbGn}DFV-Xng+^VZjow{^&^S}T3d#ciLx=w>MNjGV%>nxq8D?L@|On2jS zn(wY8Q>DJ1XK6RfkM#U3ZKbc$XX!5qJ(F~jHq$@SYu%5f9crd)J)P#cKi526sBY4a`U2Xa=AKB$7Z3Bl&7-TV;hnw=HTNWe^R4E4 zE^N=z-_k+a)0>a_HWP*_Z42+At}~6OWC8XLbhYJvdppt(vvc%=I2Hd}>; z-U^P9=kGA{b(?X7-92f#kf!tWtG-@0`thTB>O=)$HIT3 zIfyv;J=c5Uu8s-rCOHmAlDU?iUV7Df*TmNs%U79)o;-Wm(6^U<(>yb2>B}TMn^Z^E)OADSb?Q&S^ry$D`zEn%`8OdIO8OTB2t@roD)~de<~6z_R>avy2wwA zs)QSzL%oS-ETRUE#Vs-7TC$b?ExBFERpJd>E9o6c>%H!%S$BGWAuW}niD%;cOft-Z z4EJSb(R14Ku(d{JfEc+*kU}ADT)0qq*TI@ZZsGy@jFJ91JD0Oxw8x6%Syrz_tI+NV!)dO2 z#0GIouD?%z;8b(RbzrdDh3|Gs^E+Dk}PqLNykes3qOu8u93;j zo`Fh11*499P;9^!+~OHnTooT((Xpj*T__!MU^V(hB=;KkUbzGBjx#J`EekJF0mv(& z^fF@v>z`o(t7%zL>0~R-OMmUUN>wX-FN^21jI>HWXI~68{$ut8Yi+E%>#$OM^Z$D0 z@hI~S%YBf0Eh6=Gu9dDFu4j&=6WQQC)fs~Bm*Qob-hDzSUTQ~B6FrBkT)M_pqN z)M0K5!%t${(d>M_)Esnk7kW!CF`cgpT{;fuIu11-k@e{s-pn=Z=j!?ChDLSWO-EzG<8grFL^|W91TD2Y`Vvw~Ko{XxzaphfS{^BLN1u~=Qm*vQ* zxgV7=cS8SKoWOup?BWLu+L#a}%VP-M%+VGtu7exd&gg?5(-0`U4%)JIP2ZTWlba9rJ*KmuYHF?5 z=$~aRQL~=LKpFevE`;%IJ!B!>OLbH`LggL!V_K+s#1VVM`mUY~WoJS6K{U`WlU-xw z@4ZHN|IIhY2w&aHQJ>N1u9l2O2mG9ip*U5YsNbdY+17U|Tcrv^?h!?tFvWUH6fK@0 zc$bgXlJBl+UIC(aFFjr99NMQo5&7i1BNi*`T|=4wMl*Jw54H9FQ_0jVRxc*An3qGuc>Wq?Kf1%F0{)ua5^~6DB&KTvnsOkFng80*IPPg{CTGLPjt^Z z%l`Je^i=;`E6yYbkGJ~Yd#){6Gw=X6_H^HWJt`&lX3RXo)lY(164B2!y=rc1ql zl77f%*B8=3WPC6Af!;;6r&|V7{Uji|U`G;NeISEpf2EJWuTA!eBeG+tZ$x32_dOz_ z6wTxe99_?MbZyT(&+`l${d$Q)pNPOexni%^Bb{tsPvFUVC zD&OHPcXOPd&N+FkFT0W@9$~pi(zno=L{7wWIrT2GJ_+LY9e#y4$l7e1 zbNWa&l0lBCqlajmEX;YJ*{B}m67|_DXy9WHZtIC!;=jIUb>8DE_ObYLnl<4&svB(c zdjr?5GhKF+?xIUAhgsg92r+Y`-CpxPyNQ6FW;SQNaI>p9U0twfLu(GtXlwFa`W*6- zm_TkP&q__k?`F#=u&RUHAga@bweDabH#PnBOyEefVOY<^KbUT*ONN diff --git a/Lang/nl_NL.ini b/Lang/nl_NL.ini index a268c6554a1f7d9bbd67eab307597bdfc14e5848..826030249464c2f229102ba8fd6a16d4c3b9e57a 100644 GIT binary patch literal 4352 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 diff --git a/Lang/pl_PL.ini b/Lang/pl_PL.ini index 7e7edbae3966be2ddb7b9f36bbcd65e6e9cad0d0..538951d505eb7910cdf4f2a813376928e6720038 100644 GIT binary patch literal 13369 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 IAO7zD0O&kimjD0& literal 24826 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 diff --git a/Lang/pt_PR.ini b/Lang/pt_PR.ini index 29d8d7060d9f5c93e5252a0012f40b2cf9206f15..d2417fdf173fbfce1a05f5a470f12db70b2a1e66 100644 GIT binary patch literal 4446 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 diff --git a/Lang/ru_RU.ini b/Lang/ru_RU.ini index 0723b09e774ec5692387308f9497343f94680bac..1ec4dc8565a45f9c48f91404a20b553fffc4e4c2 100644 GIT binary patch literal 8385 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 literal 11292 zcmcJV+jCP#62|A@JZ;rhr4qK5ViOQatsuohd{Z#kGL~c;D9ex#lRWJ10~cc`j7`}F zLjL&O{eInQ&pAg&LOg7_Z0j=9)A#5cZBiW=+S?p=DSPY&%{c-Tw78^_P}T`T>f^+)>j zP-|Z6)%!Dk9!nqGP8 zed*;`RJ!RK?doaYx^~>sj^)aZo-BQ2I_##4MJsXATCu3VbH%EDI+fL%@qW!Tip zCHo$|l+WI^Rd`U-`Sr*e-;G}Hnx6M01yKceJxRP)Ea>m{h_C9I?AkGDh=XqWTI=qO zY%#uaTWda=^iOogbFIH13(krDvgvtXI%wvtFOHrl#$J#77L8mHPwU3pE$Oi*n=Omu zHEFz=Mo(wHHy?i{PB{OZR^QR@im2d49laV(m3B7kaeh^seQD`;omkgtD|H*arMlZ= z?noJhoJX{FQ#*YjN&Dg({oz9krp2Ljfex^od)Ko4M^_!K$2ajwRwMOtaU=apK73y9 z<`hkxf*je?o|}6Aqkj9MgocSXx7Iza;*)`8(F0}aafy4<@v-=Y)ARCc^jqgM){tWl zWtq1Pbne?X&veo&S#M7(pBdc)^U-#?WU}AZ-+|?VtOa~wNt~`rie+)Irq}4ZBPl|2 zc=o0~MPtPGxEwpG7xyK_rJ}7>OJ@{si%Ki4nw}T!BxnpQg1eFx{qs4wgZJ>Up})7J ze|BC~nn`%a?NH;(@*j)~r7 zc?W;VKh#b#(za(Ki?@}}piJ!|r(~<5^ZTM1h+^DY;e{vCC3Wmnc+PWs#3*@_dOnc7 zh{joHkR_4uj&^xmyGP*^_w?l|9pdysxI+QHLW;%=>&xBSl; za4?YGJIaP@I&Vd<+$OWgx+$6VtPjw*6Ec#oVnr?aUloa<=ID-|B` z`CNdX-kKkfEK;k;963un*3G=+jDrq_!oy9qxUO-pWyB4qhp$)Ty1ECnbV(Ah zhw4vt8`pAqk9T>FmxvNaTvZyb*DOQWm)J&X&wzfK%f*=>g13gCGxm%aJSX0$uvpOj zglNDvlXebOhx?N5Z`z6d@GVDAcPx6nCN!P7GunAs(L*GVt7qT+XtbNyBZqz7$^En> zo-ddkoKLWbOWM+R)41-Z&Xm2KDSNBf>wQS&+*q}&8$!Fq-N)`CnU2k zeS##w5>&OHRG)l~(6!n^bm42DtIQo)YOSEg)8{K6S;e^~$zF=i3q|g=5+!hJtjP4` zagrO~Ul1+m&}Vq>7`5SH@%^Yz$hvLfdRwOkw*O8wCo*20PqdgjkZWgLZOQxTXTB8& zwQ&6EBg(3q?${5>PTX$l@UeNlcAe4ZCL|( zZyEn&gw_@|Td!rW@`(d!>qs{DN(zP`2Dgp>$$ZYH<;nYZWF_WdOwz!uRPoF5DtLA5 z?Gu@1Nq6L#%r(lpTjD(M?WZZ^48qCZXz!$)Fj)rt_=7n4DD6FzG`rGcV1Twf8CmEJ zn~`?2WYi&M8{{@n4$;_6_%V@(PyH~W95RBfeELH++fq)*8Dlc_ptdk{+ z2_&;HaLWVjZ`bmU&rz#1?wR&qOB%c}(9Bno2V@TBC0mszFm*&zr7#pFa<^NA7;${# zosxe#je|$>gME2JnL;3yS!o0h-Z{H$fwP=Od(>6W#z~b6v`(m3-uN zNwZ(bie%*R*%>+x1W~1y(Wax7d+G-8o4^?3=x_3V@SE?SjNzv3?tEf*=aZU18ltC+ zBEcKp-7r1zSs8r`F*y)!p>NN%eo2xKlpmHYOL~3IbL<=Hl)l#9MXiBW75U_8rT0n; zhV?lIKL>|YYc+GGy2txGnK|-HO*_iog z)ed*1HL@MvNWP2+t9Bkp;n=~yN3R{_CXZqK%e&NEMXK@3Ef9!~8gi@(`$mW^BIuH& z@Xm-E3ZFZbF>~%%u_xIu>MEM8qw?yx5wkJb&G8DJ_D|d5s;ZMJjhs6&l^m_mX`fAw zr_l*sG7_zFlRuwEC3BP4d#&)v5&YzDrcuffgI@<~BtGV)42m%VwQ&pkS>D31j;zoI?acZnb7nBK`?eSDjF8*4mT@xc7f z5dl(<->^g#0$o9w>gxAdtpqXv>BWpYZePN$$Ep1!Kj!wrG12(<+~@pkG)MJC`G%a~ z(dpSGx)hVod~lr3_$SkDiaZ*|_r&C#%E6?Mn;R?%&Wv8CuI)**e9jLJ{8sY0<;%G# zzR$Q18?la0=4DaP3^#C-PRN}YxQ*Nc_PZ&cB;Q4r0LRSI1ImLY=yuEe^!cc2KbJi} zoMDxVvX}cdw`hSuv0luI@Ur?H9C(SFc>ZdpdoeN^t9@KLf& zo?y>e{)Z!OpVZM%?%WP4IA; zW^^B#qnIV?yo7h|Di3(i|56kV>`wEFG723F6EJG9W8i95xGMjk1~He%R-cl2#&fJz z@l3<4^mi>AoL2maC}9>s$BzHv&2$IZkLud!i^@yY|)$ZFLGvaqn2nku7b$YiGnWElqsHWS;*2jpV3y z#&N6QH-A3YB8!l5=Y+h?+dX9wu!2;pr?kII^;ftDDa!) zIJ>1Y@_l(-Yp$ojr^6DL^nueg=5sK7gHy?o8Nc}Z@T=LaSoI_(Em?2e4mSH$L_9Tc zNjf5q+rk}q7MLyTXSKLms+V~EqIsqx?}$9VXRqrjZg+i-%M)YV@uDN<2pzjQC{F^h zT|4o-Nd1mCo+1DvY+7V_bUjrB@x)YQrHkSn9b!}T?9cqf+%>qZ?)_DK9n0o^r-IIi zAntA+j$$}Y@mxYR$hW+lGOzQP$*$=1U&Ia50iMa@-8=pFC)cW{4$ZgGh))-*`fR0h zE$?cGKj!Z|^We7_b@_;YdOE+!^68{o5rpUWVcD+On>=cna`~q0pq1)Vf@o^ z?M?MT^oW;7^)mFaAx#h|antC%6Ss&y70S=^@YUQfkNZhq*(5lqn6Vc=;45(FaAD!EfeA6iQ zZ9WB3t9!9OSwt`M7g-Uck!SJlBUuaBbU~hkXTz;Ohs3Lx(t`=%D0VJd6cX=VYkj_& zPoQ@IKi}7`$g*(Y`|+_A$rwnL$YwTxRpNFe-{Y2}HS%H|p|8nfk+oUg&?kD}NhM;D z%oopg;Lk3z=bg;6^9xe-yZz7yImo9BbcRR<-XPj<${#^?XzR*oLJ^szC5*w0k%$0y zlbv`nmuF$U-oMp#?NUuy;PVERltT&#Ruu}m%@FS^Ym+RkPk`Zl^%=RW7UZE1-p F`5#$BYnlK6 diff --git a/Lang/sz_SK.ini b/Lang/sz_SK.ini index 0ef587a1f9bd77c55f7197d5c1f9cbca248e65c8..94278b3e17cc29767b17b4906e4849e4671821fe 100644 GIT binary patch literal 4179 zcma)9&2k&L5x%>M@6hpqPHMf>I@!%ZyR%jL^IEZJsZ80fB+dbx0XfiMfGGe&diVsn zBzc9^VGlXzl$^H8zEFIxe2wAHNM3tWrP6@tMx(pYKVN@KmrfY3MNrnzL}^JA>*zp- zV<)EcWbjq*Tk^%1qvxb;DzsX(oa2Uu%2^zoVNvMXgYT7>Bu#2FWv2A%^68gP{&;pm za}{zrJRef9G?paBxC6@?%&&|Bx9s))+R@@~y(8=;@zUOzFw+w=)yn6|NZXkx;#OQs zbNdfvMDL&uxpm2XeR@M_>J!8FC4Ui>S^m8GDefIBA2(k&oy}(|lTe~b&NCm}^4h4? zPqZMdR@b44$BwL-sA=tFavo;ZG2I9s#7r6`BFDkl)*(43QE62yuT!O39p0&sJhw*4 zvYU5?lqGUcIHXLI7gEZ0!oxEOMOFNdSS^j%R99lRq88)ly-QIKAjID54 z@?0;kXVSyF9dU{FZ8KIxw?jDT!-&KAZ}g^Prz%E?kmzxq3#7p@$k%NNM{iXrAmpHH0m2sZHT8vq(RN(D0Norq(6eO994K5GEx*_c{4Lj znnOP&&F0kb_%!L`ANjhftP7icwrm9H2`@?{Mp{7GI?bDan1DpFf1mZMgrlww@NUOF zEaXY@Lf~2_V7DDRv9PnExzF_b2>P*fELfkGM{>oQVL& z^@6K{$Vz1pqfP{rAzU&;Nt#Oksl%75N?zE2ijs>!f?gdQ;gl__fV!hKQn8Z4k(^1_ zP*A0$#?~lhQ&Q$J)kaJ2<5t!dg(x7!c`bv~%{Hnwx}Nk~r8oMl_p@ZPxJO|9E_3Bu zZBi#;Fw``14h7&`gKD z)7Ix`$EC_LbkdbN;A`{@#nv_+$d z|GV2mq-n_~Hj6GXDwo9n-R%QC7mYtRmlh>+x9+kWNfV??+E15&B+p?MCp&+;B(%{> zG3IXi1-@O%Ypd&0Chez7h;XAqDwwoMxP%5LAAoU%4Tl$LELTMqg+h_vU&?k*zGSi&rhYLRT>48Qv*4!OuD?OXi}SLi$^;5cQJ`sUSIi$0qHwIxs#LRVID%| z_xJXEkQ1Ql+5ia;rbyX(JWzH|=#T+b@4+8?TcZYfDD}hd=c-WO?TPPqN@!+%G>U$vQFL@mKU1kRC|F3uIKco- z%`6O%h(g>9#Q&bWodl$_BaapdC=U$tzNAIw>=nWt%VPPT%$5UM{kXhA6QXFl^$a?1 z|0T4%8nl-k!w(E#5H-G%SM6pjC+$FWgvJ8w-`OER0BrSoL*>&~CbzaYaSjGuqE$

|KiN-ZMP z)CeixRr=l~tuSVAC=zgArkkB$RyejUs4|yh&qae%0}9U>Ss(;4Z$Uv;Il_*eJTVo@ z&~G(Ni$mpZh%SlLdt@Ur7ytz;NDNB zwG}GYN@M`@5$aQg0XeT9Fu9#Nvp9CvfiQu5lJ$73kGN%HF6g7GqT~e1X7-8=$Fx>N z@loid@CAA~D&sw2m=!Y9P`?sJYO1x(BmWNqPn9 zL|(LgJRTTgM1Pj_U&@6lG3RVG68jJS2MbC? AtN;K2 literal 7708 zcmb`MOK%fb6vwZ(m1w`hG>g!xZGaZKXc?p=gp!gFL>{OwsgC0W6UVmvNN^T>*Dkxr zs$C(`_WwJ_mzl}TxPev(Jagx~?*BaRHSt%3OB>G@IgS%C>)0`!ghG1=dNV5B&{nM=LMvjzvGwT9mk}XY{vaPfOGX;_3x7@5<^2(snC+9X7(6R?hTo9G>fGC2UE4qPM>O z-8TtM{rX;f6)i~KmAuYOcH8u#`==UAeldzwv!oqT$%s3KYr{}Hk~P@K&PTE*6(XQ< zs;|e!AL+6$?C)BGy)}(uStzg=V`M68w)8%db;IzR9{cZCWhH`%tf-EYq6E*KzN!Nih&)fjqT=S<_{lONmRe5dB6STouhwR7>W) z%R3>W`m&#DiB&CeEK4t|iR#Lt?P*ZKyKY}vlHRc>*%mKcUHt)%?U@&2WwK0`%$}rE zr^d4PRBu!9QB%PSR8*%*KHF4BSU0KuL?@UCOOPE(Qkf(AXxpqDh&QgBNINzYuV6Yc z{Zp-ZWdL*H;F~K*y(zh|u2D}t3om2Lm%i{o>OlP@4UhHYJ0_pq&*U<1=b}B8ZC>T( z%lcBXK9eLoN1V(@F(MEx`D(_E7hcOos^xqMv9C;I=aKMA!}n(KRQArp%WE&5irE)! zp`KH5=J_z=PQ$N_MbSD(d0HSIJjXhUDe4!MkIbl#kW6~)L>|3FrDrGE9DC2?N|M$@ z-?q9&R3Wdp5+{eIDjvQgH?RZ$6Dv$YR0=Z7CnV7Jsiit1vRxE4(SeBm$C8RIXnt;5 z=yFUa%c>BrtuI>!`tFksdF-8VAU+UhN}?YO6`RN*=8!m*?1_HK^dtSUpU?F>(JwfR z^e3ZY!Wv0loR*>mEpekC4lM0TZdJ`H?k^Rxi^fA2fv@c8A_u+g^2)#QL=<;~9oFX& zqUwQ(8wj&;ZUW3|@3DMFucdP^6Z(8x#j_#)6=h7?0B`zboH&@;iKR@2cYrD> zn=>if;wDNCWZnD9dODN!M3VlSO)KHHc6M8+z3;A8!W~Jt^WGAQGgJPp9?K1jS2B|L zB|9U!i#i{Y+n%lDN>50~Z1+gbtJnrc^D(z+uAeB!KHua~nbJbFSD|E226*;_r2_jRf;{)>G+zSr}4?cb5r`{MGq z&ty68^;~<}8TTjjeJ0=Rt)6Gc@{~?Eut;K8En$^P8yQ^wf~=yvhtf3GjL8{w^mc~K zpHPW8Dhl@{K1Ia|dR-d45*DRwNZO&K`ret*;!3Rh^K5u3#E+DFdH!teDiWeL??S#e z;?1o}WKaIf)ojUgq#Il6e z4Iira=#A)army-r8^Q)gzMBe^@GKZ7d>z|*u7I(LFgw#K<}CDBd|wi~HD^ViBB`&@ z4yNbgor|AL%5vBT_Y^*dm%mrt)x=rPxj@YOQJK5EQYEjBo0~KyexEpFFG*+EQztI; zoqJ-=5=S%NfdTW~egy`}>@>}3INqA{6fZA?A?G+I+a%nzf1g`?9V)^WER)C5HPTLR z=nse!F+0ZAD7ILje)yg?OXFNsT!>MlWw!{1zo_NGdr_ z52n%i*C+^bZftVNA??`M-`?n_7ySI6JI+H zf0)D*p_u4y=Ry=-M>9X8&u=zAYT)0tBzWD-FuO0A_yt}%xz}zc4ycQJ&ZZ9HFV>t@ zY35u)^yDX#JPq@5Muk-VGFOiDWmgtpHPN#sI`)cRIDO+m&|^vjA7YK$lt=}xNMZUS zvV0aVdZT!fkCLc!_``3g=+6aKPE_%(#P2lx9>M?5kNC!B(Dyr}j2f$=b)4ymAoP>F@urF0fgp$- z>Z|XWiH!d4SmQ}Y8U(mqVzy?t6LCXA4@^ms1z0ba~9Hr*^tDU diff --git a/Lang/tr_TR.ini b/Lang/tr_TR.ini index 283b494cb78d95c9d40702db99f328a6cbd92c1e..86b017f2fbb28dcdc4045b564f77a82129a40916 100644 GIT binary patch literal 13241 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 Xp7+3;2xVM4&NmASNzm)OBftAU>8AWD literal 23826 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 C_~JzX literal 24214 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 diff --git a/Lang/zh_TW.ini b/Lang/zh_TW.ini index f8890ab1862c2bfd192926e5793d89e141201b00..07700bc88e2ee706088db05ec666f2ecf314b0e2 100644 GIT binary patch literal 13957 zcmb_j-B%M?wtt_s@;}tWkcr)`Jv#Q>nP%#)1^9Uz)GOHS^zFM=hopd9LyDUOm03Il z5CH*EBWMH#RFLmal_Y?yMF>gyzo-mVN#@0W;r{kHRh0^2&ph0`Zl39 zC^a~JLT#(h?ePKXT8rBml-vS_t~%SAWuIF(@9}y)^^!j*1Z5%Uydeo5pWt-4;nH{|WWZfaLY~I6*-Rl|be6wFz>tN%9L`r?0Wq*(lL` zeDDc=$>(e)JeWw^x#bBqvA+z+<7{<*o8Xe&5-_&y-x>k4Y_{l$3pXG=vFW1oi>#q zY9l=kb!a8m@#>hZqBYng`^6t`G=C*P$|cwLf}=L*gg7(mt+(VDog>z56KW)1tBrn~ z_0e&Q>hO5(@r=WM_89wm#uMP5JI2`OGyL-fk6WVYV&U0p{>hNKF?Fy#ruIHj$3}9m z;|}`;4tBXk@?G?K&Ox%p!bm@GWA`2*KeMPVJ=5kMJM5P^V3q7^@HDpiC6SMvIB~*Z zui|58n_GfyKgvEy6oijky}8+VF0%b`tB=t~_rBT*$q0)1wXMSTy@Tyubv48gmkZi( zB;UDK=$gsxY~~l21*Ro(o$5f7uQiyNSigPQuv3~W#6RoFH9lrN*Ye4G@9c)e&I^L-t=G6P+oT}WjJD`VC z4|@I{>IAC4xFzquA8bzmpE^7Q#Pr`-mlnFuaT7B3B|kUEX9EGB{TGnz{ddx9TnIRy zoHr%nVL((@dbH?5es(%PJ(8PyqTX3k7oUPBCG7ict$r?EIUrSdy?kon$yi~e51Y`& z`m8t{_G_QhObTs;H;q0y1r6%kkR^ed=uwzKydNJQ%B4-uk#28vA=BxA@~e_rxIFL}j-Xei&iQ2bsaLxqXj=EK6) zMDgo)Qd_<3^t;8v;Je)D>*7GA*Xg=Jw^P*aKPp6CYte3XWT`k_;lAngxg<;strec# zw+vWzMmJ2S$EN>VDc{yf<5F&X$HkS;$*$IbsP&I%qwD-+v`D8qGy?JAf9CE?7dBrw z?B|X_LVogToihiqadl`J0;LV~9Yp(us-WL1U@xD}BAL=@sF3`!sLf1j;RS(y7x)q3 zV*TLp{hN@R=~uUg_=<(+6ZxHoh0c4qjaT`eIb4_g+>SQLk+|0V22yRsudc+^<*36BxzY(?6C^*MGWu5gwOP;-#;l;nb))SnwCvw-pnTu8 zO`e9JpgtG?$8-w2-ydv_s2gj1bD%}%;j=rOc!&K*6Xivp6E@+dRO|A~Uau}C+UAG+ z)|@uDhFxo8bDX982uy6&-PD}9DB^!Xd%Ua-y>-}YO!QYglHUajP~`>XVxeP4?H(*V z-PFSU4i*Hq4LuFu*DCOM$abeLbRfygfYrhvInm8_PJE zFY$#t$TuZ1_hu8q;IMyxB#tW5l%h5k z((X^;)<8%&H<=|hsDsPMH7QB%_K?6OmkTKlj@vGhfw7rGCbiHJg@j=DTyv25vm9}N ztUPI#-1=tj-74%Xi7jpeyS4n!PvFH|WK->)A~nO{N#sbYI!I3+MotF*SB(8(@Uvd& zCcJA=8+xD)_F!wAu-wvQ?!n!Bs2h8%a5uvjfPY1PB=(~%+$%&LFm`k*3IU_-%NOw*Q!w1r8N1t1iT zi$zbC?!X`pc1|ZwA9vHm;=AN9MXj$x5Y=!A$n0Y6&3JCUALdC7^+RzBB}@=F26cQR zKREya(neN{GZFYl%!1noDmg;6yCXldYQk{t{!_FnQ;uBGGgHEh3Fs?~g~;829=$X4 zPqCP*;)1DL!@0;7C>CHt-14meWB6xS3hx^ZfFGe3u`c(nQ(Js#Wgwjan8-{vym+|m zHujT!AQ|Uo90CrP(>es#{-kI>c|tgdZekyYhE9q0QzyXT$Vm+I;&VGkpP$pQGU zO!kY*{m=x@wMNVhzvq`9cZCV)A&9F4QKFM{I13HcHCTo@AY9)&?3KqzB^FWDm=L(; zun1&CN+GVA5KvbP;`||qn#$AqD!GLPb##;go&E&qnT`v4wEhAX6Q`maE!7oXWgPYQ~ zKU>(u^|Fb{%61FBb0zo~Iy=M1r8l;fU6tgV#9l~Rg-(0Rn9Cl-qI6GdI8Num?-y-I;`W*Cy}M zHMU~c-IUxmv(+rZLX^YZD~DYwfxU#B5FA4h$e_v)URx2t7}q)LDbo28|5``Bm%Xjc zFvjESg`Oen0Lvq=G=vL*d1y#`dS8uCTOqD82X}BS|8C>s){s>In8Rh^BxM9dF6!L% zu%a=qJ-_hGNw$s~$9my=QGL;wgL4ltV8_e6C+jjEAKbvplpCYt<+8#Jlp!&43D0U; z;Z;CsVD}Dtsa)5>Md9u+bA%6hwd$jR{F_Jl2iweRw~%m_5@>EVQQdrhuoeB>MC%Uu zq`FII-SBVCX^>8C+DqJN%Uaj#E>)LK;gDn!SeRv91Hg4h0Ut!~9SMB(C}1)aM`5l! z3K;Z%3QUSe-zeAG;LktZXpON^bIPx56u^9=hk%dVD1iA!4*?&!Q2_Ie9s)jcqd&@W zvzUu6X^%gAsuXGPRLSTm>sehwp3QXwE{(|ePr*Qv4poofGfPue+jP=)7{L)P%!vjc( zBX%LqA@@wK%}{xs^${Nj!r_ zE~Dj^F@9B3`i3)#pC-J!{A7uWHQ`Pf?hvE41e`pQBghO0lpgy3AeQTSMs3N$mi=&$ zbFE%4-&FSuGMb+QuBm3JQd8ieTGYXiIzDdYP)%Ja5DxqZpsS@oxM4>CRh9xl{yzn} z&S^6BN78hi(_{i2Nz-*slL>SrO%=75eU}>=M6D+ZV@=j@^aTteg*9Xg z9QM{yy8|uAC-5+n^VeZ_mOx$hdw7~h?OZQ}I^bTZZ~D1A>99AJfTA4LQVlEpKwF$b zY62{=9uSSz6-U8~!=qP=qhP|}(aPc|c3(2e7lx%hdSSk@Ied6!8or7gvN8M6(llII z96q!*bI+=gYoV+rw|QKQd1B2F31A5X4OdEs`Nj%k#DRv`GZ+fS zm_W1WgNJT(ZpfFjWEkhO!+uj=+}uSC1sL2|!F?n}jdaF9A0{4bBLVszd24J^w`MGo z&%L{&KIlbRgOvOdOVTX9Rws}bUdBP?qTAZjWh7AYFXt(FIE0qVs%s0@2F~c;$P72 z6zeTMDLj8!v_o7-^r9jirWxOv;jlgkO+)TIW$a5PQ5s(~a``1A$gZGNDdL|`Cb3MS z$n%MWuw-5>%7Q^xYY@>3=QR#va6|p@5F|P5O~u2bLZ}IRh3BiITDXTFox^_PGoV#o z)L=!FNvK%Dj@e;v`wVQY1iQ?NP9<_fOCvpcCCF1q(93-gdc;oJKo9hz=|VW{EeMgB zb=3J-Ej0v*mt<8s-jV_*?i7P99qg*7v5CXMj#=T5X+DfjXS9w{=eNU-;M@wyFdCp7 zsR?RaM+=SYTy>Pj@v_RwmyyB34uQi%d65XX%=XrH~zVRP)&C7U)XxD0n7_lA~7xGV;GcQFOR zb7IxdC~zV;2p{EA<8;h@dGA%%39*19X59_daK z#{5O(_NNs1hf-k9W%AZZrKmgGx#20jtQQ`nw2M(2q;x{bGAQQ-V8aG6jn?Um3sm5< z!1MI1Ne!1&eZtFmE}KX@=!r5EgxJ=|vn*NX90DKc4Fo^T_AfqFd#Cuu$XPII%{Jqg z8VM~aF6Jj7yF)1;V}$3P&iT2i1L;&M`?$5mV|s1*aqfN(?xXp1g> z*HG^51fzwgm5o`nesPwa{yb_@#V1Rhr&1`({S-#Rg=dk{MH)-s32SYOgovHzru2EC zaqzTs-tCfkbyC2zP?jzVW*dwRu#5?HfaxVeWPu?yWD|?xo|* zhZdYzQ3yczT996)$v>OKU=w7-su?*Yg&nTptmOpKp}oU;j@Z~TSJJFb1d8l+a$_T! z&y)tc4eFxivRPBHz?S!ARLR4BNa!>!`);L@5ny*Qg zZ=Ch}>HJLjV(twoNz{-Zj~51(^K-A^P*5LT=$RUgf)8LGB-AV~YfomW>^|0a2niNf z`#-=VWj@PKzI^`_u+aR41-eC4@TWDXd(QBH)FpTYh&NZbZ-Ceno6W_xa&d&B%;|x6 z5{X5eKnTX?r|;?%ha$O|C9SJl-F|7sjJ5}L>1po$8p6#R9-%O@nqLYDx^NXHIw)>r zy?^=wLUUUHJuV(Jt9jd?N#vG*a7*^zfUu&o4;~k99#ZcPnj0a%%Q#5gG+mIqFoS4A z?51ISg?I12J zbw2x@0^&y2#Ai*WpjR1=@dY>?tc(SFLyrFT5Mp(0nF_RUV9DN~RkSCrh2N^(-57$t z;Co`ZKP*JqR_YygH95(rf&xH~F#3>NJT;kmmD)^gr#sSJ={N1^X(ifGmR+4{PscM4+Ow<6 znTPnfn0bVsE7`S<_Uu|H8-8FbuN2GnLz(b?*M4`Vt1J^%qFqX~TZ#5$!w+rcRbt}J z?#tcTvb~Tt)(Z^(QG(uD?ckHW)icBxx{?7bD?Z6yf?h}WG}KentGmzWJc57 z=^iCItVEwE(TEZqP0zNcXO!skOiz2}Zgv$Y9^1;#iTjVrl<0USnqA$D1C${p7Vqzh&m{>|Im+j5&&F?Ly9;Exy z{d>!MD|@SZ>zUaMh+I^n%h~W#Tls%riFc`$^hTzyJ=2>FM{MQa;nT)mbU%{9N~=nA zJ-a%G1!n*8yrcae&qKewX#dBHm24Qj3f1E7tFpcL-qzlSWGLCWKbq=G^`_tMKWk5K zXICdNX(BU^pD&f@h7ye_(M=_~oehuL%4@{kcVNqo66;W6U71w?EoDH_n63Phm{=`K z-bvm~_9pw1{h77>7wzeZ)Ih2~6-#4MtXqloD6u{z)}IYOx0PQO6Kjd}#M{LC#Jfav zccm;jm>fzzEXzF3yxX7Lf0cTanoljJcG83Cq4cZv^vm>odwMRt*q&ZUFSn%;_myzhuw{A=w;ddl=5yHRK8MT!%FN)Hau=C|4(su zXZLkBw2}=y&4wb`&{#I~JR5qE4NYf5;cV#f?)>g%HWbT-;$`VrroTONFB_h)m0uNi zm&%gE$tTIk{&f0bI;_MZN^De#Jy&AmnZfqVK!%ojon4J(!;`l1S}{497~g$UmK;q! zPmU*d%Jye|>Dr%5N7~a*(>nnD0JcmjF%UPU#NH^e*=+cwt-Mamh91XNp+12UxG|ik>Vv9;_S&6MGaqR4st^Asph$Z5Q&BRt&ayB`i zTuv?~SCi{y`zycPOFd4Fq@JdprN+|3=_kKHZ0-QZx)OV*#5R;zOo?q~!>?`S--~6x z^k=%WtE<`7w}9AIVmsOJl&$;+u}q0~DDkc&WESJ=*uWY-^(gVaY@MJIzY-tJhTquA|0*W76Fa+8WyuXCK9pW>Pp|F2%?!0??q|a@w(=jvd7TMip`GmN0{)rLhG$8WUZO`BXc!=W%6!KlIbBWk zVgvf_E8%}yp#te~3I)(;%Eu(s>zPJ`8!oqc@qUIs{_s+Z#&P!C0&h6rdLx@nF9$H= zullPGdYs}E%INuq$LI34(t8#mps)XxaFO1bAP39dcj$Bp)fIIYFC9P0Uof=tHz*c` zY%2$Tqz#cp!Sb|v`?V`q&R(sms69(>NqAh%U#ZY*5tqzE2&cY7>XL8rG~?+`!&mHm ziM}bs!9eVhz7?G974_|vuJ)=EurNX+Z!l+XZ20>VA7V&QO?hQwF(i=dTN@kOSYQ&6 z@w}&KL4cKBEP3>pPPmA4bO5h_{`C3X^f?LCI{frAZ?VN-u?}J&TRR=a1B#Bw{@-B75itkt%YiBYnRwRS)F~K`_9L` zcYfjQ$;tfO`~JW0_kQp9e&3z=`?m{+s1yCdFM7m)=%)8U(J6ZAn?r=?Q@02jpLz+# zA+Vwmpxh*FSv zfHS^D=)Ij_doEL}Cm!tvW{}<;g7Lg`WmxPqWW?1ChLqsaM)dlLs)PP}jaR?uGUNwU z2jKHuR)6h;0(Ju2oCRll3Pi{zENHpA~^uf(&An+)e?*T{e}#% zN4r4}{M#?|Nw-)OiN$oSk1!GC zon$wRD2@+cBLYAf*6g=vyp3QYbWicX2pXVk4ntn>DJI%m#ZB~yZ43_$5S{+Z+!52J z?YGirj{Rg^l&0_!^mC9@%zenv5Leh*?Q}gzTpT1h;uaM9=r2g`h+n(6tCWmV8FQNI7BlO^u^g2m#GzChni2CZ^q^mh=aexmRx%Dg*;lVs++ zj`6*Pz7-pJA2EX%GA*8IW?|aOZ#+|B=K8M zx74#AkwZ%+PBwma2k<>f`0!H?S*6pM36MEl2J}+$^ipHouT8?JBrErkEr-eCzy*eb z{$|Jb?AaI1i(55U^EUj*<9v{y&mOt!;VRFXCaXM{%eMu;cHoWJrP1EQn4Q&(f2MD4 z*;_5=yz|Ny8ngk~LHq|viUF}&l+qt(w4L;Qse#A&4Y3@dD;O=MhGhqhDC?$gW#Tp( z8O!KDK-oM%7FbD|tR$%A^xsCWZS=Q-t}GX;2yPX9UO_l3jca8@K}E>?wu9pfVrNfX z8a+LcKQz_y9sgbRbK`5;&buSACt4o%L7%bc+%jlAuS_dbcy|~Qb&ESitLNajr+$9h z{I(h454M8R+&DfzF#)WzM}T!lLIc2KOd}$#ac;M|Uqne8<(~nv`K%^qPiSItd}`0~ z+O3Ue`b;0(NVc}e>slJ^y~Y^C80ogrdFA-{@ilFEVMPr-+?<48Nt&T9uzUTDeWeeW zT#G2m?Oe-AE6fClkXMeMrICIkReyGvN}AI^*(H88dH6UWFe^cKWz`La?5LBv$wJ8G zgY*d*1rXL~ue*GYvJ1fsiglDDPz&*RNrlG<-axbv^MLFoIfUDJcY4TbLmOl=mw2(q z@o;*mO>}?Q&>R`6onRx!ejQB@TR|K#t9H>lXJeOmFwj0Zv*)S$^cdwtF-kb7WH1_B zVtMQ{lbK-c_6HRHG2ZN2}^Lx{+V(96E5 z7JMq&_39}^)Ozx&R@OvvKi=Bne%p86ofpV=JIH^SKjGQPF)I#_D!WYOhL?JY&!Qc_ zYezi@uc4|z6wZz}kPUmpt@J&APl3U`b?U_jCStGe`|ZJV-fv9|1{ZHDXv&L29(N+j z>>PZQ33*;ov}v{rh5cjEWNxdQ{@MsSYNTbN0|`x9?}V~bQ@K2u8loOiGAz8LGwOjo z^zIUDL!VJggvgQ(F}JQF1Wlv0FS{=`!!Bb{_+cyx-68R((rS*`29XF($TU9s4BH}G zaJ0YQbMpiJfpgxQ!|)UQ%9Jx(p_<0uM#AQIhbRrc699B|S_x{1GprS$chp75S**27 zjK->KZ=ZbD@Hxh{LoA{H3(b*ZPt||FeRdr4uUa3N^UO~szu*3__q_w`aWyyFZL6YK zVYvii1$LW0$g@*+_%hP(Vl((>9wCbMGJ-Ahe*V7t?TE?T@XHAvdcuDn-Zog18{-xW zMz}T|hN{2R8qp;8UtxYUG&MF0nTntgQ$EUX4aI14Bnu zALNokRn6I|DSHHsnG$j55-$Wc_@)m+ug~rMz~IaSv*VaacN)2dXI^u4o)@3f zRWoVz%GGg09nwcU-{>yzFO0WOZl8L*^+@Aju&jaeR6WfIYiV2~H_eR~)ombaS+C6q z7dJfK`h3@-F1F_jfz`w5=EHP4D#=v^XP4ZLf$HI6Gb{rvcsR8(uwy9A7Q|*X%?Q7{ z{n7-T$s^zuICQ@PGvn%IiCH!-P?z7&YoSZ<8l8+#vZaKx-ivjZXAo9pZNP!SP)1 zn3sxZ6$SW3U76uGQk7Lle-#A3V8`YY*BLoeWr1{(HyAk$Be$Axq7mfTijZ|AX2GhtbskSa)qgG>VWTaMFccL$WbzBi;ZC=xr7@Z&V%+Sf=N^6RrOZO zP#|)QV}BFrlF1&aG#U&VSW{SOG$d$%4!mL2fY;#W7_r_{KH+K!6(c;WYX9^&R$Fql zX{|H|Qna!1V_fd9W5)jyb!vcZ*WZd^t;f&>Q8KFjSb7;Z(d^EvBIIk#Gtev5(pFB@ zi8=%I2Cv*ixS;97hJ3*8$*Ng3RcGjuSg{vxGqHDP#m3k{ZyB|>2U z%HFb`&umew6VUNRC*4C@)e&!u@LArU1y*&p#)=z6SUd5y5eb7?rN-Dm_XKitx5wyt z5uHW5CSvP5U^Qgv%(B>59X+EZZus|X5bG~s2eV>htzq`)spGJ#$-`^B^tR%D6MEil zq%VJ4Li*!-W*N5-mu~8vU^mVsrl+1ini-aR$k;P8_Xh%GX_qL7eK7Rs_RN@GgA3O2 z{ehwT3*u^IzzS;hmR>8>6?X|_BdjJeb4i{NFdLv>kQpO6uB&K0eOTSOT{@x7wSMYrhBt`yV~ed!Us)L(^KG^J=geXG$Jq7HA}wxy4!&xBvfB)GNSXIaZC0IP zGseFXn=!7{W+rYfn=!7{W+rYfn=!7{W+rYfo1qJV-A$KRy8q5#_SsdzVzr>4muJa^ zZW;mTL!i&eDv0(OdBXVSmBKBDTtZY`P#$1N-va;Zc6!op59< z)D^9CzrCye(_^s*yT9ZAw)^a<0{```>pfMq&-i8>STs`N#%>v}X4B^m)9afltAdwH z!0w2y>%1L@GV7d*37wUeR(!RJxH6rvo>%)Z|9}0gm4T_DRl4+cvEr?#`3W_riQiHC zMl3gtYQj*RL$1Tiyce3+_+D$sY*plkWSlwfTsYnooM~S!oQf2j{2Y9?+VtW1Etfu+ z*GzpFCzn23sV+*!$)(R$sz;M?a_Lh}c?Wf}ht`uJirv5ZdqxZ5uWtELi|Re8ssOb_ zBu5RyYhWuq^c#`gf$h(V?V*w0Y1?!8=NcJ%*!S!(+q|+X6BwMpA8EbvjOJ60UG1HFFxyT zj0^0x;*5}88dR1nFLw&7Xk78Uq`HNjDPzfsgU+9cV|M>i*D!Xhl{PHZ|4YppCYI`} znR~6c$9r7p%Ap^M`~g292SiikPPGsypo+jriu{`0u@d)KG>E(+rC+M<0@8@ z>-NpAn;T#6xu>zXp}lLx*4|LQ+qJ(mG$Z`vq1z|F5#*YIXYO+HQGj~GI044hAx_NT zWC{8`IN7F7I`XMJoW$Ho5S?@nwWRf2C(cgrSw`%2Gd9!WGkfMqKR}uN3_f>B&vwxo?LQI)eg%wgX%xvOhq=z>gUWK9r#-=F6KU^i)K4>&yr=!#tqPjr9rYbe2oqeB4;c*6gb+l&^X7@ zks%^k#sPz)od(Vsz}Dtaz757wyq1Kx#9sogSr zbtU0YB$wR$COE7QqRw@lKQSFrPf+@N=hPgJSmyXE4jv{DUFGvDg)w&w**tO#JOA)bAY}|}pmB^|C@hb@s*1HmyTlY$Y?w_IwmKtd`Zhf_ zDhYIEO$x{kv*QoZtixx1Fk>cX%yNp;urWgoP)6a?PSy&8&s4E|ODq{{39XJ*9pW(R zkma%bJvfbQ$FM@7`nZW^0@$P`#U|+_F?Sc3s)~#ymwU?VsXA~7>^*=#cDIY%A95Er zs19w3`_$Hd^5XvP*vu2)oVqt*-StBafP9F$6X*9abHCegHh5{YKQMXhWMkym?6?&k zYh%X9i;qRW-M`6?3aG$#21}j#;O7if4>Vg2LeRC{DSkX~2#1=?}PQBtXPL5geku@{nTYap$ADC0#YY9fs z$A7LJGq0)y(I3x5iO>6Cww~wyo_})uOdob=aTd@aObX_Xd8*{*7-AYv9zxxJqz+L% z7KK${4OF(7WWc$3^r$$~bFWHyX6xZXqoRfX@Q)fZ`CKioCtt&E2G@A|BlW)R?Fm)OCmO z)La^7O4xgWh0I;}Ow_OgWu=DQ7hq!FCA}P~BT+{q26aA04tB9{nh2xj-;Uo=Gduo# zjbk5cgwda#l9D_frJ~DvCDX&~ke;5BYy;&n>^ef4W5*wwv`T}SH9fYH#z(j~RRDdk z4+SbW#2(#lrGg#T^i=8$izHWO*0c4ha!K}xT6vlKeB80C2#rN~hYx;H)nzhv1@Xo6 zS5YIv`Y*3jHy=9Fmp+!!QA9lANuZ!{j%a|stCQszy-znTn^?H*xudEUG_(4J#={;+ zqbjFlY1G+3ti^Gn+P-@ojbJ|*dn9AgiqL`@oH2av=;&R~ATG*_Da25%tiD3!!#MPPeiqPNJY@`{+K6{KsVRhK2 zEujOiVo}dvZOzXuS#bbq_n-NkA97d3Sak;JsVlP=fz_#!Wq>I2vvkOMVWZvvZ$1r^ z>>ak5s>C*1G&av%VOCUUWAXymJ_wJoT`}WBw>q0{_}*(&R){7%7i;&r+C@NpVO@=* z7Q_|KBz!s|d2K&LFzWf#ox}w(4lUDbhnPboa~A^LP}8F>@qEq0zN-Gzh!*aT@4#8| zG3t4$2vq%+Wc#UZJkOZ?)E>=KO&zs}X<)18#zGllxPtnm$&rhEGq35aWfY`4)eg(6 zlkBN-@#wWa$A!Iq2R(hE?%@1CdLFP5KR02H4)tU}GF_a7uv^t7R&~#FGi|PvRqjou zsn(y#G#6jw>>E04mjru4s3CDO1hqT+!_3vCq3YUi9yxqG z)-x7;?K3Z(lyR&X{9QkI06AAS{ru2Kw8|rmC-F@A%vlIksj6Gn8sn6o1*6%CcJ`V) zGY>!>{Nt3<0Lh{v%zQQrr}j-Mv{r3zpPX~|SQI%Lr`C(yvzp!?zzJbBQ&xL=Mw>im z`c6~!R#51V++fJ5IN`Z#_@I~8FO?)4GBf;P9XX~YDncXC8zQC0zBqxi#tUPswwH#M zQO6|pH1C_ii_LlA^i;;8?|WZ8Wu7fQfA@k|X~?-(xEFPS{@ggPJ;ocKX(?+!^?Xlb zk$YtSk^Q{Vu=~eKr!@53(NB+q#)8<=J>P9@Yf-eO51wfJ+CI*kU1Vj4`0DWk^h_m3 zvOLi?h366Nl#zpR4hvCdia2x|71zP>>Z3iQ%3lkONLxlZ&|y5ix^P>5jq)#IaJg~k@yTaes>s_fyXV*7 z>Mh3A)TbC;J+(XLpy#u5J@<$wxUup@L?SobOmT_P5up*9`V=Kj=;6=Om@{d%(z`-&S^j~Fk=LF%^-(ED&ujM|?J%)IZwzbC+*7S#Kwu9X&; zqwxetL*sK@SQ%G@s#@NyeW$&$wxO|TFV1KoL#nR7l1uFz;};|FTtB+$c;*A=EjU7; zA!cKYQ#^x?_&|+_@0g+0OwDHn_{$va8{3(A;ymgv#4p9K#IMEc;=H&Zo)CpX z${BK|{DFK;{!+d!FUj|$)MjXlwGmOINxe`6og-qkRzu%=owfA3)9IzxKIcKYe!%&{ zjZ7PzpF(j!`m}rGy>hKqD16!seWpH3e=z}p9hcvT&xouQT-<3R;*pGZ=m<}+HU7d2^#B( z#)Gm@+@SB)hMebaEEJtZJBoUWb{6#(br*FNv6dSMs!;q%{zfj+TeX08UcQ{buQKiw z%Ej`y{ImSHUZ^kDZ_=0OHxM6P>mXZ&ol$y?I4AWVC2;U0-tWZk#UI4mMD-@QM3%@G zWS*9h&7L$BG}W9{WJlKeaSBn$JO!E95`Q@5%p^E3}hxM7T6RVYWKE z2&c_?tA3k)yYA9|mcYeR0RKw3pVZ6swfZiC>2daIuO#le>F)o~-F0%ktdbk$CfTo@ zBAO2EzvQ#>Z*nEYMWwz$->7fWf1bec5Y9z0E#47-7Jm|d6{iWmT6$zHd81B?XrGf` zkUx}f$=}PkoTn9NA19t4)0WWd%~}b)I<-=IU8*gk*D|eI_vp2{kK%TZ^VI~08shME z@xJ(m_?V+mJR!`mYkW*b{a*7CAn) zs89rCP=@7`@+vrio^ zUb$25k^{v1w4Bghk}u02%b&_uwEQIC+OfLXrVZ)RcgDO zgCyfVeN;c6xYuCZJE-5IN94Ww0Lju%5clch`h^6uUF_%f*I_v^n&+}TEV z-V<^02wfkN59qg$1k1I5ksf+?Yi}f=K1ERbN#Z^7s6HZ(>Bq^#UzZPRPs=m%ZCOaL zH)?C>b=28S+`F7_8h9$#qF%;qf%6cYW4Wf~9YpIdePI6xnOOab3uj{d;>8Ziy_mbr zysLV0{5uYc7v_A-Gb*2hFDfErZtQ#Vekk{fxO2;A!LgE5zn#Lr^up^$aKW86!Z&|i zB>DGb)UWhlRx31QgvO{Kus)3tXUrJ5t4=Fp7C~(W-OvZ*{c-+f64o-+W)4~8m(9?G{^jAr%oVCQ!N1vb#=1FV+ z5Hloju;1H5oFO+Pu&(N%Gc1RlY1Cct04gr5VDW1fsFXs671Xcf*!{(xQZnO-=+%Vn z7b7HB8@*N##}SfpDP6^?$w4(6W?k^&iUa#AkRH-1DRCcjHP6>-w>w!k#=%|ekU;8? z;WKyVB1EA=Mgoqx9neplY%(-8d>f9S)&uFwRUA$AenIFo=_ xfxUK)(0IZfBaiEC make` i386 Win32 GCC 빌드. - -`> make -fMakefiledb` i386 GCC 디버그 빌드. - -`> make -fMakefileX64` x86_64 GCC 빌드. - -`> make -fMakefileX64db` x86_64 GCC 디버그 빌드. - -`> make -fMakefileClang` LLVM Clang을 이용한 i386 빌드. - -`> make -fMakefileTCC` tcc(Bellard's thiny c compiler)[https://bellard.org/tcc/]를 이용한 i386 빌드 - -`mk.bat` 와 `mk64.bat`파일을 사용하실 수도 있습니다. Clang의 경우 저는 LLVM5.0.1과 Mingw-w64의 header 및 lib를 사용합니다. 커맨드라인을 변경해서 `-IPath\to\mingw\include` and `-LPath\to\mingw\lib`를 추가하는 것을 잊지마세요. +[English](./README.md) | [中文](./README_zh-CN.md) | 한국어 +# AltSnap +Stefan Sundin의 AltDrag에서 포크되었습니다. + +위키를 확인하세요: https://github.com/RamonUnch/AltSnap/wiki + +기존 문서: https://stefansundin.github.io/altdrag/doc/ + +포크된 코드라서 문서가 100% 정확하지는 않습니다. +좀 더 자세한 사항이 궁금하시면 변경사항(changelog)을 확인바랍니다. + +AltSnap은 Alt 키를 누르고 윈도 창의 아무곳이나 클릭하여 창을 이동하고 크기를 조절할 수 있도록 하는 유틸리티입니다. +리눅스에서는 이러한 기능과 동작이 일반적으로 적용되어있고 실제로 윈도우에서도 적용하기 어렵지 않습니다. + +이 포크는 풍부한 기능을 유지하면서도 최소한의 버그를 최소화하여, 최신 버전으로 유지하려고 노력하는데 목적이 있습니다. + +이 포크는 주로 Windows XP와 Windows 10에서 테스트 되었습니다만 Windows NT 4에서 Windows 11까지의 모든 Windows에서 사용이 가능합니다. + +주요 차이점: +코드를 최대한 단순화하기 위해 창을 후크(Hook)하는 방식을 제거하였습니다. 이러한 방식은 드래그를 하는동안 어떠한 창이든 스냅할 수 있도록 하는 장점이 있는 반면에, 모든 응용 프로그램에 dll을 삽입(DLL Injection)해야 했었으므로 명백히 보안상의 위험이 있었습니다. 단순히 이 기능을 위해 상당한 양의 코드가 추가되었으며 동시에 32비트 및 64비트 버전의 프로그램을 모두 실행해야 했기 때문에 코드의 복잡도를 크게 증가시켰습니다. + +이 버전은 다른 어플리케이션에 아무것도 삽입(Injection)하지 않습니다. 따라서 32비트 운영체제를 사용하든 64비트 운영체제를 사용하든 걱정할 필요가 없습니다. + +이외에 제거된 기능은 "타이핑시 포커스"로, 테스트를 시작하기도 전에 이미 사용할 수 없는 상태였으므로 제거 했습니다. + +이러한 변화로 소스코드가 훨신 간결해졌고, 약간의 추가적인 옵션을 넣었습니다. 예를 들면 드래그 하는 동안 투명 윈도우를 투명하게 한다던가, 최대화 액션, 프로세스 일시 중지, AltSnap을 조금 더 세밀하게 제어할 수 있는 블랙리스트 등의 추가 옵션이 추가되었습니다. + +마지막으로 기존의 AltDrag에서 발생했던 이상 동작과 버그를 잔뜩 수정했습니다. + +새로운 기능 + +기본적으로 옵션 다이얼로그 창에서 새로운 기능을 만나보실 수 있지만, 일부 기능은 AltSnap.ini 파일을 직접 수정해야만 합니다. (트레이 아이콘을 가운데 클릭해 보세요) + +## 데스크탑 피크 ([PeekDesktop](https://github.com/shanselman/PeekDesktop) 참고) +바탕 화면의 빈 공간(또는 빈 작업 표시줄 영역)을 클릭하여 macOS Sonoma처럼 바탕 화면을 표시합니다. 한 번 클릭하면 보이는 모든 창이 최소화되고, 다시 클릭하거나 다른 응용 프로그램으로 전환하면 복원됩니다. 설정 대화 상자의 「일반」탭에서 이 기능을 활성화할 수 있습니다. + +# VirusTotal 오탐 +최신 빌드에서는 일반적으로 다른 공급업체의 SecureAge APEX와 마찬가지로 종종 경고가 표시되는 것을 볼 수 있습니다. 이러한 경고는 오탐이며 프로그램 개선에 시간을 낭비하는 것이기 때문에 매 릴리스마다 APEX 팀에 연락하는 것을 중단했습니다. 빌드 플래그를 변경하고 이전 버전의 NSIS 인스톨러 시스템으로 전환하는 것만으로 이미 오탐의 수를 많이 줄였습니다. 이것은 일부 최신 바이러스 백신 솔루션의 부족함을 나타냅니다. Chocolatey에서는 VirusTotal에서 5개정도의 양성 탐지는 전혀 의심운것이 아니라고 간주하고 있습니다. + +# 빌드 +AltSnap은 gcc로 빌드할 수 있습니다. 제 경우엔 i686용을 빌드할때 Mingw-w64를 사용합니다. + +최신 버전을 설치하신 후 (저는 MinGW64 기반의 TDM-gcc 10.3를 사용중입니다): + +`> make` i386 Win32 GCC 빌드. + +`> make -fMakefiledb` i386 GCC 디버그 빌드. + +`> make -fMakefileX64` x86_64 GCC 빌드. + +`> make -fMakefileX64db` x86_64 GCC 디버그 빌드. + +`> make -fMakefileClang` LLVM Clang을 이용한 i386 빌드. + +`> make -fMakefileTCC` tcc(Bellard's thiny c compiler)[https://bellard.org/tcc/]를 이용한 i386 빌드 + +`mk.bat` 와 `mk64.bat`파일을 사용하실 수도 있습니다. Clang의 경우 저는 LLVM5.0.1과 Mingw-w64의 header 및 lib를 사용합니다. 커맨드라인을 변경해서 `-IPath\to\mingw\include` and `-LPath\to\mingw\lib`를 추가하는 것을 잊지마세요. diff --git a/README_zh-CN.md b/README_zh-CN.md index b202c833..206fe27d 100644 --- a/README_zh-CN.md +++ b/README_zh-CN.md @@ -30,6 +30,9 @@ 在选项对话框中可以看到许多新功能,但其中一些功能只能通过编辑AltSnap.ini文件才能使用(用鼠标中键单击该文件的托盘图标)。 +## 桌面快览(参考 [PeekDesktop](https://github.com/shanselman/PeekDesktop) 实现) +点击桌面壁纸的空白区域(或任务栏空白区域)即可显示你的桌面——就像 macOS Sonoma 一样。单击一下,所有可见窗口都会最小化;再次点击或切换到任意应用程序即可恢复。你可以在设置对话框的「通用」选项卡中启用此功能。 + # 构建 AltSnap使用gcc构建,对于i686来说,我使用Mingw-w64。 只需要安装最新版本(我使用基于MinGW64的TDM-gcc 10.3)并使用: diff --git a/config.c b/config.c index 6c67babe..b4d02aae 100644 --- a/config.c +++ b/config.c @@ -519,6 +519,12 @@ static INT_PTR CALLBACK GeneralPageDialogProc(HWND hwnd, UINT msg, WPARAM wParam { IDC_RESIZEALL, T_BOL, 0, TEXT("Advanced"), "ResizeAll", V 1 }, { IDC_USEZONES, T_BMK, 0, TEXT("Zones"), "UseZones", V 0 }, { IDC_PIERCINGCLICK, T_BOL, 0, TEXT("Advanced"), "PiercingClick", V 0 }, + // [Peek] + { IDC_PEEK_ENABLED, T_BOL, 0, TEXT("Peek"), "PeekDesktop", V 0 }, + { IDC_PEEK_DBLCLICK, T_BMK, 0, TEXT("Peek"), "PeekFlags", V 0 }, + { IDC_PEEK_TASKBAR, T_BMK, 1, TEXT("Peek"), "PeekFlags", V 0 }, + { IDC_PEEK_GAMINGSUPPRESS,T_BMK, 2, TEXT("Peek"), "PeekFlags", V 0 }, + { IDC_PEEK_RESTOREONAPP, T_BMK, 3, TEXT("Peek"), "PeekFlags", V 0 }, }; #undef V @@ -544,7 +550,15 @@ static INT_PTR CALLBACK GeneralPageDialogProc(HWND hwnd, UINT msg, WPARAM wParam { IDC_AUTOSTART_BOX, L10NIDX(GeneralAutostartBox) }, { IDC_AUTOSTART, L10NIDX(GeneralAutostart) }, { IDC_AUTOSTART_HIDE, L10NIDX(GeneralAutostartHide) }, - { IDC_AUTOSTART_ELEVATE,L10NIDX(GeneralAutostartElevate) } + { IDC_AUTOSTART_ELEVATE,L10NIDX(GeneralAutostartElevate) }, + + { IDC_PEEK_BOX, L10NIDX(PeekBox ) }, + { IDC_PEEK_ENABLED, L10NIDX(PeekEnabled ) }, + { IDC_PEEK_DBLCLICK, L10NIDX(PeekDblClick ) }, + { IDC_PEEK_TASKBAR, L10NIDX(PeekTaskbar ) }, + { IDC_PEEK_GAMINGSUPPRESS, L10NIDX(PeekGamingSuppress ) }, + { IDC_PEEK_RESTOREONAPP, L10NIDX(PeekRestoreOnApp ) }, + { IDC_PEEK_MODE_H, L10NIDX(PeekModeH ) }, }; int updatestrings = 0; @@ -581,6 +595,15 @@ static INT_PTR CALLBACK GeneralPageDialogProc(HWND hwnd, UINT msg, WPARAM wParam EnableDlgItem(hwnd, IDC_SMARTERAERO, IsChecked(IDC_SMARTAERO)); } + if (id == IDC_PEEK_ENABLED) { + EnableDlgItem(hwnd, IDC_PEEK_DBLCLICK, val); + EnableDlgItem(hwnd, IDC_PEEK_TASKBAR, val); + EnableDlgItem(hwnd, IDC_PEEK_GAMINGSUPPRESS, val); + EnableDlgItem(hwnd, IDC_PEEK_RESTOREONAPP, val); + EnableDlgItem(hwnd, IDC_PEEK_MODE_H, val); + EnableDlgItem(hwnd, IDC_PEEK_MODE, val); + } + if (id != IDC_ELEVATE && (event == 0 || event == CBN_SELCHANGE)) { PropSheet_Changed(g_cfgwnd, hwnd); have_to_apply = 1; @@ -614,6 +637,15 @@ static INT_PTR CALLBACK GeneralPageDialogProc(HWND hwnd, UINT msg, WPARAM wParam CheckDlgButton(hwnd, IDC_AUTOSTART_ELEVATE, eelevated ? BST_CHECKED : BST_UNCHECKED); EnableDlgItem(hwnd, IDC_AUTOSTART_HIDE, autostart); EnableDlgItem(hwnd, IDC_AUTOSTART_ELEVATE, autostart && VISTA); + + // Peek: enable/disable sub-controls based on PeekEnabled + EnableDlgItem(hwnd, IDC_PEEK_DBLCLICK, IsChecked(IDC_PEEK_ENABLED)); + EnableDlgItem(hwnd, IDC_PEEK_TASKBAR, IsChecked(IDC_PEEK_ENABLED)); + EnableDlgItem(hwnd, IDC_PEEK_GAMINGSUPPRESS, IsChecked(IDC_PEEK_ENABLED)); + EnableDlgItem(hwnd, IDC_PEEK_RESTOREONAPP, IsChecked(IDC_PEEK_ENABLED)); + EnableDlgItem(hwnd, IDC_PEEK_MODE_H, IsChecked(IDC_PEEK_ENABLED)); + EnableDlgItem(hwnd, IDC_PEEK_MODE, IsChecked(IDC_PEEK_ENABLED)); + if(WIN10) EnableDlgItem(hwnd, IDC_INACTIVESCROLL, IsChecked(IDC_INACTIVESCROLL)); } else if (pnmh->code == PSN_APPLY && have_to_apply) { // all bool options (checkboxes). @@ -626,6 +658,9 @@ static INT_PTR CALLBACK GeneralPageDialogProc(HWND hwnd, UINT msg, WPARAM wParam val = IsChecked(IDC_RZCENTER_NORM)? 1: IsChecked(IDC_RZCENTER_MOVE)? 2:IsChecked(IDC_RZCENTER_CLOSE)? 3: 0; WritePrivateProfileString(TEXT("General"), TEXT("ResizeCenter"), Uint2lStr(txt, val), inipath); + val = CB_GetCurSelId(IDC_PEEK_MODE); + WritePrivateProfileString(TEXT("Peek"), TEXT("PeekMode"), Uint2lStr(txt, val), inipath); + // Load selected Language int i = CB_GetCurSelId(IDC_LANGUAGE); if (langinfo.it && (size_t)i < langinfo.num && lstrcmpi(l10n->Code, langinfo.it[i].code)) { @@ -675,6 +710,14 @@ static INT_PTR CALLBACK GeneralPageDialogProc(HWND hwnd, UINT msg, WPARAM wParam // Language control = GetDlgItem(hwnd, IDC_LANGUAGE); CB_DeleteString(control, langinfo.num); + + // PeekMode + control = GetDlgItem(hwnd, IDC_PEEK_MODE); + CB_ResetContent(control); + CB_AddString(control, l10n->PeekMode0); + CB_AddString(control, l10n->PeekMode1); + GetPrivateProfileString(TEXT("Peek"), TEXT("PeekMode"), TEXT("0"), txt, ARR_SZ(txt), inipath); + CB_SetCurSel(control, strtoi(txt)); } return FALSE; } @@ -1767,6 +1810,7 @@ static INT_PTR CALLBACK AboutPageDialogProc(HWND hwnd, UINT msg, WPARAM wParam, TCHAR txt[1024]; txt[0] = TEXT('\0'); if (langinfo.it) { for (size_t i = 0; i < langinfo.num; i++) { + if (!langinfo.it[i].lang_english || !langinfo.it[i].author) continue; lstrcat_s(txt, ARR_SZ(txt), langinfo.it[i].lang_english); lstrcat_s(txt, ARR_SZ(txt), TEXT(": ")); lstrcat_s(txt, ARR_SZ(txt), langinfo.it[i].author); diff --git a/hooks.c b/hooks.c index f83f46fa..6016e11a 100644 --- a/hooks.c +++ b/hooks.c @@ -269,6 +269,10 @@ static struct config { #endif // [KBShortcuts] UCHAR UsePtWindow; + // [Peek] + UCHAR PeekDesktop; // 0=off, 1=enabled + UCHAR PeekFlags; // bit0=DblClick, bit1=Taskbar, bit2=GamingSuppress, bit3=RestoreOnApp + UCHAR PeekMode; // 0=minimize, 1=flyaway // -- -- -- -- -- -- -- UCHAR keepMousehook; UCHAR EndSendKey; // Used to be VK_CONTROL @@ -463,6 +467,7 @@ static xpure int IsPtDragOut(const POINT *pt, const POINT *ptt) // Specific includes #include "snap.c" #include "zones.c" +#include "peek.c" ///////////////////////////////////////////////////////////////////////////// // Wether a window is present or not in a blacklist @@ -4859,6 +4864,10 @@ static void SClickActions(HWND hwnd, action_t action) else SnapToCorner(hwnd, rxy_map[min(action.fl-1, 3)], SNTO_MOVETO|SNTO_NEXTBD); break; case AC_MENU: ActionMenu(hwnd); break; + case AC_PEEKDESKTOP: + if (peek.is_peeking) PeekRestoreAll(); + else PeekCaptureAndHide(); + break; case AC_NSTACKED: ActionAltTab(state.prevpt, +120, state.shift, EnumStackedWindowsProc); break; case AC_NSTACKED2: ActionAltTab(state.prevpt, +120, !state.shift, EnumStackedWindowsProc); break; case AC_PSTACKED: ActionAltTab(state.prevpt, -120, state.shift, EnumStackedWindowsProc); break; @@ -5389,6 +5398,10 @@ LRESULT CALLBACK LowLevelMouseProc(int nCode, WPARAM wParam, LPARAM lParam) if (nCode != HC_ACTION || state.ignoreclick || ScrollLockState()) return CallNextHookEx(NULL, nCode, wParam, lParam); + // Peek Desktop: detect clicks on desktop wallpaper (no Alt key needed) + if (PeekHandleMouseEvent(wParam, msg)) + return 1; + // Mouse move, only if it is not exactly the same point than before if (wParam == WM_MOUSEMOVE) { if (SamePt(pt, state.prevpt)) return CallNextHookEx(NULL, nCode, wParam, lParam); @@ -6110,7 +6123,7 @@ LRESULT CALLBACK HotKeysWinProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPara if (action.ac > AC_RESIZE) { // Exclude resize action in case... POINT pt; GetMsgPT(&pt); - static const enum action noinitactions[] = { AC_KILL, AC_PAUSE, AC_RESUME, AC_ASONOFF, AC_NONE }; + static const enum action noinitactions[] = { AC_KILL, AC_PAUSE, AC_RESUME, AC_ASONOFF, AC_PEEKDESKTOP, AC_NONE }; if (IsActionInList((enum action)action.ac, noinitactions)) { // Some actions pass directly through the default blacklists... HWND targethwnd = ptwindow? WindowFromPoint(pt): GetForegroundWindow(); @@ -6224,6 +6237,7 @@ __declspec(dllexport) void WINAPI Unload() ListFree(&snwnds); ListFree(&minhwnds); freezones(); + PeekCleanup(); // Wait for worker thread to have a clean closing... WaitForSingleObject(g_WorkerThreadHANDLE, 5000); @@ -6714,13 +6728,25 @@ __declspec(dllexport) WNDPROC WINAPI Load(HWND mainhwnd, const TCHAR *inipath) SnapLayoutPreviewCreateDestroy(inisection /*CREATE*/); } + // [Peek] + { + static const struct OptionListItem Peek_uchars[] = { + { "PeekDesktop", 0 }, + { "PeekFlags", 14 }, // bit1=Taskbar+bit2=GamingSuppress+bit3=RestoreOnApp = 0b1110 + { "PeekMode", 0 }, + }; + GetPrivateProfileSection(TEXT("Peek"), inisection, inisectionlen, inipath); + readalluchars(&conf.PeekDesktop, inisection, Peek_uchars, ARR_SZ(Peek_uchars)); + } + if (inisection != stk_inisection) free(inisection); conf.keepMousehook = ((conf.TTBActions&1) // titlebar action w/o Alt || conf.InactiveScroll // Inactive scrolling || conf.Hotclick[0] // Hotclick - || conf.LongClickMove); // Move with long click + || conf.LongClickMove // Move with long click + || conf.PeekDesktop); // Peek Desktop // Capture main hwnd from caller. This is also the cursor wnd g_mainhwnd = mainhwnd; diff --git a/hooks.h b/hooks.h index b563414b..1f9f693d 100644 --- a/hooks.h +++ b/hooks.h @@ -152,7 +152,8 @@ ACVALUE(AC_ZOOM, Zoom, MR) \ ACVALUE(AC_ZOOM2, Zoom2, MR) \ ACVALUE(AC_NPSTACKED, NPStacked, ZO) \ - ACVALUE(AC_NPSTACKED2, NPStacked2, ZO) + ACVALUE(AC_NPSTACKED2, NPStacked2, ZO) \ + ACVALUE(AC_PEEKDESKTOP, PeekDesktop, 00) #define ACVALUE(a, b, c) a, enum action { ACTION_MAP AC_MAXVALUE, AC_ORICLICK }; diff --git a/languages.h b/languages.h index be7a7aa2..9c781d41 100644 --- a/languages.h +++ b/languages.h @@ -220,6 +220,16 @@ struct langinfoitem { LNGVALUE(AdvancedFancyZone, TEXT("Restore Fancy&Zones snapped windows"), NULL) \ LNGVALUE(AdvancedNoRestore, TEXT("Never restore AltSna&pped windows"), NULL) \ LNGVALUE(AdvancedTopmostIndicator, TEXT("Show an i&ndicator on always on top windows"), NULL) \ + /* Peek Settings */ \ + LNGVALUE(PeekBox, TEXT("Desktop Peek"), NULL) \ + LNGVALUE(PeekEnabled, TEXT("Enable Des&ktop Peek"), NULL) \ + LNGVALUE(PeekDblClick, TEXT("Require &double-click"), NULL) \ + LNGVALUE(PeekTaskbar, TEXT("Peek on empty &taskbar"), NULL) \ + LNGVALUE(PeekGamingSuppress, TEXT("Pause while &gaming"), NULL) \ + LNGVALUE(PeekRestoreOnApp, TEXT("&Restore on app switch"), NULL) \ + LNGVALUE(PeekModeH, TEXT("Peek &mode:"), NULL) \ + LNGVALUE(PeekMode0, TEXT("Minimize"), NULL) \ + LNGVALUE(PeekMode1, TEXT("FlyAway"), NULL) \ /* About Tab */ \ LNGVALUE(AboutBox, TEXT("About ") APP_NAME , NULL) \ LNGVALUE(AboutVersion, TEXT("Version ") TEXT( APP_VERSION ), NULL) \ diff --git a/peek.c b/peek.c new file mode 100644 index 00000000..c23937e4 --- /dev/null +++ b/peek.c @@ -0,0 +1,561 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * PeekDesktop integration for AltSnap * + * Click empty desktop wallpaper to minimize all windows, * + * click again or switch app to restore. * + * Ported from PeekDesktop by Scott Hanselman (MIT License). * + * General Public License Version 3 or later (Free Software Foundation) * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +/* This file is #included by hooks.c */ + +/* Forward declarations */ +void PeekRestoreAll(void); +void PeekCaptureAndHide(void); +void PeekCleanup(void); + +/* Peek flags bitmask */ +#define PEEK_F_DBLCLICK 1 /* bit0: require double-click */ +#define PEEK_F_TASKBAR 2 /* bit1: peek on empty taskbar */ +#define PEEK_F_GAMINGSUPPRESS 4 /* bit2: pause while gaming (default on) */ +#define PEEK_F_RESTOREONAPP 8 /* bit3: restore on app switch (default on) */ + +/* Peek modes */ +#define PEEK_MODE_MINIMIZE 0 +#define PEEK_MODE_FLYAWAY 1 + +#define PEEK_GRACE_MS 200 +#define PEEK_FLYAWAY_STEPS 12 +#define PEEK_FLYAWAY_MS 160 + +/* LVHITTESTINFO for cross-process desktop icon detection */ +typedef struct { + POINT pt; + UINT flags; + int iItem; + int iSubItem; + int iGroup; +} PEEK_LVHITTESTINFO; +#define PEEK_LVM_HITTEST 0x1009 + +/* Saved window entry */ +struct peek_wnd { HWND hwnd; WINDOWPLACEMENT wp; RECT bounds; }; +typedef struct { struct peek_wnd *it; size_t count; size_t cap; } PeekWndList; + +/* Peek state */ +static struct { + int is_peeking; + int is_transitioning; + DWORD peek_time; + DWORD ignore_restore_until; + HWINEVENTHOOK focus_hook; + /* Pending click for double-click and drag detection */ + POINT down_pt; + DWORD down_time; + int has_pending; + int was_first_click; /* for double-click: is this the 2nd click? */ + PeekWndList wnds; +} peek; + +///////////////////////////////////////////////////////////////////////////// +// Desktop detection helpers + +static BOOL IsDesktopRelatedWindow(HWND hwnd) +{ + TCHAR cn[64]; + HWND cur = hwnd; + while (cur) { + GetClassName(cur, cn, ARR_SZ(cn)); + if (lstrcmp(cn, TEXT("Progman")) == 0) return TRUE; + if (lstrcmp(cn, TEXT("WorkerW")) == 0) { + if (FindWindowEx(cur, NULL, TEXT("SHELLDLL_DefView"), NULL)) + return TRUE; + } + cur = GetParent(cur); + } + return FALSE; +} + +static HWND FindDesktopListView(void) +{ + HWND progman = FindWindow(TEXT("Progman"), NULL); + if (!progman) return NULL; + HWND sv = FindWindowEx(progman, NULL, TEXT("SHELLDLL_DefView"), NULL); + if (!sv) { + HWND ww = NULL; + while ((ww = FindWindowEx(NULL, ww, TEXT("WorkerW"), NULL))) { + if (FindWindowEx(ww, NULL, TEXT("SHELLDLL_DefView"), NULL)) { + sv = FindWindowEx(ww, NULL, TEXT("SHELLDLL_DefView"), NULL); + break; + } + } + } + if (!sv) return NULL; + return FindWindowEx(sv, NULL, TEXT("SysListView32"), NULL); +} + +static BOOL IsDesktopIcon(POINT pt) +{ + HWND lv = FindDesktopListView(); + if (!lv) return FALSE; + DWORD pid; + GetWindowThreadProcessId(lv, &pid); + HANDLE proc = OpenProcess(PROCESS_VM_OPERATION|PROCESS_VM_WRITE|PROCESS_VM_READ, FALSE, pid); + if (!proc) return FALSE; + PEEK_LVHITTESTINFO *remote = (PEEK_LVHITTESTINFO *)VirtualAllocEx( + proc, NULL, sizeof(PEEK_LVHITTESTINFO), MEM_COMMIT|MEM_RESERVE, PAGE_READWRITE); + if (!remote) { CloseHandle(proc); return FALSE; } + PEEK_LVHITTESTINFO local; + mem00(&local, sizeof(local)); + local.pt = pt; + WriteProcessMemory(proc, remote, &local, sizeof(local), NULL); + LRESULT hit; + SendMessageTimeout(lv, PEEK_LVM_HITTEST, 0, (LPARAM)remote, + SMTO_ABORTIFHUNG, 500, (PDWORD_PTR)&hit); + ReadProcessMemory(proc, remote, &local, sizeof(local), NULL); + VirtualFreeEx(proc, remote, 0, MEM_RELEASE); + CloseHandle(proc); + return (local.iItem >= 0); +} + +static BOOL IsDesktopBackground(POINT pt) +{ + HWND hwnd = WindowFromPoint(pt); + if (!hwnd) return FALSE; + return IsDesktopRelatedWindow(hwnd); +} + +static HWND RealChildWindowFromPointL(HWND parent, POINT pt) +{ + typedef HWND (WINAPI *funk_t)(HWND, POINT); + static funk_t pRCFP; + static int tried; + if (!tried) { tried = 1; pRCFP = (funk_t)GetProcAddress(GetModuleHandleA("user32"), "RealChildWindowFromPoint"); } + if (pRCFP) return pRCFP(parent, pt); + return NULL; +} + +static BOOL IsTaskbarBlank(POINT pt) +{ + /* Strategy 1: check if click hits a taskbar window */ + HWND hwnd = WindowFromPoint(pt); + if (hwnd) { + TCHAR cn[64]; + HWND cur = hwnd; + while (cur) { + GetClassName(cur, cn, ARR_SZ(cn)); + if (lstrcmp(cn, TEXT("Shell_TrayWnd")) == 0 + || lstrcmp(cn, TEXT("Shell_SecondaryTrayWnd")) == 0) + break; + cur = GetParent(cur); + } + if (cur) { + POINT cp = pt; + ScreenToClient(cur, &cp); + HWND child = ChildWindowFromPointEx(cur, cp, + CWP_SKIPINVISIBLE|CWP_SKIPDISABLED|CWP_SKIPTRANSPARENT); + if (!child || child == cur) + child = RealChildWindowFromPointL(cur, cp); + if (!child || child == cur) + return TRUE; + /* Skip transparent composition overlay windows */ + GetClassName(child, cn, ARR_SZ(cn)); + if (lstrcmp(cn, TEXT("Windows.UI.Composition.DesktopWindowContentBridge")) == 0) + return TRUE; + } + } + + /* Strategy 2: fallback - check if point is in monitor but outside work area (taskbar zone) */ + HMONITOR mon = MonitorFromPoint(pt, MONITOR_DEFAULTTONEAREST); + if (mon) { + MONITORINFO mi; mi.cbSize = sizeof(mi); + if (GetMonitorInfoW(mon, &mi)) { + if (pt.x >= mi.rcMonitor.left && pt.x < mi.rcMonitor.right + && pt.y >= mi.rcMonitor.top && pt.y < mi.rcMonitor.bottom + && (pt.x < mi.rcWork.left || pt.x >= mi.rcWork.right + || pt.y < mi.rcWork.top || pt.y >= mi.rcWork.bottom)) + return TRUE; + } + } + return FALSE; +} + +/* Windows that should not trigger restore-on-focus-change */ +static BOOL IsPeekDesktopWindow(HWND hwnd) +{ + if (!hwnd) return TRUE; + TCHAR cn[64]; + GetClassName(hwnd, cn, ARR_SZ(cn)); + if (lstrcmp(cn, TEXT("Progman")) == 0) return TRUE; + if (lstrcmp(cn, TEXT("WorkerW")) == 0) return TRUE; + if (lstrcmp(cn, TEXT("Shell_TrayWnd")) == 0) return TRUE; + if (lstrcmp(cn, TEXT("Shell_SecondaryTrayWnd")) == 0) return TRUE; + if (lstrcmp(cn, TEXT("#32768")) == 0) return TRUE; /* menu */ + if (lstrcmp(cn, TEXT("tooltips_class32")) == 0) return TRUE; + if (lstrcmp(cn, TEXT("NotifyIconOverflowWindow")) == 0) return TRUE; + if (lstrcmp(cn, TEXT("DV2ControlHost")) == 0) return TRUE; + return FALSE; +} + +///////////////////////////////////////////////////////////////////////////// +// Gaming suppression + +static BOOL IsFullscreenApp(void) +{ + HWND fg = GetForegroundWindow(); + if (!fg) return FALSE; + /* Exclude system and desktop windows */ + TCHAR cn[64]; + GetClassName(fg, cn, ARR_SZ(cn)); + if (lstrcmp(cn, TEXT("Progman")) == 0) return FALSE; + if (lstrcmp(cn, TEXT("WorkerW")) == 0) return FALSE; + if (lstrcmp(cn, TEXT("Shell_TrayWnd")) == 0) return FALSE; + /* Check if foreground window covers the entire monitor */ + RECT rc; + if (!GetWindowRect(fg, &rc)) return FALSE; + MONITORINFO mi; mi.cbSize = sizeof(mi); + HMONITOR mon = MonitorFromRect(&rc, MONITOR_DEFAULTTONEAREST); + if (!GetMonitorInfoW(mon, &mi)) return FALSE; + return (rc.left <= mi.rcMonitor.left + 2 + && rc.top <= mi.rcMonitor.top + 2 + && rc.right >= mi.rcMonitor.right - 2 + && rc.bottom >= mi.rcMonitor.bottom - 2); +} + +///////////////////////////////////////////////////////////////////////////// +// Window enumeration + +static BOOL CALLBACK EnumPeekWindows(HWND hwnd, LPARAM lParam) +{ + if (!IsVisible(hwnd)) return TRUE; + if (IsIconic(hwnd)) return TRUE; + if (GetWindow(hwnd, GW_OWNER)) return TRUE; + + /* Skip system windows */ + TCHAR cn[64]; + GetClassName(hwnd, cn, ARR_SZ(cn)); + if (lstrcmp(cn, TEXT("Progman")) == 0) return TRUE; + if (lstrcmp(cn, TEXT("WorkerW")) == 0) return TRUE; + if (lstrcmp(cn, TEXT("Shell_TrayWnd")) == 0) return TRUE; + if (lstrcmp(cn, TEXT("Shell_SecondaryTrayWnd")) == 0) return TRUE; + if (lstrcmp(cn, TEXT("NotifyIconOverflowWindow")) == 0) return TRUE; + if (lstrcmp(cn, TEXT("DV2ControlHost")) == 0) return TRUE; + if (lstrcmp(cn, TEXT("Windows.UI.Core.CoreWindow")) == 0) return TRUE; + if (lstrcmp(cn, TEXT("ApplicationFrameWindow")) == 0) return TRUE; + + /* Skip tool windows and no-activate windows */ + LONG_PTR ex = GetWindowLongPtr(hwnd, GWL_EXSTYLE); + if (ex & WS_EX_NOACTIVATE) return TRUE; + if ((ex & WS_EX_TOOLWINDOW) && !(ex & WS_EX_APPWINDOW)) return TRUE; + + struct peek_wnd pw; + pw.wp.length = sizeof(WINDOWPLACEMENT); + if (!GetWindowPlacement(hwnd, &pw.wp)) return TRUE; + GetWindowRect(hwnd, &pw.bounds); + pw.hwnd = hwnd; + ListAppend(&peek.wnds, &pw, sizeof(pw)); + return TRUE; +} + +///////////////////////////////////////////////////////////////////////////// +// FlyAway animation + +static void EaseOutRect(RECT *out, const RECT *start, const RECT *end, float t) +{ + /* EaseOutCubic: 1 - (1-t)^3 */ + float e = 1.0f - (1.0f - t) * (1.0f - t) * (1.0f - t); + out->left = (long)(start->left + (end->left - start->left) * e); + out->top = (long)(start->top + (end->top - start->top) * e); + out->right = (long)(start->right + (end->right - start->right) * e); + out->bottom = (long)(start->bottom + (end->bottom - start->bottom) * e); +} + +static void FlyAwayAll(void) +{ + if (peek.wnds.count == 0) return; + + /* Calculate fly-away targets: slide toward nearest screen edge */ + RECT *targets = (RECT *)malloc(sizeof(RECT) * peek.wnds.count); + if (!targets) return; + + for (size_t i = 0; i < peek.wnds.count; i++) { + RECT *b = &peek.wnds.it[i].bounds; + targets[i] = *b; + MONITORINFO mi; mi.cbSize = sizeof(mi); + HMONITOR mon = MonitorFromRect(b, MONITOR_DEFAULTTONEAREST); + if (GetMonitorInfoW(mon, &mi)) { + int cx = (b->left + b->right) / 2; + int cy = (b->top + b->bottom) / 2; + int mcx = (mi.rcMonitor.left + mi.rcMonitor.right) / 2; + int mcy = (mi.rcMonitor.top + mi.rcMonitor.bottom) / 2; + int w = b->right - b->left; + /* Fly toward nearest corner */ + if (cx < mcx && cy < mcy) { + /* top-left corner */ + targets[i].left = mi.rcMonitor.left - w - 64; + targets[i].right = mi.rcMonitor.left - 64; + } else if (cx >= mcx && cy < mcy) { + /* top-right corner */ + targets[i].right = mi.rcMonitor.right + w + 64; + targets[i].left = mi.rcMonitor.right + 64; + } else if (cx < mcx && cy >= mcy) { + /* bottom-left corner */ + targets[i].left = mi.rcMonitor.left - w - 64; + targets[i].right = mi.rcMonitor.left - 64; + } else { + /* bottom-right corner */ + targets[i].right = mi.rcMonitor.right + w + 64; + targets[i].left = mi.rcMonitor.right + 64; + } + } + } + + /* Animate */ + DWORD step_ms = PEEK_FLYAWAY_MS / PEEK_FLYAWAY_STEPS; + for (int step = 1; step <= PEEK_FLYAWAY_STEPS; step++) { + float t = (float)step / PEEK_FLYAWAY_STEPS; + for (size_t i = 0; i < peek.wnds.count; i++) { + if (!IsWindow(peek.wnds.it[i].hwnd)) continue; + RECT cur; + EaseOutRect(&cur, &peek.wnds.it[i].bounds, &targets[i], t); + SetWindowPos(peek.wnds.it[i].hwnd, NULL, + cur.left, cur.top, cur.right - cur.left, cur.bottom - cur.top, + SWP_NOACTIVATE|SWP_NOZORDER|SWP_NOOWNERZORDER|SWP_ASYNCWINDOWPOS); + } + Sleep(step_ms); + } + + free(targets); +} + +static void FlyBackAll(void) +{ + if (peek.wnds.count == 0) return; + + DWORD step_ms = PEEK_FLYAWAY_MS / PEEK_FLYAWAY_STEPS; + for (int step = 1; step <= PEEK_FLYAWAY_STEPS; step++) { + float t = (float)step / PEEK_FLYAWAY_STEPS; + for (size_t i = 0; i < peek.wnds.count; i++) { + if (!IsWindow(peek.wnds.it[i].hwnd)) continue; + RECT cur; + GetWindowRect(peek.wnds.it[i].hwnd, &cur); + RECT target; + EaseOutRect(&target, &cur, &peek.wnds.it[i].bounds, t); + SetWindowPos(peek.wnds.it[i].hwnd, NULL, + target.left, target.top, target.right - target.left, target.bottom - target.top, + SWP_NOACTIVATE|SWP_NOZORDER|SWP_NOOWNERZORDER|SWP_ASYNCWINDOWPOS); + } + Sleep(step_ms); + } +} + +///////////////////////////////////////////////////////////////////////////// +// Focus watcher (restore on app switch) + +static void CALLBACK PeekWinEventProc( + HWINEVENTHOOK hWinEventHook, DWORD event, + HWND hwnd, LONG idObject, LONG idChild, + DWORD dwEventThread, DWORD dwmsEventTime) +{ + if (peek.is_transitioning || !peek.is_peeking) return; + if (!(conf.PeekFlags & PEEK_F_RESTOREONAPP)) return; + DWORD elapsed = GetTickCount() - peek.peek_time; + if (elapsed < PEEK_GRACE_MS) return; + if (IsPeekDesktopWindow(hwnd)) return; + PeekRestoreAll(); +} + +static void PeekInstallFocusHook(void) +{ + if (peek.focus_hook) return; + peek.focus_hook = SetWinEventHookL( + EVENT_SYSTEM_FOREGROUND, EVENT_SYSTEM_FOREGROUND, + NULL, PeekWinEventProc, + 0, 0, WINEVENT_OUTOFCONTEXT); +} + +static void PeekRemoveFocusHook(void) +{ + if (peek.focus_hook) { + UnhookWinEventL(peek.focus_hook); + peek.focus_hook = NULL; + } +} + +///////////////////////////////////////////////////////////////////////////// +// Core peek/restore + +void PeekCaptureAndHide(void) +{ + if (peek.is_transitioning) return; + peek.is_transitioning = 1; + peek.wnds.count = 0; + + EnumDesktopWindows(NULL, EnumPeekWindows, 0); + + if (peek.wnds.count == 0) { + peek.is_transitioning = 0; + return; + } + + if (conf.PeekMode == PEEK_MODE_FLYAWAY) { + FlyAwayAll(); + /* Also minimize to ensure they're properly hidden */ + for (size_t i = 0; i < peek.wnds.count; i++) + ShowWindow(peek.wnds.it[i].hwnd, SW_MINIMIZE); + } else { + /* Minimize mode */ + for (size_t i = 0; i < peek.wnds.count; i++) + ShowWindow(peek.wnds.it[i].hwnd, SW_MINIMIZE); + } + + peek.is_peeking = 1; + peek.peek_time = GetTickCount(); + peek.ignore_restore_until = GetTickCount() + PEEK_GRACE_MS + 100; + + if (conf.PeekFlags & PEEK_F_RESTOREONAPP) + PeekInstallFocusHook(); + + peek.is_transitioning = 0; +} + +void PeekRestoreAll(void) +{ + if (peek.is_transitioning) return; + peek.is_transitioning = 1; + + PeekRemoveFocusHook(); + + if (conf.PeekMode == PEEK_MODE_FLYAWAY) { + /* First restore windows from minimized state */ + for (size_t i = peek.wnds.count; i > 0; i--) { + if (IsWindow(peek.wnds.it[i-1].hwnd)) + ShowWindow(peek.wnds.it[i-1].hwnd, SW_SHOWNOACTIVATE); + } + FlyBackAll(); + } + + /* Restore placement in reverse order to preserve Z-order */ + for (size_t i = peek.wnds.count; i > 0; i--) { + if (IsWindow(peek.wnds.it[i-1].hwnd)) + SetWindowPlacement(peek.wnds.it[i-1].hwnd, &peek.wnds.it[i-1].wp); + } + + peek.is_peeking = 0; + peek.is_transitioning = 0; + peek.wnds.count = 0; +} + +void PeekCleanup(void) +{ + if (peek.is_peeking) + PeekRestoreAll(); + PeekRemoveFocusHook(); + ListFree(&peek.wnds); + mem00(&peek, sizeof(peek)); +} + +///////////////////////////////////////////////////////////////////////////// +// Mouse event handler - called from LowLevelMouseProc + +static int PeekHandleMouseEvent(WPARAM wParam, MSLLHOOKSTRUCT *mhk) +{ + if (!conf.PeekDesktop) return 0; + /* Don't interfere with AltSnap's regular action system */ + if (state.alt || state.action.ac) return 0; + + POINT pt = mhk->pt; + + /* --- LBUTTONDOWN: record press position --- */ + if (wParam == WM_LBUTTONDOWN) { + if (peek.is_peeking) { + /* Click while peeking: restore on LBUTTONUP (see below) */ + peek.down_pt = pt; + peek.has_pending = 1; + return 0; + } + + /* Gaming suppression */ + if ((conf.PeekFlags & PEEK_F_GAMINGSUPPRESS) && IsFullscreenApp()) + return 0; + + /* Record down position for drag/click classification */ + peek.down_pt = pt; + peek.down_time = GetTickCount(); + + if (conf.PeekFlags & PEEK_F_DBLCLICK) { + if (!peek.has_pending) { + /* First click: just remember it */ + peek.has_pending = 1; + return 0; + } + /* Second click: verify double-click */ + DWORD dt = GetDoubleClickTime(); + int dx = GetSystemMetrics(SM_CXDOUBLECLK); + int dy = GetSystemMetrics(SM_CYDOUBLECLK); + DWORD elapsed = GetTickCount() - peek.down_time; + if (elapsed > dt + || abs(pt.x - peek.down_pt.x) > dx + || abs(pt.y - peek.down_pt.y) > dy) { + /* Not a double-click, reset */ + peek.down_pt = pt; + peek.down_time = GetTickCount(); + return 0; + } + peek.was_first_click = 0; + /* Valid double-click: fall through to LBUTTONUP handler */ + peek.has_pending = 2; /* 2 = double-click confirmed */ + } else { + peek.has_pending = 1; + } + return 0; + } + + /* --- WM_MOUSEMOVE: cancel on drag --- */ + if (wParam == WM_MOUSEMOVE && peek.has_pending) { + int dx = GetSystemMetrics(SM_CXDRAG); + int dy = GetSystemMetrics(SM_CYDRAG); + if (abs(pt.x - peek.down_pt.x) > dx + || abs(pt.y - peek.down_pt.y) > dy) { + peek.has_pending = 0; + } + return 0; + } + + /* --- LBUTTONUP: fire action if click (not drag) --- */ + if (wParam == WM_LBUTTONUP) { + if (!peek.has_pending) return 0; + + /* --- Restore on second click while peeking --- */ + if (peek.is_peeking) { + peek.has_pending = 0; + DWORD elapsed = GetTickCount() - peek.peek_time; + if (elapsed < (DWORD)PEEK_GRACE_MS) return 0; + if (GetTickCount() < peek.ignore_restore_until) return 0; + if (IsDesktopBackground(pt) || IsTaskbarBlank(pt)) { + PeekRestoreAll(); + return 0; + } + return 0; + } + + /* --- Double-click: only fire on confirmed double-click --- */ + if (conf.PeekFlags & PEEK_F_DBLCLICK) { + if (peek.has_pending != 2) + return 0; /* keep has_pending for next click */ + } + + peek.has_pending = 0; + + /* --- Check desktop or taskbar click --- */ + if (IsDesktopBackground(pt)) { + PeekCaptureAndHide(); + return 0; + } + if ((conf.PeekFlags & PEEK_F_TASKBAR) && IsTaskbarBlank(pt)) { + PeekCaptureAndHide(); + return 0; + } + } + + return 0; +} diff --git a/resource.h b/resource.h index 03e12bc8..4874b21b 100644 --- a/resource.h +++ b/resource.h @@ -211,4 +211,13 @@ #define IDC_USEPTWINDOW 2106 #define IDC_SIDESFRACTION 2107 +#define IDC_PEEK_BOX 2108 +#define IDC_PEEK_ENABLED 2109 +#define IDC_PEEK_DBLCLICK 2110 +#define IDC_PEEK_TASKBAR 2111 +#define IDC_PEEK_GAMINGSUPPRESS 2112 +#define IDC_PEEK_RESTOREONAPP 2113 +#define IDC_PEEK_MODE_H 2114 +#define IDC_PEEK_MODE 2115 + #endif // AS_RESOURCE_H diff --git a/window.rc b/window.rc index e920f41e..1734cf46 100644 --- a/window.rc +++ b/window.rc @@ -3,7 +3,7 @@ #include "resource.h" #define MY_CBS_STYLE CBS_DROPDOWN|WS_TABSTOP|WS_VSCROLL|CBS_AUTOHSCROLL ///////////////////////////////////////////////////////////////////////////// -IDD_ABOUTPAGE DIALOG 0, 0, 220, 225 +IDD_ABOUTPAGE DIALOG 0, 0, 260, 275 STYLE WS_CHILD | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_3DLOOK CAPTION "" // ABOUT FONT 8, "Ms Shell Dlg" @@ -14,36 +14,36 @@ BEGIN LTEXT "",IDC_VERSION, 48, 15, 160,8 EDITTEXT IDC_URL, 48,25,160,10, ES_READONLY|NOT WS_BORDER LTEXT "",IDC_AUTHOR, 10, 40, 200, 8 - LTEXT "https://stefansundin.com/", 0, 10,50,200,10 + LTEXT "https://stefansundin.com/", 0, 10,50,240,10 LTEXT "",IDC_AUTHOR2, 10, 65, 200, 8 LTEXT "", IDC_LICENSE,10, 80, 200, 20 - GROUPBOX "",IDC_TRANSLATIONS_BOX,3,111,212,110 - EDITTEXT IDC_TRANSLATIONS,10,120,200,95, ES_MULTILINE|ES_AUTOHSCROLL|ES_READONLY|WS_VSCROLL + GROUPBOX "",IDC_TRANSLATIONS_BOX,5,111,250,160 + EDITTEXT IDC_TRANSLATIONS,10,120,240,148, ES_MULTILINE|ES_AUTOHSCROLL|ES_READONLY|WS_VSCROLL END ///////////////////////////////////////////////////////////////////////////// -IDD_BLACKLISTPAGE DIALOG DISCARDABLE 0, 0, 220, 225 +IDD_BLACKLISTPAGE DIALOG DISCARDABLE 0, 0, 220, 275 STYLE WS_CHILD | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_3DLOOK CAPTION "" // BLACKLIST FONT 8, "Ms Shell Dlg" BEGIN - GROUPBOX "", IDC_BLACKLIST_BOX, 3,1,212,138 - LTEXT "", IDC_PROCESSBLACKLIST_HEADER, 10,11,200,8 + GROUPBOX "", IDC_BLACKLIST_BOX, 5,1,250,138 + LTEXT "", IDC_PROCESSBLACKLIST_HEADER, 10,11,240,8 EDITTEXT IDC_PROCESSBLACKLIST,10,20, 200,14,ES_AUTOHSCROLL - LTEXT "", IDC_BLACKLIST_HEADER, 10,36,200,8 + LTEXT "", IDC_BLACKLIST_HEADER, 10,36,240,8 EDITTEXT IDC_BLACKLIST, 10,45, 200,14,ES_AUTOHSCROLL - LTEXT "", IDC_SCROLLLIST_HEADER, 10,61,200,8 + LTEXT "", IDC_SCROLLLIST_HEADER, 10,61,240,8 EDITTEXT IDC_SCROLLLIST, 10,70, 200,14,ES_AUTOHSCROLL - LTEXT "", IDC_MDISBL_HEADER, 10,86,200,8 - EDITTEXT IDC_MDIS, 10,95,200,14,ES_AUTOHSCROLL - LTEXT "", IDC_PAUSEBL_HEADER, 10,111,200,8 - EDITTEXT IDC_PAUSEBL, 10,120,200,14,ES_AUTOHSCROLL + LTEXT "", IDC_MDISBL_HEADER, 10,86,240,8 + EDITTEXT IDC_MDIS, 10,95,240,14,ES_AUTOHSCROLL + LTEXT "", IDC_PAUSEBL_HEADER, 10,111,240,8 + EDITTEXT IDC_PAUSEBL, 10,120,240,14,ES_AUTOHSCROLL - GROUPBOX "", IDC_FINDWINDOW_BOX, 3,140,212,78 + GROUPBOX "", IDC_FINDWINDOW_BOX, 5,140,250,128 ICON IDI_FIND, IDC_FINDWINDOW, 12,160,16,16, SS_NOTIFY|SS_REALSIZEIMAGE EDITTEXT IDC_NEWRULE, 30,150,180,12,ES_AUTOHSCROLL EDITTEXT IDC_NEWPROGNAME, 30,165,95,12,ES_AUTOHSCROLL @@ -62,14 +62,14 @@ BEGIN END ///////////////////////////////////////////////////////////////////////////// -IDD_GENERALPAGE DIALOG 0, 0, 220, 225 +IDD_GENERALPAGE DIALOG 0, 0, 260, 275 STYLE WS_CHILD | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_3DLOOK EXSTYLE WS_EX_WINDOWEDGE CAPTION "" // GENERAL FONT 8, "Ms Shell Dlg" BEGIN - GROUPBOX "", IDC_GENERAL_BOX,3,1,212,172 - AUTOCHECKBOX "", IDC_AUTOFOCUS, 10,12,203,18,BS_MULTILINE + GROUPBOX "", IDC_GENERAL_BOX,5,1,250,172 + AUTOCHECKBOX "", IDC_AUTOFOCUS, 10,12,243,18,BS_MULTILINE AUTOCHECKBOX "", IDC_AERO, 10, 30, 203,8 AUTOCHECKBOX "", IDC_SMARTAERO, 10, 40, 203,8 AUTOCHECKBOX "", IDC_SMARTERAERO, 10, 50, 203,8 @@ -91,22 +91,29 @@ BEGIN LTEXT "", IDC_LANGUAGE_HEADER,10,145,95,8 COMBOBOX IDC_LANGUAGE, 10,155,95,120, CBS_DROPDOWNLIST|CBS_HASSTRINGS|WS_TABSTOP|WS_VSCROLL - GROUPBOX "", IDC_AUTOSTART_BOX ,3,175,212,43 - AUTOCHECKBOX "", IDC_AUTOSTART, 10,185,203,8 - AUTOCHECKBOX "", IDC_AUTOSTART_HIDE, 10,195,145,8 - AUTOCHECKBOX "", IDC_AUTOSTART_ELEVATE,10,205,145,8 - PUSHBUTTON "", IDC_ELEVATE, 157,200,55,14 - -// EDITTEXT IDC_HELPPANNEL,220,5,175,210, NOT WS_TABSTOP|ES_MULTILINE|ES_READONLY + GROUPBOX "", IDC_PEEK_BOX, 3,176,214,48 + AUTOCHECKBOX "", IDC_PEEK_ENABLED, 10,184,123,10 + AUTOCHECKBOX "", IDC_PEEK_DBLCLICK, 133,184,124,10 + AUTOCHECKBOX "", IDC_PEEK_TASKBAR, 10,195,123,10 + AUTOCHECKBOX "", IDC_PEEK_GAMINGSUPPRESS, 133,195,124,10 + AUTOCHECKBOX "", IDC_PEEK_RESTOREONAPP, 10,206,123,10 + LTEXT "", IDC_PEEK_MODE_H, 85,217,40,8 + COMBOBOX IDC_PEEK_MODE, 135,215,118,120, CBS_DROPDOWNLIST|CBS_HASSTRINGS|WS_TABSTOP|WS_VSCROLL + + GROUPBOX "", IDC_AUTOSTART_BOX ,3,228,214,40 + AUTOCHECKBOX "", IDC_AUTOSTART, 10,236,247,8 + AUTOCHECKBOX "", IDC_AUTOSTART_HIDE, 10,247,122,10 + AUTOCHECKBOX "", IDC_AUTOSTART_ELEVATE,132,247,123,10 + PUSHBUTTON "", IDC_ELEVATE, 197,262,55,14 END ///////////////////////////////////////////////////////////////////////////// -IDD_MOUSEPAGE DIALOG DISCARDABLE 0, 0, 220, 230 +IDD_MOUSEPAGE DIALOG DISCARDABLE 0, 0, 220, 275 STYLE WS_CHILD | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_3DLOOK CAPTION "" // MOUSE FONT 8, "Ms Shell Dlg" BEGIN - GROUPBOX "", IDC_MOUSE_BOX, 3,1,212,178 + GROUPBOX "", IDC_MOUSE_BOX, 5,1,250,220 AUTORADIOBUTTON "", IDC_MBA1, 10,10,60,8, WS_GROUP AUTORADIOBUTTON "", IDC_MBA2, 75,10,60,8 AUTORADIOBUTTON "", IDC_INTTB, 140,10,60,8 @@ -137,28 +144,28 @@ BEGIN AUTOCHECKBOX "", IDC_TTBACTIONSNA, 12,165,95,8 AUTOCHECKBOX "", IDC_TTBACTIONSWA, 112,165,95,8 - GROUPBOX "", IDC_HOTCLICKS_BOX, 3,179,212,51 - AUTOCHECKBOX "", IDC_MMB_HC, 10 ,188,80,10 - AUTOCHECKBOX "", IDC_MB4_HC, 10 ,198,80,10 - AUTOCHECKBOX "", IDC_MB5_HC, 10 ,208,80,10 - AUTOCHECKBOX "", IDC_LONGCLICKMOVE,10 ,218,203,10 - RTEXT "", IDC_HOTCLICKS_MORE, 100,186,110,32 + GROUPBOX "", IDC_HOTCLICKS_BOX, 3,220,214,51 + AUTOCHECKBOX "", IDC_MMB_HC, 10 ,229,80,10 + AUTOCHECKBOX "", IDC_MB4_HC, 10 ,239,80,10 + AUTOCHECKBOX "", IDC_MB5_HC, 10 ,249,80,10 + AUTOCHECKBOX "", IDC_LONGCLICKMOVE,10 ,259,243,10 + RTEXT "", IDC_HOTCLICKS_MORE, 100,227,110,32 END ///////////////////////////////////////////////////////////////////////////// -IDD_KBPAGE DIALOG DISCARDABLE 0, 0, 220, 225 +IDD_KBPAGE DIALOG DISCARDABLE 0, 0, 220, 275 STYLE WS_CHILD | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_3DLOOK CAPTION "" // KEYBOARD FONT 8, "Ms Shell Dlg" BEGIN - GROUPBOX "", IDC_KEYBOARD_BOX, 3,1,212,138 + GROUPBOX "", IDC_KEYBOARD_BOX, 5,1,250,165 LTEXT "", IDC_GRABWITHALT_H, 10,13,90,8 COMBOBOX IDC_GRABWITHALT, 105,10,105,160, MY_CBS_STYLE LTEXT "", IDC_GRABWITHALTB_H,10,27,90,8 COMBOBOX IDC_GRABWITHALTB, 105,24,105,160, MY_CBS_STYLE - AUTOCHECKBOX "", IDC_SCROLLLOCKSTATE, 10,40,203,16, BS_MULTILINE - AUTOCHECKBOX "", IDC_UNIKEYHOLDMENU, 10,60,203,16, BS_MULTILINE + AUTOCHECKBOX "", IDC_SCROLLLOCKSTATE, 10,40,243,16, BS_MULTILINE + AUTOCHECKBOX "", IDC_UNIKEYHOLDMENU, 10,60,243,16, BS_MULTILINE LTEXT "", IDC_SHORTCUTS_H, 10,82,90,8 COMBOBOX IDC_SHORTCUTS_AC, 105,80,95,160, MY_CBS_STYLE @@ -175,18 +182,18 @@ BEGIN PUSHBUTTON "", IDC_SHORTCUTS_SET, 160, 123, 50, 13 AUTOCHECKBOX "", IDC_USEPTWINDOW, 10,125,150,8 - GROUPBOX "", IDC_HOTKEYS_BOX, 3,139,212, 80 - LTEXT "", IDC_MODKEY_H, 10,152,150,8 - COMBOBOX IDC_MODKEY, 160,149,50,120, MY_CBS_STYLE - AUTOCHECKBOX "", IDC_LEFTALT, 10,165,60,8 - AUTOCHECKBOX "", IDC_RIGHTALT, 10,175,60,8 - AUTOCHECKBOX "", IDC_LEFTWINKEY, 71,165,72,8 - AUTOCHECKBOX "", IDC_RIGHTWINKEY, 71,175,72,8 - AUTOCHECKBOX "", IDC_LEFTCTRL, 145,165,65,8 - AUTOCHECKBOX "", IDC_RIGHTCTRL, 145,175,65,8 - - AUTOCHECKBOX "", IDC_KEYCOMBO, 10,187,203,8 - LTEXT "", IDC_HOTKEYS_MORE, 10,197,203,20 + GROUPBOX "", IDC_HOTKEYS_BOX, 5,168,250, 98 + LTEXT "", IDC_MODKEY_H, 10,181,150,8 + COMBOBOX IDC_MODKEY, 160,178,50,120, MY_CBS_STYLE + AUTOCHECKBOX "", IDC_LEFTALT, 10,194,60,8 + AUTOCHECKBOX "", IDC_RIGHTALT, 10,204,60,8 + AUTOCHECKBOX "", IDC_LEFTWINKEY, 71,194,72,8 + AUTOCHECKBOX "", IDC_RIGHTWINKEY, 71,204,72,8 + AUTOCHECKBOX "", IDC_LEFTCTRL, 145,194,65,8 + AUTOCHECKBOX "", IDC_RIGHTCTRL, 145,204,65,8 + + AUTOCHECKBOX "", IDC_KEYCOMBO, 10,216,243,8 + LTEXT "", IDC_HOTKEYS_MORE, 10,226,243,30 END ///////////////////////////////////////////////////////////////////////////// @@ -207,52 +214,52 @@ END ///////////////////////////////////////////////////////////////////////////// -IDD_ADVANCEDPAGE DIALOG DISCARDABLE 0, 0, 220, 225 +IDD_ADVANCEDPAGE DIALOG DISCARDABLE 0, 0, 220, 275 STYLE WS_CHILD | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_3DLOOK CAPTION "" // ADVANCED FONT 8, "Ms Shell Dlg" BEGIN - GROUPBOX "", IDC_METRICS_BOX, 3,1,212,101 - LTEXT "", IDC_CENTERFRACTION_H, 10,12,130,8 - EDITTEXT IDC_CENTERFRACTION, 143, 10, 30, 12, ES_NUMBER - LTEXT "/", IDC_STATIC, 175,12,7,8 - EDITTEXT IDC_SIDESFRACTION, 180, 10, 30, 12, ES_NUMBER - - LTEXT "", IDC_AEROHOFFSET_H, 10,25,90,8 - EDITTEXT IDC_AEROHOFFSET, 100, 23, 30, 12, ES_NUMBER - RTEXT "", IDC_AEROVOFFSET_H, 132,25,45,8 - EDITTEXT IDC_AEROVOFFSET, 180, 23, 30, 12, ES_NUMBER - - LTEXT "", IDC_SNAPTHRESHOLD_H, 10,38,165,8 - EDITTEXT IDC_SNAPTHRESHOLD, 180, 36, 30, 12, ES_NUMBER - LTEXT "", IDC_AEROTHRESHOLD_H, 10,51,165,8 - EDITTEXT IDC_AEROTHRESHOLD, 180, 49, 30, 12, ES_NUMBER - LTEXT "", IDC_SNAPGAP_H, 10,64,165,8 - EDITTEXT IDC_SNAPGAP, 180, 62, 30, 12 - - LTEXT "", IDC_AEROSPEED_H, 10,76,130,8 - EDITTEXT IDC_AEROSPEED, 140, 74, 30, 12, ES_NUMBER - LTEXT "/", 0, 172,76,10,8 - LTEXT "", IDC_AEROSPEEDTAU, 178, 76, 20, 8, ES_READONLY - LTEXT "ms", IDC_STATIC, 195,76,10,8 - - LTEXT "", IDC_MOVETRANS_H, 10,90,100,8 - EDITTEXT IDC_MOVETRANS, 110, 88, 25, 12, ES_NUMBER - - PUSHBUTTON "", IDC_TESTWINDOW, 138,88,73,12 - - GROUPBOX "", IDC_BEHAVIOR_BOX, 3,103,212,122 - AUTOCHECKBOX "", IDC_MULTIPLEINSTANCES, 10,113,203,8 - AUTOCHECKBOX "", IDC_AUTOREMAXIMIZE, 10,123,203,8 - AUTOCHECKBOX "", IDC_AEROTOPMAXIMIZES, 10,133,203,8 - AUTOCHECKBOX "", IDC_AERODBCLICKSHIFT, 10,143,203,8 - AUTOCHECKBOX "", IDC_MAXWITHLCLICK, 10,153,203,8 - AUTOCHECKBOX "", IDC_RESTOREONCLICK, 10,163,203,8 - AUTOCHECKBOX "", IDC_FULLSCREEN, 10,173,203,8 - AUTOCHECKBOX "", IDC_BLMAXIMIZED, 10,183,203,8 - AUTOCHECKBOX "", IDC_FANCYZONE, 10,193,203,8 - AUTOCHECKBOX "", IDC_NORESTORE, 10,203,203,8 - AUTOCHECKBOX "", IDC_TOPMOSTINDICATOR, 10,213,203,8 + GROUPBOX "", IDC_METRICS_BOX, 5,1,250,91 + LTEXT "", IDC_CENTERFRACTION_H, 10,11,130,8 + EDITTEXT IDC_CENTERFRACTION, 143, 9, 30, 12, ES_NUMBER + LTEXT "/", IDC_STATIC, 175,11,7,8 + EDITTEXT IDC_SIDESFRACTION, 180, 9, 30, 12, ES_NUMBER + + LTEXT "", IDC_AEROHOFFSET_H, 10,23,90,8 + EDITTEXT IDC_AEROHOFFSET, 100, 21, 30, 12, ES_NUMBER + RTEXT "", IDC_AEROVOFFSET_H, 132,23,45,8 + EDITTEXT IDC_AEROVOFFSET, 180, 21, 30, 12, ES_NUMBER + + LTEXT "", IDC_SNAPTHRESHOLD_H, 10,35,165,8 + EDITTEXT IDC_SNAPTHRESHOLD, 180, 33, 30, 12, ES_NUMBER + LTEXT "", IDC_AEROTHRESHOLD_H, 10,47,165,8 + EDITTEXT IDC_AEROTHRESHOLD, 180, 45, 30, 12, ES_NUMBER + LTEXT "", IDC_SNAPGAP_H, 10,59,165,8 + EDITTEXT IDC_SNAPGAP, 180, 57, 30, 12 + + LTEXT "", IDC_AEROSPEED_H, 10,71,130,8 + EDITTEXT IDC_AEROSPEED, 140, 69, 30, 12, ES_NUMBER + LTEXT "/", 0, 172,71,10,8 + LTEXT "", IDC_AEROSPEEDTAU, 178, 71, 20, 8, ES_READONLY + LTEXT "ms", IDC_STATIC, 195,71,10,8 + + LTEXT "", IDC_MOVETRANS_H, 10,81,100,8 + EDITTEXT IDC_MOVETRANS, 110, 79, 25, 12, ES_NUMBER + + PUSHBUTTON "", IDC_TESTWINDOW, 138,79,73,12 + + GROUPBOX "", IDC_BEHAVIOR_BOX, 3,93,214,67 + AUTOCHECKBOX "", IDC_MULTIPLEINSTANCES, 10,102,100,8 + AUTOCHECKBOX "", IDC_AUTOREMAXIMIZE, 10,112,100,8 + AUTOCHECKBOX "", IDC_AEROTOPMAXIMIZES, 10,122,100,8 + AUTOCHECKBOX "", IDC_AERODBCLICKSHIFT, 10,132,100,8 + AUTOCHECKBOX "", IDC_MAXWITHLCLICK, 110,102,100,8 + AUTOCHECKBOX "", IDC_RESTOREONCLICK, 110,112,100,8 + AUTOCHECKBOX "", IDC_FULLSCREEN, 110,122,100,8 + AUTOCHECKBOX "", IDC_BLMAXIMIZED, 110,132,100,8 + AUTOCHECKBOX "", IDC_FANCYZONE, 10,142,100,8 + AUTOCHECKBOX "", IDC_NORESTORE, 110,142,100,8 + AUTOCHECKBOX "", IDC_TOPMOSTINDICATOR, 10,152,243,8 END ///////////////////////////////////////////////////////////////////////////// From 7da062f3e984cd0cb99c71481857d100c60e3534 Mon Sep 17 00:00:00 2001 From: wangjiati Date: Sun, 31 May 2026 19:36:13 +0800 Subject: [PATCH 2/5] fix: include AltSnap.dni in ZIP release package The ZIP package was missing AltSnap.dni (the default config template). Without it, new portable users would start with no configuration at all. The NSIS installer already included it; this aligns the ZIP with the installer. Also replaced the pre-configured AltSnap.ini with the template .dni so that the portable package uses the same documented defaults. Co-Authored-By: Claude Opus 4.7 --- ziprelease.bat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ziprelease.bat b/ziprelease.bat index 2605e122..22e16bb6 100644 --- a/ziprelease.bat +++ b/ziprelease.bat @@ -1,2 +1,2 @@ -advzipNT -a4 -i 128 AltSnap_bin.zip AltSnap.txt AltSnap.exe hooks.dll AltSnap.ini AltSnap.xml License.txt Lang\* +advzipNT -a4 -i 128 AltSnap_bin.zip AltSnap.txt AltSnap.exe hooks.dll AltSnap.dni AltSnap.xml License.txt Lang\* Deflopt AltSnap_bin.zip From 36767e6e8209bf38cccc23499774df43d712aa71 Mon Sep 17 00:00:00 2001 From: wangjiati Date: Sun, 31 May 2026 19:39:23 +0800 Subject: [PATCH 3/5] chore: exclude CLAUDE.md from git tracking Co-Authored-By: Claude Opus 4.7 --- .gitignore | 1 + CLAUDE.md | 76 ------------------------------------------------------ 2 files changed, 1 insertion(+), 76 deletions(-) delete mode 100644 CLAUDE.md diff --git a/.gitignore b/.gitignore index cd0520ae..ee268933 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ # Claude Code .claude/ +CLAUDE.md # Build output build/ diff --git a/CLAUDE.md b/CLAUDE.md deleted file mode 100644 index 4c9223a7..00000000 --- a/CLAUDE.md +++ /dev/null @@ -1,76 +0,0 @@ -# CLAUDE.md - -This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. - -## Project Overview - -AltSnap is a Windows utility that enables Alt+Click window moving/resizing, inspired by Linux window managers. It is a C/Win32 fork of Stefan Sundin's AltDrag, rewritten by Raymond Gillibert. Targets Windows NT 4 through Windows 11. GPLv3+ licensed. - -## Build Commands - -All builds require MinGW GCC (or Clang/TCC for alternative Makefiles). - -```bash -make # 32-bit release (default) -make -f MakefileX64 # 64-bit release -make -f Makefiledb # 32-bit debug -make -f MakefileX64db # 64-bit debug -make clean # Remove build artifacts (deletes AltSnap.exe + hooks.dll) -``` - -Quick rebuild scripts (kill running instance, build, restart): -- `mk.bat` — 32-bit -- `mk64.bat` — 64-bit - -MSVC builds: `mkmsvc.bat` (Visual Studio) or `mkvcc6.bat` (VC++ 6.0) - -Release packaging: `makerelease.bat` builds both architectures and creates NSIS installers + zip archives. - -## Architecture - -**Two-component design — EXE + DLL:** - -### AltSnap.exe (main executable) -- **Entry point**: `unfuckWinMain()` in `altsnap.c` — bypasses CRT, calls `tWinMain()` -- Single compilation unit: `altsnap.c` #includes `tray.c`, `config.c`, `languages.c` directly (not separate .o files) -- Responsibilities: system tray icon, configuration dialog (property sheets), loading hooks.dll, message loop, elevation, command-line parsing - -### hooks.dll (hook library — bulk of program logic) -- **Entry point**: `DllMain()` in `hooks.c` (~6,750 lines) -- Exports: `Load()` (returns WNDPROC), `Unload()`, `LowLevelKeyboardProc()` -- Also a single compilation unit: `hooks.c` #includes `zones.c` and `snap.c` -- Responsibilities: low-level keyboard/mouse hooks, window move/resize logic, snap zones, Aero snap emulation, action menu, scroll handling, all ~50 actions - -### Key headers -- `hooks.h` — shared header with action enums (X-macro `ACTION_MAP`), structs, IPC message definitions, window property names -- `unfuck.h` — Win32 compatibility layer; dynamically loads newer APIs (DWM, DPI) at runtime so the binary runs on older Windows -- `nanolibc.h` — minimal C library (the project links with `-nostdlib`) -- `languages.h` — L10N string definitions - -### Data flow -1. AltSnap.exe starts, loads hooks.dll, calls `Load()` to get a WNDPROC -2. DLL installs `WH_KEYBOARD_LL` hook -3. On Alt+Click detection, DLL hooks mouse and handles movement/resize -4. Config read from `AltSnap.ini` (portable) or `%APPDATA%\AltSnap\AltSnap.ini` -5. EXE handles config UI/tray/IPC; DLL handles all window manipulation - -## Coding Conventions - -- Pure C99, Win32 API only — no frameworks, no C runtime (`-nostdlib`) -- Unicode build (`-DUNICODE -D_UNICODE`, `-municode`, `-fshort-wchar`) -- `-fshort-enums` — enums may be smaller than int -- Heavy size optimization (`-Os`, `-fmerge-all-constants`, `-fno-exceptions`, etc.) -- Warnings treated as errors for VLAs (`-Werror=vla`) -- Stack usage limit: 4096 bytes per function (`-Wstack-usage=4096`) -- Actions are defined via X-macro `ACTION_MAP` in `hooks.h` — to add a new action, add an `ACVALUE()` entry and implement the handler in `hooks.c` - -## Configuration Files - -- `AltSnap.dni` — default config template (UTF-16LE INI, ~1,400 lines, heavily commented). If no `AltSnap.ini` exists, this is copied to create one -- `Lang/*.ini` — 22 translation files (UTF-16LE) -- `.gitattributes` — enforces UTF-16LE-BOM encoding for `.dni` and `Lang/*` files -- `altsnap.nsi` — NSIS installer script - -## Testing - -No automated tests or CI. Manual testing only — build and run the exe. From e0ba241e205ab2f00d7f161099f4cd91076ba8ed Mon Sep 17 00:00:00 2001 From: wangjiati Date: Sun, 31 May 2026 19:40:23 +0800 Subject: [PATCH 4/5] chore: add release/ to gitignore Co-Authored-By: Claude Opus 4.7 --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index ee268933..4a7f6867 100644 --- a/.gitignore +++ b/.gitignore @@ -5,5 +5,8 @@ CLAUDE.md # Build output build/ +# Release output +release/ + # Test files tests/ From 9e96d040bc6e43b8ef7ab4e2f0b37ad64809c45a Mon Sep 17 00:00:00 2001 From: wangjiati Date: Sun, 31 May 2026 22:39:54 +0800 Subject: [PATCH 5/5] fix: restore AltSnap.ini + add Themes in ZIP release package Match the original release format: use AltSnap.ini (portable config) instead of AltSnap.dni (template), and include the Themes/ directory. Co-Authored-By: Claude Opus 4.7 --- ziprelease.bat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ziprelease.bat b/ziprelease.bat index 22e16bb6..3fcb72c8 100644 --- a/ziprelease.bat +++ b/ziprelease.bat @@ -1,2 +1,2 @@ -advzipNT -a4 -i 128 AltSnap_bin.zip AltSnap.txt AltSnap.exe hooks.dll AltSnap.dni AltSnap.xml License.txt Lang\* +advzipNT -a4 -i 128 AltSnap_bin.zip AltSnap.txt AltSnap.exe hooks.dll AltSnap.ini AltSnap.xml License.txt Lang\* Themes\* Deflopt AltSnap_bin.zip