Go to file
zhangyuanyuan1 31a64fcccb 增加接口检查网卡类型 删除接口deviceIsWired 2023-04-24 09:41:05 +08:00
man fix the bug kylin-nm send information to syslog per 3 or 4 seconds 2019-10-31 09:56:53 +08:00
plugins 前端界面显示未托管无线网卡问题 2023-04-24 09:39:07 +08:00
res Fix bug the icon rotates in the opposite direction 2021-05-15 16:23:35 +08:00
src 增加接口检查网卡类型 删除接口deviceIsWired 2023-04-24 09:41:05 +08:00
src-vpn 更新VPN 翻译文件 2023-04-12 15:33:51 +08:00
translations update translate 2023-04-07 16:58:35 +08:00
.gitignore Added program execution time count 2021-03-13 11:42:20 +08:00
AUTHORS fix the bug kylin-nm send information to syslog per 3 or 4 seconds 2019-10-31 09:56:53 +08:00
COPYING fix the bug kylin-nm send information to syslog per 3 or 4 seconds 2019-10-31 09:56:53 +08:00
README.md update 2022-04-01 10:30:59 +08:00
kylin-nm.pro 新增VPN功能代码,重新提交PR 2023-04-10 15:50:59 +08:00
nmqrc.qrc import 2303 2023-04-06 14:09:59 +08:00
res.qrc fix the bug kylin-nm send information to syslog per 3 or 4 seconds 2019-10-31 09:56:53 +08:00
translate_generation.sh import 2303 2023-04-06 14:09:59 +08:00

README.md

kylin-nm介绍

简介

麒麟网络工具kylin-network-manager简称kylin-nm是操作系统的网络前端其主要功能有
1、托盘栏图标及右键菜单
查看当前网络状态
左键点击托盘网络图标显示kylin-nm主界面
右键点击托盘网络图标显示右键菜单
2、对有线网络的管理
有线网络界面管理
连接/断开网络
网线拔插
多有线网卡支持
打开或关闭有线开关
查看或修改无线网络基本信息
3、对无线网络的管理
切换及刷新无线界面
查看无线网络列表
连接/断开无需密码的无线网
连接/断开有密码类型的无线网
无线网卡插拔
多无线网卡支持
打开或关闭无线开关
查看或修改无线网络基本信息
4、连接隐藏无线网络
连接无安全性的无线网络
连接WPA及WPA2个人安全性的无线网络
连接WPA及WPA2企业安全性的无线网络
连接WPA3个人安全性的无线网络
5、窗口样式调节
深色与浅色窗口样式切换
调节网络工具窗口透明度
普通窗口与具有毛玻璃效果的窗口的切换

运行

麒麟网络工具的进程为kylin-nm默认开机自启依赖NetworkManger

命令行和dbus接口

kylin-nm进程的命令行如下
Usage: kylin-nm

dbus接口

DBUS类型SESSION BUS
DBUS名称com.kylin.network
OBJECT路径/
接口名称com.kylin.network

dbus方法

getWirelessList
参数:无
返回值QMap<QString, QVector>
键:网卡名称
值:无线网络的集合(第一项为已连接网络信息,若无连接则为"--",否则为"名称/信号强度/加密类型/Uuid/是否为本机开放热点";其余为未连接的网络信息,为"名称/信号强度/加密类型/是否为本机开放热点"
功能:获取无线列表及每个对应无线网络的信号强度、加密类型等信息。

getWiredList
参数:无
返回值QMap<QString, QVector>
键:网卡名称
值:有线网络的集合("名称/UUID/对应DBUS路径"),若无已连接网络则第一项默认为"--"
功能获取有线列表及每个对应的有线网络的uuid及dbus路径

setWiredSwitchEnable(bool enable)
参数:(bool开启有线总开关true关闭有线总开关false
返回值:无
功能:打开或关闭有线总开关

setWirelessSwitchEnable(bool enable)
参数:(bool开启无线总开关true关闭无线总开关false
返回值:无
功能:打开或关闭无线总开关

setDeviceEnable(QString devName, bool enable)
参数QStringdevName 设备名称bool enable 开启/关闭
返回值:无
功能:打开或关闭单个有线网卡开关

activateConnectint type, QString devName, QString ssid
参数:根据网卡类型 参数1 0:lan 1:wlan 参数2网卡名称 参数3uuid/ssid
返回值:无
功能:激活一个网络连接

deActivateConnect(int type, QString devName, QString ssid)
参数:根据网卡类型 参数1 0:lan 1:wlan 参数2网卡名称 参数3uuid/ssid
返回值:无
功能:断开一个网络连接

getDeviceListAndEnabled(int devType)
参数int devType 0:lan 1:wlan
返回值QMap<QString, bool>
键:设备名称
bool 开启true关闭 false
功能:获取设备列表和启用/禁用状态

getWirelessDeviceCap
返回值QMap<QString, int>
键:设备名称
int 0不支持热点 3支持2.4GHz 7支持5GHz&&2.4Ghz
功能:获取无线设备能力(2.4G/5G)

showPropertyWidget(QString devName, QString ssid)
参数QString devName 设备名称 QString ssid 根据网卡类型 有线为uuid/无线为ssid
返回值:无
功能:唤起对应网络连接的属性页,可以对基础信息的显示或修改

showCreateWiredConnectWidget(QString devName)
参数QString devName 有线网卡名称
返回值:无
功能:唤起新建有线连接界面

activeWirelessAp(const QString apName, const QString apPassword, const QString band, const QString apDevice)
参数QString apName 热点名称
QString apPassword 热点密码
QString band 频带
QString apDevice
返回值:无
功能:开启移动热点

deactiveWirelessAp(const QString apName, const QString uuid)
参数QStringList名称/密码/设备名称/状态/UUID/频带)
返回值:无
功能: 断开移动热点

getStoredApInfo
参数QStringList名称/密码/设备名称/状态/UUID/频带)
返回值:无
功能:获取已保存的移动热点信息

getApInfoBySsid(QString devName, QString ssid)
参数QString devName 设备名称 QString ssid
返回值:无
功能:通过名称获取已保存的移动热点信息

reScan()
参数:无
返回值:无
功能:申请重新进行无线扫描

keyRingInit()
参数QString apName 热点名称 QString uuid
返回值:无
功能:断开移动热点

keyRingClear()
参数:无
返回值:无
功能: 断开移动热点

原理与主要使用的技术

kylin-nm主要与NetworkManager进行交互通过对应的dbus信号驱动UI界面的更新。并通过提供的dbus方法来进行网络相关功能的调用。

麒麟网络工具按照功能划分成两层UI层和逻辑层。UI层实现网络资源的显示以及用户的交互逻辑层通过NetworkManager提供的Dbus接口完成网络资源的管理及其配置。

配置文件

kylin-nm的配置文件保存在如下路径
~/.config/ukui/kylin-nm.conf 有线无线开关状态 设备状态
org.ukui.kylin-nm.switch 对应的gsetting值 (有线无线开关状态)

编译

cd kylin-nm
mkdir build
cd build
qmake ..
make
sudo make install 

运行命令

./kylin-nm

调试

kylin-nm目前并采用ukui-log4qt模块的日志功能。日志默认保存在~/.log/kylin-nm.log中