Things I Use

Here's the tools I use day to day to be productive.

Visual Studio Code & GitHub Codespaces

  • I use Vesper which is a beautiful dark, peppermint, and orange color theme for the editor, the very minimal Chalice Icon Theme, and Vercel's Geist Mono Light Font.
  • I keep my extension set quite light:
    • Toggle along with a keybinding to toggle between a small and large font size so I can increase quickly in calls/recordings.
    • Live Share for collaborating with others.
    • Code Spell Checker as I often author content in my editor.
    • Prettier for formatting code on paste/save.
    • Duplicate action which allows you to easily duplicate files and folders.
Code editor with a terminal explorer on the right-hand side and copilot on the left.

I keep my layout minimal, toggling UI elements with keybindings. The primary sidebar on the right includes explorer, search, source control, extensions, and live share panes. The terminal is also on the right. The secondary sidebar has GitHub Copilot Chat, Copilot Edits, and Comments, both sidebars being toggled with keybindings. I mix folders/files alphabetically in the explorer and disable tooltips, breadcrumbs, multiple tabs, and the minimap.

See User Settings
{
    /**
     * Theme
     **/
    "editor.fontFamily": "Geist Mono Light",
    "workbench.colorTheme": "Vesper",
    "workbench.iconTheme": "chalice-icon-theme",
    "editor.fontSize": 12,
    "editor.lineHeight": 0,
    "editor.suggestFontSize": 15,
    "editor.suggestLineHeight": 28,
    "terminal.integrated.fontSize": 12,
    "terminal.integrated.lineHeight": 1.5,
    "editor.fontLigatures": true,
    "editor.wordWrap": "on",
    "window.titleSeparator": " → ",
    "editor.cursorSmoothCaretAnimation": "on",

    /**
     * Layout
     **/
    "workbench.sideBar.location": "right",
    "workbench.panel.defaultLocation": "right",
    "editor.minimap.enabled": false,
    "workbench.editor.showTabs": "single",
    "workbench.navigationControl.enabled": false,
    "window.commandCenter": false,
    "workbench.layoutControl.enabled": false,

    "workbench.statusBar.visible": false,
    "workbench.activityBar.location": "top",

    /**
     * Explorer
     **/
    "explorer.sortOrder": "mixed",

    /**
     * Silence The Noise
     **/
    "breadcrumbs.enabled": false,
    "editor.hover.enabled": false,
    "extensions.ignoreRecommendations": true,
    "workbench.startupEditor": "none",
    "workbench.tips.enabled": false,
    "editor.colorDecorators": false,
    "git.decorations.enabled": false,
    "editor.selectionHighlight": false,
    "editor.overviewRulerBorder": false,
    "editor.renderLineHighlight": "all",
    "editor.occurrencesHighlight": "off",
    "problems.decorations.enabled": true,
    "editor.renderControlCharacters": false,
    "security.workspace.trust.untrustedFiles": "open",

    /**
     * Editor
     **/
    "editor.detectIndentation": true,
    "editor.lightbulb.enabled": "on",
    "editor.autoIndent": "full",
    "editor.bracketPairColorization.enabled": true,
    "editor.lineNumbers": "on",
    "editor.guides.indentation": true,
    "editor.stickyScroll.enabled": true,

    /**
     * Search
     **/
    "search.useIgnoreFiles": false,
    "search.exclude": {
        "**/node_modules": true,
        "**/dist": true,
        "**/package-lock.json": true,
        "**/.db": true,
        "**/build": true,
        "**/.output": true,
        "**/.build": true,
        "**/.nuxt": true
    },

    /**
     * Source Control
     **/
    "diffEditor.ignoreTrimWhitespace": false,
    "git.enableSmartCommit": true,

    /**
     * Code Formatting
     **/
    "prettier.arrowParens": "avoid",
    "prettier.tabWidth": 2,
    "editor.tabSize": 2,
    "prettier.semi": false,
    "prettier.singleQuote": true,
    "prettier.trailingComma": "es5",
    "prettier.printWidth": 120,
    "editor.formatOnSave": true,
    "editor.formatOnPaste": true,
    "prettier.bracketSpacing": true,
    "prettier.useTabs": true,
    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "files.insertFinalNewline": false,
    "files.trimFinalNewlines": true,

    /**
     * Spelling
     **/
    "cSpell.userWords": ["GitHub", "Hackathons", "Directus", "Deepgram"],

    /**
     * Copilot
     **/
    "github.copilot.enable": {
        "*": true,
        "plaintext": false,
        "markdown": false,
        "scminput": false
    },
    "github.copilot.chat.followUps": "always",
    "github.copilot.chat.terminalChatLocation": "quickChat",
    "github.copilot.editor.enableAutoCompletions": true,
    "github.copilot.nextEditSuggestions.enabled": true,
    "github.copilot.chat.edits.codesearch.enabled": true
}
See Keybindings
[
    /**
     * Panels
     **/
    {
        "key": "cmd+k cmd+b",
        "command": "workbench.action.toggleSidebarVisibility"
    },
    {
        "key": "cmd+k cmd+c",
        "command": "workbench.action.toggleAuxiliaryBar"
    },
    {
        "key": "cmd+k cmd+v",
        "command": "workbench.action.toggleAuxiliaryBar"
    },
    {
        "key": "cmd+k cmd+e",
        "command": "workbench.view.explorer"
    },
    {
        "key": "cmd+k cmd+g",
        "command": "workbench.view.scm"
    },
    {
        "key": "cmd+k cmd+f",
        "command": "workbench.view.search"
    },
    {
        "key": "cmd+k cmd+l",
        "command": "liveshare.start"
    },
    {
        "key": "cmd+k cmd+d",
        "command": "workbench.view.debug"
    },
    {
        "key": "cmd+k cmd+x",
        "command": "workbench.view.extensions"
    },
    {
        "key": "cmd+k cmd+s",
        "command": "workbench.action.toggleStatusbarVisibility"
    },
    {
        "key": "cmd+k cmd+a",
        "command": "workbench.action.toggleActivityBarVisibility"
    },
    {
        "key": "cmd+k cmd+t",
        "command": "workbench.action.terminal.toggleTerminal"
    },
    /**
     * Toggle Font Size
     **/
    {
        "key": "cmd+k cmd+k",
        "command": "toggle",
        "when": "editorTextFocus",
        "args": {
            "id": "fontSize",
            "value": [
                {
                    "editor.fontSize": 18,
                    "editor.lineHeight": 32
                },
                {
                    "editor.fontSize": 12,
                    "editor.lineHeight": 0
                }
            ]
        }
    },
    {
        "key": "cmd+k cmd+k",
        "command": "toggle",
        "when": "terminalFocus",
        "args": {
            "id": "fontSize",
            "value": [
                {
                    "terminal.integrated.fontSize": 18
                },
                {
                    "terminal.integrated.fontSize": 12
                }
            ]
        }
    },
    /**
     * Split Panels
     **/
    {
        "key": "ctrl+n",
        "command": "workbench.action.splitEditor",
        "when": "editorFocus"
    },
    {
        "key": "ctrl+n",
        "command": "workbench.action.terminal.split",
        "when": "terminalFocus"
    },
    /**
     * Cursor -> Copilot
     **/
    {
        "key": "cmd+1",
        "command": "inlineChat.start",
        "when": "editorFocus && inlineChatHasProvider && inlineChatPossible && !editorReadonly && !editorSimpleInput"
    },
    /**
     * Unbindings
     **/
    {
        "key": "cmd+k cmd+c",
        "command": "-editor.action.addCommentLine",
        "when": "editorTextFocus && !editorReadonly"
    },
    {
        "key": "cmd+k cmd+c",
        "command": "-notebook.cell.collapseCellInput",
        "when": "notebookCellListFocused && !inputFocus && !notebookCellInputIsCollapsed"
    },
    {
        "key": "cmd+k cmd+c",
        "command": "-notebook.cell.expandCellInput",
        "when": "notebookCellInputIsCollapsed && notebookCellListFocused"
    },
    {
        "key": "ctrl+cmd+i",
        "command": "-workbench.action.chat.open"
    },
    {
        "key": "alt+cmd+b",
        "command": "-workbench.action.toggleAuxiliaryBar"
    },
    {
        "key": "cmd+b",
        "command": "-workbench.action.toggleSidebarVisibility"
    },
    {
        "key": "cmd+n",
        "command": "explorer.newFile",
        "when": "explorerViewletVisible && filesExplorerFocus && !inputFocus && !inChat"
    },
    {
        "key": "cmd+n",
        "command": "workbench.action.chat.newChat",
        "when": "chatIsEnabled && inChat && chatLocation != 'editing-session'"
    },
    {
        "key": "ctrl+l",
        "command": "-workbench.action.chat.newChat",
        "when": "chatIsEnabled && inChat && chatLocation != 'editing-session'"
    },
    {
        "key": "cmd+t",
        "command": "-workbench.action.showAllSymbols"
    },
    {
        "key": "cmd+1",
        "command": "-workbench.action.focusFirstEditorGroup"
    }
]

Raycast

I love Raycast. It's the very first thing I install on a new macOS installation and replaces Spotlight with an incredibly powerful and extensible productivity tool. It's much more than just an application and file finder.

  • Built-in features: It comes with so much out of the box - a calendar, clipboard history, snippet manager, emoji picker, translator, quick notes, window manager, and a quick character/word count. It's replaced so many tools on my machine.
  • Hyperkey: You can also configure system-wide hotkeys to run various commands both baked-in and provided via extensions. Raycast recently released a feature that remaps your caps lock to cmd+alt+ctrl+shift (known as the 'hyper key') so you can get a whole new layer of keyboard shortcuts on your machine.
    • I use so many shortcuts in conjunction with the hyper key to toggle Raycast's modals. t for translate, c for clipboard history, s for snippets, e for emojis, a to bring up the AI chat window, and n for notes.
    • This might feel like a lot of shortcuts, but over time they become second nature and it is painful to use a machine without these conveniences throughout.
  • Window Management: I use a huge 49 inch ultrawide curved monitor, which is similar to having two 27" monitors next to each other. I often have 2, 3, or 4 windows open side by side. To cope with this, I use Raycast's window management features along with hotkeys.
    • The base keys are cmd+option. To split thirds I use the first three keys on the top row of my keyboard letters: q, w, and e. For quarters I use the next line: a, s, d, and f. For halves I use ← and →, and to maximize a window it's enter. Finally, for the middle half it's ↑.
  • Extensions: I use three extensions in Raycast:

Terminal

I mostly just use the built-in terminal in VS Code. If I use a standalone terminal it's Hyper. I use Oh My Zsh with the minimal theme.

I also use Volta to manage Node.js versions locally.

Other Software

  • Arc: I use Arc as my primary web browser, mostly because of how well it handles 'spaces' and 'profiles'.
  • Todoist: For task management, I rely on Todoist. I try other tools and end up back here every time.
  • CleanShot X: To capture and annotate screenshots.
  • Camo Studio: I use Camo Studio to turn my iPhone into a webcam for video calls and recordings. Because I want to zoom/pan the frame, Continuity Camera isn't enough.
  • Screenflow: For creating and editing videos.

Hardware

  • MacBook Pro 14 M1 Pro with 16GB RAM.
  • Samsung Odyssey G95T 49" curved monitor.
  • Elgato Wave:1 and the Elgato low-profile mic arm.
  • Elgato Prompter with an old iPhone 12 Mini as the camera.
  • Apple Magic Keyboard (with Touch ID) and Magic Trackpad.
  • iPad Mini for media consumption.
  • A simple Kindle for reading books.
  • M-Audio Keystation 61 MK3 for learning to play music.