OSX上のGoogle ChromeはUbuntuで作成された.desktopファイルを開きません


1

私は最近、OSXを実行する他のコンピューターと共有したいUbuntu 14.04マシンに大量のインターネットリンクを収集して保存しましたが、Google ChromeはUbuntuのようにこれらのファイルをOSXで開かないことに気付きました。ファイルは.desktopfilesです。ファイルの内容の例は次のとおりです。

[Desktop Entry]
Encoding=UTF-8
Name=Link to Lifehacker Pack for Chrome: Our List of the Essential Extensions
Type=Link
URL=http://lifehacker.com/
Icon=text-html

OSXは、このファイルタイプをどう処理するかをネイティブに認識していないため、ファイルを開くために使用するアプリケーションを選択するように求められます。Google Chromeの使用を選択した場合、ファイルの内容がタブに表示されるだけで、ファイル内のURLには移動しません。Firefoxでファイルを開くと、新しいタブにURLが正常にロードされます。

Google Chromeでこれらのファイルを正常に開くにはどうすればよいですか?


.desktopファイルはUbuntuに固有ですhelp.ubuntu.com/community/UnityLaunchersAndDesktopFiles
マーク

@Mark-上記の投稿で述べたように、OSX上のFirefoxはこれらのファイルを簡単に開きます。
カラマルカキッド

回答:


1

私の主なOSはOS Xですが、使用しているLinux Mintシステムがあり、両方のシステムで同じことをしたいという同じような状況に陥ります。直接サポートされていない場合は、別の方法を見つける必要があります。このような場合、.desktopファイルに関する他の質問のように、ファイル用のブラウザ拡張機能がなかった場合.url、ここで私がやることがあります。

.desktopファイルを.weblocファイルまたは.urlファイルに変換し、既定のアプリ設定ペインであるRDefaultcodeのRCDefaultAppを使用して、特定のファイル拡張子を開くアプリケーションを変更します。

これは、数年前に書いた同様のスクリプトから修正したbashスクリプトです。このスクリプトはURLを含むファイルからファイルを作成します。.webloc.url.desktop

  1. ターミナルでcd.desktopファイルを含むディレクトリに移動します。
  2. 以下のコマンドを発行します。

    touch d2wu
    open d2wu

  3. 以下のコードをコピーして、開いているd2wuファイルに貼り付けます。


#!/bin/bash

clear
echo
echo " Create .webloc/.url files from .desktop files."
echo " ----------------------------------------------"
echo "              Choose File Type(s):" 
echo
echo " [1] Create .webloc & .url files."
echo " [2] Create only .webloc files."
echo " [3] Create only .url files."
echo " [Q] Quit."
echo
echo " Press 1 to 3 or Q then press Enter..."

Create_WEBLOC () {
    for f in *.desktop; do
        if [[ ! -f  ${f%.*}.webloc ]]; then
            url="$(awk -F '=' '/^URL=/{print $2}' "$f")"
            if [[ ! -z $url ]]; then
cat <<EOF >"${f%.*}.webloc"
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>URL</key>
    <string>$url</string>
</dict>
</plist>
EOF
            else
                echo "  No URL found in $f file."
            fi
        fi
    done
 }

Create_URL () {
    for f in *.desktop; do
        if [[ ! -f  ${f%.*}.url ]]; then
            url="$(grep -e '^URL=' "$f")"
            if [[ ! -z $url ]]; then
                printf "[InternetShortcut]\n${url}\n" > "${f%.*}.url"
            else
                echo "  No URL found in $f file."
            fi
        fi
    done
 }

read  keypress
echo

case "$keypress" in
    "1")
        echo "  Creating .webloc & .url files."
        Create_WEBLOC
        Create_URL
    ;;
    "2")
        echo "  Creating .webloc files."
        Create_WEBLOC
    ;;
    "3")
        echo "  Creating .url files."
        Create_URL
    ;;
    "q" | "Q")
        echo "  No files were created."
    ;;
    *)
        echo "  Pressing \"$keypress\" is not a valid choice... Try again!"
        echo
        read -p " Press Enter to continue..."
        "$0"        # Run the Script again.
    ;;
esac
echo

  1. d2wuファイルを保存して閉じます。

  2. 作成しd2wu、実行:

    chmod u+x d2wu

  3. 実行d2wu

    ./d2wu


スクリプト出力の例:

Create .webloc/.url files from .desktop files.
----------------------------------------------
             Choose File Type(s):

[1] Create .webloc & .url files.
[2] Create only .webloc files.
[3] Create only .url files.
[Q] Quit.

Press 1 to 3 or Q then press Enter...
[]

注:デフォルトのアプリケーション設定ペインであるRDefaultcodeのRCDefaultAppを使用して、特定のファイル拡張子を開くアプリケーションを変更できます。

また、ファイルタイプ、アプリ、URL、UTIなどの他のデフォルトメソッドを変更する必要がある場合は、デフォルトアプリ設定ペインが最適なユーティリティです。


崇高なテキストに示されているコード


注:コーディングされているように、1、2、または3を選択しても.webloc、既存のファイルやファイルを上書きしません.url。「...ファイルを作成しています」と報告されます。これは、既存のファイルをステップ.desktop実行せず、画面への出力を最小限に抑えながらURL=....desktopファイルの種類によっては行を含まないファイルのみを出力するために行われました。


これを書いてくれてありがとう。Linuxの第一人者がここで私の質問に答えてくれるのは幸運だったので、今はその方法を使用しています。ある時点でありがとうございますが、上記のこのコードを使用することもできます。
カラマルカキッド

1
@Kalamalka Kid、Snow Leopard時代に戻って、5つの異なる背景とアクセントでDockをカスタマイズして、開いているアプリを表示し、表示する壁紙に基づいてDockベースを変更するスクリプトを書きました。そのため、既存のスクリプトをd2wuテンプレートとしてコピーし、必要に応じてコードを削除/追加するのは簡単でした。Linux Guruがあなたのためにしたことをしなければならなかった場合、私にとっては簡単です。私はLinuxの第一人者ではないので、それはできませんでした!:)私の努力を認めてくれてありがとう。
user3439894
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.