Git Product home page Git Product logo

satellite-eyes's Introduction

Satellite Eyes

Satellite Eyes

Satellite Eyes is a small OS X application that sits in your system tray (next to the clock) and automatically updates your desktop wallpaper to the satellite or map view overhead.

It's available for download at http://satelliteeyes.tomtaylor.co.uk.

Building

Satellite Eyes (SE) is an Xcode 8.1 compatible project, targeting 10.8 upwards.

It's not very well documented, sorry, but it's not a big codebase, so I'm sure you'll work it out.

To build for Debug, make sure you’ve got a working Cocoapods installation. The version we use is locked using Ruby’s Bundler. You might need to fiddle the project (and the LaunchAtLogin subproject) to use your own team and certificates, but please don’t commit these changes.

Many thanks to the following folks for their contributions to Satellite Eyes:

Contributions

If you want to contribute a feature or a bug fix to SE, that'd be great. I'll do my best to review them and include them where possible. Contributions would be especially appreciated for:

  • Ability to display imagery from interesting places around the world.
  • Controls for configuring each Space independently (the official APIs to do this are deprecated in 10.8).
  • Improving the visual appearance of the preferences pane
  • More map styles

If you are planning to land a major feature, please raise an issue to discuss it first.

satellite-eyes's People

Contributors

alfo avatar archywillhe avatar bobthecow avatar hacker1024 avatar lyzidiamond avatar rburhum avatar rgbkrk avatar rjackson avatar samgrover avatar tomtaylor avatar ybakos avatar yesezra avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

satellite-eyes's Issues

Issue with multiple monitors under High Sierra

Since upgrading to High Sierra, I've been having an issue where the wallpaper on one of my monitors doesn't center properly, but only when switching from my laptop's screen to the two external monitors. If I start the Mac with both external monitors connected, the wallpaper is fine until undocking/redocking.

The arrangement of my screens:
screen shot 2018-01-04 at 16 20 26

The portrait monitor works fine:
screen shot 2018-01-04 at 16 16 38 2

But the landscape (primary?) monitor does this:
screen shot 2018-01-04 at 16 16 38

I figured it was an issue with how Satellite Eyes is composing the image, since the bing logo in the lower right corner is in the right place.

Maps at wrong locations at different zoom level

The map returns at different locations at different zoom levels. For the neighbourhood level, it is more or less right at Singapore:
screen shot 2015-10-01 at 5 06 14 pm
However, the next two zoom levels, at city and region levels, they return somewhere north of Singapore, in Malaysia, or even in the Straits of Malacca:
screen shot 2015-10-01 at 5 06 24 pm
screen shot 2015-10-01 at 5 06 36 pm

Screensaver mode

How difficult do you think it would be to implement this as a screensaver?

Option to limit change to a single space

I like the app, but I would love it if it only changed one of my spaces on Mac OS X instead of changing the background of each space that I switch to.

I don't think that any fancy UI is necessary in the preferences to select which space you want to have changed - you could just have a checkbox for "only apply changes to a single space", and automatically apply it to the space the user is currently in when he started using the app.

Add a filetype or url handler for importing styles

This will make it easier for users to share custom styles, since the current method of trying to figure out how to escape the crazy string when writing to defaults on the command line is an exercise in futility.

See #36

Allow compensation for monitor frame width.

My monitors have about a 1.5cm frame around them and as such when viewing the (gorgeous!) map stretched across my screen, things don't line up quite right, since the app doesn't handle the "lost space" between displays. It would be great if we could have some sort of slider/dial to "overscan" the image on each display by a slightly variable amount. For my screens (1080p) I'd imagine this range could live between 0 and 200px, maybe even 0-100px.

Timeout & retry for location services

I've noticed that satellite-eyes frequently gets stuck “waiting for location fix” when I wake my laptop from sleep at work, where I have both WiFi (behind a captive portal) and an ethernet interface. This appears to be a race condition – if I wake the laptop without the ethernet cable and then plug it in, everything is fine – but it seems like satellite-eyes should have some reasonable timeout (5 minutes?) for the location query as there's otherwise no way to force an update short of restarting the app.

Support Retina display

Complicated because you can mix a retina display with a normal display if using multiple monitors, and if you just scale the tile imagery they won't align correctly, and most tiles aren't available in high resolution rasters.

Random Tileset

A way to randomly rotate between (a subset of) tilesets when location does not change, to keep wallpaper interesting on desktops...

Dark image effect

Thanks for all things Satellite Eyes. This issue suggests a new image effect that darkens the map. Perhaps something similar to "Halftone" but darker. (I'll try to hack on this myself and send a pull request.)

Issue with 4k Monitors when using the Halftone Dark Image Effect

Just picked up a BenQ PD3200U monitor and was tweaking out because there seemed to be some green banding, which was exacerbated when windows were moved around, but only with certain applications. This would cause the bands to move and dance around.

I can stop the issue by changing my image effect in Satellite Eyes from Halftone Dark to any other effect. I'm guessing it's an interpolation thing having to do with the size of the dots in Halftone Dark. The effects are visible if i take a screenshot and then view the screenshot at 100% size on the monitor, however the green banding disappears when zooming in on the image.

screenshot 2018-01-08 17 46 33

Can't install pods

i have the newest cocoapods and i get this when trying to install

Re-creating CocoaPods due to major version update.
Analyzing dependencies
[!] The dependency Reachability (~> 3.1.0) is not used in any concrete target.
The dependency CocoaLumberjack (~> 1.9.1) is not used in any concrete target.
The dependency AFNetworking (~> 1.3) is not used in any concrete target.
The dependency Sparkle (~> 1.8.0) is not used in any concrete target.

"headless" operation

AKA an option to not show the menu bar icon.

Now that SE doesn't use the discrete graphics card anymore, I don't need to do the only thing I was doing with the the menu bar icon (close the app to release the discrete graphics card lock). Other tools just show the preferences when called in this sort of mode, I'm not sure how easy it is to implement though.

Different locations in different spaces?

It would be great (esp for users on desktops not laptops) if you could assign a location to a space, so as to get different maps per space. Thanks for a great app!

Added New Styles to Map-Styles-Manager

@tomtaylor
If you want additional map styes, here are the tile-sets I've added to my personal map-style manager.

MapBox SpaceStation
https://a.tiles.mapbox.com/v4/katydecorah.027b9d3f/{z}/{x}/{y}.png?access_token=pk.eyJ1Ijoia2F0eWRlY29yYWgiLCJhIjoiNGxUd0FiRSJ9.W6JiC41LhSNbMQjuF3NGhA

MapBox SuperMario
https://b.tiles.mapbox.com/v4/duncangraham.552f58b0/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoiZHVuY2FuZ3JhaGFtIiwiYSI6IlJJcWdFczQifQ.9HUpTV1es8IjaGAf_s64VQ

MapBox Camouflage
https://api.mapbox.com/styles/v1/edenhalperin/cifq0r0e5000q85m0d293k6mq/tiles/{z}/{x}/{y}?access_token=pk.eyJ1IjoiZWRlbmhhbHBlcmluIiwiYSI6IlFRZG0zMWMifQ.QUNKx4tIMjZfwmrE8SE6Bg

MapBox Standard
https://api.mapbox.com/styles/v1/saman/cif61g3y602sju1m5b02255c9/tiles/{z}/{x}/{y}?access_token=pk.eyJ1Ijoic2FtYW4iLCJhIjoiS1ptdnd0VSJ9.19qza-F_vXkgpnh80oZJww

MapBox X-ray
https://api.mapbox.com/styles/v1/tatiana/cigv33jhr000i9kkk9puogrpy/tiles/{z}/{x}/{y}?access_token=pk.eyJ1IjoidGF0aWFuYSIsImEiOiJjaWxzMnR6N20wOHMxdWhtMXdjdXlwdjNrIn0.u405gXn3WikWtJAiiIlmkw

MapBox Vintage
https://api.mapbox.com/styles/v1/mslee/cif5p01n202nisaktvljx9mv3/tiles/{z}/{x}/{y}?access_token=pk.eyJ1IjoibXNsZWUiLCJhIjoiclpiTWV5SSJ9.P_h8r37vD8jpIH1A6i1VRg

MapBox SwissSki
https://api.mapbox.com/styles/v1/mslee/cij1zoclj002y8rkkdjl69psd/tiles/{z}/{x}/{y}?access_token=pk.eyJ1IjoibXNsZWUiLCJhIjoiclpiTWV5SSJ9.P_h8r37vD8jpIH1A6i1VRg

MapBox Santiago
https://api.mapbox.com/styles/v1/angelde/ciit3wq5300q3c8lz2uhd8bq7/tiles/{z}/{x}/{y}?access_token=pk.eyJ1IjoiYW5nZWxkZSIsImEiOiI2RlppLW1VIn0.0PdqJ6CFs0V-cexQY0KT3w

MapBox Runner
https://api.mapbox.com/styles/v1/grafa/587d7dc0/tiles/{z}/{x}/{y}?access_token=pk.eyJ1IjoiZ3JhZmEiLCJhIjoiZjk3Mjk2YWYzZTNlYjM3ODdlNzJlOWJlM2VjZGI0ZDEifQ.OTT9oT7CqAc9vZsnJLT51Q

MapBox Winter Wonderland
https://a.tiles.mapbox.com/v4/andreasviglakis.76e0cee7/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoidG1jdyIsImEiOiJIZmRUQjRBIn0.lRARalfaGHnPdRcc-7QZYQ

Ancona Blueprinted
http://b.tiles.mapbox.com/v4/laurenancona.lgh0leco/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoibGF1cmVuYW5jb25hIiwiYSI6Im5EaldBcVUifQ.MTeXi8ZLmYhMBxnZ0nBG3A

Financial Times
https://b.tiles.mapbox.com/v3/financialtimes.map-w7l4lfi8/{z}/{x}/{y}.png

Kowalsky Lichtenstein
https://a.tiles.mapbox.com/v4/katiekowalsky.236692c1/{z}/{x}/{y}.png?access_token=pk.eyJ1Ijoia2F0aWVrb3dhbHNreSIsImEiOiJHR2hfdlBNIn0.GUMLsSnT-SYx4ew7b77kqw

Maps resize/refresh depending on which monitor has focus

I use a 2nd monitor, and depending on which screen I'm working on, Satellite Eyes will refresh based on the current screen, and size the zoom level slightly differently between the two. This causes the background map images to shift suddenly, many times a day as I work.

Attribution in Manage Map Styles

It would be nice and respectful (and only proper since it's in the tile provider's TOSes) that we have a field to specify an attribution string for each Map Style.

The attribution, ideally, should be discretely displayed at the lower right hand side of the wallpaper.

Don't refresh background if location does not change

I love Satellite Eyes! But I only run it at startup and then immediately exit it because I find it very distracting when it occasionally "updates" the background, usually shifting the map a few millimeters to the side. Updating the map is completely unnecessary when I am sitting in a perfectly stationary location at e.g. my house for long periods of time.

I don't have a good understanding of how Apple's location services work, but could we:
(1) add a user option to prevent the map from updating if the location only changes a little bit? In other words, if the location has not changed in any meaningful way (maybe I moved from my bedroom to my living room, or maybe I didn't move at all but OS X thinks I did), don't update the map. Perhaps we could have an option to set how much the location has to change before the map updates?
(2) if that is technically impossible or difficult, could we modify how often Satellite Eyes checks if our location has changed after startup? I'm not sure if you ask OS X for the Location, or if Satellite Eyes updates the map when OS X tells us that the location has changed. Either way some way to make it update the map less often would be nice.

Map camera motion

Something that would be cool is a camera rotation view like Apple Maps uses in it's detail view when you place a pin on the map. This gives the impression of a drone or chopper point of view flying above the location.
This might be possible with MKMapCamera.

"Pause" feature

As a user who takes trains everywhere all the flipping time, I want to be able to pause Satellite Eyes from the menu bar so that I can save my flakey 3G signal (as I would for Dropbox or Google Drive etc) and unpause again later rather than having to remember I closed it.

clang: error: linker command failed with exit code 1

I tried building it in xcode (I'm planning to add a small feature to enable custom coordinates) but I am not enrolled in the dev program, in which case I have opted-out for code-signing. And I encountered this build error:

Ld /Users/a/Library/Developer/Xcode/DerivedData/SatelliteEyes-glbokhcqsetmiveqlcvozahzrvyn/Build/Products/Debug/Satellite\ Eyes.app/Contents/MacOS/Satellite\ Eyes normal x86_64
    cd /Users/a/_/satellite-eyes
    export MACOSX_DEPLOYMENT_TARGET=10.8
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk -L/Users/a/Library/Developer/Xcode/DerivedData/SatelliteEyes-glbokhcqsetmiveqlcvozahzrvyn/Build/Products/Debug -F/Users/a/Library/Developer/Xcode/DerivedData/SatelliteEyes-glbokhcqsetmiveqlcvozahzrvyn/Build/Products/Debug -F/Users/a/_/satellite-eyes/Pods/Sparkle -F/Users/a/_/satellite-eyes -filelist /Users/a/Library/Developer/Xcode/DerivedData/SatelliteEyes-glbokhcqsetmiveqlcvozahzrvyn/Build/Intermediates/SatelliteEyes.build/Debug/Satellite\ Eyes.build/Objects-normal/x86_64/Satellite\ Eyes.LinkFileList -mmacosx-version-min=10.8 -ObjC -lPods-AFNetworking -lPods-CocoaLumberjack -lPods-Reachability -framework CoreServices -framework Security -framework Sparkle -framework SystemConfiguration -fobjc-arc -fobjc-link-runtime -framework Cocoa -framework CoreLocation -framework QuartzCore -framework ServiceManagement -framework SystemConfiguration -lPods -Xlinker -dependency_info -Xlinker /Users/a/Library/Developer/Xcode/DerivedData/SatelliteEyes-glbokhcqsetmiveqlcvozahzrvyn/Build/Intermediates/SatelliteEyes.build/Debug/Satellite\ Eyes.build/Objects-normal/x86_64/Satellite\ Eyes_dependency_info.dat -o /Users/a/Library/Developer/Xcode/DerivedData/SatelliteEyes-glbokhcqsetmiveqlcvozahzrvyn/Build/Products/Debug/Satellite\ Eyes.app/Contents/MacOS/Satellite\ Eyes
ld: library not found for -lPods-AFNetworking
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Option to use same map across all screens

Love the app, I often gets questions from people wondering about my background. :-)

I’d love it if there were a preference to use the same map on all screens, not just always tile based on arrangement. It looks a bit odd when I plug my laptop into a projector and the map is quite a bit east from my current location. I'd like people to see what I see in that case. (My desktop has 2 displays, but it's always on my desk...)

Obtain location from tethered iOS device

I'm not sure if this would be possible, but it would be nice if my current location could be pulled from my iPhone when I tether for internet access. I do this often when working remotely (cafes, coffee shops, etc) and it could be useful to have a map of where I am directly on the desktop.

Allow user to specify map location

I enjoy seeing a map of where I am, but sometimes I'd like to see where I'm not. It would be great to be able to specify a location and keep the desktop pinned to it.

Add a checkbox in the preference to allow different background for multiple desktops

Related code:

// If the screens have changed, force an update.
- (void)screensChanged:(NSNotification *)notification {
[self updateMap];
}
- (void)spaceChanged:(NSNotification *)notification {
[self updateMap];
}
- (void)receiveWakeNote:(NSNotification *)notification {
[self restartMap];
}

However, I'm not familiar with Obj-C, quite sad I cannot PR :-(

Don't force discrete gfx on 15/17" MBP

gfxCardStatus tells me that Satellite-Eyes forces my MacBook to run with the dedicated Nvidia card, which drains my battery within less than 4 hours. I don't think this is necessary.

Fix launch at login

SE has stopped launching at login, when that option is set. I can't work out if this is a code signing issue, or related to Yosemite.

I thought a89cd17 might fix it, but it hasn't.

When I run the app from /Applications and set 'Run SE at start up' in the preferences I see the following error:

24/10/2014 09:38:20.250 CoreServicesUIAgent[251]: unexpected message <OS_xpc_error: <error: 0x7fff79603c60> { count = 1, contents =
    "XPCErrorDescription" => <string: 0x7fff79603f70> { length = 18, contents = "Connection invalid" }
}>

Can anyone confirm if this happens on their build?

Satellite Eyes forcing constant graphics mode switching

When I run Satellite Eyes, I get big CPU spikes in a sawtooth pattern unless I turn off the graphics switching capability under Energy Saver preferences. My logs get spammed with this, over and over, and the system becomes somewhat sluggish:

6/2/15 1:12:21.296 PM WindowServer[186]: Received display connect changed for display 0x4280382
6/2/15 1:12:21.320 PM WindowServer[186]: Found 27 modes for display 0x04280382 [27, 0]
6/2/15 1:12:21.351 PM WindowServer[186]: CGXMuxAcknowledge: Posting glitchless acknowledge
6/2/15 1:12:21.383 PM WindowServer[186]: Received display connect changed for display 0x4280382
6/2/15 1:12:21.383 PM WindowServer[186]: Found 1 modes for display 0x04280382 [1, 0]
6/2/15 1:12:21.384 PM WindowServer[186]: Received display connect changed for display 0x3f003f
6/2/15 1:12:21.384 PM WindowServer[186]: Found 1 modes for display 0x003f003f [1, 0]
6/2/15 1:12:21.384 PM WindowServer[186]: Received display connect changed for display 0x3f0040
6/2/15 1:12:21.384 PM WindowServer[186]: Found 1 modes for display 0x003f0040 [1, 0]
6/2/15 1:12:21.384 PM WindowServer[186]: Received display connect changed for display 0x3f0041
6/2/15 1:12:21.385 PM WindowServer[186]: Found 1 modes for display 0x003f0041 [1, 0]
6/2/15 1:12:21.605 PM WindowServer[186]: MPAccessSurfaceForDisplayDevice: Set up page flip mode on display 0x04280382 device: 0x7f8130406540  isBackBuffered: 1 numComp: 3 numDisp: 3
6/2/15 1:12:21.917 PM Satellite Eyes[7644]: Looking up file at: /Users/regs/Library/Application Support/Satellite Eyes/map-f58e9749db158b448f167729b3bdd5c6.png
6/2/15 1:12:21.917 PM Satellite Eyes[7644]: Map image already cached: /Users/regs/Library/Application Support/Satellite Eyes/map-f58e9749db158b448f167729b3bdd5c6.png
6/2/15 1:12:23.978 PM WindowServer[186]: Received display connect changed for display 0x4280382
6/2/15 1:12:23.994 PM WindowServer[186]: Found 27 modes for display 0x04280382 [27, 0]
6/2/15 1:12:24.026 PM WindowServer[186]: Received display connect changed for display 0x3f003f
6/2/15 1:12:24.026 PM WindowServer[186]: Found 1 modes for display 0x003f003f [1, 0]
6/2/15 1:12:24.026 PM WindowServer[186]: Received display connect changed for display 0x3f0040
6/2/15 1:12:24.027 PM WindowServer[186]: Found 1 modes for display 0x003f0040 [1, 0]
6/2/15 1:12:24.027 PM WindowServer[186]: Received display connect changed for display 0x3f0041
6/2/15 1:12:24.027 PM WindowServer[186]: Found 1 modes for display 0x003f0041 [1, 0]
6/2/15 1:12:24.029 PM WindowServer[186]: CGXMuxAcknowledge: Posting glitchless acknowledge
6/2/15 1:12:24.036 PM WindowServer[186]: MPAccessSurfaceForDisplayDevice: Set up page flip mode on display 0x04280382 device: 0x7f8130406540  isBackBuffered: 1 numComp: 3 numDisp: 3
6/2/15 1:12:24.104 PM WindowServer[186]: Received display connect changed for display 0x4280382
6/2/15 1:12:24.104 PM WindowServer[186]: Found 1 modes for display 0x04280382 [1, 0]
6/2/15 1:12:24.699 PM Satellite Eyes[7644]: Looking up file at: /Users/regs/Library/Application Support/Satellite Eyes/map-f58e9749db158b448f167729b3bdd5c6.png
6/2/15 1:12:24.699 PM Satellite Eyes[7644]: Map image already cached: /Users/regs/Library/Application Support/Satellite Eyes/map-f58e9749db158b448f167729b3bdd5c6.png

Exiting Satellite Eyes makes this behavior stop. Starting it up makes it start again.

Hardware Overview:

Model Name: MacBook Pro
Model Identifier: MacBookPro10,1
Processor Name: Intel Core i7
Processor Speed: 2.3 GHz
Number of Processors: 1
Total Number of Cores: 4
L2 Cache (per Core): 256 KB
L3 Cache: 6 MB
Memory: 16 GB
Boot ROM Version: MBP101.00EE.B07

System Software Overview:

System Version: OS X 10.10.3 (14D136)
Kernel Version: Darwin 14.3.0
Boot Volume: Macintosh HD
Boot Mode: Normal
Secure Virtual Memory: Enabled
Time since boot: 14:03

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.