定义
Dash to Dock是一个面向GNOME Shell的扩展程序,作用对象是GNOME桌面中名为Dash的应用列表。[1]在原始的GNOME Shell中,Dash只在按下Super键进入活动概览时才出现,用于展示正在运行的程序,并兼作快速启动与收藏功能。[4]该扩展改变这一行为,把Dash移出概览界面,使其转换为一直显示在桌面上的停靠栏,从而让用户不必离开桌面视图即可启动应用、切换窗口和切换工作区。[1]
扩展包在系统中的标识为 dash-to-dock@micxgx.gmail.com,元数据中的名称即Dash to Dock。其源代码以GNU通用公共许可证第2版或更高版本发布。[1]
原理
GNOME Shell是建立在Clutter与Mutter之上的图形外壳,界面由可组合的actor对象树构成,Dash本身也是这棵树中的一个actor。[4]Dash to Dock的做法是取用Shell原本的Dash实现并加以改造,把它放入一个名为dashtodockContainer的容器actor中,再重新安排这个容器的位置与显示策略,因此不需要另写一套应用启动逻辑。[4]
由于Dash被移出概览,扩展需要自行处理停靠栏何时可见。它提供固定显示、自动隐藏(autohide)和智能隐藏(intellihide)等模式,其中智能隐藏会依据当前窗口是否与停靠栏区域重叠来决定显隐,并在全屏窗口出现时按最大化窗口对待。[5]多显示器场景下,扩展默认把停靠栏放在主显示器,也允许指定其他显示器;当选定的显示器被移除时,停靠栏会回到主显示器。[4]
扩展的配置存放在GSettings(dconf)数据库中,路径为 /org/gnome/shell/extensions/dash-to-dock/。[4]外观样式表使用SASS编写并编译为CSS,可选用dart-sass、sassc或已废弃的ruby-sass完成构建。[1]界面文本通过gettext机制进行本地化。[4]
发展历程
该扩展于2012年5月首次发布,最初版本号为1,当时仅具备基本的智能隐藏功能。[4]整个2012年是功能快速累积的阶段:版本3加入智能隐藏与自动隐藏的设置项,版本5为GNOME Shell 3.4把配置迁移到gschema并提供了图形设置界面,版本8改进多显示器支持并加入滚动切换工作区、图标尺寸上限设置等能力,版本12增加从右到左语言支持,版本14引入图标上的运行与聚焦指示以及点击动作自定义。[4]
其后的版本号大体跟随在GNOME官方扩展网站上的上传顺序递增。[4]扩展兼容自GNOME 3.2起的各个Shell版本,可用范围涵盖GNU/Linux与BSD等能运行GNOME 3的系统;开发主线一般对应最新的Shell版本,并为旧版本保留gnome-3.x分支。[6]在发行版打包方面,Fedora从版本92起持续跟进,到Fedora 45已打包至105;Debian则把该扩展收录为gnome-shell-extension-dashtodock软件包。[2]
Ubuntu从18.04 LTS起把以该扩展为基础的Ubuntu Dock作为默认桌面组件,包名为gnome-shell-extension-ubuntu-dock,维护者为Didier Roche;该分支被描述为修改了默认值的Dash to Dock,去掉了一部分配置项。[3][7]Pop!_OS 22.04则包含由Dash to Dock派生而来的Cosmic Dock,若另行安装原始扩展需先禁用前者以免出现两个停靠栏。[8]
应用
扩展最常见的用法是把停靠栏放置在屏幕左侧或底部,从而得到接近Unity启动器或macOS Dock的桌面布局,位置、图标尺寸、是否延伸到屏幕边缘都可在设置中调整。[8][9]外观方面可以修改背景颜色与不透明度,也可以关闭自带背景以沿用当前主题的样式。[9]
行为设置中可以选择点击图标时的动作,例如把已聚焦窗口最小化,或在同一应用的多个窗口之间展开预览。[9]启用键盘快捷键后,可用Super键加数字键启动或切换到停靠栏上对应位置的程序;在停靠栏上滚动鼠标可切换工作区。[9][4]此外还可以只显示收藏的应用或只显示正在运行的应用,并支持多显示器与从右到左语言环境。[4]
安装途径主要有两条:一是通过发行版自带的软件包管理工具安装,二是从GNOME官方扩展网站开启开关完成安装并由该网站负责后续更新。[9][6]也可从源码构建,克隆仓库后执行make与make install即可安装到用户主目录,启用则借助gnome-extensions-app或dconf。[1]
局限
扩展与GNOME Shell版本绑定较紧,Shell内部API变动时常导致旧版本不可用,因此新发布的Shell版本需要等待扩展适配;开发版(偶数版本号)的Shell并不在兼容保证之列,只能手动在metadata.json中声明版本号尝试运行。[6][10]
部分外观特性依赖主题配合。例如按窗口数量显示运行指示器、以及聚焦应用的样式,都需要主题实现相应的CSS类,默认主题未必支持。[4]扩展已知的问题还包括:在启用Nautilus的显示桌面功能时,桌面图标缺少应有的间距;多显示器环境中停靠栏隐藏后会滑入相邻显示器,虽然不可见却仍会截获其他窗口的鼠标点击。[4]
在Ubuntu等已经把派生分支作为默认组件的系统上,同时启用二者会出现重复的停靠栏,需要先禁用系统自带的那一个。[8][11]
参见
参考资料
- dash-to-dock [引用日期2026-10-14]
- gnome-shell-extension-dash-to-dock [引用日期2026-10-14]
- 0.9.1ubuntu18.04 [引用日期2026-10-14]
- Review "Dash to Dock" version 31 [引用日期2026-10-14]
- XDash-O-DockX [引用日期2026-10-14]
- Dash to Dock [引用日期2026-10-14]
- gnome-shell-extension-ubuntu-dock [引用日期2026-10-14]
- Pop!_OS 22.04 Customization [引用日期2026-10-14]
- itsfoss.com 上的网页 [引用日期2026-10-14]
- gnome-shell-extension-dashtodock [引用日期2026-10-14]
- github.com 上的网页 [引用日期2026-10-14]