グレインの備忘録

プログラミング関係とかをつらつらと。

ArchLinuxにWifiマネージャとブラウザを入れる

以前に構築したArchLinux環境にWifiマネージャ的なものを入れてみる。

マネージャアプレットのインストール

NetworkManagerを入れてなければ、

$ sudo pacman -S networkmanager
$ sudo systemctl enable NetworkManager.service

で入れておく。

入れ終わったら、

$ sudo pacman -S network-manager-applet xfce4-notifyd gnome-keyring

これで終わり。再ログインしたら右上にアイコンが出るはず。

通知の設定

デフォルトだと通知の表示時間が10秒と長いので変更する。

左上の「アプリケーション」→「設定」→「通知」を開き、「Disappear After」を設定する。

f:id:grainrigi:20171202222705p:plain

ブラウザ

ブラウザはChromiumをチョイス。

火狐も使ってみたのだがなんだがうまく動かない模様。(文字が出ない)

$ sudo pacman -S chromium

おわり。

あとはフォントの設定をしておくこと。(デフォルトは英字がなんか変なので)

ArchLinuxのインストール 2.GUI(xfce)&日本語環境構築編

※この記事はArchLinuxのインストール 1.ファイルコピー編の続きです。

今回はGUIを入れていく。 以下のサイトを参考にした。

Arch LinuxにGUIデスクトップ環境を構築する Arch Linuxに日本語環境を構築する

GUI構築

1.グラフィックスドライバのインストール

GPUのメーカーや型番ごとにインストールするパッケージが異なる。

Intel

$ sudo pacman -S xf86-video-intel

AMD (HD7750-7970, R9 240-290)

$ sudo pacman -S xf86-video-amdgpu

AMD(上記以外)

$ sudo  pacman -S xf86-video-ati

nvidia

$ sudo pacman -S nvidia nvidia-utils

2.xserverのインストール

GUIのベースとなるxserverを入れる。

$ sudo pacman -S xorg-server xorg-apps xorg-xinit
$ sudo pacman -S mesa

xserverの動作確認をするには以下のコマンドを打つ。 (確認しなくても構わない。)

$ sudo pacman -S xorg-twm xorg-xclock xterm
$ startx

このあと画面が暗転して、質素なターミナルウィンドウが出れば成功。
マウスを動かせるかも確認しておくこと。
確認できたらexitでターミナルを閉じ、xsystemから抜ける。

※マウスを動かせない場合は、

$ sudo pacman -S xf86-input-synaptics

とすれば解消することがあるらしい。

3.キーコンフィグ

日本語106キーボードのキーマップを使うように設定する。

$ sudo vim /etc/X11/xorg.conf.d/10-keyboard.conf

ファイルが新規作成されるはず。(ディレクトリ名のX11は大文字なので注意。) 以下のように記述する。

Section "InputClass"
    Identifier                "Keyboard Defaults"
    MatchIsKeyboard "yes"
    Option                    "XkbLayout" "jp"
EndSection

4.デスクトップ環境のインストール

今回は軽さの割に使いやすいXfceを使う。

$ sudo pacman -S xfce4

入れたら一度起動テストをしてみる。

$ startxfce4

うまく行ったらLogoutで元に戻ってもいいし、ターミナルを開いて作業してもいい。

5.ディスプレイマネージャーのインストール

Xの自動起動+ログインマネージャみたいな感じ。

$ pacman -S lightdm lightdm-gtk-greeter

自動起動の設定もしておく。

$ sudo systemctl enable lightdm.service

あとは再起動してxfce自動起動することを確認する。


日本語環境構築

0.ロケールの生成

これはarchのインストール時にやっているはず。 自信がない場合は以下の方法で確認・再生成する。

まずは

$ sudo locale-gen

とやってみる。もし「ja_JP.UTF-8」的なのが出なかったら、

$ sudo vim /etc/locale.gen

で開いて、「ja_JP.UTF-8」のある行のコメントアウトを取る。 そして再び

$ sudo locale-gen

で生成完了。

1.ロケールの設定

$ sudo vim /etc/locale.conf

「LANG=なんちゃら」の行があればそれを書き換え、無ければ追加

LANG=ja_JP.UTF-8

2.フォントのインストール

個人的にはIPAexフォントが好きである。

これはAURにあるので、yaourtが必要。
(yaourtの入れ方はArchLinuxのインストール 1.5.yaourtのインストール編を参照のこと。)

$ yaourt -S otf-ipaexfont

yaourtが面倒な人は

$ pacman -S otf-ipafont

で普通のIPAフォントが入る。

フォントの適用が終わったら一旦再起動する。 再起動したら日本語表示に変わっているはずである。

フォントをきれいに表示

一応日本語フォントは表示されるが、少し汚く感じるかもしれない。(特に漢字)
この場合、ヒンティングを無効にすると改善されることがある。

「アプリケーション」→「設定」→「外観」で開いたウィンドウの「フォント」タブで設定できる。

f:id:grainrigi:20171202205745p:plain

ヒンティング:なし とすることで潰れた感じを抑制できる。

3.IMEのインストール

Ubuntuでも標準採用のfcitxとMozc(Google日本語入力)を使う。

$ sudo pacman -S fcitx-im fcitx-configtool fcitx-mozc

さらにIMEの設定をする。

$ vim ~/.xprofile

で開いて、以下の三行を追加。

export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=”@im=fcitx”

保存できたら再ログインして、「アプリケーション」→「設定」→「Fcitxの設定」を開く。

左下の「+」ボタンからMozcを追加して完了。


おまけ

外国語フォント

さっき入れたフォントだけでは表示できる言語が限られる。

フォント - ArchWikiに様々なフォントが載っているが、中には相性問題でXがフリーズするものもあるので注意が必要である。

基本的にsymbolaと花園明朝を入れておけば死角はないと思われる。

symbola

$ sudo pacman -S ttf-symbola

花園明朝]

以下からダウンロード。

Hanazono fonts

DLしたら、

$ unzip [zipファイル]
$ sudo cp HanaMin* /usr/share/fonts/TTF/
$ sudo chmod 644 /usr/share/fonts/TTF/HanaMin*
$ sudo fc-cache -vf

として展開&コピーする。 フォントはパーミッションが644でないとうまく動かないので注意する。

なお、fc-cache -vfはフォント情報を更新するコマンドである。

ArchLinuxのインストール 1.5.yaourtのインストール編

yaourt=非公式リポジトリ管理ツール。

ArchLinuxにはAURと呼ばれる非公式のリポジトリがある。 これはpacmanでは扱うことができない。代わりにyaourtを使うということである。

yaourtのインストール

まずはyaourtのあるレポジトリを追加する。

$ sudo vim /etc/pacman.conf

末尾に以下の三行を追加。

[archlinuxfr]
SigLevel = Never #署名を無視
Server = http://repo.archlinux.fr/$arch

リポジトリをアップデートし、yaourtを入れる。

$ sudo pacman -Sy
$ sudo pacman -S yaourt

yaourtの使い方

基本的にはAURで見つけてきたパッケージ名をくっつけて、

$ yaourt -S [パッケージ名]

とするだけ。 ちなみにsudoは必要ない。(yaourtが必要に応じて要求するので)

また、PKGBUILDを編集するかと聞かれることがあるが、基本的にNoで構わないっぽい。 (デフォルトはyesだが)

yaourtの設定

デフォルトでも割とちゃんと使えるが、いくつか設定しておくべき事項があるので設定しておく。

パッケージのエクスポート

yaourtはデフォルトでは一度ビルドしたパッケージはそのまま捨ててしまう。

これを、pacmanと同じように取っておくようにする。

$ sudo vim /etc/yaourtrc

開いたら、#EXPORT=0の行のコメントアウトを外し、

#Build
EXPORT=2

とする。これでパッケージをエクスポートしてくれるようになる。

makefileの設定

デフォルトだとマルチスレッド実行してくれないのでフラグを設定する。

$ sudo vim /etc/makepkg.conf

#MAKEFLAGS=の行を編集する。

MAKEFLAGS="-j8"

まあこんな感じ。スレッド数はお好みで。

ArchLinuxのインストール 1.ファイルコピー編

ArchLinuxのインストール方法をメモ。

※これは2017年12月現在の情報であり、将来この方法がそのままでは通用しなくなる可能性は高い。  何かおかしいことがあれば必ず自分で調べること。(特にパッケージ名の変更など)

基本はArchWiki

ArchWikiの内容は極めて詳細かつ的確であり、基本的にこれを頼りにしていけば良い。 インストールガイド - ArchWiki

ここには補足事項をまとめておく。

Wifiへの接続

Archのライブ環境が起動したら、インターネットへの接続を行う必要がある。 Wifiの接続の仕方は色々書いてあるが、以下が一番楽だった。

# wifi-menu -o

これであとはダイアログに従って接続するだけ。

便利なパッケージのインストール

arch-rootでインストール先の環境に入ったあとは、pacmanで好きなパッケージを入れられる。 vimなどの必要そうなパッケージを入れておこう。

Wifi接続パッケージ

Wifiを使う場合は

# pacman -S networkmanager iw wpa_supplicant dialog
# systemctl enable NetworkManager

でネットワークマネージャを入れておくべき。(nmcliとwifi-menuが使えるようになる。)

実際に使うときは

# nmcli dev wifi connect [SSID] password [パスフレーズ]

でいける。

GRUBのインストール

ここだけArchWikiの説明が少ない。

GRUBをインストールするには、arch-chrootした状態で

# pacman -S os-prober grub
# grub-install --target=i386-pc --recheck /dev/sdx ※目的のドライブを指定する
# grub-mkconfig -o /boot/grub/grub.cfg

とする。(BIOSでない場合はこちらを参照のこと。)


以上でファイルのコピーは完了。 再起動すればArchLinuxが使えるようになる。

LibreOffice DrawでLaTeX文書用の格好良い図を作る

巷のLaTeX文書によく埋まってるかっこいいグラフや図を自分で作ってみる。

LibreOffice Drawで図を描く

LibreOffice Drawはドロー系の描画ソフトで、ベクター画像を生成することができる。

ラスタ画像とは違って拡大してもぼやけたりすることがないのが特徴である。(要するに形状そのものの情報を出力する)

グラフっぽい図を書いてみる

Drawでは式を指定してグラフを描くことはできないが、ベジェ曲線を用いて概形を描くことはできる。

試しに三次関数っぽいグラフを作ってみる。

まずは矢印ツールで座標平面を作る。

f:id:grainrigi:20171008234439p:plain

次に、ベジェ曲線描画ツールを使ってグラフ本体を描く。

f:id:grainrigi:20171008235524p:plain

このツールには癖があり、以下のように制御点を配置する。

  1. 最初の制御点の位置でクリック
  2. そのままマウスをドラッグして制御バーを伸ばす
  3. 伸ばせたらマウスボタンを離し、次の制御点の位置をクリック
  4. そのままマウスをドラッグして制御バーを伸ばす
  5. 以降その繰り返しで、終点ではマウスをダブルクリック

正直操作性が悪いので一発ではうまく行かない。(ホントは制御点だけポチポチ配置できればいいのだが。)

後から修正するには曲線を選択し右クリックメニューから「制御点の編集」を有効にする。

f:id:grainrigi:20171009001447p:plain

手動で調整するとそれなりの形ができる。

f:id:grainrigi:20171009001752p:plain

TeX数式を挿入する

Drawはプラグインを導入することでTeXの数式を挿入できる。

TexMaths Homepage

このサイトからプラグインをダウンロードできる。

導入後Drawを再起動すると、左上にメニューが現れる。

クリックすると入力画面が現れるので、TeX数式を入力すれば良い。

ただし、横の「Transparency」にチェックを入れるのを忘れないこと。(これをしないと背景が白くなってしまう)

適当に字を付けてみた。

f:id:grainrigi:20171009004240p:plain

LaTeX文書に画像を埋め込む

先ほどの画像をLaTeX文書に埋め込んでみよう。

まずは、Drawのツールバーの、保存ボタンの右の「エクスポート」からエクスポートする。

形式は必ず「EPS」にし、文書と同じディレクトリに保存する。

あとは、以下のようにして埋め込む。(ここでは「image.eps」に保存したと仮定する。)

\documentclass{jsarticle}
\usepackage{graphicx}

\begin{document}
画像を挿入
\begin{figure}[h]
  \centering
  \includegraphics{image}
  \caption{グラフ}
\end{figure}
\end{document}

ポイントとしては、

  • \usepackage{graphicx}が必須(\includegraphics用)
  • \begin{figure} 〜 \end{figure}内に図を配置する
  • \begin{figure}の後ろの[]には配置指定子を入れる。h:その場所、t:ページ上部、b:ページ下部、p:別ページ
  • \captionで図の名前を入れられる(番号は自動振り)

文書例

さっきの図とは違うものだが、図とLaTeXを活用すればこのような文書もできる。

ソース

\documentclass{jsarticle}
\usepackage{graphicx}
\usepackage[top=30truemm,bottom=30truemm,left=30truemm,right=30truemm]{geometry}

\begin{document}
\large

\section{微分の基本定義}

まずは、関数$y=f(x)$の平均変化率を考えてみる。
\begin{figure}[h]
    \centering
    \includegraphics[width=95mm]{diff}
    \large
    \caption{関数の平均変化率}
\end{figure}

$x$$a$から$\Delta x$だけ変化した時の$f(x)$の平均変化率は、図のように変化前後の2点を通る直線の傾き、即ち$\frac{\Delta y}{\Delta x}$で表される。ここで、$\Delta x$を0に近づけていくと、2点を結ぶ直線は$x=a$における接線に近づいていく。$\Delta x$を限りなく0に近づけていった時の直線の傾き、即ち瞬間の変化率を関数$f(x)$$x=a$における微分係数といい、

\[f'(a)=\lim_{\Delta x \to 0} \frac{\Delta y}{\Delta x} = \lim_{h \to 0} \frac{f(a+h)-f(a)}{h}\]

というふうに記号$f'(a)$を用いて表す。

さらに、関数$f(x)$の任意の点における微分係数を表す関数を導関数といい、記号$f'(x)$で表される。


\end{document}

文書

f:id:grainrigi:20171009005914p:plain

かなり格好いい感じになる。

NeomakeでC++11の構文チェック

以前の記事でNeomakeによる構文チェックを行っていたが、C++11のキーワードを認識してくれないようだ。

やり方を調べたらドンピシャのページがあった。

github.com

tomlに赤字部分を書き足した。

repo = 'neomake/neomake'
 on_i = 1
 hook_post_source = '''
    autocmd! BufWritePost * Neomake
    let g:neomake_cpp_enable_markers=['clang']
    let g:neomake_cpp_clang_args = ["-std=c++14", "-Wall"]
    let g:neomake_cpp_clangcheck_args = ["-std=c++14", "-Wall"]
 '''

C++11対応のみならず、任意のコンパイルオプションを渡せる模様。

なお、最初のenable_makersの必要性は謎である。

Gitで部分コミット・Hunk破棄など

SourceTreeから乗り換えて、生のGitを使っている中でHunkの取り扱いがわからなかったのでメモ。

Hunkのステージ(部分コミット)は git add -p

基本は「-p」オプションを付ければうまくいく。

ステージングの場合においては、

$ git add -p [file]

とすることで、以下のようにHunkごとに取り込むか否かを聞いてくる。

$ git add -p dein_lazy.toml
diff --git a/nvim/dein_lazy.toml b/nvim/dein_lazy.toml
index 848ac2a..56daa89 100644
--- a/nvim/dein_lazy.toml
+++ b/nvim/dein_lazy.toml
@@ -57,4 +57,7 @@ on_i = 1
 [[plugins]]
 #neomake
 repo = 'neomake/neomake'
-
+on_i = 1
+hook_post_source = '''
+   autocmd! BufWritePost * Neomake
+'''
Stage this hunk [y,n,q,a,d,/,e,?]? 

yで取り込み、nで取り込まない、となる。

?を入力すると他のコマンドの意味も出てくる。

y - stage this hunk
n - do not stage this hunk
q - quit; do not stage this hunk or any of the remaining ones
a - stage this hunk and all later hunks in the file
d - do not stage this hunk or any of the later hunks in the file
g - select a hunk to go to
/ - search for a hunk matching the given regex
j - leave this hunk undecided, see next undecided hunk
J - leave this hunk undecided, see next hunk
k - leave this hunk undecided, see previous undecided hunk
K - leave this hunk undecided, see previous hunk
s - split the current hunk into smaller hunks
e - manually edit the current hunk
? - print help

sでHunkを分割したり、eで編集したりできるようだ。

Hunkのアンステージは git reset -p

当該ファイルにステージ済みのHunkがある場合には、

$ git reset -p [file]

とすることでHunkのアンステージを行える。

操作はgit add -pと同じである。

Hunkの破棄は git checkout -p

Hunkの破棄は

$ git checkout -p [file]

でできる。操作は上2つと同じである。


また、いずれのコマンドにおいても、ファイル名を指定しないと全ファイルを対象にコマンドを実行したのと同じになる。