F.lux cannot distinguish between Java programs

  • F.lux now has program-specific disabling, which is useful, but this feature cannot tell the difference between different Java programs. For example, both Eclipse (an IDE), VisualVM (a profiler) and Minecraft (a game) are Java programs, and as a result if you try to have F.lux automatically disable for one (namely the last one), it will also disable for the other two.

    This is very problematic, as IDEs and profilers consist almost entirely of text on white background, the exact kind of thing for which F.lux is most useful.

    I imagine this has something to do with the fact that no matter what Java program is run, the Windows process list lists javaw.exe; the actual 'program' runs entirely within the Java Virtual Machine.

  • Yes we are trying to get the process name and not the titlebar, because titlebars are hidden in many cases (e.g., tabbed UIs) and tend to change (e.g., with the open filename listed).

    Still we might be able to add a section for titlebar text, if these apps are using a standard Windows title. Are you able to see if they use a standard titlebar? (spy++ would be the best way).

  • The first two do, yes:
    alt text
    alt text

    And, under normal circumstances, so does MC itself:
    alt text

    However, many people play with a JVM argument "-Dorg.lwjgl.opengl.Window.undecorated=true", which hides the title bar content, used because it makes maximization work like borderless windowed mode:
    alt text

    I suspect that latter variation will break the implementation you are talking about. That said, one of the primary reasons for such a use of borderless windowed mode is to "trick" F.lux into thinking it is a full-screen program, and so native support for MC would make the argument for that purpose redundant.

  • Thanks - so we could do a "keyword match" kind of manual text entry where you type keywords to match, but this leads to people typing "Eclipse" and being upset about why the Eclipse picture in Photoshop disables also.

    Do you think "starts with" is sufficient for this?

  • A quick update: I see you mentioned "spy++", which sounds like a decompiler or something with which I could view the source of the programs in question.

    I can do one better for MC itself. Here is the source code for the construction of the LWJGL display (see line 450):
    Display title set at line 450

  • @reika yeah spy++ is just an inspector for windows, so it lets you see the difference between "window text" and owner draw styling.

  • Do you think "starts with" is sufficient for this?
    Quite possibly, but I would let the user choose, because it might be the case that the program has something like what Eclipse does above, i.e. ends with the program name.

Log in to reply