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 that server exists, or otherwise using the normal Vim .desktop file. My .desktop file is below.
[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.
The second part will open a new Vim window, but without any file opened.
I'm guessing the problem is due to :
and %F
being next to each other, which causes %F
to not be expanded properly.
I believe the gtk-launch function is set up correctly because if I hardcode a specific file in place of %F
, that file will successfully open in a new Vim window.
Does anyone know how to solve this?
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