Skip to content

Command-Line Options Reference

Complete reference for all Movian command-line options and debug flags.

Overview

Movian supports a comprehensive set of command-line options for controlling application behavior, debugging, and development. These options are parsed in src/main.c during application startup.

Basic Usage

movian [options] [<url>]

Where <url> is any supported URL type (e.g., file:///path/to/media, http://..., plugin URLs).

General Options

Help and Version

-h, --help

Display help text with all available options and exit.

movian --help

Output: Shows version, copyright, and complete list of command-line options.

Debug and Logging

-d

Enable debug output (sets trace level to TRACE_DEBUG).

movian -d

Effect: - Enables verbose debug logging - Shows detailed trace messages from all subsystems - Useful for troubleshooting and development

Source: gconf.trace_level = TRACE_DEBUG

--libav-log

Enable libav (FFmpeg) log messages.

movian --libav-log

Effect: - Shows FFmpeg/libav internal logging - Useful for debugging media playback issues - Shows codec, format, and stream information

Source: gconf.libavlog = 1

-L <ip:host>

Send log messages to remote host.

movian -L 192.168.1.100:9000

Effect: Redirects log output to remote syslog server or log collector.

--syslog

Send log messages to system syslog.

movian --syslog

Effect: - Integrates with system logging (syslog on Linux/macOS) - Useful for production deployments - Logs appear in /var/log/syslog or system journal

Source: gconf.trace_to_syslog = 1

UI Options

--no-ui

Start without user interface (headless mode).

movian --no-ui

Effect: - Runs Movian without GUI - Useful for server/backend mode - Still runs plugins and services

Source: gconf.noui = 1

--fullscreen

Start in fullscreen mode.

movian --fullscreen

Effect: Launches application in fullscreen instead of windowed mode.

Source: gconf.fullscreen = 1

--ui <ui>

Use specified user interface.

movian --ui glw

Options: glw (OpenGL Widget system) or platform-specific UIs.

Source: gconf.ui = argv[1]

--skin <skin>

Select skin for GLW UI.

movian --skin flat

Options: - flat - Modern flat design (default) - old - Legacy skin - Custom skin names from glwskins/ directory

Source: gconf.skin = argv[1]

-v <view>

Use specific view for initial URL.

movian -v video file:///path/to/movie.mp4

Effect: Opens URL with specified view type instead of auto-detection.

Source: gconf.initial_view = argv[1]

Path Configuration

--cache <path>

Set path for cache directory.

movian --cache /tmp/movian-cache

Effect: - Overrides default cache location - Used for thumbnails, temporary files, blob cache - Directory is created if it doesn't exist

Default: Platform-specific (e.g., ~/.cache/movian on Linux)

Source: gconf.cache_path = argv[1]

--persistent <path>

Set path for persistent storage.

movian --persistent ~/.config/movian

Effect: - Overrides default settings/data location - Stores settings, databases, keyring - Directory is created if it doesn't exist

Default: Platform-specific (e.g., ~/.config/movian on Linux)

Source: gconf.persistent_path = argv[1]

Network Options

--proxy <host:port>

Use SOCKS 4/5 proxy for HTTP requests.

movian --proxy 127.0.0.1:1080

Effect: Routes all HTTP traffic through specified SOCKS proxy.

Default Port: 1080 (if not specified)

Source:

gconf.proxy_host = host;
gconf.proxy_port = port;

--disable-upnp

Disable UPNP/DLNA stack.

movian --disable-upnp

Effect: - Disables UPnP device discovery - Disables DLNA media server - Reduces network traffic

Source: gconf.disable_upnp = 1

Availability: Only when compiled with ENABLE_HTTPSERVER

--disable-sd

Disable service discovery (mDNS, Avahi, etc).

movian --disable-sd

Effect: - Disables mDNS/Bonjour service discovery - Disables automatic network service detection - Reduces network traffic

Source: gconf.disable_sd = 1

Plugin Development

-p <path>

Load plugin from directory (development mode).

movian -p /path/to/my-plugin

Effect: - Loads plugin directly from filesystem - Bypasses plugin repository - Can be specified multiple times for multiple plugins - Intended for plugin development and testing

Source: strvec_addp(&gconf.devplugins, argv[1])

--plugin-repo <url>

Use custom plugin repository URL.

movian --plugin-repo https://my-repo.com/plugins

Effect: - Overrides default plugin repository - Useful for testing custom plugin repositories - Intended for plugin development

Source: gconf.plugin_repo = argv[1]

--disable-upgrades

Disable automatic upgrades (plugins and app).

movian --disable-upgrades

Effect: - Disables plugin auto-updates - Disables application auto-updates - Useful for development and testing

Source: gconf.disable_upgrades = 1

--bypass-ecmascript-acl

Bypass ECMAScript security ACL (Access Control List).

movian --bypass-ecmascript-acl

Effect: - Disables JavaScript security restrictions - Allows plugins full system access - DANGEROUS: Only use for trusted plugin development

Source: gconf.bypass_ecmascript_acl = 1

--ecmascript <path>

Load JavaScript file at startup.

movian --ecmascript /path/to/script.js

Effect: Executes JavaScript file in Movian's ECMAScript environment.

Source: gconf.load_ecmascript = argv[1]

Advanced Debug Options

--debug-glw

Enable GLW (OpenGL Widget) debug output.

movian --debug-glw

Effect: - Shows detailed GLW rendering information - Logs widget tree operations - Displays layout calculations - Useful for UI development and debugging

Source: gconf.debug_glw = 1

--pointer-is-touch

Convert pointer events to touch events.

movian --pointer-is-touch

Effect: - Treats mouse as touch input - Useful for testing touch interfaces with mouse - Enables touch-specific UI behaviors

Source: gconf.convert_pointer_to_touch = 1

--show-usage-events

Display usage tracking events.

movian --show-usage-events

Effect: - Shows analytics/usage events in logs - Useful for debugging usage tracking - Shows what data would be sent to analytics

Source: gconf.show_usage_events = 1

Input Options

--stdin

Listen on stdin for events.

echo "quit" | movian --stdin

Effect: - Enables command input from stdin - Useful for automation and scripting - Can send events to running instance

Source: gconf.listen_on_stdin = 1

Availability: Only when compiled with ENABLE_STDIN

System Control Options

--with-standby

Enable system standby capability.

movian --with-standby

Effect: Enables "Suspend" option in UI to put system in standby mode.

Source: gconf.can_standby = 1

--with-poweroff

Enable system power-off capability.

movian --with-poweroff

Effect: Enables "Power Off" option in UI to shut down system.

Source: gconf.can_poweroff = 1

--with-logout

Enable logout capability.

movian --with-logout

Effect: Enables "Logout" option in UI (for multi-user systems).

Source: gconf.can_logout = 1

--with-restart

Enable system restart capability.

movian --with-restart

Effect: Enables "Restart" option in UI to reboot system.

Source: gconf.can_restart = 1

--without-exit

Disable exit/quit capability.

movian --without-exit

Effect: - Removes "Exit" option from UI - Prevents user from closing application - Useful for kiosk mode

Source: gconf.can_not_exit = 1

--with-openshell

Enable shell opening capability.

movian --with-openshell

Effect: Enables option to open system shell from UI.

Source: gconf.can_open_shell = 1

Internal/Platform-Specific Options

--showtime-shell-fd <fd>

File descriptor for shell communication (internal use).

Source: gconf.shell_fd = atoi(argv[1])

Note: Used internally for IPC, not for general use.

--upgrade-path <path>

Set path for application upgrades (internal use).

Source: gconf.upgrade_path = argv[1]

--vmir-bitcode <path>

Load VMIR bitcode file (experimental).

Source: gconf.load_np = argv[1]

Note: Experimental feature for bytecode execution.

-psn (macOS only)

Process Serial Number argument (automatically added by macOS).

Effect: Ignored by Movian, handled by macOS launcher.

Configuration File

Global configuration structure is defined in src/main.h:

typedef struct gconf {
  int trace_level;              // Logging level
  int libavlog;                 // FFmpeg logging
  int debug_glw;                // GLW debug mode
  int noui;                     // Headless mode
  int fullscreen;               // Fullscreen mode
  int disable_upnp;             // Disable UPnP
  int disable_sd;               // Disable service discovery
  int disable_upgrades;         // Disable auto-updates
  int bypass_ecmascript_acl;    // Bypass JS security
  int can_standby;              // System standby enabled
  int can_poweroff;             // System poweroff enabled
  int can_logout;               // Logout enabled
  int can_restart;              // System restart enabled
  int can_not_exit;             // Exit disabled
  int can_open_shell;           // Shell access enabled
  char *cache_path;             // Cache directory
  char *persistent_path;        // Settings directory
  char *ui;                     // UI type
  char *skin;                   // Skin name
  char *initial_url;            // Startup URL
  char *initial_view;           // Startup view
  char proxy_host[256];         // Proxy hostname
  int proxy_port;               // Proxy port
  strvec_t devplugins;          // Development plugins
  char *plugin_repo;            // Plugin repository URL
  // ... more fields
} gconf_t;

extern gconf_t gconf;

Common Usage Examples

Development Mode

# Full debug mode with plugin development
movian -d --debug-glw --libav-log -p ~/my-plugin

Kiosk Mode

# Fullscreen, no exit, with standby
movian --fullscreen --without-exit --with-standby

Headless Server

# No UI, with logging
movian --no-ui --syslog --disable-sd

Testing Custom Skin

# Load custom skin with debug
movian -d --skin myskin --debug-glw

Network Debugging

# With proxy and network debug
movian -d --proxy 127.0.0.1:8080 --libav-log

Environment Variables

While not command-line options, these environment variables affect Movian:

  • HOME - User home directory (affects default paths)
  • XDG_CONFIG_HOME - Config directory (Linux)
  • XDG_CACHE_HOME - Cache directory (Linux)
  • LANG / LC_ALL - Locale settings

See Also

Source Code Reference

All command-line parsing is implemented in: - File: movian/src/main.c - Function: parse_opts(int argc, char **argv) - Lines: ~470-700 - Global Config: gconf_t gconf structure in src/main.h

Notes

  1. Order Matters: Options are processed left-to-right
  2. Multiple Plugins: Use -p multiple times to load multiple dev plugins
  3. Security: Be careful with --bypass-ecmascript-acl - only for trusted code
  4. Platform Differences: Some options may not be available on all platforms
  5. Debug Performance: Debug flags (-d, --debug-glw) impact performance