🎁 Installing Mac apps using Bundle

Homebrew’s bundle is an automated method of installing Mac apps using the Terminal. This can be used as a significant time-saver to install all of your Mac apps after a fresh macOS install. Here are the steps that you need to follow to make the process work for you.

  1. Ensure Brew is installed. Copy the text below and paste it into a Terminal window to install the Homebrew components.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

2. Next, you will need a brew file, here is a link to how I built mine. You can customize the contents to suit your own taste. When done, save the filename as Brewfile. Note! Bundle can be used to install files from the Mac App Store, but you will need the specific codes for each app. See the next step and learn how to create them.

3. It is highly advisable to create the brew file before you format your computer. To create your own particular brewfile, use the following commands: 

brew install mas
brew bundle dump

4. Next, open the brewfile in a text editor and review the contents, ensure you have all of the apps that you want to reinstall at a later date. Once done, keep the file backed up.

5. Finally, when you are ready to install, use the command:

brew bundle install 

This will start the app installation process. 

 

💪 How to use youtube-dl

Have you ever wanted to download a video from YouTube? Perhaps you only need to extract the audio from the video, but didn’t need the video? Youtube-dl is a command-line utility that allows you to download video (or audio) from a variety of supported video websites

Installation

The quickest way to to install FFmpeg is through Homebrew in Terminal.

brew install youtube-dl

Next, you will need to install FFmpeg to help with the video encoding process.

brew install ffmpeg

Youtube-dl has a vast number of configuration options, which are beyond the scope of this blog post. However, below are the options I found the most useful

Download a video from YouTube

Using the string below will pull the best-uploaded video and audio file from YouTube and merge both files together.

youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best' "<Video-URL>"

Extracting audio

Extracting just the audio is fairly straightforward, just enter the text string below. The –embed-thumbnail command is optional and works with the mp3 file format. You can replace mp3 with other audio formats such as flac.

youtube-dl -f bestaudio --extract-audio --embed-thumbnail --audio-format mp3 --audio-quality 0 "<Video-URL>" 

Options

-h, --help                           Print this help text and exit
--version                            Print program version and exit
-U, --update                         Update this program to latest version.
                                     Make sure that you have sufficient
                                     permissions (run with sudo if needed)
-i, --ignore-errors                  Continue on download errors, for
                                     example to skip unavailable videos in 
                                     a playlist
--abort-on-error                     Abort downloading of further videos 
                                     (in the playlist or the command line) 
                                     if an error occurs
--dump-user-agent                    Display the current browser
                                     identification
--list-extractors                    List all supported extractors
--extractor-descriptions             Output descriptions of all supported
                                     extractors
--force-generic-extractor            Force extraction to use the generic
                                     extractor
--default-search PREFIX              Use this prefix for unqualified URLs.
                                     For example "gvsearch2:" downloads two
                                     videos from google videos for youtube-
                                     dl "large apple". Use the value "auto"
                                     to let youtube-dl guess ("auto_warning"
                                     to emit a warning when guessing).
                                     "error" just throws an error. The
                                     default value "fixup_error" repairs
                                     broken URLs, but emits an error if      
                                     this is not possible instead of 
                                     searching.
--ignore-config                      Do not read configuration files. When
                                     given in the global configuration file
                                     /etc/youtube-dl.conf: Do not read the
                                     user configuration in
                                     ~/.config/youtube-dl/config
                                     (%APPDATA%/youtube-dl/config.txt on
                                     Windows)
--config-location PATH               Location of the configuration file;
                                     either the path to the config or its
                                     containing directory.
--flat-playlist                      Do not extract the videos of a
                                     playlist, only list them.
--mark-watched                       Mark videos watched (YouTube only)
--no-mark-watched                    Do not mark videos watched (YouTube
                                     only)
--no-color                           Do not emit color codes in output

Network Options:

--proxy URL                          Use the specified HTTP/HTTPS/SOCKS
                                     proxy. To enable SOCKS proxy, specify a
                                     proper scheme. For example
                                     socks5://127.0.0.1:1080/. Pass in an
                                     empty string (--proxy "") for direct
                                     connection
--socket-timeout SECONDS             Time to wait before giving up, in
                                     seconds
--source-address IP                  Client-side IP address to bind to
-4, --force-ipv4                     Make all connections via IPv4
-6, --force-ipv6                     Make all connections via IPv6

Geo Restriction:

--geo-verification-proxy URL         Use this proxy to verify the IP address
                                     for some geo-restricted sites. The
                                     default proxy specified by --proxy (or
                                     none, if the option is not present) is
                                     used for the actual downloading.
--geo-bypass                         Bypass geographic restriction via
                                     faking X-Forwarded-For HTTP header
--no-geo-bypass                      Do not bypass geographic restriction
                                     via faking X-Forwarded-For HTTP header
--geo-bypass-country CODE            Force bypass geographic restriction
                                     with explicitly provided two-letter ISO
                                     3166-2 country code
--geo-bypass-ip-block IP_BLOCK       Force bypass geographic restriction
                                     with explicitly provided IP block in
                                     CIDR notation

Video Selection:

--playlist-start NUMBER              Playlist video to start at (default is
                                     1)
--playlist-end NUMBER                Playlist video to end at (default is
                                     last)
--playlist-items ITEM_SPEC           Playlist video items to download.
                                     Specify indices of the videos in the
                                     playlist separated by commas like: "--
                                     playlist-items 1,2,5,8" if you want to
                                     download videos indexed 1, 2, 5, 8 in
                                     the playlist. You can specify range: "
                                     --playlist-items 1-3,7,10-13", it will
                                     download the videos at index 1, 2, 3,
                                     7, 10, 11, 12 and 13.
--match-title REGEX                  Download only matching titles (regex or
                                     caseless sub-string)
--reject-title REGEX                 Skip download for matching titles
                                     (regex or caseless sub-string)
--max-downloads NUMBER               Abort after downloading NUMBER files
--min-filesize SIZE                  Do not download any videos smaller than
                                     SIZE (e.g. 50k or 44.6m)
--max-filesize SIZE                  Do not download any videos larger than
                                     SIZE (e.g. 50k or 44.6m)
--date DATE                          Download only videos uploaded in this
                                     date
--datebefore DATE                    Download only videos uploaded on or
                                     before this date (i.e. inclusive)
--dateafter DATE                     Download only videos uploaded on or
                                     after this date (i.e. inclusive)
--min-views COUNT                    Do not download any videos with less
                                     than COUNT views
--max-views COUNT                    Do not download any videos with more
                                     than COUNT views
--match-filter FILTER                Generic video filter. Specify any key
                                     (see the "OUTPUT TEMPLATE" for a list
                                     of available keys) to match if the key
                                     is present, !key to check if the key is
                                     not present, key > NUMBER (like
                                     "comment_count > 12", also works with
                                     >=, <, <=, !=, =) to compare against a
                                     number, key = 'LITERAL' (like "uploader
                                     = 'Mike Smith'", also works with !=) to
                                     match against a string literal and & to
                                     require multiple matches. Values which
                                     are not known are excluded unless you
                                     put a question mark (?) after the
                                     operator. For example, to only match
                                     videos that have been liked more than
                                     100 times and disliked less than 50
                                     times (or the dislike functionality is
                                     not available at the given service),
                                     but who also have a description, use
                                     --match-filter "like_count > 100 &
                                     dislike_count <? 50 & description" .
--no-playlist                        Download only the video, if the URL
                                     refers to a video and a playlist.
--yes-playlist                       Download the playlist, if the URL
                                     refers to a video and a playlist.
--age-limit YEARS                    Download only videos suitable for the
                                     given age
--download-archive FILE              Download only videos not listed in the
                                     archive file. Record the IDs of all
                                     downloaded videos in it.
--include-ads                        Download advertisements as well
                                     (experimental)

Download Options:

-r, --limit-rate RATE                Maximum download rate in bytes per
                                     second (e.g. 50K or 4.2M)
-R, --retries RETRIES                Number of retries (default is 10), or
                                     "infinite".
--fragment-retries RETRIES           Number of retries for a fragment
                                     (default is 10), or "infinite" (DASH,
                                     hlsnative and ISM)
--skip-unavailable-fragments         Skip unavailable fragments (DASH,
                                     hlsnative and ISM)
--abort-on-unavailable-fragment      Abort downloading when some fragment is
                                     not available
--keep-fragments                     Keep downloaded fragments on disk after
                                     downloading is finished; fragments are
                                     erased by default
--buffer-size SIZE                   Size of download buffer (e.g. 1024 or
                                     16K) (default is 1024)
--no-resize-buffer                   Do not automatically adjust the buffer
                                     size. By default, the buffer size is
                                     automatically resized from an initial
                                     value of SIZE.
--http-chunk-size SIZE               Size of a chunk for chunk-based HTTP
                                     downloading (e.g. 10485760 or 10M)
                                     (default is disabled). May be useful
                                     for bypassing bandwidth throttling
                                     imposed by a webserver (experimental)
--playlist-reverse                   Download playlist videos in reverse
                                     order
--playlist-random                    Download playlist videos in random
                                     order
--xattr-set-filesize                 Set file xattribute ytdl.filesize with
                                     expected file size
--hls-prefer-native                  Use the native HLS downloader instead
                                     of ffmpeg
--hls-prefer-ffmpeg                  Use ffmpeg instead of the native HLS
                                     downloader
--hls-use-mpegts                     Use the mpegts container for HLS
                                     videos, allowing to play the video
                                     while downloading (some players may not
                                     be able to play it)
--external-downloader COMMAND        Use the specified external downloader.
                                     Currently supports aria2c,avconv,axel,c
                                     url,ffmpeg,httpie,wget
--external-downloader-args ARGS      Give these arguments to the external
                                     downloader

Filesystem Options:

-a, --batch-file FILE                File containing URLs to download ('-'
                                     for stdin), one URL per line. Lines
                                     starting with '#', ';' or ']' are
                                     considered as comments and ignored.
--id                                 Use only video ID in file name
-o, --output TEMPLATE                Output filename template, see the
                                     "OUTPUT TEMPLATE" for all the info
--output-na-placeholder PLACEHOLDER  Placeholder value for unavailable meta
                                     fields in output filename template
                                     (default is "NA")
--autonumber-start NUMBER            Specify the start value for
                                     %(autonumber)s (default is 1)
--restrict-filenames                 Restrict filenames to only ASCII
                                     characters, and avoid "&" and spaces in
                                     filenames
-w, --no-overwrites                  Do not overwrite files
-c, --continue                       Force resume of partially downloaded
                                     files. By default, youtube-dl will
                                     resume downloads if possible.
--no-continue                        Do not resume partially downloaded
                                     files (restart from beginning)
--no-part                            Do not use .part files - write directly
                                     into output file
--no-mtime                           Do not use the Last-modified header to
                                     set the file modification time
--write-description                  Write video description to a
                                     .description file
--write-info-json                    Write video metadata to a .info.json
                                     file
--write-annotations                  Write video annotations to a
                                     .annotations.xml file
--load-info-json FILE                JSON file containing the video
                                     information (created with the "--write-
                                     info-json" option)
--cookies FILE                       File to read cookies from and dump
                                     cookie jar in
--cache-dir DIR                      Location in the filesystem where
                                     youtube-dl can store some downloaded
                                     information permanently. By default
                                     $XDG_CACHE_HOME/youtube-dl or
                                     ~/.cache/youtube-dl . At the moment,
                                     only YouTube player files (for videos
                                     with obfuscated signatures) are cached,
                                     but that may change.
--no-cache-dir                       Disable filesystem caching
--rm-cache-dir                       Delete all filesystem cache files

Thumbnail images:

--write-thumbnail                    Write thumbnail image to disk
--write-all-thumbnails               Write all thumbnail image formats to
                                     disk
--list-thumbnails                    Simulate and list all available
                                     thumbnail formats

Verbosity / Simulation Options:

-q, --quiet                          Activate quiet mode
--no-warnings                        Ignore warnings
-s, --simulate                       Do not download the video and do not
                                     write anything to disk
--skip-download                      Do not download the video
-g, --get-url                        Simulate, quiet but print URL
-e, --get-title                      Simulate, quiet but print title
--get-id                             Simulate, quiet but print id
--get-thumbnail                      Simulate, quiet but print thumbnail URL
--get-description                    Simulate, quiet but print video
                                     description
--get-duration                       Simulate, quiet but print video length
--get-filename                       Simulate, quiet but print output
                                     filename
--get-format                         Simulate, quiet but print output format
-j, --dump-json                      Simulate, quiet but print JSON
                                     information. See the "OUTPUT TEMPLATE"
                                     for a description of available keys.
-J, --dump-single-json               Simulate, quiet but print JSON
                                     information for each command-line
                                     argument. If the URL refers to a
                                     playlist, dump the whole playlist
                                     information in a single line.
--print-json                         Be quiet and print the video
                                     information as JSON (video is still
                                     being downloaded).
--newline                            Output progress bar as new lines
--no-progress                        Do not print progress bar
--console-title                      Display progress in console titlebar
-v, --verbose                        Print various debugging information
--dump-pages                         Print downloaded pages encoded using
                                     base64 to debug problems (very verbose)
--write-pages                        Write downloaded intermediary pages to
                                     files in the current directory to debug
                                     problems
--print-traffic                      Display sent and read HTTP traffic
-C, --call-home                      Contact the youtube-dl server for
                                     debugging
--no-call-home                       Do NOT contact the youtube-dl server
                                     for debugging

Workarounds:

--encoding ENCODING                  Force the specified encoding
                                     (experimental)
--no-check-certificate               Suppress HTTPS certificate validation
--prefer-insecure                    Use an unencrypted connection to
                                     retrieve information about the video.
                                     (Currently supported only for YouTube)
--user-agent UA                      Specify a custom user agent
--referer URL                        Specify a custom referer, use if the
                                     video access is restricted to one
                                     domain
--add-header FIELD:VALUE             Specify a custom HTTP header and its
                                     value, separated by a colon ':'. You
                                     can use this option multiple times
--bidi-workaround                    Work around terminals that lack
                                     bidirectional text support. Requires
                                     bidiv or fribidi executable in PATH
--sleep-interval SECONDS             Number of seconds to sleep before each
                                     download when used alone or a lower
                                     bound of a range for randomized sleep
                                     before each download (minimum possible
                                     number of seconds to sleep) when used
                                     along with --max-sleep-interval.
--max-sleep-interval SECONDS         Upper bound of a range for randomized
                                     sleep before each download (maximum
                                     possible number of seconds to sleep).
                                     Must only be used along with --min-
                                     sleep-interval.

Video Format Options:

-f, --format FORMAT                  Video format code, see the "FORMAT
                                     SELECTION" for all the info
--all-formats                        Download all available video formats
--prefer-free-formats                Prefer free video formats unless a
                                     specific one is requested
-F, --list-formats                   List all available formats of requested
                                     videos
--youtube-skip-dash-manifest         Do not download the DASH manifests and
                                     related data on YouTube videos
--merge-output-format FORMAT         If a merge is required (e.g.
                                     bestvideo+bestaudio), output to given
                                     container format. One of mkv, mp4, ogg,
                                     webm, flv. Ignored if no merge is
                                     required

Subtitle Options:

--write-sub                          Write subtitle file
--write-auto-sub                     Write automatically generated subtitle
                                     file (YouTube only)
--all-subs                           Download all the available subtitles of
                                     the video
--list-subs                          List all available subtitles for the
                                     video
--sub-format FORMAT                  Subtitle format, accepts formats
                                     preference, for example: "srt" or
                                     "ass/srt/best"
--sub-lang LANGS                     Languages of the subtitles to download
                                     (optional) separated by commas, use
                                     --list-subs for available language tags

Authentication Options:

-u, --username USERNAME              Login with this account ID
-p, --password PASSWORD              Account password. If this option is
                                     left out, youtube-dl will ask
                                     interactively.
-2, --twofactor TWOFACTOR            Two-factor authentication code
-n, --netrc                          Use .netrc authentication data
--video-password PASSWORD            Video password (vimeo, youku)

Adobe Pass Options:

--ap-mso MSO                         Adobe Pass multiple-system operator (TV
                                     provider) identifier, use --ap-list-mso
                                     for a list of available MSOs
--ap-username USERNAME               Multiple-system operator account login
--ap-password PASSWORD               Multiple-system operator account
                                     password. If this option is left out,
                                     youtube-dl will ask interactively.
--ap-list-mso                        List all supported multiple-system
                                     operators

Post-processing Options:

-x, --extract-audio                  Convert video files to audio-only files
                                     (requires ffmpeg/avconv and
                                     ffprobe/avprobe)
--audio-format FORMAT                Specify audio format: "best", "aac",
                                     "flac", "mp3", "m4a", "opus", "vorbis",
                                     or "wav"; "best" by default; No effect
                                     without -x
--audio-quality QUALITY              Specify ffmpeg/avconv audio quality,
                                     insert a value between 0 (better) and 9
                                     (worse) for VBR or a specific bitrate
                                     like 128K (default 5)
--recode-video FORMAT                Encode the video to another format if
                                     necessary (currently supported:
                                     mp4|flv|ogg|webm|mkv|avi)
--postprocessor-args ARGS            Give these arguments to the
                                     postprocessor
-k, --keep-video                     Keep the video file on disk after the
                                     post-processing; the video is erased by
                                     default
--no-post-overwrites                 Do not overwrite post-processed files;
                                     the post-processed files are
                                     overwritten by default
--embed-subs                         Embed subtitles in the video (only for
                                     mp4, webm and mkv videos)
--embed-thumbnail                    Embed thumbnail in the audio as cover
                                     art
--add-metadata                       Write metadata to the video file
--metadata-from-title FORMAT         Parse additional metadata like song
                                     title / artist from the video title.
                                     The format syntax is the same as
                                     --output. Regular expression with named
                                     capture groups may also be used. The
                                     parsed parameters replace existing
                                     values. Example: --metadata-from-title
                                     "%(artist)s - %(title)s" matches a
                                     title like "Coldplay - Paradise".
                                     Example (regex): --metadata-from-title
                                     "(?P<artist>.+?) - (?P<title>.+)"
--xattrs                             Write metadata to the video file's
                                     xattrs (using dublin core and xdg
                                     standards)
--fixup POLICY                       Automatically correct known faults of
                                     the file. One of never (do nothing),
                                     warn (only emit a warning),
                                     detect_or_warn (the default; fix file
                                     if we can, warn otherwise)
--prefer-avconv                      Prefer avconv over ffmpeg for running
                                     the postprocessors
--prefer-ffmpeg                      Prefer ffmpeg over avconv for running
                                     the postprocessors (default)
--ffmpeg-location PATH               Location of the ffmpeg/avconv binary;
                                     either the path to the binary or its
                                     containing directory.
--exec CMD                           Execute a command on the file after
                                     downloading and post-processing,
                                     similar to find's -exec syntax.
                                     Example: --exec 'adb push {}
                                     /sdcard/Music/ && rm {}'
--convert-subs FORMAT                Convert the subtitles to other format
                                     (currently supported: srt|ass|vtt|lrc)

🎥 How to use FFmpeg

FFmpeg is a wonderful tool that can take almost any form of audio or video and convert it to almost any other form. It can downsample, upsample, transcode media, extract clips and do many more treatments edit that may be needed.

This blog post is an FFmpeg primer and contains a number of “receipes” that I have found most useful, and I hope you find them useful too.

Installation

The quickest way to to install ffmpeg is through Homebrew

brew install ffmpeg

How to get information from a video file

The following command will help to retrieve meta-information on a video file:

ffmpeg - i first.mkv

How to crop a video file

FFmpeg provides a crop filter for this specific purpose:

ffmpeg -i first.mkv -filter:v "crop=out_w:out_h:x:y" second.mp4

The options are as follows:

  • out_w is the width of the output rectangle
  • out_h is the height of the output rectangle
  • x and y specify the top left corner of the output rectangle
  • second.mp4 is the output file

Say, we download a video from YouTube and we need to remove the small black bars on the left and right sides of the video. We know we need to take off about 10 pixels total; 5 on both the left and right sides. We can do so by using the following video filter:

ffmpeg -i .mp4 -vf "crop=in_w-10:in_h" cropped.mp4

The crop parameter to the -vf (video filter) parameter indicates what the resolution of the width and then height of the output video should be. We use the in_w and in_h macros to indicate the source width and height; then we subtract 10 from the width.

Trimming a video clip

How to take a clip from a video from 00:50:22 through to 00:52:22

ffmpeg -ss 00:50:22 -i mymovie.mkv -c copy -to 00:02:00 mymovie-clip.mp4

How to remove ads from a video and split the video into multiple parts

In the example below, the source file is first.mp4 and it will be split into two parts. The first ending at 4 minutes from the start and the second starting at 5 minutes to the end. Note, this is done quickly as the file is not re-encoded.

ffmpeg -i first.mp4 -t 04:00 -c copy part-1.mp4 -ss 05:00 -codec copy part-2.mp4

How to join two or more video files together

To combine two or more files together, you will need to create a text file and list the files that you want to join together. In the example below, the file is called combine.txt. Add the files in the text file as below.

file 'part1.mp4' 
file 'part2.mp4' 
file 'part3.mp4'
ffmpeg -f concat -i combine.txt -c copy newoutput.mp4

How to re-encode one video format into another

ffmpeg -i firstmovie.mkv secondmovie.mp4

The -i parameter is used to specify the input file to FFmpeg.

How to change one video format into another without re-encoding

ffmpeg -i firstmovie.mov -vcodec copy -acodec copy secondmovie.mp4

How to extract audio from a video file

ffmpeg -i first.mkv second.mp3

How to extract audio from a video file with a variable bit rate

ffmpeg -i input.mkv -codec:a libmp3lame -qscale:a 2 output.mp3

How to extract audio from a video file and encode into FLAC

ffmpeg -i audio.xxx -c:a flac audio.flac

How to convert a FLAC file into ALAC with no audio compression loss

ffmpeg -i audio.flac -vn -acodec alac audio.m4a

Codecs

FFmpeg supports litterally hundreds of parameters and options. Very often, FFmpeg infers the parameters from the context, for example the input or output format from the file extention and it also applies default values to unspecified parameters. Sometimes it is instead necessary to specify some important parameters to avoid errors or to optimize the encoding.

Let’s start with a selection of the most important, not codec related, parameters:

-formats print the list of supported file formats
-codecs print the list of supported codecs (E=encode,D=decode)
-i set the input file. Multiple -i switchs can be used
-f set video format (for the input if before of -i, for output otherwise)
-an ignore audio
-vn ignore video
-ar set audio rate (in Hz)
-ac set the number of channels
-ab set audio bitrate
-acodec choose audio codec or use “copy” to bypass audio encoding
-vcodec choose video codec or use “copy” to bypass video encoding
-r video fps. You can also use fractional values like 30000/1001 instead of 29.97
-s frame size (w x h, ie: 320x240)
-aspect set the aspect ratio i.e: 4:3 or 16:9
-sameq ffmpeg tries to keep the visual quality of the input
-t N encode only N seconds of video (you can use also the hh:mm:ss.ddd format)
-croptop, -cropleft, -cropright, -cropbottom crop input video frame on each side
-y automatic overwrite of the output file
-ss select the starting time in the source file
-vol change the volume of the audio
-g Gop size (distance between keyframes)
-b Video bitrate
-bt Video bitrate tolerance
-metadata add a key=value metadata

The syntax of some commands have changed. Commands like -b (is the bitrate related to audio or video?) have now a different syntax:

Use:

	-b:a instead of -ab to set audio bitrate
	-b:v instead of -b to set video bitrate
	-codec:a or -c:a instead of -acodec
	-codec:v or -c:v instead of -vcodec

👋 How to create a bootable USB install drive for macOS

You’ll want a USB drive with at least 12GB of storage, but having more storage is never a bad thing. I recommend this SanDisk Ultra Dual Drive USB Type-C Flash Drive. It’s affordable, and comes with both a USB-C connection and a traditional USB-A connection. This is the drive that I’ve been using and my experience with it has been great.

Make sure that there’s nothing contained on the drive that you need, because this process will completely delete the contents of the drive.

Step 1: Download: macOS Big SurmacOS CatalinamacOS Mojave, or macOS High Sierra 

The will download to your Applications folder as an app named Install macOS [version name]. If the installer opens after downloading, quit it without continuing installation. To get the correct installer, download from a Mac that is using macOS Sierra 10.12.5 or later, or El Capitan 10.11.6. If required, click to download OS X El Capitan.

This downloads as a disk image named InstallMacOSX.dmg. On a Mac that is compatible with El Capitan, open the disk image and run the installer within, named InstallMacOSX.pkg. It installs an app named Install OS X El Capitan into your Applications folder. You will create the bootable installer from this app, not from the disk image or .pkg installer.

Step 2: Copy and paste text for the OS version that you want to create.

Big Sur:*

sudo /Applications/Install\ macOS\ Big\ Sur.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume

Catalina:*

sudo /Applications/Install\ macOS\ Catalina.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume

Mojave:*

sudo /Applications/Install\ macOS\ Mojave.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume

High Sierra:*

sudo /Applications/Install\ macOS\ High\ Sierra.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume

El Capitan:

sudo /Applications/Install\ OS\ X\ El\ Capitan.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume --applicationpath /Applications/Install\ OS\ X\ El\ Capitan.app

* If your Mac is using macOS Sierra or earlier, include the --applicationpath argument and installer path, similar to the way this is done in the command for El Capitan.

🚀 How to be more productive with Google Chrome on the Mac

Learning keyboard shortcuts for Google Chrome can increase your productivity. While we are trained to use the touchpad and mouse to make our web navigation easier, learning a few keyboard shortcuts can make your web experience better and faster.

The following list is a primer for all of the keyboard shortcuts for Google Chome on macOS. I hope you find a few of these shortcuts useful.

Tab and window shortcuts

Action Shortcut
Open a new window ⌘ + n
Open a new window in Incognito mode ⌘ + Shift + n
Open a new tab, and jump to it ⌘ + t
Reopen the last closed tab, and jump to it ⌘ + Shift + t
Jump to the next open tab ⌘ + Option + Right arrow
Jump to the previous open tab ⌘ + Option + Left arrow
Jump to a specific tab ⌘ + 1 through ⌘ + 8
Jump to the last tab ⌘ + 9
Open the previous page in your browsing history for the current tab ⌘ + [ or ⌘ + Left arrow
Open the next page in your browsing history for the current tab ⌘ + ] or ⌘ + Right arrow
Closes the current tab or pop-up ⌘ + w
Closes the current window ⌘ + Shift + w
Minimize the window ⌘ + m
Hide Google Chrome ⌘ + h
Quit Google Chrome ⌘ + q

Google Chrome feature shortcuts

Action Shortcut
Show or hide the Bookmarks Bar ⌘ + Shift + b
Open the Bookmark Manager ⌘ + Option + b
Open the Settings page in a new tab ⌘ + ,
Open the History page in a new tab ⌘ + y
Open the Downloads page in a new tab ⌘ + Shift + j
Open the Find Bar to search the current page ⌘ + f
Jump to the next match to your Find Bar search ⌘ + g
Jump to the previous match to your Find Bar search ⌘ + Shift + g
When Find Bar is open, search for selected text ⌘ + e
Open Developer Tools ⌘ + Option + i
Open the Clear Browsing Data options ⌘ + Shift + Delete
Log in as a different user or browse as a Guest ⌘ + Shift + m

Address bar shortcuts

Use the following shortcuts in the address bar:

Action Shortcut
Search with your default search engine Type a search term + Enter
Search using a different search engine Type a search engine name + Tab
Add www. and .com to a site name, and open it in the current tab Type a site name + Control + Enter
Add www. and .com to a site name, and open it in a new tab Type a site name + Control + Shift + Enter
Open the website in a new background tab Type a web address + ⌘ + Enter
Jump to the address bar ⌘ + l
Remove predictions from your address bar Down arrow to highlight + Shift + fn + Delete

Webpage shortcuts

Action Shortcut
Open options to print the current page ⌘ + p
Open options to save the current page ⌘ + s
Open the Page Setup dialog ⌘ + Option + p
Email your current page ⌘ + Shift + i
Reload your current page ⌘ + r
Reload your current page, ignoring cached content ⌘ + Shift + r
Stop the page loading Esc
Browse clickable items moving forward Tab
Browse clickable items moving backward Shift + Tab
Open a file from your computer in Google Chrome ⌘ + o + Select a file
Display non-editable HTML source code for the current page ⌘ + Option + u
Open the JavaScript Console ⌘ + Option + j
Save your current webpage as a bookmark ⌘ + d
Save all open tabs as bookmarks in a new folder ⌘ + Shift + d
Turn full-screen mode on or off ⌘ + Ctrl + f
Make everything on the page bigger ⌘ and +
Make everything on the page smaller ⌘ and –
Return everything on the page to the default size ⌘ + 0
Scroll down a webpage, a screen at a time Space
Scroll up a webpage, a screen at a time Shift + Space
Search the web ⌘ + Option + f
Move your cursor to the front of the previous word in a text field Option + Left arrow
Move your cursor to the back of the next word in a text field Option + Right arrow
Delete the previous word in a text field Option + Delete
Open your home page in the current tab ⌘ + Shift + h

Mouse shortcuts

The following shortcuts require you to use your mouse:

Action Shortcut
Open a link in a current tab (mouse only) Drag a link to a tab
Open a link in new background tab ⌘ + Click a link
Open a link, and jump to it ⌘ + Shift + Click a link
Open a link, and jump to it (mouse only) Drag a link to a blank area of the tab strip
Open a link in a new window Shift + Click a link
Open a tab in a new window (mouse only) Drag the tab out of the tab strip
Move a tab to a current window (mouse only) Drag the tab into an existing window
Return a tab to its original position Press Esc while dragging
Save the current webpage as a bookmark Drag the web address to the Bookmarks Bar
Download the target of a link Option + Click a link
Display your browsing history Right-click Back Back or Next Next, or click & hold Back Back or Next Next
Increase the window to full height Double-click a blank area of the tab strip

 How to fix macOS

This blog post focuses on a number of tips and tweaks that will help to make your macOS experience better, faster, and more efficient.

How to update macOS from Terminal

Open the Terminal and type in the following:

sudo softwareupdate -ia

How to ensure macOS checks for new software updates daily

Within the Terminal type the following:

defaults write com.apple.SoftwareUpdate ScheduleFrequency -int 1

How to copy text from a website and paste it quickly into a text file

Head to the Keyboard section within System Preferences and highlight the Services section. Next, in the secondary panel scroll down you see “New TextEdit…..”. From there add your shortcut keyboard combination.
Next, copy text from a website and use your new shortcut keyboard combination. The copied text will automatically be pasted into TextEdit

 
 How to add emojis in your documents quickly

Within macOS, select your text-based application and then type the following key combination:

Command + Control + Space

This will launch the emoji selector.

How to add a quit option to the Finder

To add a quit option to the Finder, add the following command to the Terminal

defaults write com.apple.finder QuitMenuItem -bool YES

Now type killall Finder into the Terminal window

How to stop macOS from indexing the Applications folder

To turn off Spotlight, open the Terminal and type the following:

sudo mdutil -a -i off

To unload it, type the following into the Terminal

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist

To load It, type the following into the Terminal

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist

To turn on Spotlight, type the following into the Terminal

sudo mdutil -a -i on

How to quickly see your IP address and other Wi-Fi networking information

In macOS, hold down Alt (or the Option key on some keyboards) and click the Wi-Fi icon at the top right of the screen. Beneath the name of the currently in-use Wi-Fi base station you will see the networking information and also a disconnect option.

How to force quit an app in macOS

Type the following:

Click Option, Command, and Escape

How to change the location of your screenshot images

Within the Terminal type the following:

defaults write com.apple.screencapture location ~/Dropbox/Screenshots

Where ~/Dropbox/Screenshots is the location where you want the screenshots folder to live.
Now type killall Dock into the Terminal window

How to disable screenshot drop shadows

Within the Terminal type the following:

defaults write com.apple.screencapture disable-shadow -bool TRUE

Now type killall SystemUIServer into the Terminal window

How to shutdown your Mac, with or without a delay

To shut down your Mac immediately:
Type the following into the Terminal:

sudo shutdown -h now

To restart your Mac immediately:

sudo shutdown -r now

We can even add a time delay (in minutes) if we wish:

sudo shutdown -r +60

How to make your Mac talk

Within the Terminal type the following:

say "Hello world"

We can even go one better and have it read any text file we like:

say -f /path/to/file.txt

Your Mac can then say whatever was in the text file.

How to change the default filetype for screenshot images

Within the Terminal type the following:

defaults write com.apple.screencapture type jpg

Now type killall SystemUIServer into the Terminal window

How to add your most recent used applications into the dock

Open Terminal and copy the following command:

defaults write com.apple.dock persistent-others -array-add '{ "tile-data" = { "list-type" = 1; }; "tile-type" = "recents-tile"; }'

Now type killall Dock into the Terminal window

How to show the full file path in Finder

To easily find the hierarchy of folders, you can easily find the full path by adding this tweak to the Terminal.
Open Terminal

defaults write com.apple.finder _FXShowPosixPathInTitle -bool YES

Now type killall Finder into the Terminal window
If you need to change it back, change “YES” to “NO” (without the quotes).

How to add spacers into the dock

If you need a way to organize your dock icons, the following command will allow you to insert a spacer into your dock that you can move around and place anywhere to divide your apps up by category.
Within the Terminal type the following:

defaults write com.apple.dock persistent-apps -array-add '{tile-data={}; tile-type="spacer-tile";}'

Now type killall Dock into the Terminal window
To add more spaces, add the command into the terminal again. If you want to remove the spaces just drag them out of the dock.

How to make hidden apps “hidden” in the dock

If you use ⌘H to hide apps on screen with this tweak, you’ll be able to add transparency to all of your hidden apps so you don’t forget they’re running in the background
Within the Terminal type the following:

defaults write com.apple.Dock showhidden -bool TRUE;

Now type killall Dock into the Terminal window
If you need to change it back, change “YES” to “NO” (without the quotes).

How to eliminate the dock reveal delay

If you need to speed up the dock when you have it hidden, this tweak will speed it up.
For faster animation, within the Terminal type the following:

defaults write com.apple.dock autohide-time-modifier -float 0.12;

Now type killall Dock into the Terminal window
For no animation, within the Terminal type the following:

defaults write com.apple.dock autohide-time-modifier -int 0;

Now type killall Dock into the Terminal window
To go back to the defaults, within the Terminal type the following:

defaults delete com.apple.dock autohide-time-modifier;

Now type killall Dock into the Terminal window

⚙️ How to quickly access Google Chrome settings

Google Chrome is highly customizable, allowing you to fine-tune the browser through hundreds of settings that affect virtually everything ranging from the application’s appearance to its security-related features. While many of these tweaks can be made through the interface’s graphical menu buttons and links, Chrome command settings let you really get under the hood and take full control of your browser.

These commands, entered into Chrome’s address bar (also known as the Omnibox), not only provide shortcuts to settings accessible through the browser menus but also access to advanced options which are only available via this method. Below are some of the most useful Chrome commands along with a brief description of each.

As always, it is best to use caution when modifying your browser’s settings. If you are unsure about a particular component or feature, it may be best to leave it as is.

How to change Chrome’s default search engine

Type the following in the address bar:

chrome://settings/searchEngines

How to delete your browsing history, download history, cache, cookies and saved passwords

Type the following in the address bar:

Opens the Search engines pop-out interface, which allows you to change the browser’s default search engine, edit individual search strings and remove engines that are currently installed.

chrome://settings/clearBrowserData

Opens the Clear browsing data dialog, which allows you to delete browsing history, download history, cache, cookies, saved passwords, other browsing data.

chrome://settings/autofill

Opens the Autofill settings pop-out window, which displays all street addresses and credit cards currently stored by Chrome for autocomplete purposes. Within this interface, you can view, edit or remove existing autofill data as well as manually add new entries.

chrome://downloads

Displays Chrome’s download history which contains icons, filenames, and URLs associated with each file within the log. Alongside each file are links to delete the entry from the download list as well as open the folder where it is located.

chrome://extensions

Displays all browser extensions currently installed including name, icon, size, version number, and permissions data for each. You can toggle extensions off and on as well as instruct Chrome whether or not to allow each to run while the browser is in Incognito Mode.

chrome://bookmarks

Opens the Bookmark Manager, which displays all of your stored Web pages organized by folder and title. You can add, edit or remove bookmarks on this screen as well as import and export them via HTML files.

chrome://history

Displays your browsing history, categorized by date and searchable via this screen. Also provided is the ability to remove individual items from this log as well as access to the Clear Browsing Data interface.

chrome://memory

Provides both private and proportional memory metrics for Chrome, broken down by extensions, tabs, plugins, and other related processes.

chrome://dns

When you click on a link, DNS resolution takes place which can slow down the page load process. DNS prefetching resolves embedded links in advance so that things move faster if and when you eventually click on one. This Chrome command displays prefetching information including hostname, page load count, and the time of last resolution.

chrome://cache

Displays links to all files currently residing in the browser’s cache. Clicking on one of these links displays detailed information about the file itself including the dates it was initially stored and last updated.

chrome://chrome

Displays version information of your browser as well as firmware and platform details on Chrome OS. You can also check for and install Chrome updates from this screen.

chrome://crashes

Displays detailed information about recent crashes of the browser. This command only works as expected if crash reporting is enabled in Chrome, which can be done through its Privacy settings.

chrome://gpu

Provides a wealth of information about your system’s graphics card(s) and settings including driver specifications, hardware acceleration data, and workarounds for conflicts and other related problems detected by Chrome.

chrome://histograms

Displays dozens of in-depth visual interpretations of browser statistics accumulated from the time you launched Chrome to the most recent page load.

chrome://keyboardoverlay

Displays a graphical representation of a keyboard, which shows which keys are mapped to various keyboard shortcuts by hitting the Alt, Ctrl and Shift keys.

chrome://network

(Chrome OS only) Displays detailed information about the current network you are connected to as well as others that are in range and those you have accessed the most in previous sessions.

chrome://system

Displays comprehensive system diagnostic data, including details about your operating system, BIOS, and various hardware components. The amount of data available is dependent on your particular operating system.

chrome://thumbnails

Displays thumbnail preview images, when available, and URLs of the websites that you visit the most.

chrome://flags

Allows you to enable/disable dozens of experimental features, some of which are platform-specific. Each feature set includes a brief description as well as a link to toggle it on and off. The keyword here is experimental, and it is highly recommended that only advanced users tamper with these settings.

chrome://net-internals

Allows you to view all networking events captured by Chrome in real-time, as well as export all relevant data to a file.

chrome://quota-internals

Provides details on the amount of disk space allotted for and currently being used by Chrome, including how much each individual site is occupying in the browser’s cache.

chrome://voicesearch

Displays current details about Chrome’s Voice Search feature including language settings, microphone status and much more.

How to see all the Chrome commands

Type the following in the address bar:

chrome://about/ or chrome://chrome-urls/

How to access Chrome settings

Type the following into your address bar:

chrome://settings/

How to check your version of Chrome

Type the following in the address bar:

chrome://chrome/

Chrome Version and Update Check Command
Enter “chrome://chrome” to reach the “About” page of the Chrome browser. Basically you can check out the latest version of your Chrome and update it if it is not up to date. Chrome version also can be checked using URL “chrome://version“.

How to check your browsing history

Type the following in the address bar:

chrome://history

How to view all of your installed extensions

Type the following in the address bar:

chrome://extensions

How to check flags for experimental Chrome features

Type the following in the address bar:

chrome://flags

How to view your saved bookmarks

Type the following in the address bar:

chrome://bookmarks

How to view Chrome crash reports

Type the following in the address bar:

chrome://crashes

How to view Chrome DNS Prefetch

Type the following in the address bar:

chrome://DNS

How to view your HTTP Cache Files

Type the following in the address bar:

chrome://view-http-cache

Google Chrome has a powerful caching mechanism to load pages faster on subsequent viewing of pages from the same website. Though this feature is useful for general users, it may be annoying for web developers as the changes will not be reflected immediately. Using this command URL, you can view the files cached on the browser. Also you can click on the file link to see the HTTP header status like how long the cache is valid.
View HTTP Cache Status in Chrome
View HTTP Cache Status in Chrome
10. View Site’s Thumbnail
Syntax: chrome://thumbnails
When you open Chrome, the home page contains the thumbnails of the latest visited websites. Using this URL command you can view the list of top sites having thumbnail shortcut in youår browser. Also you can right click on the image and download to your computer. So this is one of the easy ways to generate thumbnails for the websites.

For Debug

The following pages are for debugging purposes only. Because they crash or hang the renderer, they’re not linked directly; you can type them into the address bar if you need them.

  • chrome://badcastcrash/
  • chrome://inducebrowsercrashforrealz/
  • chrome://crash/
  • chrome://crashdump/
  • chrome://kill/
  • chrome://hang/
  • chrome://shorthang/
  • chrome://gpuclean/
  • chrome://gpucrash/
  • chrome://gpuhang/
  • chrome://memory-exhaust/
  • chrome://ppapiflashcrash/
  • chrome://ppapiflashhang/
  • chrome://quit/
  • chrome://restart/

📀 Reinstalling apps on macOS

On occasion, I reinstall macOS on various Apple Macintosh computers. As such, remembering to install all of my apps and settings can become a pain. This post covers all of the steps I follow after I’ve formatted my Mac and reinstalled macOS. A hat tip to Casey Liss, whose blog post inspired this one. These are the apps that I install after I have reinstalled macOS.

macOS Settings

  • Change the computer’s name in System Preferences > Sharing
  • Enable FileVault
  • Make sure messages originate from my mobile phone number

If you are selling your Apple Macintosh computer.

✍️What are the shortcuts for Notion?

Here is a list of the most popular Notion shortcuts:

  • Press cmd/ctrl + n to create a new page (desktop apps only).
  • Press cmd/ctrl + shift + n or use cmd/ctrl + click to open a new Notion window.
  • Press cmd/ctrl + p to open search or jump to a recently viewed page.
  • Press cmd/ctrl + [ to go back a page.
  • Press cmd/ctrl + ] to go forward a page.
  • Press cmd/ctrl + shift + l to switch to Dark Mode (That’s an L not a 1).

Tip: You can add any emoji in-line on a Notion page by typing : followed by the name of the emoji, like :apple for 🍎 or :clapping for 👏

You can also bring up your computer’s emoji picker with the shortcut ctrl + cmd + space on Mac and windows key + . or windows key + ; on Windows.

Markdown style

  • Type ** on either side of your text to bold.
  • Type * on either side of your text to italicize.
  • Type “` on either side of your text to create inline code. (That’s the symbol to the left of your 1 key.)
  • Type ~ on either side of your text to strikethrough.

At the beginning of any new line or existing block of content, try these:

  • Type *, -, or + followed by space to create a bulleted list.
  • Type [] to create a to-do checkbox. (There’s no space in between.)
  • Type 1. followed by space to create a numbered list.
  • Type # followed by space to create an H1 heading.
  • Type ## followed by space to create an H2 sub-heading.
  • Type ### followed by space to create an H3 sub-heading.
  • Type > followed by space to create a toggle list.
  • Type " followed by space to create a quote block.

Create & style your content

  • Press enter to insert a line of text.
  • Press shift + enter to create a line break within a block of text.
  • Press cmd/ctrl + shift + m to create a comment.
  • Type --- to create a divider. (Three dashes in a row.)
  • With text selected, press cmd/ctrl + b to bold text.
  • With text selected, press cmd/ctrl + i to italicize text.
  • With text selected, press cmd/ctrl + u to underline text.
  • With text selected, press cmd/ctrl + shift + s for strikethrough.
  • With text selected, press cmd/ctrl + k to add a link. You can also paste a URL over selected text to turn it into a link using cmd/ctrl+v.
  • With text selected, press cmd/ctrl + e for inline code.
  • Press tab to indent. Note: Whenever you indent, you’re nesting that block inside the block above it. If you select the parent, everything under it will also be selected. For example:
    • Block 1 ← Parent block
      • Block 2 ← Nested block inside block 1
  • Press shift + tab to un-indent.
  • Type /turn at the beginning or end of a block to turn it into a different type of block. You’ll see a list of choices pop up. For example, here’s how you’d turn a line of text into a heading and then into a to-do:
  • Type /color at the beginning or end of any text block to change its color or highlight color. (To remove a color or highlight, just type /default.) Example: /blue, /blue background

For all of these content creation shortcuts, cmd + option is the combination for Mac, and ctrl + shift is the combination for Windows and Linux:

  • Press cmd/ctrl + option/shift + 0 to create text.
  • Press cmd/ctrl + option/shift + 1 to create an H1 heading.
  • Press cmd/ctrl + option/shift + 2 to create an H2 heading.
  • Press cmd/ctrl + option/shift + 3 to create an H3 heading.
  • Press cmd/ctrl + option/shift + 4 to create a to-do checkbox.
  • Press cmd/ctrl + option/shift + 5 to create a bulleted list.
  • Press cmd/ctrl + option/shift + 6 to create a numbered list.
  • Press cmd/ctrl + option/shift + 7 to create a toggle list.
  • Press cmd/ctrl + option/shift + 8 to create a code block – which looks like this:
<b>Any kind of code can go here and be copied to your clipboard!</b>
  • Press cmd/ctrl + option/shift + 9 to create a new page, or turn whatever you have on a line into a page.
  • Press cmd/ctrl + + to zoom in.
  • Press cmd/ctrl + - to zoom out.
  • Press cmd/ctrl + shift + u to go up one level in the page hierarchy.
  • Duplicate any content on a Notion page by holding down option/alt as you drag and drop:

Edit & move blocks

Everything in Notion is a block — from a line of type (or paragraph) to an image or embed. These shortcuts let you edit whole blocks once they’re selected.

  • Press esc to select the block you’re currently in. Or to clear selected blocks.
  • Press cmd/ctrl + a once to select the block your cursor is in.
  • Press space to open a selected image in full-screen. Or to exit full-screen.
  • Press arrow keys to select a different block.
  • Hold down shift + up/down arrow keys to expand your selection up or down.
  • Use cmd + shift + click on Mac, and alt + shift + click on Windows/Linux to select or de-select an entire block.
  • Use shift + click to select another block and all blocks in between.
  • Press backspace or delete to delete selected blocks.
  • Press cmd/ctrl + d to duplicate the blocks you’ve selected.
  • Press enter to edit any text inside a selected block (or open a page inside a page).
  • Press cmd/ctrl + / to edit or change one or more selected blocks.
    • Use this shortcut to change the type of block, the color, or to edit, duplicate, or move the block. You’ll see a text box at the top of the menu that pops up. Just type the action, block or color you want:
  • In board view, select multiple cards then use cmd/ctrl + / to edit them all at once. Example: Here’s how you’d change the status of several tasks at a time.
  • Hold cmd/ctrl + shift + arrow keys to move a selected block around.
  • Press cmd/ctrl + option/alt + t to expand or close all toggles in a toggle list.
  • Press cmd/ctrl + shift + h to apply the last text or highlight color you used.
  • Press cmd/ctrl + enter to modify the current block you’re in. Modify means:
    • Open a page
    • Check or uncheck a to-do checkbox
    • Open or close a toggle list item
    • Make embeds or images full-screen

@ commands

  • Mention a person – Type @ and another workspace member’s name to get their attention on something. They’ll be notified. Useful in comments and discussions.
  • Mention a page – Type @ and the name of another page in your workspace to create a link to it. If you change the name of the page, this link will automatically change too.
  • Mention a date Type @ and a date in any format (or “yesterday,” “today” or “tomorrow,” or even “next Wednesday”). Helpful for giving yourself due dates.
  • Add a reminder – Type @remind followed by a date in any format (including “yesterday,” “today,” “tomorrow,” etc.). You can click on the link that appears to adjust the date and exact time you want to be reminded. You’ll receive a notification at that time. More on reminders here →
  • Hit esc to dismiss the @-command menu if you simply want to type @.

[[ commands

  • Link a page – Type [[ and the name of another page in your workspace to create a link to it. If you change the name of the page, this link will automatically change too.
  • Create a sub-page – Type [[ and the name of the sub-page you want to nest within your current page. Use your cursor or arrow keys to select + Add new sub-page in the dropdown that appears.
  • Create a new page somewhere else – Type [[ and the name of the page you want to create. Use your cursor or arrow keys to select ↗ Add new page in... in the dropdown that appears, then select the page or database where you’d like that page to be added.

+ commands

  • Create a sub-page – Type + and the name of the sub-page you want to nest within your current page. Use your cursor or arrow keys to select + Add new sub-page in the dropdown that appears.
  • Create a new page somewhere else – Type + and the name of the page you want to create. Use your cursor or arrow keys to select ↗ Add new page in... in the dropdown that appears, then select the page or database where you’d like that page to be added.
  • Link a page – Type + and the name of another page in your workspace to create a link to it. If you change the name of the page, this link will automatically change too.

Tip: When you use [[, the dropdown menu will show page linking options first. When you use +, the dropdown menu will show page creation options first.

Slash commands

Pressing / in Notion brings up a full menu of content blocks you can choose to insert. You can shortcut this further by pressing / and then typing what you want. Here are your choices:

Basic

  • /text or /plain creates a new text block.
  • /page creates a new page (and will open it automatically when you press enter).
  • /bullet creates a bulleted list.
  • /num creates a numbered list.
  • /todo creates a to-do list with checkboxes.
  • /toggle creates a toggle list.
  • /div creates a light gray divider.
  • /quote creates a quote block of larger text.
  • /h1 or /# creates a large heading.
  • /h2 or /## creates a medium-sized heading.
  • /h3 or /### creates a small heading.
  • /link creates a link to another page in your workspace.
  • esc clears the / menu. Handy if you’re just trying to use a / in your writing.

Inline

  • /mention lets you mention a page or a person in your workspace
  • /date or /reminder lets you add a timestamp or reminder to your page
  • /equation lets you add a TeX formula in line with your text
  • /emoji brings up the emoji picker

Database

  • /table-inline creates a database table inside a current page.
  • /board-inline creates a Kanban board inside a current page.
  • /calendar-inline creates a calendar inside a current page.
  • /list-inline creates a list-style database inside a current page.
  • /gallery-inline creates a gallery inside a current page.
  • /timeline-inline creates a timeline inside a current page.
  • Any of the above can also be created with -full instead of -inline to open that type of database view in its own page automatically. For example: /table-full, /board-full
  • /linked creates a linked database — a copy of an existing database that you can insert into any page in-line and filter or view however you want. Helpful for creating multiple excerpts from the same database on the same page.

Media

  • /image will bring up the option to upload or embed an image, or add one from Unsplash.
  • /pdf lets you paste in a URL to any PDF so it will display in-line on your page.
  • /book lets you paste in a URL to any website to create a web bookmark. Like this:
  • /video lets you upload a video file or embed a video from YouTube, Vimeo, etc.
  • /audio lets you upload an audio file or embed a recording from SoundCloud, Spotify, etc.
  • /code creates a code block where you can write and copy any snippet of code.
  • /file lets you upload any file from your computer or create an embed.
  • /embed lets you add any one of the 500+ embeds that work with Notion. Learn more about embeds here.

Advanced

  • /comment lets you create a comment on any block.
  • /duplicate creates an exact copy of the current block.
  • /moveto lets you move that block to a different page.
  • /delete deletes the current block.
  • /toc creates a Table of Contents block.
  • /button or /template gives you a template button that duplicates any combination of blocks you define. Here’s a guide on template buttons →
  • /bread inserts a breadcrumb menu that shows where your current page is in your workspace.
  • /math or /latex lets you write mathematical equations and symbols using TeX.

🎬 How to watch YouTube videos in fullscreen

Have you ever wanted to watch YouTube videos in full screen, HD quality? Well, this simple URL tweak allows for any YouTube video to be displayed in fullscreen, HD (if available), and in autoplay mode.

Follow the steps below:

  1. Take your existing YouTube URL, for example: http://www.youtube.com/watch?v=jiyIcz7wUH0
  2. Replace /watch?v=  with /embed/ to enable the full screen mode
  3. For HD, add ?hd=1
  4. To autoplay the video, add ?&autoplay=1 to the URL
  5. Your new YouTube URL, should now look like this: http://www.youtube.com/embed/jiyIcz7wUH0?hd=1?&autoplay=1
  6. To start the video at a certain time, add &start=90 (for example to start the video 90 seconds in

Note, to add a start time to a regular video the string is different, see below:
http://www.youtube.com/watch?v=jiyIcz7wUH0&t=1m5s