GNU/Linux >> Linux の 問題 >  >> Ubuntu

外部デバイスがランチャーにロックされるのを防ぎますか?

外部デバイス(USBスティックやAndroidスマートフォンなど)を接続すると、nautilusで自動的に開き、対応するアイコンがユニティランチャーにロックされます。これを防ぐ方法はありますか?

Ubuntu14.04を使用しています

承認された回答:

Unity Launcherからデバイスのロックを解除すると、実際にはブラックリストに登録された ランチャーから。次のコマンドで、現在ブラックリストに登録されているデバイスを確認できます:

gsettings get com.canonical.Unity.Devices blacklist

以下のスクリプトは、独自のブラックリストに登録されたデバイスを設定する別の方法です。 。違いは、ファイル~/.blacklist_dataを削除するまで、スクリプトが永続的な方法でそれを実行することです。 。 (説明を参照:仕組み

バックグラウンドスクリプト

バックグラウンドスクリプトの場合でも、これは非常に ブラックリストに何も変更がない場合、現在のブラックリストのみがgsettingsによって読み取られるという事実の結果として、軽量です。 指図。 dconfを読み取ります binaryにあるデータベース フォーマット、したがって非常に軽量です。

スクリプト

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

blacklist_data = os.environ["HOME"]+"/.blacklist_data"

def get_setlist():
    cmd = "gsettings get com.canonical.Unity.Devices blacklist"
    blacklist = subprocess.check_output(["/bin/bash", "-c", cmd]).decode("utf-8").strip()
    return "[]" if blacklist == "@as []" else blacklist

try:
    blacklist1 = str(open(blacklist_data).read()).strip()
    cmd = 'gsettings set com.canonical.Unity.Devices blacklist "'+blacklist1+'"'
    subprocess.call(["/bin/bash", "-c", cmd])
except FileNotFoundError:
    blacklist1 = "[]"
    open(blacklist_data, "wt").write(blacklist1)

while True:
    time.sleep(1)
    blacklist2 = get_setlist()
    if blacklist2 != blacklist1:
        oldlist = open(blacklist_data).read().strip()
        n_old = len(eval(oldlist))
        try:
            n_new = len(eval(blacklist2))
        except SyntaxError:
            n_new = 0
        if n_old < n_new:
            open(blacklist_data, "wt").write(blacklist2)
        else:
            cmd = 'gsettings set com.canonical.Unity.Devices blacklist "'+oldlist+'"'
            subprocess.call(["/bin/bash", "-c", cmd])
    blacklist1 = blacklist2

使用方法

  1. スクリプトを空のファイルにコピーし、myown_blacklist.pyとして保存します
  2. 次のコマンドでテスト実行します:

    python3 /pat/to/myown_blacklist.py`
    

    次に、不要なデバイス(USBデバイスだけでなく)のロックを解除します。ロック解除は1回だけ必要です。

  3. すべてが正常に機能する場合は、スタートアップアプリケーションに追加します。[ダッシュ]>[スタートアップアプリケーション]>[追加]を選択します。コマンドを追加します:

    python3 /pat/to/myown_blacklist.py`
    

仕組み

問題は、デバイスがマウント解除されると、Unityがデバイスを「忘れる」ことです。次に、スクリプトは次の出力に何が起こったかを追跡します:

gsettings get com.canonical.Unity.Devices blacklist

アイテムがリストに追加されると、スクリプトはリストをホームディレクトリの隠しファイルに書き込みます。アイテムが削除されると、隠しファイルを読み取り、ブラックリストを復元します(これは、デバイスのアンマウント時に1回だけ必要です)

関連:「grub-efi-amd64-signed」パッケージはtarget /のインストールに失敗しましたか?
Ubuntu
  1. JournalctlでSyslogがログに記録されないようにしますか?

  2. パッケージがインストールされないようにする必要がありますか?

  3. Ubuntu 14.10にはダッシュもランチャーもありませんか?

  1. Vpsサービスを使用して、Vpsホストがデータにアクセスできないようにすることはできますか?

  2. Bluetoothがデバイスを見つけられない!?

  3. デバイスや外部の電子メールアプリケーションでcPanelの無料電子メールを設定するにはどうすればよいですか?

  1. SWAPに行くのを防ぐには?

  2. 特定の名前のフォルダが作成されないようにすることはできますか?

  3. イカが検出されないようにするにはどうすればよいですか?