wonderunit / storyboarder

✏️ Storyboarder makes it easy to visualize a story as fast you can draw stick figures.
https://wonderunit.com/storyboarder
3.19k stars 298 forks source link

Open in external editor doesn't work in 1.10.1 on linux #1675

Open mankysee opened 5 years ago

mankysee commented 5 years ago

I've downloaded the latest version of Storyboarder(it's self-updated on start actually) and upon clicking the external editor button I've got this error:

"Cannot mount AppImage, please check your FUSE setup. You might still be able to extract the contents of this AppImage if you run it with the --appimage-extract option. See https://github.cm/AppImage/AppImageKit/wiki/FUSE for more information."

The program I'm using as an external editor is Krita, an appImage flavour. And the thing is it was working totally fine before, with Storyboarder 1.9.2. AppImage(i.e. clicking that button would launch Krita as expected and update frames on psd file updates). And I can still use 1.9.2 to open external frames just fine on the same machine, but on the same machine 1.10.1 won't do it.

System in question: Ubuntu 18.04.2.

audionerd commented 5 years ago

Are you using FUSE for anything? Wondering if that error is on the system side or the app side...

audionerd commented 5 years ago

Oh I see, FUSE is part of the AppImage sustem https://github.com/AppImage/AppImageKit/wiki/FUSE

If you open Developer Tools in Storyboarder do you see any errors logged there?

mankysee commented 5 years ago

here's the console output on pressing the button in 1.10.1:

_06:22:38.000 › openInEditor /tmp/.mount_StorybsBKLZR/resources/app.asar/node_modules/electron-log/lib/transports/console.js:72 06:22:38.005 › main-window#saveImageFile /tmp/.mount_StorybsBKLZR/resources/app.asar/node_modules/electron-log/lib/transports/console.js:72 06:22:38.030 › shell.openItem board-1-E3YFH.psd /tmp/.mount_StorybsBKLZR/resources/app.asar/node_modules/electron-log/lib/transports/console.js:72 06:22:38.038 › shell.openItem result: true /tmp/.mount_StorybsBKLZR/resources/app.asar/src/js/window/linked-file-manager.js:15 LinkedFileManager#addBoard {uid: "E3YFH", url: "board-1-E3YFH.png", newShot: false, lastEdited: 1560554417854, layers: {…}, …} /tmp/.mount_StorybsBKLZR/resources/app.asar/src/js/window/linked-file-manager.js:79 getTimestamp {filepath: "/home/xxx/Documents/test_storyboard_2/test_storyboard02/images/board-1-E3YFH.psd"}

and here is output of 1.9.2: _openInEditor /tmp/.mount_Storybo0cVSF/resources/app.asar/src/js/window/main-window.js:2288 main-window#saveImageFile /tmp/.mount_Storybo0cVSF/resources/app.asar/src/js/window/main-window.js:2684 shell.openItem board-1-E3YFH.psd /tmp/.mount_Storybo0cVSF/resources/app.asar/src/js/window/main-window.js:2686 shell.openItem result: true /tmp/.mount_Storybo0cVSF/resources/app.asar/src/js/window/main-window.js:2706 watcher add /home/xxx/Documents/test_storyboard_2/test_storyboard_02/images/board-1-E3YFH.psd /tmp/.mount_Storybo0cVSF/resources/app.asar/src/js/window/main-window.js:2719 watching { "/home/xxx/Documents/test_storyboard_2/test_storyboard02/images": [ "board-1-E3YFH.psd" ] }

audionerd commented 5 years ago

Can you retry this with the latest version of Storyboarder?

mankysee commented 5 years ago

nope, still no luck. Moreover I've noticed that clicking on edit-in-external-program results in locking a board even if opening itself failed, i.e. after clicking edit-in-... I'm unable to draw on that board at all even if no editing outside Storyboarder was done. It's kinda understandable since the program sent the file on the outside and a board should be locked but in this case it's obviously totally wrong behaviour.

As a test I've tried to make boards in older version(1.9.2) and open them in the newest one and vice versa but the result is the same so far: 1.9.2 appimage opens in external editor(in my case is Krita appimage), 1.11.3 appimage doesn't.

mankysee commented 5 years ago

and developer tools lines:

/tmp/.mount_Storybi1eFoW/resources/app.asar/node_modules/electron-log/lib/transports/console.js:72 01:30:55.406 › openInEditor /tmp/.mount_Storybi1eFoW/resources/app.asar/node_modules/electron-log/lib/transports/console.js:72 01:30:55.412 › main-window#saveImageFile /tmp/.mount_Storybi1eFoW/resources/app.asar/node_modules/electron-log/lib/transports/console.js:72 01:30:55.676 › shell.openItem board-4-V5M8K.psd /tmp/.mount_Storybi1eFoW/resources/app.asar/node_modules/electron-log/lib/transports/console.js:72 01:30:55.693 › shell.openItem result: true /tmp/.mount_Storybi1eFoW/resources/app.asar/src/js/window/linked-file-manager.js:15 LinkedFileManager#addBoard {uid: "V5M8K", url: "board-4-V5M8K.png", newShot: false, lastEdited: 1561501825546, layers: {…}, …} /tmp/.mount_Storybi1eFoW/resources/app.asar/src/js/window/linked-file-manager.js:79 getTimestamp {filepath: "/home/XXX/Documents/test_storyboard_3/test_storyboard_3/images/board-4-V5M8K.psd"}

audionerd commented 5 years ago

nope, still no luck.

Hmm. So when you click the "Edit in Photoshop" button you still see Cannot mount AppImage, please check your FUSE setup?

If you double-click a PSD file in the file browser, does it open? (Wondering if the Linux default PSD associations are correct).

Have you associated an external editor in the Storyboarder preferences? Can you try resetting that to default, restarting Storyboarder, and see if that helps?

mankysee commented 5 years ago

Yes, the same error text.

Double clicking is working just fine -- actually that's the only way I was able to edit boards externally previously since selecting a Krita's appimage in the preferences gives a warning: "[Warning] Could not open editor"(devconsole text: /tmp/.mount_StorybHm2Xlc/resources/app.asar/node_modules/electron-log/lib/transports/console.js:72 02:13:44.906 › openInEditor /tmp/.mount_StorybHm2Xlc/resources/app.asar/node_modules/electron-log/lib/transports/console.js:72 02:13:44.912 › main-window#saveImageFile /tmp/.mount_StorybHm2Xlc/resources/app.asar/src/js/window/linked-file-manager.js:15 LinkedFileManager#addBoard {uid: "RRSWO", url: "board-1-RRSWO.png", newShot: false, lastEdited: 1561500573626, layers: {…}, …} /tmp/.mount_StorybHm2Xlc/resources/app.asar/src/js/window/linked-file-manager.js:79 getTimestamp {filepath: "/home/XXX/Documents/test_storyboard_3/test_storyboard_3/images/board-1-RRSWO.psd"}

I get this warning in all of the versions of Storyboarder I have(currently 1.9.2, 1.10.1, 1.11.3) if I choose kritan appimage as an external editor in preferences and as a result nothing happens at all. So the way I was opening boards before was using system associations and it worked before 1.10+

audionerd commented 5 years ago

Can you try the latest version? It adds better error logging, and fixes a bug where the preference for a custom external editor wouldn't work if it didn't end in exe or app.

mankysee commented 5 years ago

Tried it, results are the same but errors are a little more concrete:

With an editor assigned in preferences(it also gives a popup warning with the same text): Error: Command failed: "/home/xxx/Programs/Krita/krita-4.1.7-x86_64.appimage" "/home/xxx/Documents/test_storyboard_3/test_storyboard_3/images/board-1-RRSWO.psd" fusermount: mount failed: Operation not permitted open dir error: No such file or directory

at ChildProcess.exithandler (child_process.js:308:12)
at ChildProcess.emit (events.js:194:13)
at maybeClose (internal/child_process.js:998:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:265:5)

with an default editor for the type: 12:49:59.225 › openInEditor /tmp/.mount_Storyb19Ru0R/resources/app.asar/node_modules/electron-log/lib/transports/console.js:72 12:49:59.233 › main-window#saveImageFile /tmp/.mount_Storyb19Ru0R/resources/app.asar/node_modules/electron-log/lib/transports/console.js:72 12:49:59.253 › shell.openItem board-1-RRSWO.psd /tmp/.mount_Storyb19Ru0R/resources/app.asar/node_modules/electron-log/lib/transports/console.js:72 12:49:59.255 › board-1-RRSWO.psd /tmp/.mount_Storyb19Ru0R/resources/app.asar/node_modules/electron-log/lib/transports/console.js:72 12:49:59.257 › /home/vamp1r0/Documents/test_storyboard_3/test_storyboard_3/images/board-1-RRSWO.psd /tmp/.mount_Storyb19Ru0R/resources/app.asar/node_modules/electron-log/lib/transports/console.js:72 12:49:59.264 › result: true /tmp/.mount_Storyb19Ru0R/resources/app.asar/src/js/window/linked-file-manager.js:15 LinkedFileManager#addBoard {uid: "RRSWO", url: "board-1-RRSWO.png", newShot: false, lastEdited: 1561500573626, layers: {…}, …} /tmp/.mount_Storyb19Ru0R/resources/app.asar/src/js/window/linked-file-manager.js:79 getTimestamp {filepath: "/home/xxx/Documents/test_storyboard_3/test_storyboard_3/images/board-1-RRSWO.psd"}