• 社区首页
  • 版块
【应用】dde-top-panel 顶栏程序+全局菜单 (V20) 【2020/08/14】
应用专区2w个浏览 ·429个评论
电梯直达到第
septemberhx
发表于2020-05-27
楼主
本帖最后由 septemberhx 于 2020-8-14 20:47 编辑

  • 如果在清空回收站过程中,发现 dde-top-panel 卡死无响应,CPU使用率 100%,请将 libtrash.so 移出插件目录
  • 因为顶栏高度问题,官方的时间插件显示会挤在一起,这个只能用其它插件:https://bbs-next.deepin.org/post/198163  (原贴找不到了,作者看见请联系我修改。。)

欢迎 star:https://github.com/SeptemberHX/dde-top-panel  你的 star 就是我更新的动力!

-------------------------2020/08/14【0.5.5】
  • 允许将三大按钮放到顶栏右侧
  • 允许在没有运行 dock 的情况下,不遮挡桌面图标(必须停用 dock,但不能卸载 dde-dock,除非有强迫症,否则建议不开。出现问题关闭该项,重启 dde-dock 即可)
  • bug 修复
-------------------------
没啥好继续实现的了感觉,更多的顶栏功能都能以插件的形式解决,后面估计就继续完善一下多屏幕上的体验以及修复bug了

如何使用

github访问有问题的请直接从网盘下载(太大了,超过了论坛附件大小限制:
  1. wget https://github.com/SeptemberHX/dde-top-panel/releases/download/0.1.0/dde-top-panel-0.1.0.zip  # 请看 github 的 release 界面的最新版本
  2. unzip dde-top-panel-0.1.0.zip
  3. sudo cp *.xml /usr/share/glib-2.0/schemas
  4. sudo glib-compile-schemas /usr/share/glib-2.0/schemas
  5. chmod +x ./dde-top-panel
  6. ./dde-top-panel
Copy the Code
如果想最大化窗口时,去掉原本的标题栏,则在 ~/.config/kwinrc 添加配置:
  1. [Windows]
  2. BorderlessMaximizedWindows=true
Copy the Code
然后重新登录即可。
---------------------------------
插件

因为修改了插件目录,所以需要将你想使用的插件复制到 ~/.local/lib/dde-top-panel/plugins 下
比如托盘,需要将 /usr/lib/dde-dock/plugins/libtray.so 复制到 ~/.local/lib/dde-top-panel/plugins
其他插件类似
-------------------------

如何启用全局菜单:
  • 前往 https://github.com/SeptemberHX/dde-globalmenu-service.git 下载最新 release 并解压
  • 复制 dde-globalmenu-service 到 /usr/bin (注意是否有执行权限 chmod +x dde-globalmenu-service
  • 服务 dde-globalmenu-service.desktop 到 ~/.config/autostart
  • 修改文件 ~/.gtkrc-2.0 ,添加 gtk-modules=appmenu-gtk-module
  • 修改文件 ~/.config/gtk-3.0/settings.ini ,[Settings] 条目下 添加 gtk-modules=appmenu-gtk-module
  • apt 安装 appmenu-qt appmenu-gtk2-module appmenu-gtk3-module  libdbusmenu-gtk3-4  libdbusmenu-gtk4 libdbusmenu-qt5-2   (不一定准确,但基本都是 appmenu 和 libdbusmenu 开头的)
  • 注销或者重启
-------------------------2020/08/010【0.5.4】
  • 修复魔灯特效下的奇怪问题 @hxhlb
  • UI 提升
-------------------------
-------------------------2020/08/03【0.5.3】
  • 调整顶栏高度至 24px(mac上的是 22px,但是 22px 下托盘部分的观感很差)
  • 允许使用应用名称代替图标时,一直显示用户选择的图标(参考 mac)
-------------------------
-------------------------2020/07/04【0.5.2】
  • 修复部分 gtk 全局菜单无效(只有一级菜单,没有子菜单的情况)
  • 多屏幕提升:每个窗口会记住上一个在本窗口的激活窗口,当前窗口失效时,自动寻找上一个窗口为当前窗口
  • 添加设置项:是否使用窗口程序名称来替代窗口图标(效果见下图),是否在全屏时显示三个按钮(配合不在最大化时隐藏窗口标题栏)
-------------------------


--------------------------------
2020/06/19【0.5.1-rc1】rc为测试版本,尽管我日常使用,依旧有些bug碰不到,所以需要放出rc帮忙找bug。需要稳定性的同学就不要尝试 rc 后缀的版本了
  • 若干bug修复
  • 菜单在显示状态下,可以直接移动鼠标切换各个菜单选项
  • 点击窗口图标显示启动器(位置控制不了)
-------------------------
2020/06/17【0.5.0-rc1】rc为测试版本,尽管我日常使用,依旧有些bug碰不到,所以需要放出rc帮忙找bug。需要稳定性的同学就不要尝试 rc 后缀的版本了
多屏幕支持提升,现在能够像 macOS 那样,每个屏幕上的顶栏仅仅会显示该屏幕上的窗口的相关信息及菜单。
--------------------------------
2020/06/11 【0.4.1】
  • 添加配置:仅当鼠标移动到顶栏上时,才为当前的最大化窗口显示菜单,否则显示标题栏
  • UI 调整
--------------------------------
2020-06-06 更新 (0.4.0)
  • 添加配置功能:右键->Settings,包含:顶栏颜色,透明程度,字体颜色,关闭、最大化、最小化图标以及默认图标(在桌面显示的那个)
  • 修复由 nullptr 导致的崩溃问题
  • 其他UI调整
--------------------------------
2020-06-05 更新 (0.3.1)
  • 修复内存泄露
  • 修复拖动顶栏来移动窗口的误触问题
  • 修复有时候关闭最后一个窗口依然显示菜单的问题
Todo:
  • 添加按钮自定义配置(图片)
  • 添加透明度、字体颜色配置
-----------------------------------
2020-06-04 更新 (0.3.0)
  • 允许拖拽调整插件顺序
  • 顶栏上的操作按钮显示、消失的动画效果
  • 更好的顶栏按钮显示逻辑:只要当前窗口最大化,就显示按钮
  • 当前窗口最大化时,允许通过拖拽顶栏空白区域移动当前窗口(弥补没有标题栏,移动窗口需要先最小化的缺憾)
--------------------------------
2020-06-03 更新 (0.2.1)

* 完整的全局菜单功能(Qt,Gtk,Electron)

截图:


        

      


回复收藏只看作者
所有回复
cht
发表于2020-05-27
沙发
好!不过xml在你的项目中没有啊,这是啥意思啊
boom01
发表于2020-05-27
板凳
牛逼了牛逼了牛逼
septemberhx
发表于2020-05-27
地板

漏提交这个文件了,已经补上了
wvb
发表于2020-05-27
5楼
支持,支持
chen5903710
发表于2020-05-27
6楼
强势围观。。。。。。。。
xiaobaizhang
发表于2020-05-27
7楼
类似mac os 那样顶部栏 不香么
xieqin74123
发表于2020-05-28
8楼
感谢分享,效果很棒,已设置好开机启动以及插件,正在想方法去掉dock中丑的要命的托盘
WangZhongyun
发表于2020-05-28
9楼
如何最有效利用桌面空间是需要考虑的。你这顶栏程序可以说仅适合手机用户。对桌面用户来说,有启动器、程序任务切换区域会更便捷操作。如果想兼并发展的话,至少在程序设置中勾选启动器、程序任务切换区域就要能启用相应功能。
septemberhx
发表于2020-05-28
10楼
本帖最后由 septemberhx 于 2020-5-28 10:13 编辑

我觉得 Unity 模式或者是 mac 模式才是更好的空间利用率

Unity 模式下 dock 可以放在左侧,这样不影响任务切换。我之所以把顶栏的任务区域删掉了,最大的一个原因是顶栏空间不足,没有足够的空间再放一个任务区域。

顶栏设计的最初目的就是在窗口最大化的时候,能够兼并标题栏(省下 40px),且保留通知以及插件区域;我的计划是后期再加上全局菜单,这样就能进一步省下一个菜单栏的高度,综合来看,顶栏上不能有任务切换区。

至于你说的切换不方便的问题,你也不能放着 dock 不用吧,像unity一样,常驻左侧,牺牲横向区域换纵向空间,在16:9的今天,我觉得很合理,或者你可以把dock设置在下方,像 mac 一样。

但不管怎么样,顶栏都没有浪费空间——最大化的时候,没有标题栏,仅有顶栏,且顶栏的高度和标题栏一致;也没有牺牲可用性,因为它不是 dock 的替代产品,而是增强工具

个人认为,ubuntu的unity模式以及mac的空间设计,能够比较合理利用。
septemberhx
发表于2020-05-28
11楼

我也确实有意向 mac 那样的靠拢,但是有很多麻烦的地方。

1. 顶栏必须在每个显示器上都存在:这个也能实现,但是有很大局限性。官方在写托盘的时候,是没有考虑同时有多个托盘存在的,你会发现,wine 的一些程序的托盘,只能在最后一个启动的托盘区域生效,且之前的托盘区域图标依然驻留,但是不能进行任何交互,这更难受了,因为用户可不知道哪个顶栏是最后启动的,必须要一个一个顶栏试过去才能打开QQ 一类的

目前的可能解决办法是主屏幕之外的所有屏幕,仅提供一个功能有限的顶栏——去掉托盘

2. 顶栏的全局菜单:这个日后才可能实现,目前不现实

3. 最大化的逻辑:mac 的最大化逻辑有两个,一个是和Windows以及deepin一样,铺满屏幕,另一个是窗口全屏,移动到下一个虚拟桌面,且顶栏自动隐藏。这个实现可能更困难。因为我没有找到 deepin 提供的窗口最大化信号,这就意味着当有一个窗口最大化的时候,顶栏不知道。那想做什么操作都不可能了
lidanger
发表于2020-05-28
12楼
虽然不用,还是支持一下。
cheesezhang
发表于2020-05-28
13楼
./dde-top-panel: error while loading shared libraries: libdtkwidget.so.5: cannot open shared object file: No such file or directory
我这是缺了什么库吧
xiaobaizhang
发表于2020-05-28
14楼

我觉得你可以去看看kde 源码
septemberhx
发表于2020-05-28
15楼
xiaobaizhang 发表于 2020-5-28 10:49
我觉得你可以去看看kde 源码

这不是看kde源码能解决的。关键是deepin官方的托盘可能设计上就不支持多个同时存在。
其次kde用的很多他自己的消息传输,deepin整了一套自己的dbus,没法参考。
septemberhx
发表于2020-05-28
16楼
cheesezhang 发表于 2020-5-28 10:44
./dde-top-panel: error while loading shared libraries: libdtkwidget.so.5: cannot open shared object  ...

以来应该和 dock 的一直才对,我没有加其他依赖。你的 dde-dock 能正常运行么?
so1n
发表于2020-05-28
17楼
挺不错的 回去试一试
cheesezhang
发表于2020-05-28
18楼

那自然是可以运行的呀 要不我这看着得多难受
septemberhx
发表于2020-05-28
19楼
cheesezhang 发表于 2020-5-28 11:55
那自然是可以运行的呀 要不我这看着得多难受

那命令行 apt search libdtkwidget 看看有没有版本5的包,装上应该就好了
cheesezhang
发表于2020-05-28
20楼

你不会是基于v20开发的吧
septemberhx
发表于2020-05-28
21楼
cheesezhang 发表于 2020-5-28 13:36
你不会是基于v20开发的吧

是啊,只能给 20 用
共 429 项1/22
到第
发布帖子

光荣榜

  • 周榜
  • 月榜
  • 总榜