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.
#!/bin/bash
# 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:
# http://sodeve.net/foxit-reader-on-ubuntu-linux-through-wine/
# 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://forums.linuxmint.com/viewtopic.php?t=153092
# 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]