DesktopScroll is a keyboard-driven Windows utility for scrolling at a chosen point on one or more screens.
Note: The Repeat Delay and Repeat Interval settings are saved with the application configuration. They are intended to control the timing of repeated scrolling actions, but repeat-timing behavior has not been implemented yet. Changing these values currently has no effect.
- Start DesktopScroll. It runs in the notification area (system tray).
- Press
Ctrl+Shift+Enterto enter target-selection mode. - A labeled grid appears across your monitors. Type the letters shown in the area where you want to scroll.
- When the label is complete, DesktopScroll selects that point and enters scroll mode. The selected area is marked with a cursor dot when that option is enabled.
- Use the configured scroll keys to scroll at the selected point. The default keys are
W,A,S, andD. - Press
Escto leave scroll mode.
You can press Ctrl+Win+Enter later to resume scrolling at the last selected point.
There is currently no installer. An installer is planned for a future release.
For now, run DesktopScroll from the source code with the .NET SDK installed.
- Windows
- .NET 8 SDK
- A Windows Forms-compatible desktop environment
Open PowerShell in the repository folder:
dotnet restore .\DesktopScroll.csproj
dotnet build .\DesktopScroll.csproj -c Release -nologo
dotnet run --project .\DesktopScroll.csproj -c Release -nologoThe application is a tray application, so it may not display a normal console window. Look for the DesktopScroll icon in the notification area.
To build a self-contained publish output without an installer:
dotnet publish .\DesktopScroll.csproj -c Release -r win-x64 --self-contained true -o .\artifacts\publishRun the published application with:
.\artifacts\publish\DesktopScroll.exeDesktopScroll includes a focused unit-test suite for deterministic application behavior that does not require a live desktop, global keyboard hooks, or simulated mouse input. The tests cover application mode transitions, hotkey and scroll-key parsing, grid-label generation and capacity limits, and settings defaults, persistence, recovery from invalid configuration files, cloning, and saved target coordinates.
Run the tests from the repository root:
dotnet test .\DesktopScroll.Tests\DesktopScroll.Tests.csproj -nologoThe test project targets Windows because the application and its keyboard types use Windows Forms.
| Shortcut or key | Action |
|---|---|
Ctrl+Shift+Enter |
Open the labeled screen grid and select a target point |
Ctrl+Win+Enter |
Resume scroll mode at the last selected point |
W |
Scroll up |
S |
Scroll down |
A |
Scroll left |
D |
Scroll right |
Esc |
Exit target-selection mode or scroll mode |
| Arrow keys | Move among matching targets while selecting, when available |
The scroll keys can also be changed in Settings. The arrow keys remain available for directional scrolling and target navigation.
Right-click the DesktopScroll icon in the notification area to open the menu.
- Enable: Enables DesktopScroll so its global shortcuts and scrolling behavior are active.
- Disable: Disables DesktopScroll and exits any active selection or scroll mode. The application remains in the notification area.
- Settings: Opens the configuration window. Double-clicking the tray icon opens this window too.
- About: Shows a short description of DesktopScroll.
- Exit: Closes DesktopScroll and removes its tray icon.
The tray tooltip indicates whether DesktopScroll is enabled, disabled, selecting a target, or in scroll mode.
Changes are saved to the application settings file and applied when you press Save. Press Cancel to close the window without applying changes.
- Enabled: Turns the utility on or off.
- Start with Windows: Registers DesktopScroll to start automatically when you sign in to Windows.
- Activation Hotkey: The global shortcut used to open the labeled target-selection grid. Default:
Ctrl+Shift+Enter. - Resume Hotkey: The global shortcut used to resume scrolling at the last selected point. Default:
Ctrl+Win+Enter.
- Scroll Up Key: Default
W. - Scroll Down Key: Default
S. - Scroll Left Key: Default
A. - Scroll Right Key: Default
D.
- Grid Rows: Number of rows shown on each monitor. Default:
8. - Grid Columns: Number of columns shown on each monitor. Default:
16.
The grid labels identify the screen areas. Type a label to select its center point.
- Vertical Step: Amount of vertical scrolling sent for each scroll action. Default:
120. - Horizontal Step: Amount of horizontal scrolling sent for each scroll action. Default:
120. - Repeat Delay (ms): Stores the delay value intended for repeated scroll input. Default:
30milliseconds. The current scrolling engine does not use this value yet. - Repeat Interval (ms): Stores the interval value intended between repeated scroll actions. Default:
30milliseconds. The current scrolling engine does not use this value yet.
- Show Cursor Dot: Shows or hides the marker at the selected scroll point. Default: enabled.
- Dot Size: Sets the marker size. Default:
8. - Dot Opacity (%): Sets the marker opacity. Default:
75%.
The application also supports these command-line options:
.\DesktopScroll.exe --startup-enable
.\DesktopScroll.exe --startup-disableThey enable or disable the Windows startup registration directly. Disabling keeps DesktopScroll visible in Windows Startup Apps with its switch off.
Application/ Application lifecycle and orchestration
Configuration/ Settings models and persistence
Features/ Target selection, overlays, labels, and scrolling
Infrastructure/ Windows and system integration services
Models/ Core application models
UI/ Windows Forms UI
Startup/ Windows startup registration
Assets/ Application assets
Installer/ Planned WiX installer project