Googleを使用している間、Chrome後で参照するために、Webサイトのリンクをアドレスバーからデスクトップ上のフォルダーにドラッグすることがよくあります。これにより、.desktop
ファイルは、本質的にWebページへのリンクです。
これらのデスクトップファイルは、ダブルクリックして開くだけでNautilus&PCmanFMから簡単に開くことができますが、SpaceFMファイルマネージャーを使用して開くと、Google Chromeではなくファイルのダウンロードが開始されます他の前述のファイルマネージャーで行うように開きます。
これらのファイルを右クリックしてFirefoxで開くと、SpaceFMで開くことができますが、Google Chromeでは開きません。
デスクトップファイルの例は次のとおりです。
[Desktop Entry]
Encoding=UTF-8
Name=Link to The Hidden Fortress (1958) - IMDb
Type=Link
URL=http://www.imdb.com/title/tt0051808/?ref_=nv_sr_2
Icon=text-html
これらを作成する方法はありますか.desktop
ファイルをGoogleで開くChrome SpaceFMブラウザーから起動した場合、通常は?
以下のソリューションでは、リンク(.desktop
ファイル)を右クリックして[実行]を選択し、Google-Chrome
を実行してリンクを開くオプションを提供しています。 SpaceFm
の設定を編集することにより、ダブルクリックでもリンクを実行できます(注[3]
を参照)。
ソリューションは自動的に編集(のみ)デスクトップ上のnewリンクを編集し、Google-Chrome
で具体的にリンクを実行します。
小さなバックグラウンドスクリプトは、デスクトップ上のnew.desktop
ファイルを2秒に1回チェックします。関連するファイルが見つかった場合、ファイルはLinkファイルからApplicationファイルに編集されます。これは、ファイル内の2行を編集することにより行われます。
この線:
Type=Link
次のように変更されます。
Type=Application
この線:
URL=<link>
次のように変更されます。
Exec=/usr/bin/google-chrome-stable <link>
実行したテストでは、SpaceFm
を右クリックしてリンクを「開く」ことができます。右クリック> [開く]> [実行]
#!/usr/bin/env python3
import os
import time
# --- define the (absolute) path to your desktop below
dr = "/absolute/path/to/your/desktop"
# edit (if necessary) the command to launch Google-Chrome
application = "/usr/bin/google-chrome-stable"
def find_relevant():
return [f for f in os.listdir(dr) if f.endswith(".desktop")]
relevant1 = []
while True:
time.sleep(2)
relevant2 = [f for f in os.listdir(dr) if f.endswith(".desktop")]
new = [f for f in relevant2 if not f in relevant1]
if new:
for f in new:
f = dr+"/"+f
rewrite = False
lines = [l.strip() for l in open(f).readlines()]
for i, l in enumerate(lines):
if l.startswith("Type=Link"):
rewrite = True
lines[i] = "Type=Application"
Elif l.startswith("URL="):
lines[i] = l.replace("URL=", "Exec="+application+" ")
if rewrite == True:
print("rewrite")
open(f, "wt").write(("\n").join(lines))
relevant1 = relevant2
edit_links.py
として保存しますGoogle-Chrome
ファイルの最初のExec=
行をチェックして、google-chrome.desktop
(ヘッドセクションでも設定)を実行するコマンドを確認します:run
gedit /usr/share/applications/google-chrome.desktop
ファイルを読み取ります。
次のコマンドでスクリプトをテスト実行します。
python3 /path/to/edit_links.py
Google-Chrome
を開き、リンクをデスクトップにドラッグし、数秒後に正常に動作するかテストします。
すべてが正常に機能する場合は、スタートアップアプリケーションに追加します:ダッシュ>スタートアップアプリケーション>追加コマンドを追加します。
python3 /path/to/edit_links.py
.desktop
ファイル(リンク)は、少なくとも1〜2秒デスクトップ上に存在する必要があります。そのため、リンクを移動する場合は、少なくとも数秒間デスクトップに残してください。 :).desktop
ファイルをチェックし、新しいファイルがある場合にのみファイルを読み取り/編集します。これは、システムに対してnothingを意味します。SpaceFm
の設定を編集することにより、ダブルクリックで「リンク」を実行することもできます。
さらに、チャットで説明したように、ディレクトリ内のリンクを再帰的に変換するために1回実行するスクリプト:
#!/usr/bin/env python3
import os
import sys
# --- define the (absolute) path to your desktop below
dr = sys.argv[1]
# edit (if necessary) the command to launch Google-Chrome
application = "/usr/bin/google-chrome-stable"
for root, dirs, files in os.walk(dr):
for f in files:
if f.endswith(".desktop"):
f = root+"/"+f
rewrite = False
lines = [l.strip() for l in open(f).readlines()]
for i, l in enumerate(lines):
if l.startswith("Type=Link"):
rewrite = True
lines[i] = "Type=Application"
Elif l.startswith("URL="):
lines[i] = l.replace("URL=", "Exec="+application+" ")
if rewrite == True:
open(f, "wt").write(("\n").join(lines))
使用するには、convert_links.py
として保存し、ターゲットディレクトリを引数として実行します。
python3 /path/to/convert_links.py <directory>
OPの要求に応じて、(最初の)(バックグラウンド)スクリプトのバージョンの下で、ブラウザーからデスクトップにリンクをドラッグして作成されたリンクファイルをクロスプラットフォームリンク。使用方法は、最初のセクションで説明したとおりです。
#!/usr/bin/env python3
import os
import time
# --- define the (absolute) path to your desktop below
dr = "/absolute/path/to/your/desktop"
out1 = ["<html>", "<body>", '<script type="text/javascript">']
out2 = ["</script>", "</body>", "</html>"]
def find_relevant():
return [f for f in os.listdir(dr) if f.endswith(".desktop")]
relevant1 = []
while True:
time.sleep(2)
relevant2 = [f for f in os.listdir(dr) if f.endswith(".desktop")]
new = [f for f in relevant2 if not f in relevant1]
if new:
for f in new:
f = dr+"/"+f
rewrite = False
lines = [l.strip() for l in open(f).readlines()]
for i, l in enumerate(lines):
if l.startswith("Type=Link"):
rewrite = True
Elif l.startswith("URL="):
url = 'window.location.href = "'+l.replace("URL=", "")+'"'
out1.append(url)
Elif l.startswith("Name="):
name = l.replace("Name=", "")
if rewrite == True:
open(f.replace(".desktop", ".html"), "wt").write(("\n").join(out1+out2))
os.remove(f)
relevant1 = relevant2
#!/usr/bin/env python3
import os
import sys
dr = sys.argv[1]
out1 = ["<html>", "<body>", '<script type="text/javascript">']
out2 = ["</script>", "</body>", "</html>"]
for root, dirs, files in os.walk(dr):
for f in files:
if f.endswith(".desktop"):
f = root+"/"+f
rewrite = False
lines = [l.strip() for l in open(f).readlines()]
for i, l in enumerate(lines):
if l.startswith("Type=Link"):
rewrite = True
Elif l.startswith("URL="):
url = 'window.location.href = "'+l.replace("URL=", "")+'"'
out1.append(url)
Elif l.startswith("Name="):
name = l.replace("Name=", "")
if rewrite == True:
open(f.replace(".desktop", ".html"), "wt").write(("\n").join(out1+out2))
os.remove(f)
使用するには、convert_links.py
として保存し、ターゲットディレクトリを引数として実行します。
python3 /path/to/convert_links.py <directory>
このバージョンは、クロスプラットフォームリンクを作成するためのスーパーユーザーの この素敵な答え に基づいています。