---
hastr: true
layout: project
title: Netctl GUI
short: netctl-gui
tags: archlinux, c++, qt, network, kde, netctl, system, dbus, library
hasgui: true
hasdocs: true
developers:
    - Evgeniy Alekseev
    - nosada (Japanese translation)
license: GPLv3
links:
    - Page on Softpedia
    - Page on kde-apps.org
    - AUR package
    - DBus API reference
    - Security notes
---
Information
Graphical interface for netctl (several scripts for work with network connection in Archlinux). It is written on C++ using Qt library. Now it may work with profiles and may create new profiles. Also it may create a connection to WiFi. Moreover, it provides a Qt library for interaction with netctl and widget and DataEngine for KDE4/KF5.
NOTE: LOOKING FOR TRANSLATORS!
{% highlight bash %}
$ netctl-gui --help
Usage:
netctl-gui [ options ]
Options:
 Open window:
       --detached        - start detached from console
       --maximized       - start maximized
       --minimized       - start minimized to tray
       --about           - show about window
       --netctl-auto     - show netctl-auto window
       --settings        - show settings window
 Functions:
   -e, --essid      - select this ESSID
   -o, --open       - open this profile
   -s, --select     - select this profile
 Additional flags:
   -c, --config     - read configuration from this file
   -d, --debug           - print debug information
       --default         - start with default settings
       --set-opts   - set options for this run, comma separated
   -t, --tab        - open a tab with this number
 Show messages:
   -v, --version         - show version and exit
   -i, --info            - show build information and exit
   -h, --help            - show this help and exit
{% endhighlight %}
{% highlight bash %}
$ netctlgui-helper --help
Usage:
netctlgui-helper [ options ]
Options:
   -c, --config     - read configuration from this file
   -d, --debug           - print debug information
       --nodaemon        - do not start as daemon
       --replace         - force replace the existing session
       --restore         - force restore the existing session
       --system          - do not read user configuration, system-wide only
 Show messages:
   -v, --version         - show version and exit
   -i, --info            - show build information and exit
   -h, --help            - show this help and exit
{% endhighlight %}
Developers and contributors
  {% for devel in page.developers %}
    - {{ devel }}{% endfor %}
License
Changelog
CHANGELOG
Installation
Instruction
  - Download an archive with latest version of source files.
- Extract it and install the application. If you want install it into /, you should run as root following commands:
{% highlight bash %}
cd /path/to/extracted/archive
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release ../
make
sudo make install
{% endhighlight %}
Available cmake flags are:
    - components:
    
      - -DBUILD_DATAENGINE:BOOL=0- do not build DataEngine
- -DBUILD_GUI:BOOL=0- do not build GUI
- -DBUILD_HELPER:BOOL=0- do not build helper daemon
- -DBUILD_LIBRARY:BOOL=0- do not build library
- -DBUILD_PLASMOID:BOOL=0- do not build Plasmoid
 
- additional components:
    
      - -DBUILD_DOCS:BOOL=0- do not build developer documentation
- -DBUILD_TEST:BOOL=1- build auto tests for the library and the helper
 
- project properties:
    
      - -DDBUS_SYSTEMCONF_PATH=/etc/dbus-1/system.d/- path to DBus system configuration files
- -DSYSTEMD_SERVICE_PATH=lib/systemd/system- path to systemd services
- -DUSE_CAPABILITIES:BOOL=0- do not use setcap to get privileges to the helper
- -DBUILD_KDE4:BOOL=1- build plasmoid under KDE4 instead of KF5
- -DUSE_QT5:BOOL=0- use Qt4 instead of Qt5 for GUI
 
 
Dependencies
I want note that all were tested on latest version of dependencies.
  - netctl
- qt5-base (if Qt5 is used) or qt4 (if Qt4 is used)
- automoc4 (make)
- cmake (make)
- qt5-tools (make, if Qt5 is used)
- kdebase-workspace (optional, KDE4 widget)
- plasma-frameworks (optional, KF5 widget)
- sudo (optional, sudo support)
- wpa_supplicant (optional, WiFi support)
How to use
Just run application netctl-gui. If it is needed (and if you use KDE), you may add widget netctl, which provides by the application.
Configuration
It is recommended to use graphical interface for configuration. Configuration files are:
  - $HOME/.config/netctl-gui.conf- GUI/helper user configuration
- /etc/netctl-gui.conf- helper system-wide configuration
    - $KDEHOME/share/config/plasma-dataengine-netctl.conf- DataEngine user configuration
- $KDESYSTEM/share/config/plasma-dataengine-netctl.conf- DataEngine system-wide configuration
    - $HOME/.config/plasma-dataengine-netctl.conf- DataEngine user configuration
- /etc/xdg/plasma-dataengine-netctl.conf- DataEngine system-wide configuration
Graphical user interface
Graphical interface provides by netctl-gui application.
Screenshots
  {% assign scrdesc = "DataEngine" %}
  {% assign scrname = "netctl-gui_dataengine" %}
  {% include prj_scr.html %}
  {% assign scrdesc = "Widget" %}
  {% assign scrname = "netctl-gui_plasmoid" %}
  {% include prj_scr.html %}
  {% assign scrdesc = "Widget settings window" %}
  {% assign scrname = "netctl-gui_plasmoid_conf_01" %}
  {% include prj_scr.html %}
  {% assign scrdesc = "Widget settings window" %}
  {% assign scrname = "netctl-gui_plasmoid_conf_02" %}
  {% include prj_scr.html %}
  {% assign scrdesc = "Widget settings window" %}
  {% assign scrname = "netctl-gui_plasmoid_conf_03" %}
  {% include prj_scr.html %}
  {% assign scrdesc = "Main window" %}
  {% assign scrname = "netctl-gui_main" %}
  {% include prj_scr.html %}
  {% assign scrdesc = "Profile window" %}
  {% assign scrname = "netctl-gui_profile" %}
  {% include prj_scr.html %}
  {% assign scrdesc = "WiFi window" %}
  {% assign scrname = "netctl-gui_wifi" %}
  {% include prj_scr.html %}
  {% assign scrdesc = "About window" %}
  {% assign scrname = "netctl-gui_about" %}
  {% include prj_scr.html %}
  {% assign scrdesc = "netctl-auto window" %}
  {% assign scrname = "netctl-gui_netctl-auto" %}
  {% include prj_scr.html %}
  {% assign scrdesc = "Settings window" %}
  {% assign scrname = "netctl-gui_settings" %}
  {% include prj_scr.html %}