複数コンピュータ間で、デスクトップをオンラインストレージで共有する設定を行ったので紹介します。とりあえずMacとWindows PC間では共有に成功しました。同じような方法でLinuxも設定していきたいと思いますが、それは別途記載しようと思います。
私はオンラインストレージとしてNextcloudを使用していますが、おそらくGoogle DriveやOneDriveなどでも同様の手順で実現できると思われます。
パスは以下の通り仮定します。
元のデスクトップディレクトリ | ~/Desktop |
オンラインストレージのディレクトリ | ~/Nextcloud |
オンラインストレージ内の共有デスクトップフォルダ | ~/Nextcloud/Desktop |
まず、オンラインストレージ上に共有するDesktopフォルダを作成します。名前はなんでも構いませんが、日本語やスペース入りは避けた方が無難です。(変更した場合は後々のコマンドを読み替えてください。)
設定を行うコンピュータでオンラインストレージの同期が行われ、最新化されていることを確認します。
Macの場合
次に、Desktopフォルダをリンクで置き換えますが、Macではいくつか注意点があります。まず、Desktopフォルダにデフォルトで付けられている拡張属性による保護を外します。これはUNIXのパーミッションとは別で、macOSの独自の拡張属性によるディレクトリ保護のようです。
ただ、全ての環境でこれが存在するわけではないようです。私が確認したところMojaveのMac Proでは拡張属性は付いておらず、MontereyのM1 MBAでは付いていました。
確認する方法は以下のようにlsを実行し、
ls -l ~/
以下のようにパーミッションの右に@がついていたら拡張属性がついています。
drwxr-xr-x@ 14 username staff 448 2 26 21:33 Desktop
ディレクトリ保護の拡張属性が付いている場合に取り外す方法は以下の通りです。
cd
xattr -d com.apple.macl Desktop
もし、元に戻したい場合は以下の通りです。
cd
xattr -w com.apple.macl '' Desktop
次に、元々のDesktopフォルダをシンボリックリンクで置き換えますが、finderが起動しているとDesktopフォルダをリネームした瞬間に自動的に再作成されてしまい作業ができないので、まずはこれを終了させます。Finderは「強制終了」などから終了させられない(再起動しか選べない)ので、以下の方法で終了させます。
アクティビティモニタを起動し、右上の検索欄に「finder」と入力、Finderのプロセスを絞り込んだらそれを選択し、中央左あたりのxボタンを押し「終了」を選択し、プロセスを終了させます。
ここまできたら、以下のように元あった~/Desktopをオンラインストレージフォルダ内のDesktopフォルダへのリンクで置き換えます。
cd
sudo mv ~/Desktop ~/Desktop.back # 元のデスクトップフォルダをバックアップ
ln -s ~/Nextcloud/Desktop ~/Desktop # リンクを作成
後はDockのFinderアイコンをクリックすればDockが起動するので、デスクトップにオンラインストレージのDesktopフォルダ内のファイルが表示されていたら成功です。
Windowsの場合
こちらは特に面倒な作業なく行けました。
管理者権限でコマンドプロンプトを開き、以下を実行します。
※ なぜかPowerShellではmklinkコマンドが存在しないと出てしまいました。Windowsよくわかりません。。
cd ¥Users¥your_user_name¥
ren Desktop Desktop.back
mklink /D Desktop Nextcloud¥Desktop
再度ログインし、オンラインストレージ上のフォルダがデスクトップに表示されていれば成功です。