如何在 16.04 中从启动器永久解锁分区

Sev*_*Tux 2 command-line unlock launcher devices gsettings

我试图从启动器解锁分区,但每次重新启动后它们都会重新出现。有什么好方法可以从启动器中永久删除分区吗?

这仅在 Ubuntu 16.04 上发生

在此处输入图片说明

Jac*_*ijm 5

虽然下面的解决方案是不是一个修复到什么似乎是一个小错误,你可以使用它作为一个解决方法,以自动黑名单的设备上启动(登录)。

解决方案

...是一个小脚本,它会在登录时记住您列入黑名单的项目。它运行时带有两个参数:getset。第一个是读取当前列入黑名单的项目,第二个将(重新)将列表设置为上次读取的版本。

在实践中

  • 像以前一样从 Unity Launcher 中删除设备。
  • 运行命令/path/to/remember_blacklist.sh get 这将制作当前列入黑名单的设备的快照。

现在,下次登录或重新启动时,列入黑名单的设备将被自动删除。当然,您可以将命令添加到快捷方式。

如何使用/设置

  • 将下面的脚本复制到一个空文件中,另存为 remember_blacklist.sh

    #!/bin/bash
    
    arg=$1
    blacklist=~/.currblacklist
    key="com.canonical.Unity.Devices blacklist"
    
    if [ "$arg" == "get" ]
    then
     printf "$(gsettings get $key)" > $blacklist
    elif [ "$arg" == "set" ]
    then
      if [ "$(cat $blacklist)" == "@as" ]
      then 
        gsettings set $key []
      else
        gsettings set $key "$(cat $blacklist)"
      fi
    fi
    
    Run Code Online (Sandbox Code Playgroud)
  • 使其可执行(!)

  • 将以下内容添加到 Startup Applications Dash > Startup Applications > Add。添加命令

    /bin/bash -c "sleep 10 && /path/to/remember_blacklist.sh set"
    
    Run Code Online (Sandbox Code Playgroud)
  • 像往常一样从启动器中删除设备
  • 要记住,请运行: /path/to/remember_blacklist.sh get

解释

如果您从启动器中删除设备,它将被列入黑名单。您可以使用以下命令读取当前列入黑名单的设备列表:

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

这将输出类似

['0A444ED409660B91-intern_1', '2899FAA548C61099-intern_2']
Run Code Online (Sandbox Code Playgroud)

脚本的作用是:

  • 使用参数运行时get:它读取当前黑名单并将输出保存在隐藏文件中:~/.currblacklist
  • 使用参数运行时set:它读取文件的内容~/.currblacklist并使用以下命令设置黑名单:

    gsettings set com.canonical.Unity.Devices blacklist <content_of_the_file>
    
    Run Code Online (Sandbox Code Playgroud)