Ubuntuのデフォルトの音楽フォルダー/home/$USER/Music
を使用して、Windowsのライブラリーとほぼ同じように動作させたいと思います。基本的には、他のフォルダーのコンテンツを含む仮想フォルダーになります。
私の理論的根拠は、Rhythm Boxは新しい音楽用に1つのフォルダーのみを見るということです。私の音楽はすべて/home/$USER/Dropbox/Music
と/home/$USER/Dropbox/New Music
の2つのフォルダーにあります。
これは、Ubuntuのデフォルトフォルダー(ドキュメント、写真など)にある他のDropboxフォルダーの内容を表示するのにも役立ちます。
私は検索し、自分で答えを見つけようとしましたが、役に立ちませんでした。これを達成する方法があると確信しています。私はちょうどそれを見逃しています。
前もって感謝します。
以下のバックグラウンドスクリプトを使用すると、ディレクトリを設定して、任意の数の他のフォルダーの結合コンテンツを仮想的に表示できます。
フォルダのコンテンツ(シンボリックリンクが存在する)は、(結合された)ソースと動的に同期されます。
スクリプトは、ソースフォルダーのコンテンツと「ライブラリ」-viewのターゲットフォルダーを定期的にリストします。
リストの比較は非常に軽量(プログラム的に)で、リソースが少ないです。次のスクリプトよりもはるかに高速なループでスクリプトをテストしました。1つのディレクトリレベルで約500のアイテムを追加し、追加の(顕著な)負荷は一切ありませんでした。
#!/usr/bin/env python3
import os
import sys
import time
# --- set loop time below (or leave it as it is)
loop = 5
# ---
# don't change anything below
target = sys.argv[1]
sources = sys.argv[2:]
while True:
currlinks = os.listdir(target)
compare = []
for dr in sources:
for f in os.listdir(dr):
compare.append(f)
if not f in currlinks:
# create link
os.symlink(dr+"/"+f, target+"/"+f)
# clean up possible broken links
for link in currlinks:
if not link in compare:
os.remove(target+"/"+link)
# loop time
time.sleep(loop)
library_view.py
として保存しますテスト-targetedディレクトリを使用してスクリプトを実行し、最初の引数、次の引数としてのソースディレクトリ、例えば:
python3 /path/to/library_view.py /path/to/virtual_library /path/to/source1 /path/to/source2
このコマンドは、フォルダーsource1
およびsource2
内のvirtual_library
の内容を表示します。
すべてが正常に動作する場合は、起動アプリケーションに追加します:ダッシュ>起動アプリケーション>追加。コマンドを追加します。
python3 /path/to/library_view.py /path/to/virtual_library /path/to/source1 /path/to/source2
前述のように、必要に応じて3つ以上のディレクトリを追加できます。
何らかの理由でバックグラウンドスクリプトを使用しない場合は、次のスクリプトを使用して、ショートカットキーの下でまったく同じコマンドを使用して、ライブラリフォルダーを手動で更新(同期)できます。
#!/usr/bin/env python3
import os
import sys
target = sys.argv[1]
sources = sys.argv[2:]
currlinks = os.listdir(target)
compare = []
for dr in sources:
for f in os.listdir(dr):
compare.append(f)
if not f in currlinks:
# create link
os.symlink(dr+"/"+f, target+"/"+f)
# clean up possible broken links
for link in currlinks:
if not link in compare:
os.remove(target+"/"+link)
システム設定>「キーボード」>「ショートカット」>「カスタムショートカット」を選択します。 「+」をクリックして、選択したキーの組み合わせにコマンドを追加します。
python3 /path/to/library_view.py /path/to/virtual_library /path/to/source1 /path/to/source2
これにはunionfs-Fuse
をインストールできます:
Sudo apt-get install unionfs-Fuse
マウント:
unionfs-Fuse /folder1=RW:/folder2=RW /mount/point
folder1およびfolder2(または必要に応じてそれ以上)からマウントポイントまでのすべてのコンテンツをグループ化します。
マウント:
Sudo umount /mount/point