TLDR, scroll down to the script. Make a .sh file, allow it to run as a program, set it as your default program to open whatever filetype
Navigate to the appropriate/your favorite folder to store portable applications. Make the below script as a new file called WhateverYouWant.sh
Fellow newbies, the .sh is important.
Then set this .sh file’s permissions to allow executing this file as a Program; may differ by distro.
# Script to set a windows application (that runs through WINE) as the default to open PDF files:
# PURPOSE: To convert Linux-style filename to Windows-style
# to pass as an argument to wine when starting PDF XChange Viewer
Filename="z:"${1//\//\\}
# Assuming you use the default installation folder for PDF
# XChange Viewer in Wine
App='eval wine "C:\Program Files\Filepath\To\Your\PDFXEdit.exe" "'$Filename'"'
$App
# Adapted originally from:
# Archive.org'd at: \https://web.archive.org/web/20160918205551/http://sodeve.net/2007/12/foxit-reader-on-ubuntu-linux-through-wine/
# Additional credit in 2024:
https://web.archive.org/web/20150213210206/http://crunchbang.org/forums/viewtopic.php?pid=173574#p173574
https://web.archive.org/web/20150213210203/http://www.fsavard.com/flow/2009/03/pdf-annotation-under-linux-with-wine-and-pdf-xchange-viewer/
You can also check the appropriate windows-formatted filepath with Winetricks, using its built in windows File Explorer, finding your .exe, and copying the path starting from "C:".
[Edit: the default install folder in the script would normally be C:\Program Files, my bad. I downloaded the portable version and shoved it wherever, so my filepath looks like “C:\users\Froggy\Documents\PDFXchange test01\PDFXEdit.exe”]
Mint Cinnamon 21:
- right click your shell script file, Properties > Permissions > check on “Allow executing file as program”.
- Then find a PDF file (or whatever filetype), right click, Open With > ‘Other Application…’ > browse for this .sh file you just made.
- After selecting this .sh file, be sure to select “Set as default” before clicking OK.
I could not tell you for the life of me why this didn’t work with a .desktop file on Mint 21.
I spent the past few hours down the wrong rabbit holes with .desktop and exec=wine ‘filepaths’ and just about died of asphyxiation from absolutely nothing happening. I’ve been wanting to do the same thing too for a while, but decided that right before bedtime was the perfect time to look it up.
[Edit: I figured out spacing in the script. Also moved the Mint specific instructions down the comment for flow clarity]
I can see future archeologists (god forbid, Ai archeologists) digging up old posts like this and going, “tf, this was upvoted? Interjecting with too much tangential information? The tone came off rude though?” and not get the reference if they weren’t versed in linux community culture already