10b9d7e081 | ||
---|---|---|
.github/workflows | ||
3rd-parties/qtsingleapplication | ||
data | ||
man | ||
qml | ||
res | ||
src | ||
translations | ||
ukui-shortcut | ||
ukui-sidebar-items | ||
.gitignore | ||
AUTHORS | ||
CMakeLists.txt | ||
COPYING | ||
LICENSE | ||
README.md |
README.md
ukui-sidebar
简介
ukui-sidebar是ukui桌面环境中的侧边栏快捷工具,主要包括控制中心和通知中心两个部分。
编译
# 使用不同发行版对应的包管理器安装编译依赖,以debian系举个栗子:
# 1.0. 侧边栏目前的依赖如下(可能会有改动):
pkgconf libxcb1-dev libgsettings-qt-dev qtbase5-dev qt5-qmake qtchooser qttools5-dev-tools qtdeclarative5-dev libkf5windowsystem-dev libqt5x11extras5-dev libkysdk-waylandhelper-dev libopencv-dev
# 1.1. 直接使用apt下载并安装全部依赖
sudo apt install pkgconf libxcb1-dev libgsettings-qt-dev qtbase5-dev qt5-qmake qtchooser qttools5-dev-tools qtdeclarative5-dev libkf5windowsystem-dev libqt5x11extras5-dev libkysdk-waylandhelper-dev libopencv-dev
# 2.0. 也可以使用mk-build-deps工具,检查并安装编译依赖,该工具包含在devscripts包中
sudo apt install devscripts
# 2.1. 自动安装依赖,在源码根目录执行:
sudo mk-build-deps -i
# 2.2. 手动检查并安装依赖,在源码根目录执行:
sudo mk-build-deps
# 2.3. 查看生成的 xxx.deb包(xxx是版本号),使用dpkg -I解析deb包的编译依赖
dpkg -I ukui-sidebar-build-deps_xxx_all.deb
# 3. 编译:进入源码根目录,打开终端,编译侧边栏
mkdir build; cd build; qmake ..; make; sudo make install
控制中心
控制主要功能是提供了一组系统设置快捷键,类似手机上的下滑控制中心。快捷键按钮均基于libukui-shortcut-dev提供的插件接口实现。
通知中心
通知中心可以显示用户最近的消息通知,提供了便捷的消息分组查看和删除功能。
运行
ukui-sidebar作为ukui桌面环境组件,默认开机自启,且无法关闭。侧边栏有pc模式和平板模式两种显示模式,pc模式下,侧边栏可通过点击托盘图标或从屏幕右边缘左滑唤起,也可以通过快捷键 super + a 唤起。平板模式下,侧边栏分为控制中心和通知中心两部分,控制中心唤起方式和上面提到的pc模式的三种方法相同,通知中心需要从屏幕上边缘下滑唤起。
快捷键,命令行和交互接口
快捷键
目前侧边栏只有 super + a 一组快捷键。
命令行
Options:
-S, --state Show the current state of the sidebar.
-s, --show <option> There are two options, 'notify' and 'control'.
-q, --quit Quit sidebar.
-h, --help Displays this help.
-v, --version Displays version information.
交互接口
控制中心
控制中心中的快捷键插件使用很多ukui桌面环境其他组件的接口,多为gsettings或dbus形式。
========此处待补充========
通知中心
侧边栏启动之后会注册一个dbus接口:
service:"org.ukui.Sidebar"
path:"/org/ukui/Sidebar/notification"
interface:"/org/ukui/Sidebar/notification"
sidebarNotification (String appName, String appIcon, String summary, String body, String urlStr, String action) ↦ ()
ukui-notification-center(ukui通知中心组件)会按照一定的规则,调用这个接口发送消息给侧边栏通知中心。目前侧边栏支持的通知类型比较单一,不支持其他复杂的如常驻通知,实时刷新状态的通知等。 我们正在考虑将通知中心组件(ukui-notification-center)的功能整合进侧边栏,并基于freedesktop协议,丰富通知中心的功能。
通知中心计划
=======todo=======
编译与调试
编译
git clone
cd ukui-sidebar
mkdir build;cd build
qmake ..
make
ukui-sidebar的项目接口主要分为libukui-shortcut(快捷键插件管理器)和src(ukui-sidebar应用本体)两部分。 libukui-short提供了侧边栏控制中心快捷键插件接口,src为侧边栏应用主体。编译完成后执行sudo make install即可完成安装。
调试
安装完成后,终端执行ukui-sidebar即可启动侧边栏。在~/.config/org.ukui/目录新建ukui-sidebar.log日志文件,应用日志会自动输出到此文件。
暂时没有日志自动记录,备份或删除机制
开发接口
基于Qt插件框架,目前侧边栏提供了一个控制中心快捷操作的插件接口:
class UKUISHORTCUT_EXPORT Shortcut : public QObject
{
Q_OBJECT
public:
explicit Shortcut(QObject *parent = nullptr) : QObject(parent) {}
//插件标识
virtual QString pluginId() = 0;
//插件类型(样式), 需要指定不同模式下的按钮
virtual QMap<PluginMetaType::SystemMode, PluginMetaData> pluginMetaData() = 0;
//实现响应前端用户操作
virtual void active(PluginMetaType::Action action) = 0;
//进度条样式需要重写该函数
virtual void setValue(int value) {Q_UNUSED(value)}
//返回插件当前的状态信息
virtual const StatusInfo currentStatus() = 0;
//是否启用
virtual bool isEnable() { return true; }
Q_SIGNALS:
void statusChanged(const StatusInfo &info);
void enableStatusChanged(bool isEnable);
};
基于Qt插件框架,此接口可以提供三种按钮格式的接口:
enum PluginType
{
Icon = 0, //图标样式
ProgressBar, //进度条样式
MenuButton //可展开菜单按钮样式
};
Use with CMake:
find_package(PkgConfig)
pkg_check_modules(ukui-shortcut REQUIRED ukui-shortcut)
include_directories(${ukui-shortcut_INCLUDE_DIRS})
target_link_libraries(yourapp ukui-shortcut)
Use with Qmake:
CONFIG += link_pkgconfig
PKGCONFIG += ukui-shortcut