カテゴリー
その他 社内SE

chromebook FireFoxの公式インストール Flatpak

Chromebookに使い勝手の良いデスクトップ版のFirefoxをインストールするには、LinuxのFlatpakでインストールするのが一番簡単である。

ただ、以前のFirefoxの公式ページにあるChromebook/ChromeOSへのFlatpak Firefoxのインストール方法に誤りがあり、インストールしても、ひと手間かけないと、Firefoxの起動ができなかった。その対策の記事を書こう書こうと思っているうちに、現在の公式ページが修正され、正しいインストール方法が記載されるようになってしまった。

悔しいので、私も以下にデスクトップ版のFirfoxインストール方法を示す。

1)[設定]-[デベロッパー]のページの[Linux開発環境]をONにする。(細かい方法はいろんなサイトに書いてあるので割愛。ディスクサイズは自動拡張されるのでデフォルトの10GBで良い。)

2)ブラウザのchromeを立ち上げ[Ctrl + Alt + t]でcroshタブを立ち上げる。

3)chroshタブで以下のコマンドを打つ。

vsh termina
lxc config set penguin security.nesting true
exit

4)Chromebook / ChromeOSを再起動する。(電源OFFしON)

5)ターミナルを起動する。(検索ランチャーでterminalと打つと出てくる)

6)ターミナルで以下のコマンドを打つ

sudo apt install flatpak
flatpak --user remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install firefox
# この後、どの種類のfirefoxをインストールするか選択肢が出るはず。
# stableという言葉が含まれている行の番号を入力するとOK。

これで検索ランチャーでFirefoxと検索するとFirefoxが出てきて起動できるようになる。

おまけ:Linuxを日本語環境にしてあげれば、Firefoxで日本語も使えるはずである。私は日本語化した後に上記インストールしたので多分としか言えないが、日本語が使えないようであれば、一旦、「flatpak uninstall org.mozilla.firefox」でfirefoxをアンインストールし、Linuxを日本語化した後、再度「flatpak install firefox」をすれば大丈夫だと思う。

ChromebookのLinuxの日本語環境化も探せば色々出てくるかと思うが、ターミナルでだいたい以下の感じのコマンドを打つ。

sudo apt install task-japanese fonts-ipafont locales-all
sudo localectl set-locale LANG=ja_JP.UTF-8
# ここで再起動
#(ターミナルのアイコンを右クリックで[Linuxをシャットダウン]をクリック、再度ターミナル起動)
sudo apt install fcitx-mozc
sudo vim /etc/systemd/user/cros-garcon.service.d/cros-garcon-override.conf
#---
# 以下を上のファイルの最後に追加
Environment="GTK_IM_MODULE=fcitx"
Environment="QT_IM_MODULE=fcitx"
Environment="XMODIFIERS=@im=fcitx"
Environment="GDK_BACKEND=x11"
#---

vim ~/.sommelierrc
#---
# 上のファイルに以下1行追加
/usr/bin/fcitx-autostart
#---
# 再起動(シェルフのアイコンを右クリックで[Linuxをシャットダウン]、以下略)

# fcitxの設定
fcitx-configtool

# GUIになるので、以下設定
#1.) [アドオン]タブで [Advanced] チェックボックスをオン
#2.) 一覧から [Fctix XIM Frontend] を選択してダイアログを開く
#3.) 「XIM で On The Spot スタイルを使う(起動中は変更できません)」チェックボックスをオン

カテゴリー
その他 社内SE

Code-server keyboad Layout 日本語化

VPSに入れてあるUbuntuにCode-serverをインストールして、ブラウザからアクセスしたところ、キーボードショートカットがうまく動かない。ターミナルを開く「Ctrl+Shift+@」を押しても反応がない。手元の日本語キーボードをCode-serverがUSのキーボードと認識しているのが原因のようだ。Keyboad Layoutをjaに変更したいのだが、表示される選択欄にjaはない。VPS上のUbuntuを日本語環境にしてみたりしたが効果がない。

仕方がないのでVS-CODEを立ち上げ、そこのKeyboad Layoutをまるっとコピーしたら、問題が解決した。

以下、方法を備忘録。

code-server 右下のLayout: USとなっているところをクリックします。
右下のLayoutがUS

上の画像の箇所をクリックすると、Keyboad Layoutの変更ができるので、そこで「Configure Keyboad Layout」を選択。

表示されたKeyboad Layoutの切り替え一覧から「Configure Keyboad Layout」を選択します。

表示されるkeyboadlayout.jsonに以下をコピーペーストし保存。(長いコードの下に設定の続きあり。)

{
	"layout": {
		"name": "00000411",
		"id": "",
		"text": "Japanese"
	},
	"rawMapping": {
		"Sleep": {
			"vkey": "VK_SLEEP",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"WakeUp": {
			"vkey": "VK_UNKNOWN",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"KeyA": {
			"vkey": "VK_A",
			"value": "a",
			"withShift": "A",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"KeyB": {
			"vkey": "VK_B",
			"value": "b",
			"withShift": "B",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"KeyC": {
			"vkey": "VK_C",
			"value": "c",
			"withShift": "C",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"KeyD": {
			"vkey": "VK_D",
			"value": "d",
			"withShift": "D",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"KeyE": {
			"vkey": "VK_E",
			"value": "e",
			"withShift": "E",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"KeyF": {
			"vkey": "VK_F",
			"value": "f",
			"withShift": "F",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"KeyG": {
			"vkey": "VK_G",
			"value": "g",
			"withShift": "G",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"KeyH": {
			"vkey": "VK_H",
			"value": "h",
			"withShift": "H",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"KeyI": {
			"vkey": "VK_I",
			"value": "i",
			"withShift": "I",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"KeyJ": {
			"vkey": "VK_J",
			"value": "j",
			"withShift": "J",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"KeyK": {
			"vkey": "VK_K",
			"value": "k",
			"withShift": "K",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"KeyL": {
			"vkey": "VK_L",
			"value": "l",
			"withShift": "L",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"KeyM": {
			"vkey": "VK_M",
			"value": "m",
			"withShift": "M",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"KeyN": {
			"vkey": "VK_N",
			"value": "n",
			"withShift": "N",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"KeyO": {
			"vkey": "VK_O",
			"value": "o",
			"withShift": "O",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"KeyP": {
			"vkey": "VK_P",
			"value": "p",
			"withShift": "P",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"KeyQ": {
			"vkey": "VK_Q",
			"value": "q",
			"withShift": "Q",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"KeyR": {
			"vkey": "VK_R",
			"value": "r",
			"withShift": "R",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"KeyS": {
			"vkey": "VK_S",
			"value": "s",
			"withShift": "S",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"KeyT": {
			"vkey": "VK_T",
			"value": "t",
			"withShift": "T",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"KeyU": {
			"vkey": "VK_U",
			"value": "u",
			"withShift": "U",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"KeyV": {
			"vkey": "VK_V",
			"value": "v",
			"withShift": "V",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"KeyW": {
			"vkey": "VK_W",
			"value": "w",
			"withShift": "W",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"KeyX": {
			"vkey": "VK_X",
			"value": "x",
			"withShift": "X",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"KeyY": {
			"vkey": "VK_Y",
			"value": "y",
			"withShift": "Y",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"KeyZ": {
			"vkey": "VK_Z",
			"value": "z",
			"withShift": "Z",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Digit1": {
			"vkey": "VK_1",
			"value": "1",
			"withShift": "!",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Digit2": {
			"vkey": "VK_2",
			"value": "2",
			"withShift": "\"",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Digit3": {
			"vkey": "VK_3",
			"value": "3",
			"withShift": "#",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Digit4": {
			"vkey": "VK_4",
			"value": "4",
			"withShift": "$",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Digit5": {
			"vkey": "VK_5",
			"value": "5",
			"withShift": "%",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Digit6": {
			"vkey": "VK_6",
			"value": "6",
			"withShift": "&",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Digit7": {
			"vkey": "VK_7",
			"value": "7",
			"withShift": "'",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Digit8": {
			"vkey": "VK_8",
			"value": "8",
			"withShift": "(",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Digit9": {
			"vkey": "VK_9",
			"value": "9",
			"withShift": ")",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Digit0": {
			"vkey": "VK_0",
			"value": "0",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Enter": {
			"vkey": "VK_RETURN",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Escape": {
			"vkey": "VK_ESCAPE",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Backspace": {
			"vkey": "VK_BACK",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Tab": {
			"vkey": "VK_TAB",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Space": {
			"vkey": "VK_SPACE",
			"value": " ",
			"withShift": " ",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Minus": {
			"vkey": "VK_OEM_MINUS",
			"value": "-",
			"withShift": "=",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Equal": {
			"vkey": "VK_OEM_7",
			"value": "^",
			"withShift": "~",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"BracketLeft": {
			"vkey": "VK_OEM_3",
			"value": "@",
			"withShift": "`",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"BracketRight": {
			"vkey": "VK_OEM_4",
			"value": "[",
			"withShift": "{",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Backslash": {
			"vkey": "VK_OEM_6",
			"value": "]",
			"withShift": "}",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Semicolon": {
			"vkey": "VK_OEM_PLUS",
			"value": ";",
			"withShift": "+",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Quote": {
			"vkey": "VK_OEM_1",
			"value": ":",
			"withShift": "*",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Backquote": {
			"vkey": "VK_UNKNOWN",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Comma": {
			"vkey": "VK_OEM_COMMA",
			"value": ",",
			"withShift": "<",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Period": {
			"vkey": "VK_OEM_PERIOD",
			"value": ".",
			"withShift": ">",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Slash": {
			"vkey": "VK_OEM_2",
			"value": "/",
			"withShift": "?",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"CapsLock": {
			"vkey": "VK_UNKNOWN",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"F1": {
			"vkey": "VK_F1",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"F2": {
			"vkey": "VK_F2",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"F3": {
			"vkey": "VK_F3",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"F4": {
			"vkey": "VK_F4",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"F5": {
			"vkey": "VK_F5",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"F6": {
			"vkey": "VK_F6",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"F7": {
			"vkey": "VK_F7",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"F8": {
			"vkey": "VK_F8",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"F9": {
			"vkey": "VK_F9",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"F10": {
			"vkey": "VK_F10",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"F11": {
			"vkey": "VK_F11",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"F12": {
			"vkey": "VK_F12",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"PrintScreen": {
			"vkey": "VK_SNAPSHOT",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"ScrollLock": {
			"vkey": "VK_SCROLL",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Pause": {
			"vkey": "VK_NUMLOCK",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Insert": {
			"vkey": "VK_INSERT",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Home": {
			"vkey": "VK_HOME",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"PageUp": {
			"vkey": "VK_PRIOR",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Delete": {
			"vkey": "VK_DELETE",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"End": {
			"vkey": "VK_END",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"PageDown": {
			"vkey": "VK_NEXT",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"ArrowRight": {
			"vkey": "VK_RIGHT",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"ArrowLeft": {
			"vkey": "VK_LEFT",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"ArrowDown": {
			"vkey": "VK_DOWN",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"ArrowUp": {
			"vkey": "VK_UP",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"NumLock": {
			"vkey": "VK_UNKNOWN",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"NumpadDivide": {
			"vkey": "VK_DIVIDE",
			"value": "/",
			"withShift": "/",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"NumpadMultiply": {
			"vkey": "VK_MULTIPLY",
			"value": "*",
			"withShift": "*",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"NumpadSubtract": {
			"vkey": "VK_SUBTRACT",
			"value": "-",
			"withShift": "-",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"NumpadAdd": {
			"vkey": "VK_ADD",
			"value": "+",
			"withShift": "+",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"NumpadEnter": {
			"vkey": "VK_RETURN",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Numpad1": {
			"vkey": "VK_END",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Numpad2": {
			"vkey": "VK_DOWN",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Numpad3": {
			"vkey": "VK_NEXT",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Numpad4": {
			"vkey": "VK_LEFT",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Numpad5": {
			"vkey": "VK_CLEAR",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Numpad6": {
			"vkey": "VK_RIGHT",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Numpad7": {
			"vkey": "VK_HOME",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Numpad8": {
			"vkey": "VK_UP",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Numpad9": {
			"vkey": "VK_PRIOR",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Numpad0": {
			"vkey": "VK_INSERT",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"NumpadDecimal": {
			"vkey": "VK_DELETE",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"IntlBackslash": {
			"vkey": "VK_UNKNOWN",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"ContextMenu": {
			"vkey": "VK_APPS",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Power": {
			"vkey": "VK_UNKNOWN",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"NumpadEqual": {
			"vkey": "VK_CLEAR",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"F13": {
			"vkey": "VK_F13",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"F14": {
			"vkey": "VK_F14",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"F15": {
			"vkey": "VK_F15",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"F16": {
			"vkey": "VK_F16",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"F17": {
			"vkey": "VK_F17",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"F18": {
			"vkey": "VK_F18",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"F19": {
			"vkey": "VK_F19",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"F20": {
			"vkey": "VK_F20",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"F21": {
			"vkey": "VK_F21",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"F22": {
			"vkey": "VK_F22",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"F23": {
			"vkey": "VK_F23",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"F24": {
			"vkey": "VK_F24",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Help": {
			"vkey": "VK_UNKNOWN",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Undo": {
			"vkey": "VK_UNKNOWN",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Cut": {
			"vkey": "VK_UNKNOWN",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Copy": {
			"vkey": "VK_UNKNOWN",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Paste": {
			"vkey": "VK_UNKNOWN",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"AudioVolumeMute": {
			"vkey": "VK_VOLUME_MUTE",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"AudioVolumeUp": {
			"vkey": "VK_VOLUME_UP",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"AudioVolumeDown": {
			"vkey": "VK_VOLUME_DOWN",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"NumpadComma": {
			"vkey": "VK_ABNT_C2",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"IntlRo": {
			"vkey": "VK_OEM_102",
			"value": "\\",
			"withShift": "_",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"KanaMode": {
			"vkey": "VK_UNKNOWN",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"IntlYen": {
			"vkey": "VK_OEM_5",
			"value": "\\",
			"withShift": "|",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Convert": {
			"vkey": "VK_CONVERT",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"NonConvert": {
			"vkey": "VK_NONCONVERT",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Lang1": {
			"vkey": "VK_UNKNOWN",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Lang2": {
			"vkey": "VK_UNKNOWN",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Lang3": {
			"vkey": "VK_UNKNOWN",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Lang4": {
			"vkey": "VK_UNKNOWN",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"ControlLeft": {
			"vkey": "VK_CONTROL",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"ShiftLeft": {
			"vkey": "VK_SHIFT",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"AltLeft": {
			"vkey": "VK_MENU",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"MetaLeft": {
			"vkey": "VK_LWIN",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"ControlRight": {
			"vkey": "VK_CONTROL",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"ShiftRight": {
			"vkey": "VK_SHIFT",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"AltRight": {
			"vkey": "VK_MENU",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"MetaRight": {
			"vkey": "VK_RWIN",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"MediaTrackNext": {
			"vkey": "VK_MEDIA_NEXT_TRACK",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"MediaTrackPrevious": {
			"vkey": "VK_MEDIA_PREV_TRACK",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"MediaStop": {
			"vkey": "VK_MEDIA_STOP",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"Eject": {
			"vkey": "VK_UNKNOWN",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"MediaPlayPause": {
			"vkey": "VK_MEDIA_PLAY_PAUSE",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"MediaSelect": {
			"vkey": "VK_LAUNCH_MEDIA_SELECT",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"LaunchMail": {
			"vkey": "VK_LAUNCH_MAIL",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"LaunchApp2": {
			"vkey": "VK_LAUNCH_APP2",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"LaunchApp1": {
			"vkey": "VK_LAUNCH_APP1",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"BrowserSearch": {
			"vkey": "VK_BROWSER_SEARCH",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"BrowserHome": {
			"vkey": "VK_BROWSER_HOME",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"BrowserBack": {
			"vkey": "VK_BROWSER_BACK",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"BrowserForward": {
			"vkey": "VK_BROWSER_FORWARD",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"BrowserStop": {
			"vkey": "VK_BROWSER_STOP",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"BrowserRefresh": {
			"vkey": "VK_BROWSER_REFRESH",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		},
		"BrowserFavorites": {
			"vkey": "VK_BROWSER_FAVORITES",
			"value": "",
			"withShift": "",
			"withAltGr": "",
			"withShiftAltGr": ""
		}
	}
}

code-serverからログアウトし、再度ログイン。

左上の三からメニューを表示し、「Sign out of code-server」をクリック
ログアウト方法

最後に一番最初のKeyboad Layoutの選択で「Japanese (User configured layout)」を選択すると日本語キーボードでもショートカットが使えるようになる。

変更されると右下の表示が「Layout: Japanese」になります。
こうなったらOK!

以上!

カテゴリー
その他 社内SE

Chromebook用メモ帳(Text editor PWA)

Chromebook (Chrome OS)用のテキストファイル用文字化け対策済みのアプリ(PWA)を以下リンクに公開します。PWAをインストールすれば完全にオフラインでも利用可能です。(ChromebookでSJISのテキストファイルを開けるようになります。)

メモ帳アプリ

PWA インストール方法

通常のPWAのインストールと同様です。メモ帳アプリを開いて上部アドレスバーに表示されるアイコンからインストールです。(表示されない場合は、アドレスバーでEnterを押して再読み込みしてみてください。)

PWAインストールボタン
PWAインストール確認画面

これでアプリとして「メモ帳」が登録されているので、検索ランチャーなどから呼び出せます。

ファイルから直接メモ帳を起動したい場合

ファイルをダブルクリックで表示など、ファイルから直接「メモ帳」を起動したい場合は、最初に実験的機能から、File Handling APIを選び、Enabledに設定します。

  1. アドレスバーにchrome://flagsと入力し、実験的機能を呼び出す。
  2. File Handling APIを探し、Enabledにする。
  3. Restart(再起動)する。(Chromebookが再起動されます。)
File Handling API

この状態でファイルアプリから適当なファイルを選び、右クリックから、以下の画像の要領で先程登録したメモ帳アプリを呼び出します。(画像のアプリ名は開発中のため異なります。。。)途中、許可を求められるので適宣許可ください。

ファイルから呼び出し

上の画像で「デフォルトを変更」を選ぶとテキストファイルをダブルクリックで開けるように設定もできます。

注意点

SJISのテキストファイルを読み込み表示/編集できますが、保存するとUTF-8になります。最近のWindowsのメモ帳はUTF-8がデフォルトですので、特に問題ないかとは思いますが、利用の際は注意ください。

その他

一度インストールすると完全にオフラインで動作します。サーバにファイルなどを送ることもないのでセキュリティ上も安心かと思います。

Shift-JISの他、EUC-JPも読めるようにしていますが、テストしていない(手元にEUC-JPのファイルがない)ので動かないかもしれません。

経緯

ChromeOSのTextアプリがShift-JISに対応していないため、古いテキストファイルを開くと文字化けていることがあり、その対策としてオープンソースソフトのSmart Text Editorを改変して作りました。本家のいらなそうな機能はバッサリ削っています。日本語対応以外で追加した機能は「名前を付けて保存」くらいです。短時間テストなしで改変したので、バグあるかもしれません。ソースはこちらに公開しています。(本家もかなりぐちゃぐちゃなコードです。何も気にせずぐちゃぐちゃ改変できるのでやりやすいといえばやりやすいのですが。。)

カテゴリー
その他 社内SE

HP Chromebook x360 14c レビュー(14c-cc 型番:518T8PA-AAAB)

家族で使用するためにChromebookを購入した。色々悩んだが、少し良いものをということで、HPの上位機種を選択した。スペックは「Core i3-1125G4 8GB 128GB SSD 14インチ フルHD」である。フルHDとあるが、設定から2194×1234まで解像度をあげられる。自動更新スケジュールは2029年6月までであった。

使って1週間ほどだが、総論としてとても気に入っている。思ったより軽く扱いやすいし、何よりフルHD IPSディスプレイがきれいである。WindowsやMACとは異なるOSなのでできることに制限はあるが、家族で利用する分には問題ない。Androidのアプリが使えるのも地味に良い。余談だが、子供の保育園の連絡帳がスマホアプリになり、スマホが苦手な私にとっては、ChromeBookを使ってキーボードで書けるようになりその点も嬉しい。

操作性

HPのChromebookというより、ChromeOSの操作性なのだと思うが、タッチパッドがよくできていて、マウスいらずである。それに加え、本製品はタッチディスプレイなのでマウスの出番はまったくない。この操作性の良さはMACのノートに近い。キーボードもキーピッチが20mm前後なので、特に打ちにくいこともない。

最近Windowsのノートも改善してきているが、タッチパッド絡みで言えば、やはりWindowsを使うならマウスのほうが良いし、それが残念ながら面倒なのだ。

動作

WEBを見る分には申し分ない。1週間でなれてしまったが、買って届いた日は、WEBの表示速度に「おっ」と驚いてしまった。起動は5,6秒ぐらいである。起動が速いので「ノートPC立ち上げるか。。。」のような億劫感は少なく、使いたいときにパッと使えるのが良い。この製品はシェルを開くと起動してくれるので起動ボタンを押す手間もない。ただ、起動時間に関して言えば、最近Windowsも頑張っているので、こちらのほうはよく見るChromeBookの宣伝ほどの驚きはなかった。

妻曰く、かなり良いとのことである。音にこだわりのない私の印象は、外付けスピーカーの音に比べると軽いという印象だったが、10年以上音楽をやっていた妻が言うなら良いのであろう。

映像、ディスプレイ

きれいである。Youtubeで自然ドキュメント系のフルHDの映像を見たが、ずっと見ていられる綺麗さであった。(ちなみに他の解像度の低い手持ちのデバイスではすぐに飽きてしまう映像である。)

また、上でも書いているが、フルHDなのに、設定から2194×1234まで解像度をあげられる。ただ、ここまで解像度を上げると字が小さくなりすぎるので、デフォルトの解像度は1536×864のまま今のところは使っている。

それと、主観ではあるものの、解像度1536×864のまま、YoutubeでフルHDの映像を見たときの映像の細かさはちゃんとフルHDが出ていそうである。あまり映像にこだわりのない私の感想ではあるが、解像度を上げてフルHDを見ても違いが見えないので多分Chrome OSにそういう機能があるのでは、と思っている。調べると以前は設定すればフォントやシェルフ以外の解像度を上げる機能がChromeOSにはあったらしい。今はその設定がなくなっているのでデフォルトになったのかもしれない。

カメラ

一応カメラアプリから自分を映して見てみたが、92万画素なのでそれなりである。WEB会議などで使う分には問題ないだろう。妻曰く、あまり細かく映るとアラが見えるおそれがあるため、少しボケてるぐらいが良いらしい。

電池持ち

ChromeBookの宣伝通り良い。フル充電で充分1日使える。家族がたまに(週に1、2時間ぐらい)使う分なら1ヶ月ぐらい充電無しで使えそうである。USBタイプCで充電可能なのもスマホの充電ケーブルと共用できて良い感じである。

購入の経緯

これまで、家族用のデバイスとして、メモリ2GBのタブレットをメインに、サブで10年前のMAC(Core i7 + SSD)を使っていた。最近タブレットが重くなり、かといってMACをいちいち出すのは億劫で、いろいろ考えた末、最近良く目にするChrombookの購入に至った。ちなみに自分用としてWindowsノートも2台持っているし、仕事柄、会社でもPCを色々購入しており、PCを見る目はなんとなくあるつもりである。

ChromeBookの選定にあたっては、はじめからHP製かFujitsu製のどちらかを購入するつもりであった。Asus製も目に入ってはいたが、これまで2度ほどAsus製品を購入し、どちらもすぐに壊れて印象が悪いので外した。Fujitsuの軽いPCとHPのコスパと迷った末にAmazonでセールとなっていたHP製の購入となった。