+4
Postponed

Problem with Unit search on Linux

Hogni Gylfason 1 year ago updated by Brin 2 weeks ago 11

Problem:

Unit search box does not receive keyboard input, either due to focus problems or other, making search non-functional.

I'm entering text here and no characters appear in the search box.

Platform: Arch Linux 241, kernel 5.0.7, Gnome display manager 3.20-3.32, Nvidia 1070GTX, Intel i7 8th gen. Also reproduced on 2 other PCs running different setups.

Alternatives tested:

Also tried on unity 2019.1, tested different window managers (KDE, xfce) and another Linux distribution (Ubuntu 18.04).

P.S. I realize that Linux is not an officially supported Unity version and totally understand if this is not a valid issue. This works very well on Windows but as our entire backend is Linux based it is far more convenient for us to work on Linux than Windows. If this can be fixed it would be awesome, and if any further information or testing is needed I'll be happy to assist.

Bolt Version:
1.4.2
Unity Version:
2018.3.13f1
Platform(s):
Scripting Backend:
.NET Version (API Compatibility Level):
+1
Pending Review

Hi Högni, thanks for the report.

I remember having a similar issue reported back in the very early days, but I believe I had fixed it.

I don't have a Linux testing environment set up, so I unfortunately can't iterate on a fix quickly. I would advise you to try some edits and build from source, but that's not going to be easy on Linux, as the projects were setup for Visual Studio on Windows.

Basically, we use an internal Unity method to force keyboard focus on the fuzzy finder (ShowAssDropDownWithKeyboardFocus, LudiqGUIUtility.cs:950). Maybe using another variation or flags in ShowAsDropDown would fix it.

To be very candid, I'll leave this bug report open for when I have more free time, but I can't afford the time to install Linux and test it right now, I apologize.

It is of course entirely up to you which platform you find worth supporting and I'm not here to complain that Bolt doesn't work under Linux - but what I am complaining about is that you didn't advertise Bolt as "Windows and Mac only" on your Website. I bought Bolt in good faith that it would work under Linux.

I can confirm this. It seems that Bolt's search box is not capturing the

keyboard focus when creating a new node. I'm running Unity 2019.2.11f1, Bolt_1_4_9_NET4, Linux Mint

Mate 19.1 on a Razor Blade 15", GF 1070maxQ, 32gb ram, i7 6-core...I've

also tried an older 2018 lts version of Unity - same result

+1

Had a poke into this issue today - Jan 1 is boring - and changed 

// Assets/Bolt Dev/Ludiq.Core/Editor/Interface/LudiqGUIUtility.cs:974
var PopupMenuWithKeyboardFocus = Enum.ToObject(ShowModeType, 3); // Was 6

This changes the type from ShowMode.AuxWindow to ShowMode.Utility, and so far seems to work without issue, aside from some slowdown of the search (symptom of working with source version?).

Anyway, building the dynamic libs themselves correctly is a bit of a hassle, so if you want to build a release with that change, I can test it out on Linux. That is if it doesn't regress something on the Windows side of things - I can't test that.

Bolt Version: Source

Unity Version: 2019.2.12f1

Scripting backend: Net Standard 2.0

Linux stuff: 5.4.6-2-MANJARO / nVidia gtx 2080 @ driver 435x / Gnome 3.32 / Intel 9750

I also had a look around older versions of the UnityEditor dynamic lib and found that the ShowMode enum members have changed, both in order and number.

+2

Thank you Hogni. Your solution worked for me.
I'm on Linux Mint 19.3 and Unity 2019.3.0f3.

Steps I followed:
- Imported last unitypackage
- Extracted content of folder "Package" from the zip file to a "Ludiq" folder on my Unity Project
- Changed the aforementioned line

// Ludiq/Ludiq.Core/Editor/Interface/LudiqGUIUtility.cs:974
var PopupMenuWithKeyboardFocus = Enum.ToObject(ShowModeType, 3); // Was 6

Please Ludiq, fix this officially. Thank you guys.

Hi! I know this is a bit old but I've tried this on elementary 5.1.4 with Unity 2019.3.6 and I am not quite sure if I reproduced the steps correctly or something but it did not work for me.
After importing the unity package and extracting the package content into "Ludiq" folder in the project I got a whole bunch of errors from different scripts.

Are you still using this solution? Would it be possible for you to share what Bolt version you were using at this time? Thanks!

Hi Brin. It was Bolt 1.4.9. I think it worked also in 1.4.10. But I'm affraid I can't help you more right now since I'm not using Unity and I'm very stressed with work.

Thanks for the response. I'm still unable to get it to work, even with 1.4.10 so I'm assuming I'm doing something wrong. Good luck with your work tho :)

Just to give an update on this. A Unity dev on their forums said that there will be a fix in the next Bolt 1 update. https://forum.unity.com/threads/welcome-to-bolt-2-beta-coming-soon.874729/page-2

Just a bit more and we can move to Linux!