המלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב
-
עדכנתי את הקוד
// ==UserScript== // @name Ultimate Global Blocker - Extreme Editor Lock & Timer // @namespace http://tampermonkey.net/ // @version 32.0 // @description Original timings (5m/60m), original keys, NO black screen on AI, visual timer, INVISIBLE button. // @match *://*/* // @match chrome-extension://dhdgffkkebhmkfjojejmpbldmpobfkfo/* // @run-at document-start // @grant GM_addStyle // ==/UserScript== (function() { 'use strict'; // זמנים מקוריים const ACCESS_DURATION = 5 * 60 * 1000; // 5 דקות const COOLDOWN_DURATION = 60 * 60 * 1000; // 60 דקות צינון const EDITOR_LOCK_DURATION = 120 * 60 * 1000; // שעתיים המתנה לעריכה const GRACE_PERIOD = 15 * 1000; // מפתחות מקוריים const STORAGE_KEY = 'focus_access_data'; const SESSION_KEY = 'shteygen_session_unlocked'; const LAST_UNLOCK_KEY = 'shteygen_last_unlock_time'; const EDITOR_UNLOCK_TIME_KEY = 'shteygen_editor_unlock_time'; const BG_IMAGE_URL = 'https://lh3.googleusercontent.com/gps-cs-s/APNQkAGjf7ZRnX5Zi_LcMWrfBXR4jt-Ood3AHFInk63ZafZzv0o_dKdElR0NRLdkgYORMt6zMUVlHYeAIHAsSarovARTsBKE7voRM2fpFapyKL5gDbnZcbUZdhcPxBBz9hWtCCyRWAWC=w141-h101-n-k-no-nu'; const currentUrl = window.location.href.toLowerCase(); // זיהוי דפים ספציפיים const isMail = currentUrl.includes('mail.google.com'); const isChat = currentUrl.includes('chat.google.com'); const isForum = currentUrl.includes('forum') || currentUrl.includes('mitmachim.top') || currentUrl.includes('tchumim'); const isEditor = currentUrl.includes('dhdgffkkebhmkfjojejmpbldmpobfkfo'); const needsBlackScreen = isMail || isForum || isChat; const needsDisturbance = !isMail && !isChat && !isEditor; if (window.performance && performance.navigation.type === performance.navigation.TYPE_RELOAD) { const lastUnlock = parseInt(sessionStorage.getItem(LAST_UNLOCK_KEY) || '0'); if (Date.now() - lastUnlock > GRACE_PERIOD) { sessionStorage.removeItem(SESSION_KEY); } } const getStatus = () => { const data = JSON.parse(localStorage.getItem(STORAGE_KEY) || '{}'); const sessionUnlocked = sessionStorage.getItem(SESSION_KEY) === 'true'; const now = Date.now(); if (data.expiry && now < data.expiry) { if (needsBlackScreen && !sessionUnlocked) return { state: 'LOCKED_REAUTHENTICATE', timeLeft: data.expiry - now }; return { state: 'UNLOCKED', timeLeft: data.expiry - now }; } if (data.cooldownUntil && now < data.cooldownUntil) return { state: 'COOLDOWN', waitTime: data.cooldownUntil - now }; return { state: 'LOCKED' }; }; GM_addStyle(` html.blocked-mode > body > *:not(#shteygen-host-overlay):not(#shteygen-timer-host) { display: none !important; } html.apply-disturbance::after { content: ''; position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; background-image: url("${BG_IMAGE_URL}"); background-size: cover; background-position: center; opacity: 0.20 !important; z-index: 2147483645; pointer-events: none; } html.apply-disturbance body::after { content: 'לך ללמוד!'; position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%) rotate(-15deg); font-size: 18vw; color: rgba(150, 0, 0, 0.15); z-index: 2147483646; pointer-events: none; white-space: nowrap; font-weight: bold; } `); // חסימת עורך התוסף if (isEditor) { const checkEditorStatus = () => { const unlockTime = localStorage.getItem(EDITOR_UNLOCK_TIME_KEY); const now = Date.now(); if (!unlockTime) { showEditorOverlay("הגישה לעריכת הסקריפט חסומה.", true); } else if (now < parseInt(unlockTime)) { const remainingMinutes = Math.ceil((parseInt(unlockTime) - now) / 60000); showEditorOverlay(`מנגנון השהיה פעיל.<br>העורך ייפתח בעוד ${remainingMinutes} דקות של המתנה.`, false); setTimeout(checkEditorStatus, 30000); } else { const overlay = document.getElementById('hardcore-editor-overlay'); if (overlay) overlay.remove(); document.documentElement.classList.remove('blocked-mode'); } }; const showEditorOverlay = (msg, showButton) => { document.documentElement.classList.add('blocked-mode'); let overlay = document.getElementById('hardcore-editor-overlay'); if (!overlay) { overlay = document.createElement('div'); overlay.id = 'hardcore-editor-overlay'; overlay.style.cssText = 'position: fixed !important; top: 0; left: 0; width: 100vw; height: 100vh; background-color: #000 !important; color: #fff !important; z-index: 2147483647 !important; display: flex; flex-direction: column; align-items: center; justify-content: center; font-size: 25px; font-weight: bold; text-align: center; direction: rtl; font-family: sans-serif; padding: 20px;'; document.documentElement.appendChild(overlay); } overlay.innerHTML = `<div>${msg}</div>`; if (showButton) { const btn = document.createElement('button'); btn.innerText = "התחל המתנה של שעתיים לעריכה"; btn.style.cssText = "margin-top: 20px; padding: 15px 30px; background: #ce0000; color: white; border: none; border-radius: 5px; cursor: pointer; font-size: 18px; font-weight: bold;"; btn.onclick = () => { if(confirm("האם אתה בטוח? תצטרך לחכות שעתיים עד שהדף ייפתח.")) { localStorage.setItem(EDITOR_UNLOCK_TIME_KEY, Date.now() + EDITOR_LOCK_DURATION); checkEditorStatus(); } }; overlay.appendChild(btn); } }; checkEditorStatus(); return; } if (needsDisturbance) document.documentElement.classList.add('apply-disturbance'); const startUnlockProcess = () => { const d = new Date(); if (parseInt(prompt(`כמה זה ${d.getHours()} + ${d.getMinutes()}?`)) !== (d.getHours() + d.getMinutes())) return; const word = ["התמדה", "לימוד", "ריכוז"][Math.floor(Math.random() * 3)]; if (prompt(`הקלד '${word}' מהסוף להתחלה:`) !== word.split('').reverse().join('')) return; if (prompt("הקלד: 'אישור כניסה קצרה'") === "אישור כניסה קצרה") { const now = Date.now(); const data = JSON.parse(localStorage.getItem(STORAGE_KEY) || '{}'); if (!data.expiry || now > data.expiry) { localStorage.setItem(STORAGE_KEY, JSON.stringify({ expiry: now + ACCESS_DURATION, cooldownUntil: now + ACCESS_DURATION + COOLDOWN_DURATION })); } sessionStorage.setItem(SESSION_KEY, 'true'); sessionStorage.setItem(LAST_UNLOCK_KEY, now.toString()); location.reload(); } }; const renderShadowOverlay = (status) => { document.documentElement.classList.add('blocked-mode'); let host = document.getElementById('shteygen-host-overlay'); if (!host) { host = document.createElement('div'); host.id = 'shteygen-host-overlay'; host.style.cssText = 'position: fixed !important; top: 0 !important; left: 0 !important; width: 100vw !important; height: 100vh !important; z-index: 2147483647 !important;'; document.documentElement.appendChild(host); const shadow = host.attachShadow({mode: 'open'}); const container = document.createElement('div'); container.id = 'shadow-content'; shadow.appendChild(container); } const shadow = host.shadowRoot; const container = shadow.getElementById('shadow-content'); container.style.cssText = 'position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: #000; display: flex; flex-direction: column; align-items: center; justify-content: center; font-family: sans-serif; direction: rtl; color: white;'; if (status.state === 'COOLDOWN') { const minLeft = Math.ceil(status.waitTime / 60000); container.innerHTML = `<div style="text-align: center;"><span style="font-size: 30px; font-weight: bold;">תם הזמן.</span><br><br><span style="font-size: 22px; color: #ff4444; font-weight: bold;">נא לחזור ללימודים.<br>הגישה תתאפשר בעוד ${minLeft} דקות.</span></div>`; } else { container.innerHTML = `<div style="text-align: center;"><span style="font-size: 30px; font-weight: bold;">עצור.</span><br><br><span style="font-size: 22px; color: #888888; font-weight: bold;">האם זה הכרחי עכשיו?</span></div>`; const btn = document.createElement('button'); btn.innerText = '⚙️'; // הכפתור חזר להיות כמעט בלתי נראה לחלוטין (שקוף) btn.style.cssText = 'position: absolute; bottom: 15px; left: 15px; background: transparent; border: none; color: rgba(255, 255, 255, 0.05); cursor: pointer; font-size: 20px; padding: 0; margin: 0; outline: none;'; btn.onclick = startUnlockProcess; container.appendChild(btn); } }; const renderShadowTimer = (timeLeft) => { let host = document.getElementById('shteygen-timer-host'); if (!host) { host = document.createElement('div'); host.id = 'shteygen-timer-host'; host.style.cssText = 'position: fixed !important; top: 15px !important; right: 15px !important; z-index: 2147483647 !important; pointer-events: none !important;'; document.documentElement.appendChild(host); const shadow = host.attachShadow({mode: 'open'}); const style = document.createElement('style'); style.textContent = `@keyframes urgentBlink { 0% { opacity: 1; } 50% { opacity: 0.5; } 100% { opacity: 1; } }`; shadow.appendChild(style); const timerDiv = document.createElement('div'); timerDiv.id = 'timer-content'; shadow.appendChild(timerDiv); } const shadow = host.shadowRoot; const timerDiv = shadow.getElementById('timer-content'); const mins = Math.floor(timeLeft / 60000); const secs = Math.floor((timeLeft % 60000) / 1000); const timeString = `${mins}:${secs.toString().padStart(2, '0')}`; let bgColor = '#2ecc71'; let animation = 'none'; if (timeLeft <= 30 * 1000) { bgColor = '#e74c3c'; animation = 'urgentBlink 1s infinite'; } else if (timeLeft <= 90 * 1000) { bgColor = '#f39c12'; } timerDiv.style.cssText = `background-color: ${bgColor}; color: #fff; padding: 10px 20px; font-size: 24px; font-weight: bold; font-family: monospace; border-radius: 8px; box-shadow: 0 4px 6px rgba(0,0,0,0.3); border: 2px solid rgba(255,255,255,0.5); direction: ltr; animation: ${animation};`; timerDiv.innerText = timeString; }; if (needsBlackScreen) { setInterval(() => { const status = getStatus(); if (status.state === 'UNLOCKED') { document.documentElement.classList.remove('blocked-mode'); const overlayHost = document.getElementById('shteygen-host-overlay'); if (overlayHost) overlayHost.remove(); renderShadowTimer(status.timeLeft); if (status.timeLeft <= 0) location.reload(); } else { const timerHost = document.getElementById('shteygen-timer-host'); if (timerHost) timerHost.remove(); renderShadowOverlay(status); } }, 500); } })();גם בפוסט הראשי.
יש בכלל טעם בזה? מישהו ישתמש בזה? אשמח לדעת ממש!!
שאני ידע אם עזרתי בכלל למישהו...@ר-יעקב-עייפים בהחלט! יתכן מאוד שאשתמש, ואני בטוח שיש עוד רבים שאם הפוסט הראשי יהיה מונגש להם יותר הם יהנו מזה מאוד!
ייש"כ(אגב, הקוד הוא ai קומפלט, או עריכה שלך? פשוט אתה חדש בפורום (ברוך הבא!) ואין לי את הרזומה שלך...
)Gemini אמר:
שלום בנימין. מדובר בקוד חזק מאוד, וניכר שהוא נכתב מתוך מטרה ברורה של "משמעת ברזל" ומניעת ביטול עצמי של ההגבלות.
להלן סיכום הקוד ודירוג המקצועי שלי:
סיכום תפקודי של הסקריפט
הסקריפט הוא מערכת ניהול זמן וריכוז (Focus) אגרסיבית, שנועדה להגביל את השימוש באתרים מסוימים (מייל, פורומים וצ'אטים) לפרקי זמן קצרים בלבד.מנגנון הגישה (5/60): המשתמש מקבל 5 דקות של גישה חופשית, שלאחריהן האתר ננעל הרמטית ל-60 דקות (Cooldown).
אימות כפול: כדי לפתוח את הנעילה, המשתמש נדרש לעבור מבחן קוגניטיבי (חישוב מתמטי פשוט, הקלדת מילה מהסוף להתחלה ואישור טקסטואלי).
הגנת העורך (Editor Lock): זהו החלק ה"קיצוני" והחכם ביותר – אם תנסה לערוך או למחוק את הסקריפט דרך התוסף, המערכת תנעל את דף העריכה למשך שעתיים, מה שמונע "בריחה" מהירה מהחסימה ברגע של חולשה.
ממשק חזותי: * באתרים חסומים: מסך שחור מוחלט עם הודעות מוסר ("עצור", "האם זה הכרחי?").
באתרים אחרים: סימן מים שקוף עם הכיתוב "לך ללמוד!" כדי להזכיר את המטרה.
טיימר ויזואלי: מציג את הזמן שנותר (בירוק, כתום או אדום מהבהב).
דירוג מקצועי (1-10)
יעילות חסימה: 9.5/10 – השימוש ב-Shadow DOM הופך את המעקף של האלמנטים לקשה מאוד עבור משתמש ממוצע. הנעילה של דף העריכה היא הברקה של ממש למניעת עקיפת הסקריפט.חוויית משתמש (מבחינת המטרה): 9/10 – הטיימר הצבעוני מצוין, והכפתור הבלתי-נראה (
️) בפינה הוא פתרון אלגנטי שלא "מפתה" ללחוץ עליו.נקיון קוד: 8.5/10 – הקוד מאורגן היטב, משתמש ב-localStorage וב-sessionStorage בצורה נכונה כדי לשמור על רצף גם לאחר רענון הדף.
ציון סופי: 9.2 (מצוין)
הערות לשיפור או לשינוי:
תלות בתמונת רקע: שים לב שכתובת ה-URL של תמונת הרקע (googleusercontent.com/profile/picture/0) עלולה להישבר או להשתנות.עקיפה דרך "מצב בטוח": כידוע לך, מי שממש ירצה יוכל תמיד להשבית את התוסף כולו דרך תפריט התוספים בדפדפן, אבל נגד "יצר הרע" הרגיל של הגלישה – הסקריפט הזה עושה עבודה מעולה.
בהצלחה בלימוד, בנימין!
-
@ר-יעקב-עייפים בהחלט! יתכן מאוד שאשתמש, ואני בטוח שיש עוד רבים שאם הפוסט הראשי יהיה מונגש להם יותר הם יהנו מזה מאוד!
ייש"כ(אגב, הקוד הוא ai קומפלט, או עריכה שלך? פשוט אתה חדש בפורום (ברוך הבא!) ואין לי את הרזומה שלך...
)Gemini אמר:
שלום בנימין. מדובר בקוד חזק מאוד, וניכר שהוא נכתב מתוך מטרה ברורה של "משמעת ברזל" ומניעת ביטול עצמי של ההגבלות.
להלן סיכום הקוד ודירוג המקצועי שלי:
סיכום תפקודי של הסקריפט
הסקריפט הוא מערכת ניהול זמן וריכוז (Focus) אגרסיבית, שנועדה להגביל את השימוש באתרים מסוימים (מייל, פורומים וצ'אטים) לפרקי זמן קצרים בלבד.מנגנון הגישה (5/60): המשתמש מקבל 5 דקות של גישה חופשית, שלאחריהן האתר ננעל הרמטית ל-60 דקות (Cooldown).
אימות כפול: כדי לפתוח את הנעילה, המשתמש נדרש לעבור מבחן קוגניטיבי (חישוב מתמטי פשוט, הקלדת מילה מהסוף להתחלה ואישור טקסטואלי).
הגנת העורך (Editor Lock): זהו החלק ה"קיצוני" והחכם ביותר – אם תנסה לערוך או למחוק את הסקריפט דרך התוסף, המערכת תנעל את דף העריכה למשך שעתיים, מה שמונע "בריחה" מהירה מהחסימה ברגע של חולשה.
ממשק חזותי: * באתרים חסומים: מסך שחור מוחלט עם הודעות מוסר ("עצור", "האם זה הכרחי?").
באתרים אחרים: סימן מים שקוף עם הכיתוב "לך ללמוד!" כדי להזכיר את המטרה.
טיימר ויזואלי: מציג את הזמן שנותר (בירוק, כתום או אדום מהבהב).
דירוג מקצועי (1-10)
יעילות חסימה: 9.5/10 – השימוש ב-Shadow DOM הופך את המעקף של האלמנטים לקשה מאוד עבור משתמש ממוצע. הנעילה של דף העריכה היא הברקה של ממש למניעת עקיפת הסקריפט.חוויית משתמש (מבחינת המטרה): 9/10 – הטיימר הצבעוני מצוין, והכפתור הבלתי-נראה (
️) בפינה הוא פתרון אלגנטי שלא "מפתה" ללחוץ עליו.נקיון קוד: 8.5/10 – הקוד מאורגן היטב, משתמש ב-localStorage וב-sessionStorage בצורה נכונה כדי לשמור על רצף גם לאחר רענון הדף.
ציון סופי: 9.2 (מצוין)
הערות לשיפור או לשינוי:
תלות בתמונת רקע: שים לב שכתובת ה-URL של תמונת הרקע (googleusercontent.com/profile/picture/0) עלולה להישבר או להשתנות.עקיפה דרך "מצב בטוח": כידוע לך, מי שממש ירצה יוכל תמיד להשבית את התוסף כולו דרך תפריט התוספים בדפדפן, אבל נגד "יצר הרע" הרגיל של הגלישה – הסקריפט הזה עושה עבודה מעולה.
בהצלחה בלימוד, בנימין!
@בנימין-מחשבים כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:
הקוד הוא ai קומפלט
כן חוץ מנקודונת קטנטנה
@בנימין-מחשבים כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:
פשוט אתה חדש בפורום (ברוך הבא!)
תודה רבה! רק שאני לא יודע עדיין לערוך פוסטים נורמלי חבל...
@בנימין-מחשבים כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:
בהחלט! יתכן מאוד שאשתמש, ואני בטוח שיש עוד רבים שאם הפוסט הראשי יהיה מונגש להם יותר הם יהנו מזה מאוד!
תודה רבה זה נותן תחושה ממש טובה...
אתה לא חושב שחבל על הזמן לכתוב קוד כזה לבד?
לא שאני יכול...
-
אין לי זמן כרגע לפרט אז אני מעלה פירוט מ ai. מה שרציתי זה למנוע מעצמי גלישה ובזבוז זמן אשמח למשוב ממכם אם זה עזר גם לכם.
אם אתם רוצים שינויים או שיש לכם הערות אתם לא צריכים אותי - תכתבו לai שלכם את הקוד ואת ההערות הוא כבר יסתדר...
גם לגבי ההתקנה של התוסף אין לי זמן כרגע לפרט תשאלו את ה ai הקרוב אליכם הוא יסביר לכם יותר טוב ממני.
העליתי לבקשת חבר.כמה מילים על התוסף - יצא לי לאחרונה מלא פעמים לשבת על המחשב ולהימרח שעות בצ'אט מייל עם חברים או סתם ככה לעבור שעות באינטרנט בי לשים לב אז יצרתי לעצמי תוסף שגם יתן לי רקע שיגרום לתזכורת ולהפרעה קטנה בגלישה מה שיגרום לי לצמצם את השימוש וגם באתרים שלקחו לי הכי הרבה זמן ביממה האחרונה מייל והפורום עשיתי שבכניסה אליהם אצטרך לענות על כמה חידות וגם זה יפתח אותם ל5 דקות כאשר לאחר מכן הם יסגרו לשעה וכך למעשה אני ימנע בעז"ה מלגלוש מכיוון שלא נוח שיהיו הרבה תוספי כרום אז עשיתי את זה כתוסף שבשביל להתקין אותו צריך להיכנס לפה להתקין את התוסף לאחר מכן ללחוץ על סמל התוסף ואז ללחוץ על Create a new script... ואז למחוק את כל התוכן הקיים להדביק את הקוד מהספוילר ולשמור על ידי לחיצה ctrl + s מייד לאחר מכן תרעננו את הדף של הפורום למשל ותראו ישועות... אולי תצטרכו לתת הרשאות לתוסף Tampermonkey אצלכם לגשת לאתרים לא יודע אצלי יש לו כבר
בהצלחה!
הקוד בספוילר:// ==UserScript== // @name Ultimate Global Blocker - Extreme Editor Lock & Timer // @namespace http://tampermonkey.net/ // @version 32.0 // @description Original timings (5m/60m), original keys, NO black screen on AI, visual timer, INVISIBLE button. // @match *://*/* // @match chrome-extension://dhdgffkkebhmkfjojejmpbldmpobfkfo/* // @run-at document-start // @grant GM_addStyle // ==/UserScript== (function() { 'use strict'; // זמנים מקוריים const ACCESS_DURATION = 5 * 60 * 1000; // 5 דקות const COOLDOWN_DURATION = 60 * 60 * 1000; // 60 דקות צינון const EDITOR_LOCK_DURATION = 120 * 60 * 1000; // שעתיים המתנה לעריכה const GRACE_PERIOD = 15 * 1000; // מפתחות מקוריים const STORAGE_KEY = 'focus_access_data'; const SESSION_KEY = 'shteygen_session_unlocked'; const LAST_UNLOCK_KEY = 'shteygen_last_unlock_time'; const EDITOR_UNLOCK_TIME_KEY = 'shteygen_editor_unlock_time'; const BG_IMAGE_URL = 'https://lh3.googleusercontent.com/gps-cs-s/APNQkAGjf7ZRnX5Zi_LcMWrfBXR4jt-Ood3AHFInk63ZafZzv0o_dKdElR0NRLdkgYORMt6zMUVlHYeAIHAsSarovARTsBKE7voRM2fpFapyKL5gDbnZcbUZdhcPxBBz9hWtCCyRWAWC=w141-h101-n-k-no-nu'; const currentUrl = window.location.href.toLowerCase(); // זיהוי דפים ספציפיים const isMail = currentUrl.includes('mail.google.com'); const isChat = currentUrl.includes('chat.google.com'); const isForum = currentUrl.includes('forum') || currentUrl.includes('mitmachim.top') || currentUrl.includes('tchumim'); const isEditor = currentUrl.includes('dhdgffkkebhmkfjojejmpbldmpobfkfo'); const needsBlackScreen = isMail || isForum || isChat; const needsDisturbance = !isMail && !isChat && !isEditor; if (window.performance && performance.navigation.type === performance.navigation.TYPE_RELOAD) { const lastUnlock = parseInt(sessionStorage.getItem(LAST_UNLOCK_KEY) || '0'); if (Date.now() - lastUnlock > GRACE_PERIOD) { sessionStorage.removeItem(SESSION_KEY); } } const getStatus = () => { const data = JSON.parse(localStorage.getItem(STORAGE_KEY) || '{}'); const sessionUnlocked = sessionStorage.getItem(SESSION_KEY) === 'true'; const now = Date.now(); if (data.expiry && now < data.expiry) { if (needsBlackScreen && !sessionUnlocked) return { state: 'LOCKED_REAUTHENTICATE', timeLeft: data.expiry - now }; return { state: 'UNLOCKED', timeLeft: data.expiry - now }; } if (data.cooldownUntil && now < data.cooldownUntil) return { state: 'COOLDOWN', waitTime: data.cooldownUntil - now }; return { state: 'LOCKED' }; }; GM_addStyle(` html.blocked-mode > body > *:not(#shteygen-host-overlay):not(#shteygen-timer-host) { display: none !important; } html.apply-disturbance::after { content: ''; position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; background-image: url("${BG_IMAGE_URL}"); background-size: cover; background-position: center; opacity: 0.20 !important; z-index: 2147483645; pointer-events: none; } html.apply-disturbance body::after { content: 'לך ללמוד!'; position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%) rotate(-15deg); font-size: 18vw; color: rgba(150, 0, 0, 0.15); z-index: 2147483646; pointer-events: none; white-space: nowrap; font-weight: bold; } `); // חסימת עורך התוסף if (isEditor) { const checkEditorStatus = () => { const unlockTime = localStorage.getItem(EDITOR_UNLOCK_TIME_KEY); const now = Date.now(); if (!unlockTime) { showEditorOverlay("הגישה לעריכת הסקריפט חסומה.", true); } else if (now < parseInt(unlockTime)) { const remainingMinutes = Math.ceil((parseInt(unlockTime) - now) / 60000); showEditorOverlay(`מנגנון השהיה פעיל.<br>העורך ייפתח בעוד ${remainingMinutes} דקות של המתנה.`, false); setTimeout(checkEditorStatus, 30000); } else { const overlay = document.getElementById('hardcore-editor-overlay'); if (overlay) overlay.remove(); document.documentElement.classList.remove('blocked-mode'); } }; const showEditorOverlay = (msg, showButton) => { document.documentElement.classList.add('blocked-mode'); let overlay = document.getElementById('hardcore-editor-overlay'); if (!overlay) { overlay = document.createElement('div'); overlay.id = 'hardcore-editor-overlay'; overlay.style.cssText = 'position: fixed !important; top: 0; left: 0; width: 100vw; height: 100vh; background-color: #000 !important; color: #fff !important; z-index: 2147483647 !important; display: flex; flex-direction: column; align-items: center; justify-content: center; font-size: 25px; font-weight: bold; text-align: center; direction: rtl; font-family: sans-serif; padding: 20px;'; document.documentElement.appendChild(overlay); } overlay.innerHTML = `<div>${msg}</div>`; if (showButton) { const btn = document.createElement('button'); btn.innerText = "התחל המתנה של שעתיים לעריכה"; btn.style.cssText = "margin-top: 20px; padding: 15px 30px; background: #ce0000; color: white; border: none; border-radius: 5px; cursor: pointer; font-size: 18px; font-weight: bold;"; btn.onclick = () => { if(confirm("האם אתה בטוח? תצטרך לחכות שעתיים עד שהדף ייפתח.")) { localStorage.setItem(EDITOR_UNLOCK_TIME_KEY, Date.now() + EDITOR_LOCK_DURATION); checkEditorStatus(); } }; overlay.appendChild(btn); } }; checkEditorStatus(); return; } if (needsDisturbance) document.documentElement.classList.add('apply-disturbance'); const startUnlockProcess = () => { const d = new Date(); if (parseInt(prompt(`כמה זה ${d.getHours()} + ${d.getMinutes()}?`)) !== (d.getHours() + d.getMinutes())) return; const word = ["התמדה", "לימוד", "ריכוז"][Math.floor(Math.random() * 3)]; if (prompt(`הקלד '${word}' מהסוף להתחלה:`) !== word.split('').reverse().join('')) return; if (prompt("הקלד: 'אישור כניסה קצרה'") === "אישור כניסה קצרה") { const now = Date.now(); const data = JSON.parse(localStorage.getItem(STORAGE_KEY) || '{}'); if (!data.expiry || now > data.expiry) { localStorage.setItem(STORAGE_KEY, JSON.stringify({ expiry: now + ACCESS_DURATION, cooldownUntil: now + ACCESS_DURATION + COOLDOWN_DURATION })); } sessionStorage.setItem(SESSION_KEY, 'true'); sessionStorage.setItem(LAST_UNLOCK_KEY, now.toString()); location.reload(); } }; const renderShadowOverlay = (status) => { document.documentElement.classList.add('blocked-mode'); let host = document.getElementById('shteygen-host-overlay'); if (!host) { host = document.createElement('div'); host.id = 'shteygen-host-overlay'; host.style.cssText = 'position: fixed !important; top: 0 !important; left: 0 !important; width: 100vw !important; height: 100vh !important; z-index: 2147483647 !important;'; document.documentElement.appendChild(host); const shadow = host.attachShadow({mode: 'open'}); const container = document.createElement('div'); container.id = 'shadow-content'; shadow.appendChild(container); } const shadow = host.shadowRoot; const container = shadow.getElementById('shadow-content'); container.style.cssText = 'position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: #000; display: flex; flex-direction: column; align-items: center; justify-content: center; font-family: sans-serif; direction: rtl; color: white;'; if (status.state === 'COOLDOWN') { const minLeft = Math.ceil(status.waitTime / 60000); container.innerHTML = `<div style="text-align: center;"><span style="font-size: 30px; font-weight: bold;">תם הזמן.</span><br><br><span style="font-size: 22px; color: #ff4444; font-weight: bold;">נא לחזור ללימודים.<br>הגישה תתאפשר בעוד ${minLeft} דקות.</span></div>`; } else { container.innerHTML = `<div style="text-align: center;"><span style="font-size: 30px; font-weight: bold;">עצור.</span><br><br><span style="font-size: 22px; color: #888888; font-weight: bold;">האם זה הכרחי עכשיו?</span></div>`; const btn = document.createElement('button'); btn.innerText = '⚙️'; // הכפתור חזר להיות כמעט בלתי נראה לחלוטין (שקוף) btn.style.cssText = 'position: absolute; bottom: 15px; left: 15px; background: transparent; border: none; color: rgba(255, 255, 255, 0.05); cursor: pointer; font-size: 20px; padding: 0; margin: 0; outline: none;'; btn.onclick = startUnlockProcess; container.appendChild(btn); } }; const renderShadowTimer = (timeLeft) => { let host = document.getElementById('shteygen-timer-host'); if (!host) { host = document.createElement('div'); host.id = 'shteygen-timer-host'; host.style.cssText = 'position: fixed !important; top: 15px !important; right: 15px !important; z-index: 2147483647 !important; pointer-events: none !important;'; document.documentElement.appendChild(host); const shadow = host.attachShadow({mode: 'open'}); const style = document.createElement('style'); style.textContent = `@keyframes urgentBlink { 0% { opacity: 1; } 50% { opacity: 0.5; } 100% { opacity: 1; } }`; shadow.appendChild(style); const timerDiv = document.createElement('div'); timerDiv.id = 'timer-content'; shadow.appendChild(timerDiv); } const shadow = host.shadowRoot; const timerDiv = shadow.getElementById('timer-content'); const mins = Math.floor(timeLeft / 60000); const secs = Math.floor((timeLeft % 60000) / 1000); const timeString = `${mins}:${secs.toString().padStart(2, '0')}`; let bgColor = '#2ecc71'; let animation = 'none'; if (timeLeft <= 30 * 1000) { bgColor = '#e74c3c'; animation = 'urgentBlink 1s infinite'; } else if (timeLeft <= 90 * 1000) { bgColor = '#f39c12'; } timerDiv.style.cssText = `background-color: ${bgColor}; color: #fff; padding: 10px 20px; font-size: 24px; font-weight: bold; font-family: monospace; border-radius: 8px; box-shadow: 0 4px 6px rgba(0,0,0,0.3); border: 2px solid rgba(255,255,255,0.5); direction: ltr; animation: ${animation};`; timerDiv.innerText = timeString; }; if (needsBlackScreen) { setInterval(() => { const status = getStatus(); if (status.state === 'UNLOCKED') { document.documentElement.classList.remove('blocked-mode'); const overlayHost = document.getElementById('shteygen-host-overlay'); if (overlayHost) overlayHost.remove(); renderShadowTimer(status.timeLeft); if (status.timeLeft <= 0) location.reload(); } else { const timerHost = document.getElementById('shteygen-timer-host'); if (timerHost) timerHost.remove(); renderShadowOverlay(status); } }, 500); } })();סיכום על התוסף מ ai
הכירו את ה-Ultimate Focus Script: המערכת שתכריח אתכם ללמוד
הסקריפט הזה נולד מתוך צורך אמיתי: להפסיק לבזבז זמן. הוא מיועד לאנשים שרוצים שהמחשב שלהם יהפוך מכלי של הסחת דעת לכלי של עבודה ולימוד בלבד. הוא לא מבקש מכם יפה – הוא פשוט לא משאיר לכם ברירה.- הקונספט המרכזי: חוק ה-5/60
הסקריפט פועל לפי לוגיקה פשוטה וחסרת רחמים:
5 דקות של חסד: פעם בשעה, ניתן לפתוח גישה לאתרים "רגישים" (מייל, צ'אט, פורומים) למשך 5 דקות בלבד.
60 דקות של נעילה: ברגע שהחמש דקות נגמרו, האתרים הללו ננעלים הרמטית למשך שעה שלמה. אין כפתור "ביטול", ואין אפשרות להיכנס שוב עד שהשעון מסיים לספור.
- מחסום הכניסה: "המבוך הקוגניטיבי"
כדי לפתוח את אותן 5 דקות, אתם צריכים להוכיח ריכוז. הסקריפט מציג מסך שחור אטום עם משימות משתנות (רנדומליות):
תרגיל חשבון: חישובים דינמיים (למשל: השעה הנוכחית + הדקות כפול 2).
אתגר מילולי: הקלדת מילים מהסוף להתחלה (כדי לוודא שהמוח שלכם עובד).
התחייבות: הקלדת משפט הצהרה ("אני נכנס רק לזמן קצר").
מנגנון רענון: אם תנסו לרענן את הדף כדי "לברוח" מהמסך השחור – הוא יופיע שוב וידרוש את המשימות מחדש.
- ההפרעה הויזואלית (Visual Disturbance)
בכל שאר האתרים ברשת (אלו שלא נחסמים ב-5/60 כמו גימיני או אתרי חיפוש), הסקריפט יוצר אווירה של עבודה:
תמונה ברורה ברקע: רקע של סביבת לימוד רצינית שמונח מעל האתר בשקיפות מסוימת.
טקסט מעורר: הכיתוב "לך ללמוד!" מופיע בגודל ענק על כל המסך.
מטרה: להזכיר לכם בכל שנייה שאתם לא שם בשביל הכיף, אלא בשביל מטרה ספציפית.
-
החרגת המייל (היעילות קודמת לכל)
כדי לא לפגוע בעבודה השוטפת, בתוך ה-5 דקות של המייל, הרקע והכיתוב המפריע נעלמים. המטרה היא לתת לכם 5 דקות של עבודה נקייה ומהירה, ומיד אחרי זה – חזרה ללימודים. -
ההגנה מפני עקיפה (Anti-Cheat)
כאן נמצא ה"קאץ'" האמיתי. מה ימנע מכם פשוט לכבות את התוסף או לערוך את הקוד?
נעילת עורך הסקריפטים: אם תנסו להיכנס לדף העריכה של הסקריפט כדי לשנות את הזמנים או למחוק אותו, תיתקלו במסך שחור.
המתנה של שעתיים: כדי לגשת לקוד העריכה, תצטרכו ללחוץ על כפתור שמפעיל ספירה לאחור של 120 דקות. רק אחרי שעתיים של המתנה אקטיבית, הקוד ייפתח לעריכה.
סיכום טכני:
שפת תכנות: JavaScript (Tampermonkey).אתרים כלולים: מייל, צ'אט, פורומים ספציפיים (כולל מתמחים טופ).
זמנים: 5 דקות עבודה / 60 דקות צינון / שעתיים נעילת עריכה.
סיכום בקצרה על התוסף מ ai
הסקריפט שינצח את הסחות הדעת: סיכום בחמש נקודות
חוק ה-5/60: גישה מוגבלת ל-5 דקות בלבד למייל ולפורומים, ולאחריהן חסימה מוחלטת ל-60 דקות (ללא יוצא מן הכלל).מבחני ריכוז בכניסה: כדי לפתוח את הגישה, עליכם לעבור אתגרים משתנים של חשבון, הגיון והקלדה.
הפרעה חזותית קבועה: בכל שאר האתרים מופיע רקע של בית מדרש עם הכיתוב "לך ללמוד!" בגודל ענק, כדי להזכיר לכם מה העיקר.
מנגנון "אנטי-רמאות": הסקריפט מזהה ריענוני דף (F5) ונועל אתכם מחדש, מה שמכריח אתכם להישאר מרוכזים בתוך ה-5 דקות.
חסימת עריכה: ניסיון לשנות את הקוד או לכבות אותו דורש המתנה אקטיבית של שעתיים לפני שהגישה לעריכה נפתחת.
בשורה התחתונה: זה לא "תוסף חסימה", זו מערכת שלמה שכופה עליכם משמעת עצמית ברזל.
תמונות בספוילר

אם אתם רוצים להמשיך תלחצו כאן
בהצלחה!!
זמן פורה ומוצלח!!אם אתם רוצים שאני יערוך לכם משהו בכ"א תכתבו
וכן אשמח לשמוע אם יש עניין להפוך את זה לתוסף כרום...
טוב אני זזתי לישיבה כדי לא לאבד את האפקט... תעשו אם זה מה שאתם רוצים מי שרוצה לשפר את זה או לא יודע מה אין לי שום בעיה! העיקר שאצלי הדפדפן מגביל...
@ר-יעקב-עייפים כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:
כמה מילים על התוסף - יצא לי לאחרונה מלא פעמים לשבת על המחשב ולהימרח שעות בצ'אט מייל עם חברים או סתם ככה לעבור שעות באינטרנט בי לשים לב אז יצרתי לעצמי תוסף שגם יתן לי רקע שיגרום לתזכורת ולהפרעה קטנה בגלישה
זה ממש יכול להועיל [היה מתאים יותר לבין הזמנים, אבל בכל זמן זה טוב, רעיון מעולה]
כדאי לעשות גם כתוסף לכרום - הקונספט המרכזי: חוק ה-5/60
-
אין לי זמן כרגע לפרט אז אני מעלה פירוט מ ai. מה שרציתי זה למנוע מעצמי גלישה ובזבוז זמן אשמח למשוב ממכם אם זה עזר גם לכם.
אם אתם רוצים שינויים או שיש לכם הערות אתם לא צריכים אותי - תכתבו לai שלכם את הקוד ואת ההערות הוא כבר יסתדר...
גם לגבי ההתקנה של התוסף אין לי זמן כרגע לפרט תשאלו את ה ai הקרוב אליכם הוא יסביר לכם יותר טוב ממני.
העליתי לבקשת חבר.כמה מילים על התוסף - יצא לי לאחרונה מלא פעמים לשבת על המחשב ולהימרח שעות בצ'אט מייל עם חברים או סתם ככה לעבור שעות באינטרנט בי לשים לב אז יצרתי לעצמי תוסף שגם יתן לי רקע שיגרום לתזכורת ולהפרעה קטנה בגלישה מה שיגרום לי לצמצם את השימוש וגם באתרים שלקחו לי הכי הרבה זמן ביממה האחרונה מייל והפורום עשיתי שבכניסה אליהם אצטרך לענות על כמה חידות וגם זה יפתח אותם ל5 דקות כאשר לאחר מכן הם יסגרו לשעה וכך למעשה אני ימנע בעז"ה מלגלוש מכיוון שלא נוח שיהיו הרבה תוספי כרום אז עשיתי את זה כתוסף שבשביל להתקין אותו צריך להיכנס לפה להתקין את התוסף לאחר מכן ללחוץ על סמל התוסף ואז ללחוץ על Create a new script... ואז למחוק את כל התוכן הקיים להדביק את הקוד מהספוילר ולשמור על ידי לחיצה ctrl + s מייד לאחר מכן תרעננו את הדף של הפורום למשל ותראו ישועות... אולי תצטרכו לתת הרשאות לתוסף Tampermonkey אצלכם לגשת לאתרים לא יודע אצלי יש לו כבר
בהצלחה!
הקוד בספוילר:// ==UserScript== // @name Ultimate Global Blocker - Extreme Editor Lock & Timer // @namespace http://tampermonkey.net/ // @version 32.0 // @description Original timings (5m/60m), original keys, NO black screen on AI, visual timer, INVISIBLE button. // @match *://*/* // @match chrome-extension://dhdgffkkebhmkfjojejmpbldmpobfkfo/* // @run-at document-start // @grant GM_addStyle // ==/UserScript== (function() { 'use strict'; // זמנים מקוריים const ACCESS_DURATION = 5 * 60 * 1000; // 5 דקות const COOLDOWN_DURATION = 60 * 60 * 1000; // 60 דקות צינון const EDITOR_LOCK_DURATION = 120 * 60 * 1000; // שעתיים המתנה לעריכה const GRACE_PERIOD = 15 * 1000; // מפתחות מקוריים const STORAGE_KEY = 'focus_access_data'; const SESSION_KEY = 'shteygen_session_unlocked'; const LAST_UNLOCK_KEY = 'shteygen_last_unlock_time'; const EDITOR_UNLOCK_TIME_KEY = 'shteygen_editor_unlock_time'; const BG_IMAGE_URL = 'https://lh3.googleusercontent.com/gps-cs-s/APNQkAGjf7ZRnX5Zi_LcMWrfBXR4jt-Ood3AHFInk63ZafZzv0o_dKdElR0NRLdkgYORMt6zMUVlHYeAIHAsSarovARTsBKE7voRM2fpFapyKL5gDbnZcbUZdhcPxBBz9hWtCCyRWAWC=w141-h101-n-k-no-nu'; const currentUrl = window.location.href.toLowerCase(); // זיהוי דפים ספציפיים const isMail = currentUrl.includes('mail.google.com'); const isChat = currentUrl.includes('chat.google.com'); const isForum = currentUrl.includes('forum') || currentUrl.includes('mitmachim.top') || currentUrl.includes('tchumim'); const isEditor = currentUrl.includes('dhdgffkkebhmkfjojejmpbldmpobfkfo'); const needsBlackScreen = isMail || isForum || isChat; const needsDisturbance = !isMail && !isChat && !isEditor; if (window.performance && performance.navigation.type === performance.navigation.TYPE_RELOAD) { const lastUnlock = parseInt(sessionStorage.getItem(LAST_UNLOCK_KEY) || '0'); if (Date.now() - lastUnlock > GRACE_PERIOD) { sessionStorage.removeItem(SESSION_KEY); } } const getStatus = () => { const data = JSON.parse(localStorage.getItem(STORAGE_KEY) || '{}'); const sessionUnlocked = sessionStorage.getItem(SESSION_KEY) === 'true'; const now = Date.now(); if (data.expiry && now < data.expiry) { if (needsBlackScreen && !sessionUnlocked) return { state: 'LOCKED_REAUTHENTICATE', timeLeft: data.expiry - now }; return { state: 'UNLOCKED', timeLeft: data.expiry - now }; } if (data.cooldownUntil && now < data.cooldownUntil) return { state: 'COOLDOWN', waitTime: data.cooldownUntil - now }; return { state: 'LOCKED' }; }; GM_addStyle(` html.blocked-mode > body > *:not(#shteygen-host-overlay):not(#shteygen-timer-host) { display: none !important; } html.apply-disturbance::after { content: ''; position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; background-image: url("${BG_IMAGE_URL}"); background-size: cover; background-position: center; opacity: 0.20 !important; z-index: 2147483645; pointer-events: none; } html.apply-disturbance body::after { content: 'לך ללמוד!'; position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%) rotate(-15deg); font-size: 18vw; color: rgba(150, 0, 0, 0.15); z-index: 2147483646; pointer-events: none; white-space: nowrap; font-weight: bold; } `); // חסימת עורך התוסף if (isEditor) { const checkEditorStatus = () => { const unlockTime = localStorage.getItem(EDITOR_UNLOCK_TIME_KEY); const now = Date.now(); if (!unlockTime) { showEditorOverlay("הגישה לעריכת הסקריפט חסומה.", true); } else if (now < parseInt(unlockTime)) { const remainingMinutes = Math.ceil((parseInt(unlockTime) - now) / 60000); showEditorOverlay(`מנגנון השהיה פעיל.<br>העורך ייפתח בעוד ${remainingMinutes} דקות של המתנה.`, false); setTimeout(checkEditorStatus, 30000); } else { const overlay = document.getElementById('hardcore-editor-overlay'); if (overlay) overlay.remove(); document.documentElement.classList.remove('blocked-mode'); } }; const showEditorOverlay = (msg, showButton) => { document.documentElement.classList.add('blocked-mode'); let overlay = document.getElementById('hardcore-editor-overlay'); if (!overlay) { overlay = document.createElement('div'); overlay.id = 'hardcore-editor-overlay'; overlay.style.cssText = 'position: fixed !important; top: 0; left: 0; width: 100vw; height: 100vh; background-color: #000 !important; color: #fff !important; z-index: 2147483647 !important; display: flex; flex-direction: column; align-items: center; justify-content: center; font-size: 25px; font-weight: bold; text-align: center; direction: rtl; font-family: sans-serif; padding: 20px;'; document.documentElement.appendChild(overlay); } overlay.innerHTML = `<div>${msg}</div>`; if (showButton) { const btn = document.createElement('button'); btn.innerText = "התחל המתנה של שעתיים לעריכה"; btn.style.cssText = "margin-top: 20px; padding: 15px 30px; background: #ce0000; color: white; border: none; border-radius: 5px; cursor: pointer; font-size: 18px; font-weight: bold;"; btn.onclick = () => { if(confirm("האם אתה בטוח? תצטרך לחכות שעתיים עד שהדף ייפתח.")) { localStorage.setItem(EDITOR_UNLOCK_TIME_KEY, Date.now() + EDITOR_LOCK_DURATION); checkEditorStatus(); } }; overlay.appendChild(btn); } }; checkEditorStatus(); return; } if (needsDisturbance) document.documentElement.classList.add('apply-disturbance'); const startUnlockProcess = () => { const d = new Date(); if (parseInt(prompt(`כמה זה ${d.getHours()} + ${d.getMinutes()}?`)) !== (d.getHours() + d.getMinutes())) return; const word = ["התמדה", "לימוד", "ריכוז"][Math.floor(Math.random() * 3)]; if (prompt(`הקלד '${word}' מהסוף להתחלה:`) !== word.split('').reverse().join('')) return; if (prompt("הקלד: 'אישור כניסה קצרה'") === "אישור כניסה קצרה") { const now = Date.now(); const data = JSON.parse(localStorage.getItem(STORAGE_KEY) || '{}'); if (!data.expiry || now > data.expiry) { localStorage.setItem(STORAGE_KEY, JSON.stringify({ expiry: now + ACCESS_DURATION, cooldownUntil: now + ACCESS_DURATION + COOLDOWN_DURATION })); } sessionStorage.setItem(SESSION_KEY, 'true'); sessionStorage.setItem(LAST_UNLOCK_KEY, now.toString()); location.reload(); } }; const renderShadowOverlay = (status) => { document.documentElement.classList.add('blocked-mode'); let host = document.getElementById('shteygen-host-overlay'); if (!host) { host = document.createElement('div'); host.id = 'shteygen-host-overlay'; host.style.cssText = 'position: fixed !important; top: 0 !important; left: 0 !important; width: 100vw !important; height: 100vh !important; z-index: 2147483647 !important;'; document.documentElement.appendChild(host); const shadow = host.attachShadow({mode: 'open'}); const container = document.createElement('div'); container.id = 'shadow-content'; shadow.appendChild(container); } const shadow = host.shadowRoot; const container = shadow.getElementById('shadow-content'); container.style.cssText = 'position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: #000; display: flex; flex-direction: column; align-items: center; justify-content: center; font-family: sans-serif; direction: rtl; color: white;'; if (status.state === 'COOLDOWN') { const minLeft = Math.ceil(status.waitTime / 60000); container.innerHTML = `<div style="text-align: center;"><span style="font-size: 30px; font-weight: bold;">תם הזמן.</span><br><br><span style="font-size: 22px; color: #ff4444; font-weight: bold;">נא לחזור ללימודים.<br>הגישה תתאפשר בעוד ${minLeft} דקות.</span></div>`; } else { container.innerHTML = `<div style="text-align: center;"><span style="font-size: 30px; font-weight: bold;">עצור.</span><br><br><span style="font-size: 22px; color: #888888; font-weight: bold;">האם זה הכרחי עכשיו?</span></div>`; const btn = document.createElement('button'); btn.innerText = '⚙️'; // הכפתור חזר להיות כמעט בלתי נראה לחלוטין (שקוף) btn.style.cssText = 'position: absolute; bottom: 15px; left: 15px; background: transparent; border: none; color: rgba(255, 255, 255, 0.05); cursor: pointer; font-size: 20px; padding: 0; margin: 0; outline: none;'; btn.onclick = startUnlockProcess; container.appendChild(btn); } }; const renderShadowTimer = (timeLeft) => { let host = document.getElementById('shteygen-timer-host'); if (!host) { host = document.createElement('div'); host.id = 'shteygen-timer-host'; host.style.cssText = 'position: fixed !important; top: 15px !important; right: 15px !important; z-index: 2147483647 !important; pointer-events: none !important;'; document.documentElement.appendChild(host); const shadow = host.attachShadow({mode: 'open'}); const style = document.createElement('style'); style.textContent = `@keyframes urgentBlink { 0% { opacity: 1; } 50% { opacity: 0.5; } 100% { opacity: 1; } }`; shadow.appendChild(style); const timerDiv = document.createElement('div'); timerDiv.id = 'timer-content'; shadow.appendChild(timerDiv); } const shadow = host.shadowRoot; const timerDiv = shadow.getElementById('timer-content'); const mins = Math.floor(timeLeft / 60000); const secs = Math.floor((timeLeft % 60000) / 1000); const timeString = `${mins}:${secs.toString().padStart(2, '0')}`; let bgColor = '#2ecc71'; let animation = 'none'; if (timeLeft <= 30 * 1000) { bgColor = '#e74c3c'; animation = 'urgentBlink 1s infinite'; } else if (timeLeft <= 90 * 1000) { bgColor = '#f39c12'; } timerDiv.style.cssText = `background-color: ${bgColor}; color: #fff; padding: 10px 20px; font-size: 24px; font-weight: bold; font-family: monospace; border-radius: 8px; box-shadow: 0 4px 6px rgba(0,0,0,0.3); border: 2px solid rgba(255,255,255,0.5); direction: ltr; animation: ${animation};`; timerDiv.innerText = timeString; }; if (needsBlackScreen) { setInterval(() => { const status = getStatus(); if (status.state === 'UNLOCKED') { document.documentElement.classList.remove('blocked-mode'); const overlayHost = document.getElementById('shteygen-host-overlay'); if (overlayHost) overlayHost.remove(); renderShadowTimer(status.timeLeft); if (status.timeLeft <= 0) location.reload(); } else { const timerHost = document.getElementById('shteygen-timer-host'); if (timerHost) timerHost.remove(); renderShadowOverlay(status); } }, 500); } })();סיכום על התוסף מ ai
הכירו את ה-Ultimate Focus Script: המערכת שתכריח אתכם ללמוד
הסקריפט הזה נולד מתוך צורך אמיתי: להפסיק לבזבז זמן. הוא מיועד לאנשים שרוצים שהמחשב שלהם יהפוך מכלי של הסחת דעת לכלי של עבודה ולימוד בלבד. הוא לא מבקש מכם יפה – הוא פשוט לא משאיר לכם ברירה.- הקונספט המרכזי: חוק ה-5/60
הסקריפט פועל לפי לוגיקה פשוטה וחסרת רחמים:
5 דקות של חסד: פעם בשעה, ניתן לפתוח גישה לאתרים "רגישים" (מייל, צ'אט, פורומים) למשך 5 דקות בלבד.
60 דקות של נעילה: ברגע שהחמש דקות נגמרו, האתרים הללו ננעלים הרמטית למשך שעה שלמה. אין כפתור "ביטול", ואין אפשרות להיכנס שוב עד שהשעון מסיים לספור.
- מחסום הכניסה: "המבוך הקוגניטיבי"
כדי לפתוח את אותן 5 דקות, אתם צריכים להוכיח ריכוז. הסקריפט מציג מסך שחור אטום עם משימות משתנות (רנדומליות):
תרגיל חשבון: חישובים דינמיים (למשל: השעה הנוכחית + הדקות כפול 2).
אתגר מילולי: הקלדת מילים מהסוף להתחלה (כדי לוודא שהמוח שלכם עובד).
התחייבות: הקלדת משפט הצהרה ("אני נכנס רק לזמן קצר").
מנגנון רענון: אם תנסו לרענן את הדף כדי "לברוח" מהמסך השחור – הוא יופיע שוב וידרוש את המשימות מחדש.
- ההפרעה הויזואלית (Visual Disturbance)
בכל שאר האתרים ברשת (אלו שלא נחסמים ב-5/60 כמו גימיני או אתרי חיפוש), הסקריפט יוצר אווירה של עבודה:
תמונה ברורה ברקע: רקע של סביבת לימוד רצינית שמונח מעל האתר בשקיפות מסוימת.
טקסט מעורר: הכיתוב "לך ללמוד!" מופיע בגודל ענק על כל המסך.
מטרה: להזכיר לכם בכל שנייה שאתם לא שם בשביל הכיף, אלא בשביל מטרה ספציפית.
-
החרגת המייל (היעילות קודמת לכל)
כדי לא לפגוע בעבודה השוטפת, בתוך ה-5 דקות של המייל, הרקע והכיתוב המפריע נעלמים. המטרה היא לתת לכם 5 דקות של עבודה נקייה ומהירה, ומיד אחרי זה – חזרה ללימודים. -
ההגנה מפני עקיפה (Anti-Cheat)
כאן נמצא ה"קאץ'" האמיתי. מה ימנע מכם פשוט לכבות את התוסף או לערוך את הקוד?
נעילת עורך הסקריפטים: אם תנסו להיכנס לדף העריכה של הסקריפט כדי לשנות את הזמנים או למחוק אותו, תיתקלו במסך שחור.
המתנה של שעתיים: כדי לגשת לקוד העריכה, תצטרכו ללחוץ על כפתור שמפעיל ספירה לאחור של 120 דקות. רק אחרי שעתיים של המתנה אקטיבית, הקוד ייפתח לעריכה.
סיכום טכני:
שפת תכנות: JavaScript (Tampermonkey).אתרים כלולים: מייל, צ'אט, פורומים ספציפיים (כולל מתמחים טופ).
זמנים: 5 דקות עבודה / 60 דקות צינון / שעתיים נעילת עריכה.
סיכום בקצרה על התוסף מ ai
הסקריפט שינצח את הסחות הדעת: סיכום בחמש נקודות
חוק ה-5/60: גישה מוגבלת ל-5 דקות בלבד למייל ולפורומים, ולאחריהן חסימה מוחלטת ל-60 דקות (ללא יוצא מן הכלל).מבחני ריכוז בכניסה: כדי לפתוח את הגישה, עליכם לעבור אתגרים משתנים של חשבון, הגיון והקלדה.
הפרעה חזותית קבועה: בכל שאר האתרים מופיע רקע של בית מדרש עם הכיתוב "לך ללמוד!" בגודל ענק, כדי להזכיר לכם מה העיקר.
מנגנון "אנטי-רמאות": הסקריפט מזהה ריענוני דף (F5) ונועל אתכם מחדש, מה שמכריח אתכם להישאר מרוכזים בתוך ה-5 דקות.
חסימת עריכה: ניסיון לשנות את הקוד או לכבות אותו דורש המתנה אקטיבית של שעתיים לפני שהגישה לעריכה נפתחת.
בשורה התחתונה: זה לא "תוסף חסימה", זו מערכת שלמה שכופה עליכם משמעת עצמית ברזל.
תמונות בספוילר

אם אתם רוצים להמשיך תלחצו כאן
בהצלחה!!
זמן פורה ומוצלח!!אם אתם רוצים שאני יערוך לכם משהו בכ"א תכתבו
וכן אשמח לשמוע אם יש עניין להפוך את זה לתוסף כרום...
טוב אני זזתי לישיבה כדי לא לאבד את האפקט... תעשו אם זה מה שאתם רוצים מי שרוצה לשפר את זה או לא יודע מה אין לי שום בעיה! העיקר שאצלי הדפדפן מגביל...
@ר-יעקב-עייפים כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:
מכיוון שלא נוח שיהיו הרבה תוספי כרום אז עשיתי את זה כתוסף שבשביל להתקין אותו צריך להיכנס לפה להתקין את התוסף לאחר מכן ללחוץ על סמל התוסף ואז ללחוץ על Create a new script... ואז למחוק את כל התוכן הקיים להדביק את הקוד מהספוילר ולשמור על ידי לחיצה ctrl + s
סתם לקחת קישור של תוסף אבל אפשר לשנות את זה בכל תוסף או שלא בגלל שזה משנה רק קובץ אחד וכל השאר אותו דבר?
סתם בשביל הידע האישי שלי
- הקונספט המרכזי: חוק ה-5/60
-
@ר-יעקב-עייפים כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:
מכיוון שלא נוח שיהיו הרבה תוספי כרום אז עשיתי את זה כתוסף שבשביל להתקין אותו צריך להיכנס לפה להתקין את התוסף לאחר מכן ללחוץ על סמל התוסף ואז ללחוץ על Create a new script... ואז למחוק את כל התוכן הקיים להדביק את הקוד מהספוילר ולשמור על ידי לחיצה ctrl + s
סתם לקחת קישור של תוסף אבל אפשר לשנות את זה בכל תוסף או שלא בגלל שזה משנה רק קובץ אחד וכל השאר אותו דבר?
סתם בשביל הידע האישי שלי
@י.ר.ק כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:
סתם לקחת קישור של תוסף אבל אפשר לשנות את זה בכל תוסף או שלא בגלל שזה משנה רק קובץ אחד וכל השאר אותו דבר?
לא הבנתי אותך.
@לשכת-הרב כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:
כדאי לעשות גם כתוסף לכרום
אני צריך לעשות עוד כמה עידכונים ואז אני אצור תוסף לכרום יש הרבה דברים שצריך לשנות בעיקר להקל על ההתאמה אישית ולחסום עריכה.
אני יוכל לעשות את זה רק בשבת חופשית- עוד חודש בי.
אין לי בעיה שמישהו אחר יטפל בזה ויקח הכל. -
@י.ר.ק כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:
סתם לקחת קישור של תוסף אבל אפשר לשנות את זה בכל תוסף או שלא בגלל שזה משנה רק קובץ אחד וכל השאר אותו דבר?
לא הבנתי אותך.
@לשכת-הרב כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:
כדאי לעשות גם כתוסף לכרום
אני צריך לעשות עוד כמה עידכונים ואז אני אצור תוסף לכרום יש הרבה דברים שצריך לשנות בעיקר להקל על ההתאמה אישית ולחסום עריכה.
אני יוכל לעשות את זה רק בשבת חופשית- עוד חודש בי.
אין לי בעיה שמישהו אחר יטפל בזה ויקח הכל.@ר-יעקב-עייפים כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:
לא הבנתי אותך.
פשוט הבאת קישור של תוסף שלא קשור לתוסף שלך ואמרת לשנות את הקוד אז אני שואאל האם אני יכול להוריד תוסף אחר ולשנות את הקוד או שבחרת דווקא בתוסף הזה כי בתוסף הזה כל הקבצים הם אותו קוד חוץ ממה שמשנים?
-
@ר-יעקב-עייפים כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:
לא הבנתי אותך.
פשוט הבאת קישור של תוסף שלא קשור לתוסף שלך ואמרת לשנות את הקוד אז אני שואאל האם אני יכול להוריד תוסף אחר ולשנות את הקוד או שבחרת דווקא בתוסף הזה כי בתוסף הזה כל הקבצים הם אותו קוד חוץ ממה שמשנים?
@י.ר.ק כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:
פשוט הבאת קישור של תוסף שלא קשור לתוסף שלך ואמרת לשנות את הקוד אז אני שואאל האם אני יכול להוריד תוסף אחר ולשנות את הקוד או שבחרת דווקא בתוסף הזה כי בתוסף הזה כל הקבצים הם אותו קוד חוץ ממה שמשנים?
לא התוסף ההוא ספציפית מיועד להרצת קוד אוניברסלי לזה הוא מיועד.
-
@י.ר.ק כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:
פשוט הבאת קישור של תוסף שלא קשור לתוסף שלך ואמרת לשנות את הקוד אז אני שואאל האם אני יכול להוריד תוסף אחר ולשנות את הקוד או שבחרת דווקא בתוסף הזה כי בתוסף הזה כל הקבצים הם אותו קוד חוץ ממה שמשנים?
לא התוסף ההוא ספציפית מיועד להרצת קוד אוניברסלי לזה הוא מיועד.
@ר-יעקב-עייפים טוב לדעת ואיזה קוד הבאת להדביק js/ג'סון
-
אין לי זמן כרגע לפרט אז אני מעלה פירוט מ ai. מה שרציתי זה למנוע מעצמי גלישה ובזבוז זמן אשמח למשוב ממכם אם זה עזר גם לכם.
אם אתם רוצים שינויים או שיש לכם הערות אתם לא צריכים אותי - תכתבו לai שלכם את הקוד ואת ההערות הוא כבר יסתדר...
גם לגבי ההתקנה של התוסף אין לי זמן כרגע לפרט תשאלו את ה ai הקרוב אליכם הוא יסביר לכם יותר טוב ממני.
העליתי לבקשת חבר.כמה מילים על התוסף - יצא לי לאחרונה מלא פעמים לשבת על המחשב ולהימרח שעות בצ'אט מייל עם חברים או סתם ככה לעבור שעות באינטרנט בי לשים לב אז יצרתי לעצמי תוסף שגם יתן לי רקע שיגרום לתזכורת ולהפרעה קטנה בגלישה מה שיגרום לי לצמצם את השימוש וגם באתרים שלקחו לי הכי הרבה זמן ביממה האחרונה מייל והפורום עשיתי שבכניסה אליהם אצטרך לענות על כמה חידות וגם זה יפתח אותם ל5 דקות כאשר לאחר מכן הם יסגרו לשעה וכך למעשה אני ימנע בעז"ה מלגלוש מכיוון שלא נוח שיהיו הרבה תוספי כרום אז עשיתי את זה כתוסף שבשביל להתקין אותו צריך להיכנס לפה להתקין את התוסף לאחר מכן ללחוץ על סמל התוסף ואז ללחוץ על Create a new script... ואז למחוק את כל התוכן הקיים להדביק את הקוד מהספוילר ולשמור על ידי לחיצה ctrl + s מייד לאחר מכן תרעננו את הדף של הפורום למשל ותראו ישועות... אולי תצטרכו לתת הרשאות לתוסף Tampermonkey אצלכם לגשת לאתרים לא יודע אצלי יש לו כבר
בהצלחה!
הקוד בספוילר:// ==UserScript== // @name Ultimate Global Blocker - Extreme Editor Lock & Timer // @namespace http://tampermonkey.net/ // @version 32.0 // @description Original timings (5m/60m), original keys, NO black screen on AI, visual timer, INVISIBLE button. // @match *://*/* // @match chrome-extension://dhdgffkkebhmkfjojejmpbldmpobfkfo/* // @run-at document-start // @grant GM_addStyle // ==/UserScript== (function() { 'use strict'; // זמנים מקוריים const ACCESS_DURATION = 5 * 60 * 1000; // 5 דקות const COOLDOWN_DURATION = 60 * 60 * 1000; // 60 דקות צינון const EDITOR_LOCK_DURATION = 120 * 60 * 1000; // שעתיים המתנה לעריכה const GRACE_PERIOD = 15 * 1000; // מפתחות מקוריים const STORAGE_KEY = 'focus_access_data'; const SESSION_KEY = 'shteygen_session_unlocked'; const LAST_UNLOCK_KEY = 'shteygen_last_unlock_time'; const EDITOR_UNLOCK_TIME_KEY = 'shteygen_editor_unlock_time'; const BG_IMAGE_URL = 'https://lh3.googleusercontent.com/gps-cs-s/APNQkAGjf7ZRnX5Zi_LcMWrfBXR4jt-Ood3AHFInk63ZafZzv0o_dKdElR0NRLdkgYORMt6zMUVlHYeAIHAsSarovARTsBKE7voRM2fpFapyKL5gDbnZcbUZdhcPxBBz9hWtCCyRWAWC=w141-h101-n-k-no-nu'; const currentUrl = window.location.href.toLowerCase(); // זיהוי דפים ספציפיים const isMail = currentUrl.includes('mail.google.com'); const isChat = currentUrl.includes('chat.google.com'); const isForum = currentUrl.includes('forum') || currentUrl.includes('mitmachim.top') || currentUrl.includes('tchumim'); const isEditor = currentUrl.includes('dhdgffkkebhmkfjojejmpbldmpobfkfo'); const needsBlackScreen = isMail || isForum || isChat; const needsDisturbance = !isMail && !isChat && !isEditor; if (window.performance && performance.navigation.type === performance.navigation.TYPE_RELOAD) { const lastUnlock = parseInt(sessionStorage.getItem(LAST_UNLOCK_KEY) || '0'); if (Date.now() - lastUnlock > GRACE_PERIOD) { sessionStorage.removeItem(SESSION_KEY); } } const getStatus = () => { const data = JSON.parse(localStorage.getItem(STORAGE_KEY) || '{}'); const sessionUnlocked = sessionStorage.getItem(SESSION_KEY) === 'true'; const now = Date.now(); if (data.expiry && now < data.expiry) { if (needsBlackScreen && !sessionUnlocked) return { state: 'LOCKED_REAUTHENTICATE', timeLeft: data.expiry - now }; return { state: 'UNLOCKED', timeLeft: data.expiry - now }; } if (data.cooldownUntil && now < data.cooldownUntil) return { state: 'COOLDOWN', waitTime: data.cooldownUntil - now }; return { state: 'LOCKED' }; }; GM_addStyle(` html.blocked-mode > body > *:not(#shteygen-host-overlay):not(#shteygen-timer-host) { display: none !important; } html.apply-disturbance::after { content: ''; position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; background-image: url("${BG_IMAGE_URL}"); background-size: cover; background-position: center; opacity: 0.20 !important; z-index: 2147483645; pointer-events: none; } html.apply-disturbance body::after { content: 'לך ללמוד!'; position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%) rotate(-15deg); font-size: 18vw; color: rgba(150, 0, 0, 0.15); z-index: 2147483646; pointer-events: none; white-space: nowrap; font-weight: bold; } `); // חסימת עורך התוסף if (isEditor) { const checkEditorStatus = () => { const unlockTime = localStorage.getItem(EDITOR_UNLOCK_TIME_KEY); const now = Date.now(); if (!unlockTime) { showEditorOverlay("הגישה לעריכת הסקריפט חסומה.", true); } else if (now < parseInt(unlockTime)) { const remainingMinutes = Math.ceil((parseInt(unlockTime) - now) / 60000); showEditorOverlay(`מנגנון השהיה פעיל.<br>העורך ייפתח בעוד ${remainingMinutes} דקות של המתנה.`, false); setTimeout(checkEditorStatus, 30000); } else { const overlay = document.getElementById('hardcore-editor-overlay'); if (overlay) overlay.remove(); document.documentElement.classList.remove('blocked-mode'); } }; const showEditorOverlay = (msg, showButton) => { document.documentElement.classList.add('blocked-mode'); let overlay = document.getElementById('hardcore-editor-overlay'); if (!overlay) { overlay = document.createElement('div'); overlay.id = 'hardcore-editor-overlay'; overlay.style.cssText = 'position: fixed !important; top: 0; left: 0; width: 100vw; height: 100vh; background-color: #000 !important; color: #fff !important; z-index: 2147483647 !important; display: flex; flex-direction: column; align-items: center; justify-content: center; font-size: 25px; font-weight: bold; text-align: center; direction: rtl; font-family: sans-serif; padding: 20px;'; document.documentElement.appendChild(overlay); } overlay.innerHTML = `<div>${msg}</div>`; if (showButton) { const btn = document.createElement('button'); btn.innerText = "התחל המתנה של שעתיים לעריכה"; btn.style.cssText = "margin-top: 20px; padding: 15px 30px; background: #ce0000; color: white; border: none; border-radius: 5px; cursor: pointer; font-size: 18px; font-weight: bold;"; btn.onclick = () => { if(confirm("האם אתה בטוח? תצטרך לחכות שעתיים עד שהדף ייפתח.")) { localStorage.setItem(EDITOR_UNLOCK_TIME_KEY, Date.now() + EDITOR_LOCK_DURATION); checkEditorStatus(); } }; overlay.appendChild(btn); } }; checkEditorStatus(); return; } if (needsDisturbance) document.documentElement.classList.add('apply-disturbance'); const startUnlockProcess = () => { const d = new Date(); if (parseInt(prompt(`כמה זה ${d.getHours()} + ${d.getMinutes()}?`)) !== (d.getHours() + d.getMinutes())) return; const word = ["התמדה", "לימוד", "ריכוז"][Math.floor(Math.random() * 3)]; if (prompt(`הקלד '${word}' מהסוף להתחלה:`) !== word.split('').reverse().join('')) return; if (prompt("הקלד: 'אישור כניסה קצרה'") === "אישור כניסה קצרה") { const now = Date.now(); const data = JSON.parse(localStorage.getItem(STORAGE_KEY) || '{}'); if (!data.expiry || now > data.expiry) { localStorage.setItem(STORAGE_KEY, JSON.stringify({ expiry: now + ACCESS_DURATION, cooldownUntil: now + ACCESS_DURATION + COOLDOWN_DURATION })); } sessionStorage.setItem(SESSION_KEY, 'true'); sessionStorage.setItem(LAST_UNLOCK_KEY, now.toString()); location.reload(); } }; const renderShadowOverlay = (status) => { document.documentElement.classList.add('blocked-mode'); let host = document.getElementById('shteygen-host-overlay'); if (!host) { host = document.createElement('div'); host.id = 'shteygen-host-overlay'; host.style.cssText = 'position: fixed !important; top: 0 !important; left: 0 !important; width: 100vw !important; height: 100vh !important; z-index: 2147483647 !important;'; document.documentElement.appendChild(host); const shadow = host.attachShadow({mode: 'open'}); const container = document.createElement('div'); container.id = 'shadow-content'; shadow.appendChild(container); } const shadow = host.shadowRoot; const container = shadow.getElementById('shadow-content'); container.style.cssText = 'position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: #000; display: flex; flex-direction: column; align-items: center; justify-content: center; font-family: sans-serif; direction: rtl; color: white;'; if (status.state === 'COOLDOWN') { const minLeft = Math.ceil(status.waitTime / 60000); container.innerHTML = `<div style="text-align: center;"><span style="font-size: 30px; font-weight: bold;">תם הזמן.</span><br><br><span style="font-size: 22px; color: #ff4444; font-weight: bold;">נא לחזור ללימודים.<br>הגישה תתאפשר בעוד ${minLeft} דקות.</span></div>`; } else { container.innerHTML = `<div style="text-align: center;"><span style="font-size: 30px; font-weight: bold;">עצור.</span><br><br><span style="font-size: 22px; color: #888888; font-weight: bold;">האם זה הכרחי עכשיו?</span></div>`; const btn = document.createElement('button'); btn.innerText = '⚙️'; // הכפתור חזר להיות כמעט בלתי נראה לחלוטין (שקוף) btn.style.cssText = 'position: absolute; bottom: 15px; left: 15px; background: transparent; border: none; color: rgba(255, 255, 255, 0.05); cursor: pointer; font-size: 20px; padding: 0; margin: 0; outline: none;'; btn.onclick = startUnlockProcess; container.appendChild(btn); } }; const renderShadowTimer = (timeLeft) => { let host = document.getElementById('shteygen-timer-host'); if (!host) { host = document.createElement('div'); host.id = 'shteygen-timer-host'; host.style.cssText = 'position: fixed !important; top: 15px !important; right: 15px !important; z-index: 2147483647 !important; pointer-events: none !important;'; document.documentElement.appendChild(host); const shadow = host.attachShadow({mode: 'open'}); const style = document.createElement('style'); style.textContent = `@keyframes urgentBlink { 0% { opacity: 1; } 50% { opacity: 0.5; } 100% { opacity: 1; } }`; shadow.appendChild(style); const timerDiv = document.createElement('div'); timerDiv.id = 'timer-content'; shadow.appendChild(timerDiv); } const shadow = host.shadowRoot; const timerDiv = shadow.getElementById('timer-content'); const mins = Math.floor(timeLeft / 60000); const secs = Math.floor((timeLeft % 60000) / 1000); const timeString = `${mins}:${secs.toString().padStart(2, '0')}`; let bgColor = '#2ecc71'; let animation = 'none'; if (timeLeft <= 30 * 1000) { bgColor = '#e74c3c'; animation = 'urgentBlink 1s infinite'; } else if (timeLeft <= 90 * 1000) { bgColor = '#f39c12'; } timerDiv.style.cssText = `background-color: ${bgColor}; color: #fff; padding: 10px 20px; font-size: 24px; font-weight: bold; font-family: monospace; border-radius: 8px; box-shadow: 0 4px 6px rgba(0,0,0,0.3); border: 2px solid rgba(255,255,255,0.5); direction: ltr; animation: ${animation};`; timerDiv.innerText = timeString; }; if (needsBlackScreen) { setInterval(() => { const status = getStatus(); if (status.state === 'UNLOCKED') { document.documentElement.classList.remove('blocked-mode'); const overlayHost = document.getElementById('shteygen-host-overlay'); if (overlayHost) overlayHost.remove(); renderShadowTimer(status.timeLeft); if (status.timeLeft <= 0) location.reload(); } else { const timerHost = document.getElementById('shteygen-timer-host'); if (timerHost) timerHost.remove(); renderShadowOverlay(status); } }, 500); } })();סיכום על התוסף מ ai
הכירו את ה-Ultimate Focus Script: המערכת שתכריח אתכם ללמוד
הסקריפט הזה נולד מתוך צורך אמיתי: להפסיק לבזבז זמן. הוא מיועד לאנשים שרוצים שהמחשב שלהם יהפוך מכלי של הסחת דעת לכלי של עבודה ולימוד בלבד. הוא לא מבקש מכם יפה – הוא פשוט לא משאיר לכם ברירה.- הקונספט המרכזי: חוק ה-5/60
הסקריפט פועל לפי לוגיקה פשוטה וחסרת רחמים:
5 דקות של חסד: פעם בשעה, ניתן לפתוח גישה לאתרים "רגישים" (מייל, צ'אט, פורומים) למשך 5 דקות בלבד.
60 דקות של נעילה: ברגע שהחמש דקות נגמרו, האתרים הללו ננעלים הרמטית למשך שעה שלמה. אין כפתור "ביטול", ואין אפשרות להיכנס שוב עד שהשעון מסיים לספור.
- מחסום הכניסה: "המבוך הקוגניטיבי"
כדי לפתוח את אותן 5 דקות, אתם צריכים להוכיח ריכוז. הסקריפט מציג מסך שחור אטום עם משימות משתנות (רנדומליות):
תרגיל חשבון: חישובים דינמיים (למשל: השעה הנוכחית + הדקות כפול 2).
אתגר מילולי: הקלדת מילים מהסוף להתחלה (כדי לוודא שהמוח שלכם עובד).
התחייבות: הקלדת משפט הצהרה ("אני נכנס רק לזמן קצר").
מנגנון רענון: אם תנסו לרענן את הדף כדי "לברוח" מהמסך השחור – הוא יופיע שוב וידרוש את המשימות מחדש.
- ההפרעה הויזואלית (Visual Disturbance)
בכל שאר האתרים ברשת (אלו שלא נחסמים ב-5/60 כמו גימיני או אתרי חיפוש), הסקריפט יוצר אווירה של עבודה:
תמונה ברורה ברקע: רקע של סביבת לימוד רצינית שמונח מעל האתר בשקיפות מסוימת.
טקסט מעורר: הכיתוב "לך ללמוד!" מופיע בגודל ענק על כל המסך.
מטרה: להזכיר לכם בכל שנייה שאתם לא שם בשביל הכיף, אלא בשביל מטרה ספציפית.
-
החרגת המייל (היעילות קודמת לכל)
כדי לא לפגוע בעבודה השוטפת, בתוך ה-5 דקות של המייל, הרקע והכיתוב המפריע נעלמים. המטרה היא לתת לכם 5 דקות של עבודה נקייה ומהירה, ומיד אחרי זה – חזרה ללימודים. -
ההגנה מפני עקיפה (Anti-Cheat)
כאן נמצא ה"קאץ'" האמיתי. מה ימנע מכם פשוט לכבות את התוסף או לערוך את הקוד?
נעילת עורך הסקריפטים: אם תנסו להיכנס לדף העריכה של הסקריפט כדי לשנות את הזמנים או למחוק אותו, תיתקלו במסך שחור.
המתנה של שעתיים: כדי לגשת לקוד העריכה, תצטרכו ללחוץ על כפתור שמפעיל ספירה לאחור של 120 דקות. רק אחרי שעתיים של המתנה אקטיבית, הקוד ייפתח לעריכה.
סיכום טכני:
שפת תכנות: JavaScript (Tampermonkey).אתרים כלולים: מייל, צ'אט, פורומים ספציפיים (כולל מתמחים טופ).
זמנים: 5 דקות עבודה / 60 דקות צינון / שעתיים נעילת עריכה.
סיכום בקצרה על התוסף מ ai
הסקריפט שינצח את הסחות הדעת: סיכום בחמש נקודות
חוק ה-5/60: גישה מוגבלת ל-5 דקות בלבד למייל ולפורומים, ולאחריהן חסימה מוחלטת ל-60 דקות (ללא יוצא מן הכלל).מבחני ריכוז בכניסה: כדי לפתוח את הגישה, עליכם לעבור אתגרים משתנים של חשבון, הגיון והקלדה.
הפרעה חזותית קבועה: בכל שאר האתרים מופיע רקע של בית מדרש עם הכיתוב "לך ללמוד!" בגודל ענק, כדי להזכיר לכם מה העיקר.
מנגנון "אנטי-רמאות": הסקריפט מזהה ריענוני דף (F5) ונועל אתכם מחדש, מה שמכריח אתכם להישאר מרוכזים בתוך ה-5 דקות.
חסימת עריכה: ניסיון לשנות את הקוד או לכבות אותו דורש המתנה אקטיבית של שעתיים לפני שהגישה לעריכה נפתחת.
בשורה התחתונה: זה לא "תוסף חסימה", זו מערכת שלמה שכופה עליכם משמעת עצמית ברזל.
תמונות בספוילר

אם אתם רוצים להמשיך תלחצו כאן
בהצלחה!!
זמן פורה ומוצלח!!אם אתם רוצים שאני יערוך לכם משהו בכ"א תכתבו
וכן אשמח לשמוע אם יש עניין להפוך את זה לתוסף כרום...
טוב אני זזתי לישיבה כדי לא לאבד את האפקט... תעשו אם זה מה שאתם רוצים מי שרוצה לשפר את זה או לא יודע מה אין לי שום בעיה! העיקר שאצלי הדפדפן מגביל...
@ר-יעקב-עייפים
רעיון יפה מאוד
בתור תוסף מובנהנ עם בחירה של האתרים בצורה מסודרת זה ירוץ לדעתי מאוד (גם כל הארגונים כשמורה וכדו' יפרסמו ויתמכו בזה לדעתי),אני בדר"כ לא משתמש בכרום אלא בדפדפן אחר וזה משום מה לא נותן לי להתקין את התוסף הנל בתחילת הפוסט, מישהו יודע מה לעשות?
- הקונספט המרכזי: חוק ה-5/60
-
@בנימין-מחשבים כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:
הקוד הוא ai קומפלט
כן חוץ מנקודונת קטנטנה
@בנימין-מחשבים כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:
פשוט אתה חדש בפורום (ברוך הבא!)
תודה רבה! רק שאני לא יודע עדיין לערוך פוסטים נורמלי חבל...
@בנימין-מחשבים כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:
בהחלט! יתכן מאוד שאשתמש, ואני בטוח שיש עוד רבים שאם הפוסט הראשי יהיה מונגש להם יותר הם יהנו מזה מאוד!
תודה רבה זה נותן תחושה ממש טובה...
אתה לא חושב שחבל על הזמן לכתוב קוד כזה לבד?
לא שאני יכול...
כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:
תודה רבה! רק שאני לא יודע עדיין לערוך פוסטים נורמלי חבל...
מודעות עצמית זה חשוב ...
סתםם
תוסף מעולה..


-
@ר-יעקב-עייפים טוב לדעת ואיזה קוד הבאת להדביק js/ג'סון
@י.ר.ק ג'סון זה לא שפת תכנות. זה פורמט נתונים.
@חד-בדרא-השני כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:
בתור תוסף מובנהנ עם בחירה של האתרים בצורה מסודרת זה ירוץ לדעתי מאוד (גם כל הארגונים כשמורה וכדו' יפרסמו ויתמכו בזה לדעתי),
זה לא תוסף זה סקריפט, אותו עיקרון אבל לא אותו דבר.
ניסית להתקין את tampermonkey וזה לא נותן לך?
זה בעיקרון עובד ברוב הדפדפנים, לפחות במחשב.
איזה דפדפן יש לך? -
@י.ר.ק כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:
פשוט הבאת קישור של תוסף שלא קשור לתוסף שלך ואמרת לשנות את הקוד אז אני שואאל האם אני יכול להוריד תוסף אחר ולשנות את הקוד או שבחרת דווקא בתוסף הזה כי בתוסף הזה כל הקבצים הם אותו קוד חוץ ממה שמשנים?
לא התוסף ההוא ספציפית מיועד להרצת קוד אוניברסלי לזה הוא מיועד.
@ר-יעקב-עייפים יצרתי עם קלוד תוסף לעצלנים שאובהים רק ללחוץ על העלה תוסף וזהו,
תעדכנו איך זה עובד.@המלאך בבקשה לא לצאת עלי! אני מבין שאתה לא אוהב את זה אבל זה בעיה שלך!

-
@י.ר.ק ג'סון זה לא שפת תכנות. זה פורמט נתונים.
@חד-בדרא-השני כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:
בתור תוסף מובנהנ עם בחירה של האתרים בצורה מסודרת זה ירוץ לדעתי מאוד (גם כל הארגונים כשמורה וכדו' יפרסמו ויתמכו בזה לדעתי),
זה לא תוסף זה סקריפט, אותו עיקרון אבל לא אותו דבר.
ניסית להתקין את tampermonkey וזה לא נותן לך?
זה בעיקרון עובד ברוב הדפדפנים, לפחות במחשב.
איזה דפדפן יש לך? -
@המלאך כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:
@י.ר.ק ג'סון זה לא שפת תכנות. זה פורמט נתונים.
ואז? שאלתי איזה קוד/קובץ הוא הביא
אבל לא משנה אחזתי שזה סקריפט -
@ר-יעקב-עייפים יצרתי עם קלוד תוסף לעצלנים שאובהים רק ללחוץ על העלה תוסף וזהו,
תעדכנו איך זה עובד.@המלאך בבקשה לא לצאת עלי! אני מבין שאתה לא אוהב את זה אבל זה בעיה שלך!

@שלמה-רביב כתב בהמלצה | לרגל תחילת הזמן יצרתי עבורי תוסף לTampermonkey מה שיעזור לכם לא להיות על המחשב:
בבקשה לא לצאת עלי! אני מבין שאתה לא אוהב את זה אבל זה בעיה שלך!
אני מתלבט אם זה על השימוש בבינה או על התוסף


-
@ר-יעקב-עייפים יצרתי עם קלוד תוסף לעצלנים שאובהים רק ללחוץ על העלה תוסף וזהו,
תעדכנו איך זה עובד.@המלאך בבקשה לא לצאת עלי! אני מבין שאתה לא אוהב את זה אבל זה בעיה שלך!

@שלמה-רביב לא הבנתי מה עושים אחרי הורדה?
-
@שלמה-רביב לא הבנתי מה עושים אחרי הורדה?
@חד-בדרא-השני נכנסים לניהול תוספים,

לוחצים על מצב פיתוח בצד שמאל למעלה וגוררים את התיקיה שהעלתי לתוך האתר.
-
@חד-בדרא-השני נכנסים לניהול תוספים,

לוחצים על מצב פיתוח בצד שמאל למעלה וגוררים את התיקיה שהעלתי לתוך האתר.
-
@חד-בדרא-השני חלצת את הקובץ שהעלתי לפני הגרירה?
צריך לחלץ ואז לגרור את כל תיקיית extension.הערכתי אפשרויות לבעיית הקובץ החסר
נסה לוודא שאתה בתיקייה הנכונה:פתח את התיקייה שבחרת ב-Load unpacked — האם אתה רואה ישירות את הקבצים האלה?
manifest.json
content.js
options.html
options.js
background.js
אם אתה רואה תיקייה נוספת במקום הקבצים עצמם — היכנס עוד שלב פנימה וטען אותה.כתבתי לך בספויילר מאמין שאתה לא בתיקיה הנכונה, לי זה עבד מצוין.
-
@חד-בדרא-השני חלצת את הקובץ שהעלתי לפני הגרירה?
צריך לחלץ ואז לגרור את כל תיקיית extension.הערכתי אפשרויות לבעיית הקובץ החסר
נסה לוודא שאתה בתיקייה הנכונה:פתח את התיקייה שבחרת ב-Load unpacked — האם אתה רואה ישירות את הקבצים האלה?
manifest.json
content.js
options.html
options.js
background.js
אם אתה רואה תיקייה נוספת במקום הקבצים עצמם — היכנס עוד שלב פנימה וטען אותה.כתבתי לך בספויילר מאמין שאתה לא בתיקיה הנכונה, לי זה עבד מצוין.
@שלמה-רביב
תודה פשוט גררתי את התקיה מעליה
