Application-specific button settings work for mouse devices by installing uberOptions to enable SetPoint's profile editing features. This makes the SetPoint UI on mouse devices display the "Manage Programs" button and the profile selection box.
The same application-specific button profiles work on non-mouse devices too, but Logitech hasn't created the UI for setting them up.
So, to have keyboard/remote buttons do different things in different programs, you have to edit the SetPoint settings file by hand.
Here is how to do that:
In this example, I will set the Play button on my K350 keyboard to do Media: Play when most programs are active, but send the "p" keystroke when notepad.exe is active.
1. Open SetPoint Settings and set the Play button to Keystroke: "p", OK to close Settings, and right-click Close SetPoint from the system tray (to force it to save the settings to file)
2. Open the SetPoint settings folder: paste this in the Start -> Run dialog box: "%appdata%\Logitech\SetPoint" (including quotes)
3. Open the user.xml settings file in notepad
4. Search for the Play button block, it will look like this:
<Button Number="786637" Name="Play"> <Param IconLoc="Devices\Keyboard\CommonIcons\play" Type="HOTKEY"/> <Trigger Class="ButtonPress"> <Param Button="786637" FirstRepeatDelay="0" RepeatDelay="0" Silent="0" Type="0"/> <TriggerState Name="ButtonDownUp" HandlerSet="KeystrokeAssignment"> <Handler Class="KeystrokeAssignment"> <Param DisplayName="p" LParam="1638401" Modifier="0" VirtualKey="80"/> </Handler> </TriggerState> </Trigger> </Button>
Copy the Handler block and put it inside a new AppOverride block, still inside the TriggerState block. The end result will look like this:
<Button Number="786637" Name="Play"> <Param IconLoc="Devices\Keyboard\CommonIcons\play" Type="HOTKEY"/> <Trigger Class="ButtonPress"> <Param Button="786637" FirstRepeatDelay="0" RepeatDelay="0" Silent="0" Type="0"/> <TriggerState Name="ButtonDownUp" HandlerSet="KeystrokeAssignment"> <Handler Class="KeystrokeAssignment"> <Param DisplayName="p" LParam="1638401" Modifier="0" VirtualKey="80"/> </Handler> <AppOverride App="notepad.exe" HandlerSet="KeystrokeAssignment"> <Handler Class="KeystrokeAssignment"> <Param DisplayName="p" LParam="1638401" Modifier="0" VirtualKey="80"/> </Handler> </AppOverride> </TriggerState> </Trigger> </Button>
5. Save user.xml and re-open SetPoint Settings from the Start menu. Change the Play button back to Media: Play (this will be the setting for all programs that don't have a specific AppOverride block in user.xml) OK to close.
6. Test the button in Notepad and other programs.