Eu costumava fazer isso no Firefox usando um comando python, mas recentemente algo mudou e não consigo mais obter o URL!
O que costumava trabalhar com o Firefox:
#!/bin/bash current_tab_num () { python2 <<< $'import json\nf = open("/home/username/.mozilla/firefox/xxxxx.default/sessionstore.js", "r")\njdata = json.loads(f.read())\nf.close()\nprint str(jdata["windows"][0]["selected"])' } current_tab_url () { sed -n "$(current_tab_num)p" <(python2 <<< $'import json\nf = open("/home/username/.mozilla/firefox/xxxxx.default/sessionstore.js", "r")\njdata = json.loads(f.read())\nf.close()\nfor win in jdata.get("windows"):\n\tfor tab in win.get("tabs"):\n\t\ti = tab.get("index") - 1\n\t\tprint tab.get("entries")[i].get("url")') } current_tab_url
Alguém pode me dizer como fazer isso no Firefox e / ou Chrome?
NOTA : Não entendo python, encontrei esses comandos em algum lugar e os usei no bash!
Respostas:
Eu tive o mesmo problema e cheguei lá enquanto tentava resolvê-lo, então postarei minha solução (que é muito ruim) aqui.
Eu uso o wmctrl (você poderia usar o xprop) e o xdotool para fazer isso. Anteriormente, usei uma extensão para tornar o URL visível na barra de título (você pode acessar o URL via xprop ou wmctrl). Ambos os métodos funcionam muito bem, embora não seja realmente "limpo".
Agora você tem o URL na sua área de transferência. Eu então uso o xclip para trabalhar com a URL.
Eu adoraria ver uma solução real para isso, se alguém encontrar uma.
fonte
Você poderia dizer o erro que você obtém após a execução, porque o script está funcionando para mim. Existe a mesma pergunta aqui, respondida usando
php
eperl
:URL de saída de abas abertas do Firefox no terminal
Como a parte principal do python, aqui está um script puramente python, para fazer a mesma coisa, tente também:
Substituí o
/home/username/.mozilla/firefox/xxxxx.default/sessionstore.js
arquivo porrecovery.js
. No meu caso (Mozilla Firefox 44.0, openSUSE 13.1), o arquivo é~/.mozilla/firefox/*.default/sessionstore-backups/recovery.js
. E por último mas não menos importante, o script não funcionará se você tiver duas instâncias deFirefox
execução.fonte