目次

それぞれのOSで使っているデスクトップアプリとその使い方など。デスクトップと言っても私はほとんどCLIしか使いませんので、多くはCLI Toolと補助アプリになります。

はじめに

私は主にArch Linux, macOS, Windows10のデスクトップを使います。Windows10だけはVirtualBoxで構築したものを主に使いますが、殆どは実機かVPN上に構築しています。

それぞれのOSには特徴が異なりますが、基本的なことはどのデスクトップでも可能になっているので、それほど違いはありません。

私の印象で言うとLinuxのデスクトップは自由度が高くコマンドライン系のアプリが多く、非常に扱いやすい印象です。反対にデザイン系のアプリは少なく、X上で再現されるため非常に貧弱です。

macはUnixの上に構築されているので、Unixコマンドが便利です。また、UIに強いこだわりがあり、そのためかデザイン系のアプリが豊富です。

Windowsは昔からあるOSでユーザーが多かったことから様々なGUIアプリが豊富です。しかし、コマンドラインが貧弱です。

このような違いが出てくるのは主にユーザーの数や特徴によります。

現在一番バランスが良いのはmacです。殆どの主要アプリは移植され、コマンドラインも扱いやすいので人気があります。ハードはApple製のみで統一されているため不満も少なく、快適に動作します。

壁紙

基本的にはターミナルを透過することもあり黒で設定する

CLI

CLIは使ってるものが多すぎて整理中

macOS

Name Text
iTerm2 ターミナル
Homebrew パッケージマネージャー
Karabiner キーボード・カスタマイズ、ショートカット
ShiftIt ショートカット
ClipMenu クリップボード
NoSleep スリープ抑止
VirtualBox 仮想環境
AppCleaner アプリ・アンインストーラー
TinkerTool 設定カスタマイズ
CCleaner クリーナー

Karabiner

~/Library/Application Support/Karabiner/private.xml

<?xml version="1.0"?>
<root>

  <vkopenurldef>
    <name>KeyCode::VK_OPEN_URL_APP_MacVim</name>
    <url type="file">/Applications/MacVim.app</url>
  </vkopenurldef>
  <vkopenurldef>
    <name>KeyCode::VK_OPEN_URL_APP_GoogleChrome</name>
    <url type="shell">
	    <![CDATA[
	    open "/Applications/Google Chrome.app" --args --disable-javascript --disable-java --disable-plugins --incognito
	    ]]>
    </url>
  </vkopenurldef>
  <vkopenurldef>
    <name>KeyCode::VK_OPEN_URL_APP_GoogleChrome_Default</name>
    <url type="file">/Applications/Google Chrome.app</url>
  </vkopenurldef>
  <vkopenurldef>
    <name>KeyCode::VK_OPEN_URL_APP_Terminal</name>
    <url type="file">/Applications/iTerm.app</url>
  </vkopenurldef>
 <vkopenurldef>
    <name>KeyCode::VK_OPEN_URL_APP_FireFox</name>
    <url type="file">/Applications/FireFox.app</url>
  </vkopenurldef>
 <vkopenurldef>
    <name>KeyCode::VK_OPEN_URL_APP_Safari</name>
    <url type="file">/Applications/Safari.app</url>
  </vkopenurldef>
 <vkopenurldef>
    <name>KeyCode::VK_OPEN_URL_APP_Finder</name>
    <url type="file">/System/Library/CoreServices/Finder.app</url>
  </vkopenurldef>

  <list>
    <item>
      <name>LeaveInsMode with EISUU(Terminal)</name>
      <identifier>private.app_terminal_esc_with_eisuu</identifier>
      <only>TERMINAL</only>
      <autogen>--KeyToKey-- KeyCode::ESCAPE, KeyCode::ESCAPE, KeyCode::JIS_EISUU</autogen>
      <autogen>--KeyToKey-- KeyCode::J, VK_CONTROL, KeyCode::J, VK_CONTROL, KeyCode::JIS_EISUU</autogen>
      <autogen>--KeyToKey-- KeyCode::BRACKET_RIGHT, VK_CONTROL, KeyCode::BRACKET_RIGHT, VK_CONTROL, KeyCode::JIS_EISUU,KeyCode::BRACKET_RIGHT, VK_CONTROL, KeyCode::BRACKET_RIGHT, VK_CONTROL, KeyCode::JIS_EISUU</autogen>
    </item>

  <item>
    <name>Open MacVim</name>
    <identifier>private.cmd_sh_v</identifier>
    <autogen>
      __KeyToKey__
      KeyCode::V, ModifierFlag::SHIFT_L, ModifierFlag::COMMAND_L,
      KeyCode::VK_OPEN_URL_APP_MacVim
    </autogen>
  </item>

  <item>
    <name>Open Terminal</name>
    <identifier>private.cmd_re</identifier>
    <autogen>
      __KeyToKey__
      KeyCode::Z, ModifierFlag::COMMAND_L, ModifierFlag::SHIFT_L,
      KeyCode::VK_OPEN_URL_APP_Terminal
    </autogen>
  </item>

  <item>
    <name>Open Chrome</name>
    <identifier>private.cmd_sh_g</identifier>
    <autogen>
      __KeyToKey__
      KeyCode::G, ModifierFlag::COMMAND_L, ModifierFlag::SHIFT_L,
      KeyCode::VK_OPEN_URL_APP_GoogleChrome_Default
    </autogen>
    <autogen>
      __KeyToKey__
      KeyCode::D, ModifierFlag::COMMAND_L, ModifierFlag::SHIFT_L,
      KeyCode::VK_OPEN_URL_APP_GoogleChrome
    </autogen>
  </item>

  <item>
    <name>Open FireFox</name>
    <identifier>private.cmd_sh_f</identifier>
    <autogen>
      __KeyToKey__
      KeyCode::F, ModifierFlag::COMMAND_L, ModifierFlag::SHIFT_L,
      KeyCode::VK_OPEN_URL_APP_FireFox
    </autogen>
  </item>

  <item>
    <name>Open Safari</name>
    <identifier>private.cmd_sh_s</identifier>
    <autogen>
      __KeyToKey__
      KeyCode::S, ModifierFlag::COMMAND_L, ModifierFlag::SHIFT_L,
      KeyCode::VK_OPEN_URL_APP_Safari
    </autogen>
  </item>

  <item>
    <name>Open Finder</name>
    <identifier>private.cmd_1</identifier>
    <autogen>
      __KeyToKey__
      KeyCode::KEY_1, ModifierFlag::COMMAND_L,
      KeyCode::VK_OPEN_URL_APP_Finder
    </autogen>
  </item>
  </list>

</root>

起動音をOFFにする

sudo nvram SystemAudioVolume=%00

ディスクのマウント

MacではなぜかNTFSでフォーマットされたディスクの書き込みを許しません。したがって、以下のように読み書きができるようマウントできるようになります。

ただし、書き込み後にディスク自体が壊れるという惨劇を発生させたので、おすすめしません、危険。

$ sudo mount -t ntfs -o rw,auto,nobrowse /dev/disk2s1 /mnt

rootユーザーを有効にする

$ dsenableroot

あとはcommand + shift + option + Qでログアウトして、rootでログイン後に/etc/sudoersを編集したりもできます。

復旧ディスクからターミナルでblessコマンドを実行する方法

$ diskutil list
disk0s1 200M EFI vfat
disk0s2 100G / ext4

$ cd /Volumes
$ mkdir efi
$ mount -t msdos /dev/disk0s1 /Volumes/efi

$ cp -r Image \Volume/System /Volumes/efi
$ cp /Volumes/efi/EFI/arch/grubx64.efi /Volumes/efi/System/Library/CoreServices/boot.efi
$ bless --folder=/Volumes/efi --file=/Volumes/efi/System/Library/CoreServices/boot.efi --setBoot

$ reboot

ブートメニューにアイコンを設定する方法

/.volumeicon.icnsを置くとできます。

#Macのディスクにアイコンを設定する
$ sudo cp 設定したいファイル /.volumeicon.icns

#復旧ディスクにアイコンを設定する
$ diskutil list
$ mkdir mnt
$ sudo mount -t hfs /dev/disk0s3 ./mnt
$ sudo cp 設定したいファイル ./mnt/.volumeicon.icns

年式を調べる

$ system_profiler -listdatatypes | peco | xargs system_profiler -detailLevel full -xml

Bluetoohの音質を良くする

# apt-Xを有効にする
$ defaults write com.apple.BluetoothAudioAgent "Enable AptX codec" -bool true

# 確認
$ defaults read com.apple.BluetoothAudioAgent

# 設定の削除
$ defaults delete com.apple.BluetoothAudioAgent "Enable AptX codec"

crontab相当をMacで使う

Macの場合は面倒ですが、以下のスケジュール機能のlaunchctlを使います。まず、設定ファイルを作成します。

~/Library/LaunchAgents/foo.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Label</key>
        <string>foo</string>
        <key>ProgramArguments</key>
        <array>
            <string>/usr/local/bin/zsh</string>
            <string>/Users/syui/bin/foo.sh</string>
        </array>
        <key>StartInterval</key>
        <integer>60</integer>
        <key>RunAtLoad</key>
        <true/>
    </dict>
</plist>

StartIntervalは秒を指定でRunAtLoadは自動起動の設定です。次に、スケジュールをロードします。オプションは、start, stop, unloadなど。

$ launchctl load ~/Library/LaunchAgents/foo.plist

Arch Linux

Name Text
i3 ウィンドウマネージャー(WM)
lilyterm ターミナル

Windows10

Name Text
Choco パッケージマネージャー
PowerShell コマンドシェル
MSYS2 Linuxターミナル・システム
Cygwin Linuxターミナル・システム
MinGW コマンドパッケージ
BoxStarter コマンドパッケージ
Busybox コマンドパッケージ
Sysinternals システム管理
VirtualStudio IEDエディタ
OpenSSH リモート

パスワード・ログインの無効化

Windows10でパスワードを設定してると、起動時にパスワード入力を求められるのですが、これを自動入力する方法。

C+r -> netplwiz

cmdの文字化け

リモートで文字化けする場合はchcp 65001に変更します。

ターミナルの文字化けはcmdのフォントも変更することで解決できるかもしれません。