alex2108 / syncthing-tray

trayicon to display status of syncthing
MIT License
57 stars 9 forks source link

make-icons.sh: Add support for darwin specific multi-icon #24

Closed xor-gate closed 8 years ago

xor-gate commented 8 years ago

This fixes both non-retina and retina screens by merging two pngs into one. For more info you can read the apple docs: https://developer.apple.com/library/mac/documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/Optimizing/Optimizing.html#//apple_ref/doc/uid/TP40012302-CH7-SW13

alex2108 commented 8 years ago

tiffutil seems to be OSX only (or another version is hidden very well), is there some alternative that can be run on linux?

alex2108 commented 8 years ago

maybe something like convert test.png "test@x2.png" test.tiff does also work? It at least creates a file with both icons inside...

xor-gate commented 8 years ago

This is highly OS X specific because it merges into tiff with special metadata. I have guarded the darwin specific part so it is not broken on linux. See (above) https://github.com/alex2108/syncthing-tray/pull/24/commits/d3d2516604419f5abc91c6dd43593cf92a0e2d13

alex2108 commented 8 years ago

Not the perfect solution but that is fine, stupid OS specific formats :/

xor-gate commented 8 years ago

Yeah I know, welcome to reality -_-". I have dived deep into how the systray works on OSX with mapping to Golang from github.com/getlantern/systray and I have tried to hack separatorItem into it (see github.com/xor-gate/systray). It is so ugly that my eyes are bleeding and fired-up XCode to write my first native Objective-C application. I appreciate your work on alex2108/syncthing-tray but all the nice OS primitives and features are hidden in Golang.

As OSX has nice APIs to control GUI/Appearance we have no full control in Golang (currently). Probably in the near feature I will embedded my own native osx systray/app. But feel free if you need some OS X testing/building I will help you out (when time and space permits).

Thanks for merging!