2016年のLinuxデスクトップ環境をQiitaのほうでも残しておこうと思います。
ディストリビューション
OSは、Arch Linux
を使用しています。特に不便は感じていません。
昔は、Manjaro Linux
を使っていました。Manjaro LinuxからArch Linuxへ移行したのは、1,2年くらい前だったと思います。
Arch Linuxの個人用途は、様々なデバイスにインストールして、デスクトップ用途やサーバー用途に使っています。
具体的には、MacBookにインストールしたり, Nexus7にインストールしたり, USBなどにインストールしたりです。Gentooのほうがハード対応が良いのですが、ビルドに時間がかかるためArchを使っております。
自動アップデート
Arch Linuxは、自動アップデートするように設定することがあります。
$ sudo visudo
%wheel ALL=(ALL) NOPASSWORD:/usr/bin/pacman -Syu --noconfirm, /usr/bin/yaourt -Syua --noconfirm
$ crontab -e
0 * * * * sudo pacman -Syu --noconfirm && sudo yaourt -Syua --noconfirm
@reboot sudo pacman -Syu --noconfirm && sudo yaourt -Syua --noconfirm
$ sudo systemctl enable cronie
$ sudo systemctl start cronie
あと、手動でもアップデートしやすいようにエイリアスを設定しています。
$ alias u="sudo pacman -Syu --noconfirm && sudo yaourt -Syua --noconfirm"
ログインマネージャー
slim
を使用しています。ログインマネージャーを利用する理由は特にありませんが、あえて言うなら、Xでの自動ログインの設定が簡単だからですね。/etc/slim.conf
を編集すればいいだけなので。
ただ、毎度、startx
する使い方もありだと思います。
ウィンドウマネージャー
ウィンドウマネージャーは、awesomeからi3
に移行した。
i3の感想としては、awesomeよりもすごく快適になりました。
i3の特徴としては、設定ファイルが書きやすいことと、アイコンメニューを使いやすいというのがあります。i3blocks
なんかも良いですね。
ターミナル
私の場合、ターミナルは、Xと使い分けています。urxvt
とlilyterm
を使います。
urxvtは定番なので、lilytermについて紹介しますと、メニューからの設定が簡単にできたり、キーバインドやテーマ設定も簡単です。
シェルは、zsh, bashを使いますが、zsh
メインです。理由はやはり、Tab選択ですかね。
エディタはvim
を使います。
これらは、tmux
から使うことが多いですね。
tmuxは様々な問題を抱えてますね。特に、2バイト文字の表示が端末とtmuxの設定などによって変わってきます。tmuxは主に、パッチを当てなければ、powerlineなどが使いにくいです。
プロセス監視は、htop
とかが便利です。
フォント
フォントは、dejavu
とricty
を使用します。端末は、rictyベースのものを使用し、その他は、dejavuです。
rictyベースというのは、フォント合成でアイコンフォントを使用するためです。
気になる方は、以下の記事で、簡単なフォント合成を紹介しています。
メディア
音楽は、昔からmplayerで聴いてます。
mplayer2, mpvなどがメジャーですが、移行はしてません。しかし不便もあります。
例えば、audaciousはaudtoolを使って現在再生中の音楽情報を取得したりできるますが、mplayerではそうもいきません。下記のように出力される情報を活用して取得する必要があるので、不便な点も多いです。
$ mplayer -identify foo.mp3 2> /dev/null | grep -e ID_FILENAME
動画は、cvlcを使っています。ここで言うcvlcというのは、vlcのインターフェイスにncurses
を利用したものです。
そういえば、私は音楽、動画ともに常に2.5倍速再生しているので。下記のようなエイリアスを利用します。
$ alias cvlc="cvlc -I ncurses --rate=2.5"
$ alias mylist="find `pwd` -maxdepth 1 -mindepth 1 | grep -v "\/\." >! mylist"
$ alias mplayer="mplayer -speed 2.5 -af scaletempo,volnorm -novideo -loop 0 -playlist mylist"
動画処理などは、ffmpeg
を使います。ちなみに、画像処理はimagemagick
やgraphicsmagick
です。早い処理が必要なときは後者を使います。
画像はfeh
を使います。圧縮されたものはmcomix
を使用します。GUIでは、gthumb
が使いやすいので、spacefmなどで設定して使ってます。
ファイルマネージャー
ファイルマネージャーはspacefm
を使用しますが、この辺、様々な設定と関連しているので、説明が面倒。よって、ポイントだけ。
例えば、画像サムネイルを表示するための設定や自動マウントのための設定、アイコンやテーマの設定など。
まず、自動マウントについては、udev
などの設定が必要になる場合がありますね。これは、フォーマットにも関連しています。例えば、exfatを自動マウントしたりとか。
また、spacefmは、sudo
で使っても便利です。
次にアイコンですが、私はnumix
を使用します。
spacefmのデフォルトはadwaita
を選択しますが、これが超絶ダサいので一括削除してnumixに置き換えます。
$ cd /usr/share/icons
$ sudo rm -rf Adwaita
$ sudo cp -rf Numix Adwaita
adwaitaはアップデートされないようignoreなどをpacman.confに書いておくと良いかもしれません。通常は、gtk2で設定するとよいです。
そういえば、gtkにnumixのテーマを当てることで、X全般に適用されるのでやっておく。ただし、下記はgtk3の設定なので注意。
[Settings]
gtk-auto-mnemonics = 1
gtk-visible-focus = automatic
gtk-icon-theme-name = "Numix"
ディスク
GUIでは、ディスクは、gparted
で操作するのが便利ですね。
Archユーザーは、fdisk
やcfdisk
などがおなじみですが。
仮想環境
仮想環境下で利用するArch Linuxについて説明します。
virtualbox(vagrant)
上で使用するArch Linuxについては、モジュールなどの関係から最新カーネルに追従するArch Linuxとの相性はあまり良くないと感じていますね。ゲスト:ArchLinux。
Arch Linux上で使用するvirtualboxについても同様。ホスト:ArchLinux。
ただし、これもignoreなどで対応すれば良い問題でもあるかもしれませんが。
コンテナから1つの処理を走らせるdocker
においては特に問題はありませんが、やはり、情報が不足気味。あまり使われていないのでしょうか。
コンテナから複数の処理を簡単に実行できるsystemd-nspawn
においても特に問題はないように感じます。
あと、wine
なども使うことがあります。
インターネットブラウザ
ブラウザは、firefox
, chromium
を使います。
デフォルトの設定は、ほとんどを無効化して使いますね。また、アドオンは殆ど入れないです。
無効にする設定はjavascript, cookie, plugin, historyなど。もちろん、flashも基本使いません。しかし、不便があればその都度、有効にしたり例外を定義したりします。
また、様々な設定がデフォルトでオフになっていて、アドオン無しでキー操作できるdwb
も使うことがありますね。あと、端末では、w3mを使用します。
たくさんの広告が載っているサイトなどへアクセスする場合は、接続方法に気をつけたりもします。
接続は、vpn gateからtor proxy経由でアクセスするのが望ましいと思われます。理由は、基本的には、vpn gateのほうに載せられている通りです。
この場合、hostやtorrcを適切に設定しないと、接続が相当遅延しますので、常用は実用的ではありません。ここで、気をつけなければいけないのは、例えば、curl接続の場合などに利用されるhttp_proxy
などです。環境変数をroot, userで設定する必要があったり。あと、私は、wget派ではなく、curl派。
上記のような関係で、個人的には、socks5 protocol
を利用する事も多いですね。
オーディオ
正直、オーディオに関してはあまり納得していない。現在は、pulseaudio
のpasystray
を使用します。
過去は、alsaを使用していましたが、alsaのほうが分かりやすかった気がします。
このような移行は、bluetooth関連によるところが大きく、現在、Bluez5
とblueman
を使用しています。
日本語入力
日本語入力には、あまりこだわりはありません。
xdotool
やxmodmap
などを補助的に利用し、fcitx-mozc
を使います。
まあ、日本語入力というより、キーボード全般ということで。
ネットワーク
ネットワークは、netctl
を使用して接続するのが基本ですね。
wifiは、wifi-menuで書き出せるので、その設定ファイルを利用します。
見て分かるように、接続はこのように自動化しています。切り替えも、ifconfig xxxbar down
からnetctl start xxxfoo
してもよいけど、自動化してもよいでしょう。systemctl
を使えば出来ます。
アドレス関連は、メインはIP=dhcp
を利用しますが、サーバーなどはIP=static
でAddressを固定することもあります。必要に応じて。netctlについて知りたければ、とりあえず、/etc/netctl/example
を見れば設定方法がわかります。
VPNなどを利用する場合は、networkmanager
が便利なこともあります。その場合は、以下の様な感じで使います。
$ sudo pacman -S networkmanager networkmanager-openvpn network-manager-applet
$ sudo systemctl start NetworkManager
$ nm-applet
ただし、netctl
とは相性が悪いため、設定を切っておくこと。接続できない場合は、netctl stop
したり、ifconfig eth0 down
したり。
ファイアウォールは、iptables
を使用します。デフォルトでは有効になっていないため、設定ファイルを置き起動させることから。
$ sudo cp /etc/iptables/empty.rules /etc/iptables/iptables.rules
$ sudo systemctl start iptables
$ sudo systemctl enable iptables
スキャナは、fing
なんか便利ですね。iOSとかで有名なアプリですが。nmap
とか定番ですが。
トラフィック監視は、iptraf-ng
なんか便利です。wiresharek
など定番ですが。
ディスプレイ
マルチモニタは、arandr
を使って出力されるコマンドを使えば簡単に調整できますので、便利に使っています。
まとめ
あとは、よく使うものはあまり思いつきませんね。
Linuxデスクトップは普通に使えて便利です。
この記事で紹介されてるもので、知らないツールなどがあれば、以下のサイトで調べれば分かると思います。
面倒なので、個別にリンクを貼っていません。ごめんなさい。