diff --git a/nix/steam_deck/configuration/home.nix b/nix/steam_deck/configuration/home.nix index 254b357..d7f7806 100644 --- a/nix/steam_deck/configuration/home.nix +++ b/nix/steam_deck/configuration/home.nix @@ -14,11 +14,14 @@ ./roles/graphics ./roles/pcsx2 ./roles/rpcs3 + ./roles/ryujinx ./roles/shipwright ./roles/sm64ex ./roles/steam_rom_manager - ./util/unfree_polyfill + ./roles/yuzu + ./util/copy_files ./util/persist_symlink + ./util/unfree_polyfill ]; home.username = "deck"; diff --git a/nix/steam_deck/configuration/hosts/deck/default.nix b/nix/steam_deck/configuration/hosts/deck/default.nix index 05b3a52..ce3a43b 100644 --- a/nix/steam_deck/configuration/hosts/deck/default.nix +++ b/nix/steam_deck/configuration/hosts/deck/default.nix @@ -15,9 +15,11 @@ me.optimizations.enable = true; me.pcsx2.enable = true; me.rpcs3.enable = true; + me.ryujinx.enable = true; me.ship2harkinian.enable = true; me.shipwright.enable = true; me.sm64ex.enable = true; me.steam_rom_manager.enable = true; # Steam rom manager UI does not render. I think it wants to be in an AppImage. + me.yuzu.enable = true; }; } diff --git a/nix/steam_deck/configuration/roles/ryujinx/default.nix b/nix/steam_deck/configuration/roles/ryujinx/default.nix new file mode 100644 index 0000000..64fcde3 --- /dev/null +++ b/nix/steam_deck/configuration/roles/ryujinx/default.nix @@ -0,0 +1,39 @@ +{ + config, + lib, + pkgs, + ... +}: + +{ + imports = [ ]; + + options.me = { + ryujinx.enable = lib.mkOption { + type = lib.types.bool; + default = false; + example = true; + description = "Whether we want to install ryujinx."; + }; + }; + + config = lib.mkIf config.me.ryujinx.enable ( + lib.mkMerge [ + (lib.mkIf config.me.graphical { + # This needs to be read-write so we use me.copy.file to copy the file. + me.copy.file.".config/Ryujinx/Config.json" = { + source = ./files/Config.json; + mode = "0644"; + }; + + me.persist.directories = [ + ".config/Ryujinx/bis" + ".config/Ryujinx/games" + ".config/Ryujinx/sdcard" + ".config/Ryujinx/system" + ]; + me.state.directories = [ ]; + }) + ] + ); +} diff --git a/nix/steam_deck/configuration/roles/ryujinx/files/Config.json b/nix/steam_deck/configuration/roles/ryujinx/files/Config.json new file mode 100644 index 0000000..d132c40 --- /dev/null +++ b/nix/steam_deck/configuration/roles/ryujinx/files/Config.json @@ -0,0 +1,174 @@ +{ + "version": 51, + "enable_file_log": true, + "backend_threading": "Auto", + "res_scale": 1, + "res_scale_custom": 1, + "max_anisotropy": -1, + "aspect_ratio": "Fixed16x9", + "anti_aliasing": "None", + "scaling_filter": "Bilinear", + "scaling_filter_level": 80, + "graphics_shaders_dump_path": "", + "logging_enable_debug": false, + "logging_enable_stub": true, + "logging_enable_info": true, + "logging_enable_warn": true, + "logging_enable_error": true, + "logging_enable_trace": false, + "logging_enable_guest": true, + "logging_enable_fs_access_log": false, + "logging_filtered_classes": [], + "logging_graphics_debug_level": "None", + "system_language": "AmericanEnglish", + "system_region": "USA", + "system_time_zone": "UTC", + "system_time_offset": -187, + "docked_mode": true, + "enable_discord_integration": false, + "check_updates_on_start": false, + "show_confirm_exit": false, + "remember_window_state": true, + "enable_hardware_acceleration": true, + "hide_cursor": 1, + "enable_vsync": true, + "enable_shader_cache": true, + "enable_texture_recompression": false, + "enable_macro_hle": true, + "enable_color_space_passthrough": false, + "enable_ptc": true, + "enable_internet_access": false, + "enable_fs_integrity_checks": true, + "fs_global_access_log_mode": 0, + "audio_backend": "SDL2", + "audio_volume": 1, + "memory_manager_mode": "HostMappedUnsafe", + "expand_ram": false, + "ignore_missing_services": false, + "gui_columns": { + "fav_column": true, + "icon_column": true, + "app_column": true, + "dev_column": true, + "version_column": true, + "time_played_column": true, + "last_played_column": true, + "file_ext_column": true, + "file_size_column": true, + "path_column": true + }, + "column_sort": { + "sort_column_id": 0, + "sort_ascending": false + }, + "game_dirs": [ + "/home/deck/.persist/manual/games/nintendo_switch/roms/ryujinx" + ], + "shown_file_types": { + "nsp": true, + "pfs0": true, + "xci": true, + "nca": true, + "nro": true, + "nso": true + }, + "window_startup": { + "window_size_width": 1280, + "window_size_height": 800, + "window_position_x": 0, + "window_position_y": 0, + "window_maximized": false + }, + "language_code": "en_US", + "enable_custom_theme": true, + "custom_theme_path": "", + "base_style": "Dark", + "game_list_view_mode": 0, + "show_names": true, + "grid_size": 2, + "application_sort": 0, + "is_ascending_order": true, + "start_fullscreen": false, + "show_console": true, + "enable_keyboard": false, + "enable_mouse": false, + "hotkeys": { + "toggle_vsync": "F1", + "screenshot": "F8", + "show_ui": "F4", + "pause": "F5", + "toggle_mute": "F2", + "res_scale_up": "Unbound", + "res_scale_down": "Unbound", + "volume_up": "Unbound", + "volume_down": "Unbound" + }, + "keyboard_config": [], + "controller_config": [], + "input_config": [ + { + "left_joycon_stick": { + "joystick": "Left", + "invert_stick_x": false, + "invert_stick_y": false, + "rotate90_cw": false, + "stick_button": "LeftStick" + }, + "right_joycon_stick": { + "joystick": "Right", + "invert_stick_x": false, + "invert_stick_y": false, + "rotate90_cw": false, + "stick_button": "RightStick" + }, + "deadzone_left": 0.1, + "deadzone_right": 0.1, + "range_left": 1, + "range_right": 1, + "trigger_threshold": 0.5, + "motion": { + "motion_backend": "GamepadDriver", + "sensitivity": 100, + "gyro_deadzone": 1, + "enable_motion": true + }, + "rumble": { + "strong_rumble": 1, + "weak_rumble": 1, + "enable_rumble": true + }, + "left_joycon": { + "button_minus": "Back", + "button_l": "LeftShoulder", + "button_zl": "LeftTrigger", + "button_sl": "Unbound", + "button_sr": "Unbound", + "dpad_up": "DpadUp", + "dpad_down": "DpadDown", + "dpad_left": "DpadLeft", + "dpad_right": "DpadRight" + }, + "right_joycon": { + "button_plus": "Start", + "button_r": "RightShoulder", + "button_zr": "RightTrigger", + "button_sl": "Unbound", + "button_sr": "Unbound", + "button_x": "X", + "button_b": "B", + "button_y": "Y", + "button_a": "A" + }, + "version": 1, + "backend": "GamepadSDL2", + "id": "0-f6790003-28de-0000-ff11-000001000000", + "controller_type": "ProController", + "player_index": "Player1" + } + ], + "graphics_backend": "Vulkan", + "preferred_gpu": "0x1002_0x163F", + "multiplayer_mode": 0, + "multiplayer_lan_interface_id": "0", + "use_hypervisor": true +} \ No newline at end of file diff --git a/nix/steam_deck/configuration/roles/yuzu/default.nix b/nix/steam_deck/configuration/roles/yuzu/default.nix new file mode 100644 index 0000000..9cbe4be --- /dev/null +++ b/nix/steam_deck/configuration/roles/yuzu/default.nix @@ -0,0 +1,41 @@ +{ + config, + lib, + pkgs, + ... +}: + +{ + imports = [ ]; + + options.me = { + yuzu.enable = lib.mkOption { + type = lib.types.bool; + default = false; + example = true; + description = "Whether we want to install yuzu."; + }; + }; + + config = lib.mkIf config.me.yuzu.enable ( + lib.mkMerge [ + (lib.mkIf config.me.graphical { + home.file.".config/yuzu/qt-config.ini" = { + source = ./files/qt-config.ini; + }; + home.file.".config/yuzu/input/deck.ini" = { + source = ./files/deck.ini; + }; + + me.persist.directories = [ + ".local/share/yuzu/nand" + ".local/share/yuzu/sdmc" # SD Card + ".local/share/yuzu/screenshots" + ".local/share/yuzu/keys" + ".config/yuzu/custom" # Per-game configs + ]; + me.state.directories = [ ".local/share/yuzu/shader" ]; + }) + ] + ); +} diff --git a/nix/steam_deck/configuration/roles/yuzu/files/deck.ini b/nix/steam_deck/configuration/roles/yuzu/files/deck.ini new file mode 100644 index 0000000..229a020 --- /dev/null +++ b/nix/steam_deck/configuration/roles/yuzu/files/deck.ini @@ -0,0 +1,55 @@ +[Controls] +type\default=true +type=0 +button_a\default=false +button_a="pad:0,button:0,port:0,guid:03000000de280000ff11000001000000,engine:sdl" +button_b\default=false +button_b="pad:0,button:1,port:0,guid:03000000de280000ff11000001000000,engine:sdl" +button_x\default=false +button_x="pad:0,button:2,port:0,guid:03000000de280000ff11000001000000,engine:sdl" +button_y\default=false +button_y="pad:0,button:3,port:0,guid:03000000de280000ff11000001000000,engine:sdl" +button_lstick\default=false +button_lstick="engine:sdl,port:0,guid:03000000de280000ff11000001000000,button:9" +button_rstick\default=false +button_rstick="engine:sdl,port:0,guid:03000000de280000ff11000001000000,button:10" +button_l\default=false +button_l="engine:sdl,port:0,guid:03000000de280000ff11000001000000,button:4" +button_r\default=false +button_r="engine:sdl,port:0,guid:03000000de280000ff11000001000000,button:5" +button_zl\default=false +button_zl="engine:sdl,invert:+,port:0,guid:03000000de280000ff11000001000000,axis:2,threshold:0.500000" +button_zr\default=false +button_zr="engine:sdl,invert:+,port:0,guid:03000000de280000ff11000001000000,axis:5,threshold:0.500000" +button_plus\default=false +button_plus="engine:sdl,port:0,guid:03000000de280000ff11000001000000,button:7" +button_minus\default=false +button_minus="engine:sdl,port:0,guid:03000000de280000ff11000001000000,button:6" +button_dleft\default=false +button_dleft="engine:sdl,port:0,guid:03000000de280000ff11000001000000,direction:left,hat:0" +button_dup\default=false +button_dup="engine:sdl,port:0,guid:03000000de280000ff11000001000000,direction:up,hat:0" +button_dright\default=false +button_dright="engine:sdl,port:0,guid:03000000de280000ff11000001000000,direction:right,hat:0" +button_ddown\default=false +button_ddown="engine:sdl,port:0,guid:03000000de280000ff11000001000000,direction:down,hat:0" +button_slleft\default=false +button_slleft="engine:sdl,port:0,guid:03000000de280000ff11000001000000,button:4" +button_srleft\default=false +button_srleft="engine:sdl,port:0,guid:03000000de280000ff11000001000000,button:5" +button_home\default=false +button_home="engine:sdl,port:0,guid:03000000de280000ff11000001000000,button:8" +button_screenshot\default=false +button_screenshot=[empty] +button_slright\default=false +button_slright="engine:sdl,port:0,guid:03000000de280000ff11000001000000,button:4" +button_srright\default=false +button_srright="engine:sdl,port:0,guid:03000000de280000ff11000001000000,button:5" +lstick\default=false +lstick="deadzone:0.150000,engine:sdl,port:0,guid:03000000de280000ff11000001000000,axis_x:0,offset_x:-0.001556,axis_y:1,offset_y:-0.013184,invert_x:+,invert_y:+" +rstick\default=false +rstick="deadzone:0.150000,engine:sdl,port:0,guid:03000000de280000ff11000001000000,axis_x:3,offset_x:-0.001190,axis_y:4,offset_y:-0.010468,invert_x:+,invert_y:+" +motionleft\default=false +motionleft=[empty] +motionright\default=false +motionright=[empty] diff --git a/nix/steam_deck/configuration/roles/yuzu/files/qt-config.ini b/nix/steam_deck/configuration/roles/yuzu/files/qt-config.ini new file mode 100644 index 0000000..1c71fae --- /dev/null +++ b/nix/steam_deck/configuration/roles/yuzu/files/qt-config.ini @@ -0,0 +1,1442 @@ +[DisabledAddOns] +size=1 +1\title_id\default=false +1\title_id=72197163296350208 +1\disabled\size=0 + + +[Controls] +touch_from_button_maps\size=1 +controller_navigation\default=true +controller_navigation=true +enable_joycon_driver\default=true +enable_joycon_driver=true +enable_procon_driver\default=true +enable_procon_driver=false +vibration_enabled\default=true +vibration_enabled=true +enable_accurate_vibrations\default=true +enable_accurate_vibrations=false +motion_enabled\default=true +motion_enabled=true +udp_input_servers\default=true +udp_input_servers=127.0.0.1:26760 +enable_udp_controller\default=true +enable_udp_controller=false +pause_tas_on_load\default=true +pause_tas_on_load=true +tas_enable\default=true +tas_enable=false +tas_loop\default=true +tas_loop=false +mouse_panning_sensitivity\default=true +mouse_panning_sensitivity=50 +mouse_enabled\default=true +mouse_enabled=false +mouse_panning_x_sensitivity\default=true +mouse_panning_x_sensitivity=50 +mouse_panning_y_sensitivity\default=true +mouse_panning_y_sensitivity=50 +mouse_panning_deadzone_counterweight\default=true +mouse_panning_deadzone_counterweight=20 +mouse_panning_decay_strength\default=true +mouse_panning_decay_strength=18 +mouse_panning_min_decay\default=true +mouse_panning_min_decay=6 +emulate_analog_keyboard\default=true +emulate_analog_keyboard=false +keyboard_enabled\default=true +keyboard_enabled=false +debug_pad_enabled\default=true +debug_pad_enabled=false +touch_device\default=true +touch_device="min_x:100,min_y:50,max_x:1800,max_y:850" +touch_from_button_map\default=true +touch_from_button_map=0 +enable_ring_controller\default=true +enable_ring_controller=true +enable_ir_sensor\default=true +enable_ir_sensor=false +ir_sensor_device\default=true +ir_sensor_device=auto +random_amiibo_id\default=true +random_amiibo_id=false +player_0_type\default=true +player_0_type=0 +player_0_profile_name\default=true +player_0_profile_name= +player_0_connected\default=true +player_0_connected=true +player_0_vibration_enabled\default=true +player_0_vibration_enabled=true +player_0_vibration_strength\default=true +player_0_vibration_strength=100 +player_0_body_color_left\default=false +player_0_body_color_left=4278893030 +player_0_body_color_right\default=false +player_0_body_color_right=4294917160 +player_0_button_color_left\default=false +player_0_button_color_left=4278197790 +player_0_button_color_right\default=false +player_0_button_color_right=4280158730 +player_1_type\default=true +player_1_type=0 +player_1_profile_name\default=true +player_1_profile_name= +player_1_connected\default=true +player_1_connected=false +player_1_vibration_enabled\default=true +player_1_vibration_enabled=true +player_1_vibration_strength\default=true +player_1_vibration_strength=100 +player_1_body_color_left\default=false +player_1_body_color_left=4278893030 +player_1_body_color_right\default=false +player_1_body_color_right=4294917160 +player_1_button_color_left\default=false +player_1_button_color_left=4278197790 +player_1_button_color_right\default=false +player_1_button_color_right=4280158730 +player_2_type\default=true +player_2_type=0 +player_2_profile_name\default=true +player_2_profile_name= +player_2_connected\default=true +player_2_connected=false +player_2_vibration_enabled\default=true +player_2_vibration_enabled=true +player_2_vibration_strength\default=true +player_2_vibration_strength=100 +player_2_body_color_left\default=false +player_2_body_color_left=4278893030 +player_2_body_color_right\default=false +player_2_body_color_right=4294917160 +player_2_button_color_left\default=false +player_2_button_color_left=4278197790 +player_2_button_color_right\default=false +player_2_button_color_right=4280158730 +player_3_type\default=true +player_3_type=0 +player_3_profile_name\default=true +player_3_profile_name= +player_3_connected\default=true +player_3_connected=false +player_3_vibration_enabled\default=true +player_3_vibration_enabled=true +player_3_vibration_strength\default=true +player_3_vibration_strength=100 +player_3_body_color_left\default=false +player_3_body_color_left=4278893030 +player_3_body_color_right\default=false +player_3_body_color_right=4294917160 +player_3_button_color_left\default=false +player_3_button_color_left=4278197790 +player_3_button_color_right\default=false +player_3_button_color_right=4280158730 +player_4_type\default=true +player_4_type=0 +player_4_profile_name\default=true +player_4_profile_name= +player_4_connected\default=true +player_4_connected=false +player_4_vibration_enabled\default=true +player_4_vibration_enabled=true +player_4_vibration_strength\default=true +player_4_vibration_strength=100 +player_4_body_color_left\default=false +player_4_body_color_left=4278893030 +player_4_body_color_right\default=false +player_4_body_color_right=4294917160 +player_4_button_color_left\default=false +player_4_button_color_left=4278197790 +player_4_button_color_right\default=false +player_4_button_color_right=4280158730 +player_5_type\default=true +player_5_type=0 +player_5_profile_name\default=true +player_5_profile_name= +player_5_connected\default=true +player_5_connected=false +player_5_vibration_enabled\default=true +player_5_vibration_enabled=true +player_5_vibration_strength\default=true +player_5_vibration_strength=100 +player_5_body_color_left\default=false +player_5_body_color_left=4278893030 +player_5_body_color_right\default=false +player_5_body_color_right=4294917160 +player_5_button_color_left\default=false +player_5_button_color_left=4278197790 +player_5_button_color_right\default=false +player_5_button_color_right=4280158730 +player_6_type\default=true +player_6_type=0 +player_6_profile_name\default=true +player_6_profile_name= +player_6_connected\default=true +player_6_connected=false +player_6_vibration_enabled\default=true +player_6_vibration_enabled=true +player_6_vibration_strength\default=true +player_6_vibration_strength=100 +player_6_body_color_left\default=false +player_6_body_color_left=4278893030 +player_6_body_color_right\default=false +player_6_body_color_right=4294917160 +player_6_button_color_left\default=false +player_6_button_color_left=4278197790 +player_6_button_color_right\default=false +player_6_button_color_right=4280158730 +player_7_type\default=true +player_7_type=0 +player_7_profile_name\default=true +player_7_profile_name= +player_7_connected\default=true +player_7_connected=false +player_7_vibration_enabled\default=true +player_7_vibration_enabled=true +player_7_vibration_strength\default=true +player_7_vibration_strength=100 +player_7_body_color_left\default=false +player_7_body_color_left=4278893030 +player_7_body_color_right\default=false +player_7_body_color_right=4294917160 +player_7_button_color_left\default=false +player_7_button_color_left=4278197790 +player_7_button_color_right\default=false +player_7_button_color_right=4280158730 +player_8_type\default=true +player_8_type=0 +player_8_profile_name\default=true +player_8_profile_name= +player_8_connected\default=true +player_8_connected=false +player_8_vibration_enabled\default=true +player_8_vibration_enabled=true +player_8_vibration_strength\default=true +player_8_vibration_strength=100 +player_8_body_color_left\default=true +player_8_body_color_left=702950 +player_8_body_color_right\default=true +player_8_body_color_right=16727080 +player_8_button_color_left\default=true +player_8_button_color_left=7710 +player_8_button_color_right\default=true +player_8_button_color_right=1968650 +player_9_type\default=true +player_9_type=0 +player_9_profile_name\default=true +player_9_profile_name= +player_9_connected\default=true +player_9_connected=false +player_9_vibration_enabled\default=true +player_9_vibration_enabled=true +player_9_vibration_strength\default=true +player_9_vibration_strength=100 +player_9_body_color_left\default=true +player_9_body_color_left=702950 +player_9_body_color_right\default=true +player_9_body_color_right=16727080 +player_9_button_color_left\default=true +player_9_button_color_left=7710 +player_9_button_color_right\default=true +player_9_button_color_right=1968650 +touchscreen_enabled\default=true +touchscreen_enabled=true +touchscreen_angle\default=true +touchscreen_angle=0 +touchscreen_diameter_x\default=true +touchscreen_diameter_x=90 +touchscreen_diameter_y\default=true +touchscreen_diameter_y=90 +touch_from_button_maps\1\name\default=false +touch_from_button_maps\1\name=default +touch_from_button_maps\1\entries\size=0 +player_0_button_a\default=false +player_0_button_a="pad:0,button:0,port:0,guid:03000000de280000ff11000001000000,engine:sdl" +player_0_button_b\default=false +player_0_button_b="pad:0,button:1,port:0,guid:03000000de280000ff11000001000000,engine:sdl" +player_0_button_x\default=false +player_0_button_x="pad:0,button:2,port:0,guid:03000000de280000ff11000001000000,engine:sdl" +player_0_button_y\default=false +player_0_button_y="pad:0,button:3,port:0,guid:03000000de280000ff11000001000000,engine:sdl" +player_0_button_lstick\default=false +player_0_button_lstick="engine:sdl,port:0,guid:03000000de280000ff11000001000000,button:9" +player_0_button_rstick\default=false +player_0_button_rstick="engine:sdl,port:0,guid:03000000de280000ff11000001000000,button:10" +player_0_button_l\default=false +player_0_button_l="engine:sdl,port:0,guid:03000000de280000ff11000001000000,button:4" +player_0_button_r\default=false +player_0_button_r="engine:sdl,port:0,guid:03000000de280000ff11000001000000,button:5" +player_0_button_zl\default=false +player_0_button_zl="engine:sdl,invert:+,port:0,guid:03000000de280000ff11000001000000,axis:2,threshold:0.500000" +player_0_button_zr\default=false +player_0_button_zr="engine:sdl,invert:+,port:0,guid:03000000de280000ff11000001000000,axis:5,threshold:0.500000" +player_0_button_plus\default=false +player_0_button_plus="engine:sdl,port:0,guid:03000000de280000ff11000001000000,button:7" +player_0_button_minus\default=false +player_0_button_minus="engine:sdl,port:0,guid:03000000de280000ff11000001000000,button:6" +player_0_button_dleft\default=false +player_0_button_dleft="engine:sdl,port:0,guid:03000000de280000ff11000001000000,direction:left,hat:0" +player_0_button_dup\default=false +player_0_button_dup="engine:sdl,port:0,guid:03000000de280000ff11000001000000,direction:up,hat:0" +player_0_button_dright\default=false +player_0_button_dright="engine:sdl,port:0,guid:03000000de280000ff11000001000000,direction:right,hat:0" +player_0_button_ddown\default=false +player_0_button_ddown="engine:sdl,port:0,guid:03000000de280000ff11000001000000,direction:down,hat:0" +player_0_button_slleft\default=false +player_0_button_slleft="engine:sdl,port:0,guid:03000000de280000ff11000001000000,button:4" +player_0_button_srleft\default=false +player_0_button_srleft="engine:sdl,port:0,guid:03000000de280000ff11000001000000,button:5" +player_0_button_home\default=false +player_0_button_home="engine:sdl,port:0,guid:03000000de280000ff11000001000000,button:8" +player_0_button_screenshot\default=false +player_0_button_screenshot=[empty] +player_0_button_slright\default=false +player_0_button_slright="engine:sdl,port:0,guid:03000000de280000ff11000001000000,button:4" +player_0_button_srright\default=false +player_0_button_srright="engine:sdl,port:0,guid:03000000de280000ff11000001000000,button:5" +player_0_lstick\default=false +player_0_lstick="deadzone:0.150000,engine:sdl,port:0,guid:03000000de280000ff11000001000000,axis_x:0,offset_x:-0.001556,axis_y:1,offset_y:-0.013184,invert_x:+,invert_y:+" +player_0_rstick\default=false +player_0_rstick="deadzone:0.150000,engine:sdl,port:0,guid:03000000de280000ff11000001000000,axis_x:3,offset_x:-0.001190,axis_y:4,offset_y:-0.010468,invert_x:+,invert_y:+" +player_0_motionleft\default=false +player_0_motionleft=[empty] +player_0_motionright\default=false +player_0_motionright=[empty] +player_1_button_a\default=false +player_1_button_a="toggle:0,code:67,engine:keyboard" +player_1_button_b\default=false +player_1_button_b="toggle:0,code:88,engine:keyboard" +player_1_button_x\default=false +player_1_button_x="toggle:0,code:86,engine:keyboard" +player_1_button_y\default=false +player_1_button_y="toggle:0,code:90,engine:keyboard" +player_1_button_lstick\default=false +player_1_button_lstick="toggle:0,code:70,engine:keyboard" +player_1_button_rstick\default=false +player_1_button_rstick="toggle:0,code:71,engine:keyboard" +player_1_button_l\default=false +player_1_button_l="toggle:0,code:81,engine:keyboard" +player_1_button_r\default=false +player_1_button_r="toggle:0,code:69,engine:keyboard" +player_1_button_zl\default=false +player_1_button_zl="toggle:0,code:82,engine:keyboard" +player_1_button_zr\default=false +player_1_button_zr="toggle:0,code:84,engine:keyboard" +player_1_button_plus\default=false +player_1_button_plus="toggle:0,code:77,engine:keyboard" +player_1_button_minus\default=false +player_1_button_minus="toggle:0,code:78,engine:keyboard" +player_1_button_dleft\default=false +player_1_button_dleft="toggle:0,code:16777234,engine:keyboard" +player_1_button_dup\default=false +player_1_button_dup="toggle:0,code:16777235,engine:keyboard" +player_1_button_dright\default=false +player_1_button_dright="toggle:0,code:16777236,engine:keyboard" +player_1_button_ddown\default=false +player_1_button_ddown="toggle:0,code:16777237,engine:keyboard" +player_1_button_slleft\default=false +player_1_button_slleft="toggle:0,code:81,engine:keyboard" +player_1_button_srleft\default=false +player_1_button_srleft="toggle:0,code:69,engine:keyboard" +player_1_button_home\default=false +player_1_button_home="toggle:0,code:0,engine:keyboard" +player_1_button_screenshot\default=false +player_1_button_screenshot="toggle:0,code:0,engine:keyboard" +player_1_button_slright\default=false +player_1_button_slright="toggle:0,code:81,engine:keyboard" +player_1_button_srright\default=false +player_1_button_srright="toggle:0,code:69,engine:keyboard" +player_1_lstick\default=false +player_1_lstick="modifier_scale:0.500000,modifier:toggle$00$1code$016777248$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,down:toggle$00$1code$083$1engine$0keyboard,up:toggle$00$1code$087$1engine$0keyboard,engine:analog_from_button" +player_1_rstick\default=false +player_1_rstick="modifier_scale:0.500000,modifier:toggle$00$1code$00$1engine$0keyboard,right:toggle$00$1code$076$1engine$0keyboard,left:toggle$00$1code$074$1engine$0keyboard,down:toggle$00$1code$075$1engine$0keyboard,up:toggle$00$1code$073$1engine$0keyboard,engine:analog_from_button" +player_1_motionleft\default=false +player_1_motionleft="toggle:0,code:55,engine:keyboard" +player_1_motionright\default=false +player_1_motionright="toggle:0,code:56,engine:keyboard" +player_2_button_a\default=false +player_2_button_a="toggle:0,code:67,engine:keyboard" +player_2_button_b\default=false +player_2_button_b="toggle:0,code:88,engine:keyboard" +player_2_button_x\default=false +player_2_button_x="toggle:0,code:86,engine:keyboard" +player_2_button_y\default=false +player_2_button_y="toggle:0,code:90,engine:keyboard" +player_2_button_lstick\default=false +player_2_button_lstick="toggle:0,code:70,engine:keyboard" +player_2_button_rstick\default=false +player_2_button_rstick="toggle:0,code:71,engine:keyboard" +player_2_button_l\default=false +player_2_button_l="toggle:0,code:81,engine:keyboard" +player_2_button_r\default=false +player_2_button_r="toggle:0,code:69,engine:keyboard" +player_2_button_zl\default=false +player_2_button_zl="toggle:0,code:82,engine:keyboard" +player_2_button_zr\default=false +player_2_button_zr="toggle:0,code:84,engine:keyboard" +player_2_button_plus\default=false +player_2_button_plus="toggle:0,code:77,engine:keyboard" +player_2_button_minus\default=false +player_2_button_minus="toggle:0,code:78,engine:keyboard" +player_2_button_dleft\default=false +player_2_button_dleft="toggle:0,code:16777234,engine:keyboard" +player_2_button_dup\default=false +player_2_button_dup="toggle:0,code:16777235,engine:keyboard" +player_2_button_dright\default=false +player_2_button_dright="toggle:0,code:16777236,engine:keyboard" +player_2_button_ddown\default=false +player_2_button_ddown="toggle:0,code:16777237,engine:keyboard" +player_2_button_slleft\default=false +player_2_button_slleft="toggle:0,code:81,engine:keyboard" +player_2_button_srleft\default=false +player_2_button_srleft="toggle:0,code:69,engine:keyboard" +player_2_button_home\default=false +player_2_button_home="toggle:0,code:0,engine:keyboard" +player_2_button_screenshot\default=false +player_2_button_screenshot="toggle:0,code:0,engine:keyboard" +player_2_button_slright\default=false +player_2_button_slright="toggle:0,code:81,engine:keyboard" +player_2_button_srright\default=false +player_2_button_srright="toggle:0,code:69,engine:keyboard" +player_2_lstick\default=false +player_2_lstick="modifier_scale:0.500000,modifier:toggle$00$1code$016777248$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,down:toggle$00$1code$083$1engine$0keyboard,up:toggle$00$1code$087$1engine$0keyboard,engine:analog_from_button" +player_2_rstick\default=false +player_2_rstick="modifier_scale:0.500000,modifier:toggle$00$1code$00$1engine$0keyboard,right:toggle$00$1code$076$1engine$0keyboard,left:toggle$00$1code$074$1engine$0keyboard,down:toggle$00$1code$075$1engine$0keyboard,up:toggle$00$1code$073$1engine$0keyboard,engine:analog_from_button" +player_2_motionleft\default=false +player_2_motionleft="toggle:0,code:55,engine:keyboard" +player_2_motionright\default=false +player_2_motionright="toggle:0,code:56,engine:keyboard" +player_3_button_a\default=false +player_3_button_a="toggle:0,code:67,engine:keyboard" +player_3_button_b\default=false +player_3_button_b="toggle:0,code:88,engine:keyboard" +player_3_button_x\default=false +player_3_button_x="toggle:0,code:86,engine:keyboard" +player_3_button_y\default=false +player_3_button_y="toggle:0,code:90,engine:keyboard" +player_3_button_lstick\default=false +player_3_button_lstick="toggle:0,code:70,engine:keyboard" +player_3_button_rstick\default=false +player_3_button_rstick="toggle:0,code:71,engine:keyboard" +player_3_button_l\default=false +player_3_button_l="toggle:0,code:81,engine:keyboard" +player_3_button_r\default=false +player_3_button_r="toggle:0,code:69,engine:keyboard" +player_3_button_zl\default=false +player_3_button_zl="toggle:0,code:82,engine:keyboard" +player_3_button_zr\default=false +player_3_button_zr="toggle:0,code:84,engine:keyboard" +player_3_button_plus\default=false +player_3_button_plus="toggle:0,code:77,engine:keyboard" +player_3_button_minus\default=false +player_3_button_minus="toggle:0,code:78,engine:keyboard" +player_3_button_dleft\default=false +player_3_button_dleft="toggle:0,code:16777234,engine:keyboard" +player_3_button_dup\default=false +player_3_button_dup="toggle:0,code:16777235,engine:keyboard" +player_3_button_dright\default=false +player_3_button_dright="toggle:0,code:16777236,engine:keyboard" +player_3_button_ddown\default=false +player_3_button_ddown="toggle:0,code:16777237,engine:keyboard" +player_3_button_slleft\default=false +player_3_button_slleft="toggle:0,code:81,engine:keyboard" +player_3_button_srleft\default=false +player_3_button_srleft="toggle:0,code:69,engine:keyboard" +player_3_button_home\default=false +player_3_button_home="toggle:0,code:0,engine:keyboard" +player_3_button_screenshot\default=false +player_3_button_screenshot="toggle:0,code:0,engine:keyboard" +player_3_button_slright\default=false +player_3_button_slright="toggle:0,code:81,engine:keyboard" +player_3_button_srright\default=false +player_3_button_srright="toggle:0,code:69,engine:keyboard" +player_3_lstick\default=false +player_3_lstick="modifier_scale:0.500000,modifier:toggle$00$1code$016777248$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,down:toggle$00$1code$083$1engine$0keyboard,up:toggle$00$1code$087$1engine$0keyboard,engine:analog_from_button" +player_3_rstick\default=false +player_3_rstick="modifier_scale:0.500000,modifier:toggle$00$1code$00$1engine$0keyboard,right:toggle$00$1code$076$1engine$0keyboard,left:toggle$00$1code$074$1engine$0keyboard,down:toggle$00$1code$075$1engine$0keyboard,up:toggle$00$1code$073$1engine$0keyboard,engine:analog_from_button" +player_3_motionleft\default=false +player_3_motionleft="toggle:0,code:55,engine:keyboard" +player_3_motionright\default=false +player_3_motionright="toggle:0,code:56,engine:keyboard" +player_4_button_a\default=false +player_4_button_a="toggle:0,code:67,engine:keyboard" +player_4_button_b\default=false +player_4_button_b="toggle:0,code:88,engine:keyboard" +player_4_button_x\default=false +player_4_button_x="toggle:0,code:86,engine:keyboard" +player_4_button_y\default=false +player_4_button_y="toggle:0,code:90,engine:keyboard" +player_4_button_lstick\default=false +player_4_button_lstick="toggle:0,code:70,engine:keyboard" +player_4_button_rstick\default=false +player_4_button_rstick="toggle:0,code:71,engine:keyboard" +player_4_button_l\default=false +player_4_button_l="toggle:0,code:81,engine:keyboard" +player_4_button_r\default=false +player_4_button_r="toggle:0,code:69,engine:keyboard" +player_4_button_zl\default=false +player_4_button_zl="toggle:0,code:82,engine:keyboard" +player_4_button_zr\default=false +player_4_button_zr="toggle:0,code:84,engine:keyboard" +player_4_button_plus\default=false +player_4_button_plus="toggle:0,code:77,engine:keyboard" +player_4_button_minus\default=false +player_4_button_minus="toggle:0,code:78,engine:keyboard" +player_4_button_dleft\default=false +player_4_button_dleft="toggle:0,code:16777234,engine:keyboard" +player_4_button_dup\default=false +player_4_button_dup="toggle:0,code:16777235,engine:keyboard" +player_4_button_dright\default=false +player_4_button_dright="toggle:0,code:16777236,engine:keyboard" +player_4_button_ddown\default=false +player_4_button_ddown="toggle:0,code:16777237,engine:keyboard" +player_4_button_slleft\default=false +player_4_button_slleft="toggle:0,code:81,engine:keyboard" +player_4_button_srleft\default=false +player_4_button_srleft="toggle:0,code:69,engine:keyboard" +player_4_button_home\default=false +player_4_button_home="toggle:0,code:0,engine:keyboard" +player_4_button_screenshot\default=false +player_4_button_screenshot="toggle:0,code:0,engine:keyboard" +player_4_button_slright\default=false +player_4_button_slright="toggle:0,code:81,engine:keyboard" +player_4_button_srright\default=false +player_4_button_srright="toggle:0,code:69,engine:keyboard" +player_4_lstick\default=false +player_4_lstick="modifier_scale:0.500000,modifier:toggle$00$1code$016777248$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,down:toggle$00$1code$083$1engine$0keyboard,up:toggle$00$1code$087$1engine$0keyboard,engine:analog_from_button" +player_4_rstick\default=false +player_4_rstick="modifier_scale:0.500000,modifier:toggle$00$1code$00$1engine$0keyboard,right:toggle$00$1code$076$1engine$0keyboard,left:toggle$00$1code$074$1engine$0keyboard,down:toggle$00$1code$075$1engine$0keyboard,up:toggle$00$1code$073$1engine$0keyboard,engine:analog_from_button" +player_4_motionleft\default=false +player_4_motionleft="toggle:0,code:55,engine:keyboard" +player_4_motionright\default=false +player_4_motionright="toggle:0,code:56,engine:keyboard" +player_5_button_a\default=false +player_5_button_a="toggle:0,code:67,engine:keyboard" +player_5_button_b\default=false +player_5_button_b="toggle:0,code:88,engine:keyboard" +player_5_button_x\default=false +player_5_button_x="toggle:0,code:86,engine:keyboard" +player_5_button_y\default=false +player_5_button_y="toggle:0,code:90,engine:keyboard" +player_5_button_lstick\default=false +player_5_button_lstick="toggle:0,code:70,engine:keyboard" +player_5_button_rstick\default=false +player_5_button_rstick="toggle:0,code:71,engine:keyboard" +player_5_button_l\default=false +player_5_button_l="toggle:0,code:81,engine:keyboard" +player_5_button_r\default=false +player_5_button_r="toggle:0,code:69,engine:keyboard" +player_5_button_zl\default=false +player_5_button_zl="toggle:0,code:82,engine:keyboard" +player_5_button_zr\default=false +player_5_button_zr="toggle:0,code:84,engine:keyboard" +player_5_button_plus\default=false +player_5_button_plus="toggle:0,code:77,engine:keyboard" +player_5_button_minus\default=false +player_5_button_minus="toggle:0,code:78,engine:keyboard" +player_5_button_dleft\default=false +player_5_button_dleft="toggle:0,code:16777234,engine:keyboard" +player_5_button_dup\default=false +player_5_button_dup="toggle:0,code:16777235,engine:keyboard" +player_5_button_dright\default=false +player_5_button_dright="toggle:0,code:16777236,engine:keyboard" +player_5_button_ddown\default=false +player_5_button_ddown="toggle:0,code:16777237,engine:keyboard" +player_5_button_slleft\default=false +player_5_button_slleft="toggle:0,code:81,engine:keyboard" +player_5_button_srleft\default=false +player_5_button_srleft="toggle:0,code:69,engine:keyboard" +player_5_button_home\default=false +player_5_button_home="toggle:0,code:0,engine:keyboard" +player_5_button_screenshot\default=false +player_5_button_screenshot="toggle:0,code:0,engine:keyboard" +player_5_button_slright\default=false +player_5_button_slright="toggle:0,code:81,engine:keyboard" +player_5_button_srright\default=false +player_5_button_srright="toggle:0,code:69,engine:keyboard" +player_5_lstick\default=false +player_5_lstick="modifier_scale:0.500000,modifier:toggle$00$1code$016777248$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,down:toggle$00$1code$083$1engine$0keyboard,up:toggle$00$1code$087$1engine$0keyboard,engine:analog_from_button" +player_5_rstick\default=false +player_5_rstick="modifier_scale:0.500000,modifier:toggle$00$1code$00$1engine$0keyboard,right:toggle$00$1code$076$1engine$0keyboard,left:toggle$00$1code$074$1engine$0keyboard,down:toggle$00$1code$075$1engine$0keyboard,up:toggle$00$1code$073$1engine$0keyboard,engine:analog_from_button" +player_5_motionleft\default=false +player_5_motionleft="toggle:0,code:55,engine:keyboard" +player_5_motionright\default=false +player_5_motionright="toggle:0,code:56,engine:keyboard" +player_6_button_a\default=false +player_6_button_a="toggle:0,code:67,engine:keyboard" +player_6_button_b\default=false +player_6_button_b="toggle:0,code:88,engine:keyboard" +player_6_button_x\default=false +player_6_button_x="toggle:0,code:86,engine:keyboard" +player_6_button_y\default=false +player_6_button_y="toggle:0,code:90,engine:keyboard" +player_6_button_lstick\default=false +player_6_button_lstick="toggle:0,code:70,engine:keyboard" +player_6_button_rstick\default=false +player_6_button_rstick="toggle:0,code:71,engine:keyboard" +player_6_button_l\default=false +player_6_button_l="toggle:0,code:81,engine:keyboard" +player_6_button_r\default=false +player_6_button_r="toggle:0,code:69,engine:keyboard" +player_6_button_zl\default=false +player_6_button_zl="toggle:0,code:82,engine:keyboard" +player_6_button_zr\default=false +player_6_button_zr="toggle:0,code:84,engine:keyboard" +player_6_button_plus\default=false +player_6_button_plus="toggle:0,code:77,engine:keyboard" +player_6_button_minus\default=false +player_6_button_minus="toggle:0,code:78,engine:keyboard" +player_6_button_dleft\default=false +player_6_button_dleft="toggle:0,code:16777234,engine:keyboard" +player_6_button_dup\default=false +player_6_button_dup="toggle:0,code:16777235,engine:keyboard" +player_6_button_dright\default=false +player_6_button_dright="toggle:0,code:16777236,engine:keyboard" +player_6_button_ddown\default=false +player_6_button_ddown="toggle:0,code:16777237,engine:keyboard" +player_6_button_slleft\default=false +player_6_button_slleft="toggle:0,code:81,engine:keyboard" +player_6_button_srleft\default=false +player_6_button_srleft="toggle:0,code:69,engine:keyboard" +player_6_button_home\default=false +player_6_button_home="toggle:0,code:0,engine:keyboard" +player_6_button_screenshot\default=false +player_6_button_screenshot="toggle:0,code:0,engine:keyboard" +player_6_button_slright\default=false +player_6_button_slright="toggle:0,code:81,engine:keyboard" +player_6_button_srright\default=false +player_6_button_srright="toggle:0,code:69,engine:keyboard" +player_6_lstick\default=false +player_6_lstick="modifier_scale:0.500000,modifier:toggle$00$1code$016777248$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,down:toggle$00$1code$083$1engine$0keyboard,up:toggle$00$1code$087$1engine$0keyboard,engine:analog_from_button" +player_6_rstick\default=false +player_6_rstick="modifier_scale:0.500000,modifier:toggle$00$1code$00$1engine$0keyboard,right:toggle$00$1code$076$1engine$0keyboard,left:toggle$00$1code$074$1engine$0keyboard,down:toggle$00$1code$075$1engine$0keyboard,up:toggle$00$1code$073$1engine$0keyboard,engine:analog_from_button" +player_6_motionleft\default=false +player_6_motionleft="toggle:0,code:55,engine:keyboard" +player_6_motionright\default=false +player_6_motionright="toggle:0,code:56,engine:keyboard" +player_7_button_a\default=false +player_7_button_a="toggle:0,code:67,engine:keyboard" +player_7_button_b\default=false +player_7_button_b="toggle:0,code:88,engine:keyboard" +player_7_button_x\default=false +player_7_button_x="toggle:0,code:86,engine:keyboard" +player_7_button_y\default=false +player_7_button_y="toggle:0,code:90,engine:keyboard" +player_7_button_lstick\default=false +player_7_button_lstick="toggle:0,code:70,engine:keyboard" +player_7_button_rstick\default=false +player_7_button_rstick="toggle:0,code:71,engine:keyboard" +player_7_button_l\default=false +player_7_button_l="toggle:0,code:81,engine:keyboard" +player_7_button_r\default=false +player_7_button_r="toggle:0,code:69,engine:keyboard" +player_7_button_zl\default=false +player_7_button_zl="toggle:0,code:82,engine:keyboard" +player_7_button_zr\default=false +player_7_button_zr="toggle:0,code:84,engine:keyboard" +player_7_button_plus\default=false +player_7_button_plus="toggle:0,code:77,engine:keyboard" +player_7_button_minus\default=false +player_7_button_minus="toggle:0,code:78,engine:keyboard" +player_7_button_dleft\default=false +player_7_button_dleft="toggle:0,code:16777234,engine:keyboard" +player_7_button_dup\default=false +player_7_button_dup="toggle:0,code:16777235,engine:keyboard" +player_7_button_dright\default=false +player_7_button_dright="toggle:0,code:16777236,engine:keyboard" +player_7_button_ddown\default=false +player_7_button_ddown="toggle:0,code:16777237,engine:keyboard" +player_7_button_slleft\default=false +player_7_button_slleft="toggle:0,code:81,engine:keyboard" +player_7_button_srleft\default=false +player_7_button_srleft="toggle:0,code:69,engine:keyboard" +player_7_button_home\default=false +player_7_button_home="toggle:0,code:0,engine:keyboard" +player_7_button_screenshot\default=false +player_7_button_screenshot="toggle:0,code:0,engine:keyboard" +player_7_button_slright\default=false +player_7_button_slright="toggle:0,code:81,engine:keyboard" +player_7_button_srright\default=false +player_7_button_srright="toggle:0,code:69,engine:keyboard" +player_7_lstick\default=false +player_7_lstick="modifier_scale:0.500000,modifier:toggle$00$1code$016777248$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,down:toggle$00$1code$083$1engine$0keyboard,up:toggle$00$1code$087$1engine$0keyboard,engine:analog_from_button" +player_7_rstick\default=false +player_7_rstick="modifier_scale:0.500000,modifier:toggle$00$1code$00$1engine$0keyboard,right:toggle$00$1code$076$1engine$0keyboard,left:toggle$00$1code$074$1engine$0keyboard,down:toggle$00$1code$075$1engine$0keyboard,up:toggle$00$1code$073$1engine$0keyboard,engine:analog_from_button" +player_7_motionleft\default=false +player_7_motionleft="toggle:0,code:55,engine:keyboard" +player_7_motionright\default=false +player_7_motionright="toggle:0,code:56,engine:keyboard" +player_8_button_a\default=false +player_8_button_a="toggle:0,code:67,engine:keyboard" +player_8_button_b\default=false +player_8_button_b="toggle:0,code:88,engine:keyboard" +player_8_button_x\default=false +player_8_button_x="toggle:0,code:86,engine:keyboard" +player_8_button_y\default=false +player_8_button_y="toggle:0,code:90,engine:keyboard" +player_8_button_lstick\default=false +player_8_button_lstick="toggle:0,code:70,engine:keyboard" +player_8_button_rstick\default=false +player_8_button_rstick="toggle:0,code:71,engine:keyboard" +player_8_button_l\default=false +player_8_button_l="toggle:0,code:81,engine:keyboard" +player_8_button_r\default=false +player_8_button_r="toggle:0,code:69,engine:keyboard" +player_8_button_zl\default=false +player_8_button_zl="toggle:0,code:82,engine:keyboard" +player_8_button_zr\default=false +player_8_button_zr="toggle:0,code:84,engine:keyboard" +player_8_button_plus\default=false +player_8_button_plus="toggle:0,code:77,engine:keyboard" +player_8_button_minus\default=false +player_8_button_minus="toggle:0,code:78,engine:keyboard" +player_8_button_dleft\default=false +player_8_button_dleft="toggle:0,code:16777234,engine:keyboard" +player_8_button_dup\default=false +player_8_button_dup="toggle:0,code:16777235,engine:keyboard" +player_8_button_dright\default=false +player_8_button_dright="toggle:0,code:16777236,engine:keyboard" +player_8_button_ddown\default=false +player_8_button_ddown="toggle:0,code:16777237,engine:keyboard" +player_8_button_slleft\default=false +player_8_button_slleft="toggle:0,code:81,engine:keyboard" +player_8_button_srleft\default=false +player_8_button_srleft="toggle:0,code:69,engine:keyboard" +player_8_button_home\default=false +player_8_button_home="toggle:0,code:0,engine:keyboard" +player_8_button_screenshot\default=false +player_8_button_screenshot="toggle:0,code:0,engine:keyboard" +player_8_button_slright\default=false +player_8_button_slright="toggle:0,code:81,engine:keyboard" +player_8_button_srright\default=false +player_8_button_srright="toggle:0,code:69,engine:keyboard" +player_8_lstick\default=false +player_8_lstick="modifier_scale:0.500000,modifier:toggle$00$1code$016777248$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,down:toggle$00$1code$083$1engine$0keyboard,up:toggle$00$1code$087$1engine$0keyboard,engine:analog_from_button" +player_8_rstick\default=false +player_8_rstick="modifier_scale:0.500000,modifier:toggle$00$1code$00$1engine$0keyboard,right:toggle$00$1code$076$1engine$0keyboard,left:toggle$00$1code$074$1engine$0keyboard,down:toggle$00$1code$075$1engine$0keyboard,up:toggle$00$1code$073$1engine$0keyboard,engine:analog_from_button" +player_8_motionleft\default=false +player_8_motionleft="toggle:0,code:55,engine:keyboard" +player_8_motionright\default=false +player_8_motionright="toggle:0,code:56,engine:keyboard" +player_9_button_a\default=false +player_9_button_a="toggle:0,code:67,engine:keyboard" +player_9_button_b\default=false +player_9_button_b="toggle:0,code:88,engine:keyboard" +player_9_button_x\default=false +player_9_button_x="toggle:0,code:86,engine:keyboard" +player_9_button_y\default=false +player_9_button_y="toggle:0,code:90,engine:keyboard" +player_9_button_lstick\default=false +player_9_button_lstick="toggle:0,code:70,engine:keyboard" +player_9_button_rstick\default=false +player_9_button_rstick="toggle:0,code:71,engine:keyboard" +player_9_button_l\default=false +player_9_button_l="toggle:0,code:81,engine:keyboard" +player_9_button_r\default=false +player_9_button_r="toggle:0,code:69,engine:keyboard" +player_9_button_zl\default=false +player_9_button_zl="toggle:0,code:82,engine:keyboard" +player_9_button_zr\default=false +player_9_button_zr="toggle:0,code:84,engine:keyboard" +player_9_button_plus\default=false +player_9_button_plus="toggle:0,code:77,engine:keyboard" +player_9_button_minus\default=false +player_9_button_minus="toggle:0,code:78,engine:keyboard" +player_9_button_dleft\default=false +player_9_button_dleft="toggle:0,code:16777234,engine:keyboard" +player_9_button_dup\default=false +player_9_button_dup="toggle:0,code:16777235,engine:keyboard" +player_9_button_dright\default=false +player_9_button_dright="toggle:0,code:16777236,engine:keyboard" +player_9_button_ddown\default=false +player_9_button_ddown="toggle:0,code:16777237,engine:keyboard" +player_9_button_slleft\default=false +player_9_button_slleft="toggle:0,code:81,engine:keyboard" +player_9_button_srleft\default=false +player_9_button_srleft="toggle:0,code:69,engine:keyboard" +player_9_button_home\default=false +player_9_button_home="toggle:0,code:0,engine:keyboard" +player_9_button_screenshot\default=false +player_9_button_screenshot="toggle:0,code:0,engine:keyboard" +player_9_button_slright\default=false +player_9_button_slright="toggle:0,code:81,engine:keyboard" +player_9_button_srright\default=false +player_9_button_srright="toggle:0,code:69,engine:keyboard" +player_9_lstick\default=false +player_9_lstick="modifier_scale:0.500000,modifier:toggle$00$1code$016777248$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,down:toggle$00$1code$083$1engine$0keyboard,up:toggle$00$1code$087$1engine$0keyboard,engine:analog_from_button" +player_9_rstick\default=false +player_9_rstick="modifier_scale:0.500000,modifier:toggle$00$1code$00$1engine$0keyboard,right:toggle$00$1code$076$1engine$0keyboard,left:toggle$00$1code$074$1engine$0keyboard,down:toggle$00$1code$075$1engine$0keyboard,up:toggle$00$1code$073$1engine$0keyboard,engine:analog_from_button" +player_9_motionleft\default=false +player_9_motionleft="toggle:0,code:55,engine:keyboard" +player_9_motionright\default=false +player_9_motionright="toggle:0,code:56,engine:keyboard" +debug_pad_button_a\default=false +debug_pad_button_a="toggle:0,code:67,engine:keyboard" +debug_pad_button_b\default=false +debug_pad_button_b="toggle:0,code:88,engine:keyboard" +debug_pad_button_x\default=false +debug_pad_button_x="toggle:0,code:86,engine:keyboard" +debug_pad_button_y\default=false +debug_pad_button_y="toggle:0,code:90,engine:keyboard" +debug_pad_button_lstick\default=false +debug_pad_button_lstick="toggle:0,code:70,engine:keyboard" +debug_pad_button_rstick\default=false +debug_pad_button_rstick="toggle:0,code:71,engine:keyboard" +debug_pad_button_l\default=false +debug_pad_button_l="toggle:0,code:81,engine:keyboard" +debug_pad_button_r\default=false +debug_pad_button_r="toggle:0,code:69,engine:keyboard" +debug_pad_button_zl\default=false +debug_pad_button_zl="toggle:0,code:82,engine:keyboard" +debug_pad_button_zr\default=false +debug_pad_button_zr="toggle:0,code:84,engine:keyboard" +debug_pad_button_plus\default=false +debug_pad_button_plus="toggle:0,code:77,engine:keyboard" +debug_pad_button_minus\default=false +debug_pad_button_minus="toggle:0,code:78,engine:keyboard" +debug_pad_button_dleft\default=false +debug_pad_button_dleft="toggle:0,code:16777234,engine:keyboard" +debug_pad_button_dup\default=false +debug_pad_button_dup="toggle:0,code:16777235,engine:keyboard" +debug_pad_button_dright\default=false +debug_pad_button_dright="toggle:0,code:16777236,engine:keyboard" +debug_pad_button_ddown\default=false +debug_pad_button_ddown="toggle:0,code:16777237,engine:keyboard" +debug_pad_button_slleft\default=false +debug_pad_button_slleft="toggle:0,code:81,engine:keyboard" +debug_pad_button_srleft\default=false +debug_pad_button_srleft="toggle:0,code:69,engine:keyboard" +debug_pad_button_home\default=false +debug_pad_button_home="toggle:0,code:0,engine:keyboard" +debug_pad_button_screenshot\default=false +debug_pad_button_screenshot="toggle:0,code:0,engine:keyboard" +debug_pad_button_slright\default=false +debug_pad_button_slright="toggle:0,code:81,engine:keyboard" +debug_pad_button_srright\default=false +debug_pad_button_srright="toggle:0,code:69,engine:keyboard" +debug_pad_lstick\default=false +debug_pad_lstick="modifier_scale:0.500000,modifier:toggle$00$1code$016777248$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,down:toggle$00$1code$083$1engine$0keyboard,up:toggle$00$1code$087$1engine$0keyboard,engine:analog_from_button" +debug_pad_rstick\default=false +debug_pad_rstick="modifier_scale:0.500000,modifier:toggle$00$1code$00$1engine$0keyboard,right:toggle$00$1code$076$1engine$0keyboard,left:toggle$00$1code$074$1engine$0keyboard,down:toggle$00$1code$075$1engine$0keyboard,up:toggle$00$1code$073$1engine$0keyboard,engine:analog_from_button" +ring_controller\default=false +ring_controller="modifier_scale:0.050000,modifier:toggle$00$1code$00$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,down:toggle$00$1code$00$1engine$0keyboard,up:toggle$00$1code$00$1engine$0keyboard,engine:analog_from_button" + + +[Data%20Storage] +nand_directory\default=false +nand_directory=/home/deck/.local/share/yuzu/nand +sdmc_directory\default=false +sdmc_directory=/home/deck/.local/share/yuzu/sdmc +load_directory\default=false +load_directory=/home/deck/.local/share/yuzu/load +dump_directory\default=false +dump_directory=/home/deck/.local/share/yuzu/dump +tas_directory\default=false +tas_directory=/home/deck/.local/share/yuzu/tas +use_virtual_sd\default=true +use_virtual_sd=true +gamecard_inserted\default=true +gamecard_inserted=false +gamecard_current_game\default=true +gamecard_current_game=false +gamecard_path\default=true +gamecard_path= + + +[Debugging] +record_frame_times=false +use_gdbstub\default=true +use_gdbstub=false +gdbstub_port\default=true +gdbstub_port=6543 +program_args\default=true +program_args= +dump_exefs\default=true +dump_exefs=false +dump_nso\default=true +dump_nso=false +enable_fs_access_log\default=true +enable_fs_access_log=false +quest_flag\default=true +quest_flag=false +use_debug_asserts\default=true +use_debug_asserts=false +enable_all_controllers\default=true +enable_all_controllers=false +perform_vulkan_check\default=true +perform_vulkan_check=true +disable_macro_jit\default=true +disable_macro_jit=false +disable_macro_hle\default=true +disable_macro_hle=false + + +[Services] +network_interface\default=false +network_interface=None + + +[WebService] +enable_telemetry\default=false +enable_telemetry=false +web_api_url\default=true +web_api_url=https:/api.yuzu-emu.org +yuzu_username\default=true +yuzu_username= +yuzu_token\default=true +yuzu_token= + + +[Miscellaneous] +log_filter\default=true +log_filter="*:Info" +use_dev_keys\default=true +use_dev_keys=false + + +[LibraryApplet] +cabinet_applet_mode\default=true +cabinet_applet_mode=1 +controller_applet_mode\default=true +controller_applet_mode=0 +data_erase_applet_mode\default=true +data_erase_applet_mode=0 +error_applet_mode\default=true +error_applet_mode=1 +net_connect_applet_mode\default=true +net_connect_applet_mode=0 +player_select_applet_mode\default=true +player_select_applet_mode=0 +swkbd_applet_mode\default=true +swkbd_applet_mode=1 +mii_edit_applet_mode\default=true +mii_edit_applet_mode=1 +web_applet_mode\default=true +web_applet_mode=0 +shop_applet_mode\default=true +shop_applet_mode=0 +photo_viewer_applet_mode\default=true +photo_viewer_applet_mode=1 +offline_web_applet_mode\default=true +offline_web_applet_mode=1 +login_share_applet_mode\default=true +login_share_applet_mode=0 +wifi_web_auth_applet_mode\default=true +wifi_web_auth_applet_mode=0 +my_page_applet_mode\default=true +my_page_applet_mode=1 + + +[Core] +use_multi_core\default=true +use_multi_core=true +memory_layout_mode\default=true +memory_layout_mode=0 +speed_limit\default=true +speed_limit=100 + + +[Cpu] +cpu_backend\default=true +cpu_backend=0 +cpu_accuracy\default=true +cpu_accuracy=0 +cpu_debug_mode\default=true +cpu_debug_mode=false +cpuopt_page_tables\default=true +cpuopt_page_tables=true +cpuopt_block_linking\default=true +cpuopt_block_linking=true +cpuopt_return_stack_buffer\default=true +cpuopt_return_stack_buffer=true +cpuopt_fast_dispatcher\default=true +cpuopt_fast_dispatcher=true +cpuopt_context_elimination\default=true +cpuopt_context_elimination=true +cpuopt_const_prop\default=true +cpuopt_const_prop=true +cpuopt_misc_ir\default=true +cpuopt_misc_ir=true +cpuopt_reduce_misalign_checks\default=true +cpuopt_reduce_misalign_checks=true +cpuopt_fastmem\default=true +cpuopt_fastmem=true +cpuopt_fastmem_exclusives\default=true +cpuopt_fastmem_exclusives=true +cpuopt_recompile_exclusives\default=true +cpuopt_recompile_exclusives=true +cpuopt_ignore_memory_aborts\default=true +cpuopt_ignore_memory_aborts=true +cpuopt_unsafe_unfuse_fma\default=true +cpuopt_unsafe_unfuse_fma=true +cpuopt_unsafe_reduce_fp_error\default=true +cpuopt_unsafe_reduce_fp_error=true +cpuopt_unsafe_ignore_standard_fpcr\default=true +cpuopt_unsafe_ignore_standard_fpcr=true +cpuopt_unsafe_inaccurate_nan\default=true +cpuopt_unsafe_inaccurate_nan=true +cpuopt_unsafe_fastmem_check\default=true +cpuopt_unsafe_fastmem_check=true +cpuopt_unsafe_ignore_global_monitor\default=true +cpuopt_unsafe_ignore_global_monitor=true + + +[Linux] +enable_gamemode\default=true +enable_gamemode=true + + +[Renderer] +backend\default=true +backend=1 +shader_backend\default=true +shader_backend=0 +vulkan_device\default=true +vulkan_device=0 +use_disk_shader_cache\default=true +use_disk_shader_cache=true +use_asynchronous_gpu_emulation\default=true +use_asynchronous_gpu_emulation=true +accelerate_astc\default=true +accelerate_astc=1 +use_vsync\default=true +use_vsync=2 +nvdec_emulation\default=true +nvdec_emulation=2 +fullscreen_mode\default=true +fullscreen_mode=1 +aspect_ratio\default=true +aspect_ratio=0 +resolution_setup\default=true +resolution_setup=2 +scaling_filter\default=true +scaling_filter=1 +anti_aliasing\default=true +anti_aliasing=0 +fsr_sharpening_slider\default=true +fsr_sharpening_slider=25 +bg_red\default=true +bg_red=0 +bg_green\default=true +bg_green=0 +bg_blue\default=true +bg_blue=0 +gpu_accuracy\default=true +gpu_accuracy=1 +max_anisotropy\default=true +max_anisotropy=0 +astc_recompression\default=true +astc_recompression=0 +vram_usage_mode\default=true +vram_usage_mode=0 +async_presentation\default=true +async_presentation=false +force_max_clock\default=true +force_max_clock=false +use_reactive_flushing\default=true +use_reactive_flushing=true +use_asynchronous_shaders\default=true +use_asynchronous_shaders=false +use_fast_gpu_time\default=true +use_fast_gpu_time=true +use_vulkan_driver_pipeline_cache\default=true +use_vulkan_driver_pipeline_cache=true +enable_compute_pipelines\default=true +enable_compute_pipelines=false +use_video_framerate\default=true +use_video_framerate=false +barrier_feedback_loops\default=true +barrier_feedback_loops=true +debug\default=true +debug=false +shader_feedback\default=true +shader_feedback=false +nsight_aftermath\default=true +nsight_aftermath=false +disable_shader_loop_safety_checks\default=true +disable_shader_loop_safety_checks=false +renderdoc_hotkey\default=true +renderdoc_hotkey=false +disable_buffer_reorder\default=true +disable_buffer_reorder=false + + +[Audio] +output_engine\default=true +output_engine=auto +output_device\default=true +output_device=auto +input_device\default=true +input_device=auto +volume\default=true +volume=100 +audio_muted\default=true +audio_muted=false +muteWhenInBackground\default=true +muteWhenInBackground=false + + +[System] +language_index\default=true +language_index=1 +region_index\default=true +region_index=1 +time_zone_index\default=true +time_zone_index=0 +custom_rtc_enabled\default=true +custom_rtc_enabled=false +custom_rtc_offset\default=true +custom_rtc_offset=0 +rng_seed_enabled\default=true +rng_seed_enabled=false +rng_seed\default=true +rng_seed=0 +device_name\default=true +device_name=yuzu +current_user\default=true +current_user=0 +use_docked_mode\default=true +use_docked_mode=1 +sound_index\default=true +sound_index=1 + + +[UI] +UIGameList\favorites\size=0 +Paths\gamedirs\size=3 +Multiplayer\username_ban_list\size=0 +Multiplayer\ip_ban_list\size=0 +singleWindowMode\default=true +singleWindowMode=true +fullscreen\default=true +fullscreen=false +displayTitleBars\default=true +displayTitleBars=true +showFilterBar\default=true +showFilterBar=true +showStatusBar\default=true +showStatusBar=true +firstStart\default=false +firstStart=false +disable_web_applet\default=false +disable_web_applet=false +enable_discord_presence\default=false +enable_discord_presence=false +showConsole\default=true +showConsole=false +calloutFlags\default=false +calloutFlags=1 +confirmStop\default=false +confirmStop=2 +pauseWhenInBackground\default=false +pauseWhenInBackground=true +hideInactiveMouse\default=true +hideInactiveMouse=true +disableControllerApplet\default=true +disableControllerApplet=false +select_user_on_boot\default=true +select_user_on_boot=false +theme\default=false +theme=colorful +UIGameList\show_add_ons\default=true +UIGameList\show_add_ons=true +UIGameList\game_icon_size\default=true +UIGameList\game_icon_size=64 +UIGameList\folder_icon_size\default=true +UIGameList\folder_icon_size=48 +UIGameList\row_1_text_id\default=true +UIGameList\row_1_text_id=3 +UIGameList\row_2_text_id\default=true +UIGameList\row_2_text_id=2 +UIGameList\cache_game_list\default=true +UIGameList\cache_game_list=true +UIGameList\favorites_expanded\default=true +UIGameList\favorites_expanded=true +UIGameList\show_compat\default=true +UIGameList\show_compat=false +UIGameList\show_size\default=true +UIGameList\show_size=true +UIGameList\show_types\default=true +UIGameList\show_types=true +UIGameList\show_play_time\default=true +UIGameList\show_play_time=true +UILayout\microProfileDialogVisible\default=true +UILayout\microProfileDialogVisible=false +Paths\language\default=false +Paths\language=en +Paths\romsPath= +Paths\gamedirs\1\path=SDMC +Paths\gamedirs\1\deep_scan\default=true +Paths\gamedirs\1\deep_scan=false +Paths\gamedirs\1\expanded\default=true +Paths\gamedirs\1\expanded=true +Paths\gamedirs\2\path=UserNAND +Paths\gamedirs\2\deep_scan\default=true +Paths\gamedirs\2\deep_scan=false +Paths\gamedirs\2\expanded\default=true +Paths\gamedirs\2\expanded=true +Paths\gamedirs\3\path=SysNAND +Paths\gamedirs\3\deep_scan\default=true +Paths\gamedirs\3\deep_scan=false +Paths\gamedirs\3\expanded\default=true +Paths\gamedirs\3\expanded=true +Paths\recentFiles=/home/deck/.persist/manual/games/nintendo_switch/roms/yuzu/The Legend of Zelda Breath of the Wild [01007EF00011E000][v0].nsp +Screenshots\screenshot_path=/home/deck/.local/share/yuzu/screenshots +Screenshots\enable_screenshot_save_as\default=true +Screenshots\enable_screenshot_save_as=true +Screenshots\screenshot_height\default=true +Screenshots\screenshot_height=0 +Shortcuts\Main%20Window\Audio%20Mute\Unmute\KeySeq\default=false +Shortcuts\Main%20Window\Audio%20Mute\Unmute\KeySeq=Ctrl+M +Shortcuts\Main%20Window\Audio%20Mute\Unmute\Controller_KeySeq\default=false +Shortcuts\Main%20Window\Audio%20Mute\Unmute\Controller_KeySeq=Home+Dpad_Right +Shortcuts\Main%20Window\Audio%20Mute\Unmute\Context\default=true +Shortcuts\Main%20Window\Audio%20Mute\Unmute\Context=1 +Shortcuts\Main%20Window\Audio%20Mute\Unmute\Repeat\default=true +Shortcuts\Main%20Window\Audio%20Mute\Unmute\Repeat=false +Shortcuts\Main%20Window\Audio%20Volume%20Down\KeySeq\default=false +Shortcuts\Main%20Window\Audio%20Volume%20Down\KeySeq=- +Shortcuts\Main%20Window\Audio%20Volume%20Down\Controller_KeySeq\default=false +Shortcuts\Main%20Window\Audio%20Volume%20Down\Controller_KeySeq=Home+Dpad_Down +Shortcuts\Main%20Window\Audio%20Volume%20Down\Context\default=true +Shortcuts\Main%20Window\Audio%20Volume%20Down\Context=2 +Shortcuts\Main%20Window\Audio%20Volume%20Down\Repeat\default=true +Shortcuts\Main%20Window\Audio%20Volume%20Down\Repeat=true +Shortcuts\Main%20Window\Audio%20Volume%20Up\KeySeq\default=false +Shortcuts\Main%20Window\Audio%20Volume%20Up\KeySeq="=" +Shortcuts\Main%20Window\Audio%20Volume%20Up\Controller_KeySeq\default=false +Shortcuts\Main%20Window\Audio%20Volume%20Up\Controller_KeySeq=Home+Dpad_Up +Shortcuts\Main%20Window\Audio%20Volume%20Up\Context\default=true +Shortcuts\Main%20Window\Audio%20Volume%20Up\Context=2 +Shortcuts\Main%20Window\Audio%20Volume%20Up\Repeat\default=true +Shortcuts\Main%20Window\Audio%20Volume%20Up\Repeat=true +Shortcuts\Main%20Window\Capture%20Screenshot\KeySeq\default=false +Shortcuts\Main%20Window\Capture%20Screenshot\KeySeq=Ctrl+P +Shortcuts\Main%20Window\Capture%20Screenshot\Controller_KeySeq\default=false +Shortcuts\Main%20Window\Capture%20Screenshot\Controller_KeySeq=Screenshot +Shortcuts\Main%20Window\Capture%20Screenshot\Context\default=true +Shortcuts\Main%20Window\Capture%20Screenshot\Context=3 +Shortcuts\Main%20Window\Capture%20Screenshot\Repeat\default=true +Shortcuts\Main%20Window\Capture%20Screenshot\Repeat=false +Shortcuts\Main%20Window\Change%20Adapting%20Filter\KeySeq\default=false +Shortcuts\Main%20Window\Change%20Adapting%20Filter\KeySeq=F8 +Shortcuts\Main%20Window\Change%20Adapting%20Filter\Controller_KeySeq\default=false +Shortcuts\Main%20Window\Change%20Adapting%20Filter\Controller_KeySeq=Home+L +Shortcuts\Main%20Window\Change%20Adapting%20Filter\Context\default=true +Shortcuts\Main%20Window\Change%20Adapting%20Filter\Context=2 +Shortcuts\Main%20Window\Change%20Adapting%20Filter\Repeat\default=true +Shortcuts\Main%20Window\Change%20Adapting%20Filter\Repeat=false +Shortcuts\Main%20Window\Change%20Docked%20Mode\KeySeq\default=false +Shortcuts\Main%20Window\Change%20Docked%20Mode\KeySeq=F10 +Shortcuts\Main%20Window\Change%20Docked%20Mode\Controller_KeySeq\default=false +Shortcuts\Main%20Window\Change%20Docked%20Mode\Controller_KeySeq=Home+X +Shortcuts\Main%20Window\Change%20Docked%20Mode\Context\default=true +Shortcuts\Main%20Window\Change%20Docked%20Mode\Context=2 +Shortcuts\Main%20Window\Change%20Docked%20Mode\Repeat\default=true +Shortcuts\Main%20Window\Change%20Docked%20Mode\Repeat=false +Shortcuts\Main%20Window\Change%20GPU%20Accuracy\KeySeq\default=false +Shortcuts\Main%20Window\Change%20GPU%20Accuracy\KeySeq=F9 +Shortcuts\Main%20Window\Change%20GPU%20Accuracy\Controller_KeySeq\default=false +Shortcuts\Main%20Window\Change%20GPU%20Accuracy\Controller_KeySeq=Home+R +Shortcuts\Main%20Window\Change%20GPU%20Accuracy\Context\default=true +Shortcuts\Main%20Window\Change%20GPU%20Accuracy\Context=2 +Shortcuts\Main%20Window\Change%20GPU%20Accuracy\Repeat\default=true +Shortcuts\Main%20Window\Change%20GPU%20Accuracy\Repeat=false +Shortcuts\Main%20Window\Continue\Pause%20Emulation\KeySeq\default=false +Shortcuts\Main%20Window\Continue\Pause%20Emulation\KeySeq=F4 +Shortcuts\Main%20Window\Continue\Pause%20Emulation\Controller_KeySeq\default=false +Shortcuts\Main%20Window\Continue\Pause%20Emulation\Controller_KeySeq=Home+Plus +Shortcuts\Main%20Window\Continue\Pause%20Emulation\Context\default=true +Shortcuts\Main%20Window\Continue\Pause%20Emulation\Context=1 +Shortcuts\Main%20Window\Continue\Pause%20Emulation\Repeat\default=true +Shortcuts\Main%20Window\Continue\Pause%20Emulation\Repeat=false +Shortcuts\Main%20Window\Exit%20Fullscreen\KeySeq\default=false +Shortcuts\Main%20Window\Exit%20Fullscreen\KeySeq=Esc +Shortcuts\Main%20Window\Exit%20Fullscreen\Controller_KeySeq\default=true +Shortcuts\Main%20Window\Exit%20Fullscreen\Controller_KeySeq= +Shortcuts\Main%20Window\Exit%20Fullscreen\Context\default=true +Shortcuts\Main%20Window\Exit%20Fullscreen\Context=1 +Shortcuts\Main%20Window\Exit%20Fullscreen\Repeat\default=true +Shortcuts\Main%20Window\Exit%20Fullscreen\Repeat=false +Shortcuts\Main%20Window\Exit%20yuzu\KeySeq\default=false +Shortcuts\Main%20Window\Exit%20yuzu\KeySeq=Ctrl+Q +Shortcuts\Main%20Window\Exit%20yuzu\Controller_KeySeq\default=false +Shortcuts\Main%20Window\Exit%20yuzu\Controller_KeySeq=Home+Minus +Shortcuts\Main%20Window\Exit%20yuzu\Context\default=true +Shortcuts\Main%20Window\Exit%20yuzu\Context=1 +Shortcuts\Main%20Window\Exit%20yuzu\Repeat\default=true +Shortcuts\Main%20Window\Exit%20yuzu\Repeat=false +Shortcuts\Main%20Window\Fullscreen\KeySeq\default=false +Shortcuts\Main%20Window\Fullscreen\KeySeq=F11 +Shortcuts\Main%20Window\Fullscreen\Controller_KeySeq\default=false +Shortcuts\Main%20Window\Fullscreen\Controller_KeySeq=Home+B +Shortcuts\Main%20Window\Fullscreen\Context\default=true +Shortcuts\Main%20Window\Fullscreen\Context=1 +Shortcuts\Main%20Window\Fullscreen\Repeat\default=true +Shortcuts\Main%20Window\Fullscreen\Repeat=false +Shortcuts\Main%20Window\Load%20File\KeySeq\default=false +Shortcuts\Main%20Window\Load%20File\KeySeq=Ctrl+O +Shortcuts\Main%20Window\Load%20File\Controller_KeySeq\default=true +Shortcuts\Main%20Window\Load%20File\Controller_KeySeq= +Shortcuts\Main%20Window\Load%20File\Context\default=true +Shortcuts\Main%20Window\Load%20File\Context=3 +Shortcuts\Main%20Window\Load%20File\Repeat\default=true +Shortcuts\Main%20Window\Load%20File\Repeat=false +Shortcuts\Main%20Window\Load\Remove%20Amiibo\KeySeq\default=false +Shortcuts\Main%20Window\Load\Remove%20Amiibo\KeySeq=F2 +Shortcuts\Main%20Window\Load\Remove%20Amiibo\Controller_KeySeq\default=false +Shortcuts\Main%20Window\Load\Remove%20Amiibo\Controller_KeySeq=Home+A +Shortcuts\Main%20Window\Load\Remove%20Amiibo\Context\default=true +Shortcuts\Main%20Window\Load\Remove%20Amiibo\Context=3 +Shortcuts\Main%20Window\Load\Remove%20Amiibo\Repeat\default=true +Shortcuts\Main%20Window\Load\Remove%20Amiibo\Repeat=false +Shortcuts\Main%20Window\Multiplayer%20Browse%20Public%20Game%20Lobby\KeySeq\default=false +Shortcuts\Main%20Window\Multiplayer%20Browse%20Public%20Game%20Lobby\KeySeq=Ctrl+B +Shortcuts\Main%20Window\Multiplayer%20Browse%20Public%20Game%20Lobby\Controller_KeySeq\default=true +Shortcuts\Main%20Window\Multiplayer%20Browse%20Public%20Game%20Lobby\Controller_KeySeq= +Shortcuts\Main%20Window\Multiplayer%20Browse%20Public%20Game%20Lobby\Context\default=true +Shortcuts\Main%20Window\Multiplayer%20Browse%20Public%20Game%20Lobby\Context=2 +Shortcuts\Main%20Window\Multiplayer%20Browse%20Public%20Game%20Lobby\Repeat\default=true +Shortcuts\Main%20Window\Multiplayer%20Browse%20Public%20Game%20Lobby\Repeat=false +Shortcuts\Main%20Window\Multiplayer%20Create%20Room\KeySeq\default=false +Shortcuts\Main%20Window\Multiplayer%20Create%20Room\KeySeq=Ctrl+N +Shortcuts\Main%20Window\Multiplayer%20Create%20Room\Controller_KeySeq\default=true +Shortcuts\Main%20Window\Multiplayer%20Create%20Room\Controller_KeySeq= +Shortcuts\Main%20Window\Multiplayer%20Create%20Room\Context\default=true +Shortcuts\Main%20Window\Multiplayer%20Create%20Room\Context=2 +Shortcuts\Main%20Window\Multiplayer%20Create%20Room\Repeat\default=true +Shortcuts\Main%20Window\Multiplayer%20Create%20Room\Repeat=false +Shortcuts\Main%20Window\Multiplayer%20Direct%20Connect%20to%20Room\KeySeq\default=false +Shortcuts\Main%20Window\Multiplayer%20Direct%20Connect%20to%20Room\KeySeq=Ctrl+C +Shortcuts\Main%20Window\Multiplayer%20Direct%20Connect%20to%20Room\Controller_KeySeq\default=true +Shortcuts\Main%20Window\Multiplayer%20Direct%20Connect%20to%20Room\Controller_KeySeq= +Shortcuts\Main%20Window\Multiplayer%20Direct%20Connect%20to%20Room\Context\default=true +Shortcuts\Main%20Window\Multiplayer%20Direct%20Connect%20to%20Room\Context=2 +Shortcuts\Main%20Window\Multiplayer%20Direct%20Connect%20to%20Room\Repeat\default=true +Shortcuts\Main%20Window\Multiplayer%20Direct%20Connect%20to%20Room\Repeat=false +Shortcuts\Main%20Window\Multiplayer%20Leave%20Room\KeySeq\default=false +Shortcuts\Main%20Window\Multiplayer%20Leave%20Room\KeySeq=Ctrl+L +Shortcuts\Main%20Window\Multiplayer%20Leave%20Room\Controller_KeySeq\default=true +Shortcuts\Main%20Window\Multiplayer%20Leave%20Room\Controller_KeySeq= +Shortcuts\Main%20Window\Multiplayer%20Leave%20Room\Context\default=true +Shortcuts\Main%20Window\Multiplayer%20Leave%20Room\Context=2 +Shortcuts\Main%20Window\Multiplayer%20Leave%20Room\Repeat\default=true +Shortcuts\Main%20Window\Multiplayer%20Leave%20Room\Repeat=false +Shortcuts\Main%20Window\Multiplayer%20Show%20Current%20Room\KeySeq\default=false +Shortcuts\Main%20Window\Multiplayer%20Show%20Current%20Room\KeySeq=Ctrl+R +Shortcuts\Main%20Window\Multiplayer%20Show%20Current%20Room\Controller_KeySeq\default=true +Shortcuts\Main%20Window\Multiplayer%20Show%20Current%20Room\Controller_KeySeq= +Shortcuts\Main%20Window\Multiplayer%20Show%20Current%20Room\Context\default=true +Shortcuts\Main%20Window\Multiplayer%20Show%20Current%20Room\Context=2 +Shortcuts\Main%20Window\Multiplayer%20Show%20Current%20Room\Repeat\default=true +Shortcuts\Main%20Window\Multiplayer%20Show%20Current%20Room\Repeat=false +Shortcuts\Main%20Window\Restart%20Emulation\KeySeq\default=false +Shortcuts\Main%20Window\Restart%20Emulation\KeySeq=F6 +Shortcuts\Main%20Window\Restart%20Emulation\Controller_KeySeq\default=false +Shortcuts\Main%20Window\Restart%20Emulation\Controller_KeySeq=R+Plus+Minus +Shortcuts\Main%20Window\Restart%20Emulation\Context\default=true +Shortcuts\Main%20Window\Restart%20Emulation\Context=1 +Shortcuts\Main%20Window\Restart%20Emulation\Repeat\default=true +Shortcuts\Main%20Window\Restart%20Emulation\Repeat=false +Shortcuts\Main%20Window\Stop%20Emulation\KeySeq\default=false +Shortcuts\Main%20Window\Stop%20Emulation\KeySeq=F5 +Shortcuts\Main%20Window\Stop%20Emulation\Controller_KeySeq\default=false +Shortcuts\Main%20Window\Stop%20Emulation\Controller_KeySeq=L+Plus+Minus +Shortcuts\Main%20Window\Stop%20Emulation\Context\default=true +Shortcuts\Main%20Window\Stop%20Emulation\Context=1 +Shortcuts\Main%20Window\Stop%20Emulation\Repeat\default=true +Shortcuts\Main%20Window\Stop%20Emulation\Repeat=false +Shortcuts\Main%20Window\TAS%20Record\KeySeq\default=false +Shortcuts\Main%20Window\TAS%20Record\KeySeq=Ctrl+F7 +Shortcuts\Main%20Window\TAS%20Record\Controller_KeySeq\default=true +Shortcuts\Main%20Window\TAS%20Record\Controller_KeySeq= +Shortcuts\Main%20Window\TAS%20Record\Context\default=true +Shortcuts\Main%20Window\TAS%20Record\Context=2 +Shortcuts\Main%20Window\TAS%20Record\Repeat\default=true +Shortcuts\Main%20Window\TAS%20Record\Repeat=false +Shortcuts\Main%20Window\TAS%20Reset\KeySeq\default=false +Shortcuts\Main%20Window\TAS%20Reset\KeySeq=Ctrl+F6 +Shortcuts\Main%20Window\TAS%20Reset\Controller_KeySeq\default=true +Shortcuts\Main%20Window\TAS%20Reset\Controller_KeySeq= +Shortcuts\Main%20Window\TAS%20Reset\Context\default=true +Shortcuts\Main%20Window\TAS%20Reset\Context=2 +Shortcuts\Main%20Window\TAS%20Reset\Repeat\default=true +Shortcuts\Main%20Window\TAS%20Reset\Repeat=false +Shortcuts\Main%20Window\TAS%20Start\Stop\KeySeq\default=false +Shortcuts\Main%20Window\TAS%20Start\Stop\KeySeq=Ctrl+F5 +Shortcuts\Main%20Window\TAS%20Start\Stop\Controller_KeySeq\default=true +Shortcuts\Main%20Window\TAS%20Start\Stop\Controller_KeySeq= +Shortcuts\Main%20Window\TAS%20Start\Stop\Context\default=true +Shortcuts\Main%20Window\TAS%20Start\Stop\Context=2 +Shortcuts\Main%20Window\TAS%20Start\Stop\Repeat\default=true +Shortcuts\Main%20Window\TAS%20Start\Stop\Repeat=false +Shortcuts\Main%20Window\Toggle%20Filter%20Bar\KeySeq\default=false +Shortcuts\Main%20Window\Toggle%20Filter%20Bar\KeySeq=Ctrl+F +Shortcuts\Main%20Window\Toggle%20Filter%20Bar\Controller_KeySeq\default=true +Shortcuts\Main%20Window\Toggle%20Filter%20Bar\Controller_KeySeq= +Shortcuts\Main%20Window\Toggle%20Filter%20Bar\Context\default=true +Shortcuts\Main%20Window\Toggle%20Filter%20Bar\Context=1 +Shortcuts\Main%20Window\Toggle%20Filter%20Bar\Repeat\default=true +Shortcuts\Main%20Window\Toggle%20Filter%20Bar\Repeat=false +Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\KeySeq\default=false +Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\KeySeq=Ctrl+U +Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\Controller_KeySeq\default=false +Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\Controller_KeySeq=Home+Y +Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\Context\default=true +Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\Context=2 +Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\Repeat\default=true +Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\Repeat=false +Shortcuts\Main%20Window\Toggle%20Mouse%20Panning\KeySeq\default=false +Shortcuts\Main%20Window\Toggle%20Mouse%20Panning\KeySeq=Ctrl+F9 +Shortcuts\Main%20Window\Toggle%20Mouse%20Panning\Controller_KeySeq\default=true +Shortcuts\Main%20Window\Toggle%20Mouse%20Panning\Controller_KeySeq= +Shortcuts\Main%20Window\Toggle%20Mouse%20Panning\Context\default=true +Shortcuts\Main%20Window\Toggle%20Mouse%20Panning\Context=2 +Shortcuts\Main%20Window\Toggle%20Mouse%20Panning\Repeat\default=true +Shortcuts\Main%20Window\Toggle%20Mouse%20Panning\Repeat=false +Shortcuts\Main%20Window\Toggle%20Renderdoc%20Capture\KeySeq\default=true +Shortcuts\Main%20Window\Toggle%20Renderdoc%20Capture\KeySeq= +Shortcuts\Main%20Window\Toggle%20Renderdoc%20Capture\Controller_KeySeq\default=true +Shortcuts\Main%20Window\Toggle%20Renderdoc%20Capture\Controller_KeySeq= +Shortcuts\Main%20Window\Toggle%20Renderdoc%20Capture\Context\default=false +Shortcuts\Main%20Window\Toggle%20Renderdoc%20Capture\Context=1 +Shortcuts\Main%20Window\Toggle%20Renderdoc%20Capture\Repeat\default=true +Shortcuts\Main%20Window\Toggle%20Renderdoc%20Capture\Repeat=false +Shortcuts\Main%20Window\Toggle%20Status%20Bar\KeySeq\default=false +Shortcuts\Main%20Window\Toggle%20Status%20Bar\KeySeq=Ctrl+S +Shortcuts\Main%20Window\Toggle%20Status%20Bar\Controller_KeySeq\default=true +Shortcuts\Main%20Window\Toggle%20Status%20Bar\Controller_KeySeq= +Shortcuts\Main%20Window\Toggle%20Status%20Bar\Context\default=true +Shortcuts\Main%20Window\Toggle%20Status%20Bar\Context=1 +Shortcuts\Main%20Window\Toggle%20Status%20Bar\Repeat\default=true +Shortcuts\Main%20Window\Toggle%20Status%20Bar\Repeat=false +Multiplayer\nickname\default=true +Multiplayer\nickname= +Multiplayer\filter_text\default=true +Multiplayer\filter_text= +Multiplayer\filter_games_owned\default=true +Multiplayer\filter_games_owned=false +Multiplayer\filter_games_hide_empty\default=true +Multiplayer\filter_games_hide_empty=false +Multiplayer\filter_games_hide_full\default=true +Multiplayer\filter_games_hide_full=false +Multiplayer\ip\default=true +Multiplayer\ip= +Multiplayer\port\default=true +Multiplayer\port=24872 +Multiplayer\room_nickname\default=true +Multiplayer\room_nickname= +Multiplayer\room_name\default=true +Multiplayer\room_name= +Multiplayer\max_player\default=true +Multiplayer\max_player=8 +Multiplayer\room_port\default=true +Multiplayer\room_port=24872 +Multiplayer\host_type\default=true +Multiplayer\host_type=0 +Multiplayer\game_id\default=true +Multiplayer\game_id=0 +Multiplayer\room_description\default=true +Multiplayer\room_description= diff --git a/nix/steam_deck/configuration/util/copy_files/default.nix b/nix/steam_deck/configuration/util/copy_files/default.nix new file mode 100644 index 0000000..6940129 --- /dev/null +++ b/nix/steam_deck/configuration/util/copy_files/default.nix @@ -0,0 +1,101 @@ +{ + config, + lib, + pkgs, + home-manager, + ... +}: + +let + inherit (lib) + filter + attrNames + ; +in +{ + imports = [ ]; + + options.me = { + copy.file = lib.mkOption { + type = lib.types.attrsOf ( + lib.types.submodule ( + { name, config, ... }: + { + options = { + enable = lib.mkOption { + type = lib.types.bool; + default = true; + defaultText = "me.copy.file.‹name›.enable"; + example = false; + description = "Whether we want to copy this file."; + }; + mode = lib.mkOption { + type = lib.types.str; + default = "0444"; + defaultText = "me.copy.file.‹name›.mode"; + example = "0750"; + description = "The read, write, execute permission flags."; + }; + source = lib.mkOption { + type = lib.types.path; + defaultText = "me.copy.file.‹name›.source"; + example = ./files/foo.txt; + description = "The source file to copy into the destination."; + }; + target = lib.mkOption { + type = lib.types.str; + defaultText = "me.copy.file.‹name›.target"; + example = ".local/share/foo/bar.txt"; + description = "The path where the file should be written."; + }; + }; + + config = { + target = lib.mkDefault name; + }; + } + ) + ); + defaultText = "me.copy.file.‹name›"; + default = { }; + example = lib.literalExpression '' + { + ".config/foo/bar.txt" = { + source = ./files/bar.txt + }; + } + ''; + }; + }; + + config = lib.mkMerge [ + (lib.mkIf (config.me.copy.file != { }) ( + let + cfg = config.me.copy.file; + copy_file_targets = filter (target: config.me.copy.file."${target}".enable) (attrNames cfg); + in + { + home.activation = { + copyFiles = home-manager.lib.hm.dag.entryAfter [ "writeBoundary" ] ( + let + copy_commands = builtins.map ( + target: + let + target_config = config.me.copy.file."${target}"; + source = lib.strings.escapeShellArg "${target_config.source}"; + destination = lib.strings.escapeShellArg target; + mode = lib.strings.escapeShellArg "${target_config.mode}"; + in + # $DRY_RUN_CMD ${pkgs.toyboy}/bin/install $VERBOSE_ARG -D -m ${mode} ${source} ${destination} + '' + $DRY_RUN_CMD install $VERBOSE_ARG -D --compare -m ${mode} ${source} ${destination} + '' + ) copy_file_targets; + in + (lib.strings.concatStringsSep "\n" copy_commands) + ); + }; + } + )) + ]; +}