Skyrim
0 of 0

File information

Last updated

Original upload

Created by

MisanthropicShayna

Uploaded by

MisanthropicShayna

Virus scan

Safe to use

Tags for this mod

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 ~

This is a simple utility program meant to run alongside Skyrim (or any other game/program for that matter) that confines the cursor to the game/application window in order to solve a problem that occurs when using multiple monitors, where the cursor moves off-screen and causes unwanted inputs on other programs (e.g. scrolling a window). This issue occurs because Skyrim - among other games - doesn't actually restrict the cursor's motion while in-game, and so the cursor is just free to move around in the background, eventually leading it to stray onto other monitors.

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)




Usage Guide & Clarification
There are three possible activation methods that you can select. When the condition for the activation method is met, the lock is activated, and the cursor is automatically confined to the current foreground window. These available methods are..

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.



Downloads & Source Code
You can find the latest version, as well as all previous versions by visiting the releases section of the GitHub repository, or the files section on this page. This is free and open source software (FOSS) licensed under GPL v3.0, meaning the source code is public, and all can do whatever they like with it so long as the context in which it is used remains open source under the same GPL v3.0 license. In other words, the only limitation is that you can't take this open source code and then close source it or any modifications made to it, the code must always remain open source under GPL v3.0, otherwise anything is fair game, no permission required. The program itself is written using the Qt framework in C++, and the latest executable (v4.0.0) has been compiled using MSVC19 on Qt 6.2.1.


Reporting Bugs & Feature Requests
If you encounter any bugs or oversights while using this program, please let me know by opening an issue on the GitHub repository, same goes for any feature requests or things of that nature. If you don't want to go through the hassle, then posting a bug report here on the Nexus works too, but if possible, GitHub is preferable.


Supporting Me & My Projects
If you like my work and want to support me, the best thing you can do is star this project on GitHub! The more stars this project has, the higher the chance of it becoming relevant on GitHub, which also means attracting attention to the other open source projects I host there. Creating something that other people find value in is rewarding enough on its own to me, but its usefulness is limited by the amount of people that know of its existence!

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.