Mouse Whisperer Keeps You Working, Even When You Need A Break

When life hands you lemons, you make lemonade, right? What about when life hands you annoyingly intrusive work-from-home policies that require you to physically stay at your computer even though you really, REALLY need to go to the bathroom, but can’t be trusted to act like a responsible adult who won’t get diverted by TV or the fridge on the way back? In that case, you build something like the Mouse Whisperer — because malicious compliance is the best kind of compliance.

To be fair, [andrey.malyshenko] does list other plausible use cases for what amounts to an automatic mouse wiggler. Like many of us, [andrey] isn’t a fan of logging back in from screen locks, and recognizes that not absolutely every minute of work requires staring at one’s screen. There’s also the need for bio-breaks, of course, and the Mouse Whisperer is designed to accommodate these use cases and more.

The design is quite compact, occupying barely more space than a wireless mouse dongle. Plugged into a USB port, the ATtiny85 mostly sits idle, waiting to detect the touch of a finger on an exposed pad via a TTP223. The dongle then goes into a routine that traces lazy circles with the mouse pointer, plus flashes an RGB LEB on the board, because blinkenlights are cool. The mouse wiggling continues until you come back from your Very Important Business and touch the pad again.

Now, if anyone is actually monitoring you remotely, the circling mouse pointer is going to look a wee bit sus. Fear not, though — the code uses a *.h file to define the circle, so other patterns should be possible. Either way, the Mouse Whisperer is a nice solution, and it’s considerably more compact and integrated than some of the alternatives we’ve seen.

140 thoughts on “Mouse Whisperer Keeps You Working, Even When You Need A Break

  1. I actually made one in order to prevent automatic screen lock when I’m working from home.
    It’s made with a ‘bad USB’ board. An ATMega32u4 on a tiny usb-connector shaped board.
    It moves the mouse by 2 pixels every 5min.

          1. I just use an autohotkey script to move my mouse by one pixel every 4.5 minutes :)
            Alternatively you could play a long YouTube video in the background and the machine would not sleep (depending on the prevent sleep when playing video power setting)

      1. A lot of the same big corporations who check your lock screen status in the first place already have their systems set up to lock you out of a lot of useful features.

        I have an employer who literally CHANGES the lock screen time day to day. I have no idea why that is but some days it’s just two minutes, other days it’s over 20. Either way, the screensaver/lockout time is completely out of my control, and somehow I can’t even see what they’ve set it to say to day without literally watching my PC to see how long it takes before it tries to lock. I’d happily set this to 30 seconds and be done with it.

    1. Yeah, way better and easier solution than to just create a tiny VBS script that clicks scroll lock every 3 minutes right? I’m sure creating that USB only took you a few minutes like I did with my script

          1. Many high security workplaces do indeed have USB blocking policies… but these usually specifically restrict USB _data_transfer_ protocols whilst allowing HID* protocols. *HID = Human Interface/Interaction Device.

            i.e. in these cases, a USB flash drive or network interface won’t work, but a mouse/keyboard/headset (or dongle for wireless mouse/keyboard/headset*) will.

            *as long as it’s a dedicated HID dongle, such as a Logitech universal, since to the OS these again present as a HID device, not a dongle at all.

            BlueTooth-based adapters will typically be blocked if they rely on a software HID stack (such locked-down systems won’t usually allow the installation of the required software, even if the BT dongle itself is recognised, which it usually isn’t. But BT dongles *can* work if the HID stack is integrated on the dongle itself such that the dongle again presents itself to the OS as a HID rather than a BT adapter (relatively uncommon).

            But for preventing screen-locks, PowerPoint is much more straightforward (and has the added benefit of reflecting your status in MS Teams as “presenting”, if your org insists on installing such spyware, ahem, I mean.. “collaboration software”).

      1. Any sort of script based solution is very easily detected by your security teams software. Maybe if you are a developer with lots of code on your computer you could pull it off but if push came to shove I’ve seen people Asked to explain the reason and use for any non standard apps running on their PC. Every company is different t. Imo if they care that much you don’t belong there.

        1. I used to have a windows automated task that would go to a website, scrape the site as text, and save it to a file every 50 minutes (I would merge the files, and remove duplicates with excel, and get a full station Playlist after a couple weeks).

          If the tasks prevent sleeping, using that to monitor downtime, or grab a feed might be a valid use for doing that.

    2. This won’t work anyway. They expect some idle time and if you are always showing activity (compared to others) then they’ll know something is fishy. Often the time considered “idle” varies, and likely isn’t made known to the end user.

    3. This can actually only be bought by a mac user. Linux and windows users use their brain, and install caffeine, a lightweight tool that does just the same. You can hover over any application, and tell ot to click LMB every 60 seconds, for example.

      1. You’re obviously not of the brains-using kind. If you were, you’d knew there are environments in which you can’t install caffeine or any other software without a approval system admin.

    4. I use a YouTube video, you can find amazing mouse jigglers anywhere from 2-9 hours long. I just keep my ipad charging, play the video and place the mouse over it. Lol, surprisingly it works, I’ve done it for a whole 8 hour shift.

    1. Indeed. Employers must provide for biological needs, not to mention the dangers of uninterrupted desk/computer time that can lead to several disorders. Even if you aren’t at the office.

          1. Bored middle managers are the most fun to troll. If you take it far enough you can eventually get them demoted, transferred to the basement, or fired.

            I have no sympathy for micromanagers with nothing better to do than to interrupt my workflow to ask me why I’m not working. May they suffer eternally.

    2. Yeah. This is not sufficient rebellion. It’s like stinging your tongue out at the hangman or something. If you need one of these things, you are already so owned that it’s fully over for you

      1. True, many times a company computer will not allow any file transfers from external devices or will have certain file restrictions. That’s why I just use a YouTube video as a mouse jiggler… A 9 hour video on my charging phone, start it at the 1 hour countdown and leave the optical mouse the company gave me on top of it 😆 and it even logs me off from inactivity after the video ends lol

    3. This was one of the big reasons I spent months looking for work earlier this year -trying to avoid this sort of monitoring made the search take a lot longer than it should have.

      Based on Glassdoor reports, it looks like this is a majority of big corporations doing remote work today. And it seems to be growing, because it only takes one member of upper management to hatch the idea.

      Once it’s in place, it’s not the sort of thing that tends to just go away, because somebody will always defend having it as a tool.

    4. I am so glad my employer actually monitors nothing. We use teams and all but i sometimes don’t even start up my work laptop cause i like to think things through withoutany device. They don’t ask questions and are very empowering which in turn motivates me and my colleagues to put all our effort in. I think the kind of Surveillance everyone here is describing isn’t even legal in my country. We have very strict privacy laws.
      You guys should fight for better work regulations at your places.

    1. Before I really knew what I was doing with circuits, I used one of those 555 timer circuit kits (which I’d bought years earlier for another project), and just wired it into the right mouse button of an old mouse:

      https://youtu.be/H6IccgLMmr0

      Worked really well on a super-locked down secure laptop that was very fussy about what USB devices it liked.

      PS. “like, subscribe, and hit the bell!” 😜

  2. Some time ago I needed something similar, just not as elaborated. In specified intervals it moves the mouse pointer by one pixel. It can be running all the time even when you work as you certainly don’t notice 1px movement. Just change the interval as you need, compile and run. And don’t worry about Java. It isnt’/wasn’t that bad in its time. Runs everywhere, even on Le Mac! B-)

    /*
    * Simple prog. to keep the computer awake ;)
    */
    import java.awt.*;
    import java.util.*;
    public class MouseMove {

    public static void main(String[] args) throws Exception{
    Robot hal = new Robot();

    while(true){
    hal.delay(1000 * 30);

    Point loc = MouseInfo.getPointerInfo().getLocation();
    hal.mouseMove(loc.x-1, loc.y-1);
    }
    }
    }

    save into MouseMove.java, then call once ‘javac MouseMove.java’
    and every time you start your computer just ‘java MouseMove’

  3. There is a vbscript that simply presses any key you specify in a specific interval called noSleep.vbs and it has served me well:

    set wsc = CreateObject(“WScript.Shell”)
    Do
    ‘Five minutes
    WScript.Sleep(5*60*1000)
    wsc.SendKeys(“{NUMLOCK}”)
    Loop

    1. I used a small Python for mine. Toggles the key every 5 minutes. I have two workstations at my desk and it was very irritating to work on one and turn around and the other has the screen locked. Problem solved. Software solution is best when possible.

  4. Some ~20 years ago for a brief period one could actually earn real money by installing an add banner bar software on windows – I got 10€ once ;-). It constantly displayed a new banner add every few moments~minutes on your desktop.
    When they became aware of GhostMouse 2.0[1] I took an old mechanical mouse and built LEGO Technics around it so my “LEGO TECHNIC Control Center” could steer the cursor anywhere with two motors.

    [1] http://www2.pcix.com/~donath from 1997 but even Aarchive.org’s 1999 copy of that site isn’t old enough…
    But the software still works today.

    1. Chump change! When I was in undergrad, my roommate and I signed up for one of those programs, put our newfangled optical mouse on top of a face up analog clock with a piece of paper taped to the second hand, and made enough points to get a pretty nice graphics card out of the deal.

  5. I just wrote a simple VB script that presses Num Lock every 10 seconds or so. Unless this device shows up as a mouse, I’m betting our Endpoint Security would pick it up as an unapproved device.

  6. Similar outcome, different reasons. I needed my computer to not sleep/hibernate so I could have some processes running overnight without interruption. AutoHotKey routine to move the mouse by one pixel every couple minutes.

  7. I am a dentist and we use Epic medical records system at work. The IT policy here is that all computers that access Epic time out after 5 minutes and the screen locks requiring you to re log-in. The idea is to reduce the potential for HIPAA violations. I tried to get them to shut that off in my operatory- the last thing I want to do when I’m extracting teeth and need to see X-rays is to stop and re log-in to the computer. No way, no how, they won’t do it! I looked for a dongle like this for a while and eventually gave up. I was going to make a small stand for the mouse that would just wiggle something under the optical sensor until I found software called Mouse Jiggler that does the job for me. It wiggles the mouse every 60 seconds to keep the computer unlocked and showing me the X-rays that I need to see when I’m working on a patient.

    You’d think patient safety would trump (there has to be a better word…) potential HIPAA violations…

    1. 5 Minutes is a bit quick, we have ours set at 10 minutes and the screen gradually darkens to indicate that inactivity lock is going to kick in. By the way, it’s not to reduce the risk of HIPAA violations, it’s to reduce the risk that unauthorized access to confidential content or unauthorized modifications to PHI. These are serious risks and HIPAA and other healthcare security standards rightfully help steer towards the right measures. Finding the right balance between being able to do you work (in the patients interest) and security can be tricky, but circumventing security measures is never the best cause of action, always start a dialogue with your security staff.

    2. Happy to read that you resolved the issue using mouse jiggler. And YES, I find myself angered on an almost daily basis that I can no longer use the word “trump” in its previously understood context. GRRR!

  8. Second attempt…

    The IT policy where I work has all computers that access Epic medical records time out after 5 minutes to reduce the possibility of a HIPAA violation. That’s great but when I’m doing oral surgery and need to see X-rays, the last thing I want to do is stop and log into the computer again. I tried to get the IT folks to disable the timer on the computer in my operatory but they wouldn’t do it. To my mind, patient safety is more important than potential HIPAA violations…

    This device would work fine, but it would need to be packaged so I can disinfect it. I found software called Mouse Jiggler that bumps the mouse one pixel every 60 seconds and keeps the computer alive. It has been working well for me for about 2 years now. Don’t tell the IT department!

    1. The grunts in IT don’t care. They’re not the policy makers, and they’d likely agree with you that said policy regarding timeout is dumb, at least in your specific situation. I say this as a grunt in IT at a Federal hospital with similar timeout rules.

      1. If you were paying me to secure your computers, I’d have a problem with a computer that hasn’t been locked in the past two years. Auto lock can be a problem during surgery, but who’s going to take the time to manually lock the screen after each surgery (nobody). At least have it shutdown each night after hours and require a login on startup.

        1. Which is why I said in his specific case. I’m sure you could implement some kind of policy, either on that machine, or for that user, to extend the timeout period past 5 minutes. I wouldn’t outright remove the timeout, because let’s face it, people don’t like even the slightest inconvenience, and they’d never lock their computer if it were possible to do so.

        2. ” At least have it shutdown each night after hours and require a login on startup.”

          Hell no, desperate life saving surgeries end when they end, not when the IT guy says. That’s not even straight Asimov laws of Robotics compliant, and there are much more nuanced circumstances now that we now regard them as inadequate for.

        3. I work through midnight at least 1-2x a week. This is exactly the kind of mentality that led to the dumb lockouts anyway. In any case, 95% of the computers that can access the medical records are not in public areas anyway. They are at nursing stations and in ORs and stuff where there is zero need for stations to self-log out and the downsides of this policy are enumerated above and below. My computer in my key-control access office does not need to log out when I get up to take a leak.
          I got a mouse jiggler.

      2. Yet we’re still forced to install certain pieces of software that can actually block the use of mouse jigglers :( just as a heads up as I haven’t seen it mentioned here (yes, there are ways to detect the presence of any mouse jigglers that are connected to the computer even after changing the VID/PID of the USB descriptor)

  9. The AutoIt scripting language http://www.autoitscript.com will generate a windows executable and after our work PCs were configured to lock the screen after a 10-15 min of inactivity for security it became inconvenient for monitoring long running maintenance jobs at home after hours so I wrote a script that moved the cursor back and forth by one pixel.
    Later on work started monitoring the software running on our laptops for security so I stopped running my AutoIt exe and looked around for a hardware solution. There are commercial versions available that are very compact but at around AU$44 seem a little overpriced.
    There are several projects posted that use an AU$9 digispark ATtiny85 board and V-USB but I was looking for something that doesn’t stick out quite so far as the digispark boards and found this project that sitcks out of the USB port by not much more than the length of the SOIC8 ATtiny https://fabiobaltieri.com/2011/10/19/fun-with-attiny-and-v-usb/

    1. My company monitors everything, including any devices connected to it, so any USB device is a no go. Software, keystrokes are also monitored. So, I just rubberbanded my tiny, remote controlled Wevibe vibrator to the mouse and let it run around my desk. Thoroughly cleaned before and after, of course! ;-)

  10. Nice. I wrote a small Windows EXE that, in a nutshell, tells the system that I’m watching a video and not to enable the screen saver. Have been using it for 3+ years. Our “AI” security system has yet to flag it and management has never asked why I watch so many videos. A simpler solution may be to go to YouTube, find a sufficiently long video, and play it in the background. Although if they’re monitoring your network activity…

    Love the watch and mouse solution. It triggered my “why didn’t I think of that” head-slapping subroutine.

    1. If they are monitoring your network activity just put on those 3hr relaxation music to study videos or stream the beats to study girl YouTube stream, you can mute the audio of course but it will be plausable why it’s running for so long.

  11. If this is based on the Attiny85 and Digispark’s DigiMouse.h, isn’t it susceptible to not working on many systems? I’ve seen lots of reports of it not working on: Windows, OSX, and Linux – all here on hackaday.

    I just built a Digistump mouse jiggler last night and couldn’t get it to be recognized by my desktop, but it worked, albeit intermittently, on my old Macbook. This project solves the issue of using PCB traces as the USB port but it might still not work on many setups, and it sounds like most solutions today are built around a different microprocessor.

    https://hackaday.io/project/28445-usb-cdc-robosapien-v1/log/95249-legacy-getting-started-with-digistump-clone
    https://hackaday.com/2018/09/17/diy-rubber-ducky-is-as-cheap-as-its-namesake/

    1. attiny85 was not reliable on windows when i have tried. ATMega32u4 is working well. I have added a button w/ two funtions: pw generator to align my employer **** rules wich generates pws that easy to remember (long press) and pw sending as a keyboard (short press). I use it only at home office.

    2. Did this years ago.
      First reason was to keep the online status in Lync, yeah that old, second was to randomly plug them into other peoples PC’s in the office to mess with their heads.

  12. There’s 100 free ways to do this with software and as such, you’d have to be one of the least intelligent / capable humans on the planet to pay money for this. I weep for humanity when this is news

    1. I imagine you need to weep all the time if you weep over human stupidity. Id smoke something to make yourself happier, but smoking is stupid, so it might make you feel even sadder.

    2. you’d be surprised. I can run caffeine just fine, that keeps my machine awake.

      However, there is then evidence of that software running on the machine

      Also, Team still for some reason stops sending notifications after a set amount of time… so if I step away to do something else, I come back to a whole bunch of notifications as soon as I do something manual on the PC

  13. So many fun hacks in true spirit of hackaday.! Makes me nostalgic for the much maligned “Golden age’ of web app design cir pre 2001 where you and a few friends had a successful business and were just months away from your IPO lol.

    My solution when i wasnt at office or all happy hour was simple as well. We used AIM (aol intent messenger for the young) and there seemed no way to get around the “inactive for x minutes” status, regardless of PC sheep settings etc, even keyboard input. Solution: turn optical mouse upside down and place under a pendulum clock… All sorts of random cursor movement! Then turn your chat volume notification way up, head to your couch to sleep off the hangover and finish your coding that night like a respectable slacker.

  14. Intelligent employers really don’t care if you’re sitting at the computer or not. All that matters is at the end of the week, did the work that was assigned to the employee get completed well. Was the employee available when you really needed them. What else really matters?

  15. Windows sets the sleep time on a new install and tends to fall asleep when doing updates. Really annoying when you refurbish several computers a week and have to keep waking them up. I bought a couple mouse jigglers that just emulate a mouse going back and forth and keeps the computer from going to sleep (which is easier than changing sleep settings on something that you can start the install and just come back to in 3 hours and it’s mostly done). https://www.amazon.com/Undetectable-Computer-Simulate-Movement-Entering/dp/B097ZXZLVR

    1. Because looking busy isn’t the same as getting the job done, and management seem to perpetually value “looking busy” over getting real work done on a minutes/hours/day scale but only evaluate actual work done over week/month scale.

    1. Heres 1 for the Windows homies. No need for fancy hardware:

      #PS Caffeine. Press Ctrl + C to stop script
      $shell = New-Object -com “Wscript.Shell”

      while ($true) {
      $shell.SendKeys(‘+{F15}’)
      Start-Sleep -Seconds 240
      }

  16. Did we really make it this far without someome notcing the similarity with the “YT’s Mom works for the feds…” passages in Snow Crash, don’t take long enough reading a memo and they put you down as slapdash, take way too long and they think you’re incompetent or slacking, take the exact right amount of time and they think you’re a smartass, so YTs mom opts for a smidgen longer than optimal to give the impression of being thorough.

  17. Funny story. Before the pandemic and the proliferation of this sort of compliance nonsense. A coworker and I were working graves in a SCIF where devices such as this would get you fired and potentially prosecuted. Our boss (who worked days) wanted oversight so he implemented a similar protocol on our computers.
    He was concerned that we were napping during our watch hours. While, there was an (over)abundance of downtime during our shift, we were responsible employees, so this really ticked off my coworker. His lo-fi solution for malicious compliance was to bring in a large Newton’s cradle and set his mouse on the support bars underneath the device. The shock from the impact of the bearings was just enough to ‘wiggle’ his mouse.
    Pointless, since we didn’t change our nightly routine, but somehow deeply satisfying!

  18. If I even needed this (my employer trusts its employees), I would just put the mouse cord over the touchpad, as the induction (?) from the cable activated the touchpad and moves the pointer.

  19. #!/usr/bin/python3

    import pyautogui
    import time

    screenWidth, screenHeight = pyautogui.size()
    counter = 0

    while (True):
    currentMouseX, currentMouseY = pyautogui.position()

    # Check 0,0 special edge case
    if currentMouseX == 0 and currentMouseY == 0:
    pyautogui.FAILSAFE = False
    pyautogui.moveTo(10,10)
    pyautogui.FAILSAFE = True

    # Check for geometry bounds
    if currentMouseX >= (screenWidth – 2):
    pyautogui.moveTo((screenWidth -10),currentMouseY)
    elif currentMouseX = (screenHeight – 2):
    pyautogui.moveTo(currentMouseX, (screenHeight – 10))
    elif currentMouseY <= 2:
    pyautogui.moveTo(currentMouseX, 10)

    # move a pixel
    if (counter%2 == 1):
    pyautogui.move(-1,0)
    else:
    pyautogui.move(1,0)
    counter+=1
    time.sleep(200)

    1. Long ago, you held the shift key during startup to disable extensions on the macintosh. Sometimes took 45 seconds from hitting reset to getting to that point. I would jam a corner of a floppy disk above the shift key to keep it down.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.