Lailloken / Lailloken-UI

Path of Exile UI and QoL overlay. Emphasizes ease of use, minimalist design, and seamless integration.
MIT License
593 stars 28 forks source link

Run Lailloken UI On Linux Help #446

Open Truncuso opened 3 months ago

Truncuso commented 3 months ago

Hey,

Does anyone have a guide on how to run the UI under Linux? I have installed AHK in Wine and run the UI script in the Wine context. I see the Lailloken UI icon appearing in my taskbar, but no overlay in PoE itself. Are there the same issues under Windows, What am I doing wrong? If someone has successfully used the Lailloken UI under Linux and could help me, I would appreciate it. How could I debug what's going wrong, that the overlay is not showing up in the Game ? i have seen: 332

Environment: Linux Steam Proton Experimental with AHK installed in the PoE wine context Latest AHK 1.x

Lailloken commented 3 months ago

General trouble-shooting steps, off the top of my head:

Truncuso commented 3 months ago

Tray Icon Persistence: The tray icon disappears unexpectedly. No Sound Notification: No beep sound occurs when tabbing into the game. Initialization Issues: There's a problem with initialization, possibly related to the logic in the provided script. log: if !WinExist("ahk_group poe_window")
669: if !WinExist("ahk_group poe_window") && (A_TickCount >= vars.general.runcheck + settings.general.kill[2]* 60000) && settings.general.kill[1]
672: if WinExist("ahk_group poe_window")
674: vars.general.runcheck := A_TickCount
675: if !vars.hwnd.poe_client
678: if vars.client.closed
687: vars.client.closed := 0
689: if settings.updater.update_check && (vars.update.1 = 0) && (A_TickCount - vars.general.startup >= vars.general.updatetick + 1200000)
695: } 696: } (0.04) 704: Critical 705: if vars.cloneframes.editing && (vars.settings.active != "clone-frames")
711: if vars.hwnd.recombination.main && WinActive("ahk_id " vars.hwnd.recombination.main) && (vars.general.wMouse = vars.hwnd.poe_client)
721: if vars.hwnd.stash_index.main && WinExist("ahk_id " vars.hwnd.stash_index.main) && !WinActive("ahk_id " vars.hwnd.stash_index.main) && !WinActive("ahk_id " vars.hwnd.stash_picker.main)
727: priceindex_count := 0 729: if vars.hwnd.settings && !vars.settings.wait
741: if vars.hwnd.mapinfo_modsearch.main && WinExist("ahk_id " vars.hwnd.mapinfo_modsearch.main) && !WinActive("ahk_id " vars.hwnd.mapinfo_modsearch.main)
744: if settings.general.ClientFiller
758: if vars.hwnd.maptracker_logs.sum_tooltip && WinExist("ahk_id " vars.hwnd.maptracker_logs.sum_tooltip) && !WinActive("ahk_id " vars.hwnd.maptracker_logs.sum_tooltip)
764: if vars.hwnd.maptrackernotes_edit.main && WinExist("ahk_id " vars.hwnd.maptrackernotes_edit.main) && (WinActive("ahk_id " vars.hwnd.maptracker_logs.main) || WinActive("ahk_id " vars.hwnd.maptr 767: if vars.hwnd.searchstrings_context && WinExist("ahk_id " vars.hwnd.searchstrings_context) && !WinActive("ahk_group poe_window") && !WinActive("ahk_id "vars.hwnd.searchstrings_context)
772: if vars.hwnd.omni_context.main && WinExist("ahk_id "vars.hwnd.omni_context.main) && !WinActive("ahk_group poe_window") && !WinActive("ahk_id "vars.hwnd.omni_context.main)
778: if !WinActive("ahk_group poe_ahk_window") && !(settings.general.dev && WinActive("ahk_exe code.exe"))
780: vars.general.inactive += 1
781: if (vars.general.inactive = 3)
786: } 787: MouseHover()
893: MouseGetPos,xPos,yPos,win_hover,control_hover,2 894: vars.general.xMouse := xPos, vars.general.yMouse := yPos
895: vars.general.wMouse := Blank(win_hover) ? 0 : win_hover, vars.general.cMouse := Blank(control_hover) ? 0 : control_hover
115: if (var = "")
117: } 115: if (var = "")
117: } 896: } 788: IteminfoOverlays()

Lailloken commented 3 months ago

You should also try versions around v1.51.2 mentioned in #332, just to check whether something has changed since then that completely stops the tool from working under Linux.

Excuse my Linux ignorance, how are you running PoE? I understand that one needs to jump through hoops to get AHK-scripts working (installing/running it in some sort of context), so maybe you need to do the same for PoE (EDIT: so the tool can interact with the game-client)? Just spit-balling since I'm completely clueless.

Truncuso commented 3 months ago

In version v1.51.2, the LLK UI "button" appears in the game, but nothing happens when I click it. In the newer version, the button is completely absent.

I’m wondering if anyone else has managed to get it to work or has a workaround.

I appreciate your great work and totally understand that you may not have a solution for Linux at hand.

Are there any Windows DLLs or other libraries necessary to run the script? If so, I think I may need to add them to my environment.

random-cdda-modder commented 3 months ago

Excuse my Linux ignorance, how are you running PoE? I understand that one needs to jump through hoops to get AHK-scripts working (installing/running it in some sort of context), so maybe you need to do the same for PoE (EDIT: so the tool can interact with the game-client)? Just spit-balling since I'm completely clueless.

There are two ways to run PoE on linux, either "native" as a normal linux game, or through a "windows emulator" like wine(yes yes "Wine Is Not an Emulator"). The one that allows AHK(a windows application) to work together with PoE is the wine way.

On top of using wine, steam creates a windows-like environment(with its own "C" drive, registry settings etc.) for each game, so care must be taken to a) install AHK into the same windows environment that the game is running in and b) also make sure AHK is running in the same environment. For example even if you install it correctly you can still accidently run it in the "default" environment where it will not see any PoE running and be unable to interact with the game.

In version v1.51.2, the LLK UI "button" appears in the game, but nothing happens when I click it. In the newer version, the button is completely absent.

Sounds like you have installed and started everything correctly. It is likely the old version does not work with new PoE and the new version has some new weird issue when emulated with wine.

Are there any Windows DLLs or other libraries necessary to run the script? If so, I think I may need to add them to my environment.

steam(aka proton) should have everything necessary for AHK pre-installed.

I don't play PoE anymore and not even the currency exchange has roused me enough to try again.

Things I would try in different combinations:

  1. Try different versions of proton from steam settings for PoE. Maybe the experimental or some older version works better.
  2. I remember having to fiddle with basic graphics settings. I don't have what I ended up with in the game client, but LLK UI ini/config.ini file contained:
    fullscreen=true
    remove window-borders=0
  3. Read the script log and see if there are any errors and then exercise some coding skills and attempt to add debug logging and then fix the bugs. your pasted log in previous comment is reporting Initialization Issues: There's a problem with initialization, possibly related to the logic in the provided script. which means either it did not succeed with determining graphics settings(game window size/position/etc) due to above 2, or there's some other issue.
  4. Your choice of graphical pipeline might affect things too, back then I had gnome on X11 iirc.
Lailloken commented 3 months ago

I don't play PoE anymore and not even the currency exchange has roused me enough to try again.

Thanks a lot for chiming in nonetheless, much appreciated.

My plan is to implement better logging for the next release so errors in the initialization of the tool can be traced more easily. This wasn't really necessary until now, but there have been one or two exotic issues this league where a startup-log would have been useful.

Lailloken commented 2 months ago

v1.55.2 now has logging functionality to more easily trouble-shoot launch issues. To opt in, create a log.txt file in the data sub-folder within the tool's folder, and the tool will log everything it does during startup.

Example:

[2024-08-27, 18:32:02] --- tool launched ---
[2024-08-27, 18:32:03] initialized global objects
[2024-08-27, 18:32:03] initialized GDI+
[2024-08-27, 18:32:03] set up window-groups, measured window-borders: 8, 8, 23
[2024-08-27, 18:32:03] waiting for valid game-clients...
[2024-08-27, 18:32:03] found game-client
[2024-08-27, 18:32:03] game-client is local client
[2024-08-27, 18:32:03] found game's config-file
[2024-08-27, 18:32:03] recognized current window settings
[2024-08-27, 18:32:03] measured monitor resolution and position: 2560x1440, 0, 0
[2024-08-27, 18:32:03] repositioned game-client
[2024-08-27, 18:32:03] game's log-file: E:\Games\Path of Exile\logs\client.txt
[2024-08-27, 18:32:03] found game's log-file
[2024-08-27, 18:32:03] accessed required information from log-file
[2024-08-27, 18:32:03] initialized screenchecks settings
[2024-08-27, 18:32:03] initialized general settings
[2024-08-27, 18:32:03] initialized betrayal settings
[2024-08-27, 18:32:03] initialized cheat-sheet settings
[2024-08-27, 18:32:03] initialized clone-frames settings
[2024-08-27, 18:32:03] initialized item-info settings
[2024-08-27, 18:32:03] initialized seed-explorer settings
[2024-08-27, 18:32:03] initialized map-info settings
[2024-08-27, 18:32:03] initialized ocr settings
[2024-08-27, 18:32:03] initialized search-strings settings
[2024-08-27, 18:32:04] initialized act-tracker settings
[2024-08-27, 18:32:04] initialized map-tracker settings
[2024-08-27, 18:32:04] initialized minor qol settings
[2024-08-27, 18:32:04] initialized recombination settings
[2024-08-27, 18:32:04] initialized sanctum planner settings
[2024-08-27, 18:32:04] initialized stash-ninja settings
[2024-08-27, 18:32:04] initialized hotkey settings
[2024-08-27, 18:32:04] waiting for focus on client-window...
[2024-08-27, 18:32:07] client is focused
[2024-08-27, 18:32:07] GUIs initialized
[2024-08-27, 18:32:07] +++ tool is running +++
Truncuso commented 2 months ago

Thank you, @random-cdda-modder, for the help and pointers in the right direction, and for clarifying the installation and environment setup on Linux to @Lailloken. I appreciate the confirmation that I have installed everything correctly. I also thought it should work this way after I installed and started everything.

When I have more time, I’ll try to fix the issue on Linux and identify where the installation failed. I need to familiarize myself more with AHK scripting and the structure of the project first.

Special thanks to you, @Lailloken, for implementing the logging function and all the other implementations in general. Will it log everything automatically in to the log.txt file, or do I need to set some ErrorLevel flag ?

Lailloken commented 2 months ago

@Truncuso As long as the data\log.txt exists, it will log every startup-step it goes through. For now, the main focus is finding out if it skips or gets stuck on specific steps: for most steps it returns whether the step succeeded or failed, but for some it also returns what the tool measured/retrieved (e.g. resolutions, file-locations, etc.)