Resposta curta.
Você está usando %f
, mas o nome do arquivo que deseja passar é armazenado na variável ${MC_EXT_FILENAME}
.
Resposta longa.
Como abrir / visualizar arquivos PDF usando o Midnight Commander + wine + PDF-XChange Viewer / Editor Portátil
note: Eu suponho que os aplicativos portáteis do windows estejam armazenados em "~ / MyApps / *"
- abra o Midnight Commander
extension file
para edição: F9 - > Comando - > Edite o arquivo de extensão - navegue até a seção do arquivo em que a configuração do PDF está gravada: Digite / pdf Digite
- comente as seguintes linhas (apenas para um backup):
# PDF
#type/^PDF
# Open=/usr/lib/mc/ext.d/doc.sh open pdf
# View=%view{ascii} /usr/lib/mc/ext.d/doc.sh view pdf
- adicione / substitua pelas seguintes linhas:
# PDF
type/^PDF
Open=~/MyApps/start-pdf-mc.sh
View=%view{ascii} ~/MyApps/start-pdf-mc.sh
- saia e salve as alterações: : wq
- crie o arquivo
~/MyApps/start-pdf-mc.sh
com o seguinte conteúdo:
#!/bin/bash
Filename="z:"${MC_EXT_FILENAME//\//\}
App='eval wine "~/MyApps/PDF-XChange_Viewer/PDFXCview.exe" "'$Filename'" > /dev/null 2>&1 &'
$App
nota: você pode querer criá-lo em /usr/lib/mc/ext.d/*.sh
(em vez de ~/MyApps/
como eu fiz)
- verifique se o arquivo
start-pdf-mc.sh
é executável (usechmod
)
explicação do arquivo start-pdf-mc.sh
-
o nome do arquivo que estamos tentando abrir é armazenado em
${MC_EXT_FILENAME}
variável -
ao usar o vinho, use a letra da unidade
z:
-
converta o caminho do arquivo no estilo Linux (
/
) para o estilo do Windows (\
) com o seguinte:${MC_EXT_FILENAME//\//\}
para passá-lo como um argumento para PDF-XChange Viewer mais tarde -
> /dev/null 2>&1
e&
são necessários para descartar a saída do programa e executá-la como um processo em segundo plano; caso contrário, você não poderá usar o Midnight Commander até que você fechar PDF-XChange Viewer, que obviamente não é desejável
testado com o seguinte software
-
Linux Debian de 32 bits
-
GNU Midnight Commander 4.8.13
-
wine-1.6.2
-
PDF-XChange Viewer v2.5.316.1
AND
-
Linux Debian de 32 bits
-
GNU Midnight Commander 4.8.13
-
wine-1.6.2
-
Editor do PDF-XChange v6.0.321.0
atualizar de acordo com o seu comentário
Parece que ainda há algum erro no caminho do arquivo ... Vamos tentar corrigi-lo.
1.
-
Abra um arquivo pdf problemático com o PDFXChange Editor (como você costuma fazer, NÃO com o Midnight Commander)
-
Arquivo - > Copie o nome completo do arquivo
-
Cole em qualquer arquivo de texto (apenas para referência futura)
-
Feche o Editor PDFXChange
-
Abra o mesmo arquivo com o Midnight Commander + PDFXChange Editor (que mostra sua mensagem de erro)
-
Compare se os caminhos dos arquivos são idênticos (aquele que você acabou de colado para referência e aquele em sua mensagem de erro)
-
Se os caminhos NÃO forem idênticos - corrija o caminho de acordo com o arquivo .sh OU cole-os aqui para ajudar (basta substituir seu nome de usuário no caminho com
<username>
por segurança)
2.
Além disso, isso não é muito provável, MAS se os caminhos forem idênticos, pode haver um problema com as permissões definidas no arquivo que você está tentando abrir. Assim, verifique se as permissões do seu arquivo são pelo menos:
sudo chmod 644 your-file-name-here.pdf
atualização 2
É possível ter acesso a todos os arquivos de todas as unidades, incluindo aqueles que NÃO estão localizados no ~/*
(diretório de usuários domésticos) ou até mesmo armazenados em outros HDs apenas usando Z:\
(não usando H:\
e outras letras de unidade).
Verifique o mapeamento de sua unidade no vinho:
-
executado no terminal
$ winecfg
-
abra a guia
Drives
-
os seguintes registros devem estar lá por padrão
Letter | Drive Mapping C: | ../drive_c Z: | /
Até onde eu sei, qualquer caminho começa com /
(para qualquer arquivo em qualquer HDD acessado no Linux) e assim pode ser acessado usando o Z:\
, por causa do mapeamento descrito acima.
Por exemplo, a configuração acima me permite acessar um arquivo pdf
- de
/home/<username>/*.pdf
(~/*.pdf
), se estiver em casa diretório do usuário - de
/media/<drive-label>/*.pdf
OR/mnt/<drive-label>/*.pdf
, se estiver localizado em alguma unidade externa ou disco rígido, que eu montei; (nas janelas, a mesma unidade pode ser acessada usando oH:\
, por exemplo)
Os mapeamentos de unidade, no entanto, seriam outra pergunta específica para sua configuração. : -)
BTW, mais uma coisa para verificar . O diretório inicial do usuário é ~/*
mapeado para a pasta wine
My Documents
?
- no terminal:
$ wine explorer
- clique duas vezes na pasta
My Documents
- Você deve ver o conteúdo do diretório inicial
~/*
do Linux