The good news is that more and more people are working from home these days. The bad news is that some of the more draconian employers out there aren’t too happy about it, to the point of using spyware software to keep tabs on their workers. Better make that bathroom break quick — Big Brother is watching!
One simple way to combat such efforts is a mouse jiggler, which does…well it does exactly what it sounds like. If you find yourself in need of such a device, the WorkerMouse from [Zane Bauman] is a simple open source design that can be put together with just a handful of components.
The WorkerMouse is designed to be assembled using through-hole parts on a scrap of perfboard, but you could certainly swap them out for their SMD variants if that’s what you have on hand. The circuit is largely made up out of passive components anyway, except for the ATtiny85 that’s running the show.
[Zane] decided to embrace modernity and couple the circuit with a USB-C breakout board, but naturally you could outfit it with whatever USB flavor you want so long as you’ve got a cable that will let you plug it into your computer.
The project’s C source code uses V-USB to connect to the computer and act as a USB Human Interface Device (HID). From there, it generates random speed and position data for a virtual mouse, and dumps it out every few seconds. The end result is a cursor that leaps around the screen whenever the WorkerMouse is plugged in, which should be enough to show you online while you step away from the computer. As an added bonus, [Zane] has put together a nice looking 3D printable enclosure for the board. After all, the thing is likely going to be sitting on your desk, might as well have it look professional.
If you’ve got the time to get a PCB made, you might also be interested in the MAUS we covered last year, which also keeps the ATtiny85 working so you don’t have to.
Ages ago i got a mouse wiggler thing that moves the cursor like one pixel every so often to counteract the frequent dangerous auto-log-offs of my work computer. Best $15 I ever spent. Huge quality of life improvement.
I just have a builtin windows audio file running silently in a loop using WMP. That prevents auto-logoff and the like.
I used to run Windows Media Player in the background but it would drain my laptop battery really quickly. I wasn’t allowed to change the screensaver timeout for the work computer so a hardware solution was the only one for me.
Amazing little nubbin. Have one for the same reason. Nothing in the process list, looks like a USB mouse.
Adafruit sells little devices called Trinkeys. They will run Circuitpython code. They are small and plug directly into a USB port. I have one programmed to do a mouse jiggler function keeping the computer from locking itself. It also has a second function. It will upon pressing it’s button type the insane long complicated password IT forces us to create these days.
Lol, nice!
To solve this issue at my last workplace I just wrote a little powershell script. I was building UI automation for my workflows (couldn’t use anything but PS due to red tape), and realized a keep-alive/jiggler would only be a couple of lines.
We didn’t have any activity trackers or anything (I would know, I installed all the software on every workstation), I was just making sure I didn’t go ‘away’ on teams.
Not trying to knock the creator of this – USB HID is fun and educational to play with, and I’m sure their hardware knowledge is better than mine – but a $0 solution that can be deployed to any windows computer without external hardware works well for me. The powershell solution runs without root and in environments that enforce a USB whitelist, so is probably useful to a wider number of people looking for a solution at work (unless you get to run a linux workstation while on the clock, I’ve never been so lucky)
Scares me running any sort of code to do this. Seems like it would be really easy to detect if the company wanted to.
Unfortunately, so is “one USB mouse that interacts with windows in an expected way during times we see other signs of user actovory and a second USB mouse that moves randomly every couple of seconds which is operating the other times.”
Basically, if you’re worried about corporate big brother, having a mouse jiggler show up as a 2nd USB mouse in the device manager is still a pretty easy thing to catch. An “airgapped” jiggler that sits under your normal mouse is a bit better, but even that will still for short of “realistic usage data” for any sort of serious audit. As an easy example “mouse movement” may have plenty of data logged, but if someone checks “mouse clicks”, “keyboard presses” or “programs interacted with”, it will still be really obvious that you weren’t at the computer.
Yeah, no, that is BS.
Running random pieces of code/scripts is easily detectable, low effort even.
Detecting a 2nd mouse takes a lot more effort. Heck, windows doesn’t even have support for 2 mices (aka 2 cursors), and a lot of devices present themselves as multiple HID devices: my Mouse presents as a keyboard, too my Headphones present as a keyboard, too… And I assure you there’s USB dongles that can connect both a mouse and a keyboard at the same time.
It would be hard to prove.
Meanwhile, software…
One of those old gateway keyboards with the macros would work
Some environments even powershell is locked out, so hardware is the only solution.
Since companies actually pay to deploy this stuff haven’t them also already determined similar algorithms (though on a constant large scale) to detect such ‘cheat’ devices ? I mean on the web the whole ‘check the box’ to say I’m human is still a thing…
What I find crazy is these companies need to know if you are still in front of your screen. Some even insist you will be on site. The best activity tracker should obviously be the work done. If the employer doesn’t even know if a team is achieving requiered tasks, they should question the actual management!
A perfect illustration of a severe infection of bureaucracy. As Sir Humphrey explains in Yes Minister, civil servants (and nowadays the administraitors (not a typo) who cluster in to big corporations with a revolving door to government jobs) don’t produce anything worthwhile, so they measure their success on how big an organisation they can set up around them. Box-tickers therefore consider hours-worked to be the vital measure, regardless of actual work done, because they simply do not care to measure actual work done, lest by doing so they provide evidence that their departement could be slimmed down. The message for companies is never to let an administrative layer form between the actual founder bosses (who care directly about profit and know atleast enough about what the company does to have started it) and the actual workers (who produce actual worthwhile goods and services that customers want to pay for). The message for politicians at the top of governments is to roll back government intrusion in to private lives, then sack all the bureaucrats who will no longer be able to pretend they have “vital” work to do.
Anyone still just putting the optical mouse on top of a clock face? The second hand passing by was the trigger. Wonder if it would trigger (reliably) from one of the red led multi-segment displays?
I do. Tried several solutions, but the analog clock and optical mouse is still the best combo. Doesn’t work with fancy laser / ir mice – just the cheap-o red led.
Optical mice tracks movement. Changes done in light / screens have no effect.
Sometimes a digital solution is an analog one! My absolute favourite. I Love this one.
I’d repurpose one of these $1 stlink clones for this
https://a.aliexpress.com/_mPobpcS
What should be feed to duckduckgo to find sources of alternative software the STlink?
I see “mouse jiggler” projects come up here every few months.* Let me summarise the various approaches in one place. Let’s assume that for whatever reason, you’re not allowed to simply fix the screen lock timeout in your situation.
1. Software. Write a script to fake mouse movements, or to fake a “media is playing” flag to keep the screen active. The downside of this approach is that if your workplace won’t allow you to fix the screen lock timeout, they probably also have rules against subverting it, or running “unapproved” code or scripts.
2. Run a media player in the background. This will keep your screen active but also keeps your CPU very active and if you’re using a laptop it can really impact your battery life, and also increase fan noise.
3. Mechanical hacks. E.g, leaving the mouse on top of an analog watch dial, using a servo to tap the mouse etc. These “work” and have advantage of not leaving any software fingerprints on your computer. However they really interfere with your workflow as you have to place the mouse on or near the jiggler before leaving the computer unattended.
4. Hardware hacks, like the one in this article. These mimic a “real” mouse to add a small amount of random motion to keep the screen active. Done right, these will not run afoul of workplace policy (because it just looks like a generic mouse) and the motion can be programmed to be random enough to blend in with normal use, while not interfering with real mouse inputs. It’s very common to see hardware hacks based on a Digispark, because it’s cheap and very simple to implement. However, the Digispark bootloader will be detected by the operating system every time you plug it in to your computer. If your employer is monitoring your computer use, this is a very clear sign that you are trying to get around their monitoring. So it is quite important to remove the bootloader before using a mouse jiggler based on a Digispark (these can usually be identified by their use of the ATTiny85 microcontroller or, you know, just plug it in and see if it briefly shows up as a Digispark or similar before being detected as a mouse!)
* Disclaimer. I make a mouse jiggler based on an ATTiny85, called the AFKfix. There is no bootloader present on these, so no obvious fingerprints to show up in your system logs. Hackaday haven’t picked it up for an article yet, so I’ll put the Tindie link here: https://www.tindie.com/products/nickwest/afkfix-mouse-jiggler-mouse-mover/
Or find it on EBay by searching “AFKfix”
Or build your own, it’s all open :-)
I’ve done a few of these. The best one was esp32 with ble to be a mouse (works with my company hp but not thinkpad). I just leave it plugged in in the home office. I can call it what I want and I can also use it to keep my company iphone alive. Digispark was fine for my computer. I think I was not aware of it appearing on the company computer. I think any chip with native usb worked better for me.
“I see “mouse jiggler” projects come up here every few months.*”
Please provide us with links to prove your claim, as a regular reader of the news items I’m having quite a different experience.
When I was working as a dentist I used to use mouse jiggler software to defeat the timeout on computer screens in my operatories. The IT folks set up the timeout to reduce chances of a HIPAA violation. I tried to get them to shut off the timeout on my computers in the operatories but they wouldn’tt do it. I was looking at x-rays while doing multiple extractions. I couldn’t let the screen timeout or I’d have to log in multiple times during a patient session, getting my bloody gloves on the mouse and keyboard in the process, or changing gloves every 5 minutes every time the damned thing timed out.
Why not just movemouse script?
Funny gadget but employers spying on employees!? 🤨
In which country is this legal, North Korea and China excluded?
It’s legal to monitor IT usage pretty much everywhere, if you didn’t know this and you work for a company you’d be well advised to check your employment contract and company IT policies.
In a civilized country? To my knowledge, here in my location (Germany), this isn’t allowed unless the employer does *explicitly* state surveillance before the contract is made and only if the employees agrees to it (he/she doesn’t need to, btw, if the contract violates regulations/law).
Checking an employee’s monitor secretly via remote control connection isn’t allowed, for example.
Checking browser history of an employee’s PC is merely allowed if there’s an acute reason to check (like lots of private use, involvement in a crime etc).
And even then, the employee must be informed about this action. Likewise, monitoring the employee’s workplace via video camera is forbidden (public spaces excluded). I thought such things should be just natural.
Seriously, in which dystopia are some of you guys living?! 😥
Even in your utopia it’s allowed, as you say, with prior agreement of the employee.
That notice is given in your terms of employment/contract which you are given to sign before you start to work for the company.
Can you honestly say you read *every* single line of your employment contract and the company IT policy *before* you signed and agreed to it?
I did. My employee contract is just over 2 pages.
There’s nothing weird in it, it’s a pretty standard contract, and still I let one of my legal friends read it.
The Code of Conduct is a little longer over 10 (not just IT but everything).
It’s called ‘murica! goddamit! If you don’t like it, you can get F out!
In your “civilized” country, you are required to register your current residence with the government. Failure to do so results in a fine or jail time, What kind of dystopia are you living in where the government monitors your whereabouts?
This is not true – there are countries where it is not legal – for example Norway. Monitoring of IT devices that employees use is explicitly disallowed in Norway. The two exception is related to network admin and security breaches. Here is an explainer of the relevant law, in Norwegian – should autotranslate pretty well to English. https://www.datatilsynet.no/personvern-pa-ulike-omrader/personvern-pa-arbeidsplassen/overvaking-av-ansattes-bruk-av-elektronisk-utstyr/nar-er-overvakingen-forbudt/
In addition to this specific ruling, employees have a high to privacy in the general workplace laws. This means that for example, security cameras on company premises is only allowed if it is needed for very specific and impactful concerns, and only if less invasive practices are not viable.
I would expect similar regulations in the rest of Scandinavia and Germany at least, and possibly in the wider Eurozone.
I would much rather work in a place that gives you standards to be upheld as towards your work and whatever you’re putting towards it
It’s their (the company’s) computer – they can do whatever they want with it.
My company took to monitoring staff activity some years ago (US owned but I’m in the UK). First of all it was helpdesk staff only but then it started being “accidentally” deployed to everyone and if anyone noticed and queried it they said they couldn’t uninstall it once presenet – such bullshit. No idea whether they used it in anger on remote devs like myself but I installed a single servo button presser to page down one of many long HR documents they kept telling us we should all be familiar with at suitably random intervals when I was afk.
“Stupid drinky bird!”
-Homer Simpson
The simple Caffeine program solves this issue forever. Easy and convenient.
Powertoys has its own utility too. The problem is if your IT dept is monitoring your clicks, they’ve probably restricted the ability to install programs on your own. At least mine has.
I just retired and left my employer to hazzle someone else.
A cheap, USB rechargeable, mini “massager” placed next to the mouse might work.
To solve this very problem I suggested my wife to simply open a very long YouTube! video on her work phone and place the mouse on top o the phone screen. Evrika! It worked!
I just got one of those flickering candle LEDs and put it next to the sensor. Worked fine.
(Banking environment, hardware & software locked down. Could have written a mouse jiggler in PowerPoint VBA I guess but this was funnier.)
Surely leaving the screen unlocked and walking away is a breach of the security policy.
Computer Surveillance is completely legal in the US as long as there is a consent banner, which is required in my organization. CISA recommends the following:
AN EXAMPLE BANNER INCORPORATING THE ELEMENTS
By clicking [ACCEPT] below you acknowledge and consent to the following:
All communications and data transiting, traveling to or from, or stored on this system will be monitored. You
consent to the unrestricted monitoring, interception, recording, and searching of all communications and
data transiting, traveling to or from, or stored on this system at any time and for any purpose by [the
COMPANY] and by any person or entity, including government entities, authorized by [the COMPANY]. You
also consent to the unrestricted disclosure of all communications and data transiting, traveling to or from, or
stored on this system at any time and for any purpose to any person or entity, including government entities,
authorized by [the COMPANY]. You are acknowledging that you have no reasonable expectation of privacy
regarding your use of this system. These acknowledgments and consents cover all use of the system,
including work-related use and personal use without exception.
All your bits belong us.
Why not just put the attiny inside the actual mouse and have a small switch to activate its jiggle mode?
Because you would have to add a usb hub inside too, so 2 usb devices could be connected to the pc.
No need for a mouse jiggler here as I just let my cat sleep on the open laptop.
Well, our engineers (SCADA) use wall clock as mouse pad ;)
Movement at 60 sec. interval guaranteed :D
I suggest Digispark AtTiny85. It’s basically a cut pcb that is effectively a pen drive (however I found on some machines with shich chassis, pcb may not go in deep enough, so it gets power but not data). You just program it and good to go, no need to solder. These cost just a few bucks each. I even saw some with cases but I simply used heat shrink tube to keep the cost abd level of effort low. I have done something like that years ago but for temporary usage like machine updating to prevent sleep/lock or hardware controller computers. These could be useful when you read stuff or brainstorm but if your job tracks mouse, you really should look for another job, not this type of device.
The problem with a mouse jiggler for the purpose of fooling your boss/company is that if your computer shows that you are at your desk and your boss calls or IMs you, and you don’t answer, you’ll have even a more serious problem.
Easiest solution is to just do your job. And if you have to take a bio-break, or get a snack, just be up front and tell your boss where you went. And if he/she has a problem with that, call HR or get another job.
I use mine to keep the PC awake, instead of having to log in many times a day.
I have an old, unmodified Microsoft wireless mouse & keyboard combo that does this by default. Never figured out WHY, but whenever it’s USB receiver is plugged in, it never registers me as “away” regardless of how long it sits idle.
It’s probably not supposed to do this. But I keep the USB receiver plugged into my work computer even though I’ve since moved on to a new mouse/keyboard.
Here is mine with a pro-micro and one push button switch to start the 9.5 hour work day, very minimum soldering. Low cost (~$4) and quick.
It wakes up the pc, then every 20 minutes it moves the mouse cursor a few pixel (never bothers you).
Customize to your liking, enjoy.
#include
//# This is run once, during device initialization
void setup()
{
// Define pin #2 as input and activate the internal pull-up resistor
pinMode(2, INPUT_PULLUP); //connect push button from pin#2 to ground, for waking up computer and starting the jiggle.
Mouse.begin();
}
//# Main loop – move mouse back and forth every X seconds (set in delay)
void loop()
{
int buttonValue = digitalRead(2);
if (buttonValue == 0)
{
int count = 27; // set loop count, 27 is 9 hours with 20 min delay
delay(1000);
Mouse.move(-10,0,0); //move mouse x,y, this is large mouse move to wake computer
while(count > 0 ) //keep looping till if count > 0
{
Mouse.move(-1,0,0); //move mouse x,y
//delay(100);
//Mouse.move(-2,0,0);
//delay(100);
//123
// Mouse.move(1,0,0);
delay(1200000); // delay in milliseconds till next move 1,200,000 is 20 minutes
count = count -1; //subtract 1 from count after waiting 20min
}
}
}