Skip to content

HVCrealm/AutoScroll

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation


Python Platform License Version Made by


"I needed it. So I made it. It's useless β€” yet somehow incredibly useful."

β€” Harsh Vardhan Chopra



πŸ€” Why does this exist?

I was using Snapchat Web and realised it straight-up ignores arrow keys, Page Down, and even the middle mouse button scroll. There's no way to auto-scroll through stories without physically moving your scroll wheel every few seconds.

So I built this. It simulates the mouse wheel at the OS level, which means it works on any website, any browser, any app that blocks normal keyboard input. Set your speed, hit Start, switch to your browser, and forget about it. Move your mouse and it stops automatically.

Is it the most important tool ever built? No.
Will it save you from repetitive strain on Snapchat? Absolutely.


✨ Features

  • πŸ–±οΈ Simulates middle-click wheel scroll β€” bypasses sites that block arrow keys
  • πŸ›‘ Auto-stops when you move your mouse β€” completely hands-free control
  • ⌨️ Global hotkeys β€” work even when the browser is focused, not this app
  • πŸŽ›οΈ Fully customisable β€” speed, direction, ticks/sec, stop threshold, start delay
  • πŸ’Ύ Saves your settings β€” remembers everything across launches
  • πŸ’» Laptop presets β€” safe hotkey suggestions per laptop model (HP, Dell, Lenovo, ASUS, Acer)
  • πŸͺŸ Always-on-top mode β€” float the window beside your browser
  • πŸ” Auto admin request β€” asks for elevated privileges on launch for reliable hotkeys
  • 🌍 Windows + Linux β€” one codebase, both platforms, no compromise

πŸ“Έ Screenshot

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ β–Œβ–Œβ–Œ  AutoScroll              v2.1  [●]  β”‚
β”‚ Made by Harsh Vardhan Chopra | @HVCREALMβ”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ βœ… Scrolling  β€’  move mouse to stop  β–²  β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ ⌨ Global hotkeys active                 β”‚
β”‚ [Ctrl+F9] Start  [Ctrl+F10] Stop        β”‚
β”‚ [Ctrl+Alt+S] Toggle                     β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€[ Control ]──[ Hotkeys ]────
β”‚ Scroll speed      β–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘  3           β”‚
β”‚ Ticks / second    β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘  15          β”‚
β”‚ Mouse stop (px)   β–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘  6           β”‚
β”‚ Start delay (sec) β–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘  3           β”‚
β”‚                                         β”‚
β”‚ Direction:  [β–² Up]  [β–Ό Down]            β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  [β–Ά  Start]          [β–   Stop]          β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸš€ Quick Start

Option 1 β€” Run from source (recommended for developers)

# Clone the repo
git clone https://github.com/HVCREALM/AutoScroll.git
cd AutoScroll

# Install the one dependency
pip install pynput

# Run
python autoscroll.py

Option 2 β€” Download a pre-built release

Head to Releases and grab:

File OS Notes
AutoScroll.exe Windows 10/11 No Python needed
AutoScroll Linux (x64) No Python needed

πŸ—οΈ Build It Yourself

Windows

:: Double-click this file, or run in cmd:
build_windows.bat

What it does automatically:

  1. Checks Python is installed
  2. Installs pynput + PyInstaller
  3. Builds dist\AutoScroll.exe β€” single portable file, no install required
  4. Embeds UAC admin request into the .exe

Linux

chmod +x build_linux.sh
./build_linux.sh

What it does automatically:

  1. Detects your distro (apt / dnf / pacman / zypper)
  2. Installs all system dependencies including python3-tk and polkit
  3. Builds dist/AutoScroll β€” single portable binary
  4. Creates a .desktop shortcut in your app menu
  5. Installs a polkit policy for GUI sudo (no terminal popup)

⌨️ Hotkeys

All hotkeys are globally active β€” they work even when AutoScroll is minimised and your browser is in focus.

Hotkey Action
Ctrl + F9 Start scrolling (with countdown delay)
Ctrl + F10 Stop scrolling immediately
Ctrl + Alt + S Toggle start/stop (always works as backup)

All hotkeys are fully customisable from the Hotkeys tab inside the app.
You can pick any modifier + any F-key combination that doesn't conflict with your laptop's function row.

Built-in Laptop Presets

The app ships with presets that map safe hotkeys per laptop model, avoiding conflicts with media keys:

Laptop Avoid Safe keys
HP Victus 15-fb0 F7 (Volβˆ’), F8 (Vol+) Ctrl+F9 / Ctrl+F10
HP Pavilion / Envy F6 (Mute), F7 (Volβˆ’), F8 (Vol+) Ctrl+F9 / Ctrl+F10
Dell XPS / Inspiron F1 (Mute), F2 (Volβˆ’), F3 (Vol+) Ctrl+F8 / Ctrl+F9
Lenovo IdeaPad / Legion F1 (Mute), F5 (Refresh) Ctrl+F9 / Ctrl+F10
ASUS ROG / TUF F10 (Mic), F11 (Volβˆ’), F12 (Vol+) Ctrl+F8 / Ctrl+F9
Acer Nitro / Aspire F7 (Brightβˆ’), F8 (Bright+) Ctrl+F9 / Ctrl+F10

πŸ” Admin / Sudo

On launch, the app shows a dialog asking if you want elevated privileges.

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  AutoScroll β€” Admin Permission          β”‚
β”‚                                         β”‚
β”‚  AutoScroll works WITHOUT admin rights. β”‚
β”‚                                         β”‚
β”‚  However, global hotkeys work MORE      β”‚
β”‚  RELIABLY with administrator privileges.β”‚
β”‚                                         β”‚
β”‚  Do you want to restart with admin?     β”‚
β”‚  (You can say No β€” it still works fine) β”‚
β”‚                                         β”‚
β”‚        [ Yes ]        [ No ]            β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
Response Result
Yes Re-launches with UAC (Windows) or pkexec GUI dialog (Linux)
No Continues normally β€” everything still works

No admin is required. It's offered because some systems restrict global keyboard hooks for non-admin processes.


βš™οΈ Settings Reference

Setting Range Default Description
Scroll speed 1 – 20 3 How many scroll units per tick
Ticks / second 3 – 40 15 How often a scroll event fires
Mouse stop (px) 2 – 30 6 Pixels of mouse movement to trigger auto-stop
Start delay (sec) 0 – 10 3 Countdown before scrolling begins (gives you time to switch windows)
Direction Up / Down Up Scroll direction
Window on top On / Off On Keep AutoScroll floating above other windows

Settings are saved automatically to autoscroll_config.json next to the executable on every change and on close.


πŸ–₯️ Compatibility

OS Status Notes
Windows 10 βœ… Full support
Windows 11 βœ… Full support
Ubuntu 20.04 + βœ… Full support X11
Debian 11 + βœ… Full support X11
Fedora 36 + βœ… Full support X11
Arch Linux βœ… Full support X11
Linux (Wayland) ⚠️ Partial Global hotkeys need xdotool
macOS ❌ Not supported Not tested, not planned

πŸ“ Repository Structure

AutoScroll/
β”œβ”€β”€ autoscroll.py        ← Main application
β”œβ”€β”€ build_windows.bat    ← Windows build script (PyInstaller)
β”œβ”€β”€ build_linux.sh       ← Linux build script (PyInstaller)
β”œβ”€β”€ README.md            ← You are here
β”œβ”€β”€ LICENSE              ← MIT
└── autoscroll_config.json  ← Created at runtime (not committed)

🀝 Contributing

This project is open source and contributions are welcome β€” but let me be honest about how I'd prefer things work.

The easiest way to help

Just tell me the problem. Open an Issue describing what's broken or what you'd like. I'll look at it and fix it myself if I have time. That's genuinely more useful than a surprise PR landing in my inbox.

If you really want to submit a PR

I won't reject a good PR, but here's what I ask:

  • Open an issue first β€” describe the problem before writing any code. Let's agree it's worth fixing.
  • Keep changes focused. One problem = one PR.
  • Don't refactor things that aren't broken.
  • Test on at least one platform (Windows or Linux) before submitting.
  • Write a clear description of what changed and why.

What I'm interested in

  • Bug fixes (especially Linux / Wayland issues)
  • New laptop presets (if your model has a different Fn key layout)
  • macOS support (if someone wants to build and maintain it β€” I don't own a Mac)

What I'll probably say no to

  • Complete UI rewrites
  • Switching to a different GUI framework
  • Adding network features or telemetry of any kind

πŸ“œ License

MIT β€” do whatever you want, just keep the credit line.

MIT License β€” Copyright (c) 2025 Harsh Vardhan Chopra (@HVCREALM)

πŸ‘€ Author

Harsh Vardhan Chopra

@HVCREALM

Built this because I needed it. Sharing it because someone else might too.


About

Mouse-wheel auto-scroller for any browser or website. Global hotkeys, customisable speed & direction, auto-stops on mouse move. Windows + Linux.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors