Change Directory in the Finder

Hi all

i wanted to have a quick way while in finder to change directories via keyboard.
I couldnt find anyway way in KM or in the finders keybinds to do it , so up with this uber crude way:

anyone can think of a better way of doing so without multiple binds+pauses :smiley: :smiley:

also would be cool to maybe create a pre defined list of places and use that for changing dir, copying to the predefined locations etc..anyone know of such an example?

best

Z

Using shell script is faster than keystroke

open /Users/$(whoami)/Downloads/
1 Like

Without a modifier key, D could be a trouble when you want type in the letter instead of using it as a trigger.

1 Like

I would do it like this:

Keyboard Maestro 8.2.4 “Open users download folder in Finder” Macro

Open users download folder in Finder.kmmacros (1.7 KB)

wow thx guys!

cant believe i missed the open command in KM @JimmyHartington :smiley:

@suliveevil the open CLI option is also great!

thx again

Z

And this will present you with at box, where you can start to write the name of the folder you want to open.

Just change the list to add folders.

Keyboard Maestro 8.2.4 “Open folder” Macro

Open folder.kmmacros (3.3 KB)

1 Like

@JimmyHartington..wow!!!!
this is the stuff dreams are made of lol :wink:

thx so much. in a related question then, can one use this to instead open a path rather move a selected file to one of the targets in that list you presented?

thx again so much!

Z

You are welcome.

Is it one selected file or multiple?
A mix of files and directories?

I would like to give it a shoot when I am back at my computer.

Hey Z,

I see you're trying to change the directory of the front Finder window.

AppleScript makes that pretty easy.

----------------------------------------------------------------
# Auth: Christopher Stone
# dCre: 2019/01/09 16:27
# dMod: 2019/01/09 16:27 
# Appl: Finder
# Task: Change the Target of the Front Finder Window
# Libs: None
# Osax: None
# Tags: @Applescript, @Script, @Finder, @Change, @Target, @Front, @Window
----------------------------------------------------------------

set newTarget to path to downloads folder

tell application "Finder"
   if window 1 exists then
      tell window 1
         if (its target as alias) ≠ newTarget then
            set its target to newTarget
         else
            beep 2
         end if
      end tell
   end if
end tell

----------------------------------------------------------------

Jimmy's “Open folder” macro could easily be repurposed to do this as well.

What locations specifically?

Easily.

-Chris

Here is my attempt with a macro, which moves the selected file/files to the folder you choose.
It does not work on with selected folders.

And as @ccstone writes, I did not notice you wanted to change directory. My solutions opens a new window in Finder.

Keyboard Maestro 8.2.4 “Move selected file to folder” Macro

Move selected file to folder.kmmacros (3.8 KB)

3 Likes

thx alot @JimmyHartington thats perfect for me!

Z

JimmyHartington:

This macro does not work for me. Everytime I run it, I get the error message

"Macro Cancelled
Open File failed with non-existent path
,’%Variable%LocaLFoldcrToOpen%,,. Macro "Open Fo..."

How do you get it to actually open the folder?

In the error message there seems to be a typo.
Have you copied the error message in or written it?

I copied it.

The good news is that I just tried it again, to verify the error message, and the darn thing worked. Have tried it twice more and it works. So I'm at a loss as to why it repeatedly failed before. I tried it at least 10 times before and it failed every time, no matter what folder I tried.

If it fails again, I'll let you know.

Thanks for the reply.

1 Like

@zeltak, If one of the above posts solves your problem/question as originally stated, please check the "Solved" checkbox (click for details) at the bottom of that post.

Otherwise, please post your remaining questions/issues about this problem.
If you have other questions, please start a new topic.

sure thing, done!

th @JMichaelTX for letting me know about this

Z

I find this AppleScript super useful, but realized that it throws an error if the finder is showing "Recents" ... probably because it's not really a real folder.

I updated the AppleScript to make it work ...

set newTarget to "Mac HD:Users:UserName:Downloads:"

tell application "Finder"
	if window 1 exists then
		tell window 1
			if (its target as string) is equal to "" then --my additon to code
				set its target to newTarget
			else if (its target as alias) ≠ newTarget then --added an "else" to beginning
				set its target to newTarget
			else
				beep 2
			end if
		end tell
	end if
end tell
1 Like

Found this awhile back and it works in Catalina and Big Sur.

File item Macro (v9.2)

03)File item.kmmacros (21 KB)

Hey Markus,

Well done!

Here's a new and improved version of my script above.

-Chris

--------------------------------------------------------
# Auth: Christopher Stone <scriptmeister@thestoneforge.com>
# dCre: 2019/01/09 16:27
# dMod: 2021/01/25 14:18
# Appl: Finder
# Task: Change the Target of the Front Finder Window (Improved).
# Libs: None
# Osax: None
# Tags: @Applescript, @Script, @Finder, @Change, @Target, @Front, @Window
# Vers: 2.0
--------------------------------------------------------

# Never use a hard-coded path unless you have to.
# They're fragile and break when you least want them to.

set newTargetAlias to path to downloads folder as text

tell application "Finder"
   
   if exists of window 1 then
      
      tell window 1
         
         set windowTargetPathHFS to its target as text
         
         if (windowTargetPathHFS = "") or (windowTargetPathHFS ≠ newTargetAlias as text) then
            set its target to newTargetAlias as alias
         else
            display notification linefeed & (newTargetAlias as text) & linefeed ¬
               with title "Front Window Location already set to:" sound name "Tink"
         end if
         
      end tell
      
   else
      
      set newFinderWindow to make new Finder window
      tell newFinderWindow
         set its target to newTargetAlias
         set its bounds to {488, 23, 1432, 1196}
         if toolbar visible = false then set toolbar visible to true
      end tell
      
   end if
   
end tell

--------------------------------------------------------