GoSmartKeyboard Environment Variables

1. Always use xdotool

Some users may always want xdotool, see the Streaming.html file for more information

always use xdotool environment variable
var alwaysUseXdotool = false
alwaysUseXdotoolEnv, alwaysUseXdotoolExists := os.LookupEnv("KEYBOARD_ALWAYS_USE_XDOTOOL")
if alwaysUseXdotoolExists {
    if alwaysUseXdotoolEnv == "true" || alwaysUseXdotoolEnv == "1" {
        alwaysUseXdotool = true
    }
}

Used by 1

2. Authentication token file

The authentication token configuration file is set by the environment variable KEYBOARD_AUTH_TOKEN_FILE, but defaults to XDG_CONFIG_HOME/smartkeyboard/auth-token.

get authTokenFile from environment
authTokenFile, authTokenFileIsSet := os.LookupEnv("KEYBOARD_AUTH_TOKEN_FILE")

Used by 1

3. Authentication token input (for client)

get authTokenInput from environment
authTokenInput, authTokenInputExists := os.LookupEnv("KEYBOARD_AUTH")

Used by 1

4. Client fifo

get client fifo input file from environment
clientFifoInputFile, clientFifoInputFileEnvExists := os.LookupEnv("KEYBOARD_FIFO")

Used by 1 2

5. HTTP Bind Settings

GoSmartKeyboard supports both standard TCP sockets and unix sockets for the HTTP server.

First, we check for a unix socket path.

One should prefer a unix socket if their reverse proxy supports it and is on the same machine.

unixSocketPath
unixSocketPath, unixSocketPathExists := os.LookupEnv("KEYBOARD_UNIX_SOCKET_PATH")

Used by 1

If the unix socket path is set, we use it. Otherwise, we use the TCP socket.

The TCP socket is configured by the following environment variables:

TCPBindAddress
tcpBindAddress, tcpBindAddressExists := os.LookupEnv("KEYBOARD_TCP_BIND_ADDRESS")

Used by 1

TCPBindPort
tcpBindPort, tcpBindPortExists := os.LookupEnv("KEYBOARD_TCP_BIND_PORT")

Used by 1