ARTICLE DETAIL

资讯详情

深耕商务建站与企业官网运营的一线实战洞察。

Linux桌面隐藏图标指南:Ubuntu/Fedora GNOME三层机制与.desktop文件详解

Linux桌面隐藏图标指南:Ubuntu/Fedora GNOME三层机制与.desktop文件详解 “桌面太乱”“Dock 上全是用不到的图标”“应用列表里塞满了预装软件又不敢卸载”——这应该是我被问到最多的 Linux 桌面问题之一对象基本集中在 Ubuntu 22.04/23.10 和 Fedora 38/39 这两大 GNOME 系发行版。很多人以为想隐藏应用快捷方式图标就只能卸载软件其实完全没必要。隐藏和卸载是两回事而且方法并不复杂桌面图标归桌面图标管Dock 收藏归 Dock 管应用网格里的入口则由 .desktop 文件控制三层机制互不干扰只要搞清楚你具体想收拾哪一层按下面的做法一步步来就行。这篇内容我就把自己在 Ubuntu 和 Fedora 上折腾过的完整方案、命令行参数、踩坑记录都整理出来给你一份可以直接照着操作的手册。1. 动手之前先弄清楚你要隐藏的到底是哪一类图标1.1 三个不同层面的“快捷方式图标”和对应方案很多新手一开始会很懵同样是隐藏图标为什么有的右键就能移除有的要改文件因为 Linux 桌面上“应用图标”根本不是同一个东西至少分三层桌面上的图标比如你在 Ubuntu 桌面上看到的“主目录”“回收站”以及从文件管理器拖出来的应用图标。这一层由桌面扩展控制Ubuntu 上最常见的是 Desktop Icons NG也就是 DING 扩展。Dock/任务栏上的收藏图标Ubuntu 左侧那一竖排应用本质是 Dash to Dock 扩展Ubuntu 定制版叫 Ubuntu Dock里面的快捷方式是“收藏夹”和 Windows 任务栏固定应用一个意思。Fedora 默认没有 Dock除非你手动装了 Dash to Dock 类似扩展。“显示应用程序”网格里的图标就是你按 Super 键打开那个九宫格里面按字母排列的全部已安装应用入口。这一层不是扩展而是由每个应用提供的 .desktop 文件决定的。网格里那个小的启动按钮以及某些应用搜索时出现的结果都读这个文件。理解这三层之后思路就清晰了桌面图标用扩展设置关Dock 收藏用“取消收藏”或 gsettings 管应用网格里的入口靠改 .desktop 文件隐藏。千万别用“整个系统删文件”的方式去处理太容易被自己坑到。1.2 隐藏不等于卸载这几类应用不建议直接卸载我见过不少朋友为了一个不常用的预装软件直接 sudo apt remove结果不小心卸掉了依赖桌面环境都跟着出问题。隐藏图标就友好得多它只是让入口从视觉上消失软件本体还在。下面这几类情况强烈建议用隐藏而不是卸载系统预装但你不怎么用的应用比如 LibreOffice 全家桶、Rhythmbox 播放器、GNOME Games 之类。它们偶尔可能还会被某些文档格式触发打开卸了反而影响文件关联。某些桌面组件周边应用比如关于系统信息的 GNOME 控制中心入口、软件商店等。你不在图形界面点它不代表系统不需要它的底层组件。只是“碍眼”但偶尔还要用的应用比如 Firefox隐藏图标后照样可以从终端执行 firefox 启动也可以通过默认浏览器关联打开链接完全不影响使用。隐藏操作的成本极低后悔了随时能恢复而卸载是重型操作依赖关系复杂所以我后面的所有方案都围绕“隐藏”来展开。2. 桌面图标让桌面彻底回归“一块干净的壁纸”2.1 GNOME 的桌面设计理念与 Ubuntu 的特殊处理先讲一个很多人不知道的背景GNOME 桌面从一开始就不怎么提倡在桌面上放图标官方默认桌面就是一块干净的壁纸加顶栏。Fedora 的 GNOME 也是这样装完就是空桌面。但 Ubuntu 为了降低 Windows 转过来的用户的学习成本加装了一个桌面图标扩展默认显示“主目录”“回收站”等图标并允许你把应用文件拖到桌面。所以如果你用的是 Ubuntu桌面上那些快捷方式图标就是 DING 扩展渲染出来的。Fedora 用户如果之前没装过桌面图标扩展桌面一般不会有应用图标也就不需要折腾这一步。但如果你在 Fedora 上手动开启过类似扩展后面的方法一样适用。2.2 关闭桌面图标扩展的两种实操方法方法一图形界面关闭适合不熟悉命令行的用户。打开“扩展管理器”GNOME Extensions 工具Ubuntu 22.04 已预装Fedora 可以在软件中心装 Extension Manager 或 gnome-extensions-app在列表里找到“Desktop Icons NG (DING)”把开关关掉即可桌面图标会立刻消失不需要重启。方法二命令行关闭适合批量操作或远程通过 SSH 调整。首先用 gnome-extensions list 确认扩展的准确 IDgnome-extensions list | grep ding在 Ubuntu 22.04/23.10 上通常会看到 dingrastersoft.com然后执行gnome-extensions disable dingrastersoft.com想恢复就用 enablegnome-extensions enable dingrastersoft.com这里我踩过一次坑如果桌面上已经放了重要文件关闭扩展后它们只是不在桌面显示文件本身还留在 ~/Desktop 目录里通过文件管理器照样能看到和打开不要以为文件丢了。2.3 保留“回收站/主目录”等特定图标的开关有些人是希望桌面保持干净但又想留一两个入口比如“主目录”图标。这种情况不需要整体禁用 DING 扩展而是去扩展设置里单独调整。在 Extensions 工具里点击 DING 右侧的齿轮图标打开设置里面通常有控制是否显示主目录、回收站、挂载磁盘等特殊图标的选项。取消勾选不需要的保留想要的桌面就会变成一个“精简模式”。如果你习惯用 dconf 命令管理也可以直接在扩展对应的 schema 路径下找 show-home、show-trash 这类键名一般在 /org/gnome/shell/extensions/ding/ 下来开关。但说实话这个页面我用得少因为 DING 的图形设置已经够直观了没必要记那么多键名容易记混。3. Dock 与收藏夹把任务栏上的应用图标清一清3.1 从 Dock 中移除单个应用取消收藏Ubuntu 默认的左侧 Dock 是 Ubuntu Dock本质上就是把 Dash to Dock 集成进了系统。要移除某一个应用图标非常简单在 Dock 上右键点击图标在菜单里选“从收藏夹中移除”或者英文版 Rermove from Favorites图标就会从 Dock 消失。注意这不会卸载应用只是取消固定应用仍在应用网格里。如果你的鼠标是 Mac 风格的单键或者更喜欢键盘操作还有一个更快的办法按 Super 键打开概览在 Dock 上按住图标拖动到空白区域松开后也会移除收藏另外可以在应用图标上按 SuperAlt 组合键配合右键操作不过这有点绕我一般还是用右键菜单。如果右键菜单里没有“从收藏夹中移除”多半是因为你装的不是 Ubuntu 官方 Dock而是第三方的 Dash to Dock 或 Plank 这类 Dock。第三方的取消固定方式略有差异但基本逻辑都是右键找 unpin、unlock 或 drag away。3.2 用 gsettings 精确管理收藏夹里的应用右键一个个点太慢我更喜欢直接控制收藏列表数据。GNOME 把 Dock 上的收藏项存储在 org.gnome.shell 的 favorite-apps 键里是一个 .desktop 文件 ID 的数组。你可以这样查看当前收藏了哪些应用gsettings get org.gnome.shell favorite-appsUbuntu 22.04 默认输出大概是[org.gnome.Nautilus.desktop, firefox.desktop, org.gnome.Software.desktop, yelp.desktop]想只保留文件管理器和终端就可以直接 setgsettings set org.gnome.shell favorite-apps [org.gnome.Nautilus.desktop, org.gnome.Terminal.desktop]这里有一个关键点应用 ID 必须和 /usr/share/applications/ 或者用户目录里实际的 .desktop 文件名一致。比如火狐的文件名可能是 firefox.desktop而终端则是 org.gnome.Terminal.desktop不同发行版略有差异。想知道某个应用准确的 ID可以到对应目录里 ls 一下或者用我第四章讲的方法查。万一设置错了Dock 上只是不显示对应图标不会报错但你会以为设置没生效。3.3 自动隐藏与彻底取消 Dock如果你不是想去掉某些图标而是想让整个 Dock 在不需要时自动藏起来给桌面腾出更多空间这一步很有用。Ubuntu 22.04 上图形界面就能设置打开“设置 - 外观”里面有一个“Dock”区域可以直接开关 Dock 的自动隐藏选项。这个开关在 gsettings 里对应的是 dash-to-dock 扩展的参数# 开启自动隐藏鼠标移出 Dock 区域时 Dock 隐藏 gsettings set org.gnome.shell.extensions.dash-to-dock autohide true # 开启智能隐藏只有窗口遮挡时才隐藏 gsettings set org.gnome.shell.extensions.dash-to-dock intellihide trueautohide 和 intellihide 的区别我用了很久才真正理解前者是“不触发就隐藏”鼠标一离开 Dock 它自己缩回去后者是“有窗口挡住才隐藏”Dock 始终显示直到某个应用窗口最大化或靠近它时才让开。日常使用我推荐 autohide体验更接近 macOS 的程序坞。而如果你连自动隐藏都不想要只想彻底取消左侧 Dock在 Ubuntu 上可以把这个扩展整个禁用gnome-extensions disable ubuntu-dockubuntu.com这样左侧 Dock 整个消失应用启动就靠按 Super 键呼出概览。Fedora 用户这里可以跳过因为 Fedora GNOME 默认就没有 Dock。4. 应用网格隐藏“显示应用程序”里不想要的软件4.1 原理.desktop 文件是应用图标的真正来源这是整个主题里含金量最高的一部分也是隐藏应用快捷方式图标的核心机制。Linux 桌面上的每个应用入口都来自于一个 .desktop 文件它本质上是一个纯文本配置文件描述了应用名称、图标路径、启动命令、适用类别等。系统级应用入口放在 /usr/share/applications/用户级入口放在 ~/.local/share/applications/。GNOME 的应用网格会扫描这两个目录把“可显示”的应用列出来。控制要不要显示关键字段是两个NoDisplay 和 Hidden。它们看起来很像但语义有区别字段含义典型后果NoDisplaytrue应用本体仍已注册只是告诉桌面环境不要在菜单/网格中显示应用列表里消失但文件关联、URL 协议处理仍然生效Hiddentrue表示应用入口已隐藏属于更强的“不要显示”提示多数桌面环境同样隐藏但某些启动器可能同时把它从“默认应用”候选里剔除实际处理时我建议优先使用 NoDisplaytrue。原因很简单它对桌面环境的“副作用”更小。比如你把 Firefox 的入口设成 Hiddentrue某些桌面环境在检测默认浏览器时可能会认为这个应用“不存在”导致默认应用列表里出现空缺而 NoDisplaytrue 只是不让它出现在图形菜单里底层注册信息还在该被调用时照样能调用。4.2 三步实操隐藏 LibreOffice、Firefox 等预装软件第一步找到目标应用对应的 .desktop 文件。最直接的办法是去系统目录里查Ubuntu 用 dpkg 查包Fedora 用 rpm 查包# Ubuntu/Debian 系 dpkg -L libreoffice-writer | grep desktop # Fedora/RHEL 系 rpm -ql libreoffice-writer | grep desktop查出来一般就是 /usr/share/applications/libreoffice-writer.desktop。如果不知道应用属于哪个包也可以先浏览目录看到可疑的就用文本编辑器打开确认ls /usr/share/applications/ | less cat /usr/share/applications/libreoffice-writer.desktop第二步复制到用户目录再改不要直接 sudo 改系统文件。这是我最想强调的一点很多人习惯直接 vi /usr/share/applications/xxx.desktop加一行 NoDisplaytrue 完事。短期看没问题但系统更新升级时这个文件很可能被覆盖你的修改会消失而且一旦写错字段影响的是所有用户。更优雅的做法是用户级覆盖利用 XDG Base Directory 规范里“用户目录优先于系统目录”的原则cp /usr/share/applications/libreoffice-writer.desktop ~/.local/share/applications/ sed -i /^\[Desktop Entry\]/a NoDisplaytrue ~/.local/share/applications/libreoffice-writer.desktop我解释一下第二行 sed 做了什么在文件里找到 [Desktop Entry] 这一节的小节头然后在它下面插入 NoDisplaytrue。这样改动只影响当前用户而且不会改动系统原始文件升级也好、回滚也好都很干净。第三步验证效果。正常按 Super 打开应用网格刚才那个应用应该已经从列表消失了即使搜索也搜不到。因为 GNOME 在渲染应用列表时会读取用户目录的 .desktop 文件发现 NoDisplaytrue 就过滤掉。4.3 恢复图标与额外注意事项想恢复显示把用户目录里复制出来的那份文件删掉就行rm ~/.local/share/applications/libreoffice-writer.desktop删完立刻刷新注销重登或按下面第 6 章的方法重载 Shell那个应用的图标就回到应用网格了。这个回滚操作我写过太多次几乎成了肌肉记忆。这里再补几个实际场景中很容易踩的坑有些应用是 Flatpak 方式安装的它的 .desktop 文件不在 /usr/share/applications/而在 /var/lib/flatpak/exports/share/applications/ 或 ~/.local/share/flatpak/exports/share/applications/。你也按同样的逻辑复制到你自己的 ~/.local/share/applications/ 下面修改效果一致。如果目标应用同时有系统级和用户级 .desktop 文件用户级文件会“遮蔽”系统级文件所以修改用户级文件时最好基于系统级文件的内容复制不要自己凭空写一个只有两三行的文件否则应用可能直接启动不了了。藏了某个应用之后如果你在 Nautilus 文件管理器里双击它关联的文件类型比如双击 .odt 文件LibreOffice Writer 仍然会正常打开这是 NoDisplay 带来的好处和通过图标启动是两套机制。5. 顶栏与托盘图标那些常驻通知区的应用怎么处理5.1 GNOME 顶栏的“应用图标”从哪里来有部分应用并不会把快捷方式放在 Dock 或应用网格里而是一直缩在顶栏右上角的系统托盘区域比如 Discord、Steam、Telegram 这类一旦启动就常驻后台的程序。在 GNOME 桌面上这些托盘图标依赖一个叫 AppIndicator 的扩展机制GNOME 里又叫 KStatusNotifierItem Support。Ubuntu 默认就整合了 AppIndicator 支持所以你会发现 Ubuntu 上按 X 关掉某个应用后它还能在托盘里继续跑而 Fedora 默认没有装这个扩展很多应用连托盘图标都不显示很多人还以为程序直接没了其实进程还在后台。如果你是想“隐藏某个应用的托盘图标”这里要非常谨慎GNOME 的托盘机制是全局的并没有提供“只藏某一个”的原生开关。也就是说你不能直接在系统设置里指定某个应用不显示托盘图标。更现实的做法是到这个应用自己的设置里关掉它的“系统托盘”“关闭到托盘”“最小化到托盘”等选项。比如 Discord 的设置里关掉“托盘图标”Steam 在“界面”里取消“在托盘显示图标”不同软件叫法不一样但逻辑都是应用自己控制是否注册托盘入口。5.2 联动清理把“通知区”也一并收拾干净很多人收拾桌面时会顺手把顶栏也一并精简。我自己的习惯是先在应用网格里把不常用的预装软件藏掉再把 Dock 上长期不点的图标取消固定最后才考虑顶栏。顶栏右侧的蓝牙、Wi-Fi、电池、音量图标属于系统状态区不建议去动因为它们是系统级功能入口隐藏后很难通过其他方式快速访问。如果你实在想藏GNOME 扩展里也有人做过类似“Hide System Tray”的工具但我不推荐因为每次连蓝牙或切音量的操作链路都会变长省下来的空间价值不大。还要提一个和“隐藏”方向相反的经典困惑如果你在 Fedora 上装了微信、QQ 或 Telegram发现它们没有托盘图标那不是你弄坏了什么而是 Fedora 默认缺少 AppIndicator 支持。可以安装 “AppIndicator and KStatusNotifierItem Support” 扩展后托盘图标才会出现。这个和隐藏是反向操作但属于同一套机制搞懂原理后你就知道什么时候装、什么时候改、什么时候藏。6. 常见问题与避坑实录6.1 改了 NoDisplay 图标还在多半是缓存或文件位置问题这是被问得最多的一个问题“为什么我加了 NoDisplaytrue应用还是出现在网格里”我排查过很多次原因基本是以下几种文件位置不对。系统里可能有多个同名 .desktop 文件你改的是 /usr/share/applications/ 下的一份但 GNOME 实际读取的是 Flatpak 的 exports 目录或者用户目录里的另一份。处理办法是按 4.2 节的流程重新查找一遍所有位置确认你要隐藏的是哪一份。改了之后没有重新加载会话。GNOME 对应用列表有缓存但最简单的刷新方式就是注销重新登录。如果想快速测试在 X11 会话下可以按 AltF2输入 r 回车来重启 Shell但 Ubuntu 23.10 和 Fedora 39 默认是 Wayland 会话没有 AltF2 这个快捷方式老老实实注销一次最省心。user 目录里有一个旧的同名 .desktop 文件把它覆盖了。因为用户级优先级高于系统级如果 ~/.local/share/applications/ 下有一个同名文件你的系统级修改会失效。把用户目录里那份也一起改或者删掉让它“让位”给系统级文件。6.2 GNOME 45Fedora 39、Ubuntu 23.10和旧版有什么要注意的Fedora 39 和 Ubuntu 23.10 都已经升级到了 GNOME 45。GNOME 45 对扩展系统做了一次比较大的调整很多旧扩展需要重新适配。这里会影响的操作主要是通过 Extensions 工具去控制 DING、Ubuntu Dock 这类扩展时需要确保扩展本身已经升级到支持 GNOME 45 的版本否则开关可能不显示或无效。但是好消息是本章涉及的核心机制都没有变.desktop 文件的 NoDisplay 字段、gsettings 的 favorite-apps、gnome-extensions enable/disable 这套命令在 GNOME 44 和 GNOME 45 上都是通用的。所以你在 Fedora 38 上学会了到 Fedora 39 甚至 40 上基本还是同一套流程顶多扩展版本名有点不一样。6.3 折腾坏了怎么快速还原隐藏操作本身风险极低但组合操作多了之后偶尔会想骂娘比如把 favorite-apps 数组改坏了、Dock 没了但系统又没坏。这时候不要慌我整理了几个恢复命令# 恢复默认收藏夹重新出现系统预置的 Dock 图标 gsettings reset org.gnome.shell favorite-apps # 恢复 Ubuntu Dock 扩展如果之前禁用过 gnome-extensions enable ubuntu-dockubuntu.com # 恢复 DING 桌面图标扩展 gnome-extensions enable dingrastersoft.com # 如果 dash-to-dock 配置被改得乱七八糟干脆全部重置 dconf reset -f /org/gnome/shell/extensions/dash-to-dock/我个人的经验是改动之前记下原始值比如运行 gsettings get 把输出复制到文本编辑器里再动手改。这套办法成本最低也最适合新手。6.4 万一你用是 Fedora KDE Spin 而不是 GNOME虽然题目集中在 Ubuntu 和 Fedora 的 GNOME 桌面但 Fedora 是有官方 KDE Spin 版本的KDE Plasma 桌面里隐藏快捷方式的方法略有不同。KDE 的应用启动器里你可以直接点击“应用程序启动器”的编辑模式右键目标程序选择“隐藏”底层原理其实也是给 .desktop 文件写入 NoDisplaytrue 或类似标记。如果你想手动改位置也在 /usr/share/applications/ 和 ~/.local/share/applications/这算是一个跨桌面环境的通用知识KDE 和 GNOME 在这方面遵循同一套规范。最后再分享一个小技巧这一套操作下来我自己的 Ubuntu 桌面现在只保留了三样东西Dock 上固定了文件管理器和终端应用网格里只显示我自己真正会安装的工具和软件桌面则完全保持空白壁纸状态。隐藏图标不等于封印软件它们还在文件管理器的路径里、还在终端命令行里你只是在给自己塑造一个低干扰的工作环境。刚开始操作时建议一次只改一项每一步改完都刷新看一下效果不要一次性把 favorite-apps、.desktop 文件、扩展开关全部改完否则出问题很难定位。等你熟悉了这套机制之后你会发现 Linux 桌面“乱不乱”完全是自己说了算的。
返回列表
PREV
查看更多资讯
NEXT
返回资讯列表