arcanis.me/projects/netctl-gui.html
2014-08-25 21:31:50 +04:00

200 lines
8.7 KiB
HTML

---
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
license: GPLv3
links:
- Page on <a href="http://linux.softpedia.com/get/System/Networking/Netctl-GUI-103383.shtml" title="Softpedia">Softpedia</a>
- Page on <a href="http://kde-apps.org/content/show.php?content=164490" title="kde-apps">kde-apps.org</a>
- <a href="https://aur.archlinux.org/pkgbase/netctl-gui/" title="AUR">AUR package</a>
- <a href="/devs/netctl-gui-dbus-api.html" title="DBus API">DBus API reference</a>
- <a href="/devs/netctl-gui-security-notes.html" title="Security">Security notes</a>
---
<!-- info block -->
<h2><a href="#info" class="anchor" id="info"><span class="octicon octicon-link"></span></a>Information</h2>
<p>Graphical interface for <code>netctl</code> (several scripts for work with network connection in Archlinux). It is written on <code>CPP</code> using <code>Qt4</code> 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 KDE.</p>
<p><b>NOTE:</b> <a href="https://github.com/arcan1s/netctl-gui/issues/3" title="Ticket">LOOKING FOR TRANSLATORS!</a></p>
{% 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 <arg> - select this ESSID
-o, --open <arg> - open this profile
-s, --select <arg> - select this profile
Additional flags:
-c, --config <arg> - read configuration from this file
-d, --debug - print debug information
--default - start with default settings
--set-opts <arg> - set options for this run, comma separated
-t, --tab <arg> - 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 <arg> - 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 %}
<h3><a href="#devel" class="anchor" id="devel"><span class="octicon octicon-link"></span></a>Developers and contributors</h3>
<ul>
{% for devel in page.developers %}
<li>{{ devel }}</li>
{% endfor %}
</ul>
<h3><a href="#license" class="anchor" id="license"><span class="octicon octicon-link"></span></a>License</h3>
<ul>
<li>{{ page.license }}</li>
</ul>
<h3><a href="#changelog" class="anchor" id="changelog"><span class="octicon octicon-link"></span></a>Changelog</h3>
<p><a href="https://github.com/arcan1s/netctl-gui/blob/master/CHANGELOG" title="GitHub">CHANGELOG</a></p>
<!-- end of info block -->
<!-- install block -->
<h2><a href="#install" class="anchor" id="install"><span class="octicon octicon-link"></span></a>Installation</h2>
<h3><a href="#instruction" class="anchor" id="instruction"><span class="octicon octicon-link"></span></a>Instruction</h3>
<ul>
<li><p>Download an <a href="https://github.com/arcan1s/netctl-gui/releases" title="GitHub">archive</a> with latest version of source files.</p></li>
<li><p>Extract it and install the application:</p>
<p>If you want install it into <code>/</code>, you should run as root following commands:</p>
{% 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 %}
<p>Available cmake flags are:</p>
<ul>
<li>components:
<ul>
<li><code>-DBUILD_DATAENGINE:BOOL=0</code> - do not build DataEngine</li>
<li><code>-DBUILD_GUI:BOOL=0</code> - do not build GUI</li>
<li><code>-DBUILD_HELPER:BOOL=0</code> - do not build helper daemon</li>
<li><code>-DBUILD_LIBRARY:BOOL=0</code> - do not build library</li>
<li><code>-DBUILD_PLASMOID:BOOL=0</code> - do not build Plasmoid</li>
</ul></li>
<li>additional components:
<ul>
<li><code>-DBUILD_DOCS:BOOL=0</code> - do not build developer documentation</li>
<li><code>-DBUILD_TEST:BOOL=1</code> - build auto tests for the library and the helper</li>
</ul></li>
<li>project properties:
<ul>
<li><code>-DDBUS_SYSTEMCONF_PATH=/etc/dbus-1/system.d/</code> - path to DBus system configuration files</li>
<li><code>-DSYSTEMD_SERVICE_PATH=lib/systemd/system</code> - path to systemd services</li>
<li><code>-DUSE_CAPABILITIES:BOOL=0</code> - do not use setcap to get privileges to the helper</li>
<li><code>-DUSE_QT5:BOOL=0</code> - use Qt4 instead of Qt5 for GUI</li>
</ul></li>
</ul></li>
</ul></li>
</ul>
<h3><a href="#dependencies" class="anchor" id="dependencies"><span class="octicon octicon-link"></span></a>Dependencies</h3>
<p>I want note that all were tested on latest version of dependencies.</p>
<ul>
<li>netctl</li>
<li>qt5-base <i>(if Qt5 is used)</i> <b>or</b> qt4 <i>(if Qt4 is used)</i></li>
<li>automoc4 <i>(make)</i></li>
<li>cmake <i>(make)</i></li>
<li>qt5-tools <i>(make, if Qt5 is used)</i></li>
<li>kdebase-workspace <i>(optional, widget)</i></li>
<li>sudo <i>(optional, sudo support)</i></li>
<li>wpa_supplicant <i>(optional, WiFi support)</i></li>
</ul>
<!-- end of install block -->
<!-- howto block -->
<h2><a href="#howto" class="anchor" id="howto"><span class="octicon octicon-link"></span></a>How to use</h2>
<p>Just run application <code>netctl-gui</code>. If it is needed (and if you use KDE), you may add widget <code>netctl</code>, which provides by the application.</p>
<!-- end of howto block -->
<!-- config block -->
<h2><a href="#config" class="anchor" id="config"><span class="octicon octicon-link"></span></a>Configuration</h2>
<p>It is recommended to use graphical interface for configuration. Configuration files are:</p>
<ul>
<li><code>$HOME/.config/netctl-gui.conf</code> - GUI/helper user configuration</li>
<li><code>/etc/netctl-gui.conf</code> - helper system-wide configuration</li>
<li><code>$KDEHOME/share/config/netctl.conf</code> - DataEngine user configuration</li>
<li><code>$KDESYSTEM/share/config/netctl.conf</code> - DataEngine system-wide configuration</li>
</ul>
<!-- end of config block -->
<!-- gui block -->
<h2><a href="#gui" class="anchor" id="gui"><span class="octicon octicon-link"></span></a>Graphical user interface</h2>
<p>Graphical interface provides by <code>netctl-gui</code> application.</p>
<h3><a name="screenshots" class="anchor" href="#screenshots"><span class="octicon octicon-link"></span></a>Screenshots</h3>
<div class="thumbnails">
{% 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 %}
</div>
<!-- end of gui block -->