Jump to content
You must now use your email address to sign in [click for more info] ×

Affinity Suite v2.0.4 on linux [ Wine ]


Wanesty

Recommended Posts

56 minutes ago, Grunt said:

It's not bug on your side. As Wayland is ported from some branch into mainline, it isn't ported completely.  "Input not working" is one of known bugs. Work should be done until Christmas this year (if everything goes according to plan). But how did you get any output? This might be some bug unique to my machine. ;-) Distribution is Arch?

The code checks for "explorer.exe /desktop=somedisplayname,WidthxHeight,driver"

So you can run

Explorer.exe /desktop=eDP-2,1920x1200,Wayland Photo.exe

And it will use Wayland. And it should say which rendered it uses in the logs when you include WINEDEBUG=+explorer

There are 6 merge requests merged now for Wayland support. So it's more or less in mainline now. But still pretty experimental evidently

Link to comment
Share on other sites

On 8/31/2023 at 2:15 AM, ElementalWarrior said:

I tried with the Wayland display set using sway. It opened, but accepted no input.

won't even open on my side but it's an issue with wayland not being available as a wine driver, i'll spend more time on the wayland stuff later

up to date guide for the Affinity Suite on Linux :  codeberg.org/affinity-wine-docs

Link to comment
Share on other sites

So just for fun, I've merged (localy) patches for Wayland and you were right:

Photo_Wayland.jpg.628be2b6bc2b41d8a469e9c6c43fac44.jpg

Wine is able to create window and mouse input works. But creating any sub-menu doesn't work yet:

0024:fixme:wtsapi:WTSQuerySessionInformationW Unimplemented class 8
0024:fixme:wtsapi:WTSRegisterSessionNotification Stub 0000000000070090 0x00000000
0024:fixme:uiautomation:UiaReturnRawElementProvider Unsupported object id -4, ignoring.
0024:fixme:wtsapi:WTSUnRegisterSessionNotification Stub 00000000000400B0
0024:fixme:wtsapi:WTSQuerySessionInformationW Unimplemented class 8
0024:fixme:wtsapi:WTSRegisterSessionNotification Stub 00000000000500B0 0x00000000
0024:fixme:uiautomation:UiaReturnRawElementProvider Unsupported object id -4, ignoring.
0024:fixme:wtsapi:WTSQuerySessionInformationW Unimplemented class 8
0024:fixme:wtsapi:WTSRegisterSessionNotification Stub 00000000000B00B2 0x00000000
0024:fixme:uiautomation:UiaReturnRawElementProvider Unsupported object id -4, ignoring.
0024:fixme:wtsapi:WTSUnRegisterSessionNotification Stub 0000000000070090
0024:fixme:wtsapi:WTSUnRegisterSessionNotification Stub 00000000000500B0
0024:fixme:wtsapi:WTSUnRegisterSessionNotification Stub 00000000000B00B2
0024:fixme:wtsapi:WTSQuerySessionInformationW Unimplemented class 8
0024:fixme:wtsapi:WTSRegisterSessionNotification Stub 00000000000C00B2 0x00000000
0024:fixme:uiautomation:UiaReturnRawElementProvider Unsupported object id -4, ignoring.
0024:fixme:wtsapi:WTSUnRegisterSessionNotification Stub 00000000000C00B2
0024:fixme:wtsapi:WTSQuerySessionInformationW Unimplemented class 8
0024:fixme:wtsapi:WTSRegisterSessionNotification Stub 00000000000D00B2 0x00000000
0024:fixme:uiautomation:UiaReturnRawElementProvider Unsupported object id -4, ignoring.
0024:fixme:wtsapi:WTSUnRegisterSessionNotification Stub 00000000000D00B2
0024:fixme:wtsapi:WTSQuerySessionInformationW Unimplemented class 8
0024:fixme:wtsapi:WTSRegisterSessionNotification Stub 00000000000E00B2 0x00000000
0024:fixme:uiautomation:UiaReturnRawElementProvider Unsupported object id -4, ignoring.
0024:fixme:wtsapi:WTSUnRegisterSessionNotification Stub 00000000000E00B2
0024:fixme:wtsapi:WTSQuerySessionInformationW Unimplemented class 8
0024:fixme:wtsapi:WTSRegisterSessionNotification Stub 00000000000F00B2 0x00000000
0024:fixme:uiautomation:UiaReturnRawElementProvider Unsupported object id -4, ignoring.
0024:fixme:wtsapi:WTSUnRegisterSessionNotification Stub 00000000000F00B2
0024:fixme:win:UnregisterPowerSettingNotification (00000000DEADBEEF): stub
0024:fixme:wtsapi:WTSUnRegisterSessionNotification Stub 0000000000010096
0024:fixme:dwmapi:DwmDetachMilContent (0000000000010060) stub

and window control and keyboard input doesn't work as well. Are there any other patches for Wayland support not merged in mainline i do not know of yet?

It's my bad because back in June i was testing dxvk (not just Wayland) and I just found log. I wasn't even able to create a surface:

024:fixme:file:NtLockFile I/O completion on lock not implemented yet
0134:fixme:file:NtLockFile I/O completion on lock not implemented yet
0134:fixme:process:SetProcessShutdownParameters (00000100, 00000001): partial stub.
0024:fixme:ntdll:EtwEventSetInformation (deadbeef, 2, 00000000015EF2F0, 46) stub
0124:fixme:ole:thread_context_callback_ContextCallback 000000001A86FBD8, 00007FFFFE652E30, 00000000199FF820, {d7174f82-36b8-4aa8-800a-e963ab2dfab9}, 2, 0000000000000000
0124:fixme:ole:thread_context_callback_ContextCallback 000000001A86FBD8, 00007FFFFE652E30, 00000000199FF710, {d7174f82-36b8-4aa8-800a-e963ab2dfab9}, 2, 0000000000000000
0124:fixme:ole:thread_context_callback_ContextCallback 000000001A86FBD8, 00007FFFFE652E30, 00000000199FF710, {d7174f82-36b8-4aa8-800a-e963ab2dfab9}, 2, 0000000000000000
0124:fixme:ole:thread_context_callback_ContextCallback 000000001A86FBD8, 00007FFFFE652E30, 00000000199FF710, {d7174f82-36b8-4aa8-800a-e963ab2dfab9}, 2, 0000000000000000
0124:fixme:ole:thread_context_callback_ContextCallback 000000001A86FBD8, 00007FFFFE652E30, 00000000199FF710, {d7174f82-36b8-4aa8-800a-e963ab2dfab9}, 2, 0000000000000000
0024:fixme:msg:ChangeWindowMessageFilter c042 00000001
0024:fixme:dwmapi:DwmAttachMilContent (0000000000010060) stub
0170:fixme:gdi:GdiEntry13 stub
info:  Game: Designer.exe
info:  DXVK: v2.2-145-g9b019d26
info:  Vulkan: Found vkGetInstanceProcAddr in winevulkan.dll @ 0x2d4ad3f40
info:  Built-in extension providers:
info:    Win32 WSI
info:    OpenVR
info:    OpenXR
info:  OpenVR: could not open registry key, status 2
info:  OpenVR: Failed to locate module
0170:err:vulkan:init_vulkan Failed to load Wine graphics driver supporting Vulkan.
0170:err:vulkan:init_vulkan Failed to load Wine graphics driver supporting Vulkan.
info:  Required Vulkan extension VK_KHR_surface not supported

Presentable Surfaces:
=====================
GPU id : 0 (NVIDIA GeForce):
        Surface types: count = 2
                VK_KHR_xcb_surface
                VK_KHR_xlib_surface
        Formats: count = 2
                SurfaceFormat[0]:
                        format = FORMAT_B8G8R8A8_UNORM
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
                SurfaceFormat[1]:
                        format = FORMAT_B8G8R8A8_SRGB
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR

But this might be a graphical issue on my side. When Wayland support in mainline will be done, I'm going to test it again.

Link to comment
Share on other sites

Yeah I just tried sticking the wayland mouse MR on top of my branch, and I see the same thing. file menu doesn't open. If I use the new file dialog and open a new window, it just stops accepting input and leaves the cursor with the pan/drag cursor

I don't have any inside information here bud. I read the wine email list digest.

You can search here for what has been upstreamed, and what is in progress. The mouse PR still has back and forth comments.

https://gitlab.winehq.org/wine/wine/-/merge_requests

From the looks of it, their independent branch of wayland work is here: https://gitlab.collabora.com/alf/wine/-/tree/wayland

There appear to be hundred(s) of commits over a couple years. So its going to take them a bit to propose, address comments, and upstream all their changes.

I might spend a bit of time rebasing off of that branch, and see what happens.

Link to comment
Share on other sites

I tried the `wine-affinity-photo2-wine83-alf-wayland-git` branch on Archlinux using Sway window manager using ./configure flags --with-wayland --with-vulkan

It seems to be performing much better than my previous test.

In case anyone just wants a quick and dirty test using system-wine -- here is my PKGBUILD.

PKGBUILD-wine-affinity-photo2-wine83-alf-wayland-git.202309040000.zip

Link to comment
Share on other sites

Hey! Long time no see... I'm glad to see all the progress being made here and I have a little something to add: Thumbnails! 🥳

Basically I looked for different image types in .afphoto files and it turns out that Affinity simply saves thumbnails as PNGs contained within the project files (as long as saving thumbnails is enabled in the settings). So I wrote a little python script (okay I had ChatGPT write one because I was too lazy lol but it works really well) that simply scans a file for PNG data and saves the resulting image.

All you need to do then is add a mime-type XML to /usr/share/mime/packages/, call

sudo update-mime-database /usr/share/mime

 add a .thumbnailer file to /usr/share/thumbnailers and put the script in some place like /usr/bin/ (and make it executable).

After all the data is in place you simply need to quit Nautilus

nautilus -q

and then delete your thumbnail cache

rm -r ~/.cache/thumbnails

Once all that is done you can reopen Nautilus and all your .afphoto files should have thumbnails like so!

image.png.0a44885199eb2354a557b032642c525c.png

I didn't test this for Affinity Designer and Publisher files, but I assume it's about the same, just with a different extension. I will add a bit about this to @Wanesty's repo on Codeberg in the next few days and maybe I'll do it for the other file types as well but feel free to try it yourself, I attached the three needed files to this post :)

And while I did check through the script and while with my limited python knowledge it does look good, keep in mind this was written by an AI and I'm not responsible if you burn your house down, so read through everything first and make sure you understand it!

afphoto.xml afphoto-thumb.thumbnailer afphoto-thumbnailer.sh

Link to comment
Share on other sites

7 minutes ago, BLKFSH said:

So I wrote a little python script (okay I had ChatGPT write one because I was too lazy lol but it works really well) that simply scans a file for PNG data and saves the resulting image.

There's already one of those you could have used :)

 

 

-- Walt
Designer, Photo, and Publisher V1 and V2 at latest retail and beta releases
PC:
    Desktop:  Windows 11 Pro, version 23H2, 64GB memory, AMD Ryzen 9 5900 12-Core @ 3.00 GHz, NVIDIA GeForce RTX 3090 

    Laptop:  Windows 11 Pro, version 23H2, 32GB memory, Intel Core i7-10750H @ 2.60GHz, Intel UHD Graphics Comet Lake GT2 and NVIDIA GeForce RTX 3070 Laptop GPU.
iPad:  iPad Pro M1, 12.9": iPadOS 17.4.1, Apple Pencil 2, Magic Keyboard 
Mac:  2023 M2 MacBook Air 15", 16GB memory, macOS Sonoma 14.4.1

Link to comment
Share on other sites

6 minutes ago, walt.farrell said:

There's already one of those you could have used :)

 

 

Oops! I was so busy researching how Affinity saves thumbnails that I didn't even consider someone had made a script for it already! I guess it's easier having ChatGPT write a script in 30 seconds than it is to search for an existing solution...

Either way, unless someone also uploaded the thumbnailer file that works with that script as well I at least added something I guess? And if someone did that as well already I'll just sit in the corner and shut up :P

Link to comment
Share on other sites

25 minutes ago, BLKFSH said:

I guess it's easier having ChatGPT write a script in 30 seconds than it is to search for an existing solution...

It always also depends on how accurate ChatGPT did that job. My Py script for example, extracts ALL available & embedded PNG images in any Affinity file, so not just the first or last one PNG signature it finds inside files.

29 minutes ago, BLKFSH said:

Either way, unless someone also uploaded the thumbnailer file that works with that script as well I at least added something I guess? And if someone did that as well already I'll just sit in the corner and shut up ...

Probably somebody already made such solutions, as a simple Google & GitHub internet based recherche search would tell then!

☛ Affinity Designer 1.10.8 ◆ Affinity Photo 1.10.8 ◆ Affinity Publisher 1.10.8 ◆ OSX El Capitan
☛ Affinity V2.3 apps ◆ MacOS Sonoma 14.2 ◆ iPad OS 17.2

Link to comment
Share on other sites

21 minutes ago, v_kyr said:

It always also depends on how accurate ChatGPT did that job. My Py script for example, extracts ALL available & embedded PNG images in any Affinity file, so not just the first or last one PNG signature it finds inside files.

Probably somebody already made such solutions, as a simple Google & GitHub internet based recherche search would tell then!

Yeah, it's not always the most reliable but I've found that for small tasks it usually gets the job done if you specify it precisely enough.

As for existing solutions, the only thing I was able to find was this thumbnail generator for .afphoto files for Nextcloud, which is pretty cool too!

Link to comment
Share on other sites

Since we're on the topic of thumbnailers,

Here's one I wrote years ago that uses bash to thumbnail psd files for Gnome/Nautilus (I've since quit PS).

I included it for comparative purposes or anyone who could use a starting point to mod one for AF2 using bash.

Edit: @SevenStart for mass consumption, I think the easiest it can get would be if someone made a copy of elemental-warrior's wayland branch for Bottles. Maybe somebody around here has experience with that. Of course, Serif could just start wrapping their own Flatpak and selling it on FlatHub.org now that they are expanding into commercial sales this year wink wink ;);) )

install_psd_thumbnailer.sh

Edited by Loren Dias
consolidate replies
Link to comment
Share on other sites

18 minutes ago, BLKFSH said:

Yeah, it's not always the most reliable but I've found that for small tasks it usually gets the job done if you specify it precisely enough.

May I ask why you give a Python code script here an ".sh" file instead of a ".py" extension? - If I see such file names, I would expect a bourne or bash code based shell script, but not a Python one.

18 minutes ago, BLKFSH said:

As for existing solutions, the only thing I was able to find was this thumbnail generator for .afphoto files for Nextcloud, which is pretty cool too!

I think I know that JS/PHP one. - Though you don't have to recheche here and search just after PNGs in/for Affinity files, but instead more commonly after finding and extract any PNG signatures in binary files. As the Affinity files here are just treated as plain binary files, from which any included PNG(s) should be extracted!

 

 

 

☛ Affinity Designer 1.10.8 ◆ Affinity Photo 1.10.8 ◆ Affinity Publisher 1.10.8 ◆ OSX El Capitan
☛ Affinity V2.3 apps ◆ MacOS Sonoma 14.2 ◆ iPad OS 17.2

Link to comment
Share on other sites

13 minutes ago, v_kyr said:

May I ask why you give a Python code script here an ".sh" file instead of a ".py" extension? - If I see such file names, I would expect a bourne or bash code based shell script, but not a Python one

 

 

 

Oh, I think I originally tried it as a shell-script, but then switched to the Python version instead... I guess in the end the file extension could be omitted anyway since there's that shebang in the first line and there's no need to call the file through the python command, which is what I'd expect from a .py file, but an actual Python dev might disagree on that.

In the end this was just a quick and dirty solution that turned out to work well, I might still make some changes when I add everything to the repo...

Link to comment
Share on other sites

24 minutes ago, BLKFSH said:

Oh, I think I originally tried it as a shell-script, but then switched to the Python version instead... I guess in the end the file extension could be omitted anyway since there's that shebang in the first line and there's no need to call the file through the python command, which is what I'd expect from a .py file, but an actual Python dev might disagree on that.

Ah Ok, yes the shebang in the file should treat it either way right, at least on well behaving Unix/Linux OSes. - Other than that you can also omit the file extension completely and give it a "chmod +x ..." so it is callable and will be executed like an app/program.

☛ Affinity Designer 1.10.8 ◆ Affinity Photo 1.10.8 ◆ Affinity Publisher 1.10.8 ◆ OSX El Capitan
☛ Affinity V2.3 apps ◆ MacOS Sonoma 14.2 ◆ iPad OS 17.2

Link to comment
Share on other sites

5 hours ago, SevenStart said:

Hey, would anyone be willing to produce a step-by-step tutorial for installing Affinity 2.x on Linux as a YouTube video? This would be for people like me who still have issues with the installation despite having a guide.

I would really appreciate it.

the content of the guide is too fluid to be made into a video, i moved the guide to codeberg to address this exact issue (the forum not letting me edit stuff like i need to)

however please do tell us the issues your facing with the codeberg guide and it's likely ambiguity (;feel free to write an issue there directly with suggestion on what's lacking and how it could be improved! )

up to date guide for the Affinity Suite on Linux :  codeberg.org/affinity-wine-docs

Link to comment
Share on other sites

  • 2 weeks later...

First off, a big thanks to Wanesty for the guide and ElementalWarrior for all the work and patches that made this possible in the first place. I've set this up the other day and it's working quite nicely. One thing I've ran into: Affinity Photo 2 does not appear to be able to save its preferences/settings at all. It does remember my login, but nothing else. Any preferences I change in the preferences dialog, or even the checkbox in the "new document" popup to prevent it from opening on every start simply does not save.

Has anybody else had this problem yet? I could not find anything in this thread here. Photo is also not crashing, at least it doesn't look like it is. So I'm really not sure what could be causing this.

 

Edit: Looks like Photo can at least read the config files. I've generated them in a Windows VM and copied them over. But writing appears to not work. Well, this approach is an acceptable solution for me, at least for the time being :)

Edited by Ennea
Link to comment
Share on other sites

saving configs is... weird

your best bet would be to save your workspaces with Window > Studio > Add Preset

i also had some random success with the virtual desktop feature, explained in the tips and fixes page

that and closing affinity using File > Exit would be the most likely setup for success

up to date guide for the Affinity Suite on Linux :  codeberg.org/affinity-wine-docs

Link to comment
Share on other sites

16 minutes ago, Ennea said:

Any workarounds for Photo crashing when exporting files into formats besides afphoto? It still appears to save the file successfully, just crashes right after. I can live with that, kinda, but would be cool to not have it happen.

ahah no,

exporting to anything but vector format crashes all three affinity software, save, export, and if it stays stuck on a frozen state, kill wine with the command listed on the tips and fixes page

it's kind of a pain ngl but as i said a few times, i sadly can not recommend using affinity on linux if you're using the affinity suite intensely, for professal work purposes.
it is usable for most of it's usecases, but far from flawless..

Edited by Wanesty

up to date guide for the Affinity Suite on Linux :  codeberg.org/affinity-wine-docs

Link to comment
Share on other sites

21 minutes ago, Ennea said:

I would not have picked Linux

i mean.. for this instance you're right but Linux has a lot of pro userbase and software, especially DAWs, video editing, VFX, game development, most kind of dev actually ahah

sadly Apple and Adobe really made macOS the standard for graphic design, (specifically talking about Adobe products, Sketch and Glyph)

(as for windows, it simply have the largest userbase so they(serif and adobe) kinda have to make it available there..)

up to date guide for the Affinity Suite on Linux :  codeberg.org/affinity-wine-docs

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use | Privacy Policy | Guidelines | We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.