14 Dec 2016, 16:18

Ubuntus 16.04 LTS でのタイル型ウィンドウマネージャー環境構築(xmonad)

今まで、ArchLinux を利用していたのだけれども、壊れたので、Ubuntu に乗り換えた。

タイル型ウィンドウマネージャーの魅力に取り付かれたので、Ubuntu でも xmonad を導入してみた。

設定ファイルは以前 ArchLinux で利用していたものがそのまま使えた。

誰かの役に立つとは思えないけれども、再度自分で設定するときのために書きました。

Environment

  • Ubuntu 16.04 LTS
  • Let’s Note

xmonad の導入

まずは、xmonad のインストールから。

sudo apt-get install xmonad

これで、ログイン時に xmonad でログインするか選択できるようになる。

xmonad.hs の設定

.xmonad/xmonad.hs を作成。ターミナルは urxvt を利用。

現在の設定は以下。

import XMonad
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.ManageDocks
import XMonad.Util.Run(spawnPipe)
import XMonad.Util.EZConfig(additionalKeys)
import System.IO

import XMonad.Actions.WindowGo

import XMonad.Layout.MultiToggle
import XMonad.Layout.MultiToggle.Instances
import XMonad.Config.Desktop (desktopLayoutModifiers)
import XMonad.Layout.Named

-- for keyboard shortcut mod4 is windows ShortcutKey
modm = mod4Mask

tall = Tall 1 (3/100) (1/2)

main = do
        xmproc <- spawnPipe "/usr/bin/xmobar /home/tsu-nera/.xmobarrc"
        xmonad $ defaultConfig
        { manageHook = manageDocks <+> manageHook defaultConfig
        --, layoutHook = avoidStruts  $  layoutHook defaultConfig
    , layoutHook = mkToggle1 FULL $ desktopLayoutModifiers (named "V" tall ||| (named "H" $ Mirror tall))

      -- sometimes, xmonad freese,comment out these lines 
          -- , logHook = dynamicLogWithPP $ xmobarPP
          -- { ppOutput = hPutStrLn xmproc
          --    , ppTitle = xmobarColor "green" "" . shorten 50
          -- }

          -- Border settings
      , borderWidth = 2
          , normalBorderColor  = "#99ccff"
          , focusedBorderColor = "#0033dd" -- blue

          -- Rebind Mod to the Hiragana_Katakana 
      , modMask = mod3Mask
      -- , modMask = mod1Mask        

          -- use rxvt-unicode 
      , terminal = "urxvt" 
          }
          -- windows キーでショートカット
          `additionalKeys`
          [
            ((modm, xK_l), spawn "gnome-screensaver-command -l")
          , ((modm, xK_t), runOrRaise "urxvt" (className =? "URxvt"))
          , ((modm, xK_k), runOrRaise "conkeror" (className =? "conkeror"))
      , ((modm, xK_f), sendMessage (Toggle FULL))
          , ((modm, xK_q), spawn "xinput --set-prop \"SynPS/2 Synaptics TouchPad\" \"Device Enabled\" 0")
          , ((modm, xK_w), spawn "xinput --set-prop \"SynPS/2 Synaptics TouchPad\" \"Device Enabled\" 1")
          ]

Let’s Note を利用しているので、mod キーをウィンドウズキーに設定。 いろいろと、ショートカットを設定。

xmobar の設定

xmobar は xmonad と相性のよいステータスバー。

sudo apt-get install xmobar

設定は以下のとおり。工夫私大でいろいろできる。

Config { font = "-misc-fixed-*-*-*-*-10-*-*-*-*-*-*-*"
       , borderColor = "black"
       , border = TopB
       , bgColor = "black"
       , fgColor = "grey"
       , position = TopW L 90
       , lowerOnStart = True
       , persistent = False
       , commands = [ Run Cpu ["-L","3","-H","50","--normal","green","--high","red"] 10
                    , Run Memory ["-t","Mem: <usedratio>%"] 10
            -- , Run Swap [] 10
                    , Run Battery ["Bat0"] 600
                    , Run Com "xmobar-clock-monitor.sh" [] "orgClock" 10
                    , Run Com "sh" ["-c", "cat ~/tmp/clocking"] "orgShow" 10
                , Run Date "%a %b %_d %Y %H:%M:%S" "date" 10
            ]   
       , sepChar = "%"
       , alignSep = "}{"
--       , template = "%cpu% | %memory% | %battery% }{ <fc=#ee9a00>%date%</fc> %orgClock%clock</fc> %orgShow%"
       , template = "%cpu% | %memory% | %battery% }{ <fc=#ee9a00>%date%</fc> "
             }

dmenu

コマンドランチャー。mod+p に割り当てている。すごく便利。

sudo apt-get install dmenu

PATH が通ったところにあるコマンドを実行できる。時々おかしくなる。 そのような時は、~/.xmonad/dmenu_run を削除する。

タスクトレイの設定

trayer というタスクトレイツールを使っている。

sudo apt-get install tarayer

ここにいろいろなアプリを表示する。.profile に登録しておく。

# trayer タスクトレイ
trayer --edge top --align right --SetDockType true --SetPartialStrut false --expand true --width 10 --transparent true --tint 0x000000 --height 14 &

# ネットワーク
nm-applet &

# サウンド
volumeicon &

# バッテリ
cbatticon &

# Dropbox
~/.dropbox-dist/dropboxd &~/.dropbox-dist/dropboxd &

# TouchPad Default Off
xinput --set-prop "SynPS/2 Synaptics TouchPad" "Device Enabled" 0

# wall paper
feh --bg-scale ~/Dropbox/Photos/ubuntu.jpg &

# クリップポードマネージャー
copyq &

以上、自分のための簡単な備忘録でした。便利なツールがあれば、教えてください。

参考リンク

19 Jan 2014, 12:53

タイル型ウィンドウマネージャという新たな世界観に衝撃を受けた!XmonadをつかってワクワクCUI生活

GUIのウィンドウを自由自在に操ることができる タイル型ウィンドウマネージャ、Xmonadを導入しました。

[toc]

タイル型ウィンドウマネージャとは

コマンドラインにこだわりはじめると、なんでもかんでもコマンドラインで完結させたくなる。

screenやtmuxのようなマルチプレクサは、とても快適だがそれをGUIでも実施するにはどうすればいいか調べたところ、タイル型ウィンドウマネージャの存在を知った。

タイル型ウィンドウマネージャとは、ウィンドウをコマンドラインで操ることのできるツール。

説明は、Wikipediaに譲るとして、タイル型ウィンドウマネージャを知ったことは、カルチャーショックだった。初めてコマンドラインの世界にふれて、コンピュータにはこういう側面もあるのか、というような感動を受けた。

タイル型WMには様々な種類があるようだ。XmonadとAwesomeが2大勢力のようなので、XMonadの方を導入してみた。

環境

  • Linux Mint 16 Cinnamon

セットアップ

公式サイトの Documentation – Quick start for the impatientに従いセットアップします。

インストール

Linux MintはUbuntuと同様に3つのパッケージが必要。

$ sudo apt-get xmonad
$ sudo apt-get instasll libghc-xmonad-dev
$ sudo apt-get instasll libghc-xmonad-contrib-dev

設定ファイルの作成

$HOME/.xmonad/xmonad.hsに設定ファイルを新規作成する。

もっとも基本的な設定ファイルは以下。Haskellで記述されている。

import XMonad

main = do
xmonad $ defaultConfig

Xmonadの起動

ログアウトする。ログイン画面で、「セッション」とかかれた部分を選択。「XMonad」を選択し、ログインする。ログインすると、なんと真っ黒な画面!

ここでかなりあせったが、実はこれはXMonadでログインしている証拠。あせらず騒がず【右Alt + Shift + Enter】を入力。これで、ターミナルが起動され、操作が可能になる。

Xmonadの使い方

ここまで着たら、ガイダンスに従って操作を覚えていく。

基本をメモ

– mod-shift-return: ターミナル起動

– mod-shift-q: xmonad終了

– mod-p: dmenu起動

– mod-q: 再起動

– mod-space: レイアウト配置変更

– mod-j/k/m: focus変更

– mod-h/l: サイズ変更

– mod-tab: レイアウト移動

manコマンドでも使い方がわかる。

man xmonad

カスタマイズ

一通り操作を覚えたら、カスタマイズを飽きるまで行う。以下のページをベースにカスタマイズ。

dmenuの導入

アプリケーションランチャーである、dmenuを導入する。

$ sudo apt-get install dmenu

Mod-pで上部にランチャーが表示されるので、適当に検索してツールを実行。例えばchromeで検索すると、google-chromeがすぐに引っかかる。

ショートカットキーの変更

Mod Keyはデフォルト 右Altなので、これをカタカナ・ひらがなキーに変更する。(

~/.Xmodmapを新規作成して、以下を書く。既存のmod3をクリアして、Henkan_Modeを設定。

clear mod3
add mod3 = Hiragana_Katakana

キーに対応する名前は、xevを起動して調べることができる。

xmonad.hsの defaultConfig内に以下を追記。

modMask  = mod3Mask,

最後に、以下で有効にする。

xmodmap $HOME/.Xmodmape

起動時にこの設定を有効にするために、~/.xsessionに追記しておく。

これで、使いやすくなったか???いや・・・微妙だ。

ターミナルの変更

ターミナルはMint defaultのgnome-terminalではなくて、軽量なterminalである、unicode-rvxtを利用。xmonad.hsの defaultConfigに以下を追記。

terminal = "urxvt"

XMobar

ステータスバーを表示させるために、xmobarを入れる。他にも、dzen2というツールがある。

$ sudo apt-get install xmobar

次に、設定ファイル~/.xmobarrcを作成。テンプレートを利用してみる。

$ cp /usr/share/doc/xmobar/examples/xmobar.config ~/.xmobarrc

.xmobar/xmobar.hsの mainのすぐ下の行に以下を追記することで、xmonad起動の延長でxmobarを起動することができる。

xmproc <- spawnPipe "/usr/bin/xmobar /home/tsu-nera/.xmobarrc"

キーボードショートカットの設定

以下のように書くことで、キーボードショートカットが設定できる。ここでは、Winキーとの組み合わせで設定

import XMonad.Actions.WindowGo

-- for keyboard shortcut
modm = mod4Mask

`additionalKeys`
 [
 ((modm, xK_e), runOrRaise "emacs" (className =? "Emacs"))
 , ((modm, xK_t), runOrRaise "urxvt" (className =? "URxvt"))
 , ((modm, xK_g), runOrRaise "chrome" (className =? "Google-chrome-stable"))
 ]

クラス名は、このコマンドを端末から実行して、+ のカーソルで調べたいWindowをクリックする。

xprop | grep WM_CLASS

背景の設定

fehという軽量な画像ビューアーで表示する方法が載っていたので、これを利用。

インストール。

sudo apt-get install feh

以下で背景を設定できる。

feh --bg-scale ~/Pictures/wallpaper/moonlight.png

これを.xsessionに書くと、なぜか動作しなかった。しかたがないので、.profileに記入した。

ファイルマネージャー

Mintのファイルマネージャー、nemoを利用すると、勝手にデスクトップを変更されるので、nemoは –no-desktopモードで起動する。aliasを.zshenvに切る。

alias nemo='nemo --no-display'

ショートカットでフルスクリーン

Mod + Spaceを押したときのデフォルトでは、複数回キーを押さないとフルスクリーンにならないので、これを改善。以下のサイトを参考に設定した。これは便利!

まとめ

ほかにも、いろいろと細かい設定が必要だけれども、きりがないので今日はこんなところで。

いろいろな作業をコマンドラインで実施することができるので、とても快適。しかし、残念ながらマウスを使わざるを得ないところもある。たとえば、ブラウザ操作のコピぺはマウスに頼らざるを得ない。

タイル型WMとの出会いはとても感動的だ。

さらなる精進をつんで、立派なCUIマスターになりたい。

19 Jan 2014, 11:47

省エネ時代の軽快ターミナル!rxvt-unicode(urxvt)でサクサクターミナル生活

軽量なターミナルである、rxvt-unicodeを試してみました

urxvtとは

rxvt-unicode(urxvt)とは、軽量なターミナル。

  • Unicode対応
  • 設定ファイルによって、自由にカスタマイズ可能
  • クラッシュしらず
  • 小メモリ、爆速の軽快さ。

などなどの特徴がある。軽量なためxmonadとの相性がよいと、xmonadのサイトで紹介されていたため、ターミナルを乗りかえてみた。

以下でインストール。

sudo apt-get install rxvt-unicode-256color

カスタマイズ

カスタマイズは、~/.Xdefaultsに設定を記入することで実施する。環境は、Linux Mint.

以下のサイトのXdefaultが大変参考になりました。ありがとうございます。

フォントの設定

Rictyを設定。アンチエイリアスも有効に設定。

URxvt.allow_bold:           false
URxvt*font: xft:Ricty:size=12:antialias=true

背景を透過にする

背景に画像を設定して、ターミナルは半透明にすることにする。以下を参考にした。

以下を追記。

urxvt*shading: 80
URxvt*inheritPixmap: true

色テーマをmolokaiにする

色テーマを鮮やかなmolokaiにする。ここを参照。

.Xdefaults結果

余計なツールバーもないし、軽いし、カスタマイズ自由、なかなかいい感じ。

参考