防止外部设备被锁定到启动器

amo*_*871 5 usb android mtp 14.04

如果我连接外部设备(例如 U 盘或 Android 智能手机),它将自动在 nautilus 中打开并获得一个锁定到统一启动器的相应图标。有什么办法可以防止这种情况吗?

我正在使用 Ubuntu 14.04

Jac*_*ijm 5

如果您从 Unity Launcher 解锁设备,它实际上已从Launcher列入黑名单。您可以通过命令查看当前哪些设备被列入黑名单:

gsettings get com.canonical.Unity.Devices blacklist
Run Code Online (Sandbox Code Playgroud)

下面的脚本是设置您自己的黑名单设备的另一种方法。不同之处在于脚本以永久方式执行此操作,直到您删除文件~/.blacklist_data. (见解释:它是如何工作的

后台脚本

即使对于后台脚本,这个也是非常轻量级的,因为如果黑名单没有任何变化,命令只会读取当前的黑名单gsettings。它读取dconf数据库,这是binary格式,因此重量很轻。

剧本

gsettings get com.canonical.Unity.Devices blacklist
Run Code Online (Sandbox Code Playgroud)

如何使用

  1. 将脚本复制到一个空文件中,另存为 myown_blacklist.py
  2. 通过以下命令测试运行它:

    python3 /pat/to/myown_blacklist.py`
    
    Run Code Online (Sandbox Code Playgroud)

    现在解锁您的(任何,它不仅适用于 USB 设备)不需要的设备。解锁只需要一次。

  3. 如果一切正常,请将其添加到启动应用程序:选择 Dash > 启动应用程序 > 添加。添加命令:

    python3 /pat/to/myown_blacklist.py`
    
    Run Code Online (Sandbox Code Playgroud)

这个怎么运作

问题是 Unity 会在卸载设备后“忘记”这些设备。然后脚本会跟踪以下输出会发生什么:

gsettings get com.canonical.Unity.Devices blacklist
Run Code Online (Sandbox Code Playgroud)

如果将项目添加到列表中,脚本会将列表写入主目录中的隐藏文件。如果一个项目被删除,它会读取隐藏文件并恢复黑名单(这在卸载设备时只需要一次)