##はじめに
ここで言うMacBook
は、MacBook Airのことを指します。しかし、他の種類でも似たところがありますので、広い意味で捉えてもらっても構いません。
これは、MacBookに直接、Arch Linuxをインストールする人のためのガイドです。
何らかの不都合やハマったところがあった時は、コメントや修正の方をよろしくお願いします。
また、本記事内でyaourtをパッケージマネージャーとして使用していますが、yaourtは開発が終了しています。
Requesting official statement from developers · Issue #382 · archlinuxfr/yaourt
下記から開発が継続しているパッケージマージャーを使用してください。
AUR ヘルパー - ArchWiki
##MacBookにArch Linuxをインストールする理由
まず、MacBookを選択する理由としては、MacBookは、ハード面から見て、非常に優れてた性能を持つことが挙げられます。
また、一つのカテゴリとして、MacBookというカテゴリは、影響力が強く、ユーザーが多いために情報が豊富であることが挙げられます。
次に、OSとしてのArch Linuxを選択する理由は、非常にミニマムだからです。初期状態にインストールするOSとして、これほど最適なものは他にないでしょう。それにパッケージを都度、ビルドするGentooとは違い、Archは基本的なパッケージのものがビルドされているので、ダウンロードしてパスにインストールするだけなのパッケージの導入が高速です。(AURは基本的にソースコードからビルドするため時間がかかります)
このような理由から、パソコンを新調する際は、MacBookをオススメします。また、このパソコン、MacBookにインストールするOSとして、Linuxを考えている人は、ArchLinuxをオススメします。
##Mac-EFI
まずはじめに、MacBookには、当然ながらMac(OS X)が初期インストールされています。
Linuxユーザーとしては、これを早速、ディスクごとフォーマット、削除したいところでしょう。
しかし、OSを操作してでしか変えられないハード面の変更もいくつかありますので、できれば、この変更をしてから削除することをオススメします。
ただし、既にMacを削除しているユーザーが一切の変更をできなくなるということではありません。MacインストーラーUSBを作成し、それを起動することで、変更可能となります。
###インストーラーUSB
インストーラーUSBの作成方法は、Mac上でイメージをダウンロード後、以下のようなコマンドを実行することで可能となります。以下は、Mavericks
イメージの場合ですが、Yosemite
イメージでも同じです。
$ sudo /Volumes/Untitled/soft/os/Install\ OS\ X\ Mavericks.app/Contents/Resources/createinstallmedia --volume /Volumes/s/ --applicationpath /Volumes/Untitled/soft/os/Install\ OS\ X\ Mavericks.app --nointeraction
この際、USBをフォーマットしておきましょう。上記を見てもらえればわかると思いますが、私は、s
という名前でフォーマットしています。
インストーラーUSBの起動は、MacBookの電源を入れた後、Alt(Option)
キーを長押しします。
ここで、Macのブートローダー、Startup Managerが表示されますので、インストーラーを選びます。
インストーラーを選択した後は、設定画面が出てきますが、メニューからターミナルを起動できます。
###起動音の削除
MacのインストーラーUSBを用意していれば、色々と便利です。
なぜなら、これを起動し、ターミナルからいくつかのコマンドを実行することで、MacBookのハード面、または、ハードに近い設定の変更が可能になるからです。
もちろん、これは、Macを起動できれば、実行可能ですが、もしMacを削除している場合でも、USBがあればいつでも変更可能になります。
まずは、起動音の削除コマンドです。
$ nvram SystemAudioVolume=%00
$ nvram SystemAudioVolume=%00
$ nvram -p
2回ほど同じコマンドを実行すると、起動音が消えます。この辺りは、非常にあやふやな設定になっており、2回やっても消えない時もあるし、2回以上やると消えたということもあります。また、いつの間にか起動音が復活したという事例もちらほら。幾つかの方法を試してみてください。
###Startup Managerの削除、起動時の待機時間をゼロにする
通常、MacBookにLinuxをインストールしている人は、Linuxで一般的なブートローダー、GRUBなどを使っている事が多いと思われます。
しかし、MacBookでは、Startup Managerが最初に起動し、Macを探す処理を終了した後、GRUBなどを起動するようです。
この場合、即座に、ブートローダーが起動するのではなく、Macをアンインストールしていると、30秒ほど待たされます。
したがって、Mac-ターミナルを使い、このあたりの優先順位を変更したりする必要があります。
Mac(インストーラーUSBでも良い)を起動して、ターミナルで以下のコマンドを実行します。
$ diskutil list
disk0s1 200M EFI vfat
disk0s2 100G / ext4
$ cd /Volumes
$ mkdir efi
$ mount -t msdos /dev/disk0s1 /Volumes/efi
$ cp -r Image \Volume/System /Volumes/efi
$ cp /Volumes/efi/EFI/arch/grubx64.efi /Volumes/efi/System/Library/CoreServices/boot.efi
$ bless --folder=/Volumes/efi --file=/Volumes/efi/System/Library/CoreServices/boot.efi --setBoot
$ reboot
やってることは簡単で、ブート領域disk0s1
に/System/Library/CoreServices/boot.efi
を作成し、既存のブートローダーで上書きしています。その後、Macのbless
コマンドで起動優先順位を変更しています。もしかしたら、この優先順位の変更手順は不要かもしれませんが、念のため。
この手順を実行すると、起動時にすぐLinuxのブートローダー、GRUBが起動すると思います。
仕組みは簡単なので、他のブートローダーを使用している人もその仕組を利用すれば、これは実現可能だと思われます。
具体的には、最初に呼び出されるはずのファイル(呼び出したいファイル)を/Volumes/efi/System/Library/CoreServices/boot.efi
にコピーすればよいのです。場合によっては、Macを使って、起動順位の変更ですね。
###Macのブートローダーをそのまま使う
ちなみに、MacインストーラーUSBに入っているImage \Volume/System
ですが、それをそのまま持ってくることで(GRUBを上書きしないことで)、使用することができます。
上記のコマンドで以下の手順を飛ばす
。
$ cp /Volumes/efi/EFI/arch/grubx64.efi /Volumes/efi/System/Library/CoreServices/boot.efi
これは、アイコンなども出てくるので、トリプルブートなどを考えている人は、非常に便利かと思います。
なぜなら、このシステムは、デフォルトでOSを自動選択するようになっていませんので、起動後、OSを自ら選択しなければならないからです。
ここで、このシステムにて、アイコンを使用する方法は、ディスクのルートに.volumeicon.icns
を置くことで実現できます。
アイコンは、こちらのサイトにて、ダウンロードできます。
もちろん、Arch Linuxでも同じです。
###Arch Linuxの仕組み
最初に、基本的な仕組みというか、カスタマイズする際のポイントを述べておきます。
# 大体、基本設定はこのフォルダを探します
cd ~/.config
# ハードに近い設定はこのフォルダ
cd /etc/
# xの設定はこのフォルダ
cd /etc/X11
# テーマとアイコン
cd /usr/share/icons
cd /usr/share/themes
# デフォルトの設定
# デフォルトの設定は、基本的に /share フォルダから持ってくると良いでしょう。
cp -i /etc/xdg/share/.xinitrc ~/
###ArchインストーラーUSBの作成手順
Macを使用して作成する場合は、イメージをダウンロードし、以下のコマンドを実行します。
Arch Linux イメージ
https://www.archlinux.org/download/
# arch.isoからusb.dmgを作成する
$ hdiutil convert -format UDRW -o usb archlinux-2014.11.01-dual.iso
#USBメモリをumount
diskutil umount /dev/disk2
#USBメモリに書き込み
sudo dd if=usb.dmg of=/dev/disk2 bs=1m
####root
USBは、主にルートをカスタマイズしています。通常、ルート/root
というものは、余分なものをインストールしたり、設定しないわけですが、オリジナルUSBは、ユーザー/home/$user
ではなく、ルートをカスタマイズしたほうが便利なのです。
ちなみに、ルートをカスタマズするには、su
コマンドを実行した後、色んな物を入れたり、ホームフォルダに設定ファイルを置いたりすることでカスタマイズ可能となります。ルートのカスタマイズは、危険ですが、便利にもなります。
###Installing Arch Linux on MacBook
最初に重要な説明を終えたので、基本的なArchLinuxのインストール方法を書いていきたいと思います。
ただし、ArchのインストーラーUSBが作成されていることが前提です。それを起動し、以下のコマンドを実行します。
$ loadkeys jp106
# キーボードをJISに変更
$ echo "[sda1:200M-300M:vfat], [sda2:90%:ext4], [sda3:10%:none]"
# 個人的には余裕があるなら、10%空のディスクを残しておいた方が便利だと思います
$ cfdisk /dev/sda
sda1 200M...ブート領域
sda2 残り全部...システム、ホーム領域
# ディスクパーティションを設定
$ mkfs.vfat /dev/sda1
$ mkfs.ext4 /dev/sda2
# ディスクをフォーマット
$ mount /dev/sda2 /mnt
# 先ほどフォーマットしたディスクで、ルートに設定したものをマウント
$ pacstrap /mnt base base-devel
# 基本コマンドなどをインストール。場合によっては、 /etc/pacman.d/mirrorlist を編集
$ genfstab -U -p /mnt >> /mnt/etc/fstab
# ディスク情報を追加
$ arch-chroot /mnt
# 指定したディレクトリをルートとしてみなします
$ pacman-db-upgrade
$ pacman -S grub
# ブートローダーであるGRUBをインストール
$ pacman -S grub grub-efi-x86_64 efibootmgr --noconfirm
$ grub-install --force --recheck /dev/sda
# ブートローダーをインストールするディスクを指定し、 /boot/grub にブートローダーをインストール
$ grub-mkconfig -o /boot/grub/grub.cfg
# /etc/defaults/grub からブートローダーの設定である /boot/grub/grub.cfg を作成
$ pacman -S wireless_tools wpa_supplicant wpa_actiond dialog ifplugd
$ systemctl enable netctl-auto@wlp2s0
$ systemctl enable dhcpcd.service
# インターネットの設定をしておかないと、起動した時にパッケージなどのダウンロードが出来ないので困る
$ exit
# arch-chroot を終了
$ umount -R /mnt
# /mnt をアンマウント
$ reboot
# 再起動
上記のコマンドは、基本的に単純なもので構成されています。
基本システムをpacstrap
でsda2
にインストール。ここで、pacman
が入ります。
次に、bootloader(ブートローダー)のGRUBをpacman
でインストール後、grub-install
コマンドでsda1
に設定します。
ここで、難しいのは、GRUBのインスールくらいかと思いますが、これも自動で判定されるオプション--force
を使用していますので、それほど難しくありません。
また、MacBookの場合は、ブートに使用するディスクはvfat
でフォーマットしなければならないため、その点は注意しなければなりません。mkfs.vfat
このArchインストーラーUSBですが、なにか不都合が起こった場合、ここからリカバリ、修正を行うことが予想されますので、しばらく持っておくことをオススメします。
リカバリ方法は、以下の通りです。
$ mount /dev/sda2 /mnt
$ arch-chroot /mnt
# あとは、設定ファイルを直したり、ログを見たりします。pacmanも使用できます。
# 再起動は、 "exit && umount /mnt && reboot" でも良いし、 "reboot" だけでも良いです。終了は "poweroff" です
$ reboot
USB起動後、通常は、Boot existing OSの項目を選択すると、先ほど作成したディスク、つまり、HDD/SSDが起動することになります。
###Arch Linux on Customize USB
私は、Arch LinuxをカスタマイズしたUSBを持ち歩いています。
理由は、リカバリにも役に立つし、いつ何時でも慣れた環境を起動できるようにしておくためです。
これは、パソコンと同じ環境を再現し、基本的に、どのパソコンに挿しても起動するように設定されています。
以下、USB独自の重要な点だけを説明します。
####USBブートローダー
まずは、ブートシステムからなわけですが、これは非常に面倒くさいのです。
なぜなら、ほとんどの人は、grub-install
の自動判断に任せて、マシンにブートローダーをインストールしているからです。
Arch USBを作る場合は、一般的なパソコンに挿しても起動するように、これを、1つずつ--target
を使用して、ファイルシステムを作成していくことになります。
ただし、私の場合は、既にMacBook用に作ってありましたので(x86_64-efi)、それをコピーし、USBにArchLinuxをインストールする際は、--target=i386-pcにしました。
$ df
/dev/sda1...これはパソコン
/dev/sda2...これもパソコン
/dev/sdb...これがUSB
$ cfdisk /dev/sdb
$ mkfs.vfat sdb1
$ mkfs.ext4 sdb2
# USBをフォーマット
$ grub-install --target=i386-pc --recheck --debug --force /dev/sdb
また、上記でも説明したように、Macパソコン用に、/System/Library/CoreServices/Boot.efi
を用意しておくと良いでしょう。これは、パソコンに入ってるものを使いますね。Mac用のブートシステムを作成する場合は、以下のスクリプトを見てください。だいたいこんな感じの手順でできます。
su
# usb-efi-boot
mkdir -p /boot/efi
mount -t vfat /dev/sdb1 /boot/efi
if [ ! -d /boot/efi/EFI ];then
pacman -S efibootmgr
grub-install --force --recheck --target=x86_64-efi --efi-directory=/boot/efi
grub-mkconfig -o /boot/grub/grub.cfg
cp /home/dotfiles/icon/arch-dark.volumeicon.icns /boot/efi/.volumeicon.icns
mkdir -p /boot/efi/System/Library/CoreServices
cp /boot/efi/EFI/arch/grubx64.efi /boot/efi/System/Library/CoreServices/Boot.efi
echo 'HOOKS="base udev block autodetect modconf filesystems keyboard fsck"' >> /etc/mkinitcpio.conf
mkinitcpio -p linux
fi
この辺り、どのパソコンを使って作成するかによって違って来ると思いますので、注意です。
また、この場合、権限に注意しなければならないことがあるかもしれませんので、それも注意です。権限を変更するコマンド例は以下のとおりです。この辺は、ある程度の知識がある人向けです。
# すべてのユーザーに読み,書き,実行権限を与え、グループの実行権限を除き、その他のユーザーの書き,実行権限を除く(ディレクトリ再帰)
$ chmod -R a+rwx,g-x,o-wx /home/user/
ここで、結果は-rwxrw-r--
になります。
また、オリジナルUSBは、rootをカスタマイズすると便利かもしれません。
その他、ArchインストーラーUSBの構成も非常に参考になると思いますので、中身を覗いてみても良いかもしれません。場合によっては、それをコピーし、一部の設定を書き換えることで、ほとんどのパソコンで起動するUSBを作成できると思われます。
###GUIデスクトップ
GUIデスクトップは、メイン環境にする場合は必要になると思われます。
CUIに使用するものは、ターミナルにlilyterm
、シェルはzsh
、バーチャル環境はtmux
です。
GUIに使用するものは、ログインマネージャーにslim
, ファイルマネージャーにspacefm
、デスクトップにawesome
です。
gtk
のテーマは、numix
を使用します。awesome
のテーマはpowerarrowf
をフォークしたオリジナル。
大体、こんな感じになります。
ここで、テーマの当て方について説明しておきます。spacefmは、gtk2.0
を使用しますので、以下のようになります。
$ yaourt -S numix-icon-theme-git
$ sudo pacman -S numix-themes
$ vim ~/.gtkrc-2.0
gtk-icon-theme-name = "Numix"
gtk-theme-name = "Numix"
gtk-font-name = "DejaVu Sans 13"
この設定は、/usr/share/icons/Numix
と/usr/share/themes/Numix
にあるファイルを使います。
ちなみに、例えば、nautilus
の場合は、gtk-3.0
を使ってますので、~/.config/gtk-3.0/settings.ini
を用意します。コマンドでやると、以下のような感じですね。
$ mkdir -p ~/.config/gtk-3.0
$ vim $!/settings.ini
gtk-icon-theme-name = "Default"
#gtk-icon-theme-name = "Numix-Light"
gtk-theme-name = "Numix"
gtk-font-name = "DejaVu Sans 13"
$ gtk-update-icon-cache -f /usr/share/icons/Default
まず初期設定は以下のようなコマンドを実行すればよいかと思います。
#login:root
#password:root
pacman -Sy sudo
echo macbook > /etc/hostname
useradd -m -G wheel -s /bin/bash $username
passwd
passwd $username
vim /etc/locale.gen
en_US.UTF-8 UTF-8
ja_JP.UTF-8 UTF-8
touch /etc/locale.conf
vim /etc/locale.conf
LANG=ja_JP.UTF-8
locale-gen
ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
hwclock --systohc --utc
touch /etc/sudoers
vim /etc/sudoers
Defaults env_keep += "HOME"
%wheel ALL=(ALL) ALL
chsh
su - $username
vim /etc/pacman.conf
[archlinuxfr]
SigLevel = Never
Server = http://repo.archlinux.fr/$arch
次に、必要なもののインストールです。
# CUI
sudo pacman -S zsh tmux git w3m yaourt clamav downgrade gvim ufw net-tools gauche ctags lilyterm sysstat dstat iotop
yaourt -S atool
# GUI
sudo pacman -S conky gparted arandr xorg awesome arhlinux-themes-slim slim-themes slim spacefm vicious clipit udevil exfat-git exfat-utils fuse-exfat ntfs-3g vlc xbindkeys alsa-utils xdotool slop maim imagemagick ffmpeg mplayer inkscape gimp p7zip handbrake handbrake-cli gvfs qiv mcomix dwb chromium fcitx fcitx-im fcitx-configtool fcitx-mozc bluez bluez-utils xcompmgr keepassx
## SECURITY
#sudo pacman -S nmap wireshark-cli aircrack-ng
#yaourt -S metasploit nikto nessus edb-debugger bulk_extractor ophcrack john
## OTHER
#yaourt -S go-mtpfs-git
#yaourt -A netgui luacairo
次に、主にGUIの設定です。
vim /etc/slim.conf
default_user syui
auto_login yes
daemon yes
sudo cp -i /etc/xdg/share/.xinitrc ~/
echo "xcompmgr -n &" >> ~/.xinitrc
echo "exec awesome" >> .xinitrc
vim ~/.xinitrc
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
fcitx
touch ~/.config/fontconfig/font.conf
vim ~/.config/fontconfig/font.conf
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="font">
<edit mode="assign" name="embeddedbitmap">
<bool>false</bool>
</edit>
<edit mode="assign" name="hintstyle">
<const>hintnone</const>
</edit>
</match>
</fontconfig>
sudo touch /etc/vconsole.conf
vim /etc/vconsole.conf
FONT=DejaVu
FONTMAP=DejaVu
KEYMAP=jp106
sudo systemctl enable bluetooth
sudo systemctl enable slim
# THEME
yaourt -S numix-icon-theme-git
sudo pacman -S numix-themes
vim ~/.gtkrc-2.0
gtk-icon-theme-name = "Numix"
gtk-theme-name = "Numix"
gtk-font-name = "DejaVu Sans 13"
mkdir -p ~/.config/gtk-3.0
vim ~/.config/gtk-3.0/settings.ini
#gtk-icon-theme-name = "Default"
gtk-icon-theme-name = "Numix-Light"
gtk-theme-name = "Numix"
gtk-font-name = "DejaVu Sans 13"
sudo gtk-update-icon-cache -f /usr/share/icons/Numix
git clone https://github.com/copycat-killer/lain ~/.config/awesome/lain
git clone https://github.com/syui/powerarrow-dark
cd powerarrow-dark
cp -R awesome/ ~/.config
###spacefmのカスタマイズ
様々なものを自動マウントしるには、必要な物があります。
$ sudo pacman -S fuse-exfat exfat-utils gvfs udevil ntfs-3g
ただし、spacefmのデフォルト設定では、exfatが自動マウントされないので、udevilの設定が必要になります。
default_options_exfatの追加とallowed_optionsの末尾にnonemptyを追加します。
default_options = nosuid, noexec, nodev, noatime
default_options_exfat = nosuid, noexec, nodev, noatime, nonempty
allowed_options = nosuid, noexec, nodev, noatime, fmask=0133, dmask=0022, uid=$UID, gid=$GID, ro, rw, sync, flush, iocharset=*, utf8, remount, nonempty
Configuration tweaking required to mount an exfat volume · Issue #52 · IgnorantGuru/udevil
spacefm
は、root
で使うと便利です。
$ sudo spacefm
###CUIのカスタマイズ
必要な物をインストールしたりします。ちょっと分かりにくいですが。
export DOTFILE=$HOME/dotfiles
export PLUGIN=$DOTFILE/.zsh/plugin
## completion
if [ ! -d $PLUGIN/zsh-completions ];then
git clone git://github.com/zsh-users/zsh-completions $PLUGIN/zsh-completions
fi
fpath=($PLUGIN/zsh-completions/src $fpath)
## powerline {{{
if [ ! -f $PLUGIN/powerline.zsh ];then
curl https://gist.githubusercontent.com/syui/e3fad84e3dba8a3f667b/raw/powerline.zsh -o $PLUGIN/powerline.zsh
fi
if [ ! -d $PLUGIN/powerline-bash ];then
git clone https://github.com/milkbikis/powerline-bash $PLUGIN/powerline-bash
fi
#ln -s $PLUGIN/powerline-bash/powerline-bash.py ~/powerline-bash.py
#
#function powerline_precmd() {
#export PS1="$(~/powerline-bash.py $? --shell zsh)"
# }
#
# function install_powerline_precmd() {
# for s in "${precmd_functions[@]}"; do
# if [ "$s" = "powerline_precmd" ]; then
# return
# fi
# done
# precmd_functions+=(powerline_precmd)
# }
#
# install_powerline_precmd
## }}}
## tmux-powerline {{{
# iTerm : Treat ambiguous-width characters as double width
case $OSTYPE in
darwin*)
if ! type tmux > /dev/null 2>&1;then
brew tap waltarix/homebrew-customs
brew update
brew install waltarix/customs/tmux
fi
;;
esac
if type tmux > /dev/null 2>&1;then
if [ ! -d $DOTFILE/.tmux/tmux-powerline ];then
TPOWERLINE=$DOTFILE/.tmux/tmux-powerline
git clone https://github.com/erikw/tmux-powerline $DOTFILE/.tmux/tmux-powerline
fi
if [ ! -d $DOTFILE/.tmux/tmux-colors-solarized ];then
git clone https://github.com/seebi/tmux-colors-solarized $DOTFILE/.tmux/tmux-colors-solarized
fi
fi
if [ ! -f $DOTFILE/.tmux/tmux-powerline/segments/used-mem ];then
curl https://raw.githubusercontent.com/yonchu/used-mem/master/used-mem -o $DOTFILE/.tmux/tmux-powerline/segments/used-mem
chmod +x $DOTFILE/.tmux/tmux-powerline/segments/used-mem
fi
if [ ! -f $DOTFILE/.tmux/tmux-powerline/segments/mplayer_tmux.sh ];then
curl https://raw.githubusercontent.com/syui/mplayer_script/master/mplayer_tmux.sh -o $DOTFILE/.tmux/tmux-powerline/segments/mplayer_tmux.sh
chmod +x $DOTFILE/.tmux/tmux-powerline/segments/mplayer_tmux.sh
fi
if [ ! -f $DOTFILE/.tmux/.tmux.conf.mac ];then
curl https://raw.githubusercontent.com/syui/dotfiles/master/.tmux/.tmux.conf.mac -o $DOTFILE/.tmux/.tmux.conf.mac
fi
case $OSTYPE in
linux*)
if [ ! -f $DOTFILE/.tmux/tmux-powerline/config/tmux-powerline-config-defaults.sh ];then
curl https://raw.githubusercontent.com/syui/dotfiles/master/.tmux/defaults.sh -o $DOTFILE/.tmux/tmux-powerline/config/tmux-powerline-config-defaults.sh
bash -c "cp -f $DOTFILE/.tmux/tmux-powerline/config/tmux-powerline-config-defaults.sh $DOTFILE/.tmux/tmux-powerline/config/defaults.sh"
fi
if [ ! -f $DOTFILE/.tmux/tmux-powerline/themes/origin.sh ];then
curl https://raw.githubusercontent.com/syui/dotfiles/master/.tmux/origin.sh -o $DOTFILE/.tmux/tmux-powerline/themes/origin.sh
fi
;;
esac
## }}}
## vim
if [ ! -d ~/.vim/bundle/neobundle.vim ];then
curl https://raw.githubusercontent.com/Shougo/neobundle.vim/master/bin/install.sh | sh
fi
## oh-my-zsh
if [ ! -d $PLUGIN/oh-my-zsh ];then
git clone https://github.com/robbyrussell/oh-my-zsh $PLUGIN/oh-my-zsh
fi
## cheat-sheet
if [ -f $PLUGIN/oh-my-zsh/templates/zshrc.zsh-template ];then
cheat-sheet () { zle -M "`cat ~/dotfiles/.zsh/cheat-sheet`" }
zle -N cheat-sheet
# bindkey "^[^h" cheat-sheet
fi
## golang
if [ ! -f ~/dotfiles/.zsh/plugin/golang-crosscompile/crosscompile.bash ];then
git clone https://github.com/davecheney/golang-crosscompile ~/dotfiles/.zsh/plugin/golang-crosscompile
fi
## python
if ! which pip > /dev/null 2>&1;then
#sudo pacman -S python-setuptools
#easy_install pip
fi
### font {{{
case $OSTYPE in
linux*)
if ! fc-list | grep DejaVuSans > /dev/null 2>&1;then
sudo pacman -S ttf-dejavu
#yaourt -S ttf-ricty
fi
;;
darwin*)
if ! ls ~/Library/Fonts/Ricty* > /dev/null 2>&1;then
brew tap sanemat/font
brew install ricty
brew install fontforge
bash -c "cp -f /usr/local/opt/ricty/share/fonts/Ricty*.ttf ~/Library/Fonts/"
#fc-cache -vf
fi
;;
esac
### }}}
### clipboard {{{
## pbcopy
case ${OSTYPE} in
linux*)
if [ ! -f /usr/bin/xsel ];then
sudo pacman -S xsel
fi
alias pbcopy='xsel --clipboard --input'
;;
cygwin*)
alias pbcopy='putclip'
;;
esac
## buffer
pbcopy-buffer(){
case ${OSTYPE} in
freebsd*|darwin*)
print -rn $BUFFER | pbcopy
;;
linux*)
print -rn $BUFFER | xclip -i -selection clipboard
;;
cygwin*)
print -rn $BUFFER | putclip
;;
esac
zle -M "copy : ${BUFFER}"
}
zle -N pbcopy-buffer
bindkey '^p^p' pbcopy-buffer
## alias
if which pbcopy >/dev/null 2>&1 ; then
# Mac
alias -g C='| pbcopy'
elif which xclip >/dev/null 2>&1 ; then
# Linux
alias -g C='| xclip --input --clipboard'
elif which putclip >/dev/null 2>&1 ; then
# Cygwin
alias -g C='| putclip'
fi
## bindkey
# bindkey -s '^b' " | pbcopy"
## clipboard-history
function clipboard-history (){
case $OSTYPE in
linux*)
if [ ! -f /usr/bin/anamnesis ];then
sudo yaourt -S anamnesis
fi
anamnesis -l 100 | sed -n '3,100p' | peco | cut -d u -f 2- | head -c -3 | tail -c +2 | xclip -i -selection clipboard
;;
freebsd*|darwin*)
plutil -convert xml1 ~/Library/Application\ Support/ClipMenu/clips.data -o - | parsrx.sh | grep '/plist/dict/array/string ' | sed '1,2d' | sed 's/\/plist\/dict\/array\/string//g' | peco | pbcopy
;;
esac
}
zle -N clipboard-history
bindkey '^[c' clipboard-history
### }}}
## growl
if [ ! -f ~/dotfiles/.zsh/plugin/growl.zsh ];then
curl https://raw.githubusercontent.com/patbenatar/dotfiles/master/zsh/growl.zsh -o $HOME/dotfiles/.zsh/plugin/growl.zsh
chmod +x ~/dotfiles/.zsh/plugin/growl.zsh
fi
## rupa/z
case $OSTYPE in
drawin*)
if [ -f `brew --prefix`/etc/profile.d/z.sh ];then
brew install z
fi
. `brew --prefix`/etc/profile.d/z.sh
;;
linux*)
if [ ! -d ~/dotfiles/.zsh/plugin/z ];then
git clone https://github.com/rupa/z ~/dotfiles/.zsh/plugin/z
fi
. ~/dotfiles/.zsh/plugin/z/z.sh
;;
esac
compctl -U -K _z_zsh_tab_completion ${_Z_CMD:-z}
## zaw/zaw
if [ ! -d ~/dotfiles/.zsh/plugin/zaw ];then
git clone https://github.com/zsh-users/zaw ~/dotfiles/.zsh/plugin/zaw
fi
if [ ! -f ~/dotfiles/.zsh/plugin/zaw/sources/zaw-z.zsh ];then
curl https://raw.githubusercontent.com/lovingly/dotfiles/master/zsh.d/zaw/zaw-z.zsh -o $HOME/dotfiles/.zsh/plugin/zaw/sources/zaw-z.zsh
chmod +x $HOME/dotfiles/.zsh/plugin/zaw/sources/zaw-z.zsh
fi
## syui/airchrome.zsh
if [ ! -f $PLUGIN/airchrome.zsh/airchrome.zsh ];then
git clone https://github.com/syui/airchrome.zsh $PLUGIN/airchrome.zsh
fi
## syntax-highlight
if [ ! -f $HOME/dotfiles/.zsh/plugin/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh ];then
git clone https://github.com/zsh-users/zsh-syntax-highlighting $HOME/dotfiles/.zsh/plugin/zsh-syntax-highlighting
fi
## commandline-fu
if [ ! -d $DOTFILE/bin/fu ];then
git clone https://github.com/samirahmed/fu $DOTFILE/bin/fu
fi
###キーボード設定
私の場合、xmodmap
を使って、切り替えができるようにしています。具体的には、デフォルトキーをf1-f12
までそのまま。切り替えキーをf1-f12
までハードの変更(音量、輝度)に当てています。
keycode 8 =
keycode 9 = Escape NoSymbol Escape
keycode 10 = 1 exclam 1 exclam
keycode 11 = 2 quotedbl 2 quotedbl
keycode 12 = 3 numbersign 3 numbersign
keycode 13 = 4 dollar 4 dollar
keycode 14 = 5 percent 5 percent
keycode 15 = 6 ampersand 6 ampersand
keycode 16 = 7 apostrophe 7 apostrophe
keycode 17 = 8 parenleft 8 parenleft
keycode 18 = 9 parenright 9 parenright
keycode 19 = 0 asciitilde 0 asciitilde
keycode 20 = minus equal minus equal
keycode 21 = asciicircum asciitilde asciicircum asciitilde
keycode 22 = BackSpace BackSpace BackSpace BackSpace
keycode 23 = Tab ISO_Left_Tab Tab ISO_Left_Tab
keycode 24 = q Q q Q
keycode 25 = w W w W
keycode 26 = e E e E
keycode 27 = r R r R
keycode 28 = t T t T
keycode 29 = y Y y Y
keycode 30 = u U u U
keycode 31 = i I i I
keycode 32 = o O o O
keycode 33 = p P p P
keycode 34 = at grave at grave
keycode 35 = bracketleft braceleft bracketleft braceleft
keycode 36 = Return NoSymbol Return
keycode 37 = Control_L NoSymbol Control_L
keycode 38 = a A a A
keycode 39 = s S s S
keycode 40 = d D d D
keycode 41 = f F f F
keycode 42 = g G g G
keycode 43 = h H h H
keycode 44 = j J j J
keycode 45 = k K k K
keycode 46 = l L l L
keycode 47 = semicolon plus semicolon plus
keycode 48 = colon asterisk colon asterisk
keycode 49 = Zenkaku_Hankaku Kanji Zenkaku_Hankaku Kanji
keycode 50 = Shift_L NoSymbol Shift_L
keycode 51 = bracketright braceright bracketright braceright
keycode 52 = z Z z Z
keycode 53 = x X x X
keycode 54 = c C c C
keycode 55 = v V v V
keycode 56 = b B b B
keycode 57 = n N n N
keycode 58 = m M m M
keycode 59 = comma less comma less
keycode 60 = period greater period greater
keycode 61 = slash question slash question
keycode 62 = Delete NoSymbol Delete
keycode 63 = KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply XF86ClearGrab
keycode 64 = Alt_L Meta_L Alt_L Meta_L
keycode 65 = space NoSymbol space
keycode 66 = Control_L NoSymbol Control_L
keycode 67 = F1 F1 F1 F1 F1 F1 XF86Switch_VT_1
keycode 68 = F2 F2 F2 F2 F2 F2 XF86Switch_VT_2
keycode 69 = F3 F3 F3 F3 F3 F3 XF86Switch_VT_3
keycode 70 = F4 F4 F4 F4 F4 F4 XF86Switch_VT_4
keycode 71 = F5 F5 F5 F5 F5 F5 XF86Switch_VT_5
keycode 72 = F6 F6 F6 F6 F6 F6 XF86Switch_VT_6
keycode 73 = F7 F7 F7 F7 F7 F7 XF86Switch_VT_7
keycode 74 = F8 F8 F8 F8 F8 F8 XF86Switch_VT_8
keycode 75 = F9 F9 F9 F9 F9 F9 XF86Switch_VT_9
keycode 76 = F10 F10 F10 F10 F10 F10 XF86Switch_VT_10
keycode 77 = Num_Lock NoSymbol Num_Lock
keycode 78 = Scroll_Lock NoSymbol Scroll_Lock
keycode 79 = KP_Home KP_7 KP_Home KP_7
keycode 80 = KP_Up KP_8 KP_Up KP_8
keycode 81 = KP_Prior KP_9 KP_Prior KP_9
keycode 82 = KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract XF86Prev_VMode
keycode 83 = KP_Left KP_4 KP_Left KP_4
keycode 84 = KP_Begin KP_5 KP_Begin KP_5
keycode 85 = KP_Right KP_6 KP_Right KP_6
keycode 86 = KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add XF86Next_VMode
keycode 87 = KP_End KP_1 KP_End KP_1
keycode 88 = KP_Down KP_2 KP_Down KP_2
keycode 89 = KP_Next KP_3 KP_Next KP_3
keycode 90 = KP_Insert KP_0 KP_Insert KP_0
keycode 91 = KP_Delete KP_Decimal KP_Delete KP_Decimal
keycode 92 = ISO_Level3_Shift NoSymbol ISO_Level3_Shift
keycode 93 =
keycode 94 = less greater less greater bar brokenbar bar
keycode 95 = F11 F11 F11 F11 F11 F11 XF86Switch_VT_11
keycode 96 = F12 F12 F12 F12 F12 F12 XF86Switch_VT_12
keycode 97 = backslash underscore backslash underscore
keycode 98 = Katakana NoSymbol Katakana
keycode 99 = Hiragana NoSymbol Hiragana
keycode 100 = Henkan_Mode NoSymbol Henkan_Mode
keycode 101 = Hiragana_Katakana Romaji Hiragana_Katakana Romaji
keycode 102 = Muhenkan NoSymbol Muhenkan
keycode 103 =
keycode 104 = KP_Enter NoSymbol KP_Enter
keycode 105 = Control_R NoSymbol Control_R
keycode 106 = KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide XF86Ungrab
keycode 107 = Print Execute Print Execute
keycode 108 = Alt_R Meta_R Alt_R Meta_R
keycode 109 = Linefeed NoSymbol Linefeed
keycode 110 = Home NoSymbol Home
keycode 111 = Up NoSymbol Up
keycode 112 = Prior NoSymbol Prior
keycode 113 = Left NoSymbol Left
keycode 114 = Right NoSymbol Right
keycode 115 = End NoSymbol End
keycode 116 = Down NoSymbol Down
keycode 117 = Next NoSymbol Next
keycode 118 = Insert NoSymbol Insert
keycode 119 = Delete NoSymbol Delete
keycode 120 =
keycode 121 = F10 NoSymbol F10
keycode 122 = F11 NoSymbol F11
keycode 123 = F12 NoSymbol F12
keycode 124 = XF86PowerOff NoSymbol XF86PowerOff
keycode 125 = KP_Equal NoSymbol KP_Equal
keycode 126 = plusminus NoSymbol plusminus
keycode 127 = Pause Break Pause Break
keycode 128 = F3 NoSymbol F3
keycode 129 = KP_Decimal KP_Decimal KP_Decimal KP_Decimal
keycode 130 = Hangul NoSymbol Hangul
keycode 131 = Control_L NoSymbol Control_L
keycode 132 = backslash bar backslash bar
keycode 133 = Super_L NoSymbol Super_L
keycode 134 = Super_R NoSymbol Super_R
keycode 135 = Menu NoSymbol Menu
keycode 136 = Cancel NoSymbol Cancel
keycode 137 = Redo NoSymbol Redo
keycode 138 = SunProps NoSymbol SunProps
keycode 139 = Undo NoSymbol Undo
keycode 140 = SunFront NoSymbol SunFront
keycode 141 = XF86Copy NoSymbol XF86Copy
keycode 142 = XF86Open NoSymbol XF86Open
keycode 143 = XF86Paste NoSymbol XF86Paste
keycode 144 = Find NoSymbol Find
keycode 145 = XF86Cut NoSymbol XF86Cut
keycode 146 = Help NoSymbol Help
keycode 147 = XF86MenuKB NoSymbol XF86MenuKB
keycode 148 = XF86Calculator NoSymbol XF86Calculator
keycode 149 =
keycode 150 = XF86Sleep NoSymbol XF86Sleep
keycode 151 = XF86WakeUp NoSymbol XF86WakeUp
keycode 152 = XF86Explorer NoSymbol XF86Explorer
keycode 153 = XF86Send NoSymbol XF86Send
keycode 154 =
keycode 155 = XF86Xfer NoSymbol XF86Xfer
keycode 156 = XF86Launch1 NoSymbol XF86Launch1
keycode 157 = XF86Launch2 NoSymbol XF86Launch2
keycode 158 = XF86WWW NoSymbol XF86WWW
keycode 159 = XF86DOS NoSymbol XF86DOS
keycode 160 = XF86ScreenSaver NoSymbol XF86ScreenSaver
keycode 161 = XF86RotateWindows NoSymbol XF86RotateWindows
keycode 162 = XF86TaskPane NoSymbol XF86TaskPane
keycode 163 = XF86Mail NoSymbol XF86Mail
keycode 164 = XF86Favorites NoSymbol XF86Favorites
keycode 165 = XF86MyComputer NoSymbol XF86MyComputer
keycode 166 = XF86Back NoSymbol XF86Back
keycode 167 = XF86Forward NoSymbol XF86Forward
keycode 168 =
keycode 169 = XF86Eject NoSymbol XF86Eject
keycode 170 = XF86Eject XF86Eject XF86Eject XF86Eject
keycode 171 = F9 NoSymbol F9
keycode 172 = F8 NoSymbol F8
keycode 173 = F7 NoSymbol F7
keycode 174 = XF86AudioStop XF86Eject XF86AudioStop XF86Eject
keycode 175 = XF86AudioRecord NoSymbol XF86AudioRecord
keycode 176 = XF86AudioRewind NoSymbol XF86AudioRewind
keycode 177 = XF86Phone NoSymbol XF86Phone
keycode 178 =
keycode 179 = XF86Tools NoSymbol XF86Tools
keycode 180 = XF86HomePage NoSymbol XF86HomePage
keycode 181 = XF86Reload NoSymbol XF86Reload
keycode 182 = XF86Close NoSymbol XF86Close
keycode 183 =
keycode 184 =
keycode 185 = XF86ScrollUp NoSymbol XF86ScrollUp
keycode 186 = XF86ScrollDown NoSymbol XF86ScrollDown
keycode 187 = parenleft NoSymbol parenleft
keycode 188 = parenright NoSymbol parenright
keycode 189 = XF86New NoSymbol XF86New
keycode 190 = Redo NoSymbol Redo
keycode 191 = XF86Tools NoSymbol XF86Tools
keycode 192 = XF86Launch5 NoSymbol XF86Launch5
keycode 193 = XF86Launch6 NoSymbol XF86Launch6
keycode 194 = XF86Launch7 NoSymbol XF86Launch7
keycode 195 = XF86Launch8 NoSymbol XF86Launch8
keycode 196 = XF86Launch9 NoSymbol XF86Launch9
keycode 197 =
keycode 198 = XF86AudioMicMute NoSymbol XF86AudioMicMute
keycode 199 = XF86TouchpadToggle NoSymbol XF86TouchpadToggle
keycode 200 = XF86TouchpadOn NoSymbol XF86TouchpadOn
keycode 201 = XF86TouchpadOff NoSymbol XF86TouchpadOff
keycode 202 =
keycode 203 = Mode_switch NoSymbol Mode_switch
keycode 204 = NoSymbol Alt_L NoSymbol Alt_L
keycode 205 = NoSymbol Meta_L NoSymbol Meta_L
keycode 206 = NoSymbol Super_L NoSymbol Super_L
keycode 207 = NoSymbol Hyper_L NoSymbol Hyper_L
keycode 208 = XF86AudioPlay NoSymbol XF86AudioPlay
keycode 209 = XF86AudioPause NoSymbol XF86AudioPause
keycode 210 = XF86Launch3 NoSymbol XF86Launch3
keycode 211 = XF86Launch4 NoSymbol XF86Launch4
keycode 212 = F4 NoSymbol F4
keycode 213 = XF86Suspend NoSymbol XF86Suspend
keycode 214 = XF86Close NoSymbol XF86Close
keycode 215 = XF86AudioPlay NoSymbol XF86AudioPlay
keycode 216 = XF86AudioForward NoSymbol XF86AudioForward
keycode 217 =
keycode 218 = Print NoSymbol Print
keycode 219 =
keycode 220 = XF86WebCam NoSymbol XF86WebCam
keycode 221 =
keycode 222 =
keycode 223 = XF86Mail NoSymbol XF86Mail
keycode 224 = XF86Messenger NoSymbol XF86Messenger
keycode 225 = XF86Search NoSymbol XF86Search
keycode 226 = XF86Go NoSymbol XF86Go
keycode 227 = XF86Finance NoSymbol XF86Finance
keycode 228 = XF86Game NoSymbol XF86Game
keycode 229 = XF86Shop NoSymbol XF86Shop
keycode 230 =
keycode 231 = Cancel NoSymbol Cancel
keycode 232 = F1 NoSymbol F1
keycode 233 = F2 NoSymbol F2
keycode 234 = XF86AudioMedia NoSymbol XF86AudioMedia
keycode 235 = XF86Display NoSymbol XF86Display
keycode 236 = XF86KbdLightOnOff NoSymbol XF86KbdLightOnOff
keycode 237 = F5 NoSymbol F5
keycode 238 = F6 NoSymbol F6
keycode 239 = XF86Send NoSymbol XF86Send
keycode 240 = XF86Reply NoSymbol XF86Reply
keycode 241 = XF86MailForward NoSymbol XF86MailForward
keycode 242 = XF86Save NoSymbol XF86Save
keycode 243 = XF86Documents NoSymbol XF86Documents
keycode 244 = XF86Battery NoSymbol XF86Battery
keycode 245 = XF86Bluetooth NoSymbol XF86Bluetooth
keycode 246 = XF86WLAN NoSymbol XF86WLAN
keycode 247 =
keycode 248 =
keycode 249 =
keycode 250 =
keycode 251 =
keycode 252 =
keycode 253 =
keycode 254 =
keycode 255 =
keycode 232 = XF86MonBrightnessDown NoSymbol XF86MonBrightnessDown
keycode 233 = XF86MonBrightnessUp NoSymbol XF86MonBrightnessUp
keycode 128 = XF86LaunchA NoSymbol XF86LaunchA
keycode 212 = XF86LaunchB NoSymbol XF86LaunchB
keycode 237 = XF86KbdBrightnessDown NoSymbol XF86KbdBrightnessDown
keycode 238 = XF86KbdBrightnessUp NoSymbol XF86KbdBrightnessUp
keycode 173 = XF86AudioPrev NoSymbol XF86AudioPrev
keycode 172 = XF86AudioPlay XF86AudioPause XF86AudioPlay XF86AudioPause
keycode 171 = XF86AudioNext NoSymbol XF86AudioNext
keycode 121 = XF86AudioMute NoSymbol XF86AudioMute
keycode 122 = XF86AudioLowerVolume NoSymbol XF86AudioLowerVolume
keycode 123 = XF86AudioRaiseVolume NoSymbol XF86AudioRaiseVolume
keycode 66 = Control_L NoSymbol Control_L
keycode 62 = Delete NoSymbol Delete
clear Lock
add Control = Control_L
こんな感じのファイルを用意し、awesome
で以下のような記述で切り替えを行います。
awful.key({ modkey }, "[", function () awful.util.spawn_with_shell("xmodmap ~/.Xmodmap") end),
awful.key({ modkey }, "]", function () awful.util.spawn_with_shell("xmodmap ~/.Xmodmap.mini") end),
###スタート
~/.xinitrc
に書きます。
###トラックパッド、その他
/etc/X11/xorg.conf.d/50-synaptics.conf
とかでトラックパッドの変更を行います。
ちなみに、当該フォルダにて、デスクトップ-ハードの様々な設定が行えます。
Section "InputClass"
Identifier "touchpad catchall"
Driver "synaptics"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Option "TapButton1" "1"
Option "TapButton2" "3"
Option "TapButton3" "8"
Option "VertTwoFingerScroll" "on"
Option "HorizTwoFingerScroll" "on"
Option "CoastingSpeed" "2"
Option "PalmDetect" "1"
Option "PalmMinWidth" "10"
Option "PalmMinZ" "200"
Option "CircularScrolling" "on"
Option "CircScrollTrigger" "0"
EndSection
Section "InputClass"
Identifier "touchpad ignore duplicates"
MatchIsTouchpad "on"
MatchOS "Linux"
MatchDevicePath "/dev/input/mouse*"
Option "Ignore" "on"
EndSection
Section "InputClass"
Identifier "Default clickpad buttons"
MatchDriver "synaptics"
Option "SoftButtonAreas" "50% 0 82% 0 0 0 0 0"
EndSection
Section "InputClass"
Identifier "Disable clickpad buttons on Apple touchpads"
MatchProduct "Apple|bcm5974"
MatchDriver "synaptics"
Option "SoftButtonAreas" "0 0 0 0 0 0 0 0"
EndSection
MacBook AirにインストールしたArch Linuxのハード関連の設定まとめ - Qiita
###ネットワーク
ArchWikiでは、networkmanagerがおすすめされていますが、netctlがオススメ。
# デフォルトでインストールされている
$ sudo pacman -S netctl
$ yaourt -S netgui
$ wifi-menu
ただし、メニューバーに表示させるには、networkmanagerのnm-appletが必要なので、どうしようかと思っています。
wifiの設定関連の情報はこちら。
[email protected]は初期から起動していると思われます。ArchLinuxインストール時にリポジトリダウンロードするためにネットワーク接続がどうしても必要ですから、どうやらこれが使われているみたいです。
# 有線接続のデーモン化
$ systemctl enable [email protected]
# 無線接続のデーモン化
$ systemctl enable [email protected]
接続がバッティングする場合、どちらかのプロファイルを使うかは、設定によって変更できます。自分の場合、設定してなくても有線が優先する感じです。後は、wifiをoffにすることさえ簡単にできるようにしておけば、便利になります。
# list
$ netctl-auto list
# stop
$ netctl-auto disable-all
# start
$ netctl-auto enable-all
そういえば、起動時に自動起動のことを、何となくデーモンと呼ぶことがあるのですが(あくまで私の中では)、これって正しいのだろうか。特に調べてない。
####追記
現在のカーネルでは、netctl-auto
のスクリプトが上手く動作しなかったため、以下のコマンドに置き換えてください。
netctl list
sudo netctl stop-all
#これは、 /etc/netctl/wlp2s0xxxxx を使います。なければ設定ファイルを作ります
sudo netctl start wlp2s0xxxxx
###Bluetooth
$ sudo pacman -S bluez bluez-utils dbus
$ bluetoothctl
# MACアドレスを調べます。形式は、00:12:34:56:78:90
[bluetooth]# agent KeyboardOnly
[bluetooth]# default-agent
[bluetooth]# power on
[bluetooth]# scan on
[bluetooth]# pair 00:12:34:56:78:90
[bluetooth]# trust 00:12:34:56:78:90
[bluetooth]# connect 00:12:34:56:78:90
[bluetooth]# quit
$ sudo systemctl enable bluetoot
$ sudo systemctl start bluetooth
自動起動する設定は以下の通り。
# Set bluetooth power up
ACTION=="add", KERNEL=="hci0", RUN+="/usr/bin/hciconfig hci0 up"
###GRUBの設定
まず、テーマをダウンロードしてきます。たくさん公開されてますので、検索とかすれば良いのが見つかるでしょう。
$ cd ~/Downloads
$ git clone git://github.com/Generator/Grub2-themes.git
$ cp -r ~/Downloads/Grub2-themes/{Archlinux,Archxion} /boot/grub/themes/
そして、設定ファイルを編集します。
GRUB_THEME="/boot/grub/themes/Archlinux/theme.txt"
GRUB_GFXMODE=1024x768
次に、設定ファイルを変換します。
$ grub-mkconfig -o /boot/grub/grub.cfg
GRUBの設定は、元の設定ファイルである/boot/grub/grub.cfg
を編集する方法と、簡易化された/etc/default/grub
を編集して、grub-mkconfig -o /boot/grub/grub.cfg
または、 update-grubコマンドで変換する方法があります。ここでは、後者の方法を採用しています。
私の場合は、ついでの設定として、以下を変更しました。
default=0
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
# GRUB メニューインターフェイスを表示しないようにし、timeout 期間の経過後に default エントリをロードします。[Esc] キーを押すと、標準の GRUB メニューを表示できます
hiddenmenu
title Red Hat Enterprise Linux AS (2.6.8-1.523)
# Linux カーネルのデバッグ出力など
linux $grub_boot/vmlinuz-linux root=/dev/disk/by-uuid/$the_root_uuid ro quiet
# section to load Windows
title Windows
rootnoverify (hd0,0)
chainloader +1
注目すべきは、linuxの最後のオプションです。
オプション | 内容 |
---|---|
ro | root 読み取りマウント |
rw | root 読み書きマウント |
quiet | デバッグ出力削減 |
rhgb | グラフィカル表示 |
splash/nosplash | スプラッシュ表示 |
4.2 GRUBブート・ローダーについて - Oracle® Linux管理者ガイド
###ディスプレイ
マルチディスプレイなどを使う場合は、以下のツールが便利です。
$ pacman -S arandr
$ arandr
###参考URL
その他、デスクトップを何の違和感もなく使用していくには、様々な設定が必要になるかと思いますが、是非頑張ってみてください。