zackelia / ghidra-dark

Dark theme installer for Ghidra

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Windows support

NeverBit opened this issue · comments

I'll start by saying that I managed to install this theme on Windows 10 (x64) just now.
It doesn't work straight away and there are 3 issues which I encountered that I've listed below.

Apologies for not submitting a pull request, I don't want to break the repo for other platforms and I can't test on Linux/macOS

Things to fix:

  • Install.py:17: running pgrep obviously fails on windows. I even have cygwin installed with some default utilities and it doesn't exist. I was too lazy to figure out how to iterate processes so I just commented that code out and made sure ghidra was closed.

  • Install.py:56: To enable FlatLaf on windows the file launch.bat should be updated instead of launch.sh.
    Within launch.bat It should turn these lines:

set CPATH=%INSTALL_DIR%Ghidra\Framework\Utility\lib\Utility.jar
set CPATH=%INSTALL_DIR%Ghidra\Framework\Utility\bin\main

to these:

set CPATH=%INSTALL_DIR%Ghidra\Framework\Utility\lib\Utility.jar;%INSTALL_DIR%flatlaf-0.43.jar
set CPATH=%INSTALL_DIR%Ghidra\Framework\Utility\bin\main;%INSTALL_DIR%flatlaf-0.43.jar

(The search and replace logic is similar to the one for launch.sh)

  • tcd_browser.py:72: Something about iterating the 'STATE' elements just didn't work for me. Wrong elements were updated (colors for one element given to another) and I can't tell why would using Windows cause this. maybe it's an issue for all platforms?
    I fixed it by iterating the children of the current element instead of the entire category:
    Old code:
                            e = [_ for _ in category.iter() if _.get("NAME") == state.name][0]

New Code:

                            e = [_ for _ in element.iter() if _.get("NAME") == state.name][0]

@NeverBit Wasn't as bad as I thought :) Thanks for your interest and work for this issue!