Updated (2nd DECEMBER 2016):
FCPX Hacks is a free and open source Hammerspoon script that adds a mountain-load of new features to Final Cut Pro. It originally started off as a little proof of concept project to make finding the browser playhead easier for Scott Simmons (read the original blog post below) – but has since grown into a huge collection of handy workflow hacks, shortcuts, tools and automation features to make editing within Final Cut Pro faster, easier and much more powerful.
FCPX Hacks is compatible with Final Cut Pro 10.2.3 and 10.3.1 running macOS 10.10.5 or above.
It requires Hammerspoon 0.9.50 or above and works with any language and keyboard layout.
The Touch Bar feature requires macOS Sierra 10.12.1 build 16B2657 or later installed.
Coding crazy stuff like this takes a LOT of time (especially for a non-programmer), so if you find FCPX Hacks useful, PLEASE consider making a voluntary PayPal donation below (no matter how big or small) or buy a cool Wizards T-shirt so that I can continue to justify to my wife and the rest of the team at LateNite, that coding into the middle of the night is worthwhile!
Don’t have any spare cash? Then consider just sharing the news of FCPX Hacks online, so we can get more people testing it out. The more feedback I get, the quicker it is to squash bugs, and come up with cool new features to include.
Also, if there’s a feature that you or your company desperately need, please get in touch to discuss contracting me to throw it together as a priority.
Please be aware that I’m a filmmaker, not a programmer, so use at your own risk!
You can download the latest version of FCPX Hacks here (version 0.68 – 2nd Dec 2016 @ 23:00).
As some of the features in this script makes changes to Final Cut Pro’s internal files (which requires your Administrator password), please don’t use on mission critical or production systems without testing first. This scripts basically sits “on top” of Final Cut Pro, so it shouldn’t ever cause Final Cut Pro to crash to slow down – but always better to be safe than sorry!
After downloading and installing the latest version of Hammerspoon (which you must do first), you can just download and open up the above DMG file, then drag the script files on the left to the Hammerspoon folder on the right (replacing any existing files if you’ve previously installed FCPX Hacks). If you need help installing Hammerspoon, you can refer to the original blog entry below.
MASSIVE thank you to Aaron Magill and Chris Jones for all their help and support with Hammerspoon – they’re both truly awesome people. Also, a very big thank you to Bill Cheeseman PFiddlesoft, for all his help with UI Browser and his very generous GUI Scripting advice. Thanks also to Hans Linssen, Yvan Koenig and Tim Webb for their troubleshooting help, and to Andreas Verhoeven & Robbert Klarenbeek for the work they’ve done with Touch Bar Demo App. Big thanks also to David Peterson for his XML and Github help!
MASSIVE thank you to the INCREDIBLE Andrew Kramer at Video Copilot for giving the world FX Console for FREE – and also inspiring me to rip off his genius idea and include a “console” feature in FCPX Hacks!
An equally MASSIVE thank you to the always amazing Karen Hocking, Daniel Daperis, David Hocking, Андрей Смирнов, Alex Gollner, Scott Simmons, Isaac J. Terronez, Shahin Shokoui, Ilyas Akhmedov and everyone in the FCPX Editors InSync Facebook Group for all their ideas and advice!
The FCPX Hacks logo was designed by the very generous and talented Sam Woodhall.
HOW TO USE:
FCPX Hacks adds a menu to the top right corner of the screen in the macOS menubar. This gives you quick and easy access to a range of shortcuts, automation tools, hacks and both the FCPX Hacks and Hammerspoon settings.
If you don’t want FCPX Hacks appearing in your menubar, you can also use an icon instead:
When you launch FCPX Hacks for the first time, it will use default shortcuts keys, which are listed below. However you can customise these shortcut keys via Final Cut Pro’s own Command Editor. This feature is disabled by default and must be activated by clicking Enable Hacks Shortcuts in Final Cut Pro from the FCPX Hacks menubar. As this feature changes Final Cut Pro’s internal keyboard layouts – it will require your Administrator password (so as with all of the Hacks, use with care).
Another handy feature is the Display Proxy/Original Icon. This inserts a blue or red dot (as shown in the first screenshot above) in the menubar to visually highlight if you’re watching Proxy or Original files in the Viewer. This is really handy to be able to instantly see if you’re watching full quality or not.
FCPX Hacks Console (Default Shortcut: CONTROL+SPACEBAR)
Inspired by Andrew Kramer’s INCREDIBLE FX Console free plugin for After Effects, we’ve also added an uglier and less feature-rich “console” to FCPX Hacks. It allows you to activate a bunch of the different shortcuts and automation features directly from the search tool. However, what’s really handy is that if you, for example, click Update Effects List from the Effects Shortcuts menu, ALL of your effects will appear in the console for easy access – allowing you to very quickly add effects with only your keyboard! You can right click on the Console to control what items are displayed (i.e. you may only want to see Effects).
Open Final Cut Pro (Default Shortcut: CONTROL+OPTION+COMMAND+L)
With FCPX Hacks open, you can now open Final Cut Pro at any time, system wide.
Create Optimized Media (No Default Shortcut)
This shortcut simply activates “Create Optimized Media” within the Final Cut Pro Import Preferences. This can save you a couple of clicks, and also allows you to quickly check whether the setting is ticked or not in one mouse click.
Create Multicam Optimized Media (No Default Shortcut)
This shortcut simply activates “Create optimized media for multicam clips” within the Final Cut Pro Playback Preferences. This can save you a couple of clicks, and also allows you to quickly check whether the setting is ticked or not in a single mouse click
Create Proxy Media (No Default Shortcut)
This shortcut simply activates “Create Proxy Media” within the Final Cut Pro Import Preferences. This can save you a couple of clicks, and also allows you to quickly check whether the setting is ticked or not in a single mouse click.
Leave Files in Place on Import (No Default Shortcut)
This shortcut simply activates “Leave in Place” within the Final Cut Pro Import Preferences. This can save you a couple of clicks, and also allows you to quickly check whether the setting is ticked or not in a single mouse click.
Enable Background Render (No Default Shortcut)
This shortcut simply activates “Background Render” within the Final Cut Pro Playback Preferences. This can save you a couple of clicks, and also allows you to quickly check whether the setting is ticked or not, as well as what the start after time is set to in a single mouse click.
Highlight Browser Playhead (Default Shortcut: CONTROL+OPTION+COMMAND+H)
By default this feature puts a big red rectangle around the Final Cut Pro browser playhead to make it really easy to instantly spot. You can change the colour to Blue, Green or Yellow and the shape to a circle or diamond within the FCPX Hacks preferences.
Reveal in Browser & Highlight (Default Shortcut: CONTROL+OPTION+COMMAND+F)
The original feature of FCPX Hacks! This feature performs a normal “Reveal in Browser”, but then highlights the playhead so that you can spot it easily.
Single Match Frame & Highlight (Default Shortcut: CONTROL+OPTION+COMMAND+S)
This feature performs a normal “Reveal in Browser”, however whatever clip your playhead is over (for example, let’s say it’s a clip called “Test”) – this feature will then automatically insert “Test” into the Browser Search box, so that only the single clip appears in the Browser, and also highlights the playhead.
Reveal Multicam in Browser & Highlight (Default Shortcut: CONTROL+OPTION+COMMAND+D)
This feature performs essentially performs a “Reveal in Browser” command on the source clip within a multicam clip. Once match-framed into the browser, it will then highlight it for easily spotting.
Reveal Multicam in Angle Editor & Highlight (Default Shortcut: CONTROL+OPTION+COMMAND+G)
This feature allows you to easily “match frame” to whatever frame your playhead is over in the Multicam Angle editor, and will also highlight the source clip within the browser.
Cut n Switch Audio/Video/Both Angle 1-16 (No Default Shortcut)
Changes the multi-cam mode then performs a standard “Cut and Switch to Viewer Angle” shortcut in a single keypress.
Move To Playhead (No Default Shortcut)
Performs a Cut then Paste in a single keypress.
Select Clip at Lane 1-10 (No Default Shortcuts)
These shortcuts allow you to easily select clips outside of the Primary Storyline. For example, if you want to select a connected clip that’s directly above your primary storyline, you can assign the “Select Clip at Lane 1” to your preferred shortcut key via the Command Editor and away you go!
Restore Keyword Preset (Default Shortcut: CONTROL+OPTION+COMMAND+1 TO 9)
Save Keyword Preset (Default Shortcut: CONTROL+OPTION+COMMAND+SHIFT+1 TO 9)
One of the coolest features of FCPX Hacks is the ability to save and restore up to nine keyword presets. What this means is that if you type in up to nine keywords in the Keyword Editor, you can save all of these these keyword shortcuts to a preset, and restore it at a later time – and even on a completely different library. This is great if you’re constantly using the same keywords between libraries, or you want to have more than the default nine keyword shortcuts.
Timeline Clip Height Increase/Decrease (Default Shortcut: CONTROL+OPTION+COMMAND+PLUS OR MINUS)
Allows you to easily increase and decrease the timeline clip height. You can either press once to move in small increments, or hold down to increase/decrease quickly.
Batch Export from Browser (Default Shortcut: CONTROL+OPTION+COMMAND+E)
This incredible powerful feature allows you batch export multiple clips, or even multiple Smart or Keyword Collections directly from the Final Cut Pro browser. All you need to do is make your select, press the shortcut and let Final Cut Pro do it’s thing! The feature will always use the clip name as the filename, and will not overwrite files with the same name.
Scrolling Timeline (Default Shortcut: CONTROL+OPTION+COMMAND+W)
As its been the number one request on Richard Taylor’s Final Cut Pro X Top Requests Master List since day one, we’ve finally added a Scrolling Timeline option to Final Cut Pro. To activate and deactivate Scrolling Timeline Mode, by default you press CONTROL+OPTION+COMMAND+W, or select Enable Scrolling Timeline from the FCPX Hacks menu. Once activated, you will see a little notification on your screen saying “Scrolling Timeline Activated”. Now, if you have your mouse in the timeline area and press spacebar, the timeline will automatically scroll for you! However, if you press spacebar with the mouse outside of the timeline area – the timeline will playback as normal, allowing you to easily switch between the two modes. You can also deactivate the scrolling timeline during playback by pressing the Scrolling Timeline Mode shortcut key again (CONTROL+OPTION+COMMAND+W). Of course, this shortcut key can always be customised as explained above! If your playhead is not visible when you press play, FCPX Hacks will automatically move your playhead to the middle of the timeline. You can continue to use all your usual shortcuts (i.e. ‘Add Marker’ and ‘Blade’) whilst playing back and the playhead will remain static.
Select Color Board Puck (Default Shortcuts: CONTROL+OPTION+COMMAND+M , . / )
Until now there’s been no shortcut key to individual select Color Board pucks – however thanks to FCPX Hacks, you can now not only select individual pucks with a single mouse click, but also to make colour grading within Final Cut Pro a lot easier with a control surface, we’ve added lots of additional Color Board Shortcuts to the Command Editor – such as “Color Board: Color Puck 1 & Down” – which selects the Global puck within the Color panel and then moves the puck in a downward direction. If you hold one of these shortcuts down, the puck will continue to move until you release the shortcut. None of these shortcuts have defaults, so you’ll need to assign them in the Command Editor to use them.
Mouse Control of Color Board Pucks (No Default Shortcut)
These shortcuts are unassigned by default, so you’ll need to activate Enable Hacks Shortcuts in Final Cut Pro to use them. Once assigned via the Final Cut Pro Command Editor, these shortcuts allow you to control the Color Board pucks with your mouse. For example, if you assign Mouse Control Color Puck 1 to the Q key, when you hold down the Q key and move your mouse – the puck will move with the mouse. As soon as you release the key, the puck will stop moving.
Enable Shortcuts During Fullscreen Playback (No Default Shortcut)
FCPX Hacks also adds the ability to perform Set Range Start, Set Range Out, Connect to Primary Storyline, Connect to Primary Storyline Backtimed, Insert and Append to Storyline, whilst in fullscreen playback mode. This feature is off by default, and can be enabled via the FCPX Hacks Menubar. These shortcuts will still work, even if you customise your shortcuts for these commands (i.e. if you change the Set Range Start to a key other than I).
You can now Assign Individual Effects to Keyboard shortcuts via the FCPX Hacks menubar. For example, if you assign a “Directional Blur” to Effects Shortcut 1 via the menu, when you have a clip selected in the Final Cut Pro timeline and press CONTROL+SHIFT+1, it will automatically apply the “Directional Blur” effect to that clip. You can currently assign up to 5 individual effects shortcuts. However, before the “Assign Effects Shortcuts” buttons are enabled, you need to click Update Effects List first, at this will create a list of all the effects you currently have installed on your system. If you add new effects to Final Cut Pro, you’ll need to run this command again.
Touch Bar (Default Shortcut: CONTROL+OPTION+COMMAND+Z)
For those that don’t have access to the fancy brand new MacBook Pro, inspired by the Touch Bar Demo App, we’re brought the Touch Bar to the desktop as an on-screen display! The Touch Bar offers some really handy features, such as the ability to view a “mini-timeline” allowing you to very quickly navigate your project. Via the FCPX Hacks menubar you can choose to have the Touch Bar appear wherever your mouse pointer is, to have it appear at the top centre of your timeline, for a more consistent experience. The Touch Bar will “disappear” when you close FCPX, and reposition itself if you resize the window. If you hold down the left OPTION key and click on the Touch Bar you can drag it to another location regardless of which mode you’re in.
Paste From Clipboard History (No Default Shortcut)
This feature is off by default and must be activated by clicking Enable Clipboard History in the menubar. Once activated, every time you copy something in FCPX, it will be added to the Clipboard History. FCPX Hacks currently remembers the last 5 items – even after you restart your computer. If you want to clear your history, there’s a Clear Clipboard History option in the menubar. It currently labels everything by date and time (for now).
Paste from Shared Clipboard (No Default Shortcut)
This feature is off by default and must be activated by clicking both Enable Clipboard History and Enable Shared Clipboard from the FCPX Hacks menubar. When you click Enable Shared Clipboard you will be prompted to select a folder in which you’ll save your shared clipboard. This should be a network drive, or cloud storage such as iCloud or Dropbox, so multiple editors can access the shared clipboard at the same time. Once enabled, when you copy anything in FCPX it will automatically appear on all of your machines that are running FCPX Hacks and pointing to the same Shared Clipboard folder. This makes sharing assets between machines as easy as copying and pasting!
Import Shared XML File (No Default Shortcut)
This feature is off by default and must be activated by clicking Enable XML Sharing from the FCPX Hacks menubar. When you click this you will be prompted to select a folder which will act as your local “drop box” (i.e. where you drag Final Cut Pro libraries, events or clips to), as well as a folder to use as your “shared” folder (which should be a network drive, or cloud storage such as iCloud or Dropbox so that multiple editors can access this folder at the same time). Once enabled, if you drag anything from the Final Cut Pro browser to your drop folder, you will be presented with a dialog box to enter a name for this XML file. Once you enter a name and click “OK”, it will automatically appear on all of your machines that are running FCPX Hacks and pointing to the same shared folder.
Close Media Import When Card Inserted (No Default Shortcut)
This feature is off by default and must be activated by clicking Close Media Import When Card Inserted in the menubar. Once activated, this feature will automatically close the Media Import window in Final Cut Pro when you insert a camera card (such as an SD or CF card).
Mobile Notifications (No Default Shortcut)
This feature is off by default and must be activated by clicking Enable Mobile Notifications in the menubar. When activating this feature, you’ll be asked to enter your Prowl API key. If you don’t already have one, you can register and get one for free here.
Once activated, every time Final Cut Pro successfully or unsuccessfully completes an export, you’ll get an alert on any mobile devices that have the Prowl app installed, such as your iPhone or iPad.
Enable Timecode Overlay (Default Shortcut: CONTROL+OPTION+COMMAND+T)
This feature turns on a hidden Final Cut Pro preference that enables timecode overlays in the Viewer. As this is a “hack” it requires Final Cut Pro to restart before taking affect.
Enable Moving Markers (Default Shortcut: CONTROL+OPTION+COMMAND+Y)
This feature turns on a hidden Final Cut Pro preference originally discovered by Alex4D that allows you to move markers in your timeline with your mouse. As this is a “hack” it requires Final Cut Pro to restart before taking affect.
Enable Moving Markers (Default Shortcut: CONTROL+OPTION+COMMAND+P)
This feature turns on a hidden Final Cut Pro preference that allows you to continue rendering and performing other tasks whilst Final Cut Pro is still playing back in the timeline. As this is a “hack” it requires Final Cut Pro to restart before taking affect.
Change Backup Interval (Default Shortcut: CONTROL+OPTION+COMMAND+B)
This feature allows you to manipulate a hidden Final Cut Pro preference that allows you to change Final Cut’s internal backup interval. As this is a “hack” it requires Final Cut Pro to restart before taking affect.
Change Smart Collections Label (Currently Accessed by Menubar Only)
This feature allows you to change the label of the Smart Collection that’s added by default in every new Final Cut Pro project. This is just changing the meta-data behind the scenes, so it doesn’t affect your library at all (i.e. if you open the same library on another machine, it will go back to saying “Smart Collections”).
I’m also currently working on a bunch of other features based on things I’d love to see in Final Cut Pro, and also feedback from the Final Cut Pro community. If there’s something you’d love to see added to FCPX Hacks, let me know via the below poll. However, there’s a few things I won’t bother working on, as I ASSUME that Apple will do them in a future release, such as customising window layouts, an undo/actions history, and anything to do with audio roles or a potential role-based mixer.
Also, feel free to leave more detailed feature suggestions in the comments below, or shoot me through an email.
Thanks for testing!
ORIGINAL BLOG POST (15TH SEPTEMBER 2016):
Over the last few days, I’ve been having lots of discussions with other Final Cut Pro users on social media about how annoying the Reveal in Browser (aka ‘Match Frame’) feature in FCPX is. The problem is that if you have hundreds of clips within your browser, when you match frame it’s really hard to instantly visually see where the playhead is in a sea of other clips. It’s also really annoying if you’ve got your playhead at a specific position in the browser, then continue editing in the timeline for a hour or so, and want to easily jump back to that browser playhead position to continue where you left off. It’s VERY hard to spot which clip is selected and where the tiny white playhead is hiding in the browser!
To try and solve this, I quickly threw together a simple little AppleScript that uses the macOS Accessibility API to find out where the browsers playhead currently is, and then instantly move the mouse cursor to the playhead position. It was a bit of a hack job, but after a bit of experimenting, it finally worked. However, as many people commented, it’s a pretty bad idea to move the mouse as it breaks all the Apple Human Interface Guidelines. After playing with it for a while, I have to agree – it’s a bit strange having the mouse move on you!
One of the original ideas that Scott Simmons suggested was to somehow highlight the playhead position in the browser. My idea was to do this with a GIANT arrow, so the editor can instantly see where the playhead is. Despite a lot of Googling, I couldn’t work out how to do this with AppleScript or Automator, and I don’t have the time (or the skills) to jump into Xcode. Luckily however I discovered something called Hammerspoon.
To quote the manual: “At its core, Hammerspoon is just a bridge between the operating system and a Lua scripting engine. What gives Hammerspoon its power is a set of extensions that expose specific pieces of system functionality, to the user”.
Essentially – it’s like a more powerful and geekier version of Automator, and allows you to script a bunch of stuff to speed up everyday tasks. For example, you could write a script that changes which wireless access point you’re connected to with a click of a button, or have an alert pop up on your screen when a render is finished. There’s lots of examples here.
What I discovered is that Hammerspoon has the ability to not only handle AppleScript (so I could reuse the code I’ve already been playing with), but it can also draw things on the screen – which is exactly what I needed.
It’s also free, and open source. Bonus!
It uses the Lua scripting language – which I’ve never used before, but it seemed simple enough.
So, with a LOT of trial and error, playing with my new favourite tool UI Browser, reading through heaps of examples, some helpful Tweets, and AMAZING support from the Hammerspoon team – I was able to throw something together that seems to work!
Basically, the script I’ve made does three things (so far):
- When you press CONTROL + OPTION + COMMAND + F it will perform a normal match frame in FCPX, but will also draw a red circle around the browser playhead temporarily so you can easily see where the playhead is.
- When you press CONTROL + OPTION + COMMAND + H it will draw a red circle around the browser playhead (without doing a match frame). This is helpful if you’re just working in the browser, but you’ve ‘misplaced’ where the playhead currently is.
- When you press CONTROL + OPTION + COMMAND + S it will perform a normal match frame, but it will also take the name from the clip you are match framing, and apply it to the search tool, so that only the match frame clip appears in your browser. I call this a “Single Match Frame”.
I’ve tried to code it so it works with all the common window layouts, however I’ve only tested it with FCPX 10.2.3 and macOS 10.11.6 on a MacBook Pro and a 5K iMac – so it MAY not work well on other systems. If it doesn’t work for you – let me know in the comments below.
I’ve noticed that the script can get very sluggish when you have lots (i.e. more than 500) clips in your event – whereas it’s really quick and snappy with events that only 50-100 clips. This seems to be a limitation of AppleScript, which I’ve been unable to solve thus far (if anyone has any ideas, please let me know!).
You’re also MORE than welcome to modify the script for your own needs (or fix my poorly designed code). I’ve been experimenting with it for saving/restoring FCPX window layouts, and also trying to implement a scrolling timeline – so there’s definitely some cool stuff you can do with it! I think a keyboard shortcut for “apply audio fade handle” is next on my list! If you come up with something cool, please make sure you share it in the comments below.
DISCLAIMER: I’m a filmmaker, not a programmer, so use this at your own risk. This script is provided “as is” with no warranty, so don’t come back to me if it blows things up. I’ve done very little testing outside my own machine, so the script may not work on all systems and configurations.
If you want to test it out, here’s how:
- Download Hammerspoon. It’s free.
- Hammerspoon comes as a ZIP file. Unzip it and drag the Hammerspoon.app to your Applications folder.
- You can now run Hammerspoon. The first time you run it you’ll be presented with a Preferences panel:
- To actually function properly, Hammerspoon needs Accessibility permissions. Click the Enable Accessibility button.
- You’ll then be presented with a Security window like the below. Click Open System Preferences.
- This will open the Security & Privacy system preferences. You’ll need to unlock the panel by clicking the paddock in the left hand corner of the screen, and enter in your computers password. Once the panel is unlocked, you’ll need to make sure the Hammerspoon item is ticked as per below. Once done, you can now close this window.
- Out of the box, Hammerspoon does nothing. What you need to do now is feed it some code!
- So let’s Quit Hammerspoon for now.
- You can download the latest script at the top of this page (I’ll be constantly updating this link as I slowly improve the script based on your feedback). This also comes as a ZIP. When you unzip it, you’ll find a file called init.lua and a folder called hs. This is what we need to give to Hammerspoon. The file is just a plain text file, so you can open it up in TextEdit (or my preference BBEdit) if you want to check out the code. The hs folder contains some additional Hammerscript modules not written by me.
- We now need to move the downloaded init.lua and hs folder to ~/.hammerspoon/. The easiest way to do this is click Go > Go To Folder from the menubar in Finder (or press COMMAND + SHIFT + G from the desktop).
- You’ll then be presented with a dialogue box, where you need to type ~/.hammerspoon/.
- This will open the hidden Hammerspoon folder, where you need to drop in the previously downloaded init.lua file and hs folder.
- Now when you open Hammerspoon it should load the script, ready to rock and roll!
- You can now launch FCPX and see if it works by trying to match frame something (CONTROL + OPTION + COMMAND + F).
- If it doesn’t work for some reason, the Hammerspoon application has a Console (COMMAND + R) which displays any error messages. If things don’t work as expected, let us know in the comments below so that we can fix things up.
That’s it! Hopefully it works for you and you find it useful. If it doesn’t work for you, or if you have any ideas, comments or suggestions, feel free to leave them in the comments below. Happy Cutting!