Open8

M4 Macbook air US keyboard セットアップ

ましましましまし

文字入力

live conversionをOFF

Google 日本語入力

install -> reboot ->

適当な入力ソースを追加(ここでは"ABC - Extended")、そうするとデフォルトの"ABC"を"-"で消せる、後述のKarabiner-Elementsでの変換時にデフォルトの入力ソースではなくGoogleのAlphanumericが選択されるようになる

⌘キーでかな英数を切り替えられるように with Karabiner-Elements
Capslock無効化 with Karabiner-Elements

ましましましまし

system

Desktop

デスクトップにファイル/フォルダを表示しない

not showing items on desktop
Show Items -> On Desktop

Dock

自動で見え隠れ

不要なアイコン削除

screenshot

⌘⇧5のスクショをデスクトップではなくClipboardへ保存

keyboard

  • Key repeat rate, Delay until repeatを上げる→長押し入力反応速度&入力速度UP
  • バックライトの明るさ下げる
  • バックライトの一定時間経過後自動OFF
  • 地球儀キーの余計なショートカット削除
  • Tabでダイアログ操作できるように (Keyboard navigation)
スクショ

mx mechanicalキーボードとの動作互換性の為Fnキーの扱いを反転

マウス

ポインタデカく

移動速度速く

bluetoothを表示

battery % 表示

文字デカく

util

spotlight ⌘␣のショートカットOFF for Raycast

ましましましまし

dev

homebrew

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

terminal

brew install --cask warp

git

brew install git

lazygit

brew install lazygit

github cli

brew install gh

neovim

brew install neovim

docker
cursor

brew install --cask cursor

aws

brew install awscli

npm

brew install npm

pnpm

brew install pnpm

ngrok

brew install ngrok

ましましましまし

Editor config (VSCode, Cursor)

extensions

  • Git Graph v3

keyboard shortcut

keybindings.json
[
  {
    "key": "ctrl+s",
    "command": "workbench.explorer.fileView.focus",
    "when": "terminalFocus"
  },
  // ------------------------------ Basic ------------------------------
  {
    "key": "ctrl+`",
    "command": "workbench.action.terminal.focus"
  },
  {
    "key": "ctrl+`",
    "command": "workbench.action.focusActiveEditorGroup",
    "when": "terminalFocus"
  },

  // ------------------------------ Editor ------------------------------
  {
    "key": "ctrl+l",
    "command": "workbench.action.nextEditor",
    "when": "!terminalFocus && !sideBarFocus && vim.mode != 'Insert'"
  },
  {
    "key": "ctrl+h",
    "command": "workbench.action.previousEditor",
    "when": "!terminalFocus && !sideBarFocus && vim.mode != 'Insert'"
  },
  {
    "key": "ctrl+q h",
    "command": "workbench.action.focusLeftGroup",
    "when": "editorFocus"
  },
  {
    "key": "ctrl+q l",
    "command": "workbench.action.focusRightGroup",
    "when": "editorFocus"
  },
  {
    "key": "ctrl+q j",
    "command": "workbench.action.focusBelowGroup",
    "when": "editorFocus"
  },
  {
    "key": "ctrl+q k",
    "command": "workbench.action.focusAboveGroup",
    "when": "editorFocus"
  },
  // Split
  {
    "key": "ctrl+s v",
    "command": "workbench.action.splitEditor",
    "when": "editorFocus"
  },
  {
    "key": "ctrl+s ctrl+v",
    "command": "workbench.action.splitEditor",
    "when": "editorFocus"
  },
  {
    "key": "ctrl+s h",
    "command": "workbench.action.splitEditorOrthogonal",
    "when": "editorFocus"
  },
  {
    "key": "ctrl+s ctrl+h",
    "command": "workbench.action.splitEditorOrthogonal",
    "when": "editorFocus"
  },
  // Pane size
  {
    "key": "ctrl+q shift+l",
    "command": "workbench.action.increaseViewWidth",
    "when": "editorFocus"
  },
  {
    "key": "ctrl+q shift+h",
    "command": "workbench.action.decreaseViewWidth",
    "when": "editorFocus"
  },
  {
    "key": "ctrl+q shift+k",
    "command": "workbench.action.increaseViewHeight",
    "when": "editorFocus"
  },
  {
    "key": "ctrl+q shift+j",
    "command": "workbench.action.decreaseViewHeight",
    "when": "editorFocus"
  },
  {
    "key": "ctrl+q x",
    "command": "workbench.action.closeActiveEditor",
    "when": "editorFocus"
  },
  {
    "key": "ctrl+q shift+x",
    "command": "workbench.action.closeEditorsAndGroup",
    "when": "editorFocus"
  }, // Delete editor
  {
    "key": "ctrl+q shift+[",
    "command": "workbench.action.moveEditorToPreviousGroup"
  },
  {
    "key": "ctrl+q shift+]",
    "command": "workbench.action.moveEditorToNextGroup"
  }, // Current editor to (next|previous) group
  {
    "key": "ctrl+q n",
    "command": "workbench.action.focusNextGroup",
    "when": "editorFocus"
  },
  {
    "key": "ctrl+q p",
    "command": "workbench.action.focusPreviousGroup",
    "when": "editorFocus"
  }, // Current editor to (next|previous) group
  {
    "key": "ctrl+q [",
    "command": "workbench.action.terminal.searchWorkspace",
    "when": "terminalFocus && terminalProcessSupported && terminalTextSelected"
  },
  {
    "key": "ctrl+q [",
    "command": "workbench.action.findInFiles"
  },
  {
    "key": "ctrl+q [",
    "command": "workbench.view.search",
    "when": "workbench.view.search.active && neverMatch =~ /doesNotMatch/"
  }, // Global serach
  {
    "key": "ctrl+q z",
    "command": "workbench.action.maximizeEditor",
    "when": "editorFocus"
  }, // maximizeEditor

  // ------------------------------ Terminal ------------------------------
  {
    "key": "ctrl+q n",
    "command": "workbench.action.terminal.new",
    "when": "terminalFocus"
  },
  {
    "key": "ctrl+j",
    "command": "workbench.action.terminal.focusNext",
    "when": "terminalFocus"
  },
  {
    "key": "ctrl+k",
    "command": "workbench.action.terminal.focusPrevious",
    "when": "terminalFocus"
  },
  {
    "key": "ctrl+shift+j",
    "command": "workbench.action.toggleMaximizedPanel",
    "when": "terminalFocus"
  },
  {
    "key": "ctrl+h",
    "command": "workbench.action.terminal.focusPreviousPane",
    "when": "terminalFocus"
  },
  {
    "key": "ctrl+l",
    "command": "workbench.action.terminal.focusNextPane",
    "when": "terminalFocus"
  },
  {
    "key": "ctrl+\\",
    "command": "workbench.action.terminal.split",
    "when": ""
  },
  // ------------------------------ Filer ------------------------------
  {
    "key": "ctrl+s",
    "command": "workbench.explorer.fileView.focus"
    // "when": "editorFocus"
  },
  {
    "key": "ctrl+s",
    "command": "workbench.action.toggleSidebarVisibility",
    "when": "filesExplorerFocus"
  },
  // ------------------------------ Vim ------------------------------
  // ------------------------------ To deal with folding expansion ------------------------------
  {
    "command": "cursorDown",
    "key": "j",
    "when": "editorTextFocus && neovim.mode == normal"
  },
  {
    "command": "cursorUp",
    "key": "k",
    "when": "editorTextFocus && neovim.mode == normal"
  },
  {
    "command": "cursorDown",
    "key": "down",
    "when": "editorTextFocus && neovim.mode == normal"
  },
  {
    "command": "cursorUp",
    "key": "up",
    "when": "editorTextFocus && neovim.mode == normal"
  },
  {
    "command": "editor.toggleFold",
    "key": "z a",
    "when": "editorTextFocus && neovim.mode == normal"
  },
  {
    "command": "editor.unfoldAll",
    "key": "z shift+r",
    "when": "editorTextFocus && neovim.mode == normal"
  },
  {
    "command": "editor.foldAll",
    "key": "z shift+m",
    "when": "editorTextFocus && neovim.mode == normal"
  },
  {
    "command": "editor.unfold",
    "key": "z l",
    "when": "editorTextFocus && neovim.mode == normal"
  },
  {
    "command": "editor.unfoldRecursively",
    "key": "z shift+o",
    "when": "editorTextFocus && neovim.mode == normal"
  },
  {
    "command": "editor.fold",
    "key": "z h",
    "when": "editorTextFocus && neovim.mode == normal"
  },
  {
    "command": "editor.foldRecursively",
    "key": "z shift+c",
    "when": "editorTextFocus && neovim.mode == normal"
  },
  {
    "command": "editor.foldLevel1",
    "key": "z 1",
    "when": "editorTextFocus && neovim.mode == normal"
  },
  {
    "command": "editor.foldLevel2",
    "key": "z 2",
    "when": "editorTextFocus && neovim.mode == normal"
  },
  {
    "command": "editor.foldLevel3",
    "key": "z 3",
    "when": "editorTextFocus && neovim.mode == normal"
  },
  {
    "command": "editor.foldLevel4",
    "key": "z 4",
    "when": "editorTextFocus && neovim.mode == normal"
  },
  {
    "command": "editor.foldLevel5",
    "key": "z 5",
    "when": "editorTextFocus && neovim.mode == normal"
  },
  {
    "command": "editor.foldLevel6",
    "key": "z 6",
    "when": "editorTextFocus && neovim.mode == normal"
  },
  {
    "command": "editor.foldLevel7",
    "key": "z 7",
    "when": "editorTextFocus && neovim.mode == normal"
  },
  {
    "command": "editor.foldAllExcept",
    "key": "z shift+v",
    "when": "editorTextFocus && neovim.mode == normal"
  },
  {
    "command": "editor.gotoNextFold",
    "key": "z j",
    "when": "editorTextFocus && neovim.mode == normal"
  },
  {
    "command": "editor.gotoPreviousFold",
    "key": "z k",
    "when": "editorTextFocus && neovim.mode == normal"
  },
  {
    "key": "ctrl+s ctrl+f",
    "command": "vscode-neovim.send",
    "when": "editorTextFocus && neovim.ctrlKeysInsert.s && neovim.init && neovim.mode == 'insert' && editorLangId not in 'neovim.editorLangIdExclusions'"
  },
  {
    "key": "ctrl+s",
    "command": "-vscode-neovim.send",
    "when": "editorTextFocus && neovim.ctrlKeysInsert.s && neovim.init && neovim.mode == 'insert' && editorLangId not in 'neovim.editorLangIdExclusions'"
  },
  {
    "key": "ctrl+s ctrl+f",
    "command": "vscode-neovim.send",
    "when": "editorTextFocus && neovim.ctrlKeysNormal.s && neovim.init && neovim.mode != 'insert' && editorLangId not in 'neovim.editorLangIdExclusions'"
  },
  {
    "key": "ctrl+s",
    "command": "-vscode-neovim.send",
    "when": "editorTextFocus && neovim.ctrlKeysNormal.s && neovim.init && neovim.mode != 'insert' && editorLangId not in 'neovim.editorLangIdExclusions'"
  },
  {
    "key": "cmd+i",
    "command": "composerMode.agent"
  }
]