angryip / ipscan

Angry IP Scanner - fast and friendly network scanner
angryip.org
GNU General Public License v2.0
4.09k stars 716 forks source link

Bad colors on macOS dark mode for some users #231

Closed luizjr closed 4 years ago

luizjr commented 4 years ago

The interface is bad, in fact almost impossible to use in mac os dark mode, follow the print image

angryziber commented 4 years ago

Please update to version 3.7.0

luizjr commented 4 years ago

@angryziber Is the site not the latest version?

luizjr commented 4 years ago

I downloaded the latest GitHub release and it looks like it is not fixed.

It seems to be already in the latest version.

image

cyberdemon8 commented 4 years ago

terrible version update for mac... please re-open issue and fixit...

Schermata 2020-03-18 alle 15 53 35

update: openjdk 11: problems!! openjdk 13: all ok :-)

angryziber commented 4 years ago

It seems that SWT behaves strangely under OpenJDK 11 (no problems with 8). Need to investigate...

angryziber commented 4 years ago

Actually, I cannot reproduce the problem - Angry IP Scanner looks good in dark mode. I have tried AdoptOpenJDK 8 and 11 and Oracle Java 11. All of these work properly.

@cyberdemon8 On your screenshot you have Oracle Java 12, not OpenJDK. @luizjr How do you guys install your Java?

Did you try to change system settings to force the program into either dark or light mode before? Anything else unusal you might have done?

cyberdemon8 commented 4 years ago

i've used brew to install java... brew cask install java11

angryziber commented 4 years ago

brew install java11 works well for me - if macOS is in dark mode, Angry IP Scanner 3.7.0 appears with all dark colors displayed correctly.

Any other ideas what may break it for you?

cyberdemon8 commented 4 years ago

no java11 from brew but from cask...

Steps fo testing:

java --version openjdk 12.0.1 2019-04-16 OpenJDK Runtime Environment (build 12.0.1+12) OpenJDK 64-Bit Server VM (build 12.0.1+12, mixed mode, sharing)

defaults read net.azib.ipscan NSRequiresAquaSystemAppearance 2020-03-22 20:02:47.202 defaults[45663:5354798] The domain/default pair of (net.azib.ipscan, NSRequiresAquaSystemAppearance) does not exist

angryziber commented 4 years ago

Now I get it - 'brew cask install' is different from just 'brew install'. brew cask install java gives me Java14, with which the colors are normal. brew cask install java11 gives an error: Cask 'java11' is unavailable. Are you using some separate non-standard source of casks? Why installing Java11 gives you Java12, which is no longer supported?

Anyway. @cyberdemon8 can you please run Contents/MacOS/ipscan from inside of the bundle from terminal and see if any errors are reported?

cyberdemon8 commented 4 years ago

results for brew tap:

colindean/fonts-nonfree homebrew/cask homebrew/cask-fonts homebrew/cask-versions homebrew/core homebrew/services

i've found "bad" repo... homebrew/cask-versions.

i've preferred to clean the mess...

all working nice & tidy :-)

angryziber commented 4 years ago

Hmm... it would still be nice if you would run the app from command-line and see if there was an error that could be worked around... It seems you are not the only problem having this issue - there are at least 2 of you :-) @luizjr ?

cyberdemon8 commented 4 years ago

ooook 😄 reinstalled all from scratch... oddly though java 11 was installed this time... 😮

java --version

openjdk 11.0.2 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)  

same result of java 12: BAD COLORS...

/Applications/Angry\ IP\ Scanner.app/Contents/MacOS/ipscan

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by net.azib.ipscan.fetchers.HostnameFetcher (file:/Applications/Angry%20IP%20Scanner.app/Contents/MacOS/ipscan-mac-3.7.0.jar) to field java.net.InetAddress.impl
WARNING: Please consider reporting this to the maintainers of net.azib.ipscan.fetchers.HostnameFetcher
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

but... using java 13 (brew install java) same errors and colors ok:

openjdk 13.0.2 2020-01-14
OpenJDK Runtime Environment (build 13.0.2+8)
OpenJDK 64-Bit Server VM (build 13.0.2+8, mixed mode, sharing)
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by net.azib.ipscan.fetchers.HostnameFetcher (file:/Applications/Angry%20IP%20Scanner.app/Contents/MacOS/ipscan-mac-3.7.0.jar) to field java.net.InetAddress.impl
WARNING: Please consider reporting this to the maintainers of net.azib.ipscan.fetchers.HostnameFetcher
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
bugs181 commented 4 years ago

there are at least 2 of you

Make that three. Scanner Version 3.7.0

java 11.0.1 2018-10-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.1+13-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.1+13-LTS, mixed mode)

Installed the app from the website. Not sure where I got Java from as I try to avoid apps that use it. Its slow, clunky, and has had too many security implications in the past.

abulka commented 4 years ago

Old version was working perfectly. Just made the mistake of upgrading to 3.7.0 and the colours are unreadable on Mac Mojave.

$ java --version
openjdk 13.0.2 2020-01-14

P.S.

$ ls /Library/Java/JavaVirtualMachines
jdk1.8.0_221.jdk   openjdk-13.0.2.jdk

$ ls /usr/local/opt/openjdk
No such file or directory
angryziber commented 4 years ago

Old version didn't work correctly in dark more for some users as well: https://github.com/angryip/ipscan/issues/182

And dark mode support was much requested, that's why it was added.

I still don't understand how do you get this problem - I have a clean install of macOS Catalina in a VM and I have tried installing Java many different ways - the app looks good in dark mode. I have never experienced the problem like on screenshots above myself...

angryziber commented 4 years ago

Please someone use this binary from here: https://github.com/angryip/ipscan/actions/runs/67714944

After extracting the application bundle, please run Contents/MacOS/ipscan in Terminal and paste the output here.

abulka commented 4 years ago

Running the binary on my Macbook Air (Mojave)

$ ./Angry\ IP\ Scanner.app/Contents/MacOS/ipscan
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by net.azib.ipscan.fetchers.HostnameFetcher (file:/Users/Andy/Downloads/Angry%20IP%20Scanner.app/Contents/MacOS/ipscan-mac-3.7.0-16-g660f168.jar) to field java.net.InetAddress.impl
WARNING: Please consider reporting this to the maintainers of net.azib.ipscan.fetchers.HostnameFetcher
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
java.lang.NoSuchMethodException: org.eclipse.swt.internal.cocoa.OS.isAppDarkAppearance()
    at java.base/java.lang.Class.getMethod(Class.java:2109)
    at net.azib.ipscan.gui.GUI.setMacDarkAppearanceIfNeeded(GUI.java:72)
    at net.azib.ipscan.gui.GUI.showMainWindow(GUI.java:47)
    at net.azib.ipscan.Main.main(Main.java:58)

and the GUI looks OK in dark mode. 🎉

$ java -version
openjdk version "13.0.2" 2020-01-14
OpenJDK Runtime Environment (build 13.0.2+8)
OpenJDK 64-Bit Server VM (build 13.0.2+8, mixed mode, sharing)

P.S. Re-running the official 3.7.0 binary, the GUI is still unreadable.

testing again on another machine

Just to provide you with more information, re-running your binary on another machine, on my iMac (again Mojave) where I haven't updated ipscan and am still running 3.6.2, I get these results with your new binary:

$ ./Angry\ IP\ Scanner.app/Contents/MacOS/ipscan
java.lang.NoSuchMethodException: org.eclipse.swt.internal.cocoa.OS.isAppDarkAppearance()
    at java.lang.Class.getMethod(Class.java:1786)
    at net.azib.ipscan.gui.GUI.setMacDarkAppearanceIfNeeded(GUI.java:72)
    at net.azib.ipscan.gui.GUI.showMainWindow(GUI.java:47)
    at net.azib.ipscan.Main.main(Main.java:58)

$ java -version
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)
pator12 commented 4 years ago

Hello, with the official 3.7.0 binary, the GUI is also unreadable. Macbook pro Mojave 10.14.6 (18G3020).

angryziber commented 4 years ago

@abulka and anyone else having issues, can you please check this build? https://github.com/angryip/ipscan/actions/runs/102906477

You have to run it from command-line again ./Angry\ IP\ Scanner.app/Contents/MacOS/ipscan and paste the output here.

abulka commented 4 years ago

Official 3.7 release looks bad in dark mode. Running it with the ipscan technique from terminal produces no output in the terminal. Am on Mojave. Java happens to be version "1.8.0_221".

angryziber commented 4 years ago

@abulka yes, but I am asking to try a newer build here: https://github.com/angryip/ipscan/actions/runs/102906477

If it works better, it will be released as 3.7.1

abulka commented 4 years ago

That particular build looks bad when run, but this time has the following terminal output:

Dark appearance flags before: true, false
Dark appearance flags after: true, false
initColors called

P.S. My Apr 1st comment above showed that some version you had looked OK in dark mode!

angryziber commented 4 years ago

@abulka thanks, that gives me something to work with. It seems that on your machine, calling OS.setTheme(true) to make the app look dark doesn't give any effect for some reason.

Can you please check these builds as well (this one calls setTheme(), but doesn't call initColors() afterwards): https://github.com/angryip/ipscan/actions/runs/106431317

This one doesn't call setTheme(): https://github.com/angryip/ipscan/actions/runs/106432460

Also, do I understand correctly, that the build tried on April 1st actually used light appearance despite system being in dark mode? E.g. the same as version 3.6.2, before dark mode support was intoduced. That second build above will most likely replicate this behaviour.

pator12 commented 4 years ago

Hello Here is my feedback on the 3 builds, see the attached files. MacOS 10.14.6 (18G4032) Thanks Patrick

The build is the name of the images, I had to zip them to make sure the names are visible.

Le sam. 16 mai 2020 à 10:21, Anton Keks notifications@github.com a écrit :

@abulka https://github.com/abulka thanks, that gives me something to work with. It seems that on your machine, calling OS.setTheme(true) to make the app look dark doesn't give any effect for some reason.

Can you please check these builds as well (this one calls setTheme(), but doesn't call initColors() afterwards): https://github.com/angryip/ipscan/actions/runs/106431317

This one doesn't call setTheme(): https://github.com/angryip/ipscan/actions/runs/106432460

Also, do I understand correctly, that the build tried on April 1st actually used light appearance despite system being in dark mode? That second build above will most likely replicate this behaviour.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/angryip/ipscan/issues/231#issuecomment-629608405, or unsubscribe https://github.com/notifications/unsubscribe-auth/AJAMEINIYGYZOMTMIBMWMZLRRZEJRANCNFSM4LNVAPCA .

abulka commented 4 years ago

https://github.com/angryip/ipscan/actions/runs/106431317 - looks bad

May 17, 2020 10:15:54 AM net.azib.ipscan.gui.GUI setMacDarkAppearanceIfNeeded
INFO: Dark appearance flags before: true, false
May 17, 2020 10:15:54 AM net.azib.ipscan.gui.GUI setMacDarkAppearanceIfNeeded
INFO: Dark appearance flags after: true, false
May 17, 2020 10:15:54 AM net.azib.ipscan.gui.GUI setMacDarkAppearanceIfNeeded
INFO: initColors not called

https://github.com/angryip/ipscan/actions/runs/106432460 - looks OK though is light, not dark - my mac is set to dark.

May 17, 2020 10:15:54 AM net.azib.ipscan.gui.GUI setMacDarkAppearanceIfNeeded
INFO: Dark appearance flags before: true, false
May 17, 2020 10:15:54 AM net.azib.ipscan.gui.GUI setMacDarkAppearanceIfNeeded
INFO: Dark appearance flags after: true, false
May 17, 2020 10:15:54 AM net.azib.ipscan.gui.GUI setMacDarkAppearanceIfNeeded
INFO: initColors not called
Andys-iMac-3:Downloads andy$ ./Angry\ IP\ Scanner.app/Contents/MacOS/ipscan
May 17, 2020 10:17:48 AM net.azib.ipscan.gui.GUI setMacDarkAppearanceIfNeeded
INFO: Dark appearance flags before: true, false
May 17, 2020 10:17:48 AM net.azib.ipscan.gui.GUI setMacDarkAppearanceIfNeeded
INFO: initColors not called

https://github.com/angryip/ipscan/actions/runs/67714944 Old Apr 1st run - looks OK though is light, not dark - my mac is set to dark.

java.lang.NoSuchMethodException: org.eclipse.swt.internal.cocoa.OS.isAppDarkAppearance()
    at java.lang.Class.getMethod(Class.java:1786)
    at net.azib.ipscan.gui.GUI.setMacDarkAppearanceIfNeeded(GUI.java:72)
    at net.azib.ipscan.gui.GUI.showMainWindow(GUI.java:47)
    at net.azib.ipscan.Main.main(Main.java:58)
angryziber commented 4 years ago

@abulka thanks. Despite the fact I still don't understand how changing to dark mode fails on your machine, at least I can release a version that will not switch to dark and will stay with correct light colors. At least a workaround found. The same version switches to dark mode fine on my testing.

angryziber commented 4 years ago

I have merged other changes (new dependency injection) and after that I could reproduce the problem. Probably it was with exact order of initialization of components.

Anyway, now I have tested that setting dark mode support via Info.plist works (possibly due to SWT update), so I have removed programmatic setting of dark mode that can produce incorrect colors.

https://github.com/angryip/ipscan/actions/runs/107517317 Problem solved, hopefully. Thanks for reporting and testing.

abulka commented 4 years ago

OK that latest version 107517317 https://github.com/angryip/ipscan/actions/runs/107517317 runs in a light theme even though my mac is set to dark mode. If that is the intent, then great. Better to look good (albiet with a light theme) in dark mode that look bad in dark mode!

P.S. I tested the above build on a totally different Mac, a Macbook Air (I usually test on my iMac). I get the same results on two different systems (both Mojave).

luizjr commented 4 years ago

Now I get it - 'brew cask install' is different from just 'brew install'. brew cask install java gives me Java14, with which the colors are normal. brew cask install java11 gives an error: Cask 'java11' is unavailable. Are you using some separate non-standard source of casks? Why installing Java11 gives you Java12, which is no longer supported?

Anyway. @cyberdemon8 can you please run Contents/MacOS/ipscan from inside of the bundle from terminal and see if any errors are reported?

MR @angryziber Why don't you change the focus to EletronJS (https://www.electronjs.org/)? Wouldn't it be possible to make the same tool for 3 types of systems?

I think the proposal for this app is very good.

angryziber commented 4 years ago

@abulka that's not expected, because version 3.7.1 released yesterday looks dark on my machine. But now this is controlled by Apple, if it's dark or not. Are you sure you haven't switched the app to light mode manually?

Anyway, this whole macOS dark/light support is a total nightmare, while things like that should just work out of the box, like they do in Linux/GTK...

@luizjr JavaScript is definitely not the language to use for low-level networking. And Electron apps are just websites, they won't look native on any system. But this of course will not let any system to screw the looks :-)

luizjr commented 4 years ago

@angryziber I suggested just to have other possibilities and to grow the tool, as I said, I found it fantastic.

i believe i have electron resources that allow you to access some native system functions.

pator12 commented 4 years ago

Hello Same thing on MBP 15" Mojave : " https://github.com/angryip/ipscan/actions/runs/107517317> runs in a light theme even though my mac is set to dark mode." I have no problem with that, at least it is readable !

Le lun. 18 mai 2020 à 21:50, Luiz Júnior notifications@github.com a écrit :

@angryziber https://github.com/angryziber I suggested just to have other possibilities and to grow the tool, as I said, I found it fantastic.

i believe i have electron resources that allow you to access some native system functions.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/angryip/ipscan/issues/231#issuecomment-630400305, or unsubscribe https://github.com/notifications/unsubscribe-auth/AJAMEILGI5L4USTZHA4N67DRSGGRHANCNFSM4LNVAPCA .

UnderEu commented 4 years ago

Just updated to 3.7.1 and dark theme is completely missing on Java 8u251. Upgraded to Java 14 and everything is fine, now! 😎

bugs181 commented 4 years ago

@abulka and anyone else having issues, can you please check this build? https://github.com/angryip/ipscan/actions/runs/102906477

You have to run it from command-line again ./Angry\ IP\ Scanner.app/Contents/MacOS/ipscan and paste the output here.

102906477

$ /Users/levi/Downloads/Angry\ IP\ Scanner.app/Contents/MacOS/ipscan 
Dark appearance flags before: true, false
Dark appearance flags after: true, false
initColors called

106431317

$ /Users/levi/Downloads/Angry\ IP\ Scanner\ 2.app/Contents/MacOS/ipscan 
May 28, 2020 3:37:51 AM net.azib.ipscan.gui.GUI setMacDarkAppearanceIfNeeded
INFO: Dark appearance flags before: true, false
May 28, 2020 3:37:51 AM net.azib.ipscan.gui.GUI setMacDarkAppearanceIfNeeded
INFO: Dark appearance flags after: true, false
May 28, 2020 3:37:51 AM net.azib.ipscan.gui.GUI setMacDarkAppearanceIfNeeded
INFO: initColors not called

106432460

$ /Users/levi/Downloads/Angry\ IP\ Scanner\ 3.app/Contents/MacOS/ipscan 
May 28, 2020 3:38:58 AM net.azib.ipscan.gui.GUI setMacDarkAppearanceIfNeeded
INFO: Dark appearance flags before: true, false
May 28, 2020 3:38:58 AM net.azib.ipscan.gui.GUI setMacDarkAppearanceIfNeeded
INFO: initColors not called

The last one looks good but is not in dark mode.

abulka commented 4 years ago

https://github.com/angryip/ipscan/actions/runs/102906477

$ ./Angry\ IP\ Scanner.app/Contents/MacOS/ipscan
Dark appearance flags before: true, false
Dark appearance flags after: true, false
initColors called
bugs181 commented 4 years ago

https://github.com/angryip/ipscan/actions/runs/102906477

$ ./Angry\ IP\ Scanner.app/Contents/MacOS/ipscan
Dark appearance flags before: true, false
Dark appearance flags after: true, false
initColors called

And? I'm not sure what any of that means. I'm simply trying to help you track down the bug that makes dark mode look so horrible.

This is the result I get from the link I'm replying to.

Screen Shot 2020-05-29 at 9 47 17 AM