Approvals: 0/1
This is an old revision of the document!
Usage of batocera-settings
Introduction
This command is a bit out of date to use now, most if not all things can be adjusted within Batocera EmulationStation itself or through manually editing the text file. Certain commands may no longer be functional.
batocera-settings is a command-line tool that can work with regular config files to read/write its content instead of manually editing it yourself. The /userdata/system/batocera.conf
contains most of the machine's settings and uses the key[game-if-applicable].setting=value syntax.
When manually editing the batocera.conf
file:
- Use ## This is a text comment for text comments.
- Use #enable.godmode=hallelujah for commenting values.
- Describe content and functions in comments when adding them for future reference.
- It's recommended to add content in their appropriate sections, but not strictly required.
Down here is a small excerpt of an example config file
# ------------ B - Network ------------ # ## Set system hostname system.hostname=BATOCERA ## Activate wifi (0,1) wifi.enabled=0 ## Wifi SSID (string) #wifi.ssid=new ssid ## Wifi KEY (string) ## after rebooting the batocera.linux, the "new key" is replace by a hidden value "enc:xxxxx" ## you can edit the "enc:xxxxx" value to replace by a clear value, it will be updated again at the following reboot ## Escape your special chars (# ; $) with a backslash : $ => \$ #wifi.key=new key
Recommended commands and expressions
batocera-setting is utilized by parameters parsed. These parameters can be used in the long and in the short format. It's a relic of RecalBox times thus its syntax should seem familiar.
As batocera-settings is more modern and supports reading/writing values. For these examples, replace the contents in the square brackets with your intended setting (and don't include the square brackets themselves).
- BATOCERA Basic usage
batocera-settings-get [key]
readkey
frombatocera.conf
batocera-settings-set [key] -v [value]
write valuekey=value
tobatocera.conf
batocera-settings-get -f [file] [key]
read value key fromfile
- BATCOERA Extended usage This flag no longer exists, was it moved or outright deleted?
batocera-settings -e -r [key] -s [system]
iterate keyssystem.key
and if not available useglobal.key
batocera-settings -e -r [key] -s [system] -g [game]
iterate keys like above, but start withsystem[“game”].key
Basic usage: batocera-settings-set -f [CONFIG_FILE] [KEY] [VALUE]
Extended usage: batocera-settings-set -e -g [game] -s [system] -r [key] This flag no longer exists, was it moved or outright deleted?
-f – Specifies the config file to read from. Defaults to /userdata/system/batocera.conf
.
-v – Set value to selected 'key', any alphanumeric value
-e – Activate extended mode, needed for parsing game/system specific keys This flag no longer exists, was it moved or outright deleted?
-g – Filename of the specified game, enclose in double-quotes (“”) to avoid globbing This flag no longer exists, was it moved or outright deleted?
-s – Shortname of specified system This flag no longer exists, was it moved or outright deleted?
This flag no longer exists, was it moved or outright deleted?
If -e
is not set the parameters -g
and -s
are ignored!
Use the errorlevels for scripts!
Always use quotes if you use arguments containing blanks!
Error code handling
Whenever batocera-settings-set
or batocera-settings-get
is called from a script you will receive an exit code number. This will help to identify errors (for debugging you can use the status command for more useful output).
File and Key/Values error | ||
---|---|---|
Error Code | Error code explaination | Troubleshooting |
EC 0 | No Error, value found | You made it! |
EC 1 | General error, e.g. command line error | Check your command line for correct parameters |
EC 2 | File error, e.g. the config file is not available | Check file path and r/w access to it |
EC 10 | Value error, key found but value is empty | Unusual setup but no error at all |
EC 11 | Value error, key found but it is commented out | Activate the key entry by uncomment command |
EC 12 | Key not found | Add the key by manual or check your command line for typos |
Handling in scripts
I present here some short scripts, to show you how to make batocera-settings work in your script. As I'm more confident in shell scripting I give you just some small examples in shell script.
- bash: Obtain value
- bash: Activate UART in
/boot/config.txt
- bash: Set a new key
- python: Obtain a value
USE AT YOUR OWN RISK
1. bash: Obtain a value
- obtain_value.sh
#!/bin/bash #This is an example file how batocera-settings can be utilized #to read a value out from /userdata/system/batocera.conf value="$(batocera-settings -r power.switch.device)" ret=$? if [[ $ret -eq 0 ]]; then echo "Power Switch detected: '$value'" else echo "No Power Switch detected!" fi
2. bash: Activate UART in ''/boot/config.txt''
- activate_uart.sh
#!/bin/bash #This is an example file how batocera-settings can be utilized #to activate UART in /boot/config.txt batocera-settings /boot/config.txt -w enable_uart -v 1 ret=$? if [[ $ret -eq 0 ]]; then echo "UART activated, uncommented enable_uart" elif [[ $ret -eq 2 ]]; then echo "File is write protected!" echo "I make boot-partition writeable" mount -o remount, rw /boot echo "Please restart script" else echo "Key: enable_uart not found" echo "Not a Raspberry System?" fi
3. bash: Set a new key
- activate_uart.sh
#!/bin/bash #This is an example file how batocera-settings can be utilized #to set a new key in /userdata/system/batocera.conf value=$(batocera-settings -w core.PS4.emulator -v SONY4EVER ret=$? if [[ $ret -eq 0 ]]; then echo "PS4 core enabled!" else echo "Annother error occoured!" fi
4. python: Obtain a key
- obtain_value.py
#!/usr/bin/python # -*- coding: utf-8 -*- #This is an example file how batocera-settings can be utilized #to read a value out from /userdata/system/batocera.conf with python import subprocess value = (subprocess.check_output(['batocera-settings', '-r', 'power.switch.device'])) if value: print "Power Switch Detected: ", value else: print "No power switch detected!"
- usage_of_batocera-settings.1629617803.txt.gz
- Last modified: 3 years ago
- by atari