Greasy Fork is available in English.

Koishi Fumo DVD (Google)

Bouncing Fumo like a DVD icon

// ==UserScript==
// @name         Koishi Fumo DVD (Google)
// @author       Hollen9
// @description  Bouncing Fumo like a DVD icon
// @version      1
// @grant        none
// @match        *://www.google.com/*
// @match        *://www.google.com.tw/*
// @match        *://www.google.com.hk/*
// @match        *://www.google.co.jp/*
// @match        *://www.google.co.uk/*
// @match        *://www.google.com.au/*
// @match        *://www.google.com.af/*
// @match        *://www.google.al/*
// @match        *://www.google.dz/*
// @match        *://www.google.ad/*
// @match        *://www.google.ao/*
// @match        *://www.google.ai/*
// @match        *://www.google.ag/*
// @match        *://www.google.ar/*
// @match        *://www.google.am/*
// @match        *://www.google.at/*
// @match        *://www.google.az/*
// @match        *://www.google.bs/*
// @match        *://www.google.bh/*
// @match        *://www.google.bd/*
// @match        *://www.google.by/*
// @match        *://www.google.be/*
// @match        *://www.google.bz/*
// @match        *://www.google.bo/*
// @match        *://www.google.ba/*
// @match        *://www.google.co.bw/*
// @match        *://www.google.br/*
// @match        *://www.google.bn/*
// @match        *://www.google.bg/*
// @match        *://www.google.bf/*
// @match        *://www.google.bi/*
// @match        *://www.google.cv/*
// @match        *://www.google.kh/*
// @match        *://www.google.cm/*
// @match        *://www.google.ca/*
// @match        *://www.google.cl/*
// @match        *://www.google.cn/*
// @match        *://www.google.com.co/*
// @match        *://www.google.cg/*
// @match        *://www.google.cd/*
// @match        *://www.google.cr/*
// @match        *://www.google.ci/*
// @match        *://www.google.hr/*
// @match        *://www.google.com.cu/*
// @match        *://www.google.cy/*
// @match        *://www.google.cz/*
// @match        *://www.google.dk/*
// @match        *://www.google.dj/*
// @match        *://www.google.dm/*
// @match        *://www.google.com.do/*
// @match        *://www.google.ec/*
// @match        *://www.google.eg/*
// @match        *://www.google.com.sv/*
// @match        *://www.google.ee/*
// @match        *://www.google.com.et/*
// @match        *://www.google.com.fj/*
// @match        *://www.google.fi/*
// @match        *://www.google.fr/*
// @match        *://www.google.ga/*
// @match        *://www.google.gm/*
// @match        *://www.google.ge/*
// @match        *://www.google.de/*
// @match        *://www.google.com.gh/*
// @match        *://www.google.gr/*
// @match        *://www.google.gl/*
// @match        *://www.google.gp/*
// @match        *://www.google.com.gt/*
// @match        *://www.google.gn/*
// @match        *://www.google.gy/*
// @match        *://www.google.ht/*
// @match        *://www.google.hn/*
// @match        *://www.google.hu/*
// @match        *://www.google.is/*
// @match        *://www.google.co.in/*
// @match        *://www.google.co.id/*
// @match        *://www.google.iq/*
// @match        *://www.google.ie/*
// @match        *://www.google.co.il/*
// @match        *://www.google.it/*
// @match        *://www.google.com.jm/*
// @match        *://www.google.co.jp/*
// @match        *://www.google.jo/*
// @match        *://www.google.kz/*
// @match        *://www.google.co.ke/*
// @match        *://www.google.ki/*
// @match        *://www.google.kw/*
// @match        *://www.google.kg/*
// @match        *://www.google.com.la/*
// @match        *://www.google.lv/*
// @match        *://www.google.com.lb/*
// @match        *://www.google.ls/*
// @match        *://www.google.co.lr/*
// @match        *://www.google.li/*
// @match        *://www.google.lt/*
// @match        *://www.google.lu/*
// @match        *://www.google.mg/*
// @match        *://www.google.mw/*
// @match        *://www.google.my/*
// @match        *://www.google.mv/*
// @match        *://www.google.ml/*
// @match        *://www.google.com.mt/*
// @match        *://www.google.mu/*
// @match        *://www.google.com.mx/*
// @match        *://www.google.fm/*
// @match        *://www.google.md/*
// @match        *://www.google.mc/*
// @match        *://www.google.me/*
// @match        *://www.google.mn/*
// @match        *://www.google.co.ma/*
// @match        *://www.google.co.mz/*
// @match        *://www.google.com.mm/*
// @match        *://www.google.com.na/*
// @match        *://www.google.nr/*
// @match        *://www.google.com.np/*
// @match        *://www.google.nl/*
// @match        *://www.google.co.nz/*
// @match        *://www.google.com.ni/*
// @match        *://www.google.ne/*
// @match        *://www.google.com.ng/*
// @match        *://www.google.nu/*
// @match        *://www.google.com.nf/*
// @match        *://www.google.no/*
// @match        *://www.google.com.om/*
// @match        *://www.google.com.pk/*
// @match        *://www.google.ps/*
// @match        *://www.google.com.pa/*
// @match        *://www.google.com.py/*
// @match        *://www.google.com.pe/*
// @match        *://www.google.com.ph/*
// @match        *://www.google.pl/*
// @match        *://www.google.pt/*
// @match        *://www.google.com.pr/*
// @match        *://www.google.qa/*
// @match        *://www.google.ro/*
// @match        *://www.google.ru/*
// @match        *://www.google.rw/*
// @match        *://www.google.com.kn/*
// @match        *://www.google.com.lc/*
// @match        *://www.google.com.vc/*
// @match        *://www.google.ws/*
// @match        *://www.google.sm/*
// @match        *://www.google.st/*
// @match        *://www.google.sa/*
// @match        *://www.google.sn/*
// @match        *://www.google.rs/*
// @match        *://www.google.sc/*
// @match        *://www.google.sl/*
// @match        *://www.google.sg/*
// @match        *://www.google.sk/*
// @match        *://www.google.si/*
// @match        *://www.google.com.sb/*
// @match        *://www.google.so/*
// @match        *://www.google.co.za/*
// @match        *://www.google.kr/*
// @match        *://www.google.es/*
// @match        *://www.google.lk/*
// @match        *://www.google.com.sd/*
// @match        *://www.google.sr/*
// @match        *://www.google.sz/*
// @match        *://www.google.se/*
// @match        *://www.google.ch/*
// @match        *://www.google.sy/*
// @match        *://www.google.com.tw/*
// @match        *://www.google.tj/*
// @match        *://www.google.co.tz/*
// @match        *://www.google.co.th/*
// @match        *://www.google.tg/*
// @match        *://www.google.tk/*
// @match        *://www.google.to/*
// @match        *://www.google.tt/*
// @match        *://www.google.tn/*
// @match        *://www.google.com.tr/*
// @match        *://www.google.tm/*
// @match        *://www.google.tv/*
// @match        *://www.google.co.ug/*
// @match        *://www.google.com.ua/*
// @match        *://www.google.ae/*
// @match        *://www.google.co.uk/*
// @match        *://www.google.com/
// @match        *://www.google.com.uy/*
// @match        *://www.google.co.uz/*
// @match        *://www.google.vu/*
// @match        *://www.google.com.ve/*
// @match        *://www.google.com.vn/*
// @match        *://www.google.co.vi/*
// @match        *://www.google.co.wf/*
// @match        *://www.google.co.ye/*
// @match        *://www.google.co.zm/*
// @match        *://www.google.co.zw/*
// @namespace https://greasyfork.org/users/212711
// ==/UserScript==

(function() {
    const img = document.createElement('img');
    img.src = 'https://i.imgur.com/eTmNrUn.png';
    img.style.position = 'fixed';
    img.style.pointerEvents = 'none'; // Avoid blocking elements

    document.body.appendChild(img);

    let speedX = 2, speedY = 2;
    let posX = 100, posY = 100;
    const WIDTH = 100, HEIGHT = 100; // The image size, modify as needed

    img.style.width = `${WIDTH}px`;
    img.style.height = `${HEIGHT}px`;

    function bounce() {
        const windowWidth = window.innerWidth;
        const windowHeight = window.innerHeight;

        if (posX + WIDTH + speedX > windowWidth || posX + speedX < 0) {
            speedX = -speedX;
        }

        if (posY + HEIGHT + speedY > windowHeight || posY + speedY < 0) {
            speedY = -speedY;
        }

        posX += speedX;
        posY += speedY;

        img.style.left = `${posX}px`;
        img.style.top = `${posY}px`;

        requestAnimationFrame(bounce);
    }

    bounce();
})();