how to use %F in a file URI in a .desktop file
I'm trying to create a .desktop file which opens a file, either inside a Vim server named "VIM" if it exists, or otherwise using the normal Vim .desktop file.
This is what I have so far:
[Desktop Entry]
Name=Vim Remote
GenericName=Text Editor
Comment=Edit text files
TryExec=vim
Exec=sh -c "if vim --serverlist | grep -q VIM; then vim --remote %F; else gtk-launch vim file:%F; fi"
Terminal=false
Type=Application
Icon=gvim
StartupNotify=false
The first part (vim --remote %F
) works, but the second (gtk-launch vim file:%F
) does not. When the Vim server is not available, a blank Vim window is opened, without loading the file. I believe the gtk-launch
syntax is correct because if I try using a hard-coded file name instead of %F
, the file is loaded properly.
How do I fix the issue? Does %F
not expand properly when it's next to :
?
1 answer
The following users marked this post as Works for me:
User | Comment | Date |
---|---|---|
Trevor | (no comment) | Nov 22, 2024 at 07:43 |
From the Desktop Entry Specification:
A command line may contain at most one %f, %u, %F or %U field code.
Try storing %F in a local variable and reusing the variable.
Also, take care: %F will in general expand to a list of files, which your current script will not adequately handle. Use %f instead if you want your desktop to invoke the command multiple times for multiple files.
0 comment threads