How to (if possible) keybind "SHIFT + [MOUSE BUTTTON]"

I’ve assigned certain numbers in the action bar to buttons on my mouse. It’d be nice if I could get dual purpose out of the button by being allowed to integrated a keyboard + mouse button combo “keybind” as I’ve done (and probably most of you) in games like WoW.

The game doesn’t allow me to as it takes the first activation and seeks to confirm just that. Is there a mod to get around this? I know the game is winding down in terms of updates (Crate, you’re awesome), but could this become a QoL patch or something?

Thanks!

What is the point of that? Cannot you just use this keyboard button for a skill?
Or do you want to have 1 button less (instead of A, B, LMB, RMB you want LMB, RMB, LMB+A, RMB+A)?

You can do something like this in GDAutocaster. You leave LMB, RMB empty in-game, your skills in 1,2,3,4. With the following config for example

  • skill 1 is spammed when you hold RMB and not hold Shift
  • skill 2 is spammed when you hold RMB and hold Shift
  • skill 3 is spammed when you hold LMB and not hold Shift
  • skill 4 is spammed when you hold LMB and hold Shift

There are also ways (easier) to make it so that for example skill 1 is spammed with a chosen frequency in addition to the skill you have on RMB when you hold SHIFT + RMB. Classic example is Savagery every 1.9s spammed in addition to Primal Strike on RMB.

[general]
suspend_key=Tab

[autocasting]
master_hold=`

[1]
hold_keys=RButton
not_hold_keys=Shift
delay=100

[2]
hold_keys=RButton,Shift
delay=100

[3]
hold_keys=LButton
not_hold_keys=Shift
delay=100

[4]
hold_keys=LButton,Shift
delay=100

The thing is in GDAutocaster you can automate multiple skills into 1 button in a form of combos, spamcasts with different frequencies, delays etc. (which for example can reduce the number of buttons needed for active skills from 9 to 3) so the things you’re asking are kinda redundant and not a main purpose of the program. But you can do that in muliple ways.

I really doubt it’s possible at this point but who knows.

My mouse is set up as the following. I have LMB/RMB/MMB (Button3)…and then Button 4 and 5 under my thumb. In WoW, for instance, my MB4 is my healing potion, but I can press shift (or whatever I choose as a modifier) and have SHIFT + MB4 be another skill. It allows me to cram more function into my mouse which, not only being my dominate hand, doesn’t suffer from pain from an old injury.

Yes, I could just use the buttons provided. Heck, I could reassign them to QWERTY if I wanted, but that’s not the point of the discussion, which was how to add a modifier to a keybind.

Thanks for your information, though. I’ll look into it.

Ok. For your information, I think what I’ve described above should be possible to do even with weird MB4, MB5 even if they are not reassigned to some standard buttons.

In this article https://www.autohotkey.com/docs/KeyList.htm#SpecialKeys there’s instruction how to read non-standard key names.
If we for example read that MB4 is vkFFsc159 then we could probably use it in GDAutocaster config:

  • 1 is spammed when you hold MB4 and not hold Shift
  • w is spammed when you hold MB4 and hold Shift

(provided vkFFsc159 is virtual name of MB4 and this method actually works)

GDAutocaster.ini

[general]
suspend_key=Tab     // this (un)suspends all hotkeys, only master_hold in this example though
                    // sometimes you need to press it 2x for hotkeys to start working  
[autocasting]
master_hold=`       // this is optional hotkey for turning the feature below on/off 
pressed_buttons=1,w // this makes program search for [1], [2] sections in the config
                    // sections[0], [1], ... [9] are read by default unless overwritten as above

[1]
hold_keys=vkFFsc159
not_hold_keys=Shift
delay=100

[w]
hold_keys=vkFFsc159,Shift
delay=100

Let me know if you’re interested in trying this out / need some help (then try just LMB, RMB first).
PS The program only works in-game and cannot be tested outside, in Windows for example.

@ tqFan
long time not seen :slight_smile:
mb4 and 5 are usually adressed by “xbutton1” and “xbutton2” in ahk. in most cases there is no need to get the raw codes.

@ Phosphonothioic
Autohotkey (or similar) is great for such kind of things, assinging different actions to eg lbutton and lbutton+shift etc, when the game itself doesnt recognize such combos as keybinds.

1 Like

Doesn’t Logitech have software for their mouses? I guess you need a Logitech mouse for that.

As others have pointed out, there are 3rd party solutions to this problem.

Now that I think about it, SHIFT is traditionally mapped to attack in place. It would be convenient to additionally have a skill bound to SHIFT + LCLICK, while move only is bound to LCLICK. That way, when you attack in place, you spam a skill, and otherwise you move without attacking anything.

I suppose you could implement this using an AutoHotkey script that switches the between the skill bars every time you press or release SHIFT.

Why Stationary Attack + LMB/RMB makes you attack if you have Movement on LMB/RMB (actually anything on LMB/RMB even Pet Attack)? It doesn’t make sense to me and makes swapping Hotbars as you said necessary because no matter what you do (with AHK) these attacks interrupt anything. Otherwise you could just spam something from 0 - 9 on Shift + LMB.
You also cannot block LMB (that would work) in Grim Dawn, at least I don’t know how, just like you can outside of the game.

However there’s easy solution to this. You can bind everything to just Shift (Stationary Attack) and automate other skills then that are on 0 to 9. You don’t need to press LMB altogether (and interrupt everything with Stationary Default Attacks it then triggers). Provided you’re not against automation of course and don’t have a moral ‘one button - one thing’ limitation. But you’re talking about swapping hotbars so I guess it’s not the case.

Doesn’t this only work with default attacks if you have movement on LMB? I want to use a skill, Savagery say, instead of default attacking while stationary. My idea was to have the two hotbars identical except for LMB. One hotbar has movement on LMB, and the other has Savagery. While holding shift, you have the Savagery hotbar active. With shift released, you have the movement hotbar active.

I mainly have ranged characters in mind. I like using the “modern” targeting scheme with my autoattack replacer on LMB. With ranged characters, however, it becomes a pain to navigate past enemies, because you automatically attack any enemy you mouse over. With melee characters, it is not as big of an issue, since you have to run towards the enemy before attacking anyways.

1 Like

Why don’t you just bind i.e. skill 1 (Savagery in the 1st spot of the hotbar) to Shift and simply use Shift to shoot Savagery?
Your character doesn’t move then even though Stationary Attack is not held.

1 Like

That is a good solution. I just like the feel of using LMB for autoattack replacers.

Sure, there’s better mind-muscle connection if you move and click on enemies with the same hand. Another solution satisfying this condition I remembered (it’s implemented in GDAutocaster) is Savagery on double left click + hold. This time Stationary Attack button is not needed. You run the program with the following config

[general]
suspend_key=Tab

[periodic casts]
cast1=LButton:1
double_press1=true
double_press1_time_gap=300

(Savagery bound to 1 in-game)

I also sometimes bind Movement Skill Spams to such double click + holds
so that I can move and charge (even multiple Movement skills) with just LMB.

1 Like