1. Converta arquivos de link em lançadores
A solução abaixo oferece a opção de clicar com o botão direito do mouse no link ( .desktop
file) e escolher > "Execute", que executará Google-Chrome
para abrir o link. Ao editar as configurações de SpaceFm
, você pode executar o link clicando duas vezes também (veja as notas [3]
).
Observequeasoluçãoeditaautomaticamente(somente)novoslinksnasuaáreadetrabalho,paraexecutarolinkespecificamentecomGoogle-Chrome
Oqueé
Umpequenoscriptdesegundoplanoverificaumavezacadadoissegundosparaarquivosnovos.desktop
emsuaáreadetrabalho.Seumarquivorelevanteforencontrado,oarquivoéeditadodeumarquivoLinkemumarquivoAplicativo.Issoéfeitoeditandoduaslinhasdentrodoarquivo:
Alinha:
Type=Link
éalteradopara:
Type=Application
Alinha:
URL=<link>
éalteradopara:
Exec=/usr/bin/google-chrome-stable<link>
Nostestesqueexecutei,issotornaolink"passível de ser aberto" clicando com o botão direito do mouse em SpaceFm
: clique com o botão direito em > Abra > Execute
O script
#!/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
Como usar
- Copie o script em um arquivo vazio, salve-o como
edit_links.py
- Na seção head do seu script, edite o caminho para sua área de trabalho (como mencionado, use o caminho absoluto aqui)
-
Verifique o comando para executar
Google-Chrome
(também definido na seção head) verificando a primeira linhaExec=
no arquivogoogle-chrome.desktop
: rungedit /usr/share/applications/google-chrome.desktop
para ler o arquivo.
-
Teste o script com o comando:
python3 /path/to/edit_links.py
Abra
Google-Chrome
, arraste os links para sua área de trabalho e teste após alguns segundos, se funcionar bem. -
Se tudo funcionar bem, adicione-o aos aplicativos de inicialização: Dash > Aplicativos de inicialização > Adicionar. Adicione o comando:
python3 /path/to/edit_links.py
Nota
- O arquivo arrastado
.desktop
(link) precisa estar na sua Área de Trabalho, pelo menos, um a dois segundos para ser encontrado e editado, então se você mover os links, pelo menos deixe-os por alguns segundos na sua Área de Trabalho. :) - ll o script é verificar se há novos arquivos
.desktop
na sua área de trabalho, ele só lê / edita o arquivo (s) se houver novos arquivos. Isso significa nada para o seu sistema. -
Ao editar as configurações de
SpaceFm
, você também pode executar o "link" clicando duas vezes:
Convertaseusarquivosdelinkexistentesrecursivamente
Alémdisso,conformediscutidonochat,umscriptparaexecutarumaúnicavezparaconverteroslinksemumdiretóriorecursivamente:
#!/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))
Para usá-lo, salve-o como convert_links.py
, execute-o com o diretório de destino como um argumento:
python3 /path/to/convert_links.py <directory>
2. Converter links em arquivos de links utilizáveis entre plataformas
Conforme solicitado pelo OP, abaixo de uma versão do script (primeiro) (background), convertendo os arquivos de link, criados ao arrastar um link do navegador para a área de trabalho, em entre plataformas links. O uso é exatamente como explicado na primeira seção.
O script
#!/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
Versão para converter seus links existentes em um diretório recursivo (execução única)
#!/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)
Para usá-lo, salve-o como convert_links.py
, execute-o com o diretório de destino como um argumento:
python3 /path/to/convert_links.py <directory>
Nota
Esta versão foi baseada em essa resposta legal no Superusuário para criar links entre plataformas.