##はじめに
最強の Linux ディストリビューション である Manjaro Linux を紹介します。
Manjaro Linux
は、Arch Linux を基に GUI 環境をプラスしたディストリビューションです。
インストールが簡単であり、基本アプリ以外に不要なアプリが入っていないので、開発環境としても、個人のデスクトップ環境としても最適です。
##感想
Manjaro Linuxの良い所は、Arch Linuxのような壊れやすさがないという点と、初期設定が楽という点です。
そして、Arch Linuxの良い所は、不要なアプリが入ってない点です。これは、セキュリティ的に見てもプラス要因です。
もちろん、入っているアプリが少ないということは、低スペックマシンでも快適に動作します。
ただし、この点は、ハイスペックすぎるマシンが溢れている現代において、問題になることは少ないと思われます。
私は、DesktopにAwesomeを使っています。
Awesomeの良い所は、ウィンドウ操作が定型的である点と、カスタマイズしやすい点です。
個人的には、Windows,Mac,Ubuntuなどの一般的なOSには、無駄なスペックを消費する使わないアプリが沢山インストールされていると思っています。
この点で、パソコン用途が多岐に渡らないのならば、Arch系のOSを使う価値は十分にあると考えます。ちなみに、私は、Gentoo系よりも、Arch系のほうが好きです。
理由としては、最新パッケージが試しやすいから...という理由ではなく、ロゴがカッコいいからなんですけどね。
##デスクトップ
デスクトップは、以下のタイプがあります。好みのものを選んでください。
##Awesome
個人的には、Awesomeを使っていますので、こちらからダウンロードします。
##MacBook Air
ハードにインストールするには、ISOイメージをUSBかDVDに書き込み、それをハードで読み込む必要があります。
ここでは、USBを使用します。
読み書き可能な UDIF に変換した後、USBメモリを挿し、情報を確認します。そして、当該ディスクをアンマウントした後に書き込みを実行します。
$ hdiutil convert -format UDRW -o manjaro-awesome-0.8.8-b4.1-x86_64.dmg manjaro-awesome-0.8.8-b4.1-x86_64.iso
$ diskutil list
$ sudo diskutil umountDisk /dev/disk1
$ sudo dd if=./manjaro-awesome-0.8.8-b4.1-x86_64.dmg of=/dev/disk1 bs=1m
ディスクを取り出すには、以下のコマンドです。
$ sudo diskutil eject /dev/disk1
##CUIインストール
GUIを使ったインストールについての解説は省略します。CUIの場合は、以下のページを参考にします。
http://wiki.manjaro.org/index.php/Installation_Guide_for_Beginners_0.8.2
重要なのは、インストールディスクの設定と、ブートローダーの設定でしょう。
これで、GUIインストールが上手く動作しないハードにもインストールが出来ます。
##Manjaro Linux の初期設定
パッケージマネージャーを動かしていきます。
遅いので、デフォルトのミラーサーバーを変更しますね。
$ sudo vi /etc/pacman-mirrors.conf
##
## /etc/pacman-mirrors.conf
##
## Branch Pacman should use (stable, testing, unstable)
Branch=stable
## Generation method
## 1) rank - rank mirrors depending on their access time
## 2) random - randomly generate the output mirrorlist
Method=rank
## Specify to use only mirrors from a specific country
## Disabled by default
OnlyCountry=Japan
## Input mirrorlist directory
MirrorlistsDir="/etc/pacman.d/mirrors"
## Output mirrorlist
OutputMirrorlist="/etc/pacman.d/mirrors/Japan"
応答速度を書き込みます。
$ sudo pacman-mirrors -g
参考:
http://wiki.manjaro.org/index.php/Rankmirrors_to_Set_the_Fastest_Download_Server
アップデートなどは、以下の様な感じのコマンドで行ってください。
# ソフトのインストール
$ sudo pacman -S pacman
# システムのアップデート
$ sudo pacman -Syu
# レポジトリと同期
$ sudo pacman -Syy
オススメのソフトなどは、初回に選択できるようになっているみたいですが、自分でインストールしました。ちなみに、初回に起動するスクリプトは、数字を入力して選択していきます。
参考:
http://tibiwan8-linux.blogspot.jp/2012/11/manjaro.html
次に、Awesome
のキーの確認でもしていきます。なお、ここでいうM
はCommand
キーやWindows
キーのことです。
キー | 内容 |
---|---|
M-S-q | シャットダウンなど{s} |
M-S-c | アプリの終了 |
M-h,l | ウィンドウ幅を調整 |
M-Enter | ターミナル起動 |
M-t | ウィンドウマネージャ起動 |
M-d | ブラウザ起動 |
M-j | フォーカス移動 |
M-f | ウィンドウ最大化 |
M-Space | ウィンドウの配置転換 |
##Yaourt
# 各種パッケージのインストール
$ pacman -S base-devel
# Yaourtのインストール
$ sudo pacman -Sy yaourt
# キャッシュの削除
$ sudo pacman -Scc
yaourtは開発が終了しています。
Requesting official statement from developers · Issue #382 · archlinuxfr/yaourt
下記から開発が継続されている別のパッケージマネージャーを利用するのがよいでしょう。
参考:
https://wiki.archlinux.org/index.php/Yaourt
##Clipboard
sudo pacman -S xsel
##GRUB-Customizer
ブートローダーのカスタマイズをしましょう。
ブートローダーというのは、簡単に言うと、OSを選択するためのものです。電源ボタンを押すと、一番に起動するシステムです。
ただし、これが壊れると修復には面倒が伴いますので、 GUI で操作するのが良いと思われます。
$ sudo pacman -S grub-customizer
$ sudo grub-customizer
参考:
http://wiki.manjaro.org/index.php?title=Grub-Customizer
##SiML
SLiM は、ログインマネージャーです。
ここでは、SLiM のデフォルト設定が、「起動時にログイン画面を表示する」となっているため、自動ログインを可能にしてみることにします。
$ $ sudo echo -e "default_user $USER\nauto_login yes" >> /etc/slim.conf
私の場合、ウィンドウマネージャは Awesome なので、自動起動するようにします。
$ cat ~/.xinitrc
$ sed -i '$d' !$ && echo exec \"awesome\" >> !$
後は、再起動でもして確認してみてください。
$ reboot
なお、Awesomeの再起動は、M-C-r
だったと思います。
これで、面倒なログイン画面が消えましたね。
SLiM 自体を無効にしてもいいのですが、OSの基本機能として残しておいたほうが良いです。
##Keyboard
続いてキーボードの設定です。まずは、好みのキー設定を行います。キーコードを確認しながら変更していきましょう。
$ xev | grep -A2 --line-buffered '^KeyRelease' | sed -n '/keycode /s/^.*keycode \([0-9]*\).* (.*, \(.*\)).*$/\1 \2/p'
$ localectl status
$ localectl list-keymaps
$ mkdir ~/tmp
$ cp /usr/share/kbd/keymaps/i386/qwerty/jp106.map.gz .
$ gunzip jp106.map.gz
$ mv jp106.map jp106_mac.map
$ vim jp106_mac.map
############################
# keycode 58 = Caps_Lock 行を編集
keycode 58 = Control
# keycode 89 = backslash underscore 行を編集
keycode 89 = underscore
############################
$ gzip jp106_mac.map
$ sudo mv jp106_mac.map.gz /usr/share/kbd/keymaps/i386/qwerty
$ loadkeys jp106_mac
$ sudo vim /etc/vconsole.conf
############################
KEYMAP="jp106_mac"
############################
$ sudo vim /etc/X11/xorg.conf.d/20-keyboard.conf
############################
Section "InputClass"
Identifier "system-keyboard"
MatchIsKeyboard "on"
Option "XkbModel" "jp106_mac"
Option "XkbLayout" "jp"
#Option "XkbVariant" ""
EndSection
############################
もっと快適にしたい場合は、以下の設定ファイルを使いましょう。
http://d.hatena.ne.jp/munepi/20120114/mba
##Firefox
私は、MacやWindowsでは、Chrome(Chromium)を使いますが、Linuxでは、Firefoxを使うという少し変わった人です。
なので、インストール後に最低限の設定をしていきます。
$ sudo pacman -Sy firefox
$ firefox &
vimperatorというアドオンをダウンロードします。
設定は、ホームディレクトリに設定ファイルを置きます。
" 移動幅変更
noremap j 5<C-e>
noremap k 5<C-y>
" ブックマーク追加
map a :bmarks<CR>
" 戻る/進む
noremap h <A-Left>
noremap l <A-Right>
プラグインマネージャーもあります。
https://github.com/cd01/vimppm
##Lilyterm
最強のターミナルアプリ。軽量、高機能で言うことなし。
$ sudo pacman -S lilyterm
設定は、以下の設定ファイルを編集します。ここでは、デフォルトテーマを変更します。
$ vim ~/.config/lilyterm/default.conf
ウィンドウの透過は、以下のような項目を変更します。
transparent_window = 1
window_opacity = 0.120
https://wiki.archlinux.org/index.php/LilyTerm
##Awesome
色々なツールを使い出してきたら、Awesomeの設定を行ってみます。
-- https://github.com/silenvx/dotfiles/blob/master/misc/default/XDG_CONFIG_HOME/awesome/rc.lua
-- Terminal
terminal = "lilyterm"
-- Applications
-- Firefox
awful.key({modkey}, "d", function () awful.util.spawn_with_shell("firefox") end),
-- モニターのフォーカスを変更する
awful.key({modkey, }, "F1", function () awful.screen.focus(1) end),
awful.key({modkey, }, "F2", function () awful.screen.focus(2) end),
-- モニターからモニターにウィンドウを移動させる
awful.key({ modkey, }, "i", function(c) awful.client.movetoscreen(c,c.screen-1) end ),
awful.key({ modkey, }, "o", function(c) awful.client.movetoscreen(c,c.screen+1) end ),
参考:
https://wiki.archlinux.org/index.php/Awesome
##GParted
フォーマットやパーティションの分割など。
$ sudo pacman -S gparted
$ sudo !$
http://rionaoki.net/misc/ubuntu/grub-2-basics
##日本語入力
###iBus
$ sudo yaourt mozc
$ ibus-setup
$ sudo vim /etc/X11/xinit/xinitrc.d/99-ibus
#!/bin/bash
export XMODIFIERS="@im=ibus"
export GTK_IM_MODULE="ibus"
export QT_IM_MODULE="xim"
ibus-daemon -d -x
$ sudo chmod +x !$
かな、英数変換は、Caps
キーに設定してみます。
ASCII キーボードで CapsLock キーを英数キーとして使用する
###uim
ibusかuimのどちらを使うかは、好みの問題です。
$ yaourt -S uim-mozc
参考:
https://wiki.archlinux.org/index.php/Input_Japanese_using_uim
##tmux
tmux-powerlineが連続して出てくるので、以下を設定します。
LANG="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
#LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
はコメントアウトしないと、 /etc/X11/xorg.conf.d/20-keyboard.conf
が書き換えられてしまう。
##fdisk
復旧には、LiveUSBなどを使います。HDDをマウントしましょう。
$ fdisk -l
$ mount /dev/sda3 /mnt/sda3
##Zsh
最低限の思いつき設定をしてみます。
autoload -U compinit colors zcalc
compinit
colors
setopt correct # Auto correct mistakes
setopt extendedglob # Extended globbing
setopt nocaseglob # Case insensitive globbing
setopt rcexpandparam # Array expension with parameters
setopt nocheckjobs # Don't warn about running processes when exiting
setopt numericglobsort # Sort filenames numerically when it makes sense
setopt nohup # Don't kill processes when exiting
setopt nobeep # No beep
setopt appendhistory # Immediately append history instead of overwriting
setopt histignorealldups #If a new command is a duplicate, remove the older one
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' # Case insensitive tab completion
zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}" # Colored completion (different colors for dirs/files/etc)
bindkey -e
bindkey '^[[7~' beginning-of-line # Home key
bindkey '^[[8~' end-of-line # End key
bindkey '^[[2~' overwrite-mode # Insert key
bindkey '^[[3~' delete-char # Delete key
bindkey '^[[A' up-line-or-history # Up key
bindkey '^[[B' down-line-or-history # Down key
bindkey '^[[C' forward-char # Right key
bindkey '^[[D' backward-char # Left key
bindkey '^[[5~' history-beginning-search-backward # Page up key
bindkey '^[[6~' history-beginning-search-forward # Page down key
HISTFILE=~/.zhistory
HISTSIZE=10000
SAVEHIST=10000
alias sudo='sudo '
alias ls='ls --group-directories-first --time-style=+"%d.%m.%Y %H:%M" --color=auto -F'
alias ll='ls -l --group-directories-first --time-style=+"%d.%m.%Y %H:%M" --color=auto -F'
alias la='ls -la --group-directories-first --time-style=+"%d.%m.%Y %H:%M" --color=auto -F'
alias grep='grep --color=tty -d skip'
alias cp="cp -i" # Confirm before overwriting something
alias df='df -h' # Human-readable sizes
alias free='free -m' # Show sizes in MB
# ex - archive extractor
# usage: ex <file>
ex() {
if [ -f $1 ] ; then
case $1 in
*.tar.bz2) tar xjf $1 ;;
*.tar.gz) tar xzf $1 ;;
*.bz2) bunzip2 $1 ;;
*.rar) unrar x $1 ;;
*.gz) gunzip $1 ;;
*.tar) tar xf $1 ;;
*.tbz2) tar xjf $1 ;;
*.tgz) tar xzf $1 ;;
*.zip) unzip $1 ;;
*.Z) uncompress $1;;
*.7z) 7z x $1 ;;
*) echo "'$1' cannot be extracted via ex()" ;;
esac
else
echo "'$1' is not a valid file"
fi
}
# zaw
source /home/manjaro/dotfiles/.zsh/tools/zaw/zaw.zsh
# prompt
source /home/manjaro/dotfiles/.zsh/tools/zsh_prompt/.zshrc.prompt
# autojump
export FPATH="$FPATH:/usr/share/zsh/site-functions/"
[[ -s /home/manjaro/.autojump/etc/profile.d/autojump.sh ]] && source /home/manjaro/.autojump/etc/profile.d/autojump.sh
# http://d.hatena.ne.jp/yarb/20110126/p1
function mkcd() {
if [[ -d $1 ]]; then
echo "It already exsits! Cd to the directory."
cd $1
else
echo "Created the directory and cd to it."
mkdir -p $1 && cd $1
fi
}
# http://d.hatena.ne.jp/hiboma/20120315/1331821642
pbcopy-buffer(){
print -rn $BUFFER | xsel
zle -M "xsel: ${BUFFER}"
}
zle -N pbcopy-buffer
bindkey '^p^p' pbcopy-buffer
#google
function go() {
local str opt
if [ $ != 0 ]; then
for i in $*; do
str="$str+$i"
done
str=`echo $str | sed 's/^\+//'`
opt='search?num=50&hl=ja&lr=lang_ja'
opt="${opt}&q=${str}"
fi
w3m http://www.google.co.jp/$opt
}
# complete
autoload -U compinit
compinit
zstyle ':completion:*:default' menu select=2
zstyle ':completion:*' verbose yes
zstyle ':completion:*' completer _expand _complete _match _prefix _approximate _list _history
zstyle ':completion:*:messages' format '%F{YELLOW}%d'$DEFAULT
zstyle ':completion:*:warnings' format '%F{RED}No matches for:''%F{YELLOW} %d'$DEFAULT
zstyle ':completion:*:descriptions' format '%F{YELLOW}completing %B%d%b'$DEFAULT
zstyle ':completion:*:options' description 'yes'
zstyle ':completion:*:descriptions' format '%F{yellow}Completing %B%d%b%f'$DEFAULT
zstyle ':completion:*' list-separator '-->'
zstyle ':completion:*:manuals' separate-sections true
zstyle ':completion:*' group-name ''
# zaw
bindkey '^x^x' zaw
# cd ls
function chpwd() { ls -aF }
# color
autoload colors
colors
source /home/manjaro/dotfiles/.zsh/tools/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
# code
export LANG=en_US.UTF-8
# alias
alias tmux="tmux -2"
alias ll="ls -Fa"
alias zs="source ~/.zshrc && exec $SHELL"
alias vs="vim ~/.vimrc"
alias ts="vim ~/.tmux.conf"
# tmux
# tmux自動起動
if [ -z "$TMUX" -a -z "$STY" ]; then
if type tmux >/dev/null 2>&1; then
if tmux has-session && tmux list-sessions | /usr/bin/grep -qE '.*]$'; then
tmux attach && echo "tmux attached session "
else
tmux new-session && echo "tmux created new session"
fi
fi
fi
参考:
http://mba-hack.blogspot.jp/2013/03/zsh.html
##Vim
最低限の思いつき設定をしてみます。
if has('vim_starting')
set nocompatible " Be iMproved
set runtimepath+=~/.vim/bundle/neobundle.vim/
endif
call neobundle#rc(expand('~/.vim/bundle/'))
" Let NeoBundle manage NeoBundle
NeoBundleFetch 'Shougo/neobundle.vim'
" Recommended to install
NeoBundle 'Shougo/vimproc', {
\ 'build' : {
\ 'windows' : 'make -f make_mingw32.mak',
\ 'cygwin' : 'make -f make_cygwin.mak',
\ 'mac' : 'make -f make_mac.mak',
\ 'unix' : 'make -f make_unix.mak',
\ },
\ }
" My Bundles here:
" Refer to |:NeoBundle-examples|.
"
" Note: You don't set neobundle setting in .gvimrc!
NeoBundle "Shougo/unite.vim"
NeoBundle "Shougo/neosnippet.vim"
NeoBundle "Shougo/neosnippet-snippets"
NeoBundle "Shougo/vimfiler.vim"
NeoBundle "Shougo/neocomplete.vim"
NeoBundle "t9md/vim-smalls"
NeoBundle "rhysd/clever-f.vim"
NeoBundle "kana/vim-textobj-user"
NeoBundle "tpope/vim-surround"
NeoBundle "osyo-manga/vim-over"
" color theme
NeoBundle 'nanotech/jellybeans.vim'
NeoBundle 'w0ng/vim-hybrid'
NeoBundle 'vim-scripts/twilight'
NeoBundle 'jonathanfilip/vim-lucius'
NeoBundle 'jpo/vim-railscasts-theme'
NeoBundle 'altercation/vim-colors-solarized'
NeoBundle 'vim-scripts/Wombat'
NeoBundle 'tomasr/molokai'
NeoBundle 'vim-scripts/rdark'
filetype plugin indent on " Required!
"
" Brief help
" :NeoBundleList - list configured bundles
" :NeoBundleInstall(!) - install(update) bundles
" :NeoBundleClean(!) - confirm(or auto-approve) removal of unused bundles
" Installation check.
NeoBundleCheck
" keymap
inoremap <silent><C-j> <ESC>
inoremap <silent>jj <ESC>
nmap <C-p> "*p
nmap Q :q!<CR>
" color
colorscheme molokai
syntax on
set t_Co=256
" plugin
" vim-smalls
nmap s <Plug>(smalls-excursion)
let g:smalls_auto_excursion_min_input_length = 2
let cli_table_custom = {
\ }
call smalls#keyboard#cli#extend_table(cli_table_custom)
let excursion_table_custom = {
\ "\<CR>": 'do_set',
\ "\;": 'do_jump',
\ }
call smalls#keyboard#excursion#extend_table(excursion_table_custom)
"vim-over
nnoremap <silent> <C-n> :OverCommandLine<CR>%s/
" code
set encoding=utf-8
" clipboard
set clipboard=unnamedplus,unnamed
" commnet
" https://gist.github.com/rbtnn/8540338
augroup auto_comment_off
autocmd!
autocmd BufEnter * setlocal formatoptions-=ro
augroup END
参考:
http://mba-hack.blogspot.jp/2013/02/vim.html
##Nexus7
Nexus7
をマウントするには、以下のツールを使います。MTPをインストールします。MTPとは、メディア転送プロトコルの略です。
$ sudo yaourt -S go-mtpfs-git
$ cd
$ mkdir Android
$ go-mtpfs Android
Android
はポイントです。アンマウントは、以下の通りです。
$ fusermount -u Android