Slack marks you as Away after exactly 10 minutes of no mouse movement or keyboard input. For anyone working from home — where you're constantly jumping between calls, reading documents, or stepping away for coffee — that idle timer fires constantly, even when you're genuinely working.

The result: your teammates see a grey dot next to your name, assume you've vanished, and either ping you repeatedly or route things around you.

Why Slack's idle detection is so aggressive

Slack's activity detection runs in two places simultaneously: the desktop app and the browser. It watches for mouse movement, keyboard input, and whether the window is focused. If any 10-minute gap appears in that signal, your status flips.

This matters more than most people realise. In a remote team, your green dot is essentially your office presence. People do check before reaching out. A grey dot is a signal that says "don't bother right now."

What doesn't work

Moving your mouse manually every few minutes

The obvious approach, and also the one that guarantees you'll forget. The moment you get deep into a document, a design, or a Zoom call, the timer fires and you're gone.

Keyboard shortcuts or macros

Some people set up AutoHotkey scripts to press a key every few minutes. These work in principle but are fragile — they stop working if the window loses focus, they can accidentally trigger things in other apps, and they require ongoing setup per machine.

Changing your status to "Available" manually

Slack's manual status doesn't override the idle detection. You can set a green "available" status text, but the activity dot (the small circle next to your name) is entirely controlled by Slack's idle timer, not your manual status.

What actually works

The most reliable approach is to generate synthetic mouse movement at the OS level — movement that every app, including Slack, sees as genuine user activity. This is exactly what a virtual mouse jiggler does.

Unlike a physical USB jiggler (which plugs into your computer and wiggles a hardware mouse pointer), a virtual solution runs in your browser via a Chrome extension. It dispatches real pointer events that browsers — and all the apps running in them — interpret as genuine activity.

The key advantage: it targets the browser, which is where Slack's web app lives. Slack sees a real pointermove event and resets its idle timer. No scripts to maintain, no physical hardware to carry around.

Does it affect Slack's mobile app?

Slack's mobile app has its own, separate presence detection based on whether the app is open in the foreground. Desktop and mobile presence are tracked independently, so keeping your desktop status active doesn't interfere with your phone status — they update separately.

What about Microsoft Teams?

Teams uses the same concept — a system-level idle timer — but it's slightly less aggressive than Slack's 10 minutes. Teams typically waits closer to 5 minutes before marking you Away, but that still causes problems during long calls or deep work sessions where you're not interacting with the mouse.

The same approach fixes both: activity at the browser level resets both Slack and Teams simultaneously, since both run in Chrome tabs.

The bottom line

Slack's idle detection isn't a bug you can argue with — it's a design choice baked into how the product works. If you want your presence to reflect your actual availability rather than your mouse movement patterns, the cleanest solution is to handle the activity signal at the source: the browser layer that both Slack and Teams run on.