1 Star 0 Fork 19

liyanda / ukui-sidebar

forked from openKylin / ukui-sidebar 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

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 UkuiShortcutPlugin : public QObject
{
    Q_OBJECT
public:
    explicit UkuiShortcutPlugin(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

空文件

简介

暂无描述 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/liyanda/ukui-sidebar.git
git@gitee.com:liyanda/ukui-sidebar.git
liyanda
ukui-sidebar
ukui-sidebar
upstream

搜索帮助