Multi-Monitor Dock Issues

PART A - Macro to position and hide/unhide dock
I wrote a macro to:

  1. simply reposition the dock to the main screen, and
  2. toggle the hiding of the dock.

The reason for this is that OS X does strange things when applications move to full screen, etc. Depending on cursor position, etc., the dock can get repositioned onto another monitor.

I had the functions of repositioning and hiding in separate macros but have found that if the dock is misplaced or needs to be toggled to hide or see, I just hit this key once... or twice and it solves the issue.

PART B - terminal function to remove hide delay
I was also looking at this idea where the dock delay is nonexistent.

PART C - Ultimate Goal?
But what I would really like is to configure this so that when I hide the dock (i.e., PART A), It will stay hidden, when I toggle.

I have been experimenting with the terminal command in PART B (i.e., autohide-delay -float 0...) but I believe that requires the "killalldock" command that throws the screens into a screen reboot of sorts that turns the screens all black. I could see setting a toggle for that, but I really do not like the violent "black-screening" associated with the killall Dock command.

I put this up should anyone be interested in the macro. And selfishly.... should anyone have a solution to achieving PART C.

Dock Positioner.kmmacros (2.9 KB)

1 Like

One thought I had, I am wondering if there is there a way to have KM limit the ability for a mouse to travel below a certain line on the screen? For instance, set a toggle so that the mouse cannot travel to the bottom 4 pixels of a screen so that the dock, when hidden, will not be triggered.

Fwiw … I keep my Dock on the left side of my laptop screen (I work at three locations, with 0, 1, and 2 external monitors), size set to minimum, magnification set to about ¾ of maximum, auto-hide activated. This set-up is stable and therefore reliable, and has “trained” it to be useful to me, rather than a nuisance. (Additionally, I replace all the Dock icons with desaturated {grayscale} versions.)

Hey Ed,

Nope. You could have KM monitor the cursor location, but it wouldn’t restrict the movement – and it would be very processor intensive.

That’s low-level stuff.


Hey Kirby,

How are you doing that?


I have to say, in simply using the ultra fast hiding dock, I am finding it very useful and intuitive.

On any screen:

  1. moving the mouse to the bottom will bring the dock up with ZERO delay
  2. I turned off magnification so I have a fixed size for the dock, with 100% confidence on how far I have to move my mouse before the dock with auto-hide again. As well my dock takes up 90% of the screen bottom, even on my 27 inch external monitor.

One thing that I thought might be useful is to set a KM macro hotkey that would move the cursor to the bottom to immediately reveal the dock. So I configured one. However, I am finding that the dock can move in and out so fast that I do not really need it. I simply drop my mouse to the bottom of the screen and immediately see the dock. Furthermore, because there is no delay, even accidental revealing of the dock is not that big a deal because i can make it disappear so fast by simply moving the mouse off the bottom of the screen.

The ultimate thing I think would be to have the ability to simply limit the mouse’s ability to get to the bottom few pixels of the screen, effectively turning off the dock until a hotkey reinstates the function. But as has already been noted here in this message chain, perhaps easier said than done.


By the way, Kirby, can you post an example of your dock icons as they are presented on your screen? I would like to see what they look like.

Kirby, can you post an example of your dock icons as they are presented on your screen?

Hi Ed — Thanks for asking. Here is a screen-shot of part of my Dock when it is not hidden:

The badges (which are overlays) show in whatever color the program displaying them specifies. There is a red badge showing the count of Reminders, and a white badge on iGetter's Dock icon showing the current download speed. The KM tooltip is, of course, a fly-out.

I will reply to Chris above with a simple process for desaturating one's Dock icons. I'm a visual artist; color — and in particular the tonal relationships between areas of broken color — is important in my work. I try to remove as much color as I can, and in particular any spots of fully-saturated color, from everything but the images I work on. For reasons too fussy to go into here, I much prefer this look to the default look, and recommend it for anyone.

Hi Chris —

How are you doing that?

It’s straightforward to set up, and easy to maintain. There is a small bit of tedium in that you have to do each program’s Dock icon individually, and a small bit of “Really now” as you have to re-assign the desaturated icons to the programs every time they are updated. All in all, I’m very happy with it — working on other Macs gives me a brief moment of feeling like I walked into a paint-ball arcade.

To desaturate a program’s Dock icon:

  • select the program in Finder
  • bring up the Info window (⌘i)
  • select the icon by clicking it (upper left corner of the Info Window; selection shows as double-line gray square border)
  • Copy to Clipboard (⌘c)
  • Open Preview (the OS X app)
  • Select “File ▹ New from Clipboard” (⌘n). The first of all the icons in the .icns file is selected, and all of them (up to 10, afaik) show in Preview’s sidebar.
  • Open Preview’s “Adjust Color” pane (⌥⌘c)
  • Click at the far left of the Saturation Slider (the first control in the second group of controls)
  • Type {down-arrow}
  • Click at the far left of the Saturation Slider
  • Type {down-arrow}
  • Repeat clicking and {down-arrow}'ing (easily done with two fingers without moving the mouse cursor) until all icons in the file are desaturated
  • Save the file in an easy to find Finder folder (I use “Icons Desaturated”). Name the file smartly (I use “ProgramName DeSat”). Be sure the save the file in the ICNS format, and include the Alpha channel.
  • Close Preview
  • Drag, from Finder, the just-created .icns file and drop it on the icon in the upper left of the program file’s Info window.
  • The icon should (but won’t in all cases) change to the de-saturated version you just created.
  • Close the Info window.
  • To force the change to show in the Dock icon, open the Program. The change will remain until you undo it (select the icon in the Info window and type {delete}, or the program is updated.

In some cases, the above won’t work. With some of OS X’s own programs, you may have to reboot. If that does not work, open the program package, search for ICNS files, and proceed as above. You will likely have to grant yourself permission. I have never flat-lined a program doing this, but please don’t try this if you are not comfortable.

Bonus: I use and recommend Launchbar. It makes quick work of opening the Info window, selecting the de-saturated .icns file, and drag-dropping it to replace the current icon. I suspect many users here have similar utilities.



1 Like