• Homepage
  • Categories
[App Sharing] 【应用】dde-top-panel 顶栏程序+全局菜单 (V20) 【2021/06/21】
Apps Section2.6w views ·488 replies
Tofloor
septemberhx
deepin^5
2020-05-27 07:06
Author
  • 因为顶栏高度问题,官方的时间插件显示会挤在一起,这个只能用其它插件:https://bbs.deepin.org/post/198163  (原贴找不到了,作者看见请联系我修改。。)


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

-------------------------2021/06/21【0.5.7】

Bug 修复:合并了 dde-dock 到 2021/06/14 为止的所有代码提交,修复了中间 dock 变化导致的一系列插件问题。

另:dde-dock 的托盘插件 libtray.so 能够直接移动到其它地方,并且 dock 显示正常了。

-------------------------
没啥好继续实现的了感觉,更多的顶栏功能都能以插件的形式解决,后面估计就继续完善一下多屏幕上的体验以及修复bug了

如何使用

github访问有问题的请直接从网盘下载(太大了,超过了论坛附件大小限制:

https://wwx.lanzoui.com/b01bh6pfg
密码:fih3
 
wget https://github.com/SeptemberHX/dde-top-panel/releases/download/0.1.0/dde-top-panel-0.1.0.zip  # 请看 github 的 release 界面的最新版本
unzip dde-top-panel-0.1.0.zip
sudo cp *.xml /usr/share/glib-2.0/schemas
sudo glib-compile-schemas /usr/share/glib-2.0/schemas
chmod +x ./dde-top-panel
./dde-top-panel
 
如果想最大化窗口时,去掉原本的标题栏,则在 ~/.config/kwinrc 添加配置:
  1. [Windows]
  2. BorderlessMaximizedWindows=true

然后重新登录即可。
---------------------------------
插件

因为修改了插件目录,所以需要将你想使用的插件复制到 ~/.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/14【0.5.5】

  • 允许将三大按钮放到顶栏右侧
  • 允许在没有运行 dock 的情况下,不遮挡桌面图标(必须停用 dock,但不能卸载 dde-dock,除非有强迫症,否则建议不开。出现问题关闭该项,重启 dde-dock 即可)
  • bug 修复

-------------------------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)

截图:


        

      


ReplyFavoriteView the author
All Replies
cht
deepin^6
2020-05-27 07:47
#1
好!不过xml在你的项目中没有啊,这是啥意思啊
ReplyView the author
boom01
deepin^3
2020-05-27 08:02
#2
牛逼了牛逼了牛逼
ReplyView the author
septemberhx
deepin^5
2020-05-27 08:02
#3
https://bbs.deepin.org/post/195128
好!不过xml在你的项目中没有啊,这是啥意思啊

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

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

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

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

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

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

个人认为,ubuntu的unity模式以及mac的空间设计,能够比较合理利用。
ReplyView the author
septemberhx
deepin^5
2020-05-28 02:21
#10
https://bbs.deepin.org/post/195128
类似mac os 那样顶部栏 不香么

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

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

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

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

3. 最大化的逻辑:mac 的最大化逻辑有两个,一个是和Windows以及deepin一样,铺满屏幕,另一个是窗口全屏,移动到下一个虚拟桌面,且顶栏自动隐藏。这个实现可能更困难。因为我没有找到 deepin 提供的窗口最大化信号,这就意味着当有一个窗口最大化的时候,顶栏不知道。那想做什么操作都不可能了
ReplyView the author
走钢丝
deepin^7
2020-05-28 02:22
#11
虽然不用,还是支持一下。
ReplyView the author
cheesezhang
deepin^4
2020-05-28 02:44
#12
./dde-top-panel: error while loading shared libraries: libdtkwidget.so.5: cannot open shared object file: No such file or directory
我这是缺了什么库吧
ReplyView the author
tensor
deepin^5
2020-05-28 02:49
#13
https://bbs.deepin.org/post/195128
我也确实有意向 mac 那样的靠拢,但是有很多麻烦的地方。

1. 顶栏必须在每个显示器上都存在:这个也能实 ...

我觉得你可以去看看kde 源码
ReplyView the author
septemberhx
deepin^5
2020-05-28 03:29
#14
xiaobaizhang 发表于 2020-5-28 10:49
我觉得你可以去看看kde 源码

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

以来应该和 dock 的一直才对,我没有加其他依赖。你的 dde-dock 能正常运行么?
ReplyView the author
so1n
deepin^4
2020-05-28 03:46
#16
挺不错的 回去试一试
ReplyView the author
cheesezhang
deepin^4
2020-05-28 03:55
#17
https://bbs.deepin.org/post/195128
以来应该和 dock 的一直才对,我没有加其他依赖。你的 dde-dock 能正常运行么? ...

那自然是可以运行的呀 要不我这看着得多难受
ReplyView the author
septemberhx
deepin^5
2020-05-28 04:38
#18
cheesezhang 发表于 2020-5-28 11:55
那自然是可以运行的呀 要不我这看着得多难受

那命令行 apt search libdtkwidget 看看有没有版本5的包,装上应该就好了
ReplyView the author
cheesezhang
deepin^4
2020-05-28 05:36
#19
https://bbs.deepin.org/post/195128
那命令行 apt search libdtkwidget 看看有没有版本5的包,装上应该就好了

你不会是基于v20开发的吧
ReplyView the author
septemberhx
deepin^5
2020-05-28 07:19
#20
cheesezhang 发表于 2020-5-28 13:36
你不会是基于v20开发的吧

是啊,只能给 20 用
ReplyView the author
1/25
To page
New Thread

Rankings

  • Weekly
  • Monthly
  • Total