各種ソフトウェアのセットアップ

はじめに

続きです
前の記事: Web開発環境をManjaro Linuxで構築してみる 2/3 (初回起動〜主要ソフトのインストール)

前回、色々とソフトをインストールしました。
細かいところが全体的に不便なので、各種設定で快適にします。
正直この時点で、おとなしくmacを使ったほうが楽だったのに...みたいな気持ちになっていたと思います。

ただ、macに戻ったところで文句を言い出すのはなんとなく予想できるので、自由度が売りのLinuxを使い「不便なのは自分が悪い」という状態のほうが精神衛生上良いのではないか?という思想で進めます。

ソフトウェアの設定関連

imwheelの設定

imwheelの設定を書きます。
.profileで使うので、.bashrc, .profileより先に書きました。

設定は全てのソフトで、1クリック(?)で3行スクロールするようになっています。
使っているマウスによって、一番うしろの "3" を変更してください。

~/.imwheelrc

".*"
None, Up, Button4, 3
None, Down, Button5, 3

.bashrc と .profile の設定

terminal-1

今回の自分の設定です。
manjaro、初期状態でもドライバが優秀でタッチパネルを使えたりしました。
使わないので切ります。

.profile

  • bashrc読み取り
  • タッチパネル無効化
    • デバイス名は環境や端末により違います
  • imwheel を起動
  • nvmのpathを通す
  • pyenvのpathを通す
[[ -f ~/.bashrc ]] && . ~/.bashrc

# xinput disable
xinput disable "G2Touch Multi-Touch by G2TSP"

# imwheel
imwheel -b "45" -k

# nvm
source /usr/share/nvm/nvm.sh
export NVM_DIR="$HOME/.nvm"

# pyenv
export PATH="$HOME/.pyenv/bin:$PATH"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

.bashrc

# bash-completionを読み込む
[ -r /usr/share/bash-completion/bash_completion   ] && . /usr/share/bash-completion/bash_completion

# ls に色をつける
alias ls='ls --color=auto'
# git-prompt
source /usr/share/git/completion/git-prompt.sh
# nvm
source /usr/share/nvm/nvm.sh

# プロンプトにgit関連の情報表示
GIT_PS1_SHOWDIRTYSTATE=1
GIT_PS1_SHOWUPSTREAM=1
GIT_PS1_SHOWUNTRACKEDFILES=
GIT_PS1_SHOWSTASHSTATE=1
export PS1='\[\033[1;32m\]\u\[\033[00m\]:\[\033[1;34m\]\w\[\033[1;31m\]$(__git_ps1)\[\033[00m\] \$ '

# 新しいターミナルを開いた時にディレクトリを引き継ぐ設定
if [ $TILIX_ID ] || [ $VTE_VERSION ]; then
	source /etc/profile.d/vte.sh
fi

bluetoothが起動時に起動するようにする

デフォルトだと起動時Bluetoothが無効になっているみたいです。
微妙に面倒なので、デフォルトで起動するように設定します。

/etc/bluetooth/main.conf

# AutoEnable=true

をコメントアウトすると起動時bluetoothが自動で有効になります。

日本語入力周りの設定

computer_keyboard_black

親切なManjaro Linuxですが、日本語入力周りはデフォルトでやってくれないのでこちらでセットアップします。

.pam_environmentに追記

GTK_IM_MODULE DEFAULT=fcitx
QT_IM_MODULE DEFAULT=fcitx
XMODIFIERS DEFAULT=@im=fcitx

fcitxの設定ツール(GUI)

日本語キーボード設定

入力メソッドを

  • キーボード-日本語
  • mozc

にする。

サジェスト無効化

アドオン > mozc > 設定 > 設定ツール > サジェスト

  • 入力履歴からサジェスト自動表示を有効にする
  • システム辞書からサジェスト自動表示を有効にする

を無効化

日本語ローマ字切り替え時の表示を消す

グローバルオプションの

  • 入力メソッドを切り替える際に入力メソッドの情報を表示する

を無効化

ディレクトリ名は日本語にしたくない

以下コマンドで立ち上がったGUIでディレクト名の変更ができます。
日本語->英語に変更します。

LANG=C xdg-user-dirs-gtk-update

次再起動時に、システムは日本語ですがディレクトリ名が英語なので直しますか?のようなことを聞かれるのですが、その時は「変更しない」、を選びます。

gnomeを整える

ここは完全に好みの部分です。
珍しがられるのですが、windows8.1のUIが結構好きです。
下側にタスクバーがあり、ホーム画面が全画面なのが好きなので、KDEではなくgnomeを選んでいます。

Gnomeの拡張機能を入れる

Chrome(Chromium)の拡張機能の GnomeShellIntegrationを使うとGnomeに拡張機能を追加したり、有効無効を切り替えたりできます。

無効化するもの

  • dash to Dock
    • macのDock風のものを消す

有効化(追加)するもの

  • dash to panel
    • windowsのタスクバーのようなものを追加します

gnomeの外観の設定はだいたい

  • 設定 > 外観
  • Tweaks

のどちらかで設定できるので色、テーマ、マウスカーソル等を好みのものに設定しましょう。

フォントを整える

font

自分は
UI、テキストは Source Han Sans
ターミナルとコーディングのフォントは Cascadia code
にしています。

pacmanでインストール

Source Han Sansはpacmanのリポジトリにあります。

sudo pacman -S adobe-source-han-sans-jp-fonts adobe-source-han-serif-jp-fonts

aurからインストール

cascadia-codeは現在aurからインストールします。

yay -S ttf-cascadia-code

足りないショートカットを設定する

gnomeのショートカットのwindowsライクではない箇所を調整しました。

  • 画面最大化が設定されていない
  • Alt+tabがアプリケーション単位なのでウィンドウ単位にしたい

設定 > キーボード > キーボードショートカット
で設定します。

VPN設定

internet_computer_wired

ここが一番しんどかったです。
L2TPでのVPNです

設定からGnomeの「設定」からやろうとして詰まりました
「nm-connection-editor」で細かい設定をするとGnomeの設定もその設定を読み込んで、GUIでオンオフできるようになりました。

networkmanager-l2tpとipsecを扱うためのstrongswanをインストール

pacman -S nm-connection-editor
pacman -S strongswan
yay -S networkmanager-l2tp

nm-connection-editor コマンドを打つとVPN設定のGUIが出てきます。
そこで設定をするとgnome周りも読み込んで「設定」やタスクバーからオンオフできるようになります。

VPNの設定ツールを出すコマンド

nm-connection-editor

dockerを導入する

Moby-logo

docker, docker-compose は pacman からインストール可能です

sudo pacman -S docker
sudo pacman -S docker-compose
sudo systemctl enable docker

dockerをsudoなしで実行したいので、userをdockerグループに追加します(再起動が必要)
開発用のクライアントマシンなので大丈夫、という判断です。

sudo gpasswd -a {ユーザー名} docker

セキュリティ対策

internet_firewall2

FW有効化

incommingをdenyにして、設定をリロードし、有効化します

sudo ufw enable
sudo ufw default deny
sudo ufw reload

アンチウイルスソフト導入

clamavというLinux向けのアンチウイルスソフトがあるのでそれを導入します。
clamtkはclamav向けのGUIソフトウェアです。
フォルダを選択してスキャンのような場合に使いやすくなります。

sudo pacman -S clamav clamtk
sudo systemctl enable clamav-daemon.service 
sudo systemctl enable clamav-freshclam.service

感想

LinuxであえてのGUI、設定はgnome関連で解決したい!のようなこだわりがありVPNの設定で足元を掬われて大苦戦をしてしまいました。
あの時間があったので今回備忘録残したほうが良いなということになって書いています。

環境を構築してみてManjaro Linuxは安定感があり、ある程度自由が効き、ユーザーフレンドリーなので、とても他人にお勧めできるディストリビューションだと言えると思います。

デスクトップ環境も軽量なものから多機能なものまで、インストールメディアの時点で多数用意されているので、プログラミングを触れてみたいけれど、macは高すぎる! と思ったら、最近ちょっと流行りの4万円前後のミニPC、あるいはwindows7が入っていた古いPCにでも Xfce版(軽量デスクトップ)のManjaro Linuxを入れてみるという選択肢は大いにありだと思います。

今回時間かけてLinux環境の構築をしましたが、Linuxを使うことによって生産性が上がるか?と言われると困るなと思いました。
今回の件や今までを振り返ると、ソフトウェアだけでなく、キーボード物理的な素材やマウスカーソルの速度だったり、作業環境の個人的なこだわりがやや強いことがだんだんわかったので、今はLinuxによる生産性向上というよりストレス軽減が近いのかなと思いました。

ちなみにエディタのこだわりは今のところないです。

今後、環境や道具だけでなく技術力も磨こうという意識の理由の一つになったのは良い事だなと前向きに捉えたいです。

また、これは業務とは関係ないかもしれないのですが、Manjaroのコミュニティリポジトリやwiki、Arch方面でもArchwikiやAURにたくさんお世話になっているので、ゆくゆくはそういったコミュニティに貢献できるようになりたいなと思っています。

現時点では特に何もできていないのですが、少しずつ触って理解を深めてフォーラムやリリースノートをチェックしてみて、書いてあることが理解できるようになる。というところから始めていこうと思っています。

最後まで読んでいただきありがとうございました。