4

为啥Mac启动台图标删不掉?

 8 months ago
source link: https://sspai.com/post/85136
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

为啥Mac启动台图标删不掉? - 少数派

1
为啥Mac启动台图标删不掉?

Matrix 首页推荐  

Matrix  是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。 
文章代表作者个人观点,少数派仅对标题和排版略作修改。


最近有点时间在 mac 上开始游戏和模拟器(果然我这种爱折腾的人就爱在 windows 折腾生产力,在 mac 上折腾游戏),结果发现了一个比较有意思的 bug。

通过 Ryujinx Switch 模拟器把游戏添加游戏快捷路径(即:右键菜单的 Create Application Shortcut 功能);然后,在「应用程序」文件夹中把对应的. app 文件夹删除。

1
应用程序文件夹里已经找不到文件任何包含 Pok 字符的文件

此时在启动台中应该无法再看见该应用的图标,但事实是,该图标有概率会保留;

1
我的宝可梦 · 朱游戏图标就很神奇的保留了下来

甚至利用 Lemon 这种卸载工具也没办法卸载……

1
Lemon 上也完全查不到这个 APP

一开始本以为这是个系统级的 bug,查了会资料,大多推荐用 cleam my mac 或者 lemon 卸载,但是实测无用。要不就是找不到应用,要不就是卸载完后依旧在启动台有个图标。
更有甚者建议我把那个图标丢到文件夹的下一页眼不见心不烦……

原本已经准备放弃的时候,我猛然间发现如果通过 mac 的 steam 安装游戏并打开启动台直接启动游戏选项时,启动台会生成图标但文件夹中不会有相应的 app 文件生成。

这一现象给了我灵感,我意识到启动台的应用图标并不是和「应用程序」文件夹一一对应的,有另外的配置文件或数据库与之对应。

通过对启动台包名 com.apple.dock.launchpad 的查找,我终于找到了位于犄角旮旯的配置文件。很幸运,这个文件是个没加密过的 Sqlite 3 数据库文件,通过简单的 sql 语句我就查明白了数据库各个表的结构。

1
可以直接通过系统自带的 sqlite 命令查询修改数据库

于是最终的解决办法应运而生。

  • 打开 Finder
  • 按下 command+shift+G 启动前往窗口
  • 在前往中输入地址 /private/var/folders 后回车
1
mac 这功能藏的够深的,生怕我们乱搞系统配置文件吗,连文件路径跳转都要管……
  • 在当前文件路径下搜索 com.apple.dock.launchpad 这个文件夹
1
就是这个文件夹
  • 进入后有个文件夹 叫 db
1
如图
  • 打开终端,通过 cd 命令进入该文件夹
1
如果觉得手打路径太复杂,直接在 cd 之后把那个 db 文件夹拖到终端窗口就自动把路径带出了
  • 确认路径无误后在终端输入:
sqlite3 db "delete from apps where title=' 应用名称 ';"&&killall Dock`


1
命令大概意思是:删除数据库中的对应应用名称的那行数据,并重启整个 Dock + 启动台程序
  • 看见窗口跳动后即成功
1
图标终于清理了

接下来还有啥?

大概研究了一下,感觉有类似需求的人还挺多的,准备抽空花点时间写个简单的 Mac 小工具,实现可视化的启动台图标管理。说不定还能把启动台的各类图标自定义?或者做些奇特的操作?

各位如果有比较有意思的想法都可以留言,我研究研究是否能够实现。

> 下载 少数派 2.0 客户端、关注 少数派公众号,解锁全新阅读体验 📰

> 实用、好用的 正版软件,少数派为你呈现 🚀


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK