Tiling Finder Windows is a widely sought out feature by OSX / macOS users for the past few years.

UPDATE MAY 2020: This works for older generation of OSX and the latest generation of Apple Mac Software – macOS Catalina 10.5

Mission control(formerly Expose) which is supposed to help you manage windows will not help when you need to work with Multiple Finder Windows.

Especially if you were a Windows/Linux User, you will find it pretty hard to resize and place windows.

Fix – use Apple Scripts.

You can easily write a small script which will help you with this task.

Steps

    1. Launch Apple Script Editor
    2. Copy paste the following code into the editor
tell application "Finder"
	set n to count of window

	set screenSize to bounds of window of desktop
	set screenWidth to item 3 of screenSize
	set screenHeight to item 4 of screenSize
	if n is equal to 0 then return
	set windowWidth to screenWidth / n
	if (n > 0) then
		activate
		set w to 1
		repeat
			tell window w
				set bounds to {windowWidth * (w - 1), 0, windowWidth * w, screenHeight}
			end tell
			set w to w + 1
			if w is equal to (n + 1) then exit repeat
		end repeat
	end if
end tell
  1. Hit Compile
  2. Save the script with File Format: Application
  3. Add the application to the dock.
  4. Every time, you need to tile your Finder Windows. Just hit the dock icon.
  5. You can also configure a shortcut key for the Application.

Apple Scripts are really powerful. If you would like to learn more about Apple Scripts and want to write your own scripts.

Checkout developer.apple.com/applescript/

12 Responses

  1. mcalas

    Awesome! It works perfectly and it was easy to create. Thank you for your time!

    Reply
  2. Matthew

    Hi – this looks like almost exactly what I need and Iā€™m not complaining, but instead of saving say, 4 Finder windows side by side vertically, is there something I could change the script to, to make 4 equal windows with 2 above 2? Thanks, gratefully, Matthew

    Reply
    • Random Guy

      Note 1: If the number of windows is 4, then the following script arranges it in a 2 x 2 formation. For any other number of windows, the script tiles them horizontally.

      Note 2: The following script assumes that you’ve a static menu bar at the top of the screen in your Mac OS. If you’ve set the menu bar to be automatically hidden, then change the line ‘set menuBarHeight to 22’ to ‘set menuBarHeight to 0’ and save/run the script.

      tell application “Finder”

      set n to count of window

      set screenSize to bounds of window of desktop

      set screenWidth to item 3 of screenSize

      set screenHeight to item 4 of screenSize

      set menuBarHeight to 22

      if n is equal to 0 then return

      if (n = 4) then

      set windowWidth to screenWidth / 2

      set windowHeight to screenHeight / 2

      else

      set windowWidth to screenWidth / n

      set windowHeight to screenHeight

      end if

      if (n > 0) then

      activate

      set w to 1

      repeat

      if (n = 4) then

      tell window w

      set bounds to {windowWidth * ((-w mod 2) + 1), (windowHeight * (w div 3)) + (menuBarHeight / 2), windowWidth * ((-w mod 2) + 2), windowHeight * ((w div 3) + 1)}

      end tell

      else

      tell window w

      set bounds to {windowWidth * (w – 1), 0, windowWidth * w, windowHeight}

      end tell

      end if

      set w to w + 1

      if w is equal to (n + 1) then exit repeat

      end repeat

      end if

      end tell

      Reply
  3. GFS

    This is the best implementation of this I’ve ever seen and so fast. I’ve been using similar for years, which work more or less well and less so since OS updates. Well done!!

    One request:

    Any chance of a second version which can tile vertically? (Very useful when using column view).

    Reply
    • richard

      tell application “Finder”
      set n to count of window

      set screenSize to bounds of window of desktop
      set screenWidth to item 3 of screenSize
      set screenHeight to item 4 of screenSize
      if n is equal to 0 then return
      set windowHeight to screenHeight / n
      if (n > 0) then
      activate
      set w to 1
      repeat
      tell window w
      set bounds to {0, windowHeight * (w – 1), screenWidth, windowHeight * w}
      end tell
      set w to w + 1
      if w is equal to (n + 1) then exit repeat
      end repeat
      end if
      end tell

      Reply
  4. wari

    Thank you so much for taking the time to post this. Im new to Mac and this has helped me tremendously on my workflow.

    Reply

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.