File information
Created by
MisanthropicShaynaUploaded by
MisanthropicShaynaVirus scan
About this mod
Graphical utility that confines the cursor to a game/program's window, in order to prevent the cursor from wandering over to second or third monitors, causing unwanted inputs on other applications, designed to run alongside games that do not natively support this, Skyrim being one such game.
- Permissions and credits
- Mirrors
Cursor Locker is a graphical remake and major improvement upon an old utility I made a while back called MouseLock, which was a hastily programmed and poorly designed command line utility that wasn't user friendly at all and was very inefficient. This utility on the other hand has gone through several major revisions in order to make it as user friendly and convenient to use as possible
Many quality of life features have been added since the first version of Cursor Locker, so if you're returning after a recent update, you might find that a lot of features have been added, and existing features tweaked to be made better.
v4.0.0 Changelog Highlights
- A new dialogue has been created for selecting process image names and window titles, removing the need to type them out manually.
- A JSON configuration dialog has been added, removing the need to manually configure the JSON file for default startup values.
- A hotkey recorder has been added, removing the need to manually type VKIDs.
- Modifiers are now supported for hotkeys, both with and without using the hotkey recorder.
- Hotkey presses are detected instantaneously, as key events are being used now rather than key polling.
- A built-in VKID table is included, for redundancy's sake (e.g. internet outages, or a bug in the hotkey recorder).
- A custom theme specifically made for this program (can be turned off by deleting stylesheet in settings for those who like it vanilla)

Hotkey / Keyboard Shortcut
Hotkeys are registered in this program using VKIDs (virtual key IDs), and by selecting which keyboard modifiers to go along with it from a drop-down. These are just unique identifiers for each key on your keyboard, formatted in hexadecimal. When using the hotkey recorder, you don't really need to dabble with these, as the appropriate VKID and modifiers will be filled in automatically, but when inputting VKIDs manually, you'll want to refer to the VKID table built into the program to figure out which key maps to what VKID. As an example, the "Numpad *" key has the VKID of 0x6A. You can also find a complete list of VKIDs here or alternatively here
Process Is Running
You can also have the lock activate as soon as a selected process is running, and have it deactivate when that process exits. You can either type the process name manually, or use the process selector, which will show you a list of running processes that you can select from, to make life easier. I don't personally recommend this method, as the lock will continue to be active when you tab out of your game, as the process is still running in the background, so your cursor will be confined to whichever program you tab to. I'd only recommend using this method if the other two methods don't work, or if you actually prefer this behavior.
Foreground Window Matches Title (recommended)
This is the recommended method. The lock activates when your current foreground window (whichever window is currently focused) has a title which matches the title that you've previously selected. That way, the lock will automatically activate/deactivate when you tab into and out of your game. You can either type the window title manually, or use the select button to get a tree of running processes and their windows, which you can use to select a window title from. You can also use the grab button to grab the title of the next foreground window that you select/change focus to.
Default Settings
In older versions of the program, you'd have to manually configure a JSON file with your preferred settings, that the program would generate automatically. This is no longer the case. If you're coming from a pre-v4.0.0 version, please delete the JSON file and let the program generate a new one on startup, at which point you can configure all of your settings using the settings dialog, where you can forgo the need to mess with the JSON file directly.
Miscellaneous
Not really relevant to most users, but still worth mentioning. You can reload the JSON file's values (including the stylesheet) by right clicking the settings button with no activation method selected. This is useful if you're trying out other styles, and don't want to restart the program every time, or just want to verify that your settings would be loaded correctly on startup. Additionally, you can run the program from the command line with the --debug switch to spawn a console where log messages will be displayed in realtime, as opposed to refreshing the log file.
I'm a drop in the ocean on GitHub, the repository only having 31 or so views compared to the 21,711 views on Nexusmods at the time of writing this, because generating traffic to a GitHub repository from within GitHub itself is very hard, especially if you don't already have a project that's popular to set a precedent of your work being worth paying attention to, which is a catch 22 of sorts. Repositories typically become relevant on GitHub thanks to external traffic rather than internal traffic, and only after a repository already has a decent number of stars to its name might it get recommended to others on GitHub's explore page, and maybe even be listed as a trending repository, which is basically the only way to get your project noticed from within GitHub itself.
Another one of my open source programs which you may like is Overlayer, a multitasking utility that allows you to turn any window into an overlay, with adjustable transparency, toggleable clickthrough/interactivity, and picture-in-picture/stay on top. You can do things such as keep a browser window hovering in the corner of your screen/game, while still being able to see the game through the window, and being able to enable/disable window interaction whenever you want to navigate the page for a moment, before resuming gameplay.