基于dde-top-panel+tint2+plank+conky的Deepin(深度)桌面美化
摘要: 苦dde-dock占屏太宽久矣。众所周知,Deepin是一个优秀的Linux开源系统,得益于Deepin团队的努力,Deepin操作系统的易用性和稳定性得到了大幅提升。因此,其用户量开始逐年增加,已经成为绝大部分Linux初学者和爱好者的首要选择。然而,众口难调,在部分用户群体看来,Deepin的许多部分仍旧需要完善或改进,比如缺少绝大多数Linux操作系统都支持的顶部状态栏。为克服该问题,本文基于Deepin社区资源和自身使用Linux操作系统的经验,提出了一种基于dde-top-panel+tint2+plank的深度桌面优化方法。
1 背景
Linux操作系统[1]是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。Linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux等。得益于Linux系统可公开获取和较强的可自定义的特性,使得其在服务器市场领先于windows操作系统[2],截止目前,Linux和Windows作为网站服务器的百分比情况如图1.1所示,Linux与windows作为服务器操作系统的对比如表1.1所示[3]。
[图片上传失败...(image-2b70ee-1648862843539)]
[图片上传失败...(image-8fb1d1-1648862843540)]
windows,得益于其对用户友好、操作简单和稳定的桌面环境,使得其几乎占据了个人PC市场。即使一些Linux发行版开始重视用户的桌面使用感受,重新研发普适性的桌面环境。但此时windows已经逐步建立起良好的生态环境,使得Linux再难翻身。具体来说,Linux难以在个人PC市场搬回一局的主要理由如下[4]:
- Linux 发行版众多,即使有许多优秀的发行版,但用户选择范围太多。当然该点同样时Linux的一个优势,但在市场方面,其实相互之间又是竞争者。
- 桌面Linux背后没有科技巨头,你在任何桌面Linux背后的技术中都找不到任何大的名字。当然,许多科技巨头都是Linux内核本身的背后推手,但没有一个是开发基于Linux的商业上可行的桌面操作系统。
- 在Linux上还没有流行的游戏和付费软件(没有健全的Linux生态环境),假设你是一个企业家或一个软件开发公司的所有者。如果你想为任何平台发布你的软件,你首先会想到的是你会从这个平台上产生多少收入。
- 硬件供应商不支持Linux,这会增加厂商成本,但回报却极低。
即使步履维艰,但许多企业却从未停下脚步!武汉深之度科技有限公司[5]便是这样一家坚持信仰的公司,该公司发行的Deepin操作系统正通过自身的努力来克服上述提出的困难。随着全球贸易战[5]的打响,我国空前重视自主技术的研发,国产化已然成为我们前进的大方向。正是在这样的大背景下,Deepin作为国产操作系统开始进入了大众视野。
笔者于2016年开始接触Deepin操作系统,见证Deepin的成长是我感到最幸福的一件事!Deepin的成长,可谓国产操作系统发展的一个缩影。Deepin真的很努力,从搜狗输入法,到网易云音乐,再到聊天工具的平台移植,无不彰显自身强大的求生欲望,相较于一些国内臭名昭著的知名企业,Deepin真的很优秀。现在反观,华为受到美国的制裁,而深度受到国内的“制裁”,由于没有市场,看不到投入收益,资本家们选择性忽视这个优秀的“小厂”,不给“小厂”做生态适配。即使迫于形式压力,敷衍了事的软件适配依旧让用户觉得恶心。
作为Deepin用户,笔者坚信,大家都希望看到Deepin辉煌的时刻!因此,为了Deepin能有更高的可自定义性,一些Deepin爱好者开发了许多优秀的工具来帮助用户完善用户体验。其中,在2020年Deepin官方发起了一次关于用户需求的投票[7],其中顶部状态栏(topbar)票数最高,但最后此事也不了了之,再无音序。本人是很希望官方开发topbar的,许多优秀的Linux桌面环境都有自己的topbar,从其他Linux发行版转到Deepin毕竟需要适应成本。此外,topbar也是unix类操作系统的一个特色,弃之实在可惜。本文也于2020年11月[8]建议官网支持缩小dde-dock占屏,便可以使用高效模式将dde-dock置于顶端充当topbar功能,在配合plank达到目的。其实dde-dock已经很优秀了!后来实现难以忍受被dde-dock占屏太宽的问题,只能将其置于屏幕的左侧。但依旧感觉很宽,但只是损失一定的宽度,还能接受。
后来尝试了一些努力,希望可以改善该问题,其中polybar[9]不乏一个很好的解决方法,其本身就已经支持大部分的Linux发行版,其中就包含debian。但Deepin就是安装不上,苦于自身能力不行,只能换其它方法。tint2[10]是一个可高自定义的Linux Dock,安装后也感觉可以接受,但其托盘位置不能停留输入法、坚果云等应用的图标,只能放弃。其外,还有lxpanel[12]等其他工具,但都难以满足本人的需求。直到2022年3月30日,找工具的时候发现dde-top-panel,该工具从许多方面都能满足本人的需求。于是开始着手安装和使用。
2 相关工作
这些工作都很优秀,篇幅问题,优秀缘由不再赘述。
dde-top-panel
dde-top-panel[11]
tint2
tint2[10]
plank
plank[12]
conky
conky[15]
3 具体步骤
为展示具体的步骤和效果,本文使用virtualbox[13]重新安装了一个Deepin操作系统,安装后的界面如图3.1所示。正值今天(2022.04.01)Deepin20.05正式发布。
[图片上传失败...(image-1badc1-1648862843540)]
首先,个人建议使用dde-dock的高效模式,并把位置放置到左侧,调整dde-dock后的Deepin如图3.2所示。
[图片上传失败...(image-475085-1648862843540)]
3.1 安装dde-top-panel
前往github dde-top-panel主页,点击右侧的releases。
[图片上传失败...(image-ccf24-1648862843540)]
下载dde-top-panel,点击如图3.4所示的位置。
[图片上传失败...(image-92cfc3-1648862843540)]
下载完成之后点击解压,如图3.5。
[图片上传失败...(image-cdb0d4-1648862843540)]
安装dde-top-panel
[图片上传失败...(image-8b677f-1648862843540)]
运行dde-top-panel
[图片上传失败...(image-86e2cd-1648862843540)]
运行后如图3.8所示。
[图片上传失败...(image-ac96dd-1648862843540)]
下面像dde-top-panel添加插件,打开文件夹,按下快捷键Ctrl + H,找到.local
文件夹。
[图片上传失败...(image-5d1f86-1648862843540)]
递归新建文件夹lib dde-top-panel plugins
[图片上传失败...(image-9e57e6-1648862843540)]
最后进入到文件夹plugins
。
[图片上传失败...(image-66aa97-1648862843540)]
然后再打开一个文件夹,依次点击系统盘 usr lib dde-dock plugins
,然后复制插件,如图3.12所示。
[图片上传失败...(image-b3a430-1648862843540)]
将他们复制到右边的文件里面,即.local lib dde-top-panel plugins
下面。
[图片上传失败...(image-766bbd-1648862843540)]
然后右键顶部状态栏,选择重启panel
[图片上传失败...(image-6cffdf-1648862843540)]
此时插件已经出现在顶部状态栏的最右侧。
然后来到插件dde-istate-menus[14]网站.
[图片上传失败...(image-dd1a45-1648862843540)]
[图片上传失败...(image-a76956-1648862843540)]
下载插件并将其放到dde-top-panel插件路径下,即.local lib dde-top-panel plugins
,在重启一次panel。
然后打开菜单,找到dde-top-panel,右键设置开机自启动。
[图片上传失败...(image-773696-1648862843540)]
这里新添的istate-menu插件没有生效 ,这里不去深究。继续后面的工作!
3.2 安装tint2
打开终端,输入sudo apt install tint2
,打开终端可通过在桌面右键,点击在终端打开。也可以按下快捷键ctrl+alt+t
。
[图片上传失败...(image-4ccdd7-1648862843540)]
点击菜单,打开tint2。
[图片上传失败...(image-4295d2-1648862843540)]
编辑tint2配置文件,终端输入deepin-editor .config/tint2/tint2rc
[图片上传失败...(image-30c6f4-1648862843540)]
然后使用下面的配置文件替换打开的文本内容。
#---- Generated by tint2conf 8ff7 ----
# See https://gitlab.com/o9000/tint2/wikis/Configure for
# full documentation of the configuration options.
#-------------------------------------
# Gradients
#-------------------------------------
# Backgrounds
# Background 1: Battery, Clock, Systray
rounded = 0
border_width = 1
border_sides = TBLR
border_content_tint_weight = 0
background_content_tint_weight = 0
background_color = #181818 85
border_color = #303030 85
background_color_hover = #181818 85
border_color_hover = #303030 85
background_color_pressed = #303030 85
border_color_pressed = #606060 85
# Background 2:
rounded = 0
border_width = 1
border_sides = TBLR
border_content_tint_weight = 0
background_content_tint_weight = 0
background_color = #404040 85
border_color = #808080 85
background_color_hover = #404040 85
border_color_hover = #808080 85
background_color_pressed = #404040 85
border_color_pressed = #808080 85
# Background 3: Launcher
rounded = 0
border_width = 1
border_sides = TBLR
border_content_tint_weight = 0
background_content_tint_weight = 0
background_color = #cfcfcf 50
border_color = #e7e7e7 50
background_color_hover = #cfcfcf 50
border_color_hover = #e7e7e7 50
background_color_pressed = #cfcfcf 50
border_color_pressed = #e7e7e7 50
# Background 4: Inactive taskbar
rounded = 0
border_width = 1
border_sides = TBLR
border_content_tint_weight = 0
background_content_tint_weight = 0
background_color = #cfcfcf 80
border_color = #e7e7e7 80
background_color_hover = #cfcfcf 90
border_color_hover = #e7e7e7 90
background_color_pressed = #cfcfcf 50
border_color_pressed = #e7e7e7 50
#-------------------------------------
# Panel
panel_items = :T
panel_size = 100% 24
panel_margin = 0 0
panel_padding = 0 0 2
panel_background_id = 0
wm_menu = 1
panel_dock = 0
panel_position = top left horizontal
panel_layer = top
panel_monitor = 1
panel_shrink = 1
autohide = 0
autohide_show_timeout = 0.3
autohide_hide_timeout = 2
autohide_height = 2
strut_policy = follow_size
panel_window_name = tint2
disable_transparency = 0
mouse_effects = 1
font_shadow = 0
mouse_hover_icon_asb = 100 0 10
mouse_pressed_icon_asb = 100 0 25
scale_relative_to_dpi = 0
scale_relative_to_screen_height = 0
#-------------------------------------
# Taskbar
taskbar_mode = single_desktop
taskbar_hide_if_empty = 0
taskbar_padding = 0 0 1
taskbar_background_id = 4
taskbar_active_background_id = 0
taskbar_name = 0
taskbar_hide_inactive_tasks = 0
taskbar_hide_different_monitor = 0
taskbar_hide_different_desktop = 0
taskbar_always_show_all_desktop_tasks = 0
taskbar_name_padding = 0 0
taskbar_name_background_id = 0
taskbar_name_active_background_id = 0
taskbar_name_font = Liberation Sans Bold 10
taskbar_name_font_color = #000000 100
taskbar_name_active_font_color = #000000 100
taskbar_distribute_size = 0
taskbar_sort_order = none
task_align = left
#-------------------------------------
# Task
task_text = 0
task_icon = 1
task_centered = 0
urgent_nb_of_blink = 65535
task_maximum_size = 34 34
task_padding = 0 0 2
task_font = Liberation Sans 10
task_tooltip = 0
task_thumbnail = 0
task_thumbnail_size = 210
task_font_color = #e7e7e7 100
task_background_id = 0
mouse_left = toggle_iconify
mouse_middle = none
mouse_right = none
mouse_scroll_up = none
mouse_scroll_down = none
#-------------------------------------
# System tray (notification area)
systray_padding = 5 5 1
systray_background_id = 1
systray_sort = ascending
systray_icon_size = 24
systray_icon_asb = 0 0 0
systray_monitor = 1
systray_name_filter =
#-------------------------------------
# Launcher
launcher_padding = 15 0 1
launcher_background_id = 3
launcher_icon_background_id = 0
launcher_icon_size = 35
launcher_icon_asb = 100 0 0
launcher_icon_theme_override = 0
startup_notifications = 1
launcher_tooltip = 1
launcher_item_app = /usr/share/applications/dde-control-center.desktop
#-------------------------------------
# Clock
time1_format = %m-%d
time2_format = %H:%M
time1_font = Liberation Sans 8
time1_timezone =
time2_timezone =
time2_font = Liberation Sans Bold 10
clock_font_color = #e7e7e7 80
clock_padding = 1 1
clock_background_id = 1
clock_tooltip = %Y-%m-%d %H:%M:%S
clock_tooltip_timezone =
clock_lclick_command = gsimplecal
clock_rclick_command = gsimplecal
clock_mclick_command = gsimplecal
clock_uwheel_command =
clock_dwheel_command =
#-------------------------------------
# Battery
battery_tooltip = 1
battery_low_status = 10
battery_low_cmd = notify-send -u critical "Battery low"
battery_full_cmd =
bat1_font = Liberation Sans 10
bat2_font = Liberation Sans 10
battery_font_color = #e7e7e7 80
bat1_format =
bat2_format =
battery_padding = 1 1
battery_background_id = 1
battery_hide = 101
battery_lclick_command =
battery_rclick_command =
battery_mclick_command =
battery_uwheel_command =
battery_dwheel_command =
ac_connected_cmd = notify-send -u normal "AC connected"
ac_disconnected_cmd = notify-send -u normal "AC disconnected"
#-------------------------------------
# Separator 1
separator = new
separator_background_id = 0
separator_color = #777777 0
separator_style = empty
separator_size = 195
separator_padding = 1 0
#-------------------------------------
# Tooltip
tooltip_show_timeout = 0
tooltip_hide_timeout = 0
tooltip_padding = 3 3
tooltip_background_id = 0
tooltip_font_color = #e7e7e7 80
tooltip_font = Liberation Sans 10
然后终端输入pkill tint2
,再重新运行tint2后界面如图3.21所示。
[图片上传失败...(image-f1bb53-1648862843540)]
如图3.22 所示,tint2可以让打开的应用停留在顶部的,设置透明后就以假乱真,就像dde-top-panel让应用停留一样。
下面切换dde-dock的位置到下方,在重启dde-top-panel
[图片上传失败...(image-12cc69-1648862843540)]
设置让菜单全屏显示。
[图片上传失败...(image-7b3f63-1648862843540)]
然后执行指令sudo chmod -x /usr/bin/dde-dock
和pkill dde-dock
,如图3.25。
[图片上传失败...(image-4ecd48-1648862843540)]
最后按下super
快捷键,打开菜单栏,设置tint2开机自启动。更多tint2设置可打开面板管理器,可自行摸索,本人也花了很久才摸索出现在的配置文件。
3.3 安装plank
打开终端,运行sudo apt install plank
[图片上传失败...(image-fb27e3-1648862843540)]
按下super
键,运行plank。
[图片上传失败...(image-175d2f-1648862843540)]
打开网址,下载plank主题。
[图片上传失败...(image-4bbdab-1648862843540)]
终端输入dde-file-manager Downloads
[图片上传失败...(image-2e294a-1648862843540)]
解压数字2得到刚下载的plank 主题,右键位于plank上的图标,将文件夹固定在plank上。
然后点击数字1处的+号,在新的终端窗口输入dde-file-manager ~/.local/share/plank/themes
然后将所有主题复制到新打开的文件夹下。
[图片上传失败...(image-90f651-1648862843540)]
然后终端输入plank --preferences
,在主题选项选择capos
[图片上传失败...(image-1d407d-1648862843540)]
最后桌面如下:
[图片上传失败...(image-93a682-1648862843540)]
将图标固定到plank,按下super
,将应用发送到桌面,
[图片上传失败...(image-891772-1648862843540)]
将桌面图标剪切到目录Videos下,再拖到plank进行固定即可。图标不能删除,否则plank上图标也会消失。
[图片上传失败...(image-86afe3-1648862843540)]
[图片上传失败...(image-37c40c-1648862843540)]
最后设置plank开机自启动。
3.4 安装conky
终端输入sudo apt install conky
[图片上传失败...(image-f62c0e-1648862843541)]
终端输入deepin-editor .conkyrc
,填入下面的配置文件
conky.config = {
-------------------------------------
-- Generic Settings
-------------------------------------
background=true,
update_interval=1,
double_buffer=true,
no_buffers=true,
imlib_cache_size=0,
draw_shades=false,
draw_outline=false,
draw_borders=false,
-------------------------------------
-- Window Specifications
-------------------------------------
gap_x=0,
gap_y=140,
minimum_height=350,
minimum_width=2200,
own_window=true,
own_window_type="dock",
own_window_transparent=true,
own_window_hints="undecorated,below,sticky,skip_taskbar,skip_pager",
own_window_argb_visual=true,
-------------------------------------
-- Text Settings
-------------------------------------
use_xft=true,
xftalpha=1,
font="Microsoft Yahei:size=20",
text_buffer_size=256,
override_utf8_locale=true,
-------------------------------------
-- Color Scheme
-------------------------------------
default_color='FFFFFF',
color0='EAEAEA', -- clock
color1='EAEAEA', -- date
-------------------------------------
-- Locale (e.g. "cn_zh.UTF-8")
-- Leave empty for default
-------------------------------------
}
conky.text = [[
${font Microsoft Yahei:weight=light:size=16}${color0}\
${color0}${font Quicksand Light - U:pixelsize=86}\
${voffset -20}${offset 10}\
${alignc}${time %H: %M: %S}\
${font Microsoft Yahei}${color}
\
\
\
\
${font Microsoft Yahei:weight=light:size=20}${color1}\
${voffset 30}\
${alignc}${execi 300 LANG=${template9} LC_TIME=${template9} date +"%A, %B %d, %Y"}\
${font}${color}
\
\
\
\
${font Microsoft Yahei:weight=light:size=30}${color1}\
${voffset 20}\
${alignc}${time Hello, Beams}\
${font}${color}
]]
[图片上传失败...(image-293e0d-1648862843541)]
设置conky开机自启动,终端输入cp .config/autostart/tint2.desktop .config/autostart/conky.desktop
和deepin-editor .config/autostart/conky.desktop
,然后使用下面的内容替换打开的文档。
[Desktop Entry]
Categories=Utility;
Comment=Color temperature adjustment tool
Exec=conky
Name=conky.desktop
StartupNotify=true
Terminal=false
Type=Application
Version=1.0
X-Deepin-Vendor=user-custom
X-GNOME-Autostart-enabled=true
[图片上传失败...(image-ab6d8c-1648862843541)]
完成上面所有步骤,在切换一张壁纸后,Deepin桌面如下图所示。
[图片上传失败...(image-f586b0-1648862843541)]
4 总结
前人种树,后人乘凉,我不过是希望多一点人陪我一起乘凉。上面所有配置文件都是可以根据自身需求可以更改的,相关主题或配置文件均可在互联网上找到,但是此篇文章的配置文件都是本人调整出来的。如果你也喜欢Deepin,如果你也看好这个操作系统,最好的支持就是你的坚持使用!最后附上本人的桌面图片,它不美,但我甚是喜欢!
[图片上传失败...(image-70d9c6-1648862843541)]
5 参考文献
[1] https://baike.baidu.com/item/Linux/27050?fromtitle=Linux%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F&fromid=850887&fr=aladdin
[2] https://w3techs.com/technologies/comparison/os-linux,os-windows
[3] https://www.ionos.com/digitalguide/server/know-how/linux-vs-windows-the-big-server-check/
[4] https://medium.com/the-blog-of-ehsan-nazim/5-reasons-behind-linuxs-unpopularity-on-desktop-c87558fe2f7c
[5] https://www.deepin.org/zh/
[6] https://baijiahao.baidu.com/s?id=1602036758534237461&wfr=spider&for=pc
[7] https://bbs.deepin.org/post/204966
[8] https://bbs.deepin.org/post/205640
[9] https://polybar.github.io/
[10] https://gitlab.com/o9000/tint2
[11] https://bbs.deepin.org/post/195128
[12] https://www.linuxuprising.com/2019/12/a-guide-to-using-plank-dock-on-linux.html
[13] https://www.virtualbox.org/
[14] https://github.com/SeptemberHX/dde-istate-menus
[15] https://wiki.archlinux.org/title/Conky_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)