Skip to content
Thibault Guittet edited this page Aug 22, 2014 · 8 revisions

Welcome to the connman-json-client wiki!

This project aim to provide a straight forward interface in ncurses to control connmand. See connman's home page: https://connman.net

"json" in the project name refers to the underlying data structure: json objects with libjson.

Ncurses UI sneak peek

Main screen, technologies available:

 Connman ncurses UI                       State: online      OfflineMode: false
┌──────────────────────────────────────────────────────────────────────────────┐
│ Technologies:                                                                │
│                                                                              │
│ p2p      P2P (p2p)            Powered true           Connected false         │
│ ethernet Wired (ethernet)     Powered true           Connected true          │
│ wifi     WiFi (wifi)          Powered true           Connected false         │
│                                                                              │
│                                                                              │
│                                                                              │
│                                                                              │
│                                                                              │
│                                                                              │
│                                                                              │
│                                                                              │
│                                                                              │
│                                                                              │
│                                                                              │
│                                                                              │
│                                                                              │
│                                                                              │
└──────────────────────────────────────────────────────────────────────────────┘
 [INFO] 'd' to disconnect, 'p' to toggle Powered, 'o' to toggle OfflineMode
 [INFO] 'Return' for details, 'F5' to force refresh, ^C to quit, 'F1' for help

Wifi networks you can connect to:

 Connman ncurses UI                       State: online      OfflineMode: false
┌──────────────────────────────────────────────────────────────────────────────┐
│ Choose a network to connect to:                                              │
│                                                                              │
│ eSSID                            State            Security    Signal Strength│
│ XXXXXXXXX                        idle             [ "psk" ]          49%     │
│ XXX_XXXXXXXX                     idle             [ "wep" ]          48%     │
│ XXX_XXX                          idle             [ "psk" ]          48%     │
│ XXX_XXXX                         idle             [ "none" ]         47%     │
│ XXX_XXX_XXXXXX                   idle             [ "wep" ]          47%     │
│ XXX_XXX_XXXX                     idle             [ "psk" ]          47%     │
│ XXX_XXXX                         idle             [ "psk" ]          46%     │
│ XX-XXXXX-XX-XXXXXXXXXXXXXX       idle             [ "none" ]         39%     │
│ XXXX XXXXXXXXXX                  idle             [ "psk", "wps" ]   37%     │
│ XXXXXXX-XXXX                     idle             [ "psk", "wps" ]   35%     │
│ XXXXXX                           idle             [ "none" ]         34%     │
│ XXX_XXXX                         idle             [ "none" ]         27%     │
│ XXX_XXX                          idle             [ "psk" ]          27%     │
│ XXX_XXXX                         idle             [ "psk" ]          27%     │
│ XXXXXXXXXXX                      idle             [ "psk" ]          27%     │
│ XXX_XXX_XXXX                     idle             [ "wep" ]          26%     │
└──────────────────────────────────────────────────────────────────────────────┘
 [INFO] 'F5' to refresh network list, 'F6' to force a scan
 [INFO] 'r' to remove favorite, 'Esc' to get back, 'F1' for help

Project status

It's usable (yeah !) but all of connman functionality isn't implemented.

Connman terminology:

"technology" The physical medium of connection, e.g. ethernet, wifi...

"service" What you can connect to, e.g. wireless access point, LAN...

Here is a list of what you can currently do (tested with wifi and ethernet):

  • connect a technology to a service
  • disconnect a technology
  • modify some of the service configurations
  • force a scan of surrounding wifi access points
  • toggle technology power state
  • toggle connman "OfflineMode"
  • re-size the terminal
  • remove saved information on a service (e.g. wifi passphrase, favorite...)

Note that those functionalities are enough for daily operations but don't cover everything connman has to offer.

Furthermore, improvements, bug fixes and all are welcome!

How to build

See packaging/ for packages, currently Tizen (OpenSUSE) and Archlinux are packaged.

Building the project is as simple as running run-me.sh, to run ./connman_json.

You will need autotools and development packages for:

  • dbus
  • ncurses
  • libjson

My build environment is OpenSUSE 13.1 x86_64 with:

  • libjson0 and libjson0-devel 0.10-3.1.2
  • libdbus-1-3 and dbus-1-devel 1.7.4-4.16.1
  • libncurses6 and ncurses-devel 5.9-33.1.2