開発環境
自分用メモ

新規環境でのセットアップメモ

新規環境でのセットアップメモ

ホストOSはWindows 10。VirtualBoxでUbuntu16.04

Windows 10

CtrlとAltを置き換える

Macキーボード的配置にする。レジスタ書き換え、又はSharpKeysで書き換える。

os_01.jpg

どこでもEmacsショートカット

どこでもEmacs同様のカーソル移動、Deleteを使えるようにする。Ctrl-a、Ctrl-d など。実際には、Ctrlキーではなく、Caps Lockキーを使う。Caps Lockキーだと同時押しに対応してないので、先ほどのSharpKeysでCaps LockキーをScroll Lockキーに変えておく。

Keyhacを使って、Scroll Lockと各キー同時押しをカーソル移動などに割り当てる

config.py
import sys
import os
import datetime

import pyauto
from keyhac import *

def configure(keymap):
    keymap.replaceKey( "ScrollLock", 235 ) # for JP keyboard
    #keymap.replaceKey( "RCtrl", 235 ) # for JP keyboard
    #keymap.replaceKey( "CapsLock", 235 ) # for US keyboard
    keymap.defineModifier( 235, "User0" )
    keymap_global = keymap.defineWindowKeymap()
    keymap_global[ "U0-P" ] = "Up"
    keymap_global[ "U0-N" ] = "Down"
    keymap_global[ "U0-B" ] = "Left"
    keymap_global[ "U0-F" ] = "Right"
    keymap_global[ "U0-A" ] = "Home"
    keymap_global[ "U0-E" ] = "End" 
    keymap_global[ "Shift-U0-P" ] = "S-Up"
    keymap_global[ "Shift-U0-N" ] = "S-Down"
    keymap_global[ "Shift-U0-B" ] = "S-Left"
    keymap_global[ "Shift-U0-F" ] = "S-Right"
    keymap_global[ "Shift-U0-A" ] = "S-Home"
    keymap_global[ "Shift-U0-E" ] = "S-End" 
    keymap_global[ "U0-D" ] = "Delete"
    keymap_global[ "U0-K" ] = "S-End","Delete"
    keymap_global[ "U0-H" ] = "Back"
    keymap_global[ "U0-M" ] = "PageDown"
    keymap_global[ "U0-O" ] = "PageUp"
    #keymap_global[ "U0-RShift" ] = ""
    #keymap_global[ "U0-RShift-LShift" ] = "CapsLock"
    keymap_global[ "LCtrl-Q" ] = "Alt-F4" 
    keymap_global[ "LCtrl-W" ] = "Ctrl-F4" 
    #keymap_global[ "RWin-Enter" ] = "Alt-Enter"
    #keymap_global[ "U0-Tab" ] = "CapsLock"
    #keymap_global[ "U0-BackSlash" ] = "Insert"
    keymap_global[ "U0-Space" ] = "Ctrl-Space"

VSCode設定

UserSettings
// 既定の設定を上書きするには、このファイル内に設定を挿入します
{
    "window.title": "${activeEditorLong}",
    // Word Wrap
    "editor.wordWrap": "on",
    // Display white space
    "editor.renderWhitespace": "all",
    // Use tab for indent
    "editor.tabSize": 4,
    "editor.insertSpaces": false,
    "python.pythonPath": "C:/Users/tak/Anaconda3/python.exe",
    "python.linting.pylintArgs": [
        "--disable=W0312",
        "--disable=C0330",
        "--disable=C0326"
    ],
    "workbench.statusBar.visible": true,
    "java.errors.incompleteClasspath.severity": "ignore",
    // "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe",
    "window.zoomLevel": 0
}

インストールするソフト

  • ブラウザ (FireFox, Chrome)
  • プレイヤー (Irfan View, MPC-HC, VLC)
  • エディタ (VSCode、Sublime、サクラエディタ)
  • バイナリエディタ (Stirling)。右クリックの送るに追加しておく
  • その他 (Tera Term、ftp、Git、WinMerge)

Ubuntu (VirtualBox)

VirbualBoxの設定

ICH9、I/O APIを有効化、PAE/NXを有効化、準仮想化インターフェース=Hyper-V、VT-X/AMD-Vを有効化、ネステッドページングを有効化、ビデオメモリ=256MB(ディスプレイ数を8にしてから1に戻す)、3Dアクセラレーションを有効化、コントローラSATAでタイプ=AHCI、ホストのI/Oキャッシュを使う

(ホストOSがWindowsの場合はHyper-V、Linux系の場合はKVMが良いみたい)

インストール後

  • ソフトウェアを最新にする (念のため、この順番が良い)
    • Ubuntu Softwareから全部Updateしておく (固まるかもしれないので、topで処理状況を確認する)
    • sudo apt-get update
    • sudo apt-get upgrade
  • Guest Additions CDのインストール

Windowsとの共有フォルダのマウント

  • VBoxのメニューバー -> デバイス -> 共有フォルダ- -> 共有フォルダ-設定 で共有フォルダ設定する (例. win_share。自動マウント、永続化する)
  • マウントポイントをubuntu上で作る (例. ユーザ名 = tak)
    • mkdir /home/tak/Desktop/win_share
  • マウントする
    • sudo mount.vboxsf win_share /home/tak/Desktop/win_share

以前は、/etc/rc.localに追加することで起動時の自動マウントが出来たようだが、今は出来ない。。。

mount.sh
#!/bin/sh
sudo mount.vboxsf win_share /home/tak/Desktop/win_share

Windowsのデスクトップフォルダ全体を共有すると、Read Onlyになってしまう。

ターミナルのプロンプト変更

ユーザ名やマシン名を消して、カレントディレクトリのみ表示にする。code ~/.bashrc

.bashrc
if [ "$color_prompt" = yes ]; then
    # PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;34m\]\w\[\033[00m\]\$ '
else
    # PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
    PS1='${debian_chroot:+($debian_chroot)}\w\$ '
fi

ターミナルの言語設定

code ~/.bashrcで、最後の方に以下を追加。場合によっては、export LANG=Cの方がいいかも。

.bashrc
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8

どこでもEmacsショートカット

どこでもEmacs同様のカーソル移動、Deleteを使えるようにする。Ctrl-a、Ctrl-d など。実際には、Ctrlキーではなく、Caps Lockキーを使う。(先ほどの設定でホストOSであるWindows上でCaps LockキーをScroll Lockにしているので、実際には、Scroll Lock-a、Scrol Lock-dになる。)

Scroll LockキーをMeta_Lキーに変更する。

/usr/share/X11/xkb/symbols/pc
省略
    // modifier_map Mod1   { <META> };
    modifier_map Mod2   { <META> };
省略
    //key <SCLK> {  [  Scroll_Lock      ]   };
    key <SCLK> {    [  Meta_L       ]   };
省略

Meta_Lキーを押したときに、メニューバーを選択しない (ALT的な動作をさせない)

/usr/share/X11/xkb/symbols/altwin
// Meta is mapped to second level of Alt keys.
partial modifier_keys
xkb_symbols "meta_alt" {
    //key <LALT> { [ Alt_L, Meta_L ] };
    key <LALT> { [ Alt_L ] };
    key <RALT> { type[Group1] = "TWO_LEVEL",
                 //symbols[Group1] = [ Alt_R, Meta_R ] };
                 symbols[Group1] = [ Alt_R ] };
    // modifier_map Mod1 { Alt_L, Alt_R, Meta_L, Meta_R };
    modifier_map Mod1 { Alt_L };
//  modifier_map Mod4 {};
};

Autokeyを使って、ショートカットキーを登録する。例えば、Meta-fというホットキーに、keyboard.send_key("<right>")を割り当てる。AutoKeyを開いて、New->Folderで、mysettings/Autokeyを開く。その中に、設定済みファイル (https://github.com/take-iwiw/Autokey/archive/master.zip) をコピーする。

os_02.jpg

Start Applications (gnome-session-properties)に登録する

os_03.jpg

その他

shファイルを実行/編集選べるようにする

Files -> メニューバー -> Edit -> Preferences -> Behavior -> Executable Text Files -> Ask each time

Filesでアドレスバー表示にする

Ctrl-Lで切り替える。または、
gsettings set org.gnome.nautilus.preferences always-use-location-entry true

インストールするソフト

  • Visual Studio Code (MSのサイトから.debでダウンロード)
  • Autokey (Ubuntu Softwareから)

VSCodeをsudoで開く

sudo code --user-data-dir="." ファイル名