Very nice, it gives me the hope to bring back the previous dock, which has received so many applauses when Steve Jobs introduced it to replace the old, flat dock from Tiger.
Any news on bringing back the 3D dock ?
Nope. I'm probably the only one who's done any work on it. Whatever I end up making will come out whenever I feel like it's finished.
5.6
- Updated bug reporter script
- Updated colorfulsidebar to reflect change to 'iCloud Drive' from 'iCloud'
- Updated credits
- Yosemite
Return of the 3D dock
Toggle for indicator lights (white/black)
As I probably won't edit it beyond what I have now (based off a 1280 x 128 scurve.png I found on leoparddocks)
Wouldn't mind the help of someone with better gfx skills and a sharp eye to make the dock image for me. As I probably won't edit it beyond what I have now (based off a 1280 x 128 scurve.png I found on leoparddocks).
Link > png / xcf
I could also use some help on my Objective C code because something tells me cDock.m could be written a lot cleaner and probably have less than 500 lines. There's also obvious examples of code that's probably not needed but I'm not sure how to change (like reading settings a bunch of times) and bugs that I'm not sure how to fix (like not being able to change the 3D dock to a normal one when moving to the left/right in a concise manner).
Link > cDock.xcodeproj
Okay so here it is : cDock v5.6
Donwload > cDock
Picture >
Image
Image
Change log >
Code:5.6 - Updated bug reporter script - Updated colorfulsidebar to reflect change to 'iCloud Drive' from 'iCloud' - Updated credits - Yosemite Return of the 3D dock Toggle for indicator lights (white/black)
Looks great! I wish I could help with the graphics or coding but I have very little knowledge of both. Do you think it's still possible to have dock reflections or is that a no-go since Yosemite doesn't have any at all?
// check if Yosemite
if (osver.minorVersion >= 10) {
// code for forcing indicator colors
orig_CFPreferencesCopyAppValue = dlsym(RTLD_DEFAULT, "CFPreferencesCopyAppValue");
rebind_symbols((struct rebinding[1]){{"CFPreferencesCopyAppValue", hax_CFPreferencesCopyAppValue}}, 1);
// code for forcing indicator colors
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
CFNotificationCenterPostNotification(CFNotificationCenterGetDistributedCenter(), CFSTR("AppleInterfaceThemeChangedNotification"), (void *)0x1, NULL, YES);
});
CALayer *floor_backup;
CALayer *border_backup;
// make 2 copies of floorLayer and edit background/color
if (!self.floorLayer) {
self.floorLayer = [BlackDockFloorLayer layer];
floor_backup = self.floorLayer;
self.floorLayer = [BlackDockBorderLayer layer];
border_backup = self.floorLayer;
}
// delete most of dock
Class dockFloorLayer = NSClassFromString(@"DOCKFloorLayer");
for (layer in arr)
if ([layer isKindOfClass:dockFloorLayer])
break;
layer.sublayers = nil;
// add and transform saved layers
[layer addSublayer:floor_backup];
[floor_backup resizeWithOldSuperlayerSize:CGSizeZero];
[layer addSublayer:border_backup];
[border_backup resizeWithOldSuperlayerSize:CGSizeZero];
}
The sides of the dock could be improved, because the round corner has a varying radius in the final rendering of the Dock in Yosemite, while it shouldn't.
No go because AFAIK there is no reflection switch that's just default off in Yosemite and it would be too much work to try to implement. Although if someone knows how to grab and force update the dock icons I'm sure reflection could be done > http://pegolon.wordpress.com/2011/01/20/adding-a-reflection-to-an-nsimage/
Just like I'm sure it's possible to grab and force the indicators to be a custom image I just don't know how and touch and go guessing at things is a freaking pain because I really have almost no clue what's happening if a change I make either does nothing or crashes the dock.
Heck I'm still not exactly 100% sure on how the removal of the dock in cvz's original BlackDock works and it was just sheer luck that I was able to mod the Yosemite dock so easily by saving the Floor layer and then nuking something then editing what I saved and then re-adding it. I mean the entirety of the Yosemite code (sans repositioning and coloring) is just
Code:// check if Yosemite if (osver.minorVersion >= 10) { // code for forcing indicator colors orig_CFPreferencesCopyAppValue = dlsym(RTLD_DEFAULT, "CFPreferencesCopyAppValue"); rebind_symbols((struct rebinding[1]){{"CFPreferencesCopyAppValue", hax_CFPreferencesCopyAppValue}}, 1); // code for forcing indicator colors dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ CFNotificationCenterPostNotification(CFNotificationCenterGetDistributedCenter(), CFSTR("AppleInterfaceThemeChangedNotification"), (void *)0x1, NULL, YES); }); CALayer *floor_backup; CALayer *border_backup; // make 2 copies of floorLayer and edit background/color if (!self.floorLayer) { self.floorLayer = [BlackDockFloorLayer layer]; floor_backup = self.floorLayer; self.floorLayer = [BlackDockBorderLayer layer]; border_backup = self.floorLayer; } // delete most of dock Class dockFloorLayer = NSClassFromString(@"DOCKFloorLayer"); for (layer in arr) if ([layer isKindOfClass:dockFloorLayer]) break; layer.sublayers = nil; // add and transform saved layers [layer addSublayer:floor_backup]; [floor_backup resizeWithOldSuperlayerSize:CGSizeZero]; [layer addSublayer:border_backup]; [border_backup resizeWithOldSuperlayerSize:CGSizeZero]; }
What?
I joined a screenshot. It's as if the rounded corner of the Dock is getting stretched at a certain point, the radius varies. Or maybe it's designed to be like this ?
Is it also possible to change the dock Indicator light ?
I found the Dock icon ages ago (pre Yosemite), and I can't remember where it is, and I can't find it in the search in Finder, nor in a Spotlight Search. Can someone give me the Dock's enclosing folder address please?
/System/Library/CoreServices/Dock.app/Contents/Resources/Finder.png
/System/Library/CoreServices/Dock.app/Contents/Resources/Finder@2x.png
Awesome, thanks!
----------
Okay, I got to finding out the location of the Dock folder and all of that, but it won't let me do what I'm trying to do. I want to have the Menu Bar using the dark theme, but the dock using the normal theme. Anyone know how I can do this?
Requires code injection.
See: https://github.com/b3ll/DarkDock
But that just makes the Dock always dark mode.
I forked it and added a setting file (DarkDock.bundle/Contents/Resources/mode.txt) like a month back: see attached file.
cDock also has this implemented to toggle the indicator colors.
No, all I want is the Menu Bar always in dark mode, and the Dock in light/normal mode. Any ideas on how I can do this?