FrameFit — תוכנה ל-Windows שמתאימה את שולחן העבודה לשטח המסך שגלוי בפועל, כאשר מסגרת (דקורטיבית, עץ, מתקן תצוגה) מכסה חלק מהשוליים — גם בצורה לא-סימטרית.
התוכנה מאפשרת להגדיר לכל צד בנפרד כמה פיקסלים מוסתרים, ולראות בזמן אמת כיצד השוליים מסתדרים, כך שמסך-מלא, מקסם, סרגל המשימות וסמן העכבר יישארו בתוך האזור הגלוי בלבד.
FrameFit v0.1.4 — שני קבצים לבחירה, לשניהם אין צורך להתקין .NET ואין צורך בהרשאות מנהל.
| קובץ | למי זה מתאים |
|---|---|
FrameFit-v0.1.4-x64.msi |
מומלץ. מתקין רגיל: לחיצה כפולה, האשף מתקין, נוצר קיצור דרך בתפריט התחל, והתוכנה מופיעה ב"הוספה או הסרה של תוכניות". |
FrameFit-v0.1.4-win-x64-portable.exe |
גרסה ניידת — קובץ הרצה אחד בודד, בלי התקנה ובלי תיקייה. |
- מורידים את הקובץ המתאים.
- מריצים אותו (במתקין — מעקב אחרי האשף).
- אם מופיעה אזהרת SmartScreen — היא נובעת מכך שהקובץ אינו חתום דיגיטלית:
"מידע נוסף" → "הפעל בכל זאת". אפשר לאמת את תקינות ההורדה מול קובץ ה-
.sha256המצורף.
המתקין מותקן עבור המשתמש הנוכחי בלבד אל %LOCALAPPDATA%\FrameFit, ולכן אינו דורש
הרשאות מנהל. הסרה מסירה את התוכנה ואת קיצור הדרך, אך משאירה את ההגדרות
ב-%APPDATA%\FrameFit.
לפני התקנה בעמדה פעילה: שומר מסך-המלא טרם נבדק מול תוכן אמיתי (דפדפן, מצגות, נגני מדיה). ראו "מגבלות מוצהרות" למטה ואת
docs/TASKS.md.
🟢 עובד ומפורסם. 70 בדיקות יחידה ו-16 בדיקות עצמיות עוברות. המתקין עבר בדיקת קבלה
מלאה — התקנה, קיצור דרך, הרצת הקובץ המותקן (10/10), והסרה נקייה — והקובץ הניידי שפורסם
אומת אף הוא בהרצה. פרטים מלאים ב-docs/TASKS.md.
מה חדש ב-0.1.4: תיקון הרצועה המתה באזור הגלוי (קיזוז ההקצאה של סרגל המשימות), ומגבלה שנמדדה ותועדה — אי אפשר להזיז את סרגל המשימות ב-Windows 11: ה-Shell מחזיר אותו לקצה המסך מיד, וקריאת ההזזה מדווחת על הצלחה בכל זאת (ראו DECISIONS.md). לכן התוכנה אינה מנסה להזיז אותו, וקיזוז ההקצאה שלו מבטיח שהתוכן ממלא את כל האזור הגלוי. הבדיקה העצמית מודדת מעתה את המציאות מהמערכת ולא את התוכנית — כך תקלה כמו "דיווח עיגון שלא קרה" לא תעבור שוב בשקט.
| מסמך | תוכן |
|---|---|
| docs/SPEC.md | האפיון — מטרות, דרישות, ממשק, מגבלות, קריטריוני הצלחה |
| docs/ARCHITECTURE.md | הארכיטקטורה הטכנית ורכיבי המערכת |
| docs/DECISIONS.md | החלטות תכנוניות משמעותיות והנימוקים |
| docs/TASKS.md | תוכנית העבודה ומצב המימוש בפועל |
| docs/AGENT_LOG.md | יומן העבודה |
| docs/CHANGELOG.md | היסטוריית גרסאות |
במסך מחשב רגיל אין דרך לגרום למנוע התצוגה של Windows לחתוך את שולחן העבודה באופן לא-סימטרי. לכן FrameFit אוכף את האזור הגלוי בארבע שכבות בלתי-תלויות:
| שכבה | מה היא עושה | מה היא מכסה |
|---|---|---|
| שטח עבודה (AppBar) | מצמצם את rcWork של Windows בהתאם לשוליים, בדיוק עד גבול האזור הגלוי |
מקסם, Snap, חלונות אחרים |
| סרגל המשימות | אינו נוגע בסרגל כברירת מחדל (אפשר לבחור הסתרה בממשק). מגבלה נמדדת: Windows 11 אינו מתיר להזיז את הסרגל | שהשוליים המוסתרים יהיו שחורים, ושלא ייגזלו פיקסלים גלויים |
| שומר מסך-מלא | מזהה חלון שמכסה את כל המסך ומתאים אותו לאזור הגלוי | דפדפן ב-F11, מצגות, שקופיות, נגני מדיה |
| שכבת כיסוי | ארבע רצועות שחורות תמיד-למעלה, עיוורות לקלט | שהשוליים ייראו שחורים וכבויים |
| חסימת עכבר | ClipCursor לאזור הגלוי |
שהסמן לא ייכנס לאזור המוסתר |
# דרוש .NET SDK 10
dotnet build FrameFit.slnx
# הרצת אפליקציית הניהול
dotnet run --project src/FrameFit.App
# בדיקות יחידה
dotnet test tests/FrameFit.Core.Tests
# בדיקה עצמית מלאה של האינטראפ עם Windows
dotnet run --project src/FrameFit.App -- --self-testWiX נשמר ככלי ברמת הפרויקט (.config/dotnet-tools.json) ואינו מותקן על המחשב:
dotnet tool restore
dotnet publish src/FrameFit.App/FrameFit.App.csproj \
-c Release -r win-x64 --self-contained \
-p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true \
-p:EnableCompressionInSingleFile=true -p:DebugType=none -o publish/single
dotnet build installer/FrameFit.wixproj -c Release
# בדיקת קבלה: התקנה, אימות, הרצת הקובץ שהותקן, והסרה
powershell -File installer/test-install.ps1 -Msi installer/bin/x64/Release/FrameFit-v0.1.2-x64.msiאפשרויות נוספות:
| דגל | משמעות |
|---|---|
--self-test |
מריץ בדיקות אינטראפ ומחזיר קוד יציאה (0 = הכול תקין) |
--self-test --no-flash |
בלי להציג את שכבת הכיסוי למשך כשנייה |
--self-test --no-workarea-probe |
בלי לבדוק את צמצום אזור העבודה |
--self-test --out=<קובץ> |
שמירת פלט הבדיקה לקובץ |
--tray |
עלייה לסמל בסרגל המערכת בלי לפתוח חלון |
התוכנה משתלטת על אזור העבודה, על סמן העכבר ועל שכבת התצוגה — ולכן כל שינוי הפיך:
- מקש חירום גלובלי:
Ctrl + Alt + Shift + F12— מחזיר את Windows למצב נקי בכל רגע, גם כשהעכבר חסום לאזור הגלוי. זה גם המסלול שמחזיר את סרגל המשימות למקומו. - סרגל המשימות מוחזר תמיד — ביציאה מהתוכנה, ב"שחזר הכול", במקש המילוט, ואם התהליך נהרג — בעלייה הבאה של התוכנה (נכתב קובץ סימון, והוא מוחזר לפני כל פעולה אחרת).
- "שחזר הכול" גם בסרגל המערכת וגם בחלון הניהול.
- תצוגה מקדימה מתבטלת אוטומטית אחרי 20 שניות אם לא אושרה.
- קובץ הגדרות פגום ⇒ לא מוחלת שום הגדרה, ומתחילים במצב כבוי.
- מסך-מלא בלעדי של DirectX (משחקים) ומסך ההתחברות של Windows אינם מכוסים — מחוץ
לתחום השימוש שהוגדר (ראו
docs/SPEC.mdסעיף 11). - תוכנית שמחזירה את עצמה בכוח למסך-מלא תזוהה, והאכיפה תפסיק להילחם בה לאחר שלושה ניסיונות — ותדווח על כך באבחון.
ClipCursorהוא ברמת הדסקטופ כל עוד התהליך פעיל; Windows משחרר אותו עם סיום התהליך.- אי אפשר להזיז את סרגל המשימות (נמדד ב-Windows 11): אם השוליים המוסתרים מכסים את מקומו הטבעי של הסרגל, אי אפשר להוציא אותו אל האזור הגלוי. נשקלה והוחלט שלא לבנות סרגל חלופי של FrameFit; הסרגל נשאר במקומו (וכן — סמל FrameFit שבו אינו שמיש במצב הזה).
- כשהאפשרות "הסתרת סרגל המשימות" פעילה, סמל FrameFit בסרגל המערכת מוסתר אף הוא. לעצירה ולשחזור אפשר להשתמש בחלון הניהול או במקש המילוט.
- שוליים קטנים מגובה סרגל המשימות (ברירת מחדל: 48 פיקסלים): Windows אינו מוותר על ההקצאה של הסרגל גם כשהוא מוסתר, ולכן אותם פיקסלים באזור הגלוי נשארים תפוסים. FrameFit מקזז מה שאפשר ומדווח על ההפרש כאזהרה. הפתרון: שוליים גדולים יותר באותו צד, או הסתרת הסרגל.
C# / .NET 10, אפליקציית WPF (net10.0-windows). כל האינטראפ עם Win32 מרוכז
בקובץ הצהרות אחד (Interop/Native.cs), וכל הלוגיקה הגיאומטרית נטולת תלות בפלטפורמה
ונבדקת ביחידה.
בנייה ואריזה: dotnet publish -c Release -r win-x64 --self-contained לקובץ בודד, ו-MSI
דרך WiX 5 (dotnet tool restore ואז בניית installer/FrameFit.wixproj).
MIT — שימוש חופשי, כולל שינוי והפצה. הזכויות שמורות ל-© 2026 Lev-Good,
והן מיוחסות גם בקובץ ההרצה עצמו (לשונית "פרטים" של FrameFit.exe).
התנאי היחיד הוא שימור הודעת הזכויות: מי שמקבל עותק צריך לקבל גם את הודעת ה-MIT.
התוצר כולל רכיבי צד-שלישי — .NET 10 (MIT) ו-WiX 5 (MS-RL) — שהרישיונות שלהם כלולים
ב-THIRD-PARTY-NOTICES.md.
זו אינה הגנה בלעדית: MIT מתירה לכל אדם להשתמש, לשנות ולהפיץ את FrameFit, לרבות במוצר מסחרי, כל עוד הודעת הזכויות נשמרת. הנימוקים להחלטה ב-
docs/DECISIONS.md.