Greasy Fork is available in English.

Smartschool premium

Vervang lokaal je naam en profielfoto in Smartschool

You will need to install an extension such as Tampermonkey, Greasemonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install a user script manager extension to install this script.

(I already have a user script manager, let me install it!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(I already have a user style manager, let me install it!)

// ==UserScript==
// @name         Smartschool premium
// @namespace    http://tampermonkey.net/
// @icon         https://static1.smart-school.net/smsc/svg/favicon/favicon.svg
// @version      1.1
// @description  Vervang lokaal je naam en profielfoto in Smartschool
// @author       Kian
// @match        https://*.smartschool.be/*
// @grant        none
// @run-at       document-idle
// @license      MIT
// ==/UserScript==

(function() {
    'use strict';

    // --- Pas hier je naam en profielfoto aan ---
    const NIEUWE_NAAM = "Peter Griffin";
    const NIEUWE_FOTO = "data:image/jpeg;base64,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"; // vervang door jouw directe foto-URL

    // Wacht tot de pagina geladen is
    window.addEventListener("load", () => {
        // Naam aanpassen
        let nameElement = document.querySelector(".hlp-vert-box span");
        if (nameElement) {
            nameElement.textContent = NIEUWE_NAAM;
        }

        // Profielfoto aanpassen
        let imgElement = document.querySelector("img[alt='Profiel afbeelding']");
        if (imgElement) {
            imgElement.src = NIEUWE_FOTO;
        }
    });
    document.body.style.backgroundImage = "url('https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcTievu0g9HlJr8u204YcG733NPtDEcIRtMPlK8bgCGXioOt3SMIA7PXc19GUCYbZx_B55bPDgju1iugYhSrP6ORxQZkOt1ONlaIEXrONt6T')";
document.body.style.backgroundSize = "cover";
    document.title = "Smartschool Premium";

    document.body.style.fontFamily = "Comic Sans MS, cursive, sans-serif";

let bar = document.createElement("div");
bar.innerHTML = `
  <a href="/planner/main/user/" style="margin:0 10px">Planner</a>
  <a href="/results/main/results/details/">Resultaten</a>
  <a href="https://app.lernova.be/nl-be/boekentas">Lernova</a>
  <a href="https://apps.plantyn.com/my/nl-be/bookshelf?redirectPath=%2F&redirectPlatform=sep">Scoodle</a>
  <a href="https://www.pelckmansportaal.be/dashboard">Pelckmans Portaal</a>
  <a href="https://platform.ididdit.be/">iDiddit</a>
`;
bar.style.cssText = "background:#222;color:#fff;padding:10px;text-align:center;";
document.body.prepend(bar);

    // selecteer de bovenste navigatiebalk
const topbar = document.querySelector(".topnav");
if (topbar) {
  topbar.style.backgroundColor = "yellow"; // kleur aanpassen
  topbar.style.borderBottom = "2px solid #c90001"; // optioneel: rood randje voor accent
}

// eventueel de tekstkleur aanpassen zodat het goed zichtbaar is
const topbarTexts = topbar.querySelectorAll(".topnav__btn, .topnav__menuitem");
topbarTexts.forEach(el => el.style.color = "black");

    // ==UserScript==
// @name         Matrix Regen Toggle
// @match        *://*/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    let matrixActive = false;
    let canvas, ctx, interval;
    let drops = [];
    const fontSize = 16;

    // normale achtergrondkleur onthouden
    const normalBackground = document.body.style.backgroundColor || "#fff";

    function startMatrix() {
        // canvas maken
        canvas = document.createElement("canvas");
        canvas.id = "matrixCanvas";
        canvas.style.position = "fixed";
        canvas.style.top = "0";
        canvas.style.left = "0";
        canvas.style.width = "100%";
        canvas.style.height = "100%";
        canvas.style.zIndex = "0";
        canvas.style.pointerEvents = "none"; // zodat je nog steeds kunt klikken
        document.body.appendChild(canvas);

        ctx = canvas.getContext("2d");
        canvas.width = window.innerWidth;
        canvas.height = window.innerHeight;

        const columns = Math.floor(canvas.width / fontSize);
        for (let i = 0; i < columns; i++) {
            drops[i] = 1;
        }

        interval = setInterval(drawMatrix, 50);

        window.addEventListener("resize", resizeCanvas);
    }

    function drawMatrix() {
        ctx.fillStyle = "rgba(0, 0, 0, 0.05)"; // lichte fade
        ctx.fillRect(0, 0, canvas.width, canvas.height);

        ctx.fillStyle = "#0F0"; // groen
        ctx.font = fontSize + "px monospace";

        for (let i = 0; i < drops.length; i++) {
            const text = String.fromCharCode(Math.floor(Math.random() * 128));
            ctx.fillText(text, i * fontSize, drops[i] * fontSize);

            if (drops[i] * fontSize > canvas.height && Math.random() > 0.975) {
                drops[i] = 0;
            }
            drops[i]++;
        }
    }

    function resizeCanvas() {
        canvas.width = window.innerWidth;
        canvas.height = window.innerHeight;
    }

    function stopMatrix() {
        clearInterval(interval);
        window.removeEventListener("resize", resizeCanvas);
        if (canvas) {
            canvas.remove();
        }
        document.body.style.backgroundColor = normalBackground;
    }

    // toggle bij Ctrl + Y
    document.addEventListener("keydown", function(e) {
        if (e.ctrlKey && e.key.toLowerCase() === "y") {
            matrixActive = !matrixActive;
            if (matrixActive) {
                startMatrix();
            } else {
                stopMatrix();
            }
        }
    });

})();

    // Maak het cirkeltje
    const cursorCircle = document.createElement('div');
    cursorCircle.id = 'cursor-circle';
    document.body.appendChild(cursorCircle);

    // Voeg CSS toe
    const style = document.createElement('style');
    style.textContent = `
        #cursor-circle {
            position: fixed;
            width: 20px;
            height: 20px;
            border: 2px solid lightblue;
            border-radius: 50%;
            pointer-events: none;
            transform: translate(-50%, -50%);
            z-index: 9999;
            transition: transform 0.05s linear;
        }
    `;
    document.head.appendChild(style);

    // Laat het cirkeltje de cursor volgen
    document.addEventListener('mousemove', (e) => {
        cursorCircle.style.left = e.clientX + 'px';
        cursorCircle.style.top = e.clientY + 'px';
    });

    (function() {
    'use strict';

    // ---- Playground venster ----
    let box = document.createElement("div");
    box.style.cssText = `
        position:fixed; top:50px; right:20px; width:700px; height:650px;
        background:#222; color:#fff; z-index:99999; display:flex; flex-direction:column;
        border-radius:10px; overflow:hidden; box-shadow:0 0 20px rgba(0,0,0,0.5);
        font-family:monospace;
    `;
    box.style.display = "none"; // start onzichtbaar
    document.body.appendChild(box);

    // Tabs
    let tabBar = document.createElement("div");
    tabBar.style.cssText = "display:flex;background:#111;";
    box.appendChild(tabBar);

    let tabs = ["HTML","CSS","JS"];
    let editors = {};
    let activeTab = "HTML";

    tabs.forEach(tab => {
        let btn = document.createElement("button");
        btn.textContent = tab;
        btn.style.cssText = "flex:1;padding:8px;border:none;background:#333;color:#fff;cursor:pointer;";
        btn.onclick = () => switchTab(tab);
        tabBar.appendChild(btn);

        let textarea = document.createElement("textarea");
        textarea.style.cssText = "flex:1;display:none;background:#000;color:#0f0;font-size:14px;padding:5px;";
        textarea.value = "";
        editors[tab] = textarea;
        box.appendChild(textarea);
    });

    // Buttons bar
    let btnBar = document.createElement("div");
    btnBar.style.cssText = "background:#111;padding:5px;text-align:right;display:flex;gap:5px;";
    box.insertBefore(btnBar, box.lastChild);

    let runBtn = document.createElement("button");
    runBtn.textContent = "▶ Run";
    runBtn.style.cssText = "padding:5px 10px;background:#28a745;color:#fff;border:none;cursor:pointer;";
    runBtn.onclick = runCode;
    btnBar.appendChild(runBtn);

    // Save buttons
    let saveHTML = document.createElement("button");
    saveHTML.textContent = "💾 Save HTML";
    saveHTML.onclick = () => downloadFile("index.html", editors["HTML"].value);
    btnBar.appendChild(saveHTML);

    let saveCSS = document.createElement("button");
    saveCSS.textContent = "💾 Save CSS";
    saveCSS.onclick = () => downloadFile("style.css", editors["CSS"].value);
    btnBar.appendChild(saveCSS);

    let saveJS = document.createElement("button");
    saveJS.textContent = "💾 Save JS";
    saveJS.onclick = () => downloadFile("script.js", editors["JS"].value);
    btnBar.appendChild(saveJS);

    // Output frame
    let output = document.createElement("iframe");
    output.style.cssText = "flex:1;background:#fff;border:none;";
    box.appendChild(output);

    // Functies
    function switchTab(tab) {
        activeTab = tab;
        tabs.forEach(t => editors[t].style.display = (t === tab) ? "block" : "none");
    }

    function runCode() {
        let html = editors["HTML"].value;
        let css = `<style>${editors["CSS"].value}</style>`;
        let js = `<script>${editors["JS"].value}<\/script>`;
        output.srcdoc = html + css + js;
    }

    function downloadFile(filename, content) {
        const blob = new Blob([content], { type: "text/plain" });
        const link = document.createElement("a");
        link.href = URL.createObjectURL(blob);
        link.download = filename;
        link.click();
        URL.revokeObjectURL(link.href);
    }

    switchTab("HTML"); // start met HTML open

    // ---- Knop in de linkerbalk ----
    function addSidebarButton() {
        let targetBlock = document.querySelector("#homepage__block--28881 .homepage__block__content"); // lokaalwissels
        if (!targetBlock) return;

        let newBtn = document.createElement("button");
        newBtn.textContent = "🌐 Open Website Maker";
        newBtn.style.cssText = `
            display:block;width:90%;margin:10px auto;padding:10px;
            background:#007bff;color:#fff;border:none;border-radius:6px;
            cursor:pointer;font-weight:bold;
        `;
        newBtn.onclick = () => {
            box.style.display = (box.style.display === "none") ? "flex" : "none";
        };

        targetBlock.appendChild(newBtn);
    }

    // Wacht tot de pagina geladen is
    window.addEventListener("load", addSidebarButton);

})();
})();

(function() {
    'use strict';

    window.addEventListener('load', function() {

        // ---- iframe maken ----
        const iframe = document.createElement('iframe');
        iframe.src = "https://smartschool-ai.netlify.app/";
        iframe.style.position = "fixed";
        iframe.style.bottom = "40px"; // iets hoger zodat de knop eronder blijft
        iframe.style.right = "20px";
        iframe.style.width = "400px";
        iframe.style.height = "600px";
        iframe.style.border = "none";
        iframe.style.borderRadius = "12px";
        iframe.style.boxShadow = "0 4px 20px rgba(0,0,0,0.3)";
        iframe.style.zIndex = "99998"; // lager dan knop
        iframe.style.background = "white";
        iframe.style.display = "none"; // standaard verborgen
        document.body.appendChild(iframe);

        // ---- toggle-knop maken ----
        const btn = document.createElement('button');
        btn.textContent = "AI Assistent";
        btn.style.position = "fixed";
        btn.style.bottom = "20px";
        btn.style.right = "20px";
        btn.style.zIndex = "99999"; // boven iframe
        btn.style.padding = "10px 15px";
        btn.style.borderRadius = "8px";
        btn.style.border = "none";
        btn.style.background = "#4CAF50";
        btn.style.color = "white";
        btn.style.cursor = "pointer";
        btn.style.boxShadow = "0 4px 10px rgba(0,0,0,0.2)";

        document.body.appendChild(btn);

        // ---- toggle functionaliteit ----
        let visible = false;
        btn.addEventListener('click', () => {
            visible = !visible;
            iframe.style.display = visible ? "block" : "none";
            btn.textContent = visible ? "Sluit Assistent ❌" : "AI Assistent";
        });

        console.log("🤖 Smartschool AI Assistent geladen met single toggle knop!");
    });
})();