2015年9月28日月曜日

デスクトップにマシン情報を表示 conky


実際に見たほうが早いと思うので・・・



画面右の情報表示を行うようにします。

これのためのプログラムは「conky」です。

インストール

まずはインストールですが、これはいつもと同じ

$ sudo pacman -S conky

であっさり入ります。が、実行すると画面左上に禍々しい黒いウインドウが出るだけなのでカスタマイズします。

カスタマイズの準備

というわけでカスタマイズを調べると、conkyは相当自由にカスタマイズできるみたいです。中でもluaスクリプトというものを使うと好きに描画できるらしい。

こちらに例がありました。すごいですね。

しかし、今回はそこまでは必要ないのでもう少し簡単に編集します。luaが使いたい人はAURのパッケージを使わないとダメなのかもしれません。

後で気がついたのですが、

$ conky --version

を実行すると必要な情報が出てくるんですね・・・
conky 1.10.0
System config file: /etc/conky/conky.conf
Local configfile: $HOME/.conkyrc
とか、編集したらいいようなことが書いてあります。が、インストールしただけでは/etc/conkyが存在しなかったので設定ファイルの書き方がわからなくて苦労しました。
最初のとりかかりは
$ conky -C > ~/.conkyrc

を実行することでした。これで、最初の設定ファイルがホームディレクトリの.conkyrcに入りますのでこれを編集すれば良いわけです。

設定ファイルの書式

ネット上でconkyについて調べたのですが、設定ファイルをそのままコピーしてもうまく動きませんでした。なんでかなーと思ったのですが、バージョンの違い?なのか設定ファイルの書き方が全然違うみたいです。

上記の方法で書きだしたファイルを見ると、

 
conky.config = {
 設定の記述
}

conky.text = [[
 表示部分の記述
]]
という形になっていました。 しかも、ネット上の情報では設定の記述部分の設定値を有効にするのにyes/noが使われていますが、書きだしたファイルはtrue/falseだったりしています。似ているけど全然ちがうし。

使いたい設定の記述部分の名称は
$ man conky
するのが間違いありませんが、こちらの方のサイトが大変わかり易かったので参考になると思います。

もうあとは好きなようにやってくださいということですが、ハマったのでもう少しヒントを書きます。

設定の記述部分

まず、コメントが使えません。行頭を#にしても意味がないのは、

 
conky.config = {
    alignment = 'top_left',
    background = false,
....

という感じで、実際は,(カンマ)で区切られた値の羅列だからのようです。 なので、最後の行は行末にカンマをつけないようにしないといけません。その他の行は全部つけないといけません・・・。数値と、true\falseの値は何もつけなくていいですが、文字列の値はシングルクォートで囲ってください。これでいいと思います。

テキストの記述部分

${color 色名}でそこから後ろの色を変更できます。デフォルトに戻すときは${color}で戻ります。

if_matchとかを使えば分岐も可能です。
 
${if_match $memperc < 90 }${color white}${membar 11,50}${color}${else}${color red}${membar 11,50}${color}${endif} 

だと、メモリのパーセンテージが90以下ならmembarを白で表示。それ以外なら赤で表示となります。これでメモリが不足してきたら赤になるのですぐにわかるはず!!

${alignc}は中央揃え、${alignr}は右揃えにします。

とりあえずこれくらい知っていればなんとか書けると思います。

その他ハマった点

透過をさせるのにハマりました。
結論から言うと、設定の記述で
 
own_window = true,
own_window_transparent = true,
own_window_type = 'normal',
own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager',

と書いたら透過できました。一番のキモはown_window_typeをnormalにすることです。これ以外の設定値だと、デスクトップをクリックしたらconkyが消えます。しかし、これにするとウインドウの上の部分とかもついてしまうので、own_windows_hintで消すというのが良かったようです。

暫定的な.conkyrc

 
-- vim: ts=4 sw=4 noet ai cindent syntax=lua
--[[
Conky, a system monitor, based on torsmo

Any original torsmo code is licensed under the BSD license

All code written since the fork of torsmo is licensed under the GPL

Please see COPYING for details

Copyright (c) 2004, Hannu Saransaari and Lauri Hakkarainen
Copyright (c) 2005-2012 Brenden Matthews, Philip Kovacs, et. al. (see AUTHORS)
All rights reserved.

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program.  If not, see .
]]

conky.config = {
use_xft = true,
font = 'TakaoPGothic:style=Regular:size=10',
xftalpha = 0.8,
update_interval = 1.0,
total_run_times = 0,
own_window = true,
own_window_transparent = true,
own_window_type = 'normal',
own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager',
double_buffer = true,
maximum_width = 200,
draw_shades = false,
draw_outline = false,
draw_borders = false,
draw_graph_borders = false,
default_color = "DDDDDD",
default_shade_color = "FFFFFF",
default_outline_color = "FFFFFF",
alignment = 'top_right',
gap_x = 12,
gap_y = 12,
no_buffers = true,
uppercase = false
}



conky.text = [[
 
${color}$alignr${time %x %A}
$alignr${time %X} 
${hr}
Uptime:$alignr $uptime
Hostname: $nodename
Linux Kernel: $kernel
${hr}
${color white}CPU ${color}$alignr Freq: $freq(MHz) 
CPU Total: $alignr ${cpu cpu0}% ${cpugraph cpu0 11,80 FFFFFF 003300}
${hr}
${color white}RAM: ${color}$alignr $mem ($memperc%) ${if_match $memperc < 90 }${color white}${membar 11,50}${color}${else}${color red}${membar 11,50}${color}${endif} 
Available RAM: $memmax
${memgraph 11,200  FFFFFF 003300}
${hr}
${color white}Hard drive: $alignr ${color}${fs_size}
Free: ${fs_free /boot}$alignr(${fs_free_perc /boot}%)
Used: ${fs_used /}$alignr(${fs_used_perc /boot}%)
${color white}${fs_bar 11,200}${color}
${diskiograph 11,200 FFFFFF 003300}
${hr}
${if_match "${acpiacadapter}" == "on-line"}AC Plugged $alignr$battery
${color 3333ff}${battery_bar 11,200 }${color}
${else}${color white}Battery Using ${color}$alignr$battery
${if_match $battery_percent > 20 }${color green}${battery_bar 11,200 }${color}${else}${color red}${battery_bar 11,200 }${color}${endif}
${endif}${hr}
${color white}$alignc Current Networks

${color white}Wired: $alignr Wireless:
${color}Down:${downspeed enp0s25} $alignr Down:${downspeed wlp12s0}
${color}Up:${upspeed enp0s25} $alignr Up:${upspeed wlp12s0}
${hr}
${color white}$alignc Top 5 sorted by CPU usage

${color white}NAME                   PID    CPU%
${color}${top name 1} ${top pid 1} ${top cpu 1}
${color}${top name 2} ${top pid 2} ${top cpu 2}
${color}${top name 3} ${top pid 3} ${top cpu 3}
${color}${top name 4} ${top pid 4} ${top cpu 4}
${color}${top name 5} ${top pid 5} ${top cpu 5}
]]

で、外見はこんな感じになりました。




目次に戻る

2015年9月22日火曜日

ネットワークのアイコンを変える

今日のお題はネットワークのアイコンを変えることです。

 

とりあえずつながっていることはわかります。が、無線LANならやっぱり電波の強弱も知りたいところ。また、クリックしても新しい設定を追加できないのが不便。

何か方法はないでしょうか??

NetworkManagerの導入

どうもNetworkManagerというものを導入すれば良いようです。とりあえずArchLinuxの場合はマニュアルを見るところから始めます。

現状OpenBoxを使っているので、ここの項目を見ると
  • xfce4-notifyd (通知を使うため)
  • gnome-icon-theme(システムトレイにアプレットを入れるため)
  • gnome-keyring(ネットワークの設定を保存するため)
が必要とのこと。

ところで今なんでネットワークが繋がるかというと、インストールの途中で

# systemctl enable dhcpcd
# systemctl enable netctl-auto@ネットワークアダプタ名

を実行したのでdhcpcdとnetctl-autoが有効だから。NetworkManagerを導入するとこれがぶつかってしまうはずなので、これを無効にしないといけない。
何をやったのか忘れていると、止めるのを忘れてなんで動かないんだろう??となるので注意。

インストール開始
$ sudo pacman -S networkmanager network-manager-applet xfce4-notifyd gnome-icon-theme gnome-keyring

無線のアダプタ名って何だっけ?
$ ip link

今起動しているサービスを確認
$ systemctl --type=service

dhcpcdとnetctl-autoを両方停止
$ sudo systemctl disable dhcpcd.service
$ sudo systemctl disable netctl-auto@.service

ネットワークマネージャーを有効に
$ sudo systemctl enable NetworkManager.service

rebootして有効に
$ reboot

うまく行けばタスクトレイに無線LANの階段状アイコンが現れる


ネットに繋がっていないと思うので、階段状のアイコンをクリックしてSSIDを選択し、パスワードを入れて接続する。

左のネットワークアイコンが邪魔なので右クリック「パネルのアイテムの追加と削除」で「ネットワークの管理」をマイナスボタンを押して消す。


これで予定通りになりました。ちょっと便利になった。


目次に戻る

画面をキャプチャーできるようにする

とりあえず使えるレベルになったので、ここから投稿できるように画像をキャプチャできる環境を作ってみます。

どうやってキャプチャするか

さて、どうやって取れるようにするかですが、とりあえずマニュアルを見ましょう。

スクリーンショットの取得を見るといくつか方法があります。

「GIMP」を導入すればキャプチャもできるし、編集もできるのでいいですね。

しかし「ImageMagick/GraphicsMagick」を使ってキーボードショートカットを使うというのも悪くありません。

せっかくだから、両方できるようにしてみましょう。

GIMPを導入

まずはGIMPからいってみましょう。
$ sudo pacman -S gimp

途中で見つからないパッケージがありそうだったけど、無事見つかったのであっさりインストールできました。

早速起動します。スタート→グラフィックス→GIMP

画面キャプチャを実行します。ファイル→画像の生成→スクリーンショット

選択範囲をキャプチャするを選択し、スナップボタンを押します。マウスでドラッグして範囲決定。

これでキャプチャできました。

ファイル→エクスポートでPNGファイルで書き出し、~/Pictures/Capture/の中に保存してみます。


はい。貼ってみました。とりあえず使えることがわかりました。
ちなみに、ウインドウを指定して取り込んでみたらいろいろ切れてました・・・

ImageMagick/GraphicsMagickを導入

importというコマンドを使うために、imagemagickというパッケージを導入します。

$ sudo pacman -S imagemagick

あっさり入りました。

$ import ~/Pictures/Capture/sc.jpg

を実行すると、さっきのようにマウスで選択した部分がカットされて保存できます。


はい。保存できました。便利ですが、コマンドで実行するのも面倒なのでショートカットを登録します。
マニュアルの「他のデスクトップ環境やウィンドウマネージャ」を見ると方法が書いてありました。rc.xmlにキャプチャするコマンドを書けば良いと。

「なるほど。で、rc.xmlって何?」

と調べてみると、
各ユーザフォルダの、~/.config/openbox/lxde.rc.xml
がそれに該当するようです。

ファイルの中身を見てみると、途中に

    <keybind key="Print">
      <action name="Execute">
        <command>gnome-screenshot -i</command>
      </action>
    </keybind>
みたいなところがあります。どうやらこうやって書いておくと設定できるようです。
試しにPrintScreenを押してみると、gonome-screenshotが起動できませんと言われました。

シェルスクリプトを作って挑戦

マニュアル通りではなく、ちょっとだけ便利にWindowsみたいにキャプチャできるようにしてみます。ここのページの説明を使ってスクリプトを作ってみます。

まずいきなりxpropというコマンドがありません。
$ pacman -sSq xprop
で探したらxorg-xpropだというので

$ sudo pacman -S xorg-xprop

でインストール。

$ xprop -root | grep ^_NET_ACTIVE_WINDOW

_NET_ACTIVE_WINDOW(WINDOW): window id # 0x2000004

というようにアクティブウインドウの情報が取れたので最後のIDだけ切り取るようにします。

$ xprop -root | grep ^_NET_ACTIVE_WINDOW | awk '{print $5}'
これで0x2000004だけが出てきました。

$ nano screenshot
#!/bin/sh

OUT=~/Pictures/Capture/$(date '+%Y%m%d-%H%M%S').png
WID=root

if [ "x$1" != "x-root" ]; then
    WID=`xprop -root | grep ^_NET_ACTIVE_WINDOW | awk '{print $5}'`
    [ "x$WID" == "x0x0" ] && WID=root
fi
import -frame -window $WID $OUT

$ chmod 755 screenshot
で実行できるようにして、
$ ./activew_screenshot
でアクティブなウインドウが保存できました。

$ ./activew_screenshot -root
で、全画面もキャプチャできます。

通っていなかったので、ユーザフォルダのbinにパスを通します。最初に.zshrcに通したら、openboxから見えませんでした・・・。

$ nano ~/.xprofile
export PATH=~/bin:$PATH

再起動するとパスが通ります。

$ which screenshot
で探せればパスは通ったはずです。

最後に、~/.config/openbox/lxde.rc.xmlを再度編集。
    <keybind key="Print">
      <action name="Execute">
        <command>screenshot -root</command>
      </action>
    </keybind>
    <keybind key="A-Print">
      <action name="Execute">
        <command>screenshot</command>
      </action>
    </keybind>

これで、PrintScreenボタンで全画面キャプチャ、Alt+PrintScreenボタンで特定のウインドウキャプチャになりました。


これで画像が投稿できる(笑)


目次に戻る

フォントの設定

フォントの設定について

最初のままだと、なんとなくフォントが滲んで見えます。Windowsほどでは無くとも調整でもう少し読みやすくできるので調整を行います。

ArchLinuxマニュアルのフォント設定を確認するのがおすすめです。

設定方法

/etc/fontsフォルダの中に、fonts.confというファイルがあるのですが、このファイルは fontconfig がアップデートしたときに置き換えられるので編集してはいけません。

通常設定するときは、
/etc/fonts/conf.avail/の中にあるプリセットのファイルを、
/etc/fonts/conf.d/の中にシンボリックリンクすることで有効にします。

例:
# cd /etc/fonts/conf.d
# ln -s ../conf.avail/10-sub-pixel-rgb.conf

プリセットに設定したいものがない場合は新しくファイルを作ればOKです。

プリセットフォルダ(/etc/fonts/conf.avail/)の中を見てみるとわかりますが、先頭が2桁の数字で始まっているファイルがたくさんあります。このファイル名の順番で読み込まれていくようです。つまり、自分でオリジナルの設定を入れるなら大きめの数字で作ったほうが良いと思います。

ファイルの中は
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>

  <!-- settings go here -->

</fontconfig>

の形式のXMLになっています。
fontconfigの設定例がここにあるので大変参考になりました。

今回は滲んでいるので例の2番めのSharp Fontsを使ってみます。

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <match target="font">
    <edit name="antialias" mode="assign"><bool>true</bool></edit>
    <edit name="hinting" mode="assign"><bool>true</bool></edit>
    <edit name="hintstyle" mode="assign"><const>hintfull</const></edit>
    <edit name="lcdfilter" mode="assign"><const>lcddefault</const></edit>
    <edit name="rgba" mode="assign"><const>rgb</const></edit>
  </match>
</fontconfig>

を、/etc/fonts/conf.avail/72-sharp-font.confとしてファイルを作ります。

# nano /etc/fonts/conf.avail/72-sharp-font.conf

を実行して保存します。
アンチエイリアス「有効」、ヒンティング「有効」、ヒンティングの強さ「fintfull」、サブピクセルレンダリング「rgb(最も一般的)」、LCDフィルター「lcddefault(最も一般的)」という意味です。

特に最後のサブピクセルレンダリングとLCDフィルターはセットで、これを実行すると事実上フォントが3倍の解像度になるそうなので是非実行したいオプションです。

# cd /etc/fonts/conf.d
# ln -s ../conf.avail/72-sharp-font.conf

あとはこれで有効にすればいいのですが、Xを再起動すると有効になるということですが、ArchLinuxで簡単にXを再起動する方法がわからないので再起動してみます。

私の環境ではヒンティングの強さが「hintfull」では強すぎるようなので、「hintslight」に変更してみたところ、かなりくっきり表示されるようになりました。

一応、もうひとつ71-no-embedded-bitmaps.confを作って設定してみました。

# nano /etc/fonts/conf.avail/71-no-embedded-bitmaps.conf

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
 <match target="font">
   <edit mode="assign" name="embeddedbitmap">
     <bool>false</bool>
   </edit>
 </match>
</fontconfig>

で、embeddedbitmapの設定を「false」にしました。
ここに質問が出ていて、いくつかのフォントで小さいフォントだとアンチエイリアスが効かないようなので防止策です。

# cd /etc/fonts/conf.d
# ln -s ../conf.avail/71-no-embedded-bitmaps.conf

これで再起動すると有効になるはずです。

どうでしょうか?これでかなり見やすくなっていませんか?


目次に戻る

2015年9月14日月曜日

GUIを入れよう

GUIを入れるに当たって知っていた方がいいこと


GUIは「ジーユーアイ」と読む。グイじゃないよ。Graphical User Interfaceの略。
簡単に言うと、マウスとか使って操作できるWindowsみたいな環境。今となってはこちらの方が一般的です。

昔はXを動かすだけでも相当に重い印象でしたが、最近はCPUやGPUの性能が上がってSSDなどもあるので大分軽減されているようです。

大変分かりにくいのですが、Linuxの場合色々なものが組み合わさってGUIを実現しています。私はよくわかってないので(あと絵とかも苦手)、良いページを紹介して逃げることにします。

Linux道場 入門編 CUIとGUI

簡単にまとめると、
  1. X Window Systemの上でGUIは動いていて
  2. Xの中がクライアントとサーバに分かれている
  3. Xクライアントはウインドウマネージャ(WM)と呼ばれてGUIを主に提供する
ということ。最近のArchLinuxだとWMはここで説明されているが、最近はもっと統合された「デスクトップ環境」から選ぶのが簡単です。

よく使われているところだと、Gnome、MATE、Cinnamon、KDE、Xfce、LXDEあたりから選ぶようになるようです。

また、ディスプレイマネージャーというものもあります。別名ログインマネージャと言われるようで、最初に起動した時にユーザ名とパスワードを入れたりしますが、その画面を表示し、パスワードが正しいとXを起動してくれるアプリケーションのようです。
ただ、このディスプレイマネージャーは上記のデスクトップ環境に組み込まれていることもあります。それが気に入らない時は別のものに変えることもできるようです。

どのデスクトップ環境を使うか決める

これがこの後どういう感じで使うのかを大きく左右します。 私の決め手は重さと見た目。高機能で見た目重視ほど必要なスペックが高くなります。

今回のPCは正直非力。あまり重いものは使えません。快適に動く程度の負荷で使えるものが大前提で、見た目に違和感があまりないものが良いですね。

とはいえ初めてこの機械に入れるので何がいいかもよく分からない。

下調べの結果、この中でも一番重そうなGnomeとKDEはやめた方が良さげ。

逆に軽い方はMATE(読み方はマテ)かXfceかLXDEあたりが良さそう・・・というわけで色々試した結果、真ん中をとってCinamonを入れたら結構もっさりだったのでそれより上は全滅。MATEは悪くなかったけど何か物足りず、Xfceもいま一つだったのでLXDEにすることになりました。LXDEにはLXDMというログインマネージャもあるようなのでこれを使うことにしてみます。

まずはX Window Systemをインストール

デスクトップ環境を決めましたが、とりあえずXが入ってないと動きませんのでこれを入れることにします。と思ってマニュアルのXを見たら、その前にグラフィックドライバを入れるように書いてある・・・

[root@arch ~]# lspci | grep -e VGA -e 3D

を実行したら、Intelのチップだよと教えてもらいました。
マニュアルの表を見ると、Intelの場合は

ドライバ: xf86-video-intel
Multilib: lib32-mesa-libgl

と書かれているのでこれを選択しないといけないようですね。

[root@arch ~]# pacman -S xf86-video-intel

でドライバをまずはインストール。次にXをインストールしようと

[root@arch ~]# pacman -S xorg-server xorg-server-utils xorg-xinit xterm

を実行したら、libglはどれを使うか聞かれました。mesaを選択するので1番を選択してインストール。xtermは入れておいたら助かることが多いのでここで入れておきましょう。

LXDEをインストール

準備ができたのでLXDEをインストールします

[root@arch ~]# pacman -S lxde

デフォルトのままで全部入るので聞かれたらEnter、Y。

ここで一度rebootした方がいいかもしれない。

ディスプレイマネージャを有効にする

次に、ディスプレイマネージャーのLXDMを有効にします

[root@arch ~]# systemctl enable lxdm.service
[root@arch ~]# systemctl start lxdm.service

2つ目のコマンドを実行した直後にGUIのログイン画面になりました。

追加したユーザでログインしようとするもログインならず。more...からrootでログインしたところ、GUIの画面にようやく出会えました。

なぜログインできないのか悩んだのですが、ふとキーボードを入力して気がついた・・・。@が入力できない!どうも日本語キーボードになっていないようです。

[root@arch ~]# nano /etc/lxdm/lxdm.conf

で確認したら、怪しいkeyboardの設定発見。

keyboard=0ってなんだ?と探したら、1にすると他のキーボードを選択できる?

変更してrebootしたら下にkeyboard:usと表示されるようになりました。やっぱり英語キーボードだったか・・・。

とりあえずjpで試したら・・・ログインできました!
あとはここをどうやって固定するかだな・・・

調べに調べて、ようやく解決

[root@arch ~]# localectl set-x11-keymap jp,us jp106

で、/etc/X11/xorg.conf.d/00-keyboard.confを生成できるので、rebootすればキーボードがjp106になりました。さっきのキーボード表示は邪魔なので0に戻しましょう。
X11のキーマップを別に設定しないといけなかったんですね・・・。

日本語の設定

ログインすると、日本語でメニューとか出ているがフォントが綺麗じゃない。

ロケールの設定

というか、まだlocale.confで日本語設定していないのでなんで日本語になっているのかちょっとわからないのですが、今のうちに設定しておく。

[root@arch ~]# nano /etc/locale.conf

で編集。元のLANG=en_US.UTF-8を#でコメントアウトして他の設定を全部日本語にする。

LANG=ja_JP.utf8
LC_NUMERIC=ja_JP.utf8
LC_TIME=ja_JP.utf8
LC_MONETARY=ja_JP.utf8
LC_PAPER=ja_JP.utf8
LC_MEASUREMENT=ja_JP.utf8

再起動すると有効になるはずだけど、うまくいかないときは右側をダブルクォーテーションで囲むと良いかもしれない。私の環境ではログイン画面が日本語になりました。

yaourtのインストール

次にフォントをマシにする。AURという拡張のパッケージを使いたいのでyaourtというものを入れる。AURというのは、通常のpacman以外のパッケージをソースなどから簡単にビルドして入れられる素晴らしいツールです。

[root@arch ~]# nano /etc/pacman.conf

以下を追記します

[archlinuxfr]
SigLevel = Never
Server = http://repo.archlinux.fr/$arch
[pnsft-pur]
SigLevel = Optional TrustAll
Server = http://downloads.sourceforge.net/project/pnsft-aur/pur/$arch

以下のコメントを外します

[multilib]
Include = /etc/pacman.d/mirrorlist

状態を最新に更新します

root@arch> pacman --sync --refresh yaourt
root@arch> pacman -Syu


rootだとyaourtは使えないので一般ユーザにexitで戻ります。
rootでyaourtを実行するとエラーになります。
一般ユーザにexitで戻るのを忘れずに

フォントインストール

[archie@arch ~]$ yaourt -S ttf-ricty

パッケージとかの編集はnで、ビルドとインストールはyで進める。インストールできたら、ついでにipaのフォントとかも入れてみる。

[archie@arch ~]$ yaourt -S otf-ipaexfont
[archie@arch ~]$ yaourt -S ttf-dejavu

再起動してみる。なんだか異様に文字が読みやすくなったはず。まだまだですけどね。

日本語入力インストール

最初iBusを入れてみたけど、なにやらパネルが日本語と英語で切り替わらなかったりしたのでfcitxとmozcの組み合わせにしました。


[archie@arch ~]$ sudo pacman -S fcitx-im fcitx-configtool fcitx-mozc

fcitxのマニュアルを見ると.xprofileか.profileか.xinitrcに環境変数を書き込めと書いてあるけど、.xinitrcがデフォルトでは存在しない・・・。/etc/skelにもない。というわけで情報を探したら、ここのページにcp /etc/X11/xinit/xinitrc ~/.xinitrcすればいいと書いてあるので実行します

[archie@arch ~]$ cp /etc/X11/xinit/xinitrc ~/.xinitrc

[archie@arch ~]$ nano ~/.xinitrc

#日本語入力をfcitxで起動
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"

入力テストができないのでleafpadでも入れてみる。

[archie@arch ~]$ sudo pacman -S leafpad

どうでしょう?日本語は入りましたか?
ちなみに、Ctrl+Spaceキーで日本語と英語が切り替わります。

なんとなくまだフォントが見づらい感じがあると思います。
フォントの設定はちょっとボリュームがあるので別に記事にします。


目次に戻る

シェルの変更、ユーザ追加

シェルの変更

やはり毎日書くのは難しい。結構サボってしまった。

とりあえず再起動してもネットに繋がるところまで進んできた。
まずは今のシェルをもう少し高機能なものに変更。

zshのインストール

最初に使っているものはbashというシェル。シェルって何かというと、コマンドを使う環境のような感じ。これでも昔のものに比べれば高機能ですが、最近はzshというもっと便利なものがあるのでこちらを使う事にする。

まずはこれを実行

root@archiso ~ # echo $SHELL
/bin/bash

/bin/bashと返ってくる。

このコマンドは環境変数のSHELLを表示しなさいとというコマンドで、今使っているシェルが何かがわかるもの。やはりbashである。

ではzshをインストール

root@archiso ~ # pacman -S zsh

Yと答えたら速攻インストール終了。でもまだ使えません。シェルを変更するコマンドを実行。

root@archiso ~ # chsh

New shellと聞かれたら/bin/zshと入力してEnter

Shell changed.

が出たら変わる。再起動してさっきのコマンドを実行してみる。

arch# echo $SHELL
/bin/zsh

はい。変わりました。けど、さっきと#の前が変わっててちょっと寂しいですね。

変更するには設定を作らないといけない。あとでユーザを追加する予定なので、そっちでも同じになると便利。というわけで共通の設定を作る。マニュアルによると/etc/zsh/zshrcを使うように書いてあるのでこれを編集する。

arch# nano /etc/zsh/zshrc

このファイルは存在しないので上記のコマンドで新規作成する。

autoload -U compinit promptinit
compinit
promptinit

# This will set the default prompt to the redhat theme
prompt redhat
#History
setopt HIST_IGNORE_DUPS
SAVEHIST=5000
HISTSIZE=2000
HISTFILE=~/.zsh_history

とりあえずマニュアル通りと履歴機能をちょっと追加。こうやって色々いじると自分のシェルがどんどん賢くなっていくのがUNIXの楽しいところ。
保存したら設定を有効にしてみる。

arch# source /etc/zsh/zshrc

プロンプトが変わったはず。

[root@arch ~]# 

これでどのマシンにどのユーザで入っているかがわかるようになった。

ユーザの追加


ユーザが表示できるようになったので、一般ユーザを作ってみる。

とりあえずユーザ追加


まずはユーザ名を決める。ユーザ名をarchieとすると

[root@arch ~]# useradd -m -G wheel -s /bin/zsh archie 

を実行する。次にパスワードを変える

[root@arch ~]# passwd archie 

2回パスワードを入れて同じならpassword updated successfullyのメッセージが出る。
ログアウトして入りなおしてみよう。

[root@arch ~]# logout 

で、ユーザ名とパスワードで入りなおしてみると、何やら英語のメッセージが出る。
zshで初めてのユーザなので設定ファイルがないのでどうするか聞かれるようだ。

(q) 何もしない
(0) .zshrcを作って抜ける
(1) メインメニュー表示
 と出るので、とりあえず0で抜けてみる。

[archie@arch ~]$ 

ちゃんとデフォルト設定が効いている。

あとは個々のユーザごとに~/.zsahrcを使えば好きにカスタマイズできる。

sudoを使えるようにする


とりあえずユーザを作ったものの、sudoが使えないと編集で色々困るので、sudoが使えるように権限をつける。

一度logoutしてrootで入り直す。

[archie@arch ~]$ visudo

を実行する。

Defaults env_keep += "HOME"
%wheel ALL=(ALL)ALL

のコメントを外すといいんですが、今まで使ってたnanoと使い方が違ってviで編集しないといけない。

とりあえず必要情報だけ書いておきます。

viにはモードが2つあります。一つは「編集モード」で、もう一つは「コマンドモード」。入力するなら編集モードに入らないといけないのですが、今回のように削除したりするだけならコマンドモードのままで問題ありません。間違えて編集モードに入ったと思ったら、Escキーでコマンドモードに戻れます。

まずは該当の行まで↓のキーで移動。
#にフォーカスがあったら、xのキーを押す。1文字削除なのでこれで#が消える。
同じ工程を繰り返してもう一つの行もコメントを外す。
外れたら、:wqと入力する。
Enterキーを押せば保存終了になる。


もう一度ログアウトしてもう一つのユーザでログインする。sudoが使えればOK。

[archie@arch ~]$ sudo su -
パスワードを聞かれるので、このユーザのパスワードを入れる(rootではないですよ)

[root@arch ~]# 
でユーザがルートになればsudoが使えています。


目次に戻る