Jump to content
Dante Unbound: Known Issues ×
Dante Unbound: Share Bug Reports and Feedback Here! ×

Steam Deck + Keyboard and Mouse


DSMK2
 Share

Recommended Posts

Bumping to add my +1.

 

I understand this probably requires a deep look at a lot of input coding to truly fix, but a "simple" setting toggle to disable/reject controller input would be an easy enough option I hope, like what Fallout 76 has.

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...
On 2/15/2023 at 1:40 AM, Kilean said:

8 months later still unable to play warframe on steam deck because of no proper keyboard and mouse. don't bother telling me to install windows, one of the main reasons for my purchase was to get away from microsoft. We NEED a proper keyboard mouse set up for steam deck with proton on native linux that works as well as not having to go into big picture mode cause the full screen is black and trying to input email, ok, password.... after 30+ tries each time trying to login..... 

DE i love you guys as a company, but we need direct de help with this major problem

It wouldn't be as elegant (when it does work right) but if they removed the console style thing that fully pulls focus in the visual parts of the UI out when the game runs in big picture mode, it would become functional again, purely because the regular PC input boxes would be there and steam input has a way to pop a keyboard open on demand to type in the boxes anyway you'd just have to click and select the boxes first like a PC regular game first, well, and know how to open the keyboard, and the text you see on screen wouldn't be as in your face size wise but it would be functional.

Link to comment
Share on other sites

Same issue here. Tried using the controller config interface to just straight up disable all controller inputs, and it still won't let me log in.

It's worth noting that I was able to play in Game Mode just fine, using my own custom input config with mixed gamepad and KB+M inputs. Though keyboard chat didn't work at all, forcing me to use the on-screen keyboard for everything, and hiding the game window while I typed. This obviously makes trading with other players a huge headache.

I don't claim to know anything about the code, but from what I can tell, it looks like Warframe is checking exactly once to see if a controller is connected during startup, then locking itself into Controller mode or KB+M mode until the game is closed. If that is the case, it should be relatively easy for DE to set a Steam Launch Option like `%command% --nocontroller` to bypass this check.

Obviously, it'd be better if Warframe could switch between the two input methods on the fly. But since this game was first released in 2013, there's probably a significant amount of technical debt to repay first. This would be a good stopgap solution in the meantime IMO.

Link to comment
Share on other sites

Please DE, this is a massive usability bug, it'd be really nice to have the game be playable and in the current state it just downright isn't playable. I can't set custom keybinds, typing in my password is a nightmarish chore, I'd really, really like to not have to install a whole other OS just to play your game. This is abysmally bad and I won't be buying any more platinum or any ingame purchases until this is fixed.

Link to comment
Share on other sites

Hate to break it to you all, but DE is unlikely to ever fix this issue. It's been an issue since the days when the Steam Controller was still in production. Besides the Steam Controller, there are numerous threads on this forum here and on Warframe's subreddit that bemoan input issues and DE's botched integration of Steam input. Further, full respect to all of DE's staff, but they've undoubtedly seen this and many other threads regarding this issue, and their silence and lack of transparency regarding improvement of game inputs can only mean this issue is not a priority at all no matter how inconvenient and non-standard/unusual this issue is.

This is only the tip of the iceberg on the quirkiness of DE's prioritization of game issues. Simple stuff like remembering passwords for login is missing despite this "feature" being present in various other games such as Valorant—and many players will be quick to glorify the developers, praising a supposed lack of "feature" as a feature in itself, thereby depriving themself of a better experience that outweighs "security."

But back on topic: if anyone is still searching for a way to play Warframe with KB+M whether it be on Steam Deck or elsewhere without interference from Warframe itself, see if this Reddit comment will help:

https://www.reddit.com/r/SteamController/comments/ayuhyl/comment/ei3d6kg/?utm_source=share&utm_medium=web2x&context=3

Quote

Add Warframe.x64.exe as a non-Steam game and add -cluster:public -registry:Steam as the Launch Options for the shortcut. Rename this shortcut so you know that it's the non-SIAPI launch method.

 

  • Like 2
Link to comment
Share on other sites

@Nuanulla Thanks a bunch, worked like a charm! I'll go ahead and add this in a ProtonDB report so hopefully more people will see it.

A couple notes for anyone else wanting to try this out:

  • Your in-game settings will be reset to default. Easy enough to reconfigure them, but it's something to be aware of.
  • Steam also won't be able to pop new achievements anymore. Seeing as I've already got some missing achievements from playing on the standalone client years ago, and Steam achievements were hit-or-miss anyway, this is a non-issue for me.

It's definitely frustrating that DE doesn't see this as a priority. Aside from the issues related to Steam Input, Warframe on Steam Deck has been a wonderful experience. I only recently picked the game back up after a years-long hiatus, but being a space ninja is just as fun as I remember~

  • Like 1
Link to comment
Share on other sites

@Nuanulla Confirmed this works!

Surprising that this issue existed since a while ago, it's a bit frustrating that there's little peeks of working UI with KB+M, as if different practices for implementing UI were layered on top of each other.

Link to comment
Share on other sites

Bumping for DE to see since this is a ridiculous issue that I can't imagine is a hard fix. A slider in the options for what input you want WF to use would make a *world* of difference.  Going to try Nuanella's fix now though, looks like it'll do the trick.

Link to comment
Share on other sites

  • 2 weeks later...
On 2023-03-07 at 3:17 PM, The1AndMany said:
  • Your in-game settings will be reset to default. Easy enough to reconfigure them, but it's something to be aware of.

I don't have my Deck handy to check right now. But, I presume Warframe stores configs in plain text files locally, generating new files when old files are misplaced. On Steam Deck, due to presence of Proton prefixes, you might try adding the following launch option:

STEAM_COMPAT_DATA_PATH="/home/deck/.local/share/Steam/steamapps/compatdata/230410" %command%

Altogether, that's

STEAM_COMPAT_DATA_PATH="/home/deck/.local/share/Steam/steamapps/compatdata/230410" %command% -cluster:public -registry:Steam 

Each individual game runs in its own Proton prefix. For non-Steam games, Steam auto generates a new proton prefix. Manually assigning the correct prefix to the game executable, now recognized as "non-Steam", should allow Warframe to find your original config files.

On 2023-03-23 at 4:51 AM, DatFruitBat said:

@Nuanulla

Tried this but it doesn't run, is there something I'm missing?

Did you manually set a proton version under the "compatibility" tab?

Edited by Nuanulla
Edited as @Jamie96 pointed out
  • Like 1
Link to comment
Share on other sites

  • 1 month later...

@Nuanulla

On 2023-03-24 at 3:32 AM, Nuanulla said:

STEAM_COMPAT_DATA_PATH="/home/deck/.local/share/Steam/steamapps/compatdata/230410" %command%

Does this work if you have the game installed on an SD card? I think I've got everything set up right but I can't get it to launch and that's the only thing I can think of.

  • Like 1
Link to comment
Share on other sites

On 2023-05-01 at 3:58 PM, MoistOwlett said:

@Nuanulla

Does this work if you have the game installed on an SD card? I think I've got everything set up right but I can't get it to launch and that's the only thing I can think of.

It should. The compat data location might be different, but that's just changing the "/home/deck/" section to reference your SD card mount instead.

 

I have Warframe on the internal SSD, and the command doesn't work. Swapping proton to various versions hasn't worked either. :/

Link to comment
Share on other sites

  • 2 weeks later...
On 2023-03-24 at 3:32 AM, Nuanulla said:

I don't have my Deck handy to check right now. But, I presume Warframe stores configs in plain text files locally, generating new files when old files are misplaced. On Steam Deck, due to presence of Proton prefixes, you might try adding the following launch option:

STEAM_COMPAT_DATA_PATH="/home/deck/.local/share/Steam/steamapps/compatdata/230410" %command%

Altogether, that's

-cluster:public -registry:Steam STEAM_COMPAT_DATA_PATH="/home/deck/.local/share/Steam/steamapps/compatdata/230410" %command%

Each individual game runs in its own Proton prefix. For non-Steam games, Steam auto generates a new proton prefix. Manually assigning the correct prefix to the game executable, now recognized as "non-Steam", should allow Warframe to find your original config files.

Did you manually set a proton version under the "compatibility" tab?

 

On 2023-05-01 at 3:58 PM, MoistOwlett said:

@Nuanulla

Does this work if you have the game installed on an SD card? I think I've got everything set up right but I can't get it to launch and that's the only thing I can think of.

The "alltogether" command is a little backwards. If you use:

STEAM_COMPAT_DATA_PATH="/home/deck/.local/share/Steam/steamapps/compatdata/230410" %command% -cluster:public -registry:Steam

then it works, and should even if you use SD Card since compatdata is always on SSD.

Therefore, all together, together, this is the fix, credits to Nuanulla and Reddit's kooleech, with some adjustments from my own tests(I for example use the Launcher instead of the direct game to get updates):
 

Quote

 

1) Enter Desktop Mode on your Deck.

2) Open Steam => Press "Add a Game" => "Add a Non-Steam Game" => "BROWSE" => "'File Type' - All files" => Find and select your Warframe launcher executable (Launcher.exe)

By default/on SSD this is:
"/home/deck/.local/share/Steam/steamapps/common/Warframe/Tools/Launcher.exe"

3) Rename the new non-Steam title to anything you want. I went with Warframe so I could also use (better) Community Profiles that are KBM based for when I do want to (fail badly at) check(ing) in using the native controller. I'll later use SGDBoop to set some custom art to tell them apart.

DO NOT launch it! This is very important. If you do launch it, delete this non-Steam title and start over. Better to not have a compat data folder.

4) Right-click the non-Steam Warframe => Properties => set Launch options as mentioned below.

STEAM_COMPAT_DATA_PATH="/home/deck/.local/share/Steam/steamapps/compatdata/230410" %command% -cluster:public -registry:Steam

5) Go to "Compatibility" and choose the version of Proton before Experimental (7.0-6 in my case). This got greyed out/disabled after I got the data path right, so I think after you use old compatdata it locks it to whatever Valve set for official Warframe.

6) Launch non-Steam Warframe. Keyboard and mouse should be working now. :-)

 

Keep in mind you will not have Steam achievements, since it is a non-Steam title.

 

Good Luck!

 


Given that this works, I think the next stop is the Steam forums and Steam Deck feedback line to see what Valve can change in Proton as an official fix.

But it does work, so I'm happy.
 

Edited by Jamie96
  • Like 1
Link to comment
Share on other sites

Tbh one of the biggest problems here is that DE is still forcing this old heavily outdated console style mode inside of BPM on launch with no way to optionally disable it or anything. If they don't want to get rid of it I understand that, but if they could at least put some kind of toggle in so people can choose, then that would help immensely. If DE would stop forcing this heavily screwy console mode that's quite broken at this point when launched from BPM so it could operate like the desktop build, it'd be a much better experience for the deck and any steam input user on desktop pc

Link to comment
Share on other sites

1 hour ago, Drex83 said:

Tbh one of the biggest problems here is that DE is still forcing this old heavily outdated console style mode inside of BPM on launch with no way to optionally disable it or anything. If they don't want to get rid of it I understand that, but if they could at least put some kind of toggle in so people can choose, then that would help immensely. If DE would stop forcing this heavily screwy console mode that's quite broken at this point when launched from BPM so it could operate like the desktop build, it'd be a much better experience for the deck and any steam input user on desktop pc

That's just it, it's not an issue with BPM...this is an issue even in Deck Desktop Mode, which is just regular Steam.

But this alternative launch option works in both Desktop Mode and Game mode, which leads me to believe this is an issue with their Steam deployment/launch options/settings.

I'm not a Steam developer so I don't know for sure, but this fix we have makes me feel this is not a passive issue and it is something being actively pushed from the Steam side. Maybe a leftover from when they did support Steam Controller? Because this fix is still running Steam, still on the Steam Deck, and works even in Game Mode, so it cannot be something Warframe is looking for, it's something exclusive to the default launch context.

Link to comment
Share on other sites

Well, I can't speak for exactly how the deck is launching this in desktop mode by default. But I will say one thing, and this actually does not apply on Windows desktop right now as they seem to have gotten rid of the option w/ new BPM, I'm not sure why, as some people wanted it. I actually would have liked it if I could have quickly toggled it more w/o opening a main settings, but since I keep a pad plugged in all the time it'd pop all the time and I wouldn't want it but anyway...

Desktop Steam prior to the new BPM, used to have an option to use the BPM overlay any time a pad is plugged in whether it's in desktop mode or not. Warframe is a huge part of why I disabled this option years ago, because whether it was full BPM or not, if the game launched with BPM's overlay from desktop, Warframe would still pick up on it being "game pad time" and lock 50% of the keyboard/mouse inputs out.

In the past Wf had really shoddy PC controller support, but they did implement a lot of Steam's API for controllers for a console style, and you'd either launch it from desktop and have 100% KB/M support and like 50% controller support, or you'd launch it from BPM and have 100% controller support and 50% KB/M support. Eventually they modernized it in desktop mode ONLY so it would flip flop like a modern Xinput compatible game. However, they seemed to have forgotten entirely to remove or make optional, the old BPM style launch that's very old and fairly broken now, it even used to force fullscreen exclusive if you had borderless every time, used to drive me nuts changing it back, at least they fixed that. One of the big outliers of this though, is the BPM mode was very console style, designed for making the on screen keyboard pop up when tapping search fields in game and stuff, the button to open the chat text input box would also make BPM open a dialog box, etc, very console like, it could be great if polished well they just didn't keep up with it let alone the new version of BPM which they've touched on not even remotely.

Basically whatever way you launched the game determined what mode would operate UIs, the actual general gameplay controls worked on both simultaneously, but the menus of any kind, even hacking in a mission, would be constrained by how you launched the game initially. Which is exactly how this sounds like it's being locked out. If you're launching the game and can't click on input fields to type, it's because it's expecting BPM's overlay to pop it's own dialog box open with the on screen keyboard and handle it. Which unfortunately, doesn't work very well.

With the newer desktop UI that can flip flop with controllers this should click entirely fine since it does that destiny-ish mouse thing with pad and it doesn't rely on BPM to open dialogs anyway, which is how the newer one should be, if people wish to open the OSK they can force it manually with Steam's chord to do it (Guide+left of center button, select or whatever) and it's a bit more janky in the general scheme of things, but overall way more controllable now that DE hasn't kept up on Steam's API and BPM updates.

New BPM needs some more polish on the edges with that anyway, but a bigger part of the problem is when DE redid the UI with a huge update a few years ago, which was part of what fixed this, on desktop anyway, they never revised or removed this exclusive BPM mode, and it's been a huge thorn in the side for anyone trying to game on pad in a polished console style fashion with Warframe whether it's on a Windows PC, or the deck. I think what's happening here by default, is whether you're on the desktop on deck or not, it's seeing that BPM overlay and forcing the broke ass old BPM mode somehow. DE REALLY needs to just get rid of it or put it behind an option or something.

Link to comment
Share on other sites

  • 1 month later...
  • 4 weeks later...
20 hours ago, The1AndMany said:

Update with call to action: DE is tinkering with their Steam Input configuration for Steam Deck specifically, let's make sure they're aware of this

 

Yes, this is the console style exclusive mode I've been trying to get them to ditch for years, since 2015ish to be exact. This is ONLY forced to start if the game is launched from BPM. If it's launched from desktop it shouldn't do this. minding you I don't have a deck to try it myself. But this mode has been a bane of mine ever since steam input launched with the steam controller. It used to also force change borderless mode to fullscreen exclusive too. Strangely enough, they intentionally went in and fixed that, but they never got rid of this mode. On the surface, it should be good, it pops up easier to read text boxes and stuff like a console via BPM's UI, it's just it doesn't interact with BPM's UI well these days, especially since Valve updated it. They really need to just get rid of this mode, I've been saying it for years.

You might also say, but Drex, how will I get the keyboard open for stuff if that stuff isn't built in? It might not be a bad idea to tell people this somewhere in game, I dunno but.... Well, as it turns out, Steam Input has the global chords profile (check it out in settings if you haven't before) this has been here for almost the whole time Steam Input's existed. This profile is a global profile that only functions while Guide is being held. It's a really sweet profile, it lets you do things like hit play/pause/next/prev track on music players, control volume, quickly left/right click in games that might be being weird on a gamepad, same with moving the mouse, also can alt tab out with it, which allows you to use the Desktop profile to control the desktop, which is super good for using the browser and stuff like that. But, notably on the keyboard front, is that Guide+Select (or your differing pad's equivalent, should be the button left of the center cluster by the guide button) to open the on screen keyboard, anywhere, including the desktop itself.

Ever since they revamped the game pad controls to be better handled in game, such as auto-flipping mouse and keyboard, they haven't had a massive need for this. Though admittedly, I have heard it's a bit goofy with mixed input in comparison to the old one :\ Really it should just allow mouse movement to move the cursor, without changing UI style, let button presses alone handle that and I think it'd be fine.

But yeah this mode is WILDLY outdated, it should still the old way to equip mods, too, instead of the newer destiny-cursory thing they've been using. It's very old, and not upkept.

The best way to handle mixed input imho and fix this for all BPM users including the deck, is the following:

A) Make this "exclusive" control mode being forced to start in BPM optional, and imho, don't make it the default anymore. I don't care if it's an in game option, I don't care if it's a command line switch publicly advertised, I don't care if it's in the launcher just make it an option, somewhere. DE's normal UI for pads is quite good on PC now, when it can be used, however DE really needs to re-enable Xinput from Steam Input again so people can actually bind things in game in a more normal style again too, I don't know why this was removed, or if it was intentional, tbh.

B) Make the auto detection of using pad vs. KB/M, NOT change on mouse move, only change it on button presses or maybe even analog stick, I guess. Reasoning for this being, that on a Steam Controller, or Deck, it's still a gamepad, of a type, but it's not Xinput. You want the button prompts to be correct, and work. However, you also want to use the gyro and touchpads as well as you can.

You have some real damn nice touch pads there, that the original Steam Input profile actually took into consideration before it was wildly outdated. How did it do this? It made the touch pad on the SC, 'mouse' for camera movement modes, and analog stick for menus. I can't stress enough how much nicer aiming is with a thumb track pad attached to mouse, over stick. Also mouse on gyro pairs well with it too, regardless of game, trying to use gyro on a stick that you're also physically using doesn't usually combine well, but "two" mice, virtually, work really amazing together on SC/Deck, giving these controls wildly better aiming than a regular Xinput style pad can provide. However, you don't want the UI visually bouncing back and forth between the PC and console UI style every time something is moved or pressed. This is not ideal, the original Steam Input profile handled this by making the touch pad be mouse or right stick, in the proper locations only. This is a little bit more different with the deck, since it actually does have the right stick AND the touch pad which the steam controller, did not.

As far as UI design goes, mouse should be usable as a cursor for menus ideally, now that the destiny style thing is in. But you also still want to respond to gamepad inputs as well, as well as what button glyphs you show on the UI vs. clickable mouse buttons. You also really just visually do not want the style of the UI changing every time someone moves the mouse to move a cursor, then hits Xbox A to activate something and have it flip back. This is why I think it might just be easiest, to only make the UI style change from gamepad back to PC, if a PC button is pressed, not just moving the mouse. This way, it's possible to move the mouse smoothly and nicely for aiming and maybe menus too, while not making the UI style jiggle back and forth, but hitting another PC button could still flip the UI style back to PC, if you needed it for some reason, keeping the nice auto-flip thing.

C) This is another option you could add, but I think it'd be better if you added this in addition to polishing up the automatic detection model as in section B above. But one thing you could also add to be more Steam Controller/Deck friendly, is options for the Pad Auto-detection Style, by default this could be Auto, the way it is, but you could also make an option to force it to pad style or PC style. Of course, if you do this, there should probably be a way to reset this to default without a lot of hullabaloo in doing so, just in case. Be it just making sure the mouse/kb can still get in that menu, or putting an option to reset it in the launcher, or something. I suppose it'd also be possible in case anyone liked it differently, to also add an option to toggle whether mouse movement flipped the input model style too, though in mouse cases I don't think people will really want that to work that way if they're really trying to use a pad, especially an SC/Deck.

Link to comment
Share on other sites

On 2023-08-04 at 5:33 PM, Drex83 said:

This is ONLY forced to start if the game is launched from BPM. If it's launched from desktop it shouldn't do this. minding you I don't have a deck to try it myself.

I already responded to this assertion in the other thread, but I'll do it again here to make sure everyone's on the same page: This is just plain incorrect.

I dunno if it's different if you're running Windows, but at least on Steam Deck, launching WF from outside of BPM/Game Mode still forces you to navigate menus with the controller, and completely breaks the login screen due to the lack of an on-screen keyboard. (And no, the global chord of Steam+X to bring it up doesn't work in this case.) I still suspect this is due to WF checking for a gamepad once at startup, assuming that the player will be using that, not realizing that the Steam Deck controller can't be removed, and locking itself into controller mode.

I don't doubt that you've had to deal with this forced controller interface yourself, and your frustrations seem genuine. I even agree with some of your suggestions on how to improve things. But please don't go around asserting something as true without verifying that it's accurate. You're only making it more difficult for those who are experiencing the issue first-hand to get it fixed.

Edit: Upon further reflection, it's possible that if the Steam version of WF detects a controller on startup, it assumes it was launched from BPM, and forces itself into controller mode accordingly. I have no idea WHY it'd be coded that way, but it's at least possible, and might explain the confusion if true.

Edited by The1AndMany
Link to comment
Share on other sites

The key part to understand, which I've also mixed up until now, is that there are (let's say) two primary control methods for Warframe: There's SIAPI and non-SIAPI. Under the latter, we can also classify sub-groups as KB+M and Gamepad.

In-game, Warframe is unable to dynamically switch between SIAPI and non-SIAPI. Meanwhile, it's capable of dynamically switching between KB+M and Gamepad (as evident with the changing UI icons) when under non-SIAPI. SIAPI locks the player into Gamepad SIAPI-input. Non-SIAPI processes KB+M and Gamepad x-input.

The other confounding factor is that people are mixing up Steam Input and Steam Input API. These are two different things.

Quote

Steam Input is a service allowing Steam users to play any controller-supported game with the device of their choice. Steam Input will translates the user's input into something the game understands through either Gamepad Emulation, Mouse and Keyboard Emulation, or Steam Input API. [Source]

For Warframe, Steam Input processes Gamepad input to provide either x-input, KB+M input, or SIAPI-input. Hence, the issue isn't that Warframe is locking the user into controller inputs; Warframe is locking the user into SIAPI inputs.

Quote

I dunno if it's different if you're running Windows, but at least on Steam Deck, launching WF from outside of BPM/Game Mode still forces you to navigate menus with the controller, and completely breaks the login screen due to the lack of an on-screen keyboard.

Yep, you'd be correct here. In contrast to Windows, and as I noted in my first reply in this thread, "Steam Input" is set to "Always Required" on Deck. That's why, without the workaround, Warframe expects SIAPI universally (whether Game Mode or Desktop Mode) while Windows escapes this issue outside BPM. STEAM+X global chord does actually make the keyboard pop-up. But, as I clarified above, Warframe on Deck by default will be expecting SIAPI keyboard input rather than 'normal', non-SIAPI keyboard input. This inability to understand non-SIAPI input, and the inability to dynamically enable/disable SIAPI while in-game, is why everyone got stuck on the login screen when Valve messed up SIAPI with one of their recent Steam Deck stable channel updates.

The mess-up with SIAPI recently was Valve's fault. However, if Warframe didn't lock us into SIAPI, it wouldn't be as big of an issue as it was. As a testament to the inconvenience of this issue, Warframe isn't processing my Deck inputs during a Narmer Break mission since DE has forgotten to map or connect any of the 'security cam' inputs to their Deck default controller layout 🤦‍♂️. DE's default layout, using Steam Input SIAPI, works well on Proton-8.0 when compared to past months with Proton-7.0. BUT, in such cases with SIAPI bugs on Warframe's end, users would never be completely stuck if DE allowed us to disable SIAPI in-game.

  • Like 3
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...