.TH connmanctl 1 07/31/2012 "" "User Commands for Connman CLI"
.SH
NAME
connmanctl \- Connman CLI
.SH
SYNOPSIS
.BR connmanctl " ["
.BR enable " <technology> | "
.BR offlinemode "] ["
.BR disable " <technology> | "
.BR offlinemode "] ["
.BR technologies "] ["
.BR state "] ["
.BR services " [\-\-properties <service>]] ["
.BR scan " <technology>] ["
.BR connect " <service>] ["
.BR config " <service> \-\-<option> ARGS...] ["
.BR help " | \-\-help]"
.PP
.SH
DESCRIPTION
Connmanctl is a Connman command line interface which can be run in two modes:
a plain synchronous command input, and an asynchronous interactive shell.
To run a specific command the user may enter connmanctl <command> [options]
[args], or enter connmanctl; in this case, the program will drop into the
interactive shell.
.PP
Connmantl can handle most simple network connections. It is able to enable/
disable any technology that exists on the system, display a list of
services available, connect to/disconnect from any unsecured networks,
show properties of the system, the technologies, and any individual
service, and configure all of the properties. It is also able to monitor
changes in the properties of the services, technologies, and the system.
.PP
In the interactive shell, all of the same commands can be used. It
provides quicker usage when needing to use connmanctl more extensively.
.SH
COMMANDS AND OPTIONS
.TP
.BR "help | \-\-help | " "(no arguments)"
Shows the abbreviated help menu in the terminal.
.PP
.TP
.BR enable " <technology>"
Enables the given technology type (e.g. ethernet, wifi, 3g, etc.)
Turns power on to the technology, but doesn't connect unless
there is a service with autoconnect set to True.
.PP
.TP
.BR disable " <technology>"
Disables the given technology type. Turns power off to the
technology and disconnects if it is already connected.
.PP
.TP
.B enable offlinemode
Enables offline mode. Disconnects and powers down all
technologies system-wide, however each technology can be powered
back on individually.
.PP
.TP
.B disable offlinemode
Disables offline mode. Technologies are powered back on according
to their individual policies.
.PP
.TP
.B technologies
Shows a list of all technology types existing on the system and
their properties. See the properties section of the Technology
API for explanations of each property.
.PP
.TP
.B state
Shows the system properties. Includes ths online state of the
system, offline mode, and session mode.
.PP
.TP
.BR scan " <technology>"
Scans for new services on the given technology.
.PP
.TP
.B services
Shows a list of all available service names. This includes the
names of wifi networks, the wired ethernet connection, names of
bluetooth devices, etc. These are the names used when a
<service> command is called for. The service name
(e.g. Joes-wifi), the service path (e.g.
wifi_6834534139723_managed_none), or the full service path (e.g.
/net/connman/Service/wifi_5467631...) are all accepted as valid
input. An asterisk in front of the service indicates that the
service is favorited, and a "C" indicates a service that is
already connected.
.PP
.TP
.BR "services \-\-properties" " <service>"
Shows a list of all properties for that service. See the
properties section of the Service API for explanations of each
property.
.PP
.TP
.BR connect " <service>"
Connects to the given service if it is unsecured.
.PP
.TP
.BR disconnect " <service>"
Disconnects from the given service.
.PP
.TP
.BR config " <service> " \-\-<option>
Configures a writable property of the given service to the
value(s) entered after --<option>.
.PP
.TP
.BR monitor " [\-\-<option>]"
Listens for and displays DBus signals sent by Connman. The option indicates
which signals you want to subscribe to. If no option is entered, it displays
all signals from all interfaces.
.PP
.SS
Config Options:
.PP
.TP
.B \-\-autoconnect=y/n
Sets the autoconnect property of the service.
.PP
.TP
.B \-\-ipv4
Configures the IPv4 settings for the service. Enter the settings
in the order "Method", "Address", "Netmask", then "Gateway"
after the argument. See the properties section of the Service
API for more information on these settings and the values
accepted for them. It also displays a list of changes to both the
IPv4 settings, and incidental changes to other values related to
it.
.PP
.TP
.B \-\-ipv6
Configures the IPv6 settings for the service. Enter the settings
in the order "Method", "Address", "PrefixLength", "Gateway", then
"Privacy". See the properties section of the Service API for more
information on these settings and the values accepted for them.
It also displays a list of entered changes to the IPv6 settings,
and incidental changes to other values related to it.
.PP
.TP
.B \-\-nameservers
Adds to the list of manually configured domain name servers.
Enter the name servers after the argument separated by spaces.
.PP
.TP
.B \-\-timeservers
Adds to the list of manually configured time servers. Enter the
time servers after the argument separated by spaces.
.PP
.TP
.B \-\-domains
Adds to the list of manually configured search domains. Enter
the domains after the argument, separated by spaces.
.PP
.TP
.B \-\-proxy
Configures the IPv6 settings for the service. Enter the settings in the
order "Method", "URL". If the Method is set to "direct", no other arguments
are taken. If the Method is set to "auto", the URL is optional. To set the
Servers and Excludes manually, enter "manual" followed by "servers" with a
list of servers separated by spaces. Then, optionally, the word "excludes"
followed by a list of excludes separated by spaces. e.g. "./connmanctl config
joes-wifi \-\-proxy manual servers serv1 serv2 serv3 excludes excl1 excl2"
.PP
.SS
Monitor Options:
.PP
.TP
.B \-\-services
Listens for and displays the PropertyChanged signal from the Service interface.
Also displays the service name (e.g. Joes-wifi) that the property is part of.
More information, including a list of possible properties can be found in the
Service API.
.PP
.TP
.B \-\-tech
Listens for and displays the PropertyChanged signal from the Technology
interface. More information, including a list of possible properties can be
found in the Technology API.
.PP
.TP
.B \-\-manager
Listens for and displays the PropertyChanged, ServicesChanged, TechnologyAdded,
and TechnologyRemoved signals from the Manager interface. More information on
these signals and a list of possible properties can be found in the Manager API.
.PP
