Closed Biont closed 5 years ago
@nstickney You can also fix the newline by using printf
instead of print
as I'm doing in #1.
@nstickney From what I can tell, this looks good now after the changes made by @joefiorini.
The minecraft-launcher.desktop file now produces the following command: cd /opt/minecraft-launcher/ && env GDK_BACKEND=x11 /opt/minecraft-launcher/minecraft-launcher
I added a test case for this specific issue and you can debug things more easily using ./sway-launcher-desktop.sh generate-command /path/to/application.desktop
@Biont the command as you wrote it actually fails for me:
[bash 5.0.11] $ swaymsg -t command "cd /opt/minecraft-launcher/ && env GDK_BACKEND=x11 /opt/minecraft-launcher/minecraft-launcher"
Error: Unknown/invalid command 'cd'
Is no one else seeing this behavior? swaymsg -t command
doesn't seem to allow shell built-ins for me.
swaymsg exec
seems to fix it. This issue can be closed.
Great. Thanks for your input @nstickney
I will just copy/paste the report of @nstickney here
PROBLEM: Some *.desktop files include not just the command, but also environment variables, in the Exec line, i.e. "
Exec=env GDK_BACKEND=x11 /opt/minecraft-launcher/minecraft-launcher
". This is apparently a standard pattern, butswaymsg -t command "$command"
leads toError: Unknown/invalid command 'env'
. I tried changing theExec
line to/usr/bin/env
, but I get a similar message:Error: Unknown/invalid command '/usr/bin/env'
.SOLUTION: I changed the way the
$command
variable is formatted by removing the line break and replacing it with a space. Then, when running the command, I cut outenv
using bash string substitution.EDIT: Note, I also changed the ordering of the
$DIRS
hoping to make the~/.local
entry override the others, but I don't believe it has any effect.Personal note: I believe part of the problem is that awk will see additional columns in an
Exec=
line like this:Exec=env GDK_BACKEND=x11 /opt/minecraft-launcher/minecraft-launcher
since there is one more equals sign in there which we are using as a delimiter