Back to Blog
Guide

Keyboard Jiggler: Free F15 Scripts for Windows, Mac and Linux

A keyboard jiggler presses an unused key such as F15 every minute so the computer never counts you as idle. You can buy a USB device or run a free script. It keeps Windows awake, Teams green and the Slack desktop app active while the PC is unlocked.

Slack Green Team
September 26, 2026
October 7, 2026
6 min read
Share:
keyboard jiggler
mouse jiggler
keep computer awake
teams status
slack status

A keyboard jiggler is a device or a small program that presses a key every minute or so, so your computer never counts you as idle. The screen does not lock, the computer does not sleep, and apps that read the system idle time, such as Microsoft Teams, keep you Available. Most keyboard jigglers press F15, a key that almost no keyboard has and almost no app uses, so the press does nothing you can see. You can buy one as a USB stick or run a free script, and both are below.

A keyboard jiggler keeps the Slack desktop app active too, while the computer is unlocked. The key goes to whichever window is in front, and the Slack desktop app counts it wherever it lands (Slack desktop 4.52.178 code, checked 7 Oct 2026).

Keyboard jiggler vs mouse jiggler

Both do the same job with a different input. A mouse jiggler moves the pointer a pixel or two. A keyboard jiggler sends a key press. Windows, macOS and Linux reset the idle timer for either one.

Pick the keyboard version when:

  • • The pointer must stay still, for example while you read a long document or watch a dashboard.
  • • A mouse move would close a menu or tooltip that you need open.
  • • A remote desktop or virtual machine ignores tiny mouse moves but passes key presses through. For Citrix, see how to keep a Citrix session active.
  • Pick the mouse version when you type in the same window the whole day. A stray key in a text field is a bigger risk than a one-pixel move. Auto clicker vs mouse jiggler covers the third kind of tool, which clicks instead of moving.

    Keyboard jiggler options compared

    OptionWorks onNeeds install or adminKeeps Teams greenKeeps Slack active
    USB keyboard jiggler (AirDrive and others)Any computer with USBNo softwareYesYes, desktop app, while unlocked
    Caffeine app by Zhorn Software, F15 every 59 sWindowsPortable, no adminYesOnly with Slack in front
    PowerShell F15 scriptWindowsNothingYesOnly with Slack in front
    AutoHotkey scriptWindowsAutoHotkeyYesOnly with Slack in front
    osascript loopmacOSAccessibility permissionYesOnly with Slack in front
    xdotool loopLinux on X11xdotool packageYesOnly with Slack in front
    PowerToys Awake, caffeinateWindows, macOSVariesNo, it sends no inputNo
    Server-side presence toolNothing on the computerNoNoYes, on your schedule

    The USB kind presents itself to the computer as a keyboard. The AirDrive Keyboard and Mouse Jiggler, for example, acts as a USB mouse and a USB keyboard at the same time and has three jiggle modes. It needs no driver, which is why people use it on locked-down work laptops. The computer still lists it as a new keyboard, so IT can see it in the device list.

    Free keyboard jiggler for Windows: press F15 to keep the PC awake

    Pressing F15 once a minute keeps a Windows PC awake, because Windows counts the key as input and resets its idle timer. Windows needs nothing extra. PowerShell can press keys through the old WScript.Shell object, which accepts function keys up to F16. Paste this into a PowerShell window and leave it open. Ctrl+C stops it.

    # keyboard-jiggler.ps1: press F15 every 59 seconds, Ctrl+C to stop
    $wsh = New-Object -ComObject WScript.Shell
    while ($true) {
        $wsh.SendKeys('{F15}')
        Start-Sleep -Seconds 59
    }

    The 59-second gap matches the Caffeine app by Zhorn Software, a free portable tool that does the same thing with a tray icon. A version with a stop time for the end of the work day is in PowerShell script to keep Teams active.

    If you already use AutoHotkey, this v2 script presses F15 only when you have been idle for 50 seconds, so it never fires while you type:

    #Requires AutoHotkey v2.0
    Persistent
    SetTimer(Jiggle, 59000)
    
    Jiggle() {
        if (A_TimeIdle > 50000)   ; ms since the last key or mouse input
            Send("{F15}")
    }

    A_TimeIdle counts milliseconds since the last input of any kind. Checking it first keeps the script out of your way when you come back to the keyboard.

Never appear "away" on Slack again

Cloud-based. No downloads. Works 24/7 even when your laptop is off.

Keyboard jiggler for Mac and Linux

On a Mac, System Events can press a key by its key code. Some Apple keyboards use F14 and F15 for screen brightness, so this loop presses F18 (key code 79) instead:

# keyboard-jiggler for macOS: press F18 every 59 seconds, Ctrl+C to stop
while true; do
  osascript -e 'tell application "System Events" to key code 79'
  sleep 59
done

The first run needs permission. Turn on your terminal app in System Settings > Privacy & Security > Accessibility first. We ran one press from a terminal without that permission on 7 October 2026 (macOS 26.5.2) and read the system idle timer before and after:

ioreg -c IOHIDSystem | awk '/HIDIdleTime/ {print "idle_s=" int($NF/1000000000); exit}'
osascript -e 'tell application "System Events" to key code 113'
ioreg -c IOHIDSystem | awk '/HIDIdleTime/ {print "idle_s=" int($NF/1000000000); exit}'
idle_s=1108
36:48: execution error: System Events got an error: osascript is not allowed to send keystrokes. (1002)
idle_s=1109

The press was refused and the idle timer kept counting, so without the permission the Mac still sleeps on schedule. Run the same ioreg line right after a press to check your own loop: if the number keeps climbing, the press did not count. If System Events is not running, osascript reports "Application isn't running. (-600)" instead; open it once with open -a "System Events". If all you need is a Mac that stays awake, skip the key presses and run caffeinate -d; our mouse jiggler for Mac guide compares both.

On Linux with an X11 session, xdotool does the same:

# keyboard-jiggler for Linux (X11): press F15 every 59 seconds
while true; do
  xdotool key F15
  sleep 59
done

On Wayland, xdotool cannot reach the desktop. Use ydotool, as described in mouse jiggler for Linux.

Which key should a keyboard jiggler press?

Use a key that types nothing and triggers nothing:

  • • F15 on Windows and Linux. Keyboards stopped at F12 decades ago, but the system still knows F13 to F24 and counts them as input.
  • • F18 on a Mac, for the brightness reason above.
  • • Avoid Shift. Windows turns on Sticky Keys after five Shift presses in a row, and a held Shift changes what you type next.
  • • Avoid Scroll Lock and Num Lock. They toggle a mode, and Excel moves differently with Scroll Lock on.
  • • Never a letter, Space or Enter. The key lands in whatever window has focus, so a letter ends up in your email draft.
  • Some apps and remote tools do map F13 to F24, and some keyboard remapping tools use them. If a keyboard shortcut starts firing on its own, change the key.

    Does a keyboard jiggler work for Teams, Slack and monitoring software?

    Teams: yes. Teams moves you to Away after about 5 minutes without input anywhere on the computer, and a key press is input. Details in does a mouse jiggler work for Teams; the same rules apply to keys.

    Slack: yes for the desktop app, while the computer is unlocked. The Slack desktop app counts keyboard and mouse input anywhere on the computer and marks you away after 10 minutes without it (Slack desktop 4.52.178 code, checked 7 Oct 2026). An F15 press into Excel counts too. It does not cover sleep, a lock, a closed lid or your phone.

    Monitoring software: it depends on the product. Tools such as ActivTrak and Teramind record which app is in front and how much you type. A key press every 59 seconds with no other activity forms an even pattern that a report can show, and a USB jiggler shows up as a new keyboard. What each tool records is in can ActivTrak detect a mouse jiggler and can a mouse jiggler be detected.

    Keyboard jiggler questions

    Is a keyboard jiggler the same as an auto key presser? Mostly. An auto key presser repeats any key you choose at a set interval. A keyboard jiggler is an auto key presser set to one harmless key and a long interval.

    Can I use a keyboard jiggler without admin rights? Yes on Windows. The PowerShell script and the portable Caffeine app run as a normal user. More options are in keep a computer awake without admin rights.

    Does a keyboard jiggler stop the screen from locking? Yes, if the lock is triggered by idle time. It cannot stop a lock you trigger yourself, or a lock that closing the lid starts.

    Does pressing F15 keep a computer awake? Yes. F15 is a real key to Windows, macOS and Linux, so each press resets the idle timer that sleep, the screen saver and the idle lock count from. Press it more often than your shortest idle setting; every 59 seconds covers a 1-minute timeout. On a Mac, use F18 for the brightness reason above.

    Will F15 show up in my documents? No. F15 types no character. Apps that do not bind it ignore it.

    Always Active

    Stop Jiggling Your Mouse.

    Join hundreds of remote workers who never worry about their Slack status. Set it up once, stay green forever.

    Related Articles

    Guide

    Slack Bot Scopes: The Scope Each API Method Needs, Measured on 44 Methods

    We gave a Slack bot one scope, called 44 common Web API methods, and read the needed field of every missing_scope error. Then we added the scopes and called them again. The table shows which scope clears each method.

    Slack Green Team
    Guide

    Slack File Size Limit: 1 GB Is Exactly 1,073,741,824 Bytes, Tested

    We uploaded files of 50 MB, exactly 1 GiB and 1 GiB plus one byte to Slack through its upload API. The limit is 1,073,741,824 bytes, and a failed upload can still leave a broken file behind.

    Slack Green Team
    Guide

    Slack Dark Mode: Where the Setting Is, and Which Custom Emoji Disappear

    Slack's dark mode is under Preferences > Appearance > Color Mode, with Light, Dark and System. We switched modes in Slack web with three test emoji and measured which ones vanish.

    Slack Green Team