﻿Ultimate Shift Controller
User Guide


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ 1. Distribution Type and System Requirements
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Distribution type:
Freeware. There is no usage fee.

System requirements:
- 64-bit Windows
- Windows 10 or Windows 11
- .NET 8 Desktop Runtime (x64)
- Keyboard and mouse

Ultimate Shift Controller is a 64-bit application. Available inputs and behaviour may vary depending on the keyboard, mouse, application, or game.
Virtual controller features may require additional drivers and configuration.


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ 2. Installation
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

There is no installer.

1. Extract the distributed ZIP file to a folder of your choice.
2. Run UltimateShiftController.exe from the extracted folder.
3. Configure the mappings you need and click [Save].

The application stores settings in its own folder, so use a writable location such as Desktop, Documents, or another application folder.
Do not run the programme directly from inside the ZIP file.


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ 3. Uninstallation
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

1. Turn off [Run at startup] in Settings.
2. Exit Ultimate Shift Controller, including its tray instance.
3. Delete the extracted application folder.

To remove settings and profiles too, delete the [Settings] folder. Back it up first if you want to keep your configuration.
Drivers installed separately for virtual controller features are not removed with the application folder. Remove them separately according to each driver's instructions.


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ 4. About This Software
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Ultimate Shift Controller is a Windows application that combines keyboard and mouse inputs so familiar keys and buttons can perform different tasks when needed.

You can remap keys, run shortcuts from mouse buttons, and switch to alternate assignments while holding a layer trigger.
It is not limited to games. It can also help with writing, image editing, video editing, streaming, browser control, and other shortcut-heavy applications.

The basic keyboard and mouse features do not require virtual controller setup or additional controller drivers.


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ 5. Main Features
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

- Remap keyboard keys
- Use middle mouse, button 4, and button 5 as inputs or outputs
- Register shortcuts using SHIFT, CTRL, ALT, and the Windows key
- Send multiple keys from one input
- Use F1-F24, Home, End, Insert, Delete, Page Up, Page Down, and more
- Give one physical key up to four roles
- Switch between NORMAL, HYPER, ULTRA, and ULTIMATE while holding trigger inputs
- Repeat registered outputs with Turbo
- Organize mappings with tabs
- Save and switch between multiple profiles
- Import and export profiles
- Show the current layer and status in the HUD
- Keep the application available from the system tray

You do not need to use every feature. Starting with NORMAL and HYPER is recommended.


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ 6. Basic Setup
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

1. Run UltimateShiftController.exe.
2. Select the layer you want to edit at the top of the window.
3. In the upper field of a row, register the source key or mouse button.
4. In the lower field of the same row, register the output key or shortcut.
5. Click [Save].
6. Press the registered input and confirm that it works.

Example:

  Input : Q
  Output: CTRL+1

In the selected layer, pressing Q sends CTRL+1.
Click a field to enter input-waiting mode, then press the key, key combination, or supported mouse button you want to register.


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ 7. The Four Input Layers
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

[NORMAL]
The default layer.

[HYPER]
Used while the HYPER trigger is held.

[ULTRA]
Used while the ULTRA trigger is held.

[ULTIMATE]
Used only while both HYPER and ULTRA triggers are held. There is no separate ULTIMATE trigger.

The layer buttons at the top select which layer you are editing. The active layer during use is determined by the HYPER and ULTRA trigger states.

  Neither held       -> NORMAL
  HYPER only         -> HYPER
  ULTRA only         -> ULTRA
  HYPER + ULTRA      -> ULTIMATE


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ 8. HYPER / ULTRA / ULTIMATE and External Mouse Setup
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

To configure HYPER:

1. Select [HYPER].
2. Set the HYPER trigger input.
3. Register the assignments you want to use in HYPER.
4. Click [Save].

Configure ULTRA in the same way. ULTIMATE only needs assignments for the state where both triggers are held.

Example:

  HYPER trigger: Mouse Button 4
  ULTRA trigger: Mouse Button 5

Then the same Q key can perform different actions in NORMAL, HYPER, ULTRA, and ULTIMATE.

[Using F1-F24 as layer triggers]

HYPER and ULTRA triggers can use F1-F24. F13-F24 are recommended when possible because they are less likely to conflict with normal application or game controls.
If your device only supports F1-F12, you can still use one of those keys as a dedicated layer trigger if you do not need its original function.

Example:

  HYPER trigger key: F13
  ULTRA trigger key: F14

Choosing a trigger key in USC is not enough by itself. Configure a physical key, mouse button, or external device button to send the same F-key.

[Razer Synapse 2]

Synapse 2 can save F13-F24 even though the key name is not shown on the screen.
Example for F13:

1. In USC's NORMAL layer, temporarily remap physical F1 to output F13.
2. Open the key registration screen for the desired mouse button in Synapse 2.
3. While Synapse 2 is waiting for input, press physical F1. USC sends F13.
4. The key name is not displayed, but save the assignment as it is.
5. Restore USC's temporary F1 mapping to normal F1.
6. Set USC's HYPER trigger to F13.

Use the same method with F14 for ULTRA.

[Razer Synapse 3]

If Synapse 3 lets you assign F13-F24 directly, assign F13 or F14 to the desired mouse button and use the same F-key as the USC HYPER or ULTRA trigger.

[Logitech G-Shift / G HUB]

G HUB can select F1-F24 from key assignments. Assign F13 or F14 to a G-Shift or normal mouse button, then use the same F-key in USC.

[Other mice and keyboards]

The same method works with other devices whose configuration software can register F1-F24. Some software may save F13-F24 even when the key name is not displayed.
Use F13-F24 whenever possible. F1-F12 also work if you accept that the original F-key action may be unavailable or may conflict.


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ 9. Tabs, Profiles, and Saving
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

[Tabs]
Use tabs to organize assignments by purpose. Tabs can be added, deleted, renamed, and reordered.

[Profiles]
Profiles store the complete configuration. Separate them by game, application, or task as needed.

Always click [Save] after making changes. Unsaved changes may be lost when exiting or switching profiles.
Settings and profiles are stored in the [Settings] folder next to the executable. Copy that folder too when moving the application to another computer or location.


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ 10. Turbo, HUD, and Status Controls
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

[Turbo]
Repeats the registered output at the configured interval.

[US HUD]
Displays the current layer and configured labels. Position, size, colours, and opacity can be changed in Settings.

[CLEAN]
Attempts to clear stuck pressed-state displays or input states held inside the application. It is not a general keyboard disable function.

[Keyboard Lock]
Temporarily blocks keyboard input for cleaning. Click the same button with the mouse to unlock.


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ 11. Important Settings
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

[Kill mapped inputs]
Prevents the original input and remapped output from acting at the same time. Enabling it is usually recommended.

[Disable unmapped inputs while shifted]
Prevents unassigned inputs from passing through in HYPER, ULTRA, or ULTIMATE. Check this option if some keys do not respond while a layer is active.

[Minimize to tray]
Moves the application to the system tray when minimized. Double-click the tray icon to restore it.

[Start in tray]
Starts the application in the tray.

[Run at startup]
Starts USC when you sign in to Windows.


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ 12. Virtual Controller Features
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Virtual controller features are intended for advanced users.
Depending on your environment, they may require additional drivers, physical/virtual controller separation, game input settings, and device-order knowledge. Incorrect setup can cause double input from both physical and virtual controllers.

Because connection states and screens are difficult to explain accurately in plain text, detailed setup is provided in the illustrated GitHub guide:
https://github.com/Lu-ci-el/UltimateShiftController/blob/main/Instructions_en.md

Virtual controller setup is not required when using only keyboard/mouse mappings, layers, and shortcuts.


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ 13. Troubleshooting
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

- Click [Save] after changing settings.
- The layer selected at the top is the edit target; trigger inputs determine the active layer during use.
- If HYPER or ULTRA does not activate, check both the USC trigger key and the physical input that sends it.
- If the original and remapped inputs both act, check [Kill mapped inputs].
- If some keys stop working in a layer, check [Disable unmapped inputs while shifted].
- If Keyboard Lock is enabled, unlock it with the mouse.
- Press [CLEAN] if pressed-state indicators remain stuck.
- Some keyboards cannot report every multi-key combination because of hardware rollover limits.
- If settings cannot be saved, move the application to a writable folder.
- Avoid locations such as Program Files where standard users may not have write permission.


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ 14. Contact and Bug Reports
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Bug reports are accepted through GitHub Issues:
https://github.com/Lu-ci-el/UltimateShiftController/issues

This is the author's contact and bug-report channel. A GitHub account is required.
When possible, include the problem, reproduction steps, whether it happens every time, your Windows/keyboard/mouse environment, and any error messages or logs.

Reports are used for investigation and future fixes, but individual replies, immediate fixes, and support for every environment are not guaranteed.
Feature requests, custom development requests, and requests connected to abuse or disruptive behaviour are not accepted.


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ 15. Notes
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

- Back up the [Settings] folder regularly.
- Exit the application before updating it.
- Mappings may conflict with shortcuts in the target application.
- Check the rules of any online game or service before use.
- Do not use the software to interfere with other users, cheat, abuse services, or cause disruption.
- The author is not responsible for damage resulting from use of this software.
