Apple - Create a new (.txt) File in Finder - Keyboard Shortcut

Well, here you go with an AppleScript for that.

First, create the AppleScript:

  1. Open Automator
  2. Create a Quick Action
  3. Set the input to no input
  4. Drag and Drop the Run AppleScript workflow element onto the grey space.
  5. Paste the code from below into the AppleScript
  6. Save the workflow as Create new file
    If you have iCloud Drive activated, make sure you are saving the file under Library/Services/ in your Home Folder.

try
  tell application "Finder" to set the this_folder ¬
   to (folder of the front window) as alias
on error -- no open folder windows
  set the this_folder to path to desktop folder as alias
end try

set thefilename to text returned of (display dialog ¬
 "Create file named:" default answer "filename.txt")
set thefullpath to POSIX path of this_folder & thefilename
do shell script "touch \"" & thefullpath & "\""

To add it as a shortcut:

  • Go to System Preferences -> Keyboard -> Shortcuts -> Services
  • Scroll down until you find the Service Create new file
  • Assign a shortcut to it by clicking on the right side none, which turns into a Add Shortcut.
    Click the Button and type the shortcut you wish to use.
    I use ⌘ Command+⌥ Option+N

I've created an AppleScript very similar to the @YoshiBotX's one, but with some improvements.

The idea is to create an Automator workflow and assigning a shortcut to it using the following steps:

  • Open Automator and create a Service;
  • Set the input to no input, and the application to Finder.app;
  • Drag and Drop the Run AppleScript workflow element onto the grey space;
  • Put the contents of this AppleScript in the textbox;
  • Save the workflow with a reasonable name (like New File);
  • Go to Settings -> Keyboard -> Shortcuts -> Services and assign a shortcut to it.

Now, let's show the AppleScript:

set file_name to "untitled"
set file_ext to ".txt"
set is_desktop to false

-- get folder path and if we are in desktop (no folder opened)
try
    tell application "Finder"
        set this_folder to (folder of the front Finder window) as alias
    end tell
on error
    -- no open folder windows
    set this_folder to path to desktop folder as alias
    set is_desktop to true
end try

-- get the new file name (do not override an already existing file)
tell application "System Events"
    set file_list to get the name of every disk item of this_folder
end tell
set new_file to file_name & file_ext
set x to 1
repeat
    if new_file is in file_list then
        set new_file to file_name & " " & x & file_ext
        set x to x + 1
    else
        exit repeat
    end if
end repeat

-- create and select the new file
tell application "Finder"

    activate
    set the_file to make new file at folder this_folder with properties {name:new_file}
    if is_desktop is false then
        reveal the_file
    else
        select window of desktop
        set selection to the_file
        delay 0.1
    end if
end tell

-- press enter (rename)
tell application "System Events"
    tell process "Finder"
        keystroke return
    end tell
end tell

For convenience, I'm putting this AppleScript in this GitHub Gist.


You could also assign a shortcut to a script like this:

tell application "Finder"
    set selection to make new file at (get insertion location)
end tell

The insertion location is either the target of the frontmost Finder window or the desktop.