Help us understand the problem. What is going on with this article?

Linux ディストリビューション Manjaro Linux の使い方 vol.1

More than 1 year has passed since last update.

はじめに

最強の 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
##
## /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のキーの確認でもしていきます。なお、ここでいうMCommandキーや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

ウィンドウの透過は、以下のような項目を変更します。

~/.config/lilyterm/default.conf
transparent_window = 1

window_opacity = 0.120

https://wiki.archlinux.org/index.php/LilyTerm

Awesome

色々なツールを使い出してきたら、Awesomeの設定を行ってみます。

~/.config/awesome/rc.lua
-- 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
/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が連続して出てくるので、以下を設定します。

/etc/locale.conf
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

最低限の思いつき設定をしてみます。

~/.zshrc
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

参考:
https://wiki.archlinux.org/index.php/MTP

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away