I give up. I follow the steps all the way up to trying to lauch the app and i get nothing. Someone got any clue what im doing wrong here?
When i run it from my apps i get a terminal to pop up for a split second, then it disappears. When tried using terminal i get the following; $ /home/~/.local/share/applications/smm.desktop /home/~/.local/share/applications/smm.desktop: line 1: [Desktop: command not found/home/~/.local/share/applications/smm.desktop: line 2: Mod: command not found/home/~/.local/share/applications/smm.desktop: line 3: Starfield: command not found/home/~/.local/share/applications/smm.desktop: line 4: -c: command not found/home/~/.local/share/applications/smm.desktop: line 5: Mod: command not found
smm.desktop text editor info; [Desktop Entry] Name=Starfield Mod Manager Comment=Manage Starfield Mods Exec=sh -c "java -jar /home/~/Downloads/mods/starfield/Starfield Mod Manager/starfield-mod-manager.jar %U" Path=/home/~/Downloads/mods/starfield/Starfield Mod Manager/ Icon=steam_icon_1716740 Terminal=true Type=Application MimeType=x-scheme-handler/nxm; I'm pretty sure i did the mimeapps.list part right since it only says add the following;
x-scheme-handler/nxm=smm.desktop
I'm using POP_OS lastest version.
edit: I got it down to 2 errors, line 1 and line 4. It's not recognizing "-c" and it's misinterpreting "[Desktop" for some reason.
A late response is better than no response. You should know that the app shortcut doesn't work anyway, but I wanted to put this here for future reference or in case someone new to Linux sees this. Also worth mentioning that I was not able to get the app working at all, so YMMV.
You'd want to enter the following under "Exec=" Exec=sh -c "java -jar /home/<your username>/Downloads/mods/starfield/Starfield Mod Manager/starfield-mod-manager.jar %U"The <your username> will be replaced with your login name. If you don't know it, Terminal normally shows it as the "user@hostname~$" thing before the commands you enter. You can also obtain it by entering the command whoami
In the "Exec=" line, we're using quotes around the path, so the Terminal will honor the spaces. But beneath it under the "Path=" section, a raw link is provided. You'll need to provide an escape character in order to get the system to interpret the path correctly. This is done with a \ placed before the symbol you want the Terminal to interpret. Including the path fix mentioned above, your "Path=" section would look like this: Path=/home/<your username>/Downloads/mods/starfield/Starfield\ Mod\ Manager/
Your mimeapps.list line is correct as is. Also, for reference, your mimeapps.list file tells the system how to interpret unusual links. In this case, if we click an "nxm://" link, then the system will know to check the "smm.desktop" file for instructions on what it needs to do.
Another thing to note is that ~ is just a shortcut in the Terminal for whenever you need to specify your home directory. So, for example, if you wanted to change directory to downloads, instead of running cd /home/username/Downloads/ you could just run ~/Downloads/
Also worth mentioning that ~ is relative. If you include ~/<directory>/ in a script, then it will go to the home folder of whoever is running the script. This is usually desired behavior, but it's important to be aware!
I have a strange behavior. This mod works on my gaming PC with ubuntu 24.04, but not on my laptop, also ubuntu 24.04. The difference is, that on the gaming PC I use the deb version of steam, on the laptop I use the flatpack version of steam. Has someone an idea why this is not working with flatpak?
When I launch the game from the mod manager, I get this error:
java.io.IOException: Cannot run program "steam" (in directory "."): error=2, Datei oder Verzeichnis nicht gefunden (file or directory not found) at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1170) at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1089) at TerminalHelperKt.runCommand(TerminalHelper.kt:37) at TerminalHelperKt.runCommand$default(TerminalHelper.kt:26) at TerminalHelperKt.runCommand(TerminalHelper.kt:23) at commands.StartGameKt.startGame(StartGame.kt:15) at commands.CommandType$43.invoke(CommandType.kt:55) at commands.CommandType$43.invoke(CommandType.kt:55) at InputProcessorKt.readLine(InputProcessor.kt:15) at MainKt.main(Main.kt:29) Caused by: java.io.IOException: error=2, Datei oder Verzeichnis nicht gefunden at java.base/java.lang.ProcessImpl.forkAndExec(Native Method) at java.base/java.lang.ProcessImpl.<init>(ProcessImpl.java:295) at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:225) at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1126) ... 9 more
I seem to be having an issue getting the shortcut to work as intended, although I can launch the manager via the command line after following install instructions. Running on Garuda Linux if that helps.
Otherwise seems to be working as expected prior to actually attempting to install any mods.
Hi, I am big dumb, how use? Still new to linux, installed Java. When I try to run the .jar nothing happens. Running on Nobara if that matters at all. Thanks in advance!
EDIT: Nevermind, found the GIthub page with the instructions.
1.3.0 is out and comes with the ability to manage Creations! If you're upgrading from a previous version, run the "validate" command to see if you need to take any action to upgrade to the new system.
While I do like this, I was disappointed when I tried to launch the game none of the mods worked. What I found was the for some reason Steam & SFSE do not like sym links at all. If I remove the links and manual place in the same folder it works perfectly.
A small request/suggestion if I may: It really could do with handling shell escapes for mods with spaces in the name. (I know I can change the names and then install, but this would be a lot easier). In particular, it would be nice if the managed recognized single quote escaping, so I could drag an archive or a folder from a filer window.
On a related note, being able to scroll through and edit previous commands with the arrow keys would also be useful
I'm not sure _exactly_ what you're looking for with escapes, but I did clean up the staging code in a way that may answer your request. If not, can you make an issue on the github with more information?
I'd _love_ to be able to scroll through / edit previous commands, but I'm not sure how to do so in a cli jar application. Would certainly be a nice feature though.
Thank you iceburg. I had a bit of a time trying to get things installed - mainly just little differences in distro - but I am learning to use Linux after many years as a M$ devotee. Your instructions are mostly very clear. I think some clarity on usage would be good. Took me a bit to work out how to enable a mod till I realised you needed to deploy it too, but I may have missed something.
Installing the mods was also a test, but what I realised was the importance of directory structure, and ensuring that where manual intervention was required - such as fomods - that the staging files are placed into the correct directory structure before enabling. Otherwise you end up with folders and files everywhere, and some mods won't work.
Once it's up and running though - it's perfect. 100% recommend for Linux gamers. Can't wait to see what more you can do with this project you champion!
Thanks for the feedback. I've added a bit to the usage section in order to provide a super short explination of how the mod manager works (fetch, enable, deploy).
27 comments
When i run it from my apps i get a terminal to pop up for a split second, then it disappears. When tried using terminal i get the following;
$ /home/~/.local/share/applications/smm.desktop
/home/~/.local/share/applications/smm.desktop: line 1: [Desktop: command not found/home/~/.local/share/applications/smm.desktop: line 2: Mod: command not found/home/~/.local/share/applications/smm.desktop: line 3: Starfield: command not found/home/~/.local/share/applications/smm.desktop: line 4: -c: command not found/home/~/.local/share/applications/smm.desktop: line 5: Mod: command not found
smm.desktop text editor info;
[Desktop Entry]
Name=Starfield Mod Manager
Comment=Manage Starfield Mods
Exec=sh -c "java -jar /home/~/Downloads/mods/starfield/Starfield Mod Manager/starfield-mod-manager.jar %U"
Path=/home/~/Downloads/mods/starfield/Starfield Mod Manager/
Icon=steam_icon_1716740
Terminal=true
Type=Application
MimeType=x-scheme-handler/nxm;
I'm pretty sure i did the mimeapps.list part right since it only says add the following;
x-scheme-handler/nxm=smm.desktop
I'm using POP_OS lastest version.
edit: I got it down to 2 errors, line 1 and line 4. It's not recognizing "-c" and it's misinterpreting "[Desktop" for some reason.
You'd want to enter the following under "Exec="
Exec=sh -c "java -jar /home/<your username>/Downloads/mods/starfield/Starfield Mod Manager/starfield-mod-manager.jar %U"
The <your username> will be replaced with your login name. If you don't know it, Terminal normally shows it as the "user@hostname~$" thing before the commands you enter. You can also obtain it by entering the command whoamiIn the "Exec=" line, we're using quotes around the path, so the Terminal will honor the spaces. But beneath it under the "Path=" section, a raw link is provided. You'll need to provide an escape character in order to get the system to interpret the path correctly. This is done with a \ placed before the symbol you want the Terminal to interpret. Including the path fix mentioned above, your "Path=" section would look like this:
Path=/home/<your username>/Downloads/mods/starfield/Starfield\ Mod\ Manager/
Your mimeapps.list line is correct as is. Also, for reference, your mimeapps.list file tells the system how to interpret unusual links. In this case, if we click an "nxm://" link, then the system will know to check the "smm.desktop" file for instructions on what it needs to do.
Another thing to note is that ~ is just a shortcut in the Terminal for whenever you need to specify your home directory. So, for example, if you wanted to change directory to downloads, instead of running cd /home/username/Downloads/ you could just run ~/Downloads/
Also worth mentioning that ~ is relative. If you include ~/<directory>/ in a script, then it will go to the home folder of whoever is running the script. This is usually desired behavior, but it's important to be aware!
When I launch the game from the mod manager, I get this error:
java.io.IOException: Cannot run program "steam" (in directory "."): error=2, Datei oder Verzeichnis nicht gefunden (file or directory not found)
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1170)
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1089)
at TerminalHelperKt.runCommand(TerminalHelper.kt:37)
at TerminalHelperKt.runCommand$default(TerminalHelper.kt:26)
at TerminalHelperKt.runCommand(TerminalHelper.kt:23)
at commands.StartGameKt.startGame(StartGame.kt:15)
at commands.CommandType$43.invoke(CommandType.kt:55)
at commands.CommandType$43.invoke(CommandType.kt:55)
at InputProcessorKt.readLine(InputProcessor.kt:15)
at MainKt.main(Main.kt:29)
Caused by: java.io.IOException: error=2, Datei oder Verzeichnis nicht gefunden
at java.base/java.lang.ProcessImpl.forkAndExec(Native Method)
at java.base/java.lang.ProcessImpl.<init>(ProcessImpl.java:295)
at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:225)
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1126)
... 9 more
Running on Garuda Linux if that helps.
Otherwise seems to be working as expected prior to actually attempting to install any mods.
It works for other bethesda games?
Thank you very much.
EDIT:
Nevermind, found the GIthub page with the instructions.
Edit edit:
Still doesn't work. Big sad :(
You can read a bit more in the Creations Section of the manual.
A small request/suggestion if I may: It really could do with handling shell escapes for mods with spaces in the name. (I know I can change the names and then install, but this would be a lot easier). In particular, it would be nice if the managed recognized single quote escaping, so I could drag an archive or a folder from a filer window.
On a related note, being able to scroll through and edit previous commands with the arrow keys would also be useful
I'd _love_ to be able to scroll through / edit previous commands, but I'm not sure how to do so in a cli jar application. Would certainly be a nice feature though.
Installing the mods was also a test, but what I realised was the importance of directory structure, and ensuring that where manual intervention was required - such as fomods - that the staging files are placed into the correct directory structure before enabling. Otherwise you end up with folders and files everywhere, and some mods won't work.
Once it's up and running though - it's perfect. 100% recommend for Linux gamers. Can't wait to see what more you can do with this project you champion!
Glad it's working for you!