从 .desktop 文件显示名称中删除“链接到”

从 .desktop 文件显示名称中删除“链接到”

在 Firefox 中,如果我突出显示地址并将其拖到桌面,则会创建一个链接到该页面的 .desktop 文件。名称的形式为“链接到...”。是否有设置可以删除“链接到”部分?

编辑:澄清一下,我喜欢将网页链接拖到创建 .desktop 文件的桌面(或其他目录)。但是,我不喜欢“链接到...”命名方案。我知道我可以重命名文件作为第二步,但我问的是是否有办法避免该步骤。

答案1

命名可能是在 nautilus 中编码的,很难改变。

什么唯一可行的方法是自动修复,无需您采取任何措施,或者使用快捷键即可。唯一的限制是它只能在特定目录集(例如桌面和任意数量的附加目录(由您选择))下工作。

在此处输入图片描述

自动变为:

在此处输入图片描述

它能做什么

建议的解决方案是,您可以选择:

  • 后台脚本,自动查找名为“错误”的.desktop文件并立即自动重命名它们,或者:
  • 通过快捷键组合调用的脚本,执行完全相同的操作,但仅当您按下键时才执行

剧本;背景版本

我在处理器负载上测试了脚本,但没有注意到任何在我的旧系统(至少 6-7 年了)上进行额外活动(使用系统监视器)。

背景版本

#!/usr/bin/env python3
import time
import os
import sys

dirs = sys.argv[1:]
# ---you might need to edit the string below to your local (language) version
edit_out = "Link to"
# ---

def edit_link(dr, newfiles):
    for f in newfiles:
        file = dr+"/"+f; text = open(file).read().splitlines()
        for i, l in enumerate(text):
            if all([l.startswith("Name="), edit_out in l]):
                text[i] = text[i].replace(edit_out+" ", "")
                open(file, "wt").write("\n".join(text))

files1 = []
while True:
    time.sleep(2)
    for dr in dirs:
        files2 = os.listdir(dr)
        newfiles = [f for f in files2 if all([not f in files1, f.endswith(".desktop")])]
        edit_link(dr, newfiles)
        files1 = files2
  1. 将其复制到空文件中
  2. 另存为rename_links.py
  3. 如果需要,请更改以下行:

    edit_out = "Link to"
    

    该字符串"Link to"由您语言的本地化字符串("Verwijzing naar"荷兰语)

  4. 通过命令测试运行:

    python3 /path/to/rename_links.py <directory_1> <directory_2> (etc.)
    

    您可以在其中添加任意数量的目录(如果目录包含空格,请使用引号)

  5. 如果一切正常,请将其添加到您的启动应用程序中:Dash>启动应用程序>添加命令:

    python3 /path/to/rename_links.py <directory_1> <directory_2>
    

快捷版本

#!/usr/bin/env python3
import os
import sys

dirs = sys.argv[1:]
edit_out = "Link to"

def edit_link(dr):
    files = os.listdir(dr)
    for f in files:
        if f.endswith(".desktop"):
            file = dr+"/"+f; text = open(file).read().splitlines()
            for i, l in enumerate(text):
                if all([l.startswith("Name="), edit_out in l]):
                    text[i] = text[i].replace(edit_out+" ", "")
                    open(file, "wt").write("\n".join(text))

for dr in dirs:
    edit_link(dr)

设置与背景版本完全相同,除了[5.]

  1. 如果一切正常,请将脚本添加到快捷键:选择:系统设置>“键盘”>“快捷键”>“自定义快捷键”。单击“+”并添加命令:

    python3 /path/to/rename_links.py <directory_1> <directory_2>
    

解释

桌面上显示的名称并不是文件-name,但是名称,如Name=文件行中所定义的.desktop

该脚本会查找.desktop您用作参数的目录中的可能文件。如果它找到一行,以 开头Name=Link to,它替换(删除)Link to+ 一个空格,有效地重命名桌面上启动器的可见名称。


编辑

为了寻找“原生”解决方案,我尝试了 Mozilla 的插件桌面裁剪看看它对链接名称做了什么。在 14.04 和 15.04 上它都做了完全没有然而。

相关内容