kozec / sc-controller

User-mode driver and GTK3 based GUI for Steam Controller
GNU General Public License v2.0
1.53k stars 129 forks source link

Allow customization of keyboard position for "Show Keyboard" action #249

Open setzer22 opened 7 years ago

setzer22 commented 7 years ago

I have been looking around quite a bit and I'm almost sure there's no feature for this in sc-controller as of now.

The keyboard always appears for me at the bottom-left corner of the screen. While it can be moved through some Grip+Joystick key combination, it would be very nice if we got additional configuration for the "show keyboard" action. I'd suggest:

Both features should be configurable for each keyboard invocation for this to be truly useful. That is, if pressing select opens keyboard, and pressing x opens keyboard too, I should be able to set different positions for both keyboard actions.

There are many good use cases for this, but in my case, this would allow me to create a shortcut which opens the start menu and the keyboard at the same time, so I can start typing the name of an application. Currently this works, but has the problem that the keyboard covers the menu.

kozec commented 7 years ago

Position should be possible, at least in pixels as everything else OSD-related uses. In fact, it's even supported when called from shell, mostly by mistake... You can use shell command scc-osd-keyboard -x 100 -y 150 to spawn keyboard at given place.

But setting size is rather problematic, as keyboard layout is currently loaded from svg and rendered by GTK. I'm not sure if it's even possible to change scaling there and I'm sure it will break code that computes which key is being pressed :(

As temporal workaround for 1st problem, you can change that menu item to custom action and put

shell('scc-osd-keyboard -x 100 -y 150')

... there. It's little crazy but it should work.

setzer22 commented 7 years ago

Thanks for the tip! I didn't know about the scc-osd-* commands!

However, I still think relative positioning to be better. That would allow to handle multiple screen resolutions properly (for example, in my case, I'm switching between 1920x1080 and 1280x720 fairly often), and also allow for more portable configuration exports.

In the meantime, maybe documenting this workaround to specify the keyboard position would be a nice middle ground. Probably there are more people out there wondering how to do this.

I thought customising the size would also be a nice addition, but if it takes a full keyboard rework it's probably not worth it for now.

Cheers