Mac ターミナル defaults コマンドの使い方

defaults コマンドラインツールは、各アプリケーションの設定ファイル(plist)の内容を表示・編集することができるツールで、defaults コマンドを使うとシステム環境設定や各アプリの環境設定画面では設定できない値を設定することができます。

以下はターミナルで defaults read や defaults write、defaults delete、defaults domains などのコマンドを利用するための覚書です。

作成日:2023年3月24日

関連ページ

Mac のターミナルを使って設定を変更

以下は Apple の ターミナルユーザガイド Macの「ターミナル」でプロパティリストを編集するからの抜粋(引用)です。

macOSの環境設定ファイルおよび構成ファイルでは、アプリケーションまたはプロセスの属性、つまりプロパティを指定するために、プロパティリスト(plist)が使用されます。

例えば、ユーザのホームフォルダの「ライブラリ/Preferences/」フォルダ内に、Finder用の環境設定plistがあります。このファイルには、「com.apple.finder.plist」という名前が付いています。plistのデフォルトの命名規則では、配布者の逆引きDNS名の後ろにアプリケーション名またはプロセス名が付加され、さらに.plist拡張子が付加されます。

プロパティリストを編集するには、defaults コマンドラインツールを使用します。defaultsコマンドは強力なツールです。特に、変更したいプロパティリスト内のキーと値が具体的に分かっている場合には、defaultsツールが非常に効率的です。

例えば、システム設定(GUI)を使って Dock のサイズや場所を変更したりすると、それらの設定は ~/Library/Preferencescom.apple.Dock.plist に保存されます。

このアプリケーションの動作を制御する設定ファイル(plist ファイル)を defaults コマンドラインツールを使用して編集することで、設定を変更することができます。

plist ファイル(設定ファイル)は ユーザ/ユーザ名/ライブラリ/Preferences にあります。ライブラリ(Library)は隠しフォルダになっているので、shift + command + . で表示することができます。

plist の名前は 逆引きDNS名.アプリケーション名.plist のようになっています。

% ls ~/Library/Preferences | grep '.plist' return  //.plist を一覧表示
ContextStoreAgent.plist
MobileMeAccounts.plist
ZoomChat.plist
com.adobe.Acrobat.Pro.plist
com.adobe.CSXS.11.plist
com.adobe.Photoshop.plist
com.adobe.Photoshop.uxp_com.adobe.ccx.lrimporter.plist
com.adobe.Photoshop.uxp_com.adobe.ccx.start.plist
com.adobe.Synchronizer.DC.plist
com.adobe.acc.AdobeCreativeCloud.plist
com.adobe.acc.AdobeDesktopService.plist
com.adobe.acc.HEXHelper.Renderer.plist
・・・以下省略・・・

% ls ~/Library/Preferences | grep 'google'  return  //google関連の plist ファイル
com.google.Chrome.plist
com.google.Keystone.Agent.plist

% ls ~/Library/Preferences | grep 'microsoft' return //microsoft関連の plist ファイル
com.microsoft.OneDriveStandaloneUpdater.plist
com.microsoft.OneDriveUpdater.plist
com.microsoft.VSCode.plist
com.microsoft.autoupdate.fba.plist
com.microsoft.autoupdate2.plist
com.microsoft.office.plist
com.microsoft.shared.plist

Dock のプロパティリスト(plist ファイル)の名前は com.apple.Dock.plist ですが、defaults コマンドを使用するときは、.plist 拡張子を省略します。拡張子を除いた部分(この場合は com.apple.Dock )をドメインと呼びます。

以下はターミナルで defaults read コマンドを使って Dock(com.apple.Dock )の画面上の位置(orientation)の設定値を表示する例です。

% defaults read com.apple.dock orientation  return //Dock の画面上の位置の設定値を表示
The domain/default pair of (com.apple.dock, orientation) does not exist
//値は存在しない(デフォルトから変更されていない)

上記の例の場合、システム設定(GUI)や defaults コマンドを使って画面上の位置を設定したことがないので(デフォルトのままなので)、「The domain/default pair of (com.apple.dock, orientation) does not exist」(指定した値は存在しません)のようなレスポンスが返っています。

一度、システム設定(GUI)を使って Dock の「画面上の位置」を例えば、「左」に設定して、

再度、ターミナルで defaults read コマンドを使って Dock の画面上の位置(orientation)の設定値を確認すると、以下のように left と表示されます。

% defaults read com.apple.dock orientation  return
left  //設定した値が表示される

defaults write コマンドを使って設定を変更することができます。以下は Dock の画面上の位置(orientation)を bottom に設定する例です。

但し、設定を反映させるにはアプリケーションや Mac を再起動する必要があります。以下では killall コマンドで Dock アプリケーションを強制終了させて再起動しています。

% defaults write com.apple.dock orientation bottom   return //bottom に変更
% killall Dock   return // Dock を強制終了(Dock は2〜3秒で再起動する)
% defaults read com.apple.dock orientation   return // 設定値を表示
bottom

上記で指定した設定項目を削除する(元の状態に戻す)には defaults delete コマンドを使います。

% defaults delete com.apple.dock orientation  return //設定項目を削除(元の状態に戻す)
% killall Dock return// Dock を強制終了(Dock は2〜3秒で再起動する)
% defaults read com.apple.dock orientation  return // 設定値を表示
//初期状態に戻っている
The domain/default pair of (com.apple.dock, orientation) does not exist

上記の場合、システム環境設定(GUI)から変更した方が簡単ですが、defaults コマンドを使うとシステム環境設定や各アプリの環境設定画面では設定できない値を設定することができます。

~/Library/Preferences

前述のように、ユーザーの設定フォルダー ~/Library/Preferences(ユーザ/ユーザ名/ライブラリ/Preferences)にはユーザーの初期設定ファイル(plist ファイル)が入っています。

ほとんどの設定は、~/Library/Preferences に直接保存されますが、このフォルダー内には ByHost や開発元により作成されている Microsoft、Adobe などのサブフォルダもあります。

ByHost

ByHost フォルダにはスクリーンセーバーや Bluetooth などのシステムおよびアプリケーション設定用のファイルが格納されています。

親の Preferences フォルダー内のファイルとは異なり、ByHost フォルダー内のファイルには、「com.apple.Bluetooth.E3D2ABCD-0C8C-5432-2E7B-92ABCDEFGHIJ.plist」のように名前に長い文字列(UUID)が含まれています。

defaults コマンドラインツール

defaults コマンドラインツールは、各アプリケーションの設定ファイル(プロパティリスト:plist)の内容を表示・編集することができる(plist ファイルにアクセスするための)ツール です。

どのようなコマンド(引数)があるかは man defaults で確認することができます。

% man defaults   return  //man ページを表示

以下は上記の DESCRIPTION の部分を訳したものです(正しくない可能性があります)。

defaults を使用すると、ユーザーはコマンドライン シェルから Mac OS X ユーザーのデフォルト(defaults の設定)を読み取り、書き込み、および削除できます。

Mac OS X アプリケーションやその他のプログラムは、デフォルトシステム(User Defaults System)を使用して、アプリケーションが実行されていないときに維持する必要があるユーザー設定やその他の情報 (新しいドキュメントのデフォルトフォントや情報パネルの位置など) を記録します。

この情報の多くは、アプリケーションの [設定] パネル(環境設定)からアクセスできますが、[情報] パネルの位置など、アクセスできないものもあり、この情報には defaults でアクセスできます。

注: アプリケーションは実行中にデフォルトシステム(defaults system)にアクセスするため、実行中のアプリケーションのデフォルト(defaults)を変更しないでください。

実行中のアプリケーションに属するドメインでデフォルトを変更しても、アプリケーションは変更を認識せず、デフォルトを上書きすることさえあります。

ユーザーのデフォルト(defaults)は、通常、個々のアプリケーションに対応するドメインに属します。各ドメインには、デフォルト(defaults)を表すキーと値のディクショナリがあります。 例:"Default Font" = "Helvetica"

キーは常に文字列ですが、値は複雑なデータ構造(配列、辞書、文字列、およびバイナリデータ)になる場合があります。これらのデータ構造は、XML プロパティリストとして保存されます。

すべてのアプリケーション、システムサービス、およびその他のプログラムには独自のドメインがありますが、NSGlobalDomain という名前のドメイン(グローバルドメイン)も共有しています。

デフォルトがアプリケーションのドメインで指定されておらず、NSGlobalDomain で指定されている場合、アプリケーションはそのドメインの値を使用します。

help コマンド

以下は help コマンドを実行してヘルプを表示する例です。Syntax(構文)を確認することができます。

ドメインを表す <domain> は、plist ファイルの拡張子 .plist を除いた部分になります。

例えば、Dock のプロパティリスト(plist ファイル)の名前は com.apple.Dock.plist なので com.apple.Dock<domain> になります。

% defaults help return  //ヘルプを表示
Command line interface to a user''s defaults.
Syntax:

'defaults' [-currentHost | -host <hostname>] followed by one of the following:

  read                                 shows all defaults
  read <domain>                        shows defaults for given domain
  read <domain> <key>                  shows defaults for given domain, key

  read-type <domain> <key>             shows the type for the given domain, key

  write <domain> <domain_rep>          writes domain (overwrites existing)
  write <domain> <key> <value>         writes key for domain

  rename <domain> <old_key> <new_key>  renames old_key to new_key

  delete <domain>                      deletes domain
  delete <domain> <key>                deletes key in domain

  import <domain> <path to plist>      writes the plist at path to domain
  import <domain> -                    writes a plist from stdin to domain
  export <domain> <path to plist>      saves domain as a binary plist to path
  export <domain> -                    writes domain as an xml plist to stdout
  domains                              lists all domains
  find <word>                          lists all entries containing word
  help                                 print this help

<domain> is ( <domain_name> | -app <application_name> | -globalDomain )
         or a path to a file omitting the '.plist' extension

<value> is one of:
  <value_rep>
  -string <string_value>
  -data <hex_digits>
  -int[eger] <integer_value>
  -float  <floating-point_value>
  -bool[ean] (true | false | yes | no)
  -date <date_rep>
  -array <value1> <value2> ...
  -array-add <value1> <value2> ...
  -dict <key1> <value1> <key2> <value2> ...
  -dict-add <key1> <value1> ...

defaults domains

defaults domains コマンドは設定されている全てのアプリケーションのドメイン(domain)を表示するコマンドで、どのようなアプリケーションのドメインがあるかを確認することができます。

コマンドの出力はカンマ区切りで全てがリスト表示されます。

以下は tr コマンドを使って、カンマを改行に変換して表示する例です。

% defaults domains | tr "," "\n"   return  //全てのアプリケーション(のドメイン)を表示
.GlobalPreferences_m
 ContextStoreAgent
 MobileMeAccounts
 ZoomChat
 com.adobe.Acrobat.Pro
 ・・・中略・・・
 com.apple.AMPLibraryAgent
 com.apple.ATS
 com.apple.Accessibility
 com.apple.Accessibility.Assets
 com.apple.AdLib
 com.apple.AdPlatforms
 com.apple.AddressBook
 com.apple.AirScanScanner
 com.apple.AppStore
 com.apple.AppleMediaServices
 ・・・中略・・・
com.apple.xpc.activity2
 com.eset.ecsp.6
 com.eset.firewall.diagnostic.log
 com.google.Chrome
 com.google.Keystone.Agent
 com.microsoft.Excel
 com.microsoft.Excel.securebookmarks
 com.microsoft.OneDriveStandaloneUpdater
 com.microsoft.OneDriveUpdater
 com.microsoft.Powerpoint
 com.microsoft.Powerpoint.securebookmarks
 com.microsoft.VSCode
 com.microsoft.Word
 ・・・以下省略・・・

defaults find

defaults find コマンドは引数に単語を指定して、ユーザーの defaults 設定のドメイン名、キー、および値を検索してマッチしたリストを出力します。

% defaults find shadow   return  // shadow を含む設定を検索
Found 1 keys in domain 'com.apple.screencaptureui': {
    "com.apple.AnnotationKit.hasShadow" = 0;
}
Found 1 keys in domain 'com.apple.Preview': {
    "com.apple.AnnotationKit.hasShadow" = 0;
}

defaults read

defaults read コマンドは defaults の設定(User Defaults)を表示します。

以下がコマンドの構文です。

defaults read             //ユーザーの全ての defaults の設定を表示
defaults read domain      //ユーザーの指定したドメインの defaults の設定を表示
defaults read domain key  //ユーザーの指定したドメインとそのキーの defaults の設定を表示

以下は引数無しで defaults read を実行してユーザーの全てのアプリケーションのプロパティを表示する例です。量が多いので、less コマンド で1画面ずつ表示しています( q キーで終了)。

% defaults read |less  return  //全ての defaults の設定を less で1画面ずつ表示
{
    ".GlobalPreferences_m" =     {
        AppleLanguages =         (
            "ja-JP",
            "en-JP"
        );
        AppleLocale = "ja_JP";
        "Sig_AppleLanguages" = "KeyboardSettings(555): 2023-01-22 17:21:39 (JST)";
        "Sig_AppleLocale" = "DirectoryTools(955): 2023-01-21 03:15:39 (PST)";
    };
    "Apple Global Domain" =     {

    ・・・以下省略・・・

defaults read domain のように defaults read の引数にアプリケーションのドメイン(plist ファイルの拡張子を除いた部分)を指定して個々のアプリケーションの設定を表示することができます。

以下は domain に com.apple.Preview を指定して defaults に設定されている Preview の設定値を表示する例です。

% defaults read com.apple.Preview  return  //defaults read domain
{
    "NSToolbar Configuration CommonToolbar_v5.1" =     {
        "TB Display Mode" = 2;
        "TB Icon Size Mode" = 1;
        "TB Is Shown" = 1;
        "TB Size Mode" = 1;
    };
    PVContactSheetThumbnailSize = 120;
    PVPDFLastSidebarWidth = 205;
    "com.apple.AnnotationKit.arrowHeadStyle" = 2;
    "com.apple.AnnotationKit.brushStyle" = 0;
    "com.apple.AnnotationKit.fillColor" = {length = 242, bytes = 0x62706c69 73743030 d4010203 04050607 ... 00000000 000000b8 };
    "com.apple.AnnotationKit.font" = {length = 496, bytes = 0x62706c69 73743030 d4010203 04050607 ... 00000000 0000017a };
    "com.apple.AnnotationKit.hasShadow" = 0;
    "com.apple.AnnotationKit.highlightStyle" = 765200;
    "com.apple.AnnotationKit.strokeColor" = {length = 248, bytes = 0x62706c69 73743030 d4010203 04050607 ... 00000000 000000bd };
    "com.apple.AnnotationKit.strokeIsDashed" = 0;
    "com.apple.AnnotationKit.strokeWidth" = 5;
    "com.apple.AnnotationKit.textAttributes" = {length = 284, bytes = 0x7b5c7274 66315c61 6e73695c 616e7369 ... 205c6366 3220617d };
    "com.apple.AnnotationKit.userDefaultsVersion" = 1;
}

defaults read domain key のようにアプリケーションのドメインとキーを指定して個々のアプリケーションの特定の設定値を表示することができます。

以下は domain(com.apple.Preview)と key(PVPDFLastSidebarWidth)を指定して実行する例です。

% defaults read com.apple.Preview PVPDFLastSidebarWidth  return
205  //Preview の PVPDFLastSidebarWidth の値

以下は domain に com.apple.Preview、key に com.apple.AnnotationKit.font を指定して実行する例です。

% defaults read com.apple.Preview com.apple.AnnotationKit.font  return
{length = 496, bytes = 0x62706c69 73743030 d4010203 04050607 ... 00000000 0000017a }
設定値が存在しない

冒頭の例のように、defaults read domain key を実行して「The domain/default pair of (com.xxxxxx, xxxxxx) does not exist」のように表示されるのは、今までにシステム設定や defaults コマンドを使って設定したことがない(初期値のまま)場合や、その設定値が削除されている場合です。

以下はスクリーンキャプチャで撮影した画像の設定で影を無効にするキー(disable-shadow)の値を確認していますが、この例の場合、今までに設定したことがないので「The domain/default pair of (com.apple.screencapture, disable-shadow) does not exist」のように出力されます。

% defaults read com.apple.screencapture disable-shadow  return
The domain/default pair of (com.apple.screencapture, disable-shadow) does not exist

defaults write

defaults write コマンドは defaults の設定(User Defaults)を追加・変更します。

以下がコマンドの構文です。

defaults write domain key 'value'
defaults write domain 'plist'  

以下は man ページに掲載されている key 'value' の構文の例です。value はシングルクォートで囲みます。また、key にスペースが含まれる場合は引用符で囲みます。

defaults write com.companyname.appname "Default Color" '(255, 0, 0)'

以下も man ページに掲載されている 'plist' で指定する構文の例です。plist で指定された内容で上書きされます。plist はシングルクォートで囲みます。

defaults write com.companyname.appname '{ "Default Color" = (255, 0, 0);
"Default Font" = Helvetica; }';

設定を追加・変更したら、そのアプリを再起動

設定を追加・変更したら、そのアプリを再起動して設定値を読み込ませます(適用させます)。例えば、Dock の設定を変更したら killall Dock を実行します。

killall コマンドに指定するプロセス名がわからない場合は、再ログインするか、Mac を再起動すれば設定が適用されます。

スクリーンショットの影をなくす例

以下はキャプチャしたスクリーンショットの画像から影のエフェクトを無くす例です。

defaults write domain key 'value' の構文で指定しています。-bool は値が真偽値であることを表すオプションです。

※ macOS が Sierra 以降であれば、killall SystemUIServer を実行しなくても適用されるようです。

% defaults write com.apple.screencapture "disable-shadow" -bool "true"  return
% //killall SystemUIServer  // SystemUIServer の再起動なしでも適用される

スクリーンショットの画像に影のエフェクトを付ける場合は以下を実行します。

% defaults write com.apple.screencapture "disable-shadow" -bool "false"   return

初期状態に戻すには、defaults delete コマンドを使います。

値を表すオプション(フラグ)

キーに対する値(value)を指定する際は、値の型を表すオプション(フラグ)を指定します。オプションを指定しない場合、値は文字列(string)として扱われます。

  • -string :文字列
  • -data :データ(raw data bytes/hexidecimal)
  • -int[eger]:整数
  • -float :小数(浮動小数点数)
  • -bool[ean]:真偽値
  • -date:日付型
  • -array :配列
  • -array-add:配列の最後に要素を追加
  • -dict: dictionary
  • -dict-add:key/value ペアを dictionary に追加

defaults delete

defaults delete コマンドは 指定した設定項目を削除するコマンドで、以下が構文です。

defaults delete domain key

以下は前述の defaults write で新たに追加した項目を初期状態に戻す(追加した設定を削除する)例です。

% defaults delete com.apple.screencapture "disable-shadow"  return  //削除

% defaults read com.apple.screencapture disable-shadow  return  //確認
The domain/default pair of (com.apple.screencapture, disable-shadow) does not exist

NSGlobalDomain(共通の設定)

NSGlobalDomain はすべてのアプリケーションで共通の設定のドメイン(グローバルドメイン)です。

すべてのアプリケーションには独自のドメインがありますが、NSGlobalDomain という名前のドメイン(グローバルドメイン)も共有しています。

設定がアプリケーションのドメインで指定されておらず、NSGlobalDomain で指定されている場合、アプリケーションは NSGlobalDomain の値を使用します。

% defaults read NSGlobalDomain return  //NSGlobalDomain の設定値を表示
{
    AKLastEmailListRequestDateKey = "2023-03-22 22:26:18 +0000";
    AKLastIDMSEnvironment = 0;
    AKLastLocale = "ja_JP";
    AppleAntiAliasingThreshold = 4;
    AppleLanguages =     (
        "ja-JP",
        "en-JP"
    );
    AppleLanguagesDidMigrate = "13.2.1";
    AppleLanguagesSchemaVersion = 3000;
    AppleLocale = "ja_JP";

   ・・・中略・・・

    "com.apple.sound.beep.flash" = 0;
    "com.apple.springing.delay" = "0.5";
    "com.apple.springing.enabled" = 1;
    "com.apple.trackpad.forceClick" = 1;
}

NSGlobalDomain の代わりに -g または -globalDomain と指定することもできます。

上記は以下でも同じことです。

% defaults read -g    return
% defaults read -globalDomain   return

このグローバルに適用される設定は ~/Library/Preferences.GlobalPreferences.plist ファイルに保存されています。

defaults を使った設定サンプル

defaults コマンドを使った設定例は mac defaults などのキーワードで検索すると色々と出てきます。例えば以下のサイトでは様々な設定例が List of commands として分類して掲載されているので便利です。

ネットワーク接続時に .DS_Store ファイルの作成を抑制する方法

ネットワーク接続時に .DS_Store ファイルの作成を抑制する例です。但し、ローカルなボリュームでは .DS_Store が作成されます。

念の為、現在の設定を確認します。

% defaults read com.apple.desktopservices DSDontWriteNetworkStores
//何も設定されていない場合は以下のように表示される
The domain/default pair of (com.apple.desktopservices, DSDontWriteNetworkStores) does not exist

ネットワーク接続時に .DS_Store ファイルを作成しないように設定して、Finder を再起動させます。

% defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool TRUE
% killall Finder  //Finder を強制終了(再起動)

設定を確認すると 1 (True)が返ります。

% defaults read com.apple.desktopservices DSDontWriteNetworkStores
1 

ネットワーク接続時に .DS_Store ファイルを作成する

ネットワーク接続時に .DS_Store ファイルを作成するようにするには、以下を実行します。

% defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool FALSE
% killall Finder  //Finder を強制終了(再起動)

設定を確認すると 0 (False)が返ります。

defaults read com.apple.desktopservices DSDontWriteNetworkStores
0

初期状態に戻す(設定を削除)

上記の設定を削除して初期状態に戻すには以下を実行します。

% defaults delete com.apple.desktopservices DSDontWriteNetworkStores
% killall Finder
//設定を確認
% defaults read com.apple.desktopservices DSDontWriteNetworkStores
//設定は存在しない(初期状態)
The domain/default pair of (com.apple.desktopservices, DSDontWriteNetworkStores) does not exist

Apple: macOS で SMB ブラウジングの動作を調整する

Chrome や Office のデフォルト言語を変更

Mac の場合、Google Chrome のデフォルト言語をブラウザの設定から変更することができませんが、defaults コマンドを使えば簡単に変更することができます(システム設定からも変更可能です)。

また、Office の Word や Excel なども同様に defaults コマンドを使ってデフォルト言語を変更することができます。

Chrome のデフォルト言語を変更

Mac で Chrome のデフォルト言語を変更する例です。

現在の Chrome の言語(AppleLanguages)の設定を確認します。

今までに defaults コマンドで Chrome のデフォルト言語を設定したことがない場合は、以下のように表示されます。

% defaults read com.google.Chrome AppleLanguages
//何も設定していない場合は、以下のように表示されます
The domain/default pair of (com.google.Chrome, AppleLanguages) does not exist

デフォルト言語を設定している場合は、例えば以下のように表示されます。もとに戻せるように値をメモしておきます。

% defaults read com.google.Chrome AppleLanguages
(
    "ja-JP"
)

以下はデフォルト言語を英語(en-US)に変更する例です。

% defaults write com.google.Chrome AppleLanguages '(en-US)'

「en-JP」でも英語にすることができます。※ システム環境設定から英語に変更した場合は en-JP が使用されています。

% defaults write com.google.Chrome AppleLanguages '(en-JP)'

Chrome を再起動します。

デフォルト言語を英語に変更するとメニューなどが英語になります。

日本語(ja-JP)に変更する場合は以下を実行します。その他の言語に変更するには以下の ja-JP の部分をその言語の値にします。

% defaults write com.google.Chrome AppleLanguages '(ja-JP)'

上記の操作で追加した設定を削除して、初期状態に戻すには以下を実行します。

% defaults delete com.google.Chrome AppleLanguages //AppleLanguages の値を削除
% defaults read com.google.Chrome AppleLanguages
//AppleLanguages の設定が削除されたので、以下のように表示されます
The domain/default pair of (com.google.Chrome, AppleLanguages) does not exist

以下は言語に指定できるタグの例です。

IETF language tags(一部)
言語 Tag
Japanese ja
Japanese (Japan) ja-JP
English en
English (United States) en-US
English (Great Britain) en-GB
English (Japan) en-JP
French fr
German de
Polish pl
Dutch nl
Finnish fi
Swedish sv
Italian it
Spanish (Spain) es
Portuguese (Portugal) pt
Russian ru
Portuguese (Brazil) pt-BR
Spanish (Mexico) es-MX
Chinese (PRC) zh-CN
Chinese (Taiwan) zh-TW
Korean ko

Office Word のデフォルト言語を変更

Office Word のデフォルト言語を変更する例です。

現在の Word の言語(AppleLanguages)の設定を確認します。

今までに defaults コマンドで Word のデフォルト言語を設定したことがない場合は、以下のように表示されます。

% defaults read com.microsoft.Word AppleLanguage
//何も設定していない場合は、以下のように表示されます
The domain/default pair of (/Users/xxxx/Library/Containers/com.microsoft.Word/Data/Library/Preferences/com.microsoft.Word, AppleLanguage) does not exist

以下はデフォルト言語を英語(en)に変更する例です。

% defaults write com.microsoft.Word AppleLanguages '(en)'

Word を再起動します。以下のようなデフォルト言語が変更されたメッセージが表示されるので OK をクリックします。

言語の設定を確認すると en(英語)になっています。

% defaults read com.microsoft.Word AppleLanguages
(
    en
)

デフォルト言語を日本語に変更するには、以下を実行します。

% defaults write com.microsoft.Word AppleLanguages '(ja-JP)'

Word を再起動します。以下のようなデフォルト言語が変更されたメッセージが表示されるので OK をクリックします。

言語の設定を確認すると ja-JP(日本語)になっています。

% defaults read com.microsoft.Word AppleLanguages
(
    "ja-JP"
)

上記の操作で追加した設定を削除して、初期状態に戻すには以下を実行します。

% defaults delete com.microsoft.Word AppleLanguages  //追加した設定を削除
% defaults read com.microsoft.Word AppleLanguages  //設定を確認(削除されている)
The domain/default pair of (/Users/xxxx/Library/Containers/com.microsoft.Word/Data/Library/Preferences/com.microsoft.Word, AppleLanguages) does not exist

Excel や Powerpoint も同様の方法でデフォルトの言語を変更することができます。

Office アプリ ドメイン
Word com.microsoft.Word
Excel com.microsoft.Excel
Powerpoint com.microsoft.Powerpoint

以下は defaults domains コマンドで microsoft を含むドメインを表示する例です。

% defaults domains | tr "," "\n"| grep 'microsoft'
 com.microsoft.Excel
 com.microsoft.Excel.securebookmarks
 com.microsoft.OneDriveStandaloneUpdater
 com.microsoft.OneDriveUpdater
 com.microsoft.Powerpoint
 com.microsoft.Powerpoint.securebookmarks
 com.microsoft.VSCode
 com.microsoft.Word
 com.microsoft.Word.securebookmarks
 com.microsoft.autoupdate.fba
 com.microsoft.autoupdate2
 com.microsoft.office
 com.microsoft.shared
システム環境設定から変更

アプリケーションの言語設定はシステム環境設定(システム設定)の「言語と地域」からも変更することができます。

但し、defaults コマンドと連動していないので、両方で変更すると混乱する可能性があるので、変更する場合はどちらかで行う方が良さそうです。

以下は macOS Ventura でのスクリーンショットです。

システム設定の「一般」から「言語と地域」を選択します。

アプリケーションの下の「+」をクリックします。

言語を変更したいアプリケーション(この例では Google Chrome)を選択します。

使用する言語(この例では English - 英語)を選択して「追加」をクリックします。

以下が表示されるので「今すぐ再起動」をクリックすると、アプリケーションが再起動して言語設定が反映されます。

Google Chrome を確認すると、メニューなどが英語になっています。

この時点で、defaults read で確認すると、例えば以下のようになっています(今までの設定により異なる可能性があります)。

% defaults read com.google.Chrome AppleLanguages return
(
  "en-JP",
  "ja-JP"
)

日本語に戻す

日本語に戻すには、設定した言語を日本語に変更し、再起動を求められるので再起動します。

日本語(システムデフォルト言語)に戻して、defaults read で確認すると以下のように表示されます。

% defaults read com.google.Chrome AppleLanguages return

The domain/default pair of (com.google.Chrome, AppleLanguages) does not exist

言語設定を削除

言語設定を削除には、対象のアプリケーションを選択して「ー」をクリックし、再起動を求められるので再起動します。