Skip to content

Instantly share code, notes, and snippets.

@BananaAcid
Last active May 23, 2025 21:02
Show Gist options
  • Save BananaAcid/a23844d757a41833ea540d73283cecf9 to your computer and use it in GitHub Desktop.
Save BananaAcid/a23844d757a41833ea540d73283cecf9 to your computer and use it in GitHub Desktop.
SmartTV / XBOX Style YouTube TV-UI on PC / Steamdeck with Gamepad

SmartTV / XBOX Style YouTube TV-UI on PC / Steamdeck with Gamepad

image

Short URL to this documentation: https://is.gd/youtube_tv_ui

Summary

  1. Install a separate browser and needed plugins + configure
  2. Let the browser automatically create a WebApp
  3. Add it to Steam to enable controller support

how to

  1. install Chromium

    • NOTE: for the fullscreen opening, the used browser MUST NOT BE opened, so we use a seperate one
  2. install plugins

  3. open https://www.youtube.com/tv

    • NOTE: will redirect to the normal youtube page, if "Youtube TV On PC" is missing
  4. click on the browsers app menu (3 vertical dots) > click on "Stream, save and share" > "install page as app"

    • NOTE: Do this before youtube is done redirecting, the url still must be /tv
    • NOTE: Do NOT login yet
    1. creates a desktop icon, I will reference it as [YT_LINK] below
  5. rightclick the desktop icon [YT_LINK]

    1. open the properties, copy the --app-id=... part
  6. open steam

    1. "Add Game" (bottom left)
    2. add C:\Program Files\Chromium\Application\chrome.exe
      • NOTE: we need to use chrome.exe (not chrome_proxy.exe) to make the fullscreen param work
    3. right click the created game entry, properties
      1. change the link "start arguments"
        • use the [YT_LINK] properties, mainly the app-id
      2. add other params to look like:
        1. --app-id=<YOUR_[YT_LINK]_APP-ID_HERE> --profile-directory=Default --start-maximized --start-fullscreen
        • you could use --app=https://youtube.com/tv instead of --app-id, but the cache would be shared with the chromium browser tabs and you do not get access to the plugins and options button in the title bar
    4. select "controller"
      1. add gamepad profile from vdf below (appid for me was 'youtube for tvs') (howto: gamepad config files)

      2. OR add a new profile:

        Button action
        A Enter {select}
        B Escape {back, do NOT use numblock STOP because it would NOT close menus and overlays and only leave the current video}
        X PLAY {Numblock - Play button, K would be immediate pause but not resume}
        Y {would be search on XBOX, I don't know the key for it}
        LB H {previous video, you could use numblock NEXT}
        RB [ (german key position: Ü) {next video, you could use numblock PREV}
        Menu left F11 (normal), F5 (long press) {fullscreen, reload}
        Menu right action: Show Keyboard
        Stick R action
        Left - {minus for "Playback speed control"}
        Right + {plus for "Playback speed control"}
        press action: volume up
        • Stick R to directional cross, Overlap 0
        Stick L action
        up UP {keyboard key} (enable Turbo, repeat rate 250 ms)
        ... ...
        press action: volume down
        • Stick L to directional cross, Overlap 0
        Cross action
        up UP {keyboard key} (enable Turbo, repeat rate 250 ms)
        ... ...
        Trigger action
        LT LEFT {keyboard key} (enable Turbo, repeat rate 100 ms)
        RT RIGHT {keyboard key} (enable Turbo, repeat rate 100 ms)
      3. change the artwork

        1. download the image for the Youtube Tv On PC plugin:
          • https://lh3.googleusercontent.com/n85nSO55t002NCJrOVliTtbkjbwfdCvWdMngVjR3j5aY-og3lcQJR2XDxHslROEnkY15r9ycT5O5RSxj13JrZ3Xjwg=s275-w275-h175
        2. right click it, select change userdefined artwork (properties), and use the saved image
  7. delete the [YT_LINK] file

    • NOTE: not needed anymore, we needed the WebApp params to configure steam
  8. click the tempermonkey plugin in chromium, while on the youtube link

    • NOTE: when the browser opens, the "Youtube TV On PC" plugin does not trigger at the right moment (reloading the page quickly will make it kick in)
    • NOTE: when not in fullscreen when loading the page, the youtube player will not show the max video quality (reloading the page fixes this)
    1. "create new userscript" and save
      // ==UserScript==
      // @name         YouTube/TV reload
      // @namespace    http://tampermonkey.net/
      // @version      2025-05-19
      // @description  reload the Youtube page
      // @author       BananaAcid
      // @match        https://www.youtube.com/tv*
      // @icon         https://www.google.com/s2/favicons?sz=64&domain=youtube.com
      // @grant        none
      // @source       https://gist.github.com/BananaAcid/a23844d757a41833ea540d73283cecf9
      // @run-at       document-end
      // ==/UserScript==
      
      (function() {
          'use strict';
      
          localStorage.YTV_REFRESH_COUNTER = localStorage.YTV_REFRESH_COUNTER ?? 0;
      
          if (document.querySelector('body > .content-container[role=alert]')) {
              document.querySelector('body > .content-container[role=alert] > .header[role=contentinfo]').innerHTML = 'Loading plugins';
              document.querySelector('body > .content-container[role=alert] > .footer[role=contentinfo]').innerHTML = 'Please wait, until the browser plugins are ready. The interface will load automatically.';
      
              localStorage.YTV_REFRESH_COUNTER++;
      
              setTimeout(_ => {
                  document.location.reload();
              }, localStorage.YTV_REFRESH_COUNTER < 3 ? 100: 3000);
          }
          else {
              localStorage.removeItem('YTV_REFRESH_COUNTER');
          }
      
      })();
    2. create a second userscript
      // ==UserScript==
      // @name         Hide Cursor
      // @namespace    http://tampermonkey.net/
      // @version      2025-05-19
      // @description  hides the cursor when not used
      // @author       BananaAcid
      // @match        https://www.youtube.com/tv*
      // @icon         https://www.google.com/s2/favicons?sz=64&domain=youtube.com
      // @grant        none
      // @source       https://gist.github.com/BananaAcid/a23844d757a41833ea540d73283cecf9
      // ==/UserScript==
      
      (function() {
          'use strict';
      
          //console.log('Hide Cursor');
          (function() {
              let inactivityTimeoutId;
              const HIDE_TIMEOUT_MS = 3000; // 3 seconds
      
              function hideCursor() {
                  document.body.style.cursor = 'none';
                  //console.log('Cursor hidden');
              }
      
              function showCursor() {
                  document.body.style.cursor = 'auto';
                  //console.log('Cursor shown');
              }
      
              function resetInactivityTimer() {
                  clearTimeout(inactivityTimeoutId);
                  showCursor();
                  inactivityTimeoutId = setTimeout(hideCursor, HIDE_TIMEOUT_MS);
                  //console.log('Timer reset, will hide in ' + HIDE_TIMEOUT_MS + 'ms');
              }
      
              document.addEventListener('mousemove', resetInactivityTimer);
              document.addEventListener('mousedown', resetInactivityTimer);
              document.addEventListener('touchstart', resetInactivityTimer);
              resetInactivityTimer();
          })();
      })();
      • if it is used on steamdeck, use document.body.style.cursor = 'none'; directly below 'use strict' and remove the rest
    3. click on the tempermonky plugin, overview > turn the new userscript ON
  9. Now only start it through steam to have the controller work and LOGIN the first time

High-Quality playback fix

I am not really sure, this is actually better, but it seems it actually provides 1080p more often.

The video quality selection usually does not show the high quality options. Worse, it not always show 1080p.

To fix this, we can change the user agent string, the very trick that leads the google server to send us the TV website.

We need to change the following file:

Windows: C:\Users\%username%\AppData\Local\Chromium\User Data\Default\Extensions\jldjbkccldgbegjpggphaeikombjmnkh\0.9_0\rules.json

Linux/MacOS: ~/Library/Application Support/chromium/Default/Extensions/jldjbkccldgbegjpggphaeikombjmnkh/0.9_0/rules.json

From (old):

  • "Mozilla/5.0 (Linux; Andr0id 9; BRAVIA 8K UR2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36 OPR/46.0.2207.0 OMI/4.21.0.273.DIA6.149 Model/Sony-BRAVIA-8K-UR2"

to (new):

  • "Mozilla/5.0 (PS4; Leanback Shell) Gecko/20100101 Firefox/65.0 LeanbackShell/01.00.01.75 Sony PS4/ (PS4, , no, CH)"
"controller_mappings"
{
"version" "3"
"revision" "154"
"title" "SmartTV / XBOX Style YouTube TV-UI on PC / Steamdeck"
"description" "Gamepad controls - details: https://is.gd/youtube_tv_ui"
"creator" "76561197990564823"
"progenitor" ""
"url" "workshop://3486273234"
"export_type" "personal_local"
"controller_type" "controller_xboxelite"
"controller_caps" "5785599"
"major_revision" "0"
"minor_revision" "0"
"Timestamp" "511750144"
"actions"
{
"Default"
{
"title" "Default"
"legacy_set" "1"
}
"Preset_1000001"
{
"title" "Settings"
"legacy_set" "1"
}
}
"action_layers"
{
}
"localization"
{
"english"
{
"title" "Gamepad"
"description" "This template is for games that already have built-in gamepad support. Intended for dual stick games such as twin-stick shooters, side-scrollers, etc."
}
"czech"
{
"title" "Gamepad"
"description" "Tato šablona je pro většinu her podporujících gamepad a byla navržena pro použití ve hrách využívajících dvě páčky, jakými jsou například plošinovky nebo automatové hry."
}
"danish"
{
"title" "Gamepad"
"description" "Denne skabelon er til spil, der allerede har indbygget gamepad-understøttelse. Beregnet til spil med dobbelte styrepinde såsom twin-stick shooters, side-scrollers osv."
}
"dutch"
{
"title" "Gamepad"
"description" "Deze template is voor spellen die al ingebouwde gamepadondersteuning hebben. Bedoeld voor dual-stick spellen zoals twin-stick-shooters, side-scrollers, etc."
}
"finnish"
{
"title" "Ohjain"
"description" "Tämä malli on muita ohjaimia valmiiksi tukeville peleille. Se on tarkoitettu kahta sauvaa käyttäville peleille, kuten twin-stick shooterit, side-scrollerit, jne."
}
"french"
{
"title" "Manette"
"description" "Ce modèle fonctionne pour les jeux conçus pour manettes à deux sticks tels que les jeux de type twin-stick shooter, à défilement horizontal (side-scrollers), etc."
}
"german"
{
"title" "Gamepad"
"description" "Diese Vorlage ist für Spiele konzipiert, die bereits volle Unterstützung für Gamepads mit sich bringen. Gedacht für Zwei-Analogstick-Spiele wie Twin-Stick-Shooter, Side-Scrollers usw."
}
"hungarian"
{
"title" "Gamepad"
"description" "Ez a sablon olyan játékokhoz való, melyek már rendelkeznek beépített gamepad-támogatással. Olyan két karos játékokhoz szánva, mint a kétkaros vagy oldalnézetes lövöldözős játékok stb."
}
"italian"
{
"title" "Controller"
"description" "Questo modello funziona per la maggior parte dei giochi che supportano i controller in modalità nativa."
}
"japanese"
{
"title" "ゲームパッド"
"description" "このテンプレートは、標準でゲームパッドをサポートしているツインスティックシューターや横スクロール等といったデュアルスティックゲームを対象としたゲーム向けです。"
}
"koreana"
{
"title" "게임패드"
"description" "게임 패드를 지원하도록 설계된 게임들을 위한 설정입니다. 이중 스틱 슈팅 게임, 사이드 스크롤 게임 등 스틱을 두 개 쓰는 게임을 염두에 두고 만들어졌습니다."
}
"polish"
{
"title" "Kontroler"
"description" "Ten szablon jest odpowiedni dla gier, które już mają wbudowane wsparcie dla kontrolerów. Przeznaczony dla gier obsługujących dwie gałki, m.in. twin-stick shootery, side-scrollery itp."
}
"portuguese"
{
"title" "Comando"
"description" "Este modelo é indicado para jogos que já têm compatibilidade nativa com comando. Foi concebido para jogos de tiros que usam dois sticks, jogos de plataformas, de naves, etc."
}
"romanian"
{
"title" "Gamepad"
"description" "Șablonul acesta este pentru jocurile care au deja suport pentru gamepad implementat. Destinat pentru jocuri dual stick, precum shooter-e twin-stick, side-scroller, etc."
}
"russian"
{
"title" "Геймпад"
"description" "Этот шаблон подходит для большинства игр с поддержкой геймпада — например, для шутеров с видом сверху или сбоку."
}
"spanish"
{
"title" "Mando"
"description" "Esta plantilla es para juegos que ya incluyen de serie compatibilidad con mando. Está destinada a juegos de doble stick como twin-stick shooters, side-scrollers, etc."
}
"swedish"
{
"title" "Gamepad"
"description" "Denna mall är för spel som redan har inbyggt stöd för spelkontroller. Avsett för spel som använder två styrspakar, som twin-stick shooters och side-scrollers, etc."
}
"schinese"
{
"title" "手柄"
"description" "该模板适用于已内置手柄支持的游戏。针对双摇杆游戏,如双摇杆射击游戏、横版过关游戏等设计。"
}
"thai"
{
"title" "เกมแพด"
}
"brazilian"
{
"title" "Controle padrão"
"description" "Este modelo é para jogos já compatíveis com controle que usam ambas as alavancas, como jogos de nave, etc."
}
"bulgarian"
{
"title" "Геймпад"
"description" "Този шаблон е за игри, които вече имат вградена поддръжка на геймпад. Предназначен e за игри ползващи двата стика. Като например, екшъни за два аналогови стика, странични скролери и т.н."
}
"greek"
{
"title" "Χειριστήριο"
"description" "Αυτό το πρότυπο ορίζεται για παιχνίδια τα οποία έχουν ήδη υποστήριξη χειριστηρίου. Προορίζεται για παιχνίδια dual-stick όπως twin-stick shooters, side-scrollers, κλπ."
}
"turkish"
{
"title" "Oyun Kumandası"
"description" "Bu şablon hali hazırda oyun içi oyun kumandası desteği ve birincil veya üçüncü kişi kontrollü kameraya sahip oyunlar içindir. Çift çubuk kullanılan oyunlar olan ikiz çubuk nişancılık, side-scroller oyunlar vb. içindir."
}
"ukrainian"
{
"title" "Ґеймпад"
"description" "Цей шаблон для більшості ігор, в яких вже вбудовано підтримку ґеймпада. Призначено для ігор з керуванням двома стіками."
}
}
"group"
{
"id" "0"
"mode" "four_buttons"
"name" ""
"description" ""
"inputs"
{
"button_a"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press RETURN, Activate, , "
}
}
}
"disabled_activators"
{
}
}
"button_b"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press ESCAPE, Close / Back, , "
}
}
}
"disabled_activators"
{
}
}
"button_x"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press PLAY, Play/Pause, , "
}
}
}
"disabled_activators"
{
}
}
"button_y"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "controller_action CHANGE_PRESET 2 1 1, , "
}
}
}
"disabled_activators"
{
}
}
}
}
"group"
{
"id" "1"
"mode" "dpad"
"name" ""
"description" ""
"inputs"
{
"dpad_north"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "xinput_button dpad_up, , "
}
"settings"
{
"haptic_intensity" "1"
}
}
}
"disabled_activators"
{
}
}
"dpad_south"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "xinput_button dpad_down, , "
}
"settings"
{
"haptic_intensity" "1"
}
}
}
"disabled_activators"
{
}
}
"dpad_east"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "xinput_button dpad_right, , "
}
"settings"
{
"haptic_intensity" "1"
}
}
}
"disabled_activators"
{
}
}
"dpad_west"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "xinput_button dpad_left, , "
}
"settings"
{
"haptic_intensity" "1"
}
}
}
"disabled_activators"
{
}
}
}
}
"group"
{
"id" "2"
"mode" "joystick_move"
"name" ""
"description" ""
"inputs"
{
"click"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "xinput_button JOYSTICK_RIGHT, , "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
}
}
"group"
{
"id" "3"
"mode" "joystick_move"
"name" ""
"description" ""
"inputs"
{
"click"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "xinput_button JOYSTICK_LEFT, , "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
}
}
"group"
{
"id" "4"
"mode" "trigger"
"name" ""
"description" ""
"inputs"
{
"click"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press LEFT_ARROW, , "
}
"settings"
{
"hold_repeats" "1"
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
}
"settings"
{
"output_trigger" "1"
}
}
"group"
{
"id" "5"
"mode" "trigger"
"name" ""
"description" ""
"inputs"
{
"click"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press RIGHT_ARROW, , "
}
"settings"
{
"hold_repeats" "1"
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
}
"settings"
{
"output_trigger" "2"
}
}
"group"
{
"id" "6"
"mode" "joystick_move"
"name" ""
"description" ""
"inputs"
{
"click"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "xinput_button JOYSTICK_RIGHT, , "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
}
}
"group"
{
"id" "8"
"mode" "joystick_move"
"name" ""
"description" ""
"inputs"
{
"click"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "xinput_button JOYSTICK_RIGHT, , "
}
}
}
"disabled_activators"
{
}
}
}
}
"group"
{
"id" "9"
"mode" "dpad"
"name" ""
"description" ""
"inputs"
{
"dpad_north"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press UP_ARROW, , "
}
"settings"
{
"hold_repeats" "1"
"repeat_rate" "250"
"haptic_intensity" "1"
}
}
}
"disabled_activators"
{
}
}
"dpad_south"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press DOWN_ARROW, , "
}
"settings"
{
"hold_repeats" "1"
"repeat_rate" "250"
"haptic_intensity" "1"
}
}
}
"disabled_activators"
{
}
}
"dpad_east"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press RIGHT_ARROW, , "
}
"settings"
{
"hold_repeats" "1"
"repeat_rate" "250"
"haptic_intensity" "1"
}
}
}
"disabled_activators"
{
}
}
"dpad_west"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press LEFT_ARROW, , "
}
"settings"
{
"hold_repeats" "1"
"repeat_rate" "250"
"haptic_intensity" "1"
}
}
}
"disabled_activators"
{
}
}
}
"settings"
{
"requires_click" "0"
"haptic_intensity_override" "0"
}
}
"group"
{
"id" "10"
"mode" "dpad"
"name" ""
"description" ""
"inputs"
{
"click"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press KEYPAD_PLUS, , "
}
}
}
"disabled_activators"
{
}
}
}
"settings"
{
"requires_click" "0"
"overlap_region" "2000"
}
}
"group"
{
"id" "11"
"mode" "dpad"
"name" ""
"description" ""
"inputs"
{
"dpad_north"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press UP_ARROW, , "
}
"settings"
{
"hold_repeats" "1"
"repeat_rate" "250"
}
}
}
"disabled_activators"
{
}
}
"dpad_south"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press DOWN_ARROW, , "
}
"settings"
{
"hold_repeats" "1"
"repeat_rate" "250"
}
}
}
"disabled_activators"
{
}
}
"dpad_east"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press RIGHT_ARROW, , "
}
"settings"
{
"hold_repeats" "1"
"repeat_rate" "250"
}
}
}
"disabled_activators"
{
}
}
"dpad_west"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press LEFT_ARROW, , "
}
"settings"
{
"hold_repeats" "1"
"repeat_rate" "250"
}
}
}
"disabled_activators"
{
}
}
"click"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press KEYPAD_DASH, , "
}
}
}
"disabled_activators"
{
}
}
}
"settings"
{
"requires_click" "0"
"overlap_region" "2000"
}
}
"group"
{
"id" "13"
"mode" "four_buttons"
"name" ""
"description" ""
"inputs"
{
"button_b"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "controller_action CHANGE_PRESET 1 1 1, , "
}
}
}
"disabled_activators"
{
}
}
"button_x"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press PLAY, , "
}
}
}
"disabled_activators"
{
}
}
"button_y"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "controller_action CHANGE_PRESET 1 1 1, , "
}
}
}
"disabled_activators"
{
}
}
}
}
"group"
{
"id" "14"
"mode" "trigger"
"name" ""
"description" ""
"inputs"
{
}
}
"group"
{
"id" "15"
"mode" "trigger"
"name" ""
"description" ""
"inputs"
{
}
}
"group"
{
"id" "30"
"mode" "dpad"
"name" ""
"description" ""
"inputs"
{
"dpad_north"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press VOLUME_UP, , "
}
}
}
"disabled_activators"
{
}
}
"dpad_south"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press VOLUME_DOWN, , "
}
}
}
"disabled_activators"
{
}
}
"dpad_east"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press KEYPAD_PLUS, , "
}
}
}
"disabled_activators"
{
}
}
"dpad_west"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press KEYPAD_DASH, , "
}
}
}
"disabled_activators"
{
}
}
}
"settings"
{
"requires_click" "0"
"layout" "3"
"haptic_intensity_override" "0"
}
}
"group"
{
"id" "31"
"mode" "dpad"
"name" ""
"description" ""
"inputs"
{
}
"settings"
{
"requires_click" "0"
}
}
"group"
{
"id" "7"
"mode" "switches"
"name" ""
"description" ""
"inputs"
{
"button_escape"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "controller_action SHOW_KEYBOARD, , "
}
}
}
"disabled_activators"
{
}
}
"button_menu"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press F11, Fullscreen / Reload, , "
}
}
"Long_Press"
{
"bindings"
{
"binding" "key_press F5, , "
}
}
}
"disabled_activators"
{
}
}
"left_bumper"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press H, Previous Video, , "
}
}
}
"disabled_activators"
{
}
}
"right_bumper"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press LEFT_BRACKET, Next Video, , "
}
}
}
"disabled_activators"
{
}
}
"button_capture"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "controller_action SCREENSHOT, , "
}
}
}
"disabled_activators"
{
}
}
}
}
"group"
{
"id" "16"
"mode" "switches"
"name" ""
"description" ""
"inputs"
{
"button_menu"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press F11, , "
}
}
}
"disabled_activators"
{
}
}
}
}
"preset"
{
"id" "0"
"name" "Default"
"group_source_bindings"
{
"7" "switch active"
"0" "button_diamond active"
"3" "joystick inactive"
"11" "joystick active"
"4" "left_trigger active"
"5" "right_trigger active"
"8" "right_joystick inactive"
"10" "right_joystick active"
"9" "dpad active"
}
}
"preset"
{
"id" "1"
"name" "Preset_1000001"
"group_source_bindings"
{
"16" "switch active"
"13" "button_diamond active"
"31" "joystick inactive"
"14" "left_trigger active"
"15" "right_trigger active"
"30" "dpad active"
}
}
"settings"
{
"left_trackpad_mode" "0"
"right_trackpad_mode" "0"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment